nesdev.com
http://forums.nesdev.com/

OAMADDR != 0 behavior.... Wrapping?
http://forums.nesdev.com/viewtopic.php?f=3&t=14712
Page 1 of 1

Author:  Bowie90333212391 [ Sat Aug 20, 2016 7:07 am ]
Post subject:  OAMADDR != 0 behavior.... Wrapping?

I was looking on http://wiki.nesdev.com/w/index.php/PPU_registers and it wasn't clear...

In the case where OAMADDR != 0 (say it is 255), and we do a write to OAMDMA, triggering a DMA operation, do we only write one byte (to OAMADDR 255) OR do we wrap and write to 255 and then to 0, 1, 2, etc?

Author:  Dwedit [ Sat Aug 20, 2016 7:10 am ]
Post subject:  Re: OAMADDR != 0 behavior.... Wrapping?

The increment operation will wrap from 255 to 0.

Author:  Bowie90333212391 [ Sat Aug 20, 2016 7:13 am ]
Post subject:  Re: OAMADDR != 0 behavior.... Wrapping?

Dwedit wrote:
The increment operation will wrap from 255 to 0.


Okay, so it will always take 513 or 514 cycles then instead of 1 in that case.

Author:  thefox [ Sat Aug 20, 2016 7:38 am ]
Post subject:  Re: OAMADDR != 0 behavior.... Wrapping?

The DMA is performed by the CPU (2A03). It doesn't know anything about the state of PPU, it just does 256 writes to $2004.

Page 1 of 1 All times are UTC - 7 hours
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/