DMA during HBlank ...

For anything related to VDP (plane, color, sprite, tiles)

Moderators: BigEvilCorporation, Mask of Destiny

Post Reply
iNCEPTIONAL
Interested
Posts: 49
Joined: Thu Feb 17, 2022 1:14 am

DMA during HBlank ...

Post by iNCEPTIONAL » Sat Jul 01, 2023 5:45 am

Can the Genesis DMA during HBlank, and if so, what's the difference between how it works compared to the SNES' HDMA?

What are the advantages/disadvantages of each of the approaches there?

Because, I think I've read the Genesis can DMA during active scan and the SNES cannot, which seems like a huge advantage for Genesis there, but I assume that's what HDMA somewhat compensates for on SNES, yet I don't understand how that would be the case if Genesis can DMA during HBlank too anyway.

So, any insight on how the two systems different approaches work there (in layman's terms), for both DMA and HDMA actually (if we just pretend that name applies to Genesis too), would be much appreciated.

TmEE co.(TM)
Very interested
Posts: 2440
Joined: Tue Dec 05, 2006 1:37 pm
Location: Estonia, Rapla City
Contact:

Re: DMA during HBlank ...

Post by TmEE co.(TM) » Sat Jul 01, 2023 9:51 am

There are no access slots in line blanking period, because VDP is busy rendering sprites which uses up all the VRAM bandwidth in that time. You can turn off rendering for the duration and get few tens of bytes worth of VRAM bandwidth but the cost is no sprites on the next line and some garbage sprite pixels because of the disrupted sprite rendering process. SNES has similar problems as it also renders sprites in line blanking period from what I know.
There is a FIFO however and it can hold 8 bytes of information which will get dispatched on as access lots get available so the game can in its line interrupt handler do its writes and get stuff going anyway. Few things like VDP register accesses are not bound by VRAM access slots and can be updated anytime.

HDMA is just a way to automatically send some bytes of into to the PPU when active line rendering period has ended, without CPU involvement past setting up the HDMA parameters. You can achieve same things with just line interrupts too although HDMA can exactly hit any access slots the PPU provides so that is its main advantage.
Mida sa loed ? Nagunii aru ei saa ;)
http://www.tmeeco.eu
Files of all broken links and images of mine are found here : http://www.tmeeco.eu/FileDen

iNCEPTIONAL
Interested
Posts: 49
Joined: Thu Feb 17, 2022 1:14 am

Re: DMA during HBlank ...

Post by iNCEPTIONAL » Sat Jul 01, 2023 12:26 pm

OK. Thanks for the info. :)

Post Reply