What happens when you DMA to VRAM during active display?

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
What happens when you DMA to VRAM during active display?
by on (#218686)
Has this been tested? Does the sPPU read from VRAM as usual but the data gets contaminated with $2118/$2119, or does it write $2118/$2119 to VRAM, but at the wrong address? Does it attempt to read and write at the same time?
Re: What happens when you DMA to VRAM during active display?
by on (#218718)
(H)DMA is implemented by the 5A22, so for the PPU there's no difference to regular CPU accesses during active display.

EDIT: But there might still be an edge case...
Re: What happens when you DMA to VRAM during active display?
by on (#218719)
I'm fairly certain it just flat out ignores what you're sending to it, from experience with accidentally trying to DMA in tile data during active display in BSNES (and looking at the VRAM viewer) and you generally (or if ever?) cannot do two operations with ram at the same time, and it's at max bandwidth feeding data to the PPUs during active display. Actually, if I'm not mistaken, there is one BG mode that does not use the full 16bpp for backgrounds, and there's always the option to turn of layers. (Although I'm still not sure of any use this would have).
Re: What happens when you DMA to VRAM during active display?
by on (#218729)
BSNES might just be ignoring it because it is unknown.