Should any be wondering where this project has been going for the past year, I've been working on a new Z80 assembler to be able to assemble the Sonic 1 disassembly I've made. A new language / assembler is needed because existing assemblers are limited to a line-by-line scope and cannot handle a large, dynamic assembly without tedious amounts of high-maintenance. Project page: https://github.com/Kroc/OZ80MANDIAS
Recently, the new assembler ("OZ80") was able to assemble Sonic 1, sans the dynamic / macro parts of the OZ80 code. This screenshot shows a comparison between the original Sonic1 ROM and a ROM produced by OZ80, demonstrating that OZ80 is assembling the ROM in-step, but not yet filling in the dynamic values (jump addresses).
In order to handle the dynamic parts of the assembling process, we need a virtual machine. At first I attempted designing my own syntax for one, but this was more effort than it was worth, so I opted to implement a Forth system (read about Forth here: https://en.wikipedia.org/wiki/Forth_%28programming_language%29 )
Forth systems make good VMs because there are very simple to implement on just about any architecture. Here's a screenshot of SIXTH, my VB6-Forth-like, playing with the stack.
So the chain of turtles currently looks like:
*MaSS1VE > Sonic 1 disassembly > OZ80MANDIAS (assembler) > SIXTH (VM)*
Which is why MaSS1VE itself has not seen much work recently, but the overall picture is still being work on nearly daily. Once I have a working assembler, I can better probe the workings of the game, which allows me to implement the features of MaSS1VE.
A long way to go still...