Many of us tinker with hardware. Others prefer to move letters back and forth on the screen and build software. However, if you really want to become a master of your profession, then you need to understand, how a computer really works. And I don’t mean programming languages, I don’t mean compilers and I do not even mean assembly.
I mean the level below. How do machine instructions consisting just of zeros and ones actually get processed? How do registers, ALUs, program counters, buses etc. really work together? The moment you understand that, you play in a different league. 💯
And one - actually very rewarding - way to understand that, is to build an emulator. Such a piece of software reads the target architecture's machine code byte by byte and implements operations - normally executed by hardware - in software. Writing an emulator for a complex target architecture is … well, complex. So why not start with the opposite and therefore a simple architecture?
And what fits the term 'simple architecture' better than CHIP-8?
Initially developed by Joseph Weisbecker for the COSMAC VIP back in the mid-70s, CHIP-8 somehow represents one of the first virtual machines. By porting this VM to other hardware and architectures, one gets a whole series of old-school games for free. So no boring task ahead. If you succeed, there are a number of games to be played on your emulator.
There exists a perceived myriad of CHIP-8 Emulators out there already. And Eric Grandt decided, to add one more. His article is neither super fresh, nor mega innovative. But it is super complete. Eric creates a fully functional CHIP-8 version in Javascript, and his article is the perfect brain food for a rainy weekend.
And a weekend is more than enough to Create your own CHIP-8 Emulator.
Enjoy Space Invaders 👾! Send us some cookies afterwards.