Napple documentation¶
Napple turns a Switch game you own into a native Apple Silicon app (ahead-of-time ARM64 rewrite, Horizon HLE runtime, NVN on Metal). This is the documentation of the project; the repository front page is the README and the title status is in COMPATIBILITY.md.
Start here by role¶
User (you want to build and run a game) 1. README: what Napple is, requirements and the legal notes. 2. CLI reference and Studio protocol for the build commands. 3. Per-title notes for the four reference titles and how to build their test data. 4. Symptoms: something went wrong, look up the symptom.
Contributor (you want to change the code) 1. Architecture overview, then the page of the subsystem you touch. 2. Contributor guides: add a service, an svc, an NVN function, a Maxwell op, a game, a signature; debugging; testing; network providers; hardware simulators; Napple Studio. Community contributions (no code needed): report a bug, document a title, report a graphics bug, write a mod or fix, labels, Discussions, conduct; the legal rules and sign-off are in CONTRIBUTING.md. 3. Subsystem map (code, tests, debug switches per subsystem), environment variables, glossary.
Maintainer (you integrate and release)
1. Parallel-session workflow.
2. Change archive: the dated notes of every round.
3. Tooling (REA, Ghidra) and the CI workflows in .github/workflows/.
4. Deploy the game servers (pretend.napple.lat on AWS, the napple.lat DNS, the local test stack).
Contents¶
Architecture¶
| Page | What it covers |
|---|---|
| Overview | Pipeline, runtime, source layout, design decisions, diagrams |
| Runtime data and module tables | Data directory, NTB tables, app bundle, RomFS modes, launch contract |
| Rewriter output format | Patched images, key page, gate, fixups, sites |
| Compatibility matrix format | compat/matrix.json, stages, statuses |
| Runtime services and kernel | Every HLE service and svc with its status |
| Graphics | Design decisions and the runtime to gfx interface |
| Audio, input, frontend interface | Library APIs the runtime calls |
| AArch32 path | 32-bit titles: interpreter and recompiler |
| iOS and iPadOS | AOT-only target, signing, install, Simulator results |
| Studio protocol | How Studio drives the napple CLI |
Guides¶
See the guide index.
Reference¶
| Page | What it covers |
|---|---|
| Subsystem map | Code, tests and debug switches per subsystem |
| CLI | napple and the runtime command line |
| System data folders | The one support root: Mii database, amiibo store, fonts, system.json |
| Environment variables | Every NAPPLE_* variable read by the code |
| Support matrix | Generated per-title status per platform (macOS now, iOS deferred) |
| Feature support | Generated coverage by domain and what is not implemented yet (JSON for the site) |
| Catalogue field reference | Where each title fact is written and what the generated support tables read |
| Glossary | Horizon, NSO, NCA, BKTR, NVN, Maxwell and the rest |
| Tooling | REA, Ghidra and the JDK used for signatures |
| Open work markers | Deferred work that used to be TODO comments in the source |
Mods and fixes¶
- Mods and fixes (
.napmod): the shareable mod format, authoring a fix, format reference and trust model, integration notes.
Titles and symptoms¶
- titles/: Link's Awakening, Super Mario Odyssey, Animal Crossing: New Horizons, Mario Kart 8 Deluxe.
- Symptoms: symptom, cause, fix, and where it was found.
Media¶
- YouTube video kit: script, call to action, shot list, titles and description.
Process and history¶
- Parallel-session workflow
- Change archive, with the unattended rounds (batch b7, rounds r1-r7)