Page boundary crossing determination

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Page boundary crossing determination
by on (#51326)
I <relatively> recently changed my emu core from scanline- to pixel-based and have noticed artifacting in RasterDemo.nes that was not there in the scanline-based implementation. I have convinced myself it is operand timing related, as I can mess around with cycle counts and change the artifacting.

Does anyone have the de-facto 2A03 opcode timing reference guide? I have found disagreements between the various ones that I have been using online. Some of the problems appear to be related to whatever OCR software was used to scan in the C=64 PRM that I was using at one point. 3's became 8's or vice-versa. I have attempted to put common sense into the figuring out of these types of things, but am sure there MUST be a "gold standard" reference somewhere?!
Re: Page boundary crossing determination
by on (#51327)
Okay so I found my problem...I was incorrectly determining page-boundary crossing cases of the indexed addressing modes.

I'd still like to find a trusted opcode cycle count reference, though.

by on (#51329)
This is what I use for my instruction reference while coding:

http://www.obelisk.demon.co.uk/6502/reference.html

it contains the cycle too. I don't know how trusted it is but it's always been accurate from an ASM coder point of view.

by on (#51338)
This is pretty much what I used when I made a cycle based emulator, it is pretty complete IMO. It covers all the operations of each cycle.
http://www.viceteam.org/plain/64doc.txt

by on (#51405)
- Oh yeah, that doc. I used it to code my CPU emulator.