Recently I came across the awesome YouTube Channel from Bisqwit. He talks a lot about emulator programming. In one video he talks about Chip8. Chip8 is an interpreted programming language that was developed in the 1970s. It was made to allow programmers to create video games in an easy way. The Chip8 architecture is relatively simple, so it makes a good starting to learn about emulator programming.
The picture below shows a computer running an CHIP-8 game. Picture was photographed by Joseph Weisbecker, distributed under a CC-BY 2.0 license.
I started developing my own CHIP-8 interpreter in C++. I used this document as a reference. My implementation currently can interpret all instructions. What’s left to do, is to write a frontend for it. Source code of my implementation can be found here.