(If you change the value of mmd_filename, be sure to preserve the " 1" version string.) Either rename the file to "DUMMY0.MMD" or change the "mmd_filename" value in sp.s. Next, choose an MMD file from the Sonic CD disc (any of the DUMMY*.MMD files are a good choice, as these are the hidden artwork screens) and copy it into the "out/disc" directory. To quickly see the demo in action, run "make setup" within the project root to create the work directories. You'll also want to grab the official Sega documentation for reference, which can be found here. You will need a copy of Sonic CD in order to use an existing MMD file. You will also need mkisofs (which should be in the cdrtools package) for creating the ISO image. Please see the readme for this project for some notes about the cross-architecture tools on various distros and on setting up your prefix in the makefile. You will of course need an M68k cross-compiler/toolchain. It will work most painlessly in a Linux environment, but should also work fine in a Cygwin setup. The code is written in M68000 assembly with GNU assembler syntax. This tutorial will go over how to load an MMD using Sonic CD's own code and how this can be applied to your own project. And that also makes for a simple yet robust basis for creating our own Sega CD game. Since these are self contained, we can load and run (almost) any of them on their own without any special supporting code. However, it's likely that most Mega CD games use the same concept of loading and executing individual modules.) (It should be noted that MMD is not a standard format, and I don't think any games besides Sonic CD use them. For example, WARP_.MMD is the code and graphics for the 'cutscene' when Sonic does a timewarp ATTACK.MMD is the Time Attack menu each of the DUMMY*.MMD files is one of the hidden image screens. Each MMD files on the Sonic CD disc is a module that is loaded and executed by a relatively small master program resident in the Work RAM. In a way, you can think of them as ROM files (though this analogy only works at a high level), as they contain all the code and graphics needed to run a Megadrive program. What is an MMD?Īnd MMD is a self-contained Megadrive program. I decided loading and executing an MMD file would be a good first step, and since I've had some surprisingly good success, I figured I'd write about it. The first step in working with the Mega CD is, of course, loading data from the disc to be used by the Megadrive. I decided to look to actual game code for examples, and turned to the game I'm most familiar with: Sonic CD. The process was hampered by terse and poorly translated documentation and missing examples from undumped accompanying disks. So I dug into the official documentation that has been online for years and quickly realized there was a mountain of information to learn to even begin to utilize the hardware. I initially wanted to do development for the Mega CD mainly to use the CD audio playback. In particular, I enjoy the Sega 16-bit era hardware, and while we have a great library for easy Megadrive development in the form of SGDK, the Mega CD is still a bit difficult to approach. While I don't have a lick of talent when it comes to the creative side of game creation, I love to work on the code and technical minutiae. Aside from disassembling games, I also enjoy assembling them.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |