Skip navigation
Welcome, Guest! Please Login or Join

Loading...

Figured out how Overdrive 2 demo worked

Dec 01 at 8:38:45 PM
Aaendi (0)

(Andy Koenigs) < Flicky >
Posts: 6 - Joined: 06/01/2012
United States
Profile
Boy Titan's programmers are some magicians.  It took me almost a year to figure out some of their tricks.  However I cracked their fractal rotozoomer trick which I found was by far the most mind boggling.

Here's what I figured out based on observing glitches in different emulators, and using whatever features BlastEm's debugger can do.
 
Vertical stripes are drawn on both BG layers. BG1 gets 3 colors in one palette, BG2 gets 3 colors in another palette. It uses line scrolling to shift the vertical stripes diagonally.

Horizontal stripes are drawn using a slanted grid of 16x32 sprites. It uses mid-screen multiplexing to fill up the whole screen. Only the 16 pixels across the screen have to be calculated, and the slant of the "sprite grid" takes care of the rest.

Now here comes the fun part. On a normal emulator, the sprites are hiding behind both backgrounds, but on real hardware the debug AND masking feature is applied with the sprites on top. How do the colors merge? Like this:

BG 1 uses these colors:
101110
101101
101011

BG 2 uses these colors:
111110
111101
111011

Sprites use these colors:
110110
110101
110011
111110
111101
111011

Bit 4 depends if it's a BG1 color or a BG2 color. Bit 3 depends if it's a lower sprite color or a higher sprite color. Bits 0-2 determine which 2 of the 3 colors are overlapping. If there are 2 bits that are 0, then those two colors are overlapping. If just one bit is 0, then the color is overlapping with itself.


Edited: 12/01/2017 at 08:43 PM by Aaendi

Dec 04 at 6:43:25 AM
Tiberiy (0)

< Flicky >
Posts: 12 - Joined: 01/16/2017
Profile
It Shadow/Highlight?

http://md.squee.co/VDP...