Files
libretro/emulators/parallel-launcher.yml
T
Abdessamad Derraz b3b3880c19 chore: say which repository each source_ref cites
Profiles that read two repositories, a libretro port and its upstream,
now prefix each citation with source or upstream, decided by which tree
carries the cited value at its pin. The emulator pages use the word to
tell libretro glue, emulator code as the port carries it, and the
upstream emulator apart.
2026-10-20 09:23:41 +02:00

72 lines
3.8 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: "11574ac28d27faaaef4b5bc3c1ca50fb2ed98b83"
core_version: "9.0.5"
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"