Four years ago now (damn, has it really been that long?), Yuji Naka shared footage of Sega Research & Development from February 1990; included among the footage was an extremely early version of Sonic 1 running on a DOS computer, and fans were able to decipher the code. However, one other discovery made from the footage was that the game had been compiled in 2500AD's compiler X68K, which had been used in several other games. Given how old this compiler was, and the general secrecy surrounding the company who made it, it was unlikely that it would have resurfaced. Until today, as after looking at Clownacy's blog post on Sonic source code, I did some digging and... https://archive.org/details/2500ad-x68k The compiler, having been uploaded July, and sitting basically undiscovered (barring 14 random viewers); although using it nowadays would be highly impractical (given you'd basically be forced to run it in DOSBox to use it), it is amazing to now have the same tools the developers had back in 1990, as it gives you an idea of how limited the tools were. Of note, it seems like Sonic 2 REV02 and Sonic 3 switched back to this compiler, as they share the same oddities as Sonic 1; this includes optimized add/subtract instructions, absolute long "leas", and no "JumpTo" blocks. I wouldn't be surprised that Sonic 2 being developed on a Macintosh-like environment was a decision made by the American staff, and Naka switched back because... he thought it was convenient? Whatever the case, enjoy.
Interestingly, look like it was our own member Devon that provided it to the uploader. Regardless, a good historical find. I’ve actually thought about looking into 68k Macintosh assemblers, given the likelyhood that Sonic 2 Revisions 0 and 1 were assembled on one (could have also been an Amiga, but regardless final assembly was done on a big-endian platform).
Actually, I got it off another guy who posted it in a public Discord server I used to be in, so credit should go to ctr001. The one uploaded to archive.org is actually a Win32 version, so it will run on modern Windows.
Oh, really? Well, i that's the case, now I'm anticipating someone trying to make the current disassembly with it.
According to this post by evilhamwizard, either Devpac (2?) for Atari ST systems or ProASM for Amiga systems was used to assemble Sonic 2, with Devon stating that ProASM matches Sonic 2 quite well. What an awesome find!
To be honest, having thought about it more, it's probably more the linker that should be considered when it comes to the JmpTo's. I don't rememeber which one I tested, though. I'd need to retest it.