diff --git a/desmume/ChangeLog b/desmume/ChangeLog index 8b0975e57..0b09e88b7 100644 --- a/desmume/ChangeLog +++ b/desmume/ChangeLog @@ -22,6 +22,7 @@ - Add secure area decryption from ndstool [zeromus] - change backupmem autodetection to catch more cases of unusual usage patterns [zeromus] - Fixed Thumb LDMIA (fixes ingame Dead'n'Furious) [shash] + - Fix repeating DMA (fixes NSMB parallax BG) [zeromus] Graphics: - Added gfx3d module which emulates the whole GE as part of the core emu. [zeromus] - Moved the windows/cocoa OGLRender to the emu core and replace ogl_collector. diff --git a/desmume/src/MMU.cpp b/desmume/src/MMU.cpp index 1d38f9ca1..a28ab6c63 100644 --- a/desmume/src/MMU.cpp +++ b/desmume/src/MMU.cpp @@ -876,6 +876,11 @@ void FASTCALL MMU_doDMA(u32 proc, u32 num) dst += dstinc; src += srcinc; } + + //write back the addresses + DMASrc[proc][num] = src; + if((u & 0x3)!=3) //but dont write back dst if we were supposed to reload + DMADst[proc][num] = dst; } }