This is the beginning of a true native port of Sonic 1 to PC.
What you see right now is a custom Mega Drive emulator written by me in Rust. It supports the minimum hardware necessary to run the game (68k + basic address bus and VDP emulator/renderer). I've set it up to support live high-level script injection, so that I can gradually replace code in the ROM with high-level code in real time. Eventually I'll have all game code moved out of the ROM and running in script, therefore crossing the line from "an emulator on your computer running Sonic 1" to "Sonic 1 running on your computer through an emulator-like API".
Aside from the effort being really cool, I hope to eventually turn the code I'm using to drive this process into a standalone library, so that others may develop games or ports or whathaveyou using a subset of the Mega Drive's programming facilities, adjusted to take advantage of modern hardware. Like a fantasy console!
