Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Sonic CD 2011 3DS: Difference between revisions

From GameBrew
m (Text replacement - "{{Infobox-3DS-Homebrews" to "{{Infobox 3DS Homebrews")
m (Text replacement - "|description=A port of" to "|description=Port of")
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox 3DS Homebrews
{{Infobox 3DS Homebrews
| title = Sonic CD 2011
|title=Sonic CD 2011
| image = https://dlhb.gamebrew.org/3dshomebrew/SonicCD2011.jpg|250px
|image=Soniccd113ds2.png
| type = Platform
|description=Port of the Sonic CD 2011 decompilation to the 3DS.
| version=v1.32
|author=SaturnSH2x2
| lastupdated = 2021/08/20
|lastupdated=2021/08/20
| licence = Mixed
|type=Platform
| author = SaturnSH2x2
|version=1.32
| website = https://github.com/SaturnSH2x2/Sonic-CD-11-Decompilation/
|license=Mixed
| download = https://dlhb.gamebrew.org/3dshomebrew/Sonic-CD-11-3DSv1.32.7z
|download=https://dlhb.gamebrew.org/3dshomebrews/soniccd113ds.7z
| source = https://github.com/SaturnSH2x2/Sonic-CD-11-Decompilation/
|website=https://github.com/SaturnSH2x2/Sonic-CD-11-Decompilation
|source=https://github.com/SaturnSH2x2/Sonic-CD-11-Decompilation
}}
}}
<youtube>uqnWDDvbRpg</youtube>
This is a port of the Sonic CD 2011, based on the Retro Engine (RSDK) v3 decompilation and Rubberduckycooly's [https://github.com/Rubberduckycooly/Sonic-CD-11-Decompilation Sonic CD 2011 decompilation] (which was based on the PC remake with improvements and tweaks from the mobile remakes).


Retro Engine (RSDK) v3 Decompilation
'''Note:''' You will need the assets from the official releases to run this decompilation.


A Full Decompilation of RSDKv3 &amp; Sonic CD 2011, Based on the PC remake with improvements &amp; tweaks from the mobile remakes
==Features==
* Complete stereoscopic 3D (HW build only).
* Video playback support courtesy of Oreo639's [[3ds-theoraplayer_3DS|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.
* If <code>devMenu</code> is enabled in the config, pressing the R button will activate a palette overlay that shows the game's 8 internal palettes in real time.


== SUPPORT THE OFFICIAL RELEASE OF SONIC CD ==
==Installation==
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).


* Without assets from the official release this decompilation will not run.
Both builds are available in 3DSX and CIA formats:
* You can get the official release of Sonic CD from:
* CIA - Install it with the CIA manager of your choice.
* [https://store.steampowered.com/app/200940/Sonic_CD/ Windows (Via Steam)]
* 3DSX - Place .3dsx in sd:/3ds/SonicCD/ (rename it to SonicCD.3dsx).
* [https://apps.apple.com/us/app/sonic-cd-classic/id454316134 IOS (Via the App Store)]
* [https://play.google.com/store/apps/details?id=com.sega.soniccd.classic&hl=en&gl=US Android (Via Google Play)]
* [https://www.amazon.com/Sega-of-America-Sonic-CD/dp/B008K9UZY4/ref=sr_1_2?dchild=1&keywords=Sonic+CD&qid=1607930514&sr=8-2 Android (Via Amazon)]


Even if your platform isn't supported by the official releases, you '''must''' buy it for the assets (you dont need to run the official release, you just need the game assets)
Before you can play you need to extract gamefiles from your legally purchased copy of Sonic CD (2011):
==Changelog==
* Take the data.rsdk file and place it in sd:/3ds/SonicCD/.
'''v1.30'''
* 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 [https://gamebanana.com/mods/313570 GameBanana].
* 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,
* (Optional) To use Script Mods, place your Scipts folder to sd:/3ds/SonicCD/. You can download said folder from [https://github.com/Rubberduckycooly/Sonic-CD-2011-Script-Decompilation Rubberduckycooly's repo].
* 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:'''
You can get the official release of Sonic CD from:
* [https://store.steampowered.com/app/200940/Sonic_CD/ Windows (Via Steam)].
* [https://apps.apple.com/us/app/sonic-cd-classic/id454316134 IOS (Via the App Store)].
* [https://play.google.com/store/apps/details?id=com.sega.soniccd.classic&hl=en&gl=US Android (Via Google Play)].
* [https://www.amazon.com/Sega-of-America-Sonic-CD/dp/B008K9UZY4/ref=sr_1_2?dchild=1&keywords=Sonic+CD&qid=1607930514&sr=8-2 Android (Via Amazon)].


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


Attached to this release are two builds of the game, one using the software render backend, and one using the new custom hardware render backend. Keep in mind, stereoscopic 3D is only supported on the HW build.
See [https://github.com/Rubberduckycooly/Sonic-CD-11-Decompilation#advantages-over-the-pc-version-of-sonic-cd comparisons between PC and Mobile versions].


O3DS owners should probably download the HW build. N3DS owners have the choice of downloading either, depending on whether or not they want to try out the stereoscopic 3D feature, at the expense of palette/parallax effects and special stages.
==User guide==
===FAQ===
'''Q. What's the difference between HW and SW builds?'''


== Advantages over the PC version of Sonic CD ==
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.


* Sharp, pixel-perfect display
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.
* Controls are completely remappable via the settings.ini file
* The window allows windows shortcuts to be used
* Complete support for using mobile/updated scripts, allowing for features the official PC version never got to be played on PC
* Native Windows x64 version, as well as an x86 version


== Advantages over the Mobile versions of Sonic CD ==
tl;dr use HW if on O3DS or if you care about 3D, use SW if on N3DS.


* The rendering backend is based off the PC version, so palettes are fully supported (tidal tempest water in particular)
'''Q. Why is the port separated into HW and SW builds?'''


=== Additional Tweaks ===
Because that's how the base decomp was set up initially, at the time the port was started.


* There is now a settings.ini file that the game uses to load all settings, similar to Sonic Mania
The plan is to integrate both backends into a single build eventually, however, this probably won't happen until the HW backend is complete.
* Dev menu can now be accessed from anywhere by pressing <code>ESC</code> if enabled in the config
* The <code>F12</code> pause, <code>F11</code> step over &amp; fast forward debug features from Sonic Mania have all be ported and are enabled if <code>devMenu</code> is enabled in the config
* If <code>devMenu</code> is enabled in the config, pressing <code>F10</code> will activate a palette overlay that shows the game's 8 internal palettes in real time
* If <code>useSteamDir</code> is set in the config, and the user is on Windows, the game will try to load savedata from Steam's <code>userdata</code> directory (where the Steam version saves to)


== How to build: ==
'''Q. Why dont some buttons in the menu work?'''


=== Windows: ===
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.


* Clone the repo, then follow the instructions in the [[./dependencies/windows/dependencies.txt|depencencies readme for Windows]] to setup dependencies, then build via the Visual Studio solution
'''Q. I found a bug/I have a feature request!'''
* or grab a prebuilt executable from the releases section


=== Windows UWP (Phone, Xbox, etc.): ===
You can submit an issue in the issues tab for any request/issue that are exclusive to the 3DS port.


* Clone the repo, then follow the instructions in the [[./dependencies/windows/dependencies.txt|depencencies readme for Windows]] and [[./dependencies/win-uwp/dependencies.txt|depencencies readme for UWP]] to setup dependencies, copy your <code>Data.rsdk</code> and <code>videos</code> folder into <code>SonicCDDecompUWP</code>, then build and deploy via the UWP Visual Studio solution
If the issue also occurs on the base decomp (i.e. on PC), you're better off submitting the issue to the [https://github.com/Rubberduckycooly/Sonic-CD-11-Decompilation main branch].


=== Windows via MSYS2 (64-bit Only): ===
'''Q. Is there a port of the Sonic 1/Sonic 2 decompilation?'''


* Download the newest version of the MSYS2 installer from [https://www.msys2.org/ here] and install it.
Yes! You can check out [[Sonic_1_and_2_3DS|JeffRuLz's RSDKv4 port]].
* Run the MINGW64 prompt (from the windows Start Menu/MSYS2 64-bit/MSYS2 MinGW 64-bit), when the program starts enter <code>pacman -Syuu</code> in the prompt and hit Enter. Press <code>Y</code> when it asks if you want to update packages. If it asks you to close the prompt, do so, then restart it and run the same command again. This updates the packages to their latest versions.
* Now install the dependencies with the following command: <code>pacman -S pkg-config make git mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2 mingw-w64-x86_64-libogg mingw-w64-x86_64-libvorbis mingw-w64-x86_64-libtheora</code>
* Clone the repo with the following command: <code>git clone https://github.com/Rubberduckycooly/Sonic-CD-11-Decompilation.git</code>
* Go into the repo you just cloned with <code>cd Sonic-CD-11-Decompilation</code>
* Then run <code>make CXXFLAGS=-O2 CXX=x86_64-w64-mingw32-g++ STATIC=1 -j5</code> (-j switch is optional but will make building faster, it's based on the number of cores you have +1 so 8 cores wold be -j9)


=== Mac: ===
'''Q. Why is video playback so slow?'''


* Clone the repo, then follow the instructions in the [[./dependencies/mac/dependencies.txt|depencencies readme for Mac]] to setup dependencies, then build via the Xcode project
You're going to want to scale down your videos for them to run well on 3DS.
* or grab a prebuilt executable from the releases section


=== Linux: ===
You can find pre-scaled versions of the videos [https://gamebanana.com/mods/313570 here].


* To setup your build enviroment and library dependecies run the following commands:
==Screenshots==
* Ubuntu (Mint, Pop!_OS, etc...): <code>sudo apt install build-essential git libsdl2-dev libvorbis-dev libogg-dev libtheora-dev</code>
https://dlhb.gamebrew.org/3dshomebrews/soniccd113ds3.png
* Arch Linux: <code>sudo pacman -S base-devel git sdl2 libvorbis libogg libtheora</code>
https://dlhb.gamebrew.org/3dshomebrews/soniccd113ds4.png
* Clone the repo with the following command: <code>git clone https://github.com/Rubberduckycooly/Sonic-CD-11-Decompilation.git</code>
* Go into the repo you just cloned with <code>cd Sonic-CD-11-Decompilation</code>
* Then run <code>make CXXFLAGS=-O2 -j5</code> (-j switch is optional but will make building faster, it's based on the number of cores you have +1 so 8 cores wold be -j9)


=== iOS: ===
https://dlhb.gamebrew.org/3dshomebrews/soniccd113ds5.png
https://dlhb.gamebrew.org/3dshomebrews/soniccd113ds6.png


* Clone the repo, then follow the instructions in the [[./dependencies/ios/dependencies.txt|depencencies readme for iOS]] to setup dependencies, then build via the Xcode project
==Changelog==
'''v1.32'''
* Fix scripts on mobile RSDKs not loading properly, rendering the game unplayable.


=== PS Vita: ===
'''v1.31'''


* Ensure you have Docker installed and run the script <code>build.sh</code> from <code>SonicCD.Vita</code>. If you are on Windows, WSL2 is recommended. NOTE: You would need to copy Sonic CD game data into <code>ux0:data/SonicCD</code> to boot the game.
All builds:
* 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 [https://gamebanana.com/mods/313570 here].


== Other platforms: ==
HW Build:
* 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).


Currently the only &quot;officially&quot; supported platforms are the ones listed above, however the backend uses libogg, libvorbis, libtheora &amp; SDL2 to power it, so the codebase is very multiplatform. If you've cloned this repo and ported it to a platform not on the list or made some changes you'd like to see added to this repo, submit a pull request and it'll most likely be added
'''v1.30'''
* 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 [https://github.com/Rubberduckycooly/Sonic-CD-2011-Script-Decompilation this] repo.
* Video support is now implemented via @Oreo639's [https://github.com/Oreo639/3ds-theoraplayer 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 [https://gamebanana.com/mods/313570 here].


== FAQ ==
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.
'''Q: Why dont some buttons in the menu work?'''
* 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).
A: Buttons like leaderboards &amp; achievements require code to be added to support online functionality &amp; 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 I just didnt feel like going through the effort to decompile all that, since its not really worth it
* 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." [https://web.archive.org/web/20071008215241/http://rsonic.randomsonicnet.org/features.htm#ports Taxman's words, not mine].
 
* Stereoscopic 3D is supported, and you can adjust the depth using the 3D slider.
'''Q: Is the titlecard text slightly offset when using a PC datafile?'''
 
A: Its not just you, but unfortunately its an error with the scripts, so if you wanna go into <code>TitleCards/R[X]\_TitleCard.txt</code> and fix it, be my guest, alternatively set <code>screenWidth</code> to 400, instead of 424 in the settings.ini file to match the PC version's resolution
 
'''Q: Theres a weird spot on the title screen how do I fix it?'''
 
A: Set <code>screenWidth</code> to 400, instead of 424 in the settings.ini file to match the PC version's resolution
 
'''Q: The screen is tearing, how do I fix it'''
 
A: Try turning on vsync, that worked for me (on Mac)
 
'''Q: I found a bug/I have a feature request!'''
 
A: Submit an issue in the issues tab and I'll fix/add (if possible) it as soon as I can
 
'''Q: Will you do a decompilation for Sonic 1/Sonic 2?'''
 
A: Yes! I've done a decompilation of RSDKv4 (the engine ver that S1/S2 run on) and it can be found [https://github.com/Rubberduckycooly/Sonic-1-2-2013-Decompilation here]!
 
'''Q: Will you do a decompilation for Sonic Mania?'''
 
A: No. Mania is tons bigger and requires that I'd decompile not only how the (far more complex) RSDKv5 works, but also make all ''600''+ objects work
 
== Special Thanks ==
 
* [https://github.com/Xeeynamo Xeeynamo]: For creating the RSDK Animation editor &amp; an early version of the script unpacker, both of which got me into RSDK modding
* [https://github.com/Sappharad Sappharad]: For making a decompilation of the Windows Phone 7 version of Sonic CD (found [https://github.com/Sappharad/rvm_soniccd here]) which gave me the idea &amp; motivation to decompile the PC/IOS/Android versions
* [https://github.com/TheSuperSonic16 SuperSonic16]: for creating &amp; adding some stuff to the Sonic CD mod loader that I asked for
* Everyone in the [https://dc.railgun.works/retroengine Retro Engine Modding Server]: for being supportive of me and for giving me a place to show off these things that I've found
 
== Background: ==


In 2018 I started researching Christan Whitehead's 'Retro Engine' as a side project since I was bored, I started with Sonic CD (RSDKv3) since it was the most well known version that hadn't had much support, since at that time Sonic Mania's (RSDKv5) modding scene was already thriving, and eventually I expanded my range to Retro-Sonic (Retro-Sonic Engine), Sonic Nexus (RSDKv1) &amp; Sonic 1/2 (RSDKv4), since then I have worked during spare moments to document and reverse all that I can of all versions of RSDK as it was just interesting to see how things worked under the hood or how features evolved and changed over time. Fast forward to 2020 and [https://github.com/Sappharad Sappharad] shows me his decompilation of Sonic CD based on the Windows Phone 7 port since they'd seen my other github repositories relating to RSDK reversing. After seeing their decompilation I had the idea to start my own Sonic CD decompilation based on the PC port, with improvements and tweaks Android port, though I didn't have much time to get around to it, so the project was shelved until I had more time to work on it. in mid-December 2020, I remembered the Sonic CD decompilation that I started and finally had the time to work on it more, so after around 2 weeks of on/off working the decompilation was finally in a solid working state, though I continued tweaking it for another few weeks just to iron out all the glitches and bugs that I found.
[https://github.com/SaturnSH2x2/Sonic-CD-11-3DS/releases Release notes.]


== Contact: ==
==Credits==
* [https://github.com/Rubberduckycooly Rubberduckycooly] - For decompiling CD in the first place, as well as helping out with a few aspects of the port.
* [https://github.com/JeffRuLz 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.
* [https://github.com/Oreo639 Oreo639] - For helping out with the Makefile, as well as being behind [https://github.com/Oreo639/3ds-theoraplayer 3ds-theoraplayer], which the port uses to play back videos.
* [https://dc.railgun.works/retroengine Retro Engine Modding Discord Server].


you can join the [https://dc.railgun.works/retroengine Retro Engine Modding Discord Server] for any extra questions you may need to know about the decompilation or modding it
==External links==
* Author's Tweet - https://twitter.com/hisaturn_v/status/1353233536006971395
* GitHub - https://github.com/SaturnSH2x2/Sonic-CD-11-3DS
* Reddit - https://www.reddit.com/r/3dshacks/comments/p3ncuv/releasewipsonic_cd_v130_released_experimental

Latest revision as of 14:55, 6 July 2024

Sonic CD 2011
Soniccd113ds2.png
General
AuthorSaturnSH2x2
TypePlatform
Version1.32
LicenseMixed
Last Updated2021/08/20
Links
Download
Website
Source

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.

Features

  • 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.
  • If devMenu is enabled in the config, pressing the R button will activate a palette overlay that shows the game's 8 internal palettes in real time.

Installation

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

See comparisons between PC and Mobile versions.

User guide

FAQ

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.

Screenshots

soniccd113ds3.png soniccd113ds4.png

soniccd113ds5.png soniccd113ds6.png

Changelog

v1.32

  • Fix scripts on mobile RSDKs not loading properly, rendering the game unplayable.

v1.31

All builds:

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

HW Build:

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

v1.30

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

Release notes.

Credits

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

External links

Advertising: