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

legaiaflame

Well-Known Member
Newcomer
Joined
Nov 21, 2008
Messages
69
Trophies
1
XP
739
Country
United States
Sorry about that guy. Lately, this subforum has been crawling with lazy/snark replies to people with questions, it's kinda sad.

Anyway, yeah this port works great in Citra. I actually used to use it from time to time with my old 3D monitor and apart from a couple of special stage backgrounds being a bit buggy in 3D, it looks and plays really good otherwise. You should be able to just put dspfirm.cdc into the Citra user folder at /sdmc/3ds/ and then also create the "SonicCD" folder (no spaces) in /sdmc/3ds/ with the Data.rsdk inside of it. Once that's done, both 3DSX and CIA versions should work as intended. With the CIA version, are you using File -> Install CIA?
Where do I get the dspfirm.cdc file? I made the folders put Data.rsdk and SonicCD.3dsx in the /sdmc/3ds/SonicCD. I launched the game and it had no sound. Is that because of the missing dspfirm.cdc file? Also, which folder do I put the dspfirm.cdc in?

Post automatically merged:

Nevermind I had to get the dspfirm.cdc file from the 3ds folder on my Modded 3DS SD card. Then I put that in the Citra /sdmc/3ds/ folder on my PC and loaded the game and it works now with sound and everything!! Thanks so much for your help!!

Don't know how you would get this file though without modding your 3DS and Dumping the DSP firmware. Since the file was already on my SD card I just dragged it off onto my PC and put it into the Citra folder stated above.
Post automatically merged:

So I just did a full playthrough using the Citra emulator (playing it in 3D with my Oculus VR headset) and a playthrough with my modded 3DS and both were near perfect. Having the mobile version of the Sonic CD Data.rsdk file is essential so the Special Stages have visible floors. If not, or if you use the Steam/PC version of the file the floors will be incomplete from a distance and unplayable.


3DS playthrough:

Looked great in 3D, played perfect! The special stages look awesome in 3D! And a lot of the layered backgrounds really pop out in 3D!


Citra Emulator Playthrough in 3D (Merged Splitscreen) with Oculus or any VR Headset: (How I did it)

Note: You can use this method with any 3DS game running on Citra with Virtual Desktop.

Using Voxels instructions above you can play this in the Citra emulator and with a VR Headset in 3D. Launching the game from Citra using the SonicCD.3dsx file works but you won't be able to save. But if you take the SonicCD.cia file and use a program called (Batch CIA 3DS Decryptor.bat) to decrypt it into SonicCD-decrypted.cci, and launch that, you can launch the game using that file and you will be able to use save states like normal.

Just make sure within the Citra user folder (in the emulator go to file, Open CItra Folder to find the location) at /sdmc/3ds/SonicCD, put the dspfirm.cdc in the 3ds folder (Or you won't have any sound) and put the Data.rsdk, SonicCD.3dsx, and SonicCD-decrypted.cci in the SonicCD folder. You have to make the 3ds folder and SonicCD folders yourself.

To get the 3D working in your VR Headset your headset needs to be connected to your PC. When connected to your PC, Start Virtual Desktop (separate app you can buy in Steam or Oculus), start the Citra emulator and game in split screen (Split screen mode will be in Citra settings), and then merge the screens together with Virtual Desktop. When you launch the game remember to launch it from the SonicCD folder you made within the sdmc folder.

Getting the dspfirm.cdc Sound File:

To get the dspfirm.cdc file, the only way I know is to drag it off of your 3DS modded SD card from the 3ds folder and drag it onto your PC and into Citra's 3ds folder. If anyone knows an easier way to get this let us know.
 
Last edited by legaiaflame,
  • Like
Reactions: Voxel

ManyMilesAway

New Member
Newbie
Joined
Jul 29, 2020
Messages
4
Trophies
0
Age
24
XP
59
Country
Canada
My B button keeps pausing the game, which is obviously not ideal. Messing with the controls in settings.ini didn't help either, and I can't find any info about it in this thread. Any help? This is also happening with the Sonic 1 and 2 ports. I fixed it for Sonic 1 and 2 by using pre-SEGA forever APKs, but this is still happening with Sonic CD 1.0.6


[Keyboard 1]
; Keyboard Mappings for P1
Up=1073741888
Down=-2147483520
Left=536870944
Right=268435472
A=1
B=2
C=2048
Start=8
[Controller 1]
; Controller Mappings for P1
; Extra buttons can be mapped with the following IDs:
; CONTROLLER_BUTTON_ZL = 16
; CONTROLLER_BUTTON_ZR = 17
; CONTROLLER_BUTTON_LSTICK_UP = 18
; CONTROLLER_BUTTON_LSTICK_DOWN = 19
; CONTROLLER_BUTTON_LSTICK_LEFT = 20
; CONTROLLER_BUTTON_LSTICK_RIGHT = 21
; CONTROLLER_BUTTON_RSTICK_UP = 22
; CONTROLLER_BUTTON_RSTICK_DOWN = 23
; CONTROLLER_BUTTON_RSTICK_LEFT = 24
; CONTROLLER_BUTTON_RSTICK_RIGHT = 25
Up=0
Down=1
Left=2
Right=3
A=4
B=5
C=6
Start=8
; Deadzones, 0.0-1.0
LStickDeadzone=0.300000
RStickDeadzone=0.300000
LTriggerDeadzone=0.300000
RTriggerDeadzone=0.300000
 
Last edited by ManyMilesAway,

legaiaflame

Well-Known Member
Newcomer
Joined
Nov 21, 2008
Messages
69
Trophies
1
XP
739
Country
United States
My B button keeps pausing the game, which is obviously not ideal. Messing with the controls in settings.ini didn't help either, and I can't find any info about it in this thread. Any help? This is also happening with the Sonic 1 and 2 ports. I fixed it for Sonic 1 and 2 by using pre-SEGA forever APKs, but this is still happening with Sonic CD 1.0.6


[Keyboard 1]
; Keyboard Mappings for P1
Up=1073741888
Down=-2147483520
Left=536870944
Right=268435472
A=1
B=2
C=2048
Start=8
[Controller 1]
; Controller Mappings for P1
; Extra buttons can be mapped with the following IDs:
; CONTROLLER_BUTTON_ZL = 16
; CONTROLLER_BUTTON_ZR = 17
; CONTROLLER_BUTTON_LSTICK_UP = 18
; CONTROLLER_BUTTON_LSTICK_DOWN = 19
; CONTROLLER_BUTTON_LSTICK_LEFT = 20
; CONTROLLER_BUTTON_LSTICK_RIGHT = 21
; CONTROLLER_BUTTON_RSTICK_UP = 22
; CONTROLLER_BUTTON_RSTICK_DOWN = 23
; CONTROLLER_BUTTON_RSTICK_LEFT = 24
; CONTROLLER_BUTTON_RSTICK_RIGHT = 25
Up=0
Down=1
Left=2
Right=3
A=4
B=5
C=6
Start=8
; Deadzones, 0.0-1.0
LStickDeadzone=0.300000
RStickDeadzone=0.300000
LTriggerDeadzone=0.300000
RTriggerDeadzone=0.300000
Using the mobile version of the Data.rsdk does indeed make the B button pause the game. It didn't really bother me as I just made sure to avoid pressing it. It's probably something to do with how it was configured to work on cell-phones and tablets. We probably can't change that without going into and making changes to the code.

But we absolutely need to use the mobile version of the Data.rsdk file though for this port, or the special stages and Tidal Tempest will be all messed up.
 
  • Like
Reactions: raxadian

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: Lol rappers still promoting crypto