05-09-2023, 08:44 AM
There's one more HDMA table that I missed. Change 0x10DDAF from 0x50 to 0x4F. That should fix the row and def. windows. I think that's everything. Let me know if you notice any other unwanted behavior. Here's the full list of changes:
The result is that the battlefield region is now 159 scanlines instead of 160, allowing the top scanline of the menu window to be visible. Although I think it looks better with the fix applied, I'm now not so sure that this is a bug. I think they intended for the battlefield region to be 160 scanlines because it's evenly divisible into the SNES's native 8x8 tiles. FF6 also has 160 scanlines for the battlefield region. This leaves 64 scanlines for the menu region, though the last few will not be visible on a CRT due to overscan.
Code:
C1/14FF: 80 -> 00 bg1 scroll hdma table terminator (credits)
C1/1506: 80 -> 00 bg2 scroll hdma table terminator (credits)
C1/1513: A0 -> 9F bg2 scroll hdma table - shift menu by 1 scanline
C1/1519: 80 -> 00 bg2 scroll hdma table terminator
C1/158F: 04 -> 03 bg2 scroll hdma table (neo-exdeath) - shift menu by 1 scanline
C1/1595: 80 -> 00 bg2 scroll hdma table terminator (neo-exdeath)
C1/15A2: A0 -> 9F bg1 scroll hdma table - shift menu by 1 scanline
C1/15A8: 80 -> 00 bg1 scroll hdma table terminator
C1/15BB: 80 -> 00 bg1 scroll hdma table terminator (unknown, possibly unused)
D0/DD8B: 50 -> 4F bg mode hdma table - shift menu by 1 scanline
D0/DDAF: 50 -> 4F color math hdma table - shift menu by 1 scanline
D0/DDB9: 50 -> 4F bg2 base address hdma table - shift menu by 1 scanline
D8/32EA: 80 -> 00 bg3 scroll hdma table terminator
The result is that the battlefield region is now 159 scanlines instead of 160, allowing the top scanline of the menu window to be visible. Although I think it looks better with the fix applied, I'm now not so sure that this is a bug. I think they intended for the battlefield region to be 160 scanlines because it's evenly divisible into the SNES's native 8x8 tiles. FF6 also has 160 scanlines for the battlefield region. This leaves 64 scanlines for the menu region, though the last few will not be visible on a CRT due to overscan.