What happens when you DMA to VRAM during active display?

Discussion of hardware and software development for Super NES and Super Famicom. See the SNESdev wiki for more information.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

What happens when you DMA to VRAM during active display?

Post by psycopathicteen »

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?
creaothceann
Posts: 611
Joined: Mon Jan 23, 2006 7:47 am
Location: Germany
Contact:

Re: What happens when you DMA to VRAM during active display?

Post by creaothceann »

(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...
My current setup:
Super Famicom ("2/1/3" SNS-CPU-GPM-02) → SCART → OSSC → StarTech USB3HDCAP → AmaRecTV 3.10
User avatar
Drew Sebastino
Formerly Espozo
Posts: 3496
Joined: Mon Sep 15, 2014 4:35 pm
Location: Richmond, Virginia

Re: What happens when you DMA to VRAM during active display?

Post by Drew Sebastino »

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).
psycopathicteen
Posts: 3140
Joined: Wed May 19, 2010 6:12 pm

Re: What happens when you DMA to VRAM during active display?

Post by psycopathicteen »

BSNES might just be ignoring it because it is unknown.
Post Reply