Commit Graph
3358 Commits
Author SHA1 Message Date
Abdessamad Derraz 64e559d2c3 fix: place mariani dos 3.3 symbols at the root
A2_DOS33.SYM2 is read from the support directory only.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz f6b99b9532 fix: name hatari standalone cfg and nvram paths
configuration.c:863-864 builds hatari.cfg in the Hatari home directory.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz d819d58220 fix: place punes bios in its data bios folder
fds.c:305 and cheat.c:105 read BIOS_FOLDER under gui_data_folder().
2026-10-24 00:48:55 +02:00
Abdessamad Derraz 020412ff19 fix: place dosbox pure roms in its system folder
main.cpp:2039 sets PathSystem to the system folder beside DOSBoxPure.cfg.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz 26da45ab26 fix: place ppsspp 1.5.4 zh_gb.pgf on the stick
sceFont.cpp:644 reads ms0:/PSP/flash0/font/, below the memory stick root.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz 9d60314a8b fix: place sonic3-air packages under data/
EngineMain.cpp:649 opens mAppDataPath + "/data/" + package name.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz ae33d3f991 fix: place openttd base sets under baseset/
fileio.cpp:48 names the baseset subfolder of each search path.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz 9c15246d88 fix: place reicast flash and rom under data/
nullDC.cpp:182-188 loads both from get_readonly_data_path("/data/"); dc/ was the Recalbox patch.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz da6e7144bb fix: read yuzu keys from its keys folder
fs_paths.h:18 KEYS_DIR "keys", path_util.cpp:124; key_manager.cpp:643 and amiibo_crypto.cpp:274 read there.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz 35e9b78a68 fix: read sudachi keys from its keys folder
fs_paths.h:18 KEYS_DIR "keys" below the user data directory, as the profile notes cite.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz f21839a856 fix: read eden keys from its keys folder
fs_paths.h:20 KEYS_DIR "keys", path_util.cpp:158; key_manager.cpp and amiibo_crypto.cpp read every key file there.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz 24d288b5fd fix: read ryujinx keys from its system folder
AppDataManager.cs:17,229 joins KeysDir "system" to BaseDirPath; switch/ was a frontend layout.
2026-10-24 00:48:55 +02:00
Abdessamad Derraz f2e21f3a44 docs: name profiles as their projects write them
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.
2026-10-24 00:40:13 +02:00
Abdessamad Derraz f51bc069d5 fix: refuse a detected folder under a closed one
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.
2026-10-24 00:31:40 +02:00
Abdessamad Derraz a94050c1a3 chore: merge the round 5 installer fixes 2026-10-23 23:49:58 +02:00
Abdessamad Derraz 702e059863 fix: make two installer tests runner-proof
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.
2026-10-23 23:49:52 +02:00
Abdessamad Derraz 3d71bdceb3 chore: pin the current installer in the bootstraps 2026-10-23 23:47:19 +02:00
Abdessamad Derraz 3609f66401 fix: keep schema rows readable by the floor python 2026-10-23 23:45:39 +02:00
Abdessamad Derraz 2a6a122d56 fix: close an idle error screen with its code
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.
2026-10-23 23:29:03 +02:00
Abdessamad Derraz 71162d124d fix: say a pipe when output goes to a pipe
| tee log.txt was told its output went to a file. The line now names a pipe or a file, and says how to keep the run or answer.
2026-10-23 23:27:11 +02:00
Abdessamad Derraz 359c260e98 fix: name the save folder the chosen run writes
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.
2026-10-23 23:26:31 +02:00
Abdessamad Derraz 5c02196b27 fix: refuse a --dest this user cannot reach
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.
2026-10-23 23:24:36 +02:00
Abdessamad Derraz e61d1e22c0 fix: find retroarch.cfg for any --dest spelling
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.
2026-10-23 23:19:29 +02:00
Abdessamad Derraz b25f500264 fix: ask no termios on a Windows console
A closed console answered ModuleNotFoundError from _terminal_gone inside run_tui's except block. The interface paths now run in a test with the POSIX modules gone.
2026-10-23 23:17:43 +02:00
Abdessamad Derraz 14e3923533 chore: merge the round 4 installer fixes 2026-10-23 22:48:24 +02:00
Abdessamad Derraz 28d83cbc0f chore: pin the current installer in the bootstraps 2026-10-23 22:45:43 +02:00
Abdessamad Derraz 60245d1f1d fix: give the question tests a terminal for output
A question now needs stdout on a terminal as well as stdin. The tests
that answer one give the run that terminal.
2026-10-23 22:45:43 +02:00
Abdessamad Derraz 849991e800 docs: name the stop keys a computer has
First install said B or Ctrl+C stops the run, where a computer's screen
says Esc or Ctrl-C and the b key does nothing.
2026-10-23 22:38:08 +02:00
Abdessamad Derraz 3db8ddae2b feat: name the save folder and the pack on screen
The plan and the result now say how many files go to the save folder and
where, from a new saves event. With --from-pack they say the files come
from the pack, not a download. A stop asked for (Start+Select, SIGHUP)
ends on the plain outcome, without the log's last lines.
2026-10-23 22:34:24 +02:00
Abdessamad Derraz e003828e26 fix: ask nothing when the output goes to a file
install.py > log.txt at a terminal wrote the menu into the file and
waited for an answer nobody saw. A question now needs stdin and stdout on
a terminal, otherwise the run goes on as with --no-input and says so.
2026-10-23 22:30:47 +02:00
Abdessamad Derraz c53715d7b9 fix: a refused write also marks a closed window
A window can still answer tcgetattr while refusing writes. The check now
tries both, as the audit asked, and takes the terminal itself so a stand-in
without a descriptor is never read.
2026-10-23 22:29:00 +02:00
Abdessamad Derraz 451ca88d7c chore: merge main into the round 4 fixes 2026-10-23 22:25:16 +02:00
Abdessamad Derraz 2c725d19c7 docs: regenerate the readme
624 emulators: 00_example is a test profile since 4be68b1ee.
2026-10-23 22:25:13 +02:00
Abdessamad Derraz 19c57b3d68 docs: say a connect timeout counts as a stall 2026-10-23 22:14:34 +02:00
Abdessamad Derraz c67dd2ad46 fix: drop install anyway when nothing can come
Offline with nothing here to copy, Install was removed, and a folder
short of space or read-only then put Install anyway back: a run that
could only fail every file.
2026-10-23 22:14:17 +02:00
Abdessamad Derraz bc4bcadcd3 fix: keep a crash log for a card read error
Any EIO was read as the window closing, so a failing SD card ended the
interface with 129 and no error.log. The error now counts as a closed
window only once the terminal itself no longer answers tcgetattr.
2026-10-23 22:13:42 +02:00
Abdessamad Derraz 76da554da9 fix: read retroarch.cfg for cores in a --dest run
A run given --dest, as every interface run is, never read the config
naming libretro_directory, so only installed cores found none where line
mode found them. core_dirs now asks _retroarch_config_for, as the save
directory does, and the advice to drop --dest goes.
2026-10-23 22:12:49 +02:00
Abdessamad Derraz b26ce7cbdc fix: close an idle interface past its first screen
RETROBIOS_IDLE_EXIT only counted while the first screen was up. Given
--platform, the check runs and the plan follows without a key, so the
close never came. It now counts from the end of the last run, as long as
no key has been pressed.
2026-10-23 22:07:31 +02:00
Abdessamad Derraz 89cfaeef5e fix: never hold open an archive the run replaces
A --from folder holding the BIOS folder kept the list's own archive open
after listing its members, and Windows then refused to move it aside or
replace it. The index now notes the places a run writes, closes the
archives among them and opens them only for the read at hand.
2026-10-23 22:06:01 +02:00
Abdessamad Derraz 2f8416e5fe fix: report a file under a folder no one can enter
Path.exists() lets PermissionError through, so a BIOS subfolder without
search permission stopped --check and installs before any file. The file
is now reported unreadable and the run goes on with the others.
2026-10-23 22:03:38 +02:00
Abdessamad Derraz d1414263fa feat: name the pad inside muxterm
gptokeyb2 owns the pad in muxterm on muOS with PortMaster, and muxterm keeps PgUp and PgDn for its scrollback. The launcher now says so with RETROBIOS_PAD=gptokeyb_muxterm, and the hints name the gptokeyb buttons with no paging key.
2026-10-23 21:47:55 +02:00
Abdessamad Derraz c35ae29d53 docs: name the cards the interface finds
The interface finds a muOS, Onion, spruceOS, MinUI, KNULLI or ROCKNIX card by itself (card_platform and the card rules in install.py) and lists it as a setup. The FAQ says so where it fills an SD card, within its word ceiling.
2026-10-23 21:39:42 +02:00
Abdessamad Derraz b88f23947a chore: merge main into the round 4 fixes
# Conflicts:
#	wiki/installer.md
2026-10-23 21:37:25 +02:00
Abdessamad Derraz 34fb1a4cbb chore: merge the launcher round 3 fixes 2026-10-23 21:35:10 +02:00
Abdessamad Derraz ade4e2b48b docs: say a mounted card is found by itself 2026-10-23 21:34:31 +02:00
Abdessamad Derraz 68349f246c chore: merge main into the launcher fixes 2026-10-23 21:29:54 +02:00
Abdessamad Derraz e7d27a264d fix: hide the pad from muxterm on every muos build
muxterm was allowed vendor and product 0001:0001, the id gpio-keys
gives the H700 pad on muOS before 2026-08-28: muxterm and gptokeyb2
both read it and every button acted twice. The allow-list is now
0000:0001, which SDL never reads back for a device (a vendor of 0 makes
a name GUID, read back as 0:0), so a pad plugged in later stays hidden.

- muxterm keeps PgUp and PgDn for its scrollback: in muxterm L1 and R1
  send nothing, and the README and wiki stop promising paging there.
- The offline detection runs with RETROBIOS_INSTALL_OFFLINE=1 instead
  of a closed loopback URL.
- Every launcher sets RETROBIOS_IDLE_EXIT=300 for the interface.
- ROCKNIX: control.ini's -sudokill goes through a sudo stub that runs
  nothing, so the mapper starts with -1.
- The sentinel ends with its launcher, a closed terminal app writes its
  status, a mapper lost mid-run is said and named (gptokeyb2 included),
  and the unwritable-card message stays in view.
- Tests: an SDL GUID model, a gptokeyb2 that outlives its kill, an
  interface that ignores SIGTERM, a zombie, a SIGHUP to the inner run,
  arrow bytes at the question, ROCKNIX's sudo.
2026-10-23 21:29:48 +02:00
Abdessamad Derraz 84ab3641a1 chore: merge the round 3 installer fixes 2026-10-23 21:20:01 +02:00
Abdessamad Derraz 49b2a69567 docs: exit 129, offline refusals and pad variables
The exit status names 129 for a closed window and the --offline
refusals of --target and --list-targets, and the events say a crash
leaves no end line. RETROBIOS_PAD and RETROBIOS_IDLE_EXIT join the
environment table, muxterm's missing paging and the save directory
found under --dest are said, and the options at a glance list
--declared-only and --offline. The first install page no longer
promises a controller on a computer, and gives the RetroPie command
for Windows too.
2026-10-23 21:11:45 +02:00
Abdessamad Derraz 67a6ad3e32 chore: wrap the work folder error line 2026-10-23 21:11:45 +02:00