Repository navigation
Releases: ikevik/sms-3ds
Release list
Super Mario Sunshine for New 3DS v0.1.2-beta
Fixes for v0.1.1-beta, for the New Nintendo 3DS. No game data, art or music is included: you play your own disc image.
What's fixed
- Freezes of several seconds. On some SD cards the game froze for 5 to 7 seconds at a time, as often as every 10 seconds (issue #2; once in issue #1). The port writes a log to the card (
SD:/sms/log.txt), and every part of it that logged, the game included, waited while a slow card took that write. The log now goes to memory first and its own thread writes it to the card, so a slow card no longer holds the game. When a write takes a second or more, the log says so in a line starting[log] the SD card took. - Rooftop seams. The see-through lines along the roofs' ridges and edges in Delfino Plaza are gone (issue #1). Textures larger than 256 pixels a side were cut down to 256, which lost the transparent margins in the roofs' texture. Textures are now kept at their own size, up to 1024 as on the GameCube, so the larger ones are sharper too.
- Stutter when a stage starts. With
etc1_textures = on(the includedsettings.txt's choice), every stage began with a second or two of slow frames while its textures were converted. The conversions now run in the background; a texture is drawn as it is until its converted version is ready. - Water and FLUDD flicker. The screen copies that the water and FLUDD's spray draw from sometimes ran short of video memory, and were drawn at half size or not at all. They now get room before textures do.
Tested on a New 3DS, a New 3DS XL and in Azahar. The speed is the same as 0.1.1's. The freezes never happened on our own SD cards, so that fix was checked in Azahar with the card's writes slowed to 6 seconds each: no freeze. If you had freezes, please tell us in issue #2 whether they're gone, with your SD:/sms/log.txt.
Updating from 0.1.1-beta
- Homebrew Launcher: replace
SD:/3ds/sms3ds/sms3ds.3dsxwith the one in the zip. - HOME Menu: build the CIA again with the new CIA builder and install it with FBI over the old one. Your saves stay where they are (
SD:/sms/card-a/). - settings.txt: keep yours. Nothing in it changed.
Installing
You need a New 3DS family console with custom firmware (Luma3DS), your own USA Super Mario Sunshine disc image (GMSE01, a plain 1.4 GB .iso), and for sound SD:/3ds/dspfirm.cdc (run DSP1 once if you never have).
- Put your disc image at
SD:/sms/GMSE01.iso. - Copy
sms/settings.txtfrom the zip toSD:/sms/settings.txt. - Homebrew Launcher: copy
3ds/sms3ds/sms3ds.3dsxtoSD:/3ds/sms3ds/. - HOME Menu: unzip the CIA builder and run
Build SMS CIA.bat(Windows) orBuild SMS CIA.command(macOS; the first time, right-click it and choose Open), and give it your disc image. It needs Python 3.8 or newer and takes about half a minute. Copyoutput/sms3ds.ciatoSD:/cias/and install it with FBI.
The CIA's icon (the Shine Sprite), banner (the title logo) and banner sound (the opening of the title theme) are made from your disc, which is why no CIA is published. Please don't share the CIA you build.
Downloads
| File | What it is |
|---|---|
sms3ds-0.1.2-beta.zip |
The game for the Homebrew Launcher, the tested settings.txt, the README and the licences. |
SMS-3DS-CIA-Builder-0.1.2-beta.zip |
Builds the .cia for the HOME Menu from your own disc image (Windows, macOS; Linux with your own makerom and bannertool). |
Controls
The GameCube controller's layout: the Circle Pad is the stick, the C-Stick the camera, L and R the triggers, ZL is Z. R is a hard press (Mario stops to aim FLUDD) and ZR a soft one (FLUDD sprays while Mario moves); SELECT switches R to the soft press too, and with zr_press = opposite ZR then becomes the hard one. START + SELECT quits.
Status and known issues
The whole game plays, from the opening to the final Bowser fight, on a New 3DS, New 3DS XL or New 2DS XL. Measured on a New 3DS with the included settings.txt, Delfino Plaza runs mostly at the game's own cap of 30 frames a second, Ricco Harbor about 29 and Bianco Hills about 25.
- The final Bowser fight runs slowly (its hot-tub water is drawn by the CPU).
- The Old 3DS is not supported: it is too slow.
- The bottom screen shows the port's status text, not a game screen.
AI disclosure
This port was made with heavy AI assistance, and tested rigorously. Nearly all of its code, scripts, patches and documentation were written by Claude, Anthropic's model, working through Claude Code; every commit but one merge carries a Co-Authored-By: Claude line. ikevik directed the work, deciding what to build and what to trade away, and tested it throughout, in the Azahar emulator and on a real New 3DS. The full disclosure is in the README. Please report problems in the issue tracker.
Credits
Built on doldecomp/sms, chasem-dev/sms-english, chasem-dev/sms-pc-port and chasem-dev/sms-switch, with devkitPro's libctru and citro3d; the CIA builder uses makerom and bannertool. Its approach follows 2gifts/melee-3ds. The full list is in the README. The port's own code is under the MIT licence.
Checksums (SHA-256)
2546890b877ec6406ae4d6c6de3fe6f736c32a1e055da3131ea54589bb85c4f2 sms3ds-0.1.2-beta.zip
a3281f1f72f02257ad202c914736e9efa9df8485cf857373476e78105f7437c5 SMS-3DS-CIA-Builder-0.1.2-beta.zip
Super Mario Sunshine for New 3DS v0.1.1-beta
A hotfix for v0.1.0-beta, for the New Nintendo 3DS. No game data, art or music is included: you play your own disc image.
What's new
- Stick dead zone. The Circle Pad and the C-Stick now have a dead zone, so a stick that doesn't rest exactly in the middle no longer walks Mario or turns the camera by itself. It's
stick_deadzoneinsettings.txt, 15 by default (out of about 156 to the edge). If Mario still drifts, raise it, to 25 for example. A full push still reads as a full push. - ZR as R's opposite (optional). With
zr_press = oppositeinsettings.txt, ZR is the hard press while R is soft, and the soft one while R is hard (SELECT switches R). The default,soft, keeps ZR as in 0.1.0: always the soft press. - CIA version. The CIA builder now sets the CIA's version properly (0.1.1). A makerom bug had dropped the middle number, so 0.1.0's CIA reads 0.0.0.
The dead zone and the ZR option came from issue #1 (the change: 6c20e38) and are tested on a New 3DS and in Azahar. The game itself is otherwise the same as 0.1.0.
Updating from 0.1.0-beta
- Homebrew Launcher: replace
SD:/3ds/sms3ds/sms3ds.3dsxwith the one in the zip. - HOME Menu: build the CIA again with the new CIA builder and install it with FBI over the old one. Your saves stay where they are (
SD:/sms/card-a/). - settings.txt: your old one still works, and the dead zone is on even without the new lines. To change the new settings, copy them from the zip's
sms/settings.txt, or use that file instead.
Installing
You need a New 3DS family console with custom firmware (Luma3DS), your own USA Super Mario Sunshine disc image (GMSE01, a plain 1.4 GB .iso), and for sound SD:/3ds/dspfirm.cdc (run DSP1 once if you never have).
- Put your disc image at
SD:/sms/GMSE01.iso. - Copy
sms/settings.txtfrom the zip toSD:/sms/settings.txt. - Homebrew Launcher: copy
3ds/sms3ds/sms3ds.3dsxtoSD:/3ds/sms3ds/. - HOME Menu: unzip the CIA builder and run
Build SMS CIA.bat(Windows) orBuild SMS CIA.command(macOS; the first time, right-click it and choose Open), and give it your disc image. It needs Python 3.8 or newer and takes about half a minute. Copyoutput/sms3ds.ciatoSD:/cias/and install it with FBI.
The CIA's icon (the Shine Sprite), banner (the title logo) and banner sound (the opening of the title theme) are made from your disc, which is why no CIA is published. Please don't share the CIA you build.
Downloads
| File | What it is |
|---|---|
sms3ds-0.1.1-beta.zip |
The game for the Homebrew Launcher, the tested settings.txt, the README and the licences. |
SMS-3DS-CIA-Builder-0.1.1-beta.zip |
Builds the .cia for the HOME Menu from your own disc image (Windows, macOS; Linux with your own makerom and bannertool). |
Controls
The GameCube controller's layout: the Circle Pad is the stick, the C-Stick the camera, L and R the triggers, ZL is Z. R is a hard press (Mario stops to aim FLUDD) and ZR a soft one (FLUDD sprays while Mario moves); SELECT switches R to the soft press too, and with zr_press = opposite ZR then becomes the hard one. START + SELECT quits.
Status and known issues
Unchanged from 0.1.0-beta: the whole game plays, from the opening to the final Bowser fight, on a New 3DS, New 3DS XL or New 2DS XL. Measured on a New 3DS with the included settings.txt, Delfino Plaza runs mostly at the game's own cap of 30 frames a second, Ricco Harbor about 29 and Bianco Hills about 25.
- The final Bowser fight runs slowly (its hot-tub water is drawn by the CPU).
- The Old 3DS is not supported: it is too slow.
- The bottom screen shows the port's status text, not a game screen.
AI disclosure
This port was made with heavy AI assistance, and tested rigorously. Nearly all of its code, scripts, patches and documentation were written by Claude, Anthropic's model, working through Claude Code; every commit but one merge carries a Co-Authored-By: Claude line. ikevik directed the work, deciding what to build and what to trade away, and tested it throughout, in the Azahar emulator and on a real New 3DS. The full disclosure is in the README. Please report problems in the issue tracker.
Credits
Built on doldecomp/sms, chasem-dev/sms-english, chasem-dev/sms-pc-port and chasem-dev/sms-switch, with devkitPro's libctru and citro3d; the CIA builder uses makerom and bannertool. Its approach follows 2gifts/melee-3ds. The full list is in the README. The port's own code is under the MIT licence.
Checksums (SHA-256)
29bbcbad0161b8f3ada4a7c7f4a6658bba22094edac1b247813c24e881fb1d3a sms3ds-0.1.1-beta.zip
888a4fdc3903cf787326bf3d151ddaa7e990bbdb88f0fd8d06e6c7cb468d9a09 SMS-3DS-CIA-Builder-0.1.1-beta.zip
Super Mario Sunshine for New 3DS v0.1.0-beta
Updated 25 October 2026: ZR is now a soft R press (FLUDD sprays while Mario moves), and the zips include the port's MIT licence. If you downloaded before then, download again for ZR. (The zips are built from commit d72e325.)
A native port of Super Mario Sunshine to the New Nintendo 3DS: the game's decompiled code runs on the 3DS's CPU, its graphics go to the 3DS's GPU and its sound to the DSP. No game data, art or music is included: you play your own disc image.
What works
- The game, from the opening to the final Bowser fight, on a New 3DS, New 3DS XL or New 2DS XL.
- Music and sound, the movies, and saves (memory card files on the SD card).
- The Homebrew Launcher, and the HOME Menu once you build and install the CIA (below).
Speed, measured on a New 3DS with the included settings.txt: Delfino Plaza mostly at the game's own cap of 30 frames a second, Ricco Harbor about 29, Bianco Hills about 25, and the slowest moments around 24. The final Bowser fight is slower (below).
Known issues
- The final Bowser fight runs slowly (its hot-tub water is drawn by the CPU).
- The Old 3DS is not supported: it is too slow.
- The bottom screen shows the port's status text, not a game screen.
Downloads
| File | What it is |
|---|---|
sms3ds-0.1.0-beta.zip |
The game for the Homebrew Launcher, the tested settings.txt, the README and the licences. |
SMS-3DS-CIA-Builder-0.1.0-beta.zip |
Builds the .cia for the HOME Menu from your own disc image (Windows, macOS; Linux with your own makerom and bannertool). |
Installing
You need a New 3DS family console with custom firmware (Luma3DS), your own USA Super Mario Sunshine disc image (GMSE01, a plain 1.4 GB .iso), and for sound SD:/3ds/dspfirm.cdc (run DSP1 once if you never have).
- Put your disc image at
SD:/sms/GMSE01.iso. - Copy
sms/settings.txtfrom the zip toSD:/sms/settings.txt. - Homebrew Launcher: copy
3ds/sms3ds/sms3ds.3dsxtoSD:/3ds/sms3ds/. - HOME Menu: unzip the CIA builder and run
Build SMS CIA.bat(Windows) orBuild SMS CIA.command(macOS; the first time, right-click it and choose Open), and give it your disc image. It needs Python 3.8 or newer and takes about half a minute. Copyoutput/sms3ds.ciatoSD:/cias/and install it with FBI.
The CIA's icon (the Shine Sprite), banner (the title logo) and banner sound (the opening of the title theme) are made from your disc, which is why no CIA is published. Please don't share the CIA you build.
Controls
The GameCube controller's layout: the Circle Pad is the stick, the C-Stick the camera, L and R the triggers, ZL is Z. R is a hard press (Mario stops to aim FLUDD) and ZR a soft one (FLUDD sprays while Mario moves); SELECT switches R to the soft press too. START + SELECT quits.
AI disclosure
This port was made with heavy AI assistance, and tested rigorously. Nearly all of its code, scripts, patches and documentation were written by Claude, Anthropic's model, working through Claude Code; every commit but one merge carries a Co-Authored-By: Claude line. ikevik directed the work, deciding what to build and what to trade away, and tested it throughout, in the Azahar emulator and on a real New 3DS: play-testing through the whole game on the console, profiling runs there, before-and-after builds of each change, and a checker for the renderer's materials against the GameCube's own arithmetic. The game's own code is the decompilation and PC port credited below. Expect mistakes all the same, and please report problems in the issue tracker.
Credits
Built on doldecomp/sms, chasem-dev/sms-english, chasem-dev/sms-pc-port and chasem-dev/sms-switch, with devkitPro's libctru and citro3d; the CIA builder uses makerom and bannertool. Its approach follows 2gifts/melee-3ds. The full list is in the README. The port's own code is under the MIT licence.
Checksums (SHA-256)
d9af42d43263a45828db5fa420ae3da2bd892a477274370c6c8f111758cc2be7 sms3ds-0.1.0-beta.zip
1b2aaac50739bc39e97c8389920498cc0c260c76d92b52dc8b16d4728f520137 SMS-3DS-CIA-Builder-0.1.0-beta.zip