I still dont recognize (and I must admit I feel ashamed about this being like 10 years on SNES ASM) how the 32x32 etc write modes of the SNES DMA work : does for example transfer mode $1 (that is, a 1 to register $2115) cause the VRAM address pointer to be increased by a step of 32 for the next 32 times? Thus repeating the same value on 32 different locations? Thanks for the help!!
Why don't you go to a SNES technical forum to ask all these SNES questions? Try Zsnes, Snes9x and NESdev boards.
Because I trust more you guys than those over there at ZSNES of course :lol: EDIT : besides, I dont want to set up a mess, but I thought this would be a dev discussion forum?
Seems pretty on-topic to me, and these technical threads are often interesting even if I can't understand any of the ASM stuff.
They aren't about general dev hardware at all but SNESdev technicalities which can only be answered by SNESdevers. It appears as if few to none are currently active on this board. I know for a fact Snes9x/ZSnes/Nesdev will be a better place to ask because those are active communities with a wealth of knowledge regarding SNES and some talented people who continue to strive for low-level SNES knowledge. Anyways, though I am not very familiar with SNES, I believe I can answer the simple question. DMA copies pages or segments of memory, not a single byte to multiple addresses. When you write a page to a DMA register, which increments 32 every write, it will write source+0 to dest+0, source+1 to dest+32, source+3 to dest+64 etc. I assume the specific SNES application is for DMAing a nametable column.
Huh? What do you mean by interleaving memory? Interleaving swaps pages/words of memory around which is definitely not what DMA is for. Interleaving of SNES ROMs is done to resolve hardware constraints.