Apart from that, the complexity of all the system calls made by the program is also a huge challenge as those not always have an equivalent in the new system and are really hard to match at such a low level. It is, however, not impossible. Emulators such as Dolphin do that, also combined with dynamic recompilation.
At that point, you've got enough to read the ROM into memory and start interpreting opcodes, even if you implement them one at a time as they come up. The CPU is just going to be reading and writing data to its registers and the memory map, so it's pretty straightforward.
Pretty quick, you'll run into a point where it expects some bit of external hardware results (usually reading from 0x2002 to query for the VBlank signal). That's the domain of the Picture Processing Unit. Start with simulating the VBlank flag, and go from there. The PPU is fun, and if you've gotten this far, you'll be in a good position to figure things out without a guide tutorial. There's a whole ton of documentation out there, and explanations about every aspect of the NES' hardware.
If you want to write a NES emulator, I'd suggest starting with writing a CHIP-8 emulator.
I must say that I enjoyed the read, but the introduction was a little bit too short for my taste. Opinions ?
by the time anyone gets through reading the 31 page document, let alone follow along and run the code, the mob has moved on and you are left alone with questions and comments
i had a similar thought when this was posted: https://news.ycombinator.com/item?id=12901660#12903516 ; that was 50 page high concept pdf with complicated math
i'd be interested in a Read HN style offering with a link and a posted future date
the time is set in the future for when discussion will occur
giving interested participants and spectators time to take in the material and any supplemental research