Introducing Miracle

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…

Filed under: Coding Emulation
Posted at 05:00:00 GMT on 24th February 2011.

About Matt Godbolt

Matt Godbolt is a C++ developer living in Chicago. Follow him on Mastodon or Bluesky.