Does CPU register access show up on address bus?
Moderator: Moderators
Does CPU register access show up on address bus?
Does access to the CPU I/O registers (e.g., APU registers or OAM DMA) show up on the address bus?
get nemulator
http://nemulator.com
http://nemulator.com
Re: Does CPU register access show up on address bus?
Yes, they do show up. On the HardNES player I made ages ago, I mapped RAM under 4xxxh so that I could read back what was written to the registers. This worked fine.James wrote:Does access to the CPU I/O registers (e.g., APU registers or OAM DMA) show up on the address bus?
The only caveat is on readback registers (4015) you will get the bits from 4015 instead of from the outside world. For the unimplemented bits of 4015 I am not sure what happens. They either come from the outside world or are set to a default level (0 or thereabouts).
Also it was brought up that 4018, 4019, and 401a are actually readable too and return the square volume and/or DPCM level somehow but I am not sure if it works. Q messaged me on IRC one day and said he thinks after studying the chips that this might happen.
Unfortunately my copyNES doesn't work any more due to a parallel port problem after I replaced the mobo on PC #2 so I have not checked yet.
/* this is a comment */
Re: Does CPU register access show up on address bus?
If $4015 is anything like $4016 and $4017 (and it might not be because those are the outside world), you get open bus on the unimplemented bits, which means the outside world comes through. I can't test this myself because open bus behaves differently with a PowerPak.kevtris wrote:The only caveat is on readback registers (4015) you will get the bits from 4015 instead of from the outside world. For the unimplemented bits of 4015 I am not sure what happens. They either come from the outside world or are set to a default level (0 or thereabouts).
Last edited by tepples on Fri Mar 18, 2011 10:53 am, edited 1 time in total.
Re: Does CPU register access show up on address bus?
Yeah, 4016 and 4017 are different. They are external to the chip. 4015 is the only (known) register that is generated internally... unless 4018-401a allow reading. Those two 74HC368's on the NES board are what are used when 4016 and 4017 are read. There's two output signals that drive them from the CPU.tepples wrote:If $4015 is anything like $4016 and $4017 (and it might not be because those are the outside world), you get open bus on the unimplemented bits, which means the outside world comes through. I can't test this myself because open bus behaves differently with a PowerPak.kevtris wrote:The only caveat is on readback registers (4015) you will get the bits from 4015 instead of from the outside world. For the unimplemented bits of 4015 I am not sure what happens. They either come from the outside world or are set to a default level (0 or thereabouts).
/* this is a comment */