This weekend was a long weekend in the US (Presidents’ Day, apparently). As well as spending some time with my family, I set myself the goal of doing something “cool”, programming-wise.
Inspired by JSNES and JSSpeccy, I decided to port Richard Talbot-Watkins and my old Sega Master System emulator, !Miracle, to JavaScript.
I borrowed the Z80 emulator from JSSpeccy and thankfully Richard’s Master System documentation is still on the web, so I had a great head-start.
[画像:Miracle, showing Sonic the Hedgehog]
Sonic wags his fingers at me.
You can take it for a spin here (I’ll hack it later to allow me to embed it here). Keys are W, S, A and D for movement, Enter and Space for the fire buttons. I’ve rather cheekily embedded two ROMs that work quite well, Sonic and Teddy Boy.
The source code is on github if you want to take a peek.
There’s a ton of bugs and things to implement (most notably sound), but I’m pretty damn pleased with the results.
Next up, fix some bugs and then perhaps think about a BBC Micro emulator…
Matt Godbolt is a C++ developer living in Chicago. He works for Hudson River Trading on super fun but secret things. He is one half of the Two's Complement podcast. Follow him on Mastodon or Bluesky.
Copyright 2007-2025 Matt Godbolt. Unless otherwise stated, all content is licensed under the Creative Commons Attribution-Noncommercial 3.0 Unported License. This blog is powered by the MalcBlogSystem by Malcolm Rowe. Note: This is my personal website. The views expressed on these pages are mine alone and not those of my employer.