Multijointed Monster Maker Posted April 3, 2010 Share Posted April 3, 2010 My sources contradict eachother, and I'm left confused. Anybody knows for sure what happens? a) graphical glitches b) dma halts till next v-blank c) dma halts till next h-blank d) dma goes slower than normal e) dma is ignored and nothing happens Quote Link to comment Share on other sites More sharing options...
ApolloBoy Posted April 3, 2010 Share Posted April 3, 2010 ? Quote Link to comment Share on other sites More sharing options...
the maddestman Posted April 3, 2010 Share Posted April 3, 2010 On which system in particular? Quote Link to comment Share on other sites More sharing options...
Multijointed Monster Maker Posted April 4, 2010 Author Share Posted April 4, 2010 On which system in particular? I'm wondering how the Genesis differs from the Super Nintendo. Quote Link to comment Share on other sites More sharing options...
malducci Posted April 4, 2010 Share Posted April 4, 2010 (edited) On which system in particular? I'm wondering how the Genesis differs from the Super Nintendo. On the Genesis, I know you can request local to vram DMA during active display - but there are only a tiny amount of slots available during active display to write to vram, scrollram, or palette ram (which all reside inside the VDP). So I would imagine a DMA request from vblank would still try to continue on through when active display hits (it doesn't necessarily mean that, but the logic supports it. I've never tested for that). And the CPU is stalled during the DMA process (and should also be during active display DMA). There is a DMA status flag, which normally you couldn't read because the CPU would be halted during the whole DMA process, but if the DMA were somehow stalled or stopped on active display transition - I guess you could read that flag to see if the VDMA completed or not. So maybe on the Genesis, it does get halted/stalled when going into active display. On SNES, Anomie's doc states that regular DMA will be halted when the display goes active. And if the current DMA channel is also the same HDMA channel used for active screen FX, it will be canceled out (otherwise it'll continue when the display has ended). There's no mention of the CPU being halted during active display when the DMA is temporarily halt, but the logic suggests that it would be halted/paused and the cpu would be free - except for the few cycles HDMA might take on those scanlines. Edited April 4, 2010 by malducci Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.