EmuCR Feeds
Email Us

The Good, The Bad & The Future

The developer said:

One of the things that always amazes me is the bugs that slip through into final production code, especially the obvious ones.

Back to the Future III on the Genesis has a very dark colour palette, and for many years I thought it was an emulation bug, until somebody tested the rom on their copier cart, and found it behaved in exactly the same way.

In the game, none of the colours are ever above half brightness, and everything just looks flat and washed out.

The reason? There appears to be an incredibly stupid bug in the way the program writes the palette code.

The Megadrive has 3-bits for each of the Red, Green and Blue pens, giving a total of 8 shades of each, the palette ram is 16-bit wide in the following format

0123456789abcdef
xxxxbbbxgggxrrrx

x = unused
b = blue
g = green
r = red

bits written to ‘unused’ spaces are ignored by the hardware.

The problem with Back To The Future III is that it writes it’s entire ingame palette in the following format


0123456789abcdef
xxxxxbbbxgggxrrr

In other words, everything is shifted right by 1 bit. What this means is that the lowest bit of each r,g,b entry is being ignored, and the upper bit is never filled, essentially the hardware treats those writes as shown.


0123456789abcdef
xxxxxbbxxggxxrrx

so you’re left with only 2 bits of colour per pen, the most significant bit of each colour never being used (hence the half brightness) and the lowest bit being lost (hence the lack of detail)

How, Why? I don’t know, maybe there are some models of Genesis where this works? Nobody I know has found one tho, and the game doesn’t seem to specify any other odd configurations to allow this to work.

Screenshots – Those on the left are how the game was meant to look, those on the right are how it shipped, and appered on the unit that was tested due to the problem outlined here.
EmuCR:HAZE MAME (2009/11/03) PART2The loss of detail, especially on the 1st and 2nd shots is very noticable. Of course, I won’t be fixing this in HazeMD, because doing so would either require hacking the ROM, or breaking the emulation code for every other Genesis game. It’s just a very odd situation that I found interesting.


Source:http://mamedev.emulab.it/haze/



Random Related Topic Refresh Related Topic

Random Related Topic Loading...

0 Comments

Post a Comment

Can't post a comment? Try This!