My Idea

I decided recently that I would write my first emulator. I selected the CHIP-8 virtual machine, because it’s one of the easiest to emulate. I’m going to write more about my journey into emulation here. This post is mainly to introduce my idea to the world, I guess. (Yes, several people have already completed this task. I’m just doing it for the challenge and the educational value it will provide.)

Defining Emulator

An emulator is a computer program that imitates a “computer system” (like a gaming console). An emulator allows users to run software written for the particular “computer system” on a completely different computer system.


Have you ever used a console emulator? I’ve used an emulator called snes9x to run SNES games on my home computer. Thanks to emulation I’m able to play some of my favorite SNES games without having to obtain and use an actual SNES console. (I would like to shout out to emulator developers and thank them sincerely for this service they’re providing gamers).

What the heck is CHIP-8?

CHIP-8 is an interpreted programming language developed by Joseph Weisbecker in the 70s. CHIP-8 programs run on a CHIP-8 virtual machine. As I said above, I will be writing an emulator to emulate the virtual machine. The goal is to be able to run any and all of the CHIP-8 roms available online using my program.


My next post will serve as a “how to get started” guide for those of you who have no clue where to begin. I’ll talk about things you should know before you get started. I’ll discuss my personal setup and development environment. I’ll also discuss the approach I’ll be taking and why.

Thanks so much for reading this post. I hope you enjoyed it. Feel free to leave comments below.