mrehkopf / sd2snes

SD card based multi-purpose cartridge for the SNES
http://sd2snes.de
GNU General Public License v2.0
590 stars 114 forks source link

Fix-hdma-INIDISP-SCPU-B-silicon-bug #213

Closed mrehkopf closed 1 year ago

mrehkopf commented 1 year ago

MSU1 Video Player: Workaround S-CPU B DMA silicon bug

The SNES's CPU revision B occasionally does not carry out DMA transfers when a HDMA channel is configured to use $2100 as a B-Bus target, i.e. $00 must not be written to any DMA channel's B-Bus address register at any time. The fix sets $21ff (unmapped) as a target address instead and configures the DMA channel to write two registers, thereby wrapping around to $2100 on the second write.