Only Android keeps the profile's files under one folder. On desktop the RTP comes from the registry, XDG data dirs or RPG*_RTP_PATH, and the soundfonts from the game or working folder.
Core::SetDataRoot (src/core/core.cpp:141-257) per system, and bios/ as the standalone destination of every image, the default of EmuFolders::Bios (src/core/settings.cpp:2982).
The handheld launcher compared the idle close's line without install.py's RetroBIOS: prefix, and its test fake printed it the same way, so the device still waited 300 s: a test now ties both to TUI_IDLE_WORDS. The interface offered the built-in default folder when the folder found here could not be opened, a folder RetroArch does not read.
Both profiled libretro/beetle-pce-libretro at b96c11e. mednafen_pce
becomes an alias; beetle_pce takes its pce core name and the RetroPie
name beetle-pce. core_version follows libretro.cpp:30 (v1.29.0).
Both profiled libretro/beetle-gba-libretro at b158166. mednafen_gba
becomes an alias; beetle_gba takes its classification, version and
upstream fields.
Both profiled libretro/ep128emu-core at 6af5d03. ep128emu becomes an
alias; ep128emu_core keeps the refs that land on the code and takes the
md5 of each ROM from the copy compiled into roms/roms.hpp, plus the
RetroPie name ep128emu. Adds ide12.rom, which core.cpp:320 loads for
hard disk content with no built-in copy. core_version follows
main.cpp:656 (v1.2.13).
The API reads release_pack from the registry entry, not the inherited config, and the picker gets release-advertised.json. The lookup counts emulators that read a file by name, every record names what was declared, the Data page lists all schemas, the target lists and nested manifest fields, and systems.json items carry their api address.
emulator: carried the file stem on 67 profiles, so site links read like ids. Each now takes the project's own name (libretro .info corename, README title, window title or site title). tests/test_profile_names.py allows the stem only on a commented list: lowercase project names, test cores, aliases and the template.
A system_directory read from retroarch.cfg under a folder this user cannot open ended the run, and the interface before its first screen, on a traceback. It now gets the refusal --dest gets. On a handheld, an idle close on an error screen shows that error for a few seconds instead of waiting for a button that cannot come.
The old-card test read the screen without reading what the key just drew, and pressed Enter twelve rows past its folder on a slow runner. The launcher device now has a sudo that refuses, as a runner's passwordless sudo ran the fake mapper as root and recorded nothing.
An idle close exited 0 on every screen, an error one too. It now exits with the error's or the result's code and prints that screen's words after the idle line.
The save-folder line came from the check run only: after Choose systems the result named it for an unticked system, and the Confirm screen left it out for a kept one. The confirm, preview and install runs now carry their own saves event.
Path.exists() raised PermissionError from _missing_dest in line mode and from _choose in the interface. The run now names the folder and exits 1 (error event stage dest), and the interface asks for another folder.
The config was looked up by the BIOS folder exactly as typed: a relative --dest, a link or another case sent save-folder files to a guessed folder and refused --installed-cores.