Sonic CD Plus Plus

From Sonic Retro

Sonic CD Plus Plus
Version: 1.0
Last release: 20 June 2009
System: Sega Mega-CD
Original game: Sonic the Hedgehog CD
Credits: qiuu, snkenjoi

SonicCD++ (or Sonic CD Plus Plus) is a hack of Sonic the Hedgehog CD by qiuu and snkenjoi, adding the Sonic the Hedgehog 2 (16-bit) style Spin Dash and the newer Homing Attack into the game. This enables the gameplay to be significantly speedier, while Sonic CD is known to be one of the more slow-paced games in the classic Sonic series.

New features



Download Sonic CD++
Multiple downloads available

Playing on Sega CD / Mega-CD with Redbook Audio (Music)

Required Software

Patching your copy of Sonic CD to Sonic CD++

1. Place the Sonic CD++ ISO File (extracted from the 7z archive) into it's own folder.

Soniccd plus plus patch step01.png

Skip Steps 2 - 7 if you already have the Audio files from the game. Instead, just copy them to the same folder as the ISO.

2. Insert your copy of Sonic CD into your computer. Run Fre:ac and Click the "Add from CD" Button.

Soniccd plus plus patch step02.png

3. If prompted to choose a CDDB record, click Cancel.

Soniccd plus plus patch step03.png

4. Now Click Options > General Settings

Soniccd plus plus patch step04.png

5. Choose Windows Wave File Output, Select the output directory to be the location of the ISO file, and change Filename pattern to <track>

Soniccd plus plus patch step05.png

6. Click OK and then click the green play button to start the encoding

Soniccd plus plus patch step06.png

7. Now your Project folder should have the ISO plus all the CD audio files from your copy of Sonic CD.

Soniccd plus plus patch step07.png

8. Run SegaCueMaker and browse to this folder.

Soniccd plus plus patch step08.png

9. Click Generate Cue

Soniccd plus plus patch step09.png

10. You should see output as shown below. Now click Save Cue

Soniccd plus plus patch step10.png

11. It's good practise to name the Cue the same as the ISO - for the US version this is SonicCD++_(U).cue

Soniccd plus plus patch step11.png

12. Run your CD Burning Software (ImgBurn shown here) and Select the option to Write an Image File.

Soniccd plus plus patch step12.png

13. Select the SonicCD++_(U).cue file, Insert a Blank CD-R and click Burn. You must select the .cue not the .iso file!

Soniccd plus plus patch step13.png

Once the CD burning is finished you now have Sonic CD++ complete with music!

Note: This technique allows you to also mix and match soundtracks, for example, you can have the EU/JP soundtrack with the US Sonic CD++ ISO (this has been tested and confirmed to work.)

Development history

Everything started with snkenjoi asking qiuu whether he had attempted making a Sonic the Hedgehog CD hack yet (which he had of course not), upon which qiuu brought up Mad Echidna's
Sonic Retro
offer from a year back
to pay $100 to the first person to put the Spin Dash from Sonic the Hedgehog 2 (16-bit) into Sonic CD. While qiuu doubted that it was up to date, it got snkenjoi motivated to start attempting to insert the move into the game. So, had it not been for either of these two (snkenjoi and MadEchidna), the project wouldn't have even started in the first place.

So for some time, qiuu mostly kept passive, merely giving advice to snkenjoi every now and then--but seeing the progress, he felt more and more like joining in. So parallel to snkenjoi's work, he started writing a tool that would make finding and inserting new content into the Sonic CD ISO image a lot easier. Being done with that, qiuu set up an SVN repository marking the starting point of the two's collaboration. With the Spin Dash already halfway implemented, qiuu implemented the Homing Attack, which turned out to be significantly less difficult to add. From here, it was simply a case of further developing the code in order to insert the additional features into the game--and notably, repeatedly trying to find free space to fit them in! The authors thank Tweaker for helping with this by mentioning the unused Sonic sprites, and MKAmeX for contributing Spin Dash sprites for the shrunken form Sonic assumes during some of Metallic Madness Zone.

Despite only taking around a week to accomplish, most of the development time was spent fixing bugs that had appeared. The final touch, again upon Tweaker's suggestion, was adding the air roll, which took barely ~20 minutes in the end.

In the end, it was a fun challenge.

Insight into the technical aspects of the hacking process

Contrary to what one may believe, no working disassembly was made of any of the MMD files within the Sonic CD ISO image, though one or two were used as a reference at times. In essence, the technique that was used is hex hacking without a Hex editor: Code that is to be inserted is written in assembly language, and then assembled into bytecode. The location the code or data is inserted into is automatically detected by the program, which identifies routines by their bytecode. From here, the new code can be inserted into locations of known unused space. If a section of the code refers to routines or data from within the MMD, it additionally has to be patched after having been assembled. For the game to run this code, either existing jumps in game have to be hijacked, or code must be overwritten to point to the locations of the injected code, with the overwritten data being relocated at the jump destination to ensure correct program flow.

Source code is available upon request.


External links