Bangai-Oh VGA Patch
Posted: Sat Apr 22, 2023 6:55 am
I just spent like 9 hours straight doing this, so I don't really feel like going into detail. This could probably be turned into a Codebreaker code, maybe later. The instructions are to patch a clean GDI rip of the US version of Bangai-Oh. All the changes are on track 37. I've also included the RAM address from my notes of what needs to be patched, if you subtract 0x8c010000 from this, you can get the address into an unscrambled 1ST_READ.BIN, if you want to patch it that way.
Fix render glitches (results in 320x240 window in top-left of 640x480 screen):
Track 37 at 0x069DBBD4 (Ram address 0x8c0790e4) change [0x01] to [0xFF]
Fix slowdown:
Track 37 at 0x069C5108 (Ram address 0x8c065598) change from [0x01] to [0xFF]
Track 37 at 0x069C5156 (Ram address 0x8c0655e6) change from [0x2D 0x94] to [0x00 0xe4]
Make fullscreen (fix horizontal):
Track 37 at 0x069F1B3A (Ram address 0x8c08c32a) change from [0x01 0xc9] to [0x01 0xe0]
Make fullscreen (fix vertical):
Track 37 at 0x069F1278 (Ram address 0x8c08bb98) change from [0x00 0x41] to [0x02 0xe1]
Restore bottom 16 pixels of screen:
Track 37 at 0x069F1904 (Ram address 0x8c08c0f4) change from [0x1c 0x30] to [0x01 0x70]
Disable dither:
Track 37 at 0x069F1452 (Ram address 0x8c08bd72) change from [0x2b 0x1e] to [0xdb 0x1e]
With the patch applied, it probably still works on NTSC as well, but I haven't tested it. Now that I know what kind of surgery needs to be done to convert a 320x240 NTSC only game to 320x240 VGA, it will probably be much easier to do the same to other games (like KoF 98). Some other day.
Edit: Oh, this doesn't include a patch for the VGA support bit in IP.BIN. Someone else can figure that out if they want it.
Edit 2: Codebreaker version
0f0790e4 000088ff
0f065598 000088ff
0f0655e6 0000e400
0f08c32a 0000e001
0f08bb98 0000e102
0f08c0f4 00007001
0f08bd72 00001edb
Fix render glitches (results in 320x240 window in top-left of 640x480 screen):
Track 37 at 0x069DBBD4 (Ram address 0x8c0790e4) change [0x01] to [0xFF]
Fix slowdown:
Track 37 at 0x069C5108 (Ram address 0x8c065598) change from [0x01] to [0xFF]
Track 37 at 0x069C5156 (Ram address 0x8c0655e6) change from [0x2D 0x94] to [0x00 0xe4]
Make fullscreen (fix horizontal):
Track 37 at 0x069F1B3A (Ram address 0x8c08c32a) change from [0x01 0xc9] to [0x01 0xe0]
Make fullscreen (fix vertical):
Track 37 at 0x069F1278 (Ram address 0x8c08bb98) change from [0x00 0x41] to [0x02 0xe1]
Restore bottom 16 pixels of screen:
Track 37 at 0x069F1904 (Ram address 0x8c08c0f4) change from [0x1c 0x30] to [0x01 0x70]
Disable dither:
Track 37 at 0x069F1452 (Ram address 0x8c08bd72) change from [0x2b 0x1e] to [0xdb 0x1e]
With the patch applied, it probably still works on NTSC as well, but I haven't tested it. Now that I know what kind of surgery needs to be done to convert a 320x240 NTSC only game to 320x240 VGA, it will probably be much easier to do the same to other games (like KoF 98). Some other day.
Edit: Oh, this doesn't include a patch for the VGA support bit in IP.BIN. Someone else can figure that out if they want it.
Edit 2: Codebreaker version
0f0790e4 000088ff
0f065598 000088ff
0f0655e6 0000e400
0f08c32a 0000e001
0f08bb98 0000e102
0f08c0f4 00007001
0f08bd72 00001edb