tewtal / sm_practice_hack

Super Metroid Practice Hack
The Unlicense
27 stars 19 forks source link

Use correct VRAM transfer mode for savestates #203

Closed NobodyNada closed 6 months ago

NobodyNada commented 6 months ago

We set the high bit of $2115 to 0, which instructs the PPU to increment the VRAM word address after writing the low data byte. However, the DMA transfer writes low bytes first, then high bytes. This means the high byte of the first word of a transfer was being skipped, leading to an occasional glitchy tile. Setting the mode bit to 1 instead fixes the issue.

InsaneFirebat commented 6 months ago

Nice. That's probably the bug total mentioned a long time ago but I couldn't make any sense of it at the time. image

InsaneFirebat commented 6 months ago

Merged with #202