Better Sunshine Engine is a core module powered by Kuribo, providing an extensive interface for composable, high-level modifications of Super Mario Sunshine. Better Sunshine Engine also provides a user-oriented layer of built-in patches for the game, such as 60-FPS, 16:9 and 21:9 aspect ratios, and more. These are made accessible through a custom settings menu designed to work constructively with the compositional system provided.
Start by downloading Better Sunshine Engine and extracting the BetterSunshineEngine.zip
file anywhere you like. Additionally, you should ensure you have a legally extracted NTSC-U ISO of Super Mario Sunshine available. If you don't, consider downloading pyisotools, which supports extracting and rebuilding ISOs.
If you intend on modifying or developing your own levels, also download BinEditor.
Copy the ~/Kuribo!
folder from the extracted zip to the ~/files/
directory of your extracted ISO. Also copy the ~/main.dol
and ~/boot.bin
from the extracted zip to the ~/sys/
directory of your extracted ISO.
~/files/
~/sys/
This is everything you need to do to simply run Better Sunshine Engine with no further modifications. You are free to rebuild the ISO at this point and play the enhanced game!
Copy the ~/BinEditor/Parameters
and ~/BinEditor/Templates
directories from the extracted zip to the installation directory of your BinEditor. This is enough to get BinEditor to recognize the new Better Sunshine Engine objects next time you open the tool.
The following objects are included in Better Sunshine Engine:
- GenericRailObj - This object serves as a template for specialization. You provide it a filename and it loads relevant assets for the object accordingly (.bmd, .col, .btk, etc.). It also can be attached to a rail, and has predefined behavior for primitive animation patterns and sounds.
- ParticleBox - This object acts as a volumetric bounding box for a particle to spawn within. You can specify the particle to spawn, as well as its scale and spawn rate.
- SoundBox - This object acts as a volumetric bounding box for sounds to emit within. You can specify a sound to emit, as well as its volume, pitch, and spawn rate.
- SimpleFog - This object manipulates the darkness effect found in Delfino Plaza to emulate non-material fog within the scene. You can specify its behavior, start and end planes, near and far distances, and the color of the fog itself.
To develop your own module in order to modify the code of the game, clone the existing module template repository and follow the instructions provided to start developing your own module!
- "Module "TheModuleName" is trying to register under the name "AliasModuleName", which is already taken!"
- The stated module has attempted to register to Better Sunshine Engine under an alias name that already exists in the registration. To fix this, pick a name that is unique to your module.
- "Failed to load settings for module "TheModuleName"! (VERSION MISMATCH)"
- The stated module is attempting to load its settings from the memory card, but the save file present is an older (or newer!) version than support by the module. You can delete the save file of the module if Better Sunshine Engine is failing to boot.
- "Application attempted to fetch context handler X but it wasn't found!"
- One of the modules present has attempted to reroute Super Mario Sunshine to a game context that doesn't exist. To fix this, either remove the bad module, or repair the context registration if you are capable to by modifying the source code of the module.
- "Tried to open shine select screen for an area that has no pane ID!"
- A stage or module has attempted to open a shine select screen for a world that doesn't have one. To fix this, change the stage warp to an area ID that does exist, or if it's module-side, repair the scene registration by assigning a valid pane ID in the scene information.
- "Missing stage name for area ID X (Y)"
- A registered stage is pointing to an entry of
~/files/common.szs/2d/scenename.bmg
that doesn't exist. To fix this, either change the entry the registered stage information is pointing to, or add the entries to the BMG file.
- A registered stage is pointing to an entry of
- "A music stream attempted to play, but music streaming is disabled! Set byte 8 of boot.bin to 0x01 to enable music streaming."
- This should never happen under a correct installation of Better Sunshine Engine. However, to fix it you should open
~/sys/boot.bin
in a hex editor and set the 8th byte to 0x01.
- This should never happen under a correct installation of Better Sunshine Engine. However, to fix it you should open
Licensed under the GPL-3.0 license.