============================================================================== BACK TO THE FUTURE: PART III (Sega Genesis / Mega Drive) COLOR FIX PATCH 1.0 Greg Kennedy ============================================================================== =============== BASIC INFO =============== Back to the Future: Part III, for Sega Genesis / Mega Drive, is a game that is broken in a particularly weird way. Genesis games use a 9-bit palette, with 3 bits each for Red, Green, and Blue color intensity. These are stored in a 16 bit "word" (2 bytes) using the format: 0000bbb0 ggg0rrr0 Somewhere in the development process for this title, the programmers got things mixed up, and mistakenly stored all palette data - and code to modify colors - in the wrong format instead: 00000bbb 0ggg0rrr In other words, all bits shifted right by one place. The result is that all colors on screen are reduced to *half their intended intensity*, making the game look dim, and with low contrast. How QA missed this is beyond me... I guess their TVs were just turned up really, really bright. In fact, there is one place in the game that DOES have the correct palette: the SEGA logo that displays when the game is first turned on. It's likely the logo, and the associated "color fade" code, was taken from SEGA documentation. =============== THE PATCH =============== The solution to this problem requires two fixes: 1. All palette data stored in the ROM must be shifted left one bit, restoring it to the correct format and setting the brightness properly. 2. Even with the correct palettes in place, the programmers also coded all color fading routines based on the wrong format. When colors fade in, without a fix, they will still only reach half the desired intensity. Fade routines need to be patched, and the bit-mask changed from 0111 to 1111, to account for the full color range. 3. The standard Genesis checksum in the ROM header should be updated to match. Okay, three changes. :) Two versions of the patch are included: one for US ROMs, and one for EU ROMs. The data is identical, but the file offsets are different between the two regions. =============== THE RESULT =============== With these changes the game is restored to its intended glory. Unfortunately, it's still a bad game. The first sequence on horseback is way too difficult, giving practically no time to react to obstacles, and requiring memorization of the pattern to clear successfully. The other minigames are more fun and pose less of a challenge. Most players have given up by then, though. Well, at least it looks good now. (There is a cheat code to skip levels: pause the game, then hold A and press Up, Down, Left, Right. This patch would have been much more frustrating to produce without that!) Enjoy the patch! -Greg