Files
libretro/emulators/parallel-launcher.yml
Abdessamad Derraz 11da070128 chore: recale the profile refs onto their pins
Upstream moved under 145 profiles: 679 refs shifted and 452 followed a
renamed file, against 6,483 that still anchor where they were written.
The recale rewrites the located ranges only, keeping the annotations and
the sentences that carry them, and 106 pins advance in the same commit
because refs and source_commit name one revision or the profile
describes two at once.

Nothing here was guessed. The 183 refs that are CHANGED, GONE or
AMBIGUOUS are untouched, and the 57 profiles holding them keep their old
pin until someone reads the diff: profile_sync refuses to recale a
profile while any of its refs needs a re-read. trident kept its pin too,
its annotated ref being one the writer will not rewrite.
2026-09-04 14:41:44 +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: "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: "gles2n64/src/glN64Config.c:185-228"