Avatar
🚀

Follow me on:

Chipee - CHIP-8 Emulator in C
Published by Mike Staszel on January 1, 2020

I finished a thing in my free time! Chipee!

Goals

I’ve always wanted to write an emulator and this is the first time I actually got around to finishing one!

My goals were to learn about how to write an emulator and to re-learn C. It’s been years since I wrote any halfway decent C.

I’ve also never done anything using SDL, sound, or even a window with graphics.

Why CHIP-8?

I chose CHIP-8 because it’s the simplest thing I could find. It’s simpler than a NES or Gameboy.

I wanted the code to be as simple as possible. That’s partly why I stayed away from any sort of cleverness too — I wanted the code to be readable for others. No complex build systems, no C++ templates, etc.

Development

Maybe others will find it useful.

The most difficult thing was getting started and getting the hang of bitwise shifting operations after years of not using them.

The 2nd most difficult thing was SDL graphics and sound.

The actual CPU operations were pretty straightforward and documentation online is easy to find.

The Code

The code is available on GitHub under the MIT license: chipee: Adventures in CHIP-8

Featured Posts

  1. A typical modern Spark stack nowadays most likely runs Spark jobs on a Kubernetes cluster, especially for heavy usage. Workloads are moving away from EMR on EC2 to either EMR on EKS or open-source Spark on EKS. When you’re running Spark on EKS, you probably want to scale your Kubernetes nodes up and down as you need them. You might only need to run a few jobs per day, or you might need to run hundreds of jobs, each with different resource requirements.

    aws development kubernetes

  2. Hi there, I’m Mike. 🔭 I’m currently working on big data engineering with Spark on k8s on AWS at iSpot.tv. 🌱 I’m focusing on mentoring and coaching my team to improve their skills and release awesome products. 🌎 I occasionally write blog posts about software engineering and other topics. Management and Software Engineering I consider myself to be a software engineer at heart. Nowadays I’m trying to do less code-writing and more of everything else:

    development