Chip8 'n' Dale 2.0 - Feature Creep Edition


An adventure in writing an emulator in .NET Core. (with a little Skia# and lots of GTK#)

A talk given at the Cape Town Microsoft Developer User Group - @CPTMSDUG in Cape Town on 23/10/2019 on emulators and writing a CHIP8 emulator in .NET Core

Unfortunately this talk was not recorded, however the slides are available here

The talk was version 2.0 of the talk I gave at the Developer UG a few months ago

The emulator code is available on Github

As mentioned in the talk this all started because I wanted to learn how emulators work and what better way than write my own.

The talk started off with describing what an emulator is, how it works and then moved on to explaining how to write your own. Eventually we do a little time travel to 1977 and talk about the Telmac 1800 and COSMAC VIP computers and then finally the CHIP8 platform.

After the basics are all covered its Demo Time and I show off my emulator running various ROM images and walk through the code and show off the disassembler and debugger. This is the perfect opportunity to re-explain things like the opcodes and how they work as you step through the CHIP8 instructions showing what they’re disassembled to and what they do.

This talk is aimed to appeal to everyone from junior developers just starting out all the way to the grumpy old farts.

As mentioned in the talk the majority of the emulator was written based on the information in the CHIP8 - Wikipedia Page.

A few tweets with photos from the evening.

CHIP8 - Wikipedia Page
Telmac 1800
COSMAC VIP
Accuracy takes power: one man’s 3GHz quest to build a perfect SNES emulator
Octo - CHIP8 IDE

See also