Skip to content

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

Titles and symptoms

Media

Process and history