Personally, I had some courses on computer architectures, and those covered the theory of how CPUs are constructed, how they run programs, etc. I decided to write an NES emulator. So:
- Find Wikipedia articles, and learn that it used a variant of the MOS Technology 6502, which was used in a <i>lot</i> of computers in the 80s.<p>- Find some digitized assembly programming manuals from the time (I think the one I used was distributed with the Commodore 64, and ended up having several typos introduced by OCR).<p>- Write a tool to recognize, decode, and print out an operation when you feed it a little data<p>- You basically need to set up a loop of fetching instructions, interpreting them, then doing what they say. An actual CPU runs in a similar loop, and it generally doesn&#x27;t stop until power is removed,<p>I think that after the classes I took, I read a lot of what other emulator writers said. This article is a basic look at the structure of an emulator, the theory behind them, and some different designs: <a href="http:&#x2F;&#x2F;fms.komkon.org&#x2F;EMUL8&#x2F;HOWTO.html" rel="nofollow">http:&#x2F;&#x2F;fms.komkon.org&#x2F;EMUL8&#x2F;HOWTO.html</a>