Delete

To delete this post you must be either the original author or a designated moderator.
The content of the post will be removed but the name and date will remain.

Remove completely (moderators only)

The post will be removed completely from the thread, rather than blanked

Only posts on the last page of the thread can be removed completely (so as to not break permalinks)

Delete

RE[14]: MaSS1VE: The Master System Sonic 1 Visual Editor

08 May ’15 · 08:29Kroc

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.

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.