chasem-dev / sms-pc-port
git clone https://github.com/chasem-dev/sms-pc-port.git
hd-cutscenes-ai-v1 · 19d ago
Super Mario Sunshine Native PC Port
+2
stars, 24h · #5,602
+~14
stars, 7 days · #6,344
+163
stars, 30 days · #3,141
165
★ total · +9% this week
25
forks · 3 open issues
Star history (as recorded here)
LanguageC++
LicenseMIT
Created2026-09-24 (29d ago)
Last push1d ago
Watchers0
OwnerUser
Links
README excerpt
# sms-port A native PC port of **Super Mario Sunshine** (GameCube, North America, GMSE01), built from the matching decompilation. No game data is included. You build the program from source, and it reads the models, textures, levels, music and movies from **your own disc image** at run time. For guided setup, updates and a Play button, use our dedicated SMS Launcher for Windows, macOS and Linux. The launcher sets up this port on your computer using your own supported disc image; downloads are on its releases page. ## Decompilation progress This card shows the GMSE01 decompilation snapshot recorded by the source revision pinned in this port. Fuzzy similarity measures approximate code similarity; the other two tracks show byte-perfect code and code linked from matching source. ## Supported systems | System | Word size | Status | Output | | --- | --- | --- | --- | | Linux (x86) | 32-bit (default) | plays | `build/linux-32/sms` | | Linux (x86-64) | 64-bit (`SMS_ARCH=64`) | plays; still being tested stage by stage (docs/64-BIT.md) | `build/linux-64/sms` | | macOS (Intel, or Apple Silicon under Rosetta 2) | 64-bit | plays | `build/macos-64/sms` | | macOS, native Apple Silicon (`SMS_ARCH=arm64`) | arm64 | plays | `build/macos-arm64/sms` | | Windows (MSYS2 MINGW64) | 64-bit | boots under Wine; native runtime checks | `build/windows-64/sms.exe` | The game code keeps pointers in 4-byte fields, so it was written for a 32-bit machine. The 64-bit builds keep every address the game sees below 4 GiB; see docs/64-BIT.md. ## Quick start 1. **Get the source**, including the decompilation submodule: [code] 2. **Install the prerequisites** for your system: Linux, macOS, Windows. 3. **Put your disc image in `rom/`**: one `.iso`, `.gcm` or Dolphin `.ciso` of GMSE01 Rev 0. 4. **Build and play:** [code] On Windows, run these in the MSYS2 MINGW64 shell, or run `.\build.cmd` and `.\run.cmd` from PowerShell. The first build compiles about 600 game files and takes a while; later builds only rebuild what changed. Because the image is in `rom/`, `./build.sh` also makes a **standalone** copy with the game's files inside (`sms-standalone`, or `SMS.app` on macOS) that runs without the image. See BUILD.md. You can also keep the image elsewhere and pass it: `./run.sh "/path/to/Super Mario Sunshine (US).iso"`. ## Build and run The same two scripts work on every system: | Command | What it does | | --- | --- | | `./build.sh [IMAGE]` | builds `build/ - /sms`; with an image (argument, `SMS_DISC_IMAGE`, or the one in `rom/`) also the standalone copy | | `./run.sh [IMAGE] [--headless]` | runs that build: with the image you pass, else the standalone copy, else the image in `rom/` | | `./clean.sh [--all] [--dry-run]` | deletes the build output (every `build/ - /`); never deletes your disc image, and keeps the downloaded SDL2; `--all` deletes all of `build/` | | `SMS_ARCH=64 ./build.sh` | chooses the word size (Linux: `32` default or `64`; macOS: `64` default or, on Apple Silicon, `ar