Camen Design Forum

Delete

(Leave this as-is, it’s a trap!)

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.

  • 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)

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

Kroc

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).

http://camendesign.com/_stuff/oz80_vbindiff.png

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.

http://camendesign.com/_stuff/SIXTH.png

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...

Your friendly neighbourhood moderators: Kroc, Impressed, Martijn