Issues with DMA

Discussion of hardware and software development for Super NES and Super Famicom.

Moderator: Moderators

Forum rules
  • For making cartridges of your Super NES games, see Reproduction.
Post Reply
User avatar
Posts: 7
Joined: Thu Nov 16, 2017 10:42 am

Issues with DMA

Post by MasterF0x » Mon May 25, 2020 1:56 pm

So I have a DMA queue specifically for VRAM and CGRAM transfers that's processed in v-blank. Everything seemed fine up until I noticed DMA would occasionally write to the incorrect address, despite verifying both the source and destination addresses in a debugger.

Is there a specific time I'm supposed to initiate DMA or am I at fault?

Posts: 21
Joined: Sat Nov 10, 2018 2:49 pm

Re: Issues with DMA

Post by Myself086 » Mon May 25, 2020 3:52 pm

VRAM address auto increments (assuming you transfer to both $2118 and $2119).
CGRAM address auto increments.
If DMA source address auto increments, the address at $43x2-$43x5 doesn't reset automatically.
DMA byte counter is 0 after the transfer is over.

I personally force blank when transferring data even in the vblank period just in case part of the transfer fails from taking too much time.

If nothing helps, I'd like to see how you set your DMA.

User avatar
Posts: 28
Joined: Sun Dec 15, 2019 1:28 pm
Location: Bronx, New York

Re: Issues with DMA

Post by Nikku4211 » Tue May 26, 2020 1:51 pm

Can we, like, please get some code so that we can see the problem?
I have an ASD, so empathy is not natural for me. If I hurt you, I apologise.

Post Reply