Sonic CD 2011 3DS
|Sonic CD 2011|
This is a port of the Sonic CD 2011, based on the Retro Engine (RSDK) v3 decompilation and Rubberduckycooly's Sonic CD 2011 decompilation (which was based on the PC remake with improvements and tweaks from the mobile remakes).
Note: You will need the assets from the official releases to run this decompilation.
- Complete stereoscopic 3D (HW build only).
- Video playback support courtesy of Oreo639's 3ds-theoraplayer.
- Built-in mod support, accessible from the Dev Menu.
- There is now a settings.ini file that the game uses to load all settings, similar to Sonic Mania.
- Dev menu can now be accessed from anywhere by pressing the SELECT button if enabled in the config.
devMenuis enabled in the config, pressing the R button will activate a palette overlay that shows the game's 8 internal palettes in real time.
Release contains 2 builds of the game:
- SW builds - More accurate rendering, requires a N3DS to run at full-speed.
- HW builds - Uses custom render backend at the expense of palette/parallax effect and special stages. Recommend for O3DS (optional for N3DS).
Both builds are available in 3DSX and CIA formats:
- CIA - Install it with the CIA manager of your choice.
- 3DSX - Place .3dsx in sd:/3ds/SonicCD/ (rename it to SonicCD.3dsx).
Before you can play you need to extract gamefiles from your legally purchased copy of Sonic CD (2011):
- Take the data.rsdk file and place it in sd:/3ds/SonicCD/ (more info on the Android version).
- Extract your videos to sd:/3ds/SonicCD/videos/. You might want to scale down your videos for them to run well, or download prescaled versions from GameBanana.
- (Optional) To use Script Mods, place your Scipts folder to sd:/3ds/SonicCD/. You can download said folder from Rubberduckycooly's repo.
You can get the official release of Sonic CD from:
Even if your platform isn't supported by the official releases, you must buy it for the assets in order to run the homebrew (you don't need to run the official release, you just need the game assets).
Q. What's the difference between HW and SW builds?
SW builds use software rendering, using the same basic rendering backend that the PC/console ports of Sonic CD used. Rendering is more accurate, and all effects like scanline deformation and realtime palettes are supported. However, its rather CPU-intensive, and requires a N3DS to run at full-speed.
HW builds use a completely custom Citro2D-based backend, using the 3DS's PICA200 to get graphics on-screen, and thus can run at full-speed on O3DS systems, in addition to supporting features like stereosopic 3D, however, certain features like realtime palettes aren't supported.
tl;dr use HW if on O3DS or if you care about 3D, use SW if on N3DS.
Q. Why is the port separated into HW and SW builds?
Because that's how the base decomp was set up initially, at the time the port was started.
The plan is to integrate both backends into a single build eventually, however, this probably won't happen until the HW backend is complete.
Q. Why dont some buttons in the menu work?
Buttons like leaderboards & achievements require code to be added to support online functionality & menus (though they are saved anyways), and other buttons like the controls button on PC or privacy button on mobile have no game code and are instead hardcoded through callbacks, and it's not really worth it to go through the effort to decompile all that.
Q. I found a bug/I have a feature request!
You can submit an issue in the issues tab for any request/issue that are exclusive to the 3DS port.
If the issue also occurs on the base decomp (i.e. on PC), you're better off submitting the issue to the main branch.
Q. Is there a port of the Sonic 1/Sonic 2 decompilation?
Yes! You can check out JeffRuLz's RSDKv4 port.
Q. Why is video playback so slow?
You're going to want to scale down your videos for them to run well on 3DS.
You can find pre-scaled versions of the videos here.
- Fix scripts on mobile RSDKs not loading properly, rendering the game unplayable.
- Fix modconfig.ini not being properly written to; mod selections should no longer be reset on startup/entering the mod menu.
- Fix bug where the music wouldn't play on the main menu upon switching soundtracks.
- Fix stage-specific sound effects not being properly loaded on stage reloads.
- Console output is now disabled on the bottom screen when the engine isn't in debug mode.
- The engine now loads separate video files when using the US soundtrack; said files should have the extension .us.ogv. Again, pre-scaled versions can be found here.
- Fixed the depth value on sprite layers, certain objects should no longer go "into" the background.
- Fixed slight discoloration issues (most noticeable on the title screen).
- Audio backend switched (again) to use SDL_mixer. This should get rid of any bugs where the audio thread would randomly hang, preventing music and sound effects from playing,
- Banner and icon were updated to match the 2011 promo materials, as well as to remain consistent with JeffRuLz's decomp ports. The jingle was also fixed, and now plays properly on the home screen. You may need to uninstall older versions for this to fully take effect.
- Data Folder mode is now fixed.
- Mod loader support is now implemented. You can access the mod loader from the dev menu. Make sure you have your Scripts folder extracted to /3ds/SonicCD (you can download said folder from this repo.
- Video support is now implemented via @Oreo639's 3ds-theoraplayer. Make sure you extract your videos to /3ds/SonicCD/videos. You might want to scale down your videos for them to run well, or download prescaled versions from here.
Experimental HW Build Added:
- A WIP custom render backend for the Retro Engine using Citro2D was added. A few effects aren't yet implemented, but speed is good at O3DS clock.
- Much of the game is playable using this backend, however, Special Stages are still a WIP, and can't be played unless you're really good at playing through these without looking at the floor.
- Palette effects aren't fully supported (i.e. palette cycling doesn't work properly, and Tidal Tempest ends up resembling its Gems Collection counterpart using the Steam RSDK).
- Parallax is implemented, but a bit screwy at points, and per-scanline parallax isn't yet implemented. That said, "It's not a big problem really, most people won't really notice the per tile parallax." Taxman's words, not mine.
- Stereoscopic 3D is supported, and you can adjust the depth using the 3D slider.
- Rubberduckycooly - For decompiling CD in the first place, as well as helping out with a few aspects of the port.
- JeffRuLz - For implementing frame limiting and helping out with the SW backend, as well as for porting OpenHCL to the 3DS, which helped immensely in developing the Citro2D backend.
- Oreo639 - For helping out with the Makefile, as well as being behind 3ds-theoraplayer, which the port uses to play back videos.
- Retro Engine Modding Discord Server.