fix repeating dma. the incremented source and dest address werent being written back into the internal dma control variables. this fixes nsmb parallaxing backgrounds. we still have a rather large BUG in that the updated dma registers can't be read back by the game software. wait until next version to retool the dma control logic.

This commit is contained in:
zeromus 2008-12-27 08:10:45 +00:00
parent 7ba70e0b9d
commit 93af0a8e36
2 changed files with 6 additions and 0 deletions

View File

@ -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.

View File

@ -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;
}
}