Homebrew [Release] (A newer) Sonic CD (2011) 3DS Port

  • Thread starter Thread starter Voxel
  • Start date Start date
  • Views Views 103,916
  • Replies Replies 225
  • Likes Likes 50
I was able to fix this by using the script decompilation linked in the readme's setup section.
Take the scripts folder and copy it to sdmc:/3DS/SonicCD/
Then open settings.ini and set TxtScripts to true.
Hopefully this fixes the issue for you.
Holy moly thank you! I'll try it as soon as I can!
 

Current version: v1.2.0 (Feb 2025)

View attachment 351290View attachment 351292View attachment 351293
View attachment 351294View attachment 351295View attachment 351296

Features:
  • Built on recent decomp source, as of Feb 2025
  • Both Old and New 3DS supported
  • Fast hardware (GPU) rendering by default
  • (NEW) FMV playback (Currently slow on O3DS and choppy on N3DS, use ffmpeg to scale down OGVs)
  • (NEW) Mod support, set up and install them as you normally would
  • Stereoscopic 3D support (hardware renderer only)
  • Remappable keys in settings.ini (uses bitmasks from libctru)
  • Access dev menu at any time by pressing SELECT

Refer to the README on the repository page for detailed setup instructions.

Download:
https://github.com/Voxel9/Sonic-CD-11-3DS-Redux/releases

Source:
https://github.com/Voxel9/Sonic-CD-11-3DS-Redux

FBI QR code (for remote install):
View attachment 351297
Sooooooo, it’s not loading on my o3dsxl, installed it via QR code with fbi, but when it boots, it gets to the homebrew load screen, then boots me back to the home menu
 
Sooooooo, it’s not loading on my o3dsxl, installed it via QR code with fbi, but when it boots, it gets to the homebrew load screen, then boots me back to the home menu
The files here alone are not enough to run the game. You also need original game files from PC or mobile. The files here are like a patch for the 3DS to make the game work on the 3DS with the 3D effect
 
This usually happens if data.rsdk is missing or in an incorrect/misspelt location. It should be on the SD card at /3ds/SonicCD/data.rsdk. I'd advise double-checking the setup instructions here.
Hey, are you still around, the port has a major problem, just one, tidel tempest has a glitchy flash effect and you can't see without pausing. Can you please fix it before someone gets a seizure or something.
Post automatically merged:

This usually happens if data.rsdk is missing or in an incorrect/misspelt location. It should be on the SD card at /3ds/SonicCD/data.rsdk. I'd advise double-checking the setup instructions here.
yeah, it doesn't appear when using software rendering, but does when using hardware rendering
 
  • Like
Reactions: raxadian
Hey, are you still around, the port has a major problem, just one, tidel tempest has a glitchy flash effect and you can't see without pausing. Can you please fix it before someone gets a seizure or something.
Post automatically merged:


yeah, it doesn't appear when using software rendering, but does when using hardware rendering

Wow, yeah I was able to reproduce this. That was really bad, thank you for catching that.
I've pushed a fix and a new build that should prevent this from happening. If you could let me know that it works for you as well, that would be great.
It also has the added benefit of fixing Tidal Tempest rendering when using the PC Data.rsdk, although the water won't be discolored, nor will the waterfall palettes animate. However, I wouldn't recommend using the PC rsdk with the hardware renderer anyway, as they weren't designed to be compatible with eachother. The mobile rsdk won't have these issues, and the special stage floors will draw correctly as well.

The problem, or at least part of it I think, was that an invalid texture palette ID was being passed to the HW renderer. The maximum number of HW texture buffers created is 6, but the allowed texture palette IDs range from 0 to 7. And this ID is used to look up into the texture buffer array every time screen draws occur.

It looks like the PC Data.rsdk passes texPaletteNum = 7 when Tidal Tempest is rendered, so that would mean, if PC Data.rsdk was used with the HW renderer, it accesses beyond the end of the texture array and tries to bind random/invalid data as the texture (this is caught on PC by just crashing, but the 3DS just assumes everything is fine, leading to undefined behaviour). So the hacky fix for now is to just force the palette ID to be 0 if the value exceeds the max number of HW texture buffers.
 
  • Like
Reactions: CrashMidnick

Site & Scene News