Files
libretro/emulators/parallel-launcher.yml
T

72 lines
3.6 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: "8f2924c213f7c98118ab5a86fc21c452b77a7057"
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 (retroarch-updater.cpp:24-30). The core,
parallel_n64_next_libretro, is fetched from parallel-launcher.ca
(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 (retroarch.cpp:100-129).
RetroArch is spawned as `-L <core> --config <cfg> <rom>`
(retroarch.cpp:760-781). The launcher also rewrites the core's .info into
retro-data/info at every startup (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 (main.cpp:65-94), the add-ROM
dialog the same (main-window.cpp:607-616), the library scanner *.[nvz]64
(rom-finder.cpp:271-278), romhacking.com downloads .z64 (sync.cpp:238). A .bps
is patched to a cartridge ROM before launch (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.c:545-548 and the cart-and-disk subsystem at
libretro.c:104-114.
Graphics plugin is chosen per ROM among ParaLLEl-RDP, Glide64, angrylion,
GLideN64, Rice, glN64 and OGRE (settings.hpp:13-22, 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
(glN64Config.c:246-254, Config_WriteConfig at 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 (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 (retroarch.cpp:468,
Config_mupenplus.cpp:170-241, libretro.c:2030-2040). Rice's ini reader and
writer sit behind #if 0 (RiceConfig.cpp:453-463, 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"