SkyRecompiled
SkyRecompiled is a native PC port of Pokémon Mystery Dungeon: Explorers of Sky with ahead-of-time static recompilation.
- Type: PC port
- Game: Pokémon Mystery Dungeon: Explorers of Sky
- Runs on Windows, Linux, macOS and iOS
- By DarthMDev
- Latest release v0.1.0-alpha, 2026-11-06
- Source: https://github.com/DarthMDev/pmd-sky-recomp
README
SkyRecompiled
SkyRecompiled is a native ahead-of-time (AOT) static recompilation PC port of Pokémon Mystery Dungeon: Explorers of Sky, built on ndsrecomp and pmdsky-debug.
Downloads (v0.1.0 Alpha)
| Platform | Build Status | Package |
|---|---|---|
macOS Apple Silicon (arm64) | Verified Working | SkyRecompiled-v0.1.0-alpha-macos-arm64.zip |
Windows (x86_64) | Untested Alpha (Testers Needed!) | SkyRecompiled-v0.1.0-alpha-windows-x64.zip |
Linux (x86_64) | Untested Alpha (Testers Needed!) | SkyRecompiled-v0.1.0-alpha-linux-x86_64.tar.gz |
Clean-Room & Legal Notice: This repository contains zero copyrighted Nintendo DS ROMs, extracted assets, BIOS/firmware dumps, or ROM-derived C code. Players must supply their own legally dumped Pokémon Mystery Dungeon: Explorers of Sky
.ndscartridge image. No Nintendo DS BIOS or firmware files are required (FreeBIOS+ synthesized NVRAM direct boot).
Features & Roadmap
- Milestone 1 (Pre-Alpha -- Active): Native macOS Apple Silicon (
arm64) static recompilation of all 34 executable modules (arm9,itcm,arm7+ WRAM/RAM drivers, and all 32 active overlays --91,872recompiled functions), BIOS-free direct boot, 128 KiB FRAM/EEPROM saves, savestates, audio, and controller support. - Milestone 2: Native Windows (
x86_64) and Linux (x86_64/arm64) builds & packaging. - Milestone 3: Beyond-Emulator Graphics & Smoothness -- True
16:9/21:9native 2D widescreen (overlay29&overlay11camera/tile hooks + anchored HUD), 120Hz / 144Hz / 240Hz sub-pixel camera & sprite interpolation, and custom Apple Metal /SDL_GPUpixel-art & weather shaders. - Milestone 4: Launcher, SkyTemple Mod Loader & Online Rescue Board -- Zero-recompile layered NitroFS mod overrides, SkyTemple custom ASM hack recompilation, and an asynchronous Rescue Team DX-style Online Rescue Bulletin Board backed by vanilla Wonder Mail S / SOS / A-OK Mail structs (with 54-character passwords preserved forever as an offline fallback).
See ARCHITECTURE.md for the full technical specification.
Can I play a European ROM in another language?
The European cartridge includes English, French, German, Italian, and Spanish. SkyRecompiled's generated firmware currently selects English, so the European game starts in English. A Game language setting is planned for Explorers of Sky’s own options menu. It will show the languages available on your cartridge and apply your choice on the next launch. The USA release contains English game text.
Quickstart (macOS Apple Silicon)
Prerequisites
brew install cmake ninja sdl3 python
Build and launch
Supply a clean USA or Europe ROM. Bootstrap the pinned tools, compile the game, and package the macOS app:
./scripts/setup_third_party.sh
python3 scripts/build.py --rom "/path/to/Explorers of Sky.nds" --package
open build/SkyRecompiled.app
For the offline translator and runtime build layout, see Architecture.
Quickstart (Windows x64)
You can download the pre-packaged Windows release above (which runs cartridge code at runtime) or build the runner locally with your own clean Explorers of Sky USA or Europe ROM to include statically recompiled game code.
Install Python 3.12+, Git for Windows (with Git Bash available on PATH), and MSYS2. In the MSYS2 MINGW64 shell, install the build tools:
pacman -S --needed mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja
Extract SDL3-devel-3.4.14-mingw.zip from the SDL3 release page. In PowerShell, run these commands from the repository root. Adjust the paths to match your installation and ROM.
& "${env:ProgramFiles}\Git\bin\bash.exe" scripts/setup_third_party.sh
$env:Path = "C:\msys64\mingw64\bin;$env:Path"
python scripts/build.py --sdl3-sdk "C:\path\to\SDL3-3.4.14" --rom "C:\path\to\Explorers of Sky.nds"
python scripts/launcher.py --rom "C:\path\to\Explorers of Sky.nds"
After the build succeeds, & .\build\runner\nds_runner.exe --help checks that the runner starts. To create a local ZIP, run python scripts/package_release.py --platform windows. Extract the whole ZIP before opening SkyRecompiled.bat.
iPhone and iPad alpha
Download the pre-built SkyRecompiled-v0.1.0-alpha-ios.ipa from the latest GitHub Releases, or build from source on a Mac with Xcode, CMake, Ninja, and Python 3:
python3 scripts/build_ios.py
The build writes build/ios/SkyRecompiled-iOS-alpha.ipa (or package for distribution with python3 scripts/package_release.py --platform ios). The iOS alpha IPA
GitHub Actions workflow builds and verifies this same artifact on push to main and pull requests.
- SkyRecompiled requires iOS or iPadOS 16.0 or later. Set up AltStore Classic on your iPhone or iPad and enable Developer Mode. AltStore setup for macOS
- Save the IPA to Files. In AltStore, open My Apps, tap +, and select the IPA. AltStore signs it for your device. Refresh it before the signing expires. AltStore signing and refresh
- Open SkyRecompiled, choose Import ROM from Files, and select your own
clean USA or Europe Explorers of Sky
.ndsdump. Tap Compile and Play. Use the on-screen controls or connect a controller. Tap Launcher to exit the game and flush pending saves. - In Files → On My iPhone/iPad → SkyRecompiled, find
Logs/latest.logafter launching the app andSaves/pmdsky.savafter the game creates a save. The iOS software renderer uses the native 1× resolution.
The iOS app reuses the desktop runner and compiles ROM instructions into portable intermediate code on the device. It can run without JIT signing privileges. This alpha uses the runner's interpreter for that code, so performance may differ from the native desktop build.
For Apple silicon Mac testing, boot an iPhone or iPad in Simulator, then run these commands from the repository root. Simulator sets up the runtime the app needs at launch.
python3 scripts/build_ios.py --simulator
xcrun simctl install booted build/ios/simulator/SkyRecompiled.app
xcrun simctl launch booted dev.skyrecompiled.ios
Running the iOS build directly on an Apple silicon Mac requires Apple development or distribution signing. Apple silicon iOS app testing
AI Usage & Verification Disclaimer
AI coding tools were used during the development of this project. All translated and recompiled output is rigorously verified against real Nintendo DS hardware and reference emulator behavior:
- 100% Executable Coverage: All 34 executable modules (
arm9,itcm,arm7+ WRAM/RAM drivers, and all 32 active overlays -- 91,872 functions) compile natively with zero unimplemented instructions. - Hardware-Synced Logic: Over 99.9% of guest instructions execute through native static C code with zero RAM code rejects. Game logic, turn execution, deterministic RNG, and cartridge FRAM/EEPROM saves are verified against hardware behavior and melonDS references via automated test suites.
Credits & Acknowledgments
RetroPortingToolKit/ndsrecomp&recomp-ui-- Nintendo DS static recompilation framework & runtimeUsernameFodder/pmdsky-debug-- Explorers of Sky symbol tables & C headerspret/pmd-sky-- Decompilation reference for game engine structuresAsphaltian/pmd-space(Explorers of Space,GPL-3.0-only) -- Source for adapted PMD Sky widescreen code (3D dungeon darkness bands, full-screen fade rectangles, margin sprite culling reaches, and off-screen cutscene actor handling)FreeBIOS(BSD-2-Clause) &melonDS(GPL-3.0-or-later)
License
The combined SkyRecompiled work, including its linked nds_runner, is distributed under the GNU General Public License v3.0 (LICENSE). Code adapted from Asphaltian/pmd-space is available under its upstream GPL-3.0-only grant. Independently licensed code retains its original terms, including the GPL-3.0-or-later grant for independently licensed SkyRecompiled code. Integrated third-party components retain their respective licenses (FreeBIOS under BSD-2-Clause, melonDS under GPL-3.0-or-later, pmdsky-debug under MIT/GPL-3.0).
At the pinned ndsrecomp revision, PolyForm Noncommercial 1.0.0 is the default for upstream project code. The upstream license grants MIT terms for the original runtime code linked into nds_runner and GPL-3.0-or-later terms for its melonDS-derived code. Separately licensed dependencies retain their own terms. See the pinned upstream licensing notice.