Commit Graph
1781 Commits
Author SHA1 Message Date
Abdessamad Derraz 2ee777824a feat: name doubled destinations in exports
A platform list that declares one path for two files fails one of the
two checks on every install. The export report lists each declaration
with its hash and the emulators whose profile reads that file.
2026-10-24 02:42:04 +02:00
Abdessamad Derraz fa7977d2c3 fix: ask again for a tip older than the pin
A branch tip is cached for six hours. scummvm-standalone was pinned on
6f7b060d while the cache still held 77d80d7, its ancestor, so profile_sync
showed a HEAD behind the pin and a bump would have moved it backwards. A
tip that is a strict ancestor of the pin is now asked for again.
2026-10-24 02:00:21 +02:00
Abdessamad Derraz c1586c7744 fix: expect duckstation's rocknix core name 2026-10-24 01:47:31 +02:00
Abdessamad Derraz fd33ad0d96 fix: let A go deeper from home or a drive root
With no usual folder the browser opened at HOME on Use this folder, and A pressed through the screens installed the BIOS files into ~. At HOME or a drive's root A now opens the first folder. Picking the old card to copy from is unchanged.
2026-10-24 01:38:31 +02:00
Abdessamad Derraz 4db718bb5c chore: merge round 5 system page fixes 2026-10-24 01:30:36 +02:00
Abdessamad Derraz 6936302133 chore: merge round 5 wiki fixes 2026-10-24 01:30:33 +02:00
Abdessamad Derraz bd1c58b6f0 fix: say why detection cannot look, then go on
HOME kept across su without - made every detection probe raise PermissionError, and the run and the interface ended on a traceback. Detection now finds nothing there, says which folder this user cannot open and how to go on, on the first screen too.
2026-10-24 01:28:43 +02:00
Abdessamad Derraz 670f9a614e chore: merge round 5 package ae53533548f57e22b 2026-10-24 01:27:26 +02:00
Abdessamad Derraz d47763fdc1 chore: merge round 5 package a29b43f1fc43aba6b 2026-10-24 01:27:26 +02:00
Abdessamad Derraz af0bffdc6a chore: test the round 5 system page fixes 2026-10-24 01:19:56 +02:00
Abdessamad Derraz 4dd3800f11 fix: file system cards by board, machine, engine
Every board set sits on its board page whatever folder holds it, a set a
reviewed machine owns joins that machine (neogeo.zip under SNK, the Atom
under Acorn, the MZ-2000 under Sharp), and a game engine's files form one
section named after it. Board pages drop the heading that repeated their
title, parts drop the Part of line their crumbs already say, and pages
that moved redirect.
2026-10-24 01:19:56 +02:00
Abdessamad Derraz 7d3d5b5efd fix: start lines name alternatives, not extras
A file most of whose readers take beside another one is no start file
(NAOMI opened on hod2bios.zip), and names that answer one slot for
different emulators read as alternatives with their readers, each by
the name of its card.
2026-10-24 01:19:56 +02:00
Abdessamad Derraz 859f2c8a22 fix: match the idle line and keep the found folder
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.
2026-10-24 01:03:36 +02:00
Abdessamad Derraz 1a884d64e9 docs: keep the start pages under their ceilings 2026-10-24 01:01:07 +02:00
Abdessamad Derraz 22b6567c65 chore: hold the round 5 wiki fixes in tests 2026-10-24 01:01:07 +02:00
Abdessamad Derraz 50da5970b7 docs: pin the packager route to one commit 2026-10-24 01:01:07 +02:00
Abdessamad Derraz 699f007cf0 fix: allow-list the three new alias names 2026-10-24 00:58:37 +02:00
Abdessamad Derraz 51147d866b refactor: fold ep128emu into ep128emu_core
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).
2026-10-24 00:57:35 +02:00
Abdessamad Derraz 518d4670db chore: merge round 5 component fixes 2026-10-24 00:57:06 +02:00
Abdessamad Derraz 33c2c64c0c fix: keep the bizhawk get title unique 2026-10-24 00:54:00 +02:00
Abdessamad Derraz 00649d0377 chore: tests for the round 5 entry pages 2026-10-24 00:54:00 +02:00
Abdessamad Derraz 0695b5404b feat: setup routes on get pages, card route 2026-10-24 00:54:00 +02:00
Abdessamad Derraz 89c6a151ae fix: one page grid, shorter stacked rows
Search box, column and table of contents are placed from one grid
width on every page. Long code in table cells breaks to fit, stacked
rows drop to one line per cell, and the button, search marker, choice
list and crumb spacing are aligned with the rest.
2026-10-24 00:53:08 +02:00
Abdessamad Derraz 801b8bbda0 fix: one pack answer and fuller reference data
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.
2026-10-24 00:51:13 +02:00
Abdessamad Derraz fe34484408 feat: check standalone paths under data_root 2026-10-24 00:48:55 +02:00
Abdessamad Derraz 29e726c907 chore: test the round 5 component fixes 2026-10-24 00:47:51 +02:00
Abdessamad Derraz 250aa225c9 fix: picker reads the registry's release packs 2026-10-24 00:47:51 +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 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 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 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