Files
libretro/emulators/parallel-launcher.yml
T
Abdessamad Derraz 3199bc2a55 fix: state standalone versions from their code
Each standalone profile records where its version is read: the source
at its pin (clk 2026-07-23-136-g9020107, shadps4 0.20.1 WIP, eden
v0.2.0-401-g26a03d2), the APK, binary or archive read (kind package),
or, where no reading can be made, kind unverified with the reason: a
host the tools cannot read, a forge gone or not answering, no build
recorded as read, a pin on another branch. Those keep their value,
unconfirmed.
2026-10-27 19:21:40 +01:00

77 lines
4.0 KiB
YAML

emulator: Parallel Launcher
type: standalone
core_classification: launcher
source: "https://gitlab.com/parallel-launcher/parallel-launcher"
upstream: "https://gitlab.com/parallel-launcher/parallel-n64"
profiled_date: "2026-08-08"
source_commit: "8dc2a83770c57bc00e1b1fae0aed71f2120cc875"
upstream_commit: "a9028b23bd5ee8b465eefc64320fd7701f3430fa"
core_version: "9.0.6"
version_basis:
kind: file
path: "src/core/version.cpp"
pattern: 'CurrentVersion::Application\s*=\s*\{\s*(\d+),\s*(\d+),\s*(\d+)\s*\}'
format: "{1}.{2}.{3}"
display_name: "Nintendo - Nintendo 64 (Parallel Launcher)"
cores:
- parallel-launcher
- ca.parallel_launcher.ParallelLauncher
systems:
- nintendo-64
- nintendo-64dd
notes: |
Qt front end that installs and drives its own RetroArch and its own fork of
ParaLLEl N64. RetroArch is fetched from buildbot.libretro.com as a stable
release archive (src/updaters/retroarch-updater.cpp:24-30). The core,
parallel_n64_next_libretro, is fetched from parallel-launcher.ca
(src/core/updates.cpp:190-213) into retro-data/cores. Core version at this profiling
is 2.28.
Neither lands in a user RetroArch install. The system directory the core
reads from is retro-data/system under the launcher's own data directory,
written into a private retroarch.cfg on every launch (src/core/retroarch.cpp:100-129).
RetroArch is spawned as `-L <core> --config <cfg> <rom>`
(src/core/retroarch.cpp:760-781). The launcher also rewrites the core's .info into
retro-data/info at every startup (src/main.cpp:149-156), which is how RetroArch
learns of the 64DD firmware entry.
Content is restricted to cartridge formats at every entry point: command line
and file associations take .z64 .n64 .v64 .bps (src/main.cpp:65-94), the add-ROM
dialog the same (src/ui/main-window.cpp:607-616), the library scanner *.[nvz]64
(src/core/rom-finder.cpp:271-278), romhacking.com downloads .z64 (src/rhdc/core/sync.cpp:238). A .bps
is patched to a cartridge ROM before launch (src/ui/play.cpp:721-757). No --subsystem
argument is passed either, so neither route into the core's disk path opens:
the header check at libretro/libretro.c:545-548 and the cart-and-disk subsystem at
libretro/libretro.c:104-114.
Graphics plugin is chosen per ROM among ParaLLEl-RDP, Glide64, angrylion,
GLideN64, Rice, glN64 and OGRE (src/core/settings.hpp:13-22, src/core/retroarch.cpp:55-64).
Selecting glN64 also reads gles2n64.conf from the system directory root at
plugin init, and writes it out with defaults when it is absent
(gles2n64/src/glN64Config.c:246-254, Config_WriteConfig at gles2n64/src/glN64Config.c:95).
Three paths the fork computes but never reads. GLideN64 builds without
FreeType here, so the font file name it resolves for on-screen text is
assigned and dropped (mupen64plus-video-gliden64/src/TextDrawer.cpp:145-188). Its per-game ini is compiled in
as a header and the external copy is skipped because the launcher writes INI
Behaviour as disabled on every launch (src/core/retroarch.cpp:468,
mupen64plus-video-gliden64/src/mupenplus/Config_mupenplus.cpp:170-241, libretro/libretro.c:2030-2040). Rice's ini reader and
writer sit behind #if 0 (gles2rice/src/RiceConfig.cpp:453-463, gles2rice/src/Video.cpp:327-333).
files:
- name: "64DD_IPL.bin"
system: nintendo-64dd
required: false
description: "64DD IPL ROM"
note: "Read from the system directory root when disk content is loaded, with no size or hash check. The core drops into its dead-emulator loop when it is absent. Content counts as disk when its header carries a 64DD magic word, or when it arrives on the second slot of the cart-and-disk subsystem."
source_ref: "upstream libretro/libretro.c:622-666"
- name: "gles2n64rom.conf"
system: nintendo-64
required: false
description: "glN64 per-ROM settings database"
note: "Read at plugin init when the glN64 graphics plugin is selected, keyed on the name in the ROM header. Global settings stand when absent."
source_ref: "upstream gles2n64/src/glN64Config.c:185-228"