Homebrew Homebrew game [Release] Sonic Mania (3DS Port)

  • Thread starter Thread starter SaturnSH2x2
  • Start date Start date
  • Views Views 113,677
  • Replies Replies 97
  • Likes Likes 36

SaturnSH2x2

Well-Known Member
Newcomer
Joined
Jan 29, 2021
Messages
52
Reaction score
205
Trophies
0
Age
26
Website
saturnsh2x2.xyz
XP
583
Country
United States
2022-09-12_17-35-05.889_top.png


It's Sonic Mania. On your (New) 3DS. Also now on your O3DS but really slowly

This port is based on the recent decompilation done by Rubberduckycooly and Chuli (stxtic).

Current Version: v1.1.0

- Game now runs on engine version v5U, however, without v3/v4 Legacy support. This engine version is referred to as v5C internally.
- Dev menu now displays extra information regarding memory usage, as well as if the game is running on a N3DS.
- Audio thread now runs on core 1, with support for asynchronous file loading, alleviating microloads during gameplay and resulting in speedup in certain sections (start of Studiopolis Act 2, parts of Flying Battery Act 1). Additionally, the game no longer suffers from delayed audio.
- Engine now supports loading assets from an external RomFS file.
- Loading times improved significantly while using the Data file. Thanks to @davidgfnet for using setvbuf on Data file accesses. Additionally, all static object files and sprite bin files are cached. Loading times are ~30-40 seconds on initial boot, and ~5-10 seconds on stage load, however, YMMV.
- Port now incorporates more or less the latest version of both the RSDKv5 decomp and Mania decomp (thanks @Mefiresu and @c08oprkiua).
- Game now boots on O3DS. However, don't expect full-speed frame rates. A Citro2D/3D backend is still planned to get performance up to speed.

Setup Instructions
First, make sure you have the port installed, whether it be in .cia or .3dsx form.

Then, grab the Data.rsdk file from your legally obtained copy of Sonic Mania. This is easiest with PC versions of the game, where it'll be in the same directory as your game executable. From there, copy the file to your 3DS's SD Card at /3ds/SonicMania.

Alternatively, you can have the game load assets directly from a folder on your SD Card instead of from the Data.rsdk file; this is called Data Folder mode. Refer to this tutorial for learning how to extract the game's assets from your Data.rsdk file:


Once extracted, copy the Data folder to /3ds/SonicMania on your 3DS's SD Card. Load times are slightly better when running in Data Folder mode, so this option is recommended.


Q&A
Is Old 3DS supported?
Old 3DS support is planned, but the port doesn't run on O3DS systems at the moment. This is due to issues with memory that need to be sorted out. A hardware render backend similar to Sonic CD's is also planned to hopefully get the game running at full speed, however, developing such a backend requires extensive rewriting of entire parts of the engine, and may take a while to reach a playable state.

Why are the load times so slow?
Mainly due to the 3DS's slow read speeds, as well as the Retro Engine's tendency to load in all assets at once on loading a new scene. Running the game in Data Folder can mitigate the load times somewhat.

Can I access the Dev Menu?
Yes, just make sure the following is in your settings.ini at /3ds/SonicMania:
Code:
[Game]
devMenu=y
enableControllerDebugging=y
From there, just press SELECT in-game.

Why is the menu text corrupted?
This is a bug with Data Folder mode. It's mostly harmless, as the rest of the game runs fine, however, working on getting this fixed for the next release.

Are mods supported?
Partially. Mods can be installed and run via Data Folder mode. This will work best with smaller-scale mods that only replace game assets like level layouts, sprites, music, and sound effects. Mods that make alterations to game object behavior likely won't run properly. Don't expect to run mods like Sonic Megamix Mania on 3DS.

Do videos work?
Not currently, but support is planned. You'll likely have to down-scale your videos manually, however.

Why can't I access the Plus DLC?
The decomp has no way of actually verifying that you've purchased the Plus DLC through the platform of your choosing. As such, the decomp developers have removed the DLC from their release builds, and I've opted to do the same. If you want to access the Plus DLC, you'll have to compile the port yourself.

Screenshots
2022-09-12_19-08-24.352_top.png

2022-09-12_19-01-47.986_top.png

2022-09-12_19-03-12.050_top.png

2022-09-12_19-04-37.990_top.png

Downloads
Releases: https://github.com/SaturnSH2x2/RSDKv5-Decompilation/releases/tag/1.0
Nightlies: https://nightly.link/SaturnSH2x2/RSDKv5-Decompilation/workflows/3ds/master/sonicmania.zip
Source:
https://github.com/SaturnSH2x2/RSDKv5-Decompilation/

QR
qr-code.png


Special Thanks
Rubberduckycooly, Chuli/stxtic: For decompiling Mania in the first place, as well as for helping me out on a few things in REMS
Mephiles, @davidgf , c08oprkiua, smb123w64gb: for contributing to the port. smb123 in particular for assisting in getting the engine running on O3DS, davidgf for helping in reducing load times, and Mephiles and c08 for keeping the codebase updated with upstream while I was away
@JeffRuLz: For the RSDKv4 port (which was referenced in the process of porting Mania over)
Nintendo Homebrew Discord and the Retro Engine Modding Server: for also helping out with and testing the port​
 

Attachments

  • smania.png
    smania.png
    32.7 KB · Views: 288
Last edited by SaturnSH2x2,
Thank you dev! (I was busy yesterday, did a recompile to cia and loading times aren't too bad with folder mode) Yeah I got the Saturn mod working! Fantastic job getting this to run on a 3ds
 
Does it only work on New 3DS ?, or does it work on Old too?

I addressed this in the post's Q&A section:
Is Old 3DS supported?
Old 3DS support is planned, but the port doesn't run on O3DS systems at the moment. This is due to issues with memory that need to be sorted out. A hardware render backend similar to Sonic CD's is also planned to hopefully get the game running at full speed.​
 
looking forward to the O3DS version if it's ever a thing. Thanks for your hard work nonetheless!
Good to see the 3DS still getting some new gems
 
I'm playing the port and it runs (mostly) great so far! Only issue: There is no sound. How would I be able to turn on the sound?
You might have an old version of the port. Did you make sure to download it from releases?
https://github.com/SaturnSH2x2/RSDKv5-Decompilation/releases/tag/1.0

Or if you compiled it yourself, made sure that the files are up-to-date? Sound was added at this point.
Yea; before v1.0, there were a few .cia builds of the port floating around from various sources. Chances are, if you're seeing console output on the bottom screen without having pressed SELECT on boot, you're using an older build.
 
Are there any other ports?

I would love to have this on Wii, and if that is not possible, then PS3.
 
Are there any other ports?

I would love to have this on Wii, and if that is not possible, then PS3.
There is a Vita Port that works, and a Build that Enables the DLC. Wondering if it would be possible to get the .cia for N3DS. Could probably just grab all the Data from my Vita for the 3DS
 

Site & Scene News

Popular threads in this forum