March 10, 2026

Zeighty

CSharp & MonoGame, Gameboy Emulation

This is very much a work-in-progress, even more than usual. I got a good start, implementing the cut-down Z80 chip in the DMG (Gameboy), I got some basic single-step and debugging features working, I made it so I could ‘hard code’ an assembler program (in bytes) that looped and manipulated memory (for example), and it could be run and checked. I got underway with the display and the tileset memory…

But as I started to work on the DMA side of it, I realised that my ‘main control’ loop timing was wrong – I was limiting the computer to a single instruction (usually 1-4 ticks) per game frame…. so the emulator was running incredibly S L O W L Y.

A Tired-Looking OG Gameboy
Nintendo Game Boy DMG-01


Deciding that maybe I had started off in deeper waters than I should have done, I pivoted over to doing a Chip-8 emulator, as apparently that’s where you ‘should’ start off…!

So, that was Chip-Ate.

That’s near-enough done now, and I shall be coming back to Zeighty in the very near future. My end-goal with this is simply to have it play Tetris. If it plays Tetris, I’ll be happy. I know that this is almost the most basic, entry-level ROM to be able to run, but that will be enough of an itch for me.

Zeighty – on Github

Zeighty Debugger
Zeighty Debugger
More Zeighty Debugger
More Zeighty Debugger

Leave a Reply

Your email address will not be published. Required fields are marked *