I have a question regarding VRAM address changes in the dummy scanline (scanline 20 zero indexed) that I would greatly appreciate a definitive answer to: Does the VRAM address increment vertically in the dummy scanline prior to the fetches for the first two tiles in the first drawn scanline and, if so, when does it do it?
Brad Taylor's 2C02 technical reference states clearly enough:
That is consistent with my observation of games such as Golf that seem to set the VRAM address to 0x73E0 before the dummy scanline presumably such that it will roll over to 0x0000 when the fine vertical scroll bits are incremented.
However, that seems to conflict with statements on the boards and the highly informative nesDev wiki that the temporary VRAM address is copied to the real VRAM address at clock cycle 304 of said scanline.
As an aside, I've been trolling the boards for the past 6 months while piecing together my Mac OS X native NES emulator. I've got nearly every Mapper 0 game working now with little glitches here and there. It's my hope that I can be as helpful to others on this board as your comments have been to me.
Brad Taylor's 2C02 technical reference states clearly enough:
Quote:
"Both horizontal *and* vertical scroll counters are updated (presumably) at cc offset 256 in this scanline."
That is consistent with my observation of games such as Golf that seem to set the VRAM address to 0x73E0 before the dummy scanline presumably such that it will roll over to 0x0000 when the fine vertical scroll bits are incremented.
However, that seems to conflict with statements on the boards and the highly informative nesDev wiki that the temporary VRAM address is copied to the real VRAM address at clock cycle 304 of said scanline.
As an aside, I've been trolling the boards for the past 6 months while piecing together my Mac OS X native NES emulator. I've got nearly every Mapper 0 game working now with little glitches here and there. It's my hope that I can be as helpful to others on this board as your comments have been to me.