Do you remember this? Well, reading or writing $2007 during rendering triggers a Y increment and a coarse X increment, but is the PPU write* performed? Ignored?
*a write to CHR RAM, nametables or color ram
In other words... is this correct?
*a write to CHR RAM, nametables or color ram
In other words... is this correct?
Code:
//2007W I/O
case 7:
if(ppuisrendering) {
_clock_y(); _clock_x();
} else {
unsigned int tempaddr = ppu->address & 0x3FFF;
ppu->address = (ppu->address + ppu->inc) & 0x7FFF;
if(tempaddr < 0x2000) {
/* CHR RAM write */
} else if(tempaddr < 0x3F00) {
/* nametable write */
} else {
/* color ram write */
}
}
case 7:
if(ppuisrendering) {
_clock_y(); _clock_x();
} else {
unsigned int tempaddr = ppu->address & 0x3FFF;
ppu->address = (ppu->address + ppu->inc) & 0x7FFF;
if(tempaddr < 0x2000) {
/* CHR RAM write */
} else if(tempaddr < 0x3F00) {
/* nametable write */
} else {
/* color ram write */
}
}