-
Notifications
You must be signed in to change notification settings - Fork 2
Neutrino Reference
This fork can hand a game off to an external Neutrino ELF instead of OPL's built-in EE core, on a per-game basis. This is useful for titles that boot better under Neutrino, or for users who prefer Neutrino's loader and its launch flags.
The core selector and the launch-args fields described here are specific to this fork.
Neutrino is created by rickgaiser — a "Small, Fast and Modular PS2 Device Emulator". Home: https://github.com/rickgaiser/neutrino.
The RiptOPL release package
normally bundles the official latest build, re-fetched from upstream at publish time (a failed download/extraction can omit it; check the release notes), under Neutrino's
AFL-3.0 licence. We add exactly one file to that folder — config/bsd-udpfsbd.toml, because
Neutrino ships udpfs_bd.irx without a matching -bsd token and RiptOPL launches UDPFS as
-bsd=udpfsbd. Nothing of rickgaiser's is altered or removed.
Neutrino is deliberately UI-agnostic: it has no interface of its own, and that is exactly what makes a front-end like this one possible. RiptOPL is one of several — NHDDL, XEB+ Plugin, RETROLauncher, OSD-XMB and PSBBN/BBNL all drive the same core.
Report launching problems here — building the arguments and handing off are ours. Genuine Neutrino bugs belong on rickgaiser's tracker.
The RiptOPL release package ships a ready-to-use neutrino/ folder — drag it onto a memory card
as mc?:/neutrino/ and this is already done. (Upstream OPL does not bundle Neutrino; if you built
RiptOPL yourself or are coming from another loader, supply it from
https://github.com/rickgaiser/neutrino/releases.)
Either way, copy Neutrino's whole neutrino/ folder, not just the ELF: OPL only accepts an install when config/system.toml (or a flat system.toml,
the SAS layout) sits beside neutrino.elf. An ELF-only folder is skipped and probing
continues, so you get the <OPL> fallback even though the file exists.
A memory card is the zero-config default — mc0:NEUTRINO/neutrino.elf, then
mc1:NEUTRINO/neutrino.elf — but it is the last place OPL looks, not the first. The full
order is:
| Priority | Where OPL looks |
|---|---|
| 1 | The device type chosen in Game Launching → Neutrino Device (see below) |
| 2 | A custom path in the neutrino_path key of settings_riptopl.cfg
|
| 3 | The active game's own device — <games prefix>/neutrino/, then <device root>/neutrino/
|
| 4 | The internal APA HDD's OPL data partition — hdd0:/+OPL/neutrino/ or hdd0:/__common/OPL/neutrino/ (only while the HDD is started) |
| 5 |
mc0: / mc1: — NEUTRINO/neutrino.elf and its lowercase / NEUTRINO.ELF variants |
If no complete install is found when you launch a game set to the Neutrino core, OPL shows a
warning and falls back to the <OPL> core for that launch.
Game Launching → Neutrino Device picks the device type holding
<root>:/neutrino/neutrino.elf — Auto / Memory Card / USB / MX4SIO / MMCE / HDD (exFAT) /
HDD (APA) / Game's Device / iLink. A miss on the device you picked is not a dead end: OPL falls
through to the AUTO tiers above. The exception is Game's Device, which only ever looks on
the game's own device and reports "not found" instead of falling back.
HDD (APA) is the one entry that is not a plain device root, because a raw APA partition cannot be
opened directly — only a mounted one can. OPL therefore uses the OPL data partition it has already
mounted, which is the same partition NHDDL resolves for its own
hdd0:/<OPL partition>/neutrino/neutrino.elf rule (hdd0:__common/OPL/conf_hdd.cfg, else +OPL,
else __common/OPL). In practice that means both of these work, with no extra setting to fill in:
| Your OPL data home | Put Neutrino at |
|---|---|
+OPL (the preferred default when the partition exists) |
hdd0:/+OPL/neutrino/ |
__common |
hdd0:/__common/OPL/neutrino/ |
The APA HDD must be started for this to resolve — nothing is mounted to read otherwise — but the game itself may live anywhere: a USB or MMCE game can boot from an APA-hosted Neutrino, and OPL keeps that partition mounted across the handoff so the ELF is still readable when it is loaded. A Neutrino install on a partition that is not the OPL data home is not reachable; move it, or use one of the other devices.
You can also point OPL at a custom location with the neutrino_path key in
settings_riptopl.cfg (there is no menu row for it). When it is set and the file exists it takes priority over the
auto-detected tiers above (the game's own device and mc0:/mc1:) — only the Neutrino
Device picker outranks it; leave it out to use the auto-detection. The custom path is
honoured only when its install passes the same config/system.toml completeness check (a path
with no directory component is taken as-is). For a path longer than the on-screen 31-character
editor, set neutrino_path in settings_riptopl.cfg directly.
Network boot is the exception: the UDPFS feature (§4) ships its own bundled Neutrino (a ready-to-use
neutrino/folder inside the release's installable package, pre-populated with the UDPFS config). The per-game Neutrino use described in this section still needs you to supplyneutrino.elfat the paths above.
- Highlight a game, press Triangle and choose Game Settings.
- Set Loader Core to one of:
-
<OPL>— OPL's built-in core (default). -
Neutrino— chain to the externalneutrino.elf.
-
- Save. The choice is stored per title (
$CoreLoaderin the game's.cfg).
| Source | Neutrino? | VMC under Neutrino? |
|---|---|---|
| USB / MX4SIO / internal ATA (BDM) | ✅ | ✅ -mcN=massN:…VMC/<name>.bin
|
| iLink / IEEE 1394 (FAT PS2 models only) | -mcN=massN:…VMC/<name>.bin is emitted; the overall iLink launch is pending retest |
|
| Internal HDD (APA → HDL) | ✅ | ❌ games boot, VMC is dropped with a warning — Neutrino has no APA/pfs backing store to open the .bin from (NHDDL's HDL backend has the same no-VMC rule). The OPL core honors the same VMC normally. |
| MMCE | ✅ | ✅ -mcN=mmceN:/…VMC/<name>.bin
|
| UDPFS (network boot — Files or Image) | ✅ required — no OPL core, Neutrino only (see §4) | ✅ -mcN=udpfs:/VMC/<name>.bin — the PC server must not run read-only, or saves fail |
| SMB / ETH | ❌ (always launches with <OPL>; the core selector is locked and a stale Neutrino selection warns at launch) |
n/a (OPL-core VMC works normally) |
USB Extreme split images (.ul) |
❌ (falls back to <OPL>) |
n/a |
Compressed ISO (.zso) |
❌ (falls back to <OPL>) |
n/a |
Upstream rates iLink lowest of every backend. Neutrino's own backend table lists iLink / IEEE1394 at a device-compatibility score of 10, against 80 for USB, 60 for MX4SIO and 100 for MMCE, ATA, UDPBD and UDPFS -- and restricts it to FAT PS2 models. So a passing
-qbretest is necessary but may not be sufficient: some iLink enclosures are expected to fail upstream too. Use the isolation checks below rather than assuming any single fix makes iLink universally work.
Unsupported cases fall back to the <OPL> core automatically with an on-screen warning.
PS1 games are a separate path. PlayStation 1 titles (
*.VCD, shown according to the shared PS2/PS1 Game Display setting) always boot through POPSTARTER.ELF — never OPL's core and never Neutrino — so the per-game Loader Core selector is locked/inert for them. See VCD.md.
OPL always builds the mandatory Neutrino arguments for you from the game and its settings:
| Auto argument | When |
|---|---|
-bsd=<usb|ilink|mx4sio|ata|mmce|udpfs|udpfsbd|udpbd> |
always (the storage backend). APA HDD maps to ata (+ -bsdfs=hdl), so no separate apa token is ever emitted. OPL emits this unconditionally for every backend, including udpfs — nightly Neutrino builds that auto-detect the backend simply ignore the explicit token, so there is no version split on OPL's side |
-bsdfs=hdl |
internal HDD (APA) only |
-bsdfs=<exfat|hdl|bd> |
only if the per-game Neutrino Filesystem picker (Compatibility screen) is set off Auto; block-backed devices only (never mmce/udpfs — no filesystem layer there). hdl/bd also reshape -dvd to hdl:/bdfs:; a hand-typed -bsdfs=/-dvd= in the args always wins |
-dvd=<path> / -dvd=hdl:<partition>
|
always (the game image/partition) |
-qb |
USB and iLink. RiptOPL's no-reset ELF bridge deliberately preserves the already-mounted BDM environment; quick boot makes Neutrino enter its load environment without resetting that inherited stack away. A user-supplied active -qb is never duplicated |
-gc=<modes> |
only if the game has OPL compatibility modes set |
-dbc |
only if Debug Colors is enabled |
-logo |
only if PS2 Logo is enabled |
-gsm=<mode>[:<comp>] |
only if a Neutrino Video mode resolves for the game (per-game picker, or the global Settings → Game Launching → Neutrino Video default when the per-game picker is "Default"). The :<comp> half is appended only when a Neutrino GSM Compatibility type is set — it is never emitted on its own |
Revision 2692 iLink result: Neutrino failed on an SCPH-39001 from iLink in all four SDK flavours. That build emitted the documented
-bsd=ilinktoken but, unlike its USB handoff, did not emit-qb. Because RiptOPL's bridge intentionally preserves the mounted iLink environment and Neutrino documents-qbas direct entry into its load environment, that omission is a source-confirmed handoff mismatch consistent with the observed reset-boundary symptom. The post-2692 change corrects the mismatch; only a new hardware pass can establish whether it was the complete cause, so this remains pending retest rather than being documented as proven.
On top of those, you can pass extra Neutrino flags (e.g. media-type or video tweaks) in two places. Both are appended after the auto-built arguments; global first, then per-game, so a game can extend the global set.
Game Launching → Neutrino Defaults → Advanced Arguments (config key neutrino_args in
settings_riptopl.cfg).
Triangle → Game Settings → Neutrino Launch Args (config key
$NeutrinoArgs in the game's .cfg).
Both rows are buttons that open the same structured sub-screen rather than one raw text
field: Quick Boot (-qb), Debug Colors (-dbc), PS2 Logo (-logo), Working Dir
(-cwd), Config (-cfg), Boot ELF (-elf), -ata0, -ata0id, -ata1, plus a
free-text Extra field for everything else. OPL reassembles the fields in the order Neutrino
accepts, with the Extra / --b tail last.
Quick Boot means enter Neutrino's load environment directly; it is not merely a boot-screen toggle. RiptOPL supplies it automatically for USB and iLink handoffs, so enabling the field yourself on those devices changes nothing and does not add a duplicate.
The stored format is unchanged — a space-separated string, e.g.:
-mt=dvd -gsm=1
Editor length: each on-screen field still edits at most 31 characters (the same limit as Custom ELF / Game ID), but fields you don't touch keep their full stored value, so editing one field no longer truncates the others. Edit
neutrino_args/$NeutrinoArgsdirectly in the config file only when a single field needs more than 31 characters — OPL reads and forwards the full string at launch.
RiptOPL defaults neutrino_elf_arg to 1 (there is deliberately no settings-screen row for
this), making every Neutrino launch also pass
-elf=cdrom0:\<STARTUP>;1 -- the game's boot-file path -- so Neutrino's per-GameID
config/<GameID>.toml compatibility lookup can resolve before its IOP reset. It is only
emitted for retail-shaped startups (AAAA_NNN.NN) and never when your own args already carry
an -elf=. Set neutrino_elf_arg = 0 by hand to disable it if a launch misbehaves.
For the full list of flags Neutrino accepts, see the Neutrino documentation.
RiptOPL streams games from a PC over the LAN, chosen with the Game Sources → Network
Connectivity row (Off / Manual / Auto) plus the Network → Protocol selector — SMB / UDPFS /
UDPBD / HTTP. HTTP uses OPL’s core and has its own guide. UDPFS is the modern
network-boot protocol (Rick Gaiser's UDPRDMA transport); UDPBD is the older SUDPBDv2 protocol,
kept for users still running the udpbd-server. Both appear in OPL as their own games list — with
covers and per-game settings — and boot via the external Neutrino core. SMB uses
a mounted SMB file share served by OPL's own core (no Neutrino), and it keeps its own address /
port / share / credentials fields plus an SMB Version row (SMBv1 default, or SMB2).
Changing the version only takes effect on the next boot — OPL shows the usual restart notice when a
network stack is already up — and it warns first that SMB2 changes both browsing and in-game
reading, so an SMBv1-only server (including the bundled PS2-Servers tool) will list no games.
| Choice | Wire protocol | On the PS2 | Core | PC server |
|---|---|---|---|---|
| Network Connectivity: Off | — | no network device (default) | — | — |
| SMB | SMBv1 (default) or SMB2 — Network → SMB Version | a mounted file share | OPL's own core (not Neutrino) | PS2 Servers (recommended) / Samba |
| UDPFS | UDPRDMA | a games source served over UDP (see UDPFS Access below) | Neutrino only |
PS2 Servers (recommended, PC) / udpfs-server (Android) / udpfsd
|
| UDPBD | SUDPBDv2 | a served disk image mounted as massN:
|
Neutrino only |
PS2 Servers (recommended) / udpbd-server
|
| HTTP | HTTP byte ranges | a games.csv catalog and ISO streams |
OPL's own core | Docmine17's server or a server meeting the HTTP profile |
SMB3 is reserved, not offered. The dialect enum has a slot for it, but packet signing isn't implemented, so the picker deliberately stops at SMB2. The bundled PS2-Servers SMB server speaks SMBv1 — leave the picker on SMBv1 unless your server does SMB2.
Because the PS2 has a single network adapter, only ONE of these is active per session — the selector is exclusive by construction (the old separate ETH start-mode + "Network Boot" toggle + "Net Boot Protocol" picker, and their live interlock, are all gone). Local devices (USB / internal HDD / MMCE) are independent and browse alongside whichever network protocol you pick.
UDPBD vs UDPFS — pick by your PC server. They are wire-incompatible: UDPBD speaks SUDPBDv2 (port
0xBDBD,udpbd-server), UDPFS speaks UDPRDMA (port0xF5F6,udpfsd). If you already run the oldudpbd-server, select UDPBD and nothing else changes. If you're setting up fresh, prefer UDPFS (it also serves loose ISOs and transparent.zso/.chd— see below). A config saved as UDPBD stays UDPBD: RiptOPL never silently migrates you off it.
When UDPFS is selected, a second sub-setting "UDPFS Access" appears with two values — Files
(default) and IMG (image mode). They are the same UDPFS protocol in two shapes: Files is the udpfs_ioman
FILESYSTEM (udpfs:), Image is the udpfs_bd BLOCK device (massN:).
| Files (default) | IMG | |
|---|---|---|
| IOP driver |
udpfs_ioman.irx → udpfs: (filesystem) |
udpfs_bd.irx → massN: (block device) |
| PC serves | a folder containing CD/ and DVD/ subfolders of ISOs (the standard OPL layout — OPL lists from <served>/CD + <served>/DVD, NOT from the folder root) |
a FAT/exFAT disk image |
| Server command | udpfsd -fsroot <dir> |
udpfsd -bdpath <image> |
| Launch | by name (-dvd=udpfs:<name>, stock -bsd=udpfs) — no massN:, no fragment list |
mounted like a USB drive (massN:, fragment-list launch) |
| Add a game | drop it into the served CD/ or DVD/ folder |
mount the image, copy, unmount |
| Compression | transparent .zso/.cso/.chd
|
— (raw sectors only) |
Because both backends bind the same UDPRDMA port and the IOP ministack can load only one per boot, you can't run both at once — Files vs Image is a config-time choice (defaulting to Files). It's a single-adapter, single-transport decision, so switching Files ↔ Image needs an OPL restart to take effect (OPL shows the usual restart-to-apply notice).
-
Files launches with the stock
-bsd=udpfs, which loads Neutrino's shippedbsd-udpfs.toml(the FHI filesystem driver,udpfs_ioman/udpfs_fhi). Neutrino opens the game by name (-dvd=udpfs:<name>) — nomassN:block device, no fragment list. On the nightly Neutrino the-bsdis auto-detected. -
Image launches with
-bsd=udpfsbd, a RiptOPL-private token: Neutrino shipsudpfs_bd.irxbut no stock-bsdfor it, so RiptOPL auto-placesconfig/bsd-udpfsbd.tomlinto the bundled Neutrino folder. The private name is deliberate — it avoids colliding with stock'sbsd-udpfs.toml(a different driver), so the block config and the stock filesystem config coexist on one install.
- A PC-side UDPFS server on the same LAN, matching the UDPFS Access mode you chose. RiptOPL does
not embed one. Serving from a phone or tablet instead of a PC?
udpfs-server by
YouKnow-sys is an Android app that shares folders and disk
images over UDPFS and is found by broadcast, so there is no address to type on the console; it is
built on udpfsd by pcm720
and is MIT licensed. On a PC, use NathanNeurotic/PS2-Servers,
the maintained all-in-one launcher for UDPFS, SMBv1 and UDPBD; release packages include a
PS2-Servers.urlshortcut to it. Advanced users can instead run pcm720/udpfsd directly. The old standaloneudpbd-server(SUDPBDv2) does not work with UDPFS. Layout: Image mode's served FAT/exFAT image uses the usual OPL folders (CD,DVD,ART,CFG, …); Files mode's served directory needs the sameCD/+DVD/subfolders — OPL never lists ISOs sitting loose at the served root. - A static PS2 IP. UDPFS has no DHCP client — it reuses the address from Settings → Network, so set a static IP there. OPL warns if DHCP is on when you select UDPFS, and repeats the warning as a boot notice while a UDPFS protocol is active with DHCP still on. SMB's server / port / share / credentials fields hide automatically when UDPFS is selected.
- You can start the server after the console: the UDPFS drivers keep re-discovering in the background (both Files and Image), so the games page appears when the server comes up — no reboot.
- UDPFS is Neutrino-only (no
<OPL>core fallback); ifneutrino.elfis missing, OPL warns and returns to the menu.
At launch, Neutrino reads its own IP from a toml, not from OPL. When a game boots, control hands to the external Neutrino, which reads the toml for the active mode — Files uses the stock
config/bsd-udpfs.toml; Image uses the bundledconfig/bsd-udpfsbd.toml. Both ship hardcodingip=192.168.1.10, which historically meant games listed fine in OPL but failed to boot on any other subnet. RiptOPL now rewrites the active toml'sip=to your configured PS2 IP at every UDPFS launch, so no hand-edit is needed; if the toml has been restructured so the"ip=token isn't found, OPL logs it and leaves the file alone (the old hand-edit contract applies).
Hardware note: the UDPRDMA path (both Files and Image) is validated on emulator only so far — real-PS2 confirmation is pending.
The per-game settings adapt to the Loader Core chosen for that title, so you only see options the selected core actually honors (Neutrino ignores most of OPL's embedded-core features — see the mapping below).
When a game's core is Neutrino:
-
Compatibility screen: the Neutrino Launch Args field is editable, and a Neutrino Video picker (Off / 240p / 480p / 1080i x1–x3 / Default) appears beside it — it maps to Neutrino's
-gsm(fp1/fp2/1080ix1..3; Off emits nothing) and is the Neutrino-side stand-in for the hidden OPL GSM panel. Default follows the global Neutrino Video setting in Settings (so you can force e.g.-gsm=1080ix3for every Neutrino game at once); an explicit per-game value — including Off — overrides the global. The picker is the default source of-gsm: a manual-gsmtyped into Launch Args takes precedence (OPL emits only one-gsm, since Neutrino aborts on a duplicate/malformed value).The "1080p impression" trick: on 1080-class displays,
1080i x3(-gsm=1080ix3) is the community workaround for progressive-looking output — the same effect people previously got by launching Neutrino from PS2BBLE/OSDmenu with-gsm=1080ix3. Set it per game, or globally via Settings → Game Launching → Neutrino Video and leave games on "Default". Neutrino itself exposes only the listed1080imodes; it does not expose RiptOPL's separate, GSM-synthetic forced-progressive 1080p mode used by the native OPL core. OPL compat mode 4 (Skip Videos) and mode 6 (Disable IGR) are greyed — they're OPL ee-core features with no Neutrino equivalent (Neutrino has no in-game reset, and no PSS/BIK video-skip), so OPL never forwards them. Download Defaults is greyed too (it pulls OPL-bitmask data that doesn't map to-gc). Modes 1/2/3/5 do map to-gc, and a Neutrino-only mode 7 (greyed under the OPL core — the inverse of 4/6) maps to-gc=7(fix games that overrun an IOP buffer). -
Neutrino GSM Compatibility (Compatibility screen, beside Neutrino Video) — Off / Type 1 (GSM/OPL) / Type 2 / Type 3 / Default — supplies the
:<comp>half of-gsm=<mode>:<comp>, a field-flipping fix for shake/tear. The comp half is never emitted without a video mode (a bare:<comp>aborts Neutrino's boot), so the row greys out while the effective video mode is Off; Default follows the global Settings value. -
GSM, Cheats, PADEMU, OSD Language panels are OPL-core-only; opening one shows "not used with the Neutrino core" instead of editing dead options (use the Neutrino Video picker above for video forcing).
-
VMC and Compatibility stay available — both are honored under Neutrino. VMC becomes discrete
-mc0/-mc1args on BDM devices (USB/iLink/MX4SIO/exFAT HDD/UDPBD), MMCE and UDPFS; the one exception is APA HDD, where no-mcargs can be emitted (Neutrino has no APA/pfs backing store — the game boots and OPL warns that the VMC was dropped). See the VMC notes below. -
UDPFS games (both Files and Image) have no OPL core backend, so the Loader Core selector is locked to Neutrino for them (they always launch via Neutrino regardless).
When a game's core is <OPL> the screen is unchanged from classic OPL, except the Neutrino
Args field and Neutrino Video picker are greyed (never read on the OPL path).
What Neutrino honors per game: the storage backend + image (
-bsd/-dvd, automatic), compat subset (-gc), VMC (-mc0/-mc1),-logo, and the free-text Neutrino Launch Args (the catch-all for everything else, with$-disable). Cheats, GSM hacks, IGR/IGS, PADEMU and OSD-language are OPL-embedded-core features with no Neutrino equivalent.
OPL turns the per-game VMC settings ($VMC_0/$VMC_1) into discrete
-mcN=<device>:…VMC/<name>.bin arguments — the same .bin, in the same VMC/ folder, that the
OPL core's mcemu uses, so one card serves both cores.
Each slot also has a Disable VMC N (keep card) toggle on the Compatibility screen (stored as
$VMCDisable_0 / $VMCDisable_1). It suppresses that slot's -mc argument for Neutrino
launches only — the card name stays configured and the game sees the real physical card; OPL's
own mcemu ignores the toggle entirely. Dropping the argument also clears that slot from the VMC
slot mask, so the MMCE GameID card-switch re-arms for it, and on APA HDD it silences the
"VMC unsupported under Neutrino" warning.
Rules that follow from Neutrino's design (verified against rickgaiser/neutrino source):
-
The
.binmust already exist. Neutrino opens itO_RDWRwith no create, and aborts the whole boot (black screen) if it can't. OPL therefore creates/format cards at config time (the per-game VMC menu, via genvmc — including over UDPFS), and at launch verifies each card and skips a missing one with a warning rather than handing Neutrino an unopenable path. -
The VMC must live on the same device as the game. Neutrino loads exactly one backing-store
driver per launch and every virtual file (ISO + VMCs) shares it — a VMC on a different device
than the ISO is structurally unsupported. This is also why APA HDD can't have one: the game
comes from raw APA (
-bsd=ata -bsdfs=hdl), and there is no pfs backend for the.bin. -
UDPFS VMCs are writable network files: the card lives at
VMC/<name>.binunder the PC server's shared folder, and the server must not run in read-only mode or saves fail. - Block devices share Neutrino's 64-fragment budget across ISO + VMCs; OPL pre-counts and falls back/aborts with a message when it can't fit (defragment the drive if you see it).
-
Upstream caveats (Neutrino's
mc_emu, as of mid-2026): only port 1 (-mc0) is actually emulated —-mc1is accepted and opened but the second port's emulation is left inactive — and the advertised card geometry is hardcoded (8192 pages ≈ first 4 MB of the image addressed) rather than read from the card file. Both are Neutrino-side behaviors, not OPL's; prefer slot 1 and 8 MB cards for predictable results.
Related guide: Neutrino.
Source: docs/NEUTRINO.md @ 3ce281b0793c.
Start here
Storage and networking
- USB, MX4SIO and iLink
- MMCE
- Internal HDD: APA and exFAT
- SMB shares
- Network boot: UDPFS and UDPBD
- HTTP
- NBD server
Games and features
- Neutrino core
- PS1: POPStarter and Ember
- Per-game settings
- Virtual memory cards
- GSM video modes
- In-game reset
- Cheats
- PADEMU
- RetroAchievements
- Apps
Interface and customization
Help and reference
- Troubleshooting
- ZSO format
- Backward-compatible PS3
- Credits and sources
- Features in other forks
- Project overview
Detailed references
- Complete repository guide
- Rolling release reference
- APA hard disk safety and code 402
- Autolaunch and global settings
- Controls reference
- GSM reference
- HTTP reference
- In-game reset reference
- Folders, parental lock and audio
- Language maintenance
- MX4SIO launch reference
- Neutrino reference
- PADEMU reference
- RetroAchievements reference
- Theme engine: full authoring reference
- PS1/VCD reference
- HTTP server conformance tools
- APA recovery tool