Commit Graph
3296 Commits
Author SHA1 Message Date
Abdessamad Derraz ba4db2ab57 fix: keep system names whole at 40 columns
The size column took half the line and cut every name to eleven
letters: Game Boy, Game Boy Advance and Game Boy Color read alike. A
system row now carries shorter size forms, and the longest one that
leaves the name whole is shown, none when that is what keeps it.
2026-10-23 20:53:07 +02:00
Abdessamad Derraz 36f4b338e1 fix: offer no paging keys on muxterm
muxterm keeps PgUp and PgDn for its scrollback and its L1 and R1 send
nothing: the help named a page key that never reaches the interface.
2026-10-23 20:50:59 +02:00
Abdessamad Derraz a23e9a09b8 feat: close the first screen when no button comes
RETROBIOS_IDLE_EXIT=SECONDS: with no key on the first screen for that
long, before any choice, the interface exits 0 with one line. A mapper
that never opens the pad no longer freezes a handheld there.
2026-10-23 20:50:24 +02:00
Abdessamad Derraz a296bbfdff fix: keep why a data tree or a copy failed
A damaged member of a data tree's archive (zlib.error, EOFError) ended
the run on a traceback, and a failed write left its .part. --offline
refusing a data tree, or the download after a --from copy failed, lost
its kind, so the advice named the network instead of --offline.
2026-10-23 20:49:23 +02:00
Abdessamad Derraz abba99d352 fix: find the save directory for a named folder
A run given --dest detected nothing, so retroarch.cfg was never read:
the full screen, which names every folder, sent Azahar's keys.txt to a
guessed RetroArch/saves or dropped it without a word, where line mode
wrote it to savefile_directory. The configs are now read once when a
save directory is asked for, and the plan and the result say what was
left out.
2026-10-23 20:47:36 +02:00
Abdessamad Derraz ccc8af7a47 fix: compare a card's BIOS folder by folders
--dest NOTMUOS/bios ended with MUOS/bios as text and passed as a muOS
card's folder. A card two systems claim now says so in one line, and
the system named among them decides the folder.
2026-10-23 20:43:38 +02:00
Abdessamad Derraz 246b6c6efc fix: print found paths as the terminal shows them
The line output printed the --from folder, the files found there and
the BIOS folder paths as they are: a name holding ESC drove the
terminal. screen_text moves out of the interface section and cleans
every line of the check, the copy plan and the unreadable list.
2026-10-23 20:42:55 +02:00
Abdessamad Derraz 3523e46595 fix: open each archive of a folder once
Each ZIP member read reopened its archive and parsed its directory
again: 4000 members of one size made 4000 parses. A folder index keeps
the archives it reads open, 16 at most, read under a lock from the copy
threads, and every index is closed at the end of the run. Archives the
list installs are still opened and closed at once.
2026-10-23 20:40:57 +02:00
Abdessamad Derraz 3203c766fc fix: name a folder or unreadable file in place
A folder or a file the user cannot read at a destination ended --check
and the install on a traceback from the hashing pool. --check now gives
the reason per file, and the install fails that file alone, before any
download for a folder.
2026-10-23 20:37:32 +02:00
Abdessamad Derraz 4b8e2f9de2 fix: check system_titles at the boundary
A list or a number among the titles passed validation and raised later,
in --system matching or the interface.
2026-10-23 20:37:03 +02:00
Abdessamad Derraz ea48a54329 fix: judge a declared slot by the platform's copy
--declared-only settled each slot on its first declaration before the
cores narrowed the list, and the declared event judged the core copy
served in its place. Both now read the declaration whose systems
remain, as the platform checks it.
2026-10-23 20:36:53 +02:00
Abdessamad Derraz 5869da409b fix: open the interface whatever owner files hold
An owner file holding a number past a pid raised OverflowError before
the screen opened, and a full temp disk stopped the run on the owner
write. 0 and negative numbers are unknown owners, not process groups.
2026-10-23 20:24:40 +02:00
Abdessamad Derraz cf3b61a17b fix: exit on the window's signal when it closes
A closed window under a changing screen failed the draw (EIO, or a
termios.error from the SIGCONT that comes with SIGHUP) before the
signal was read, and the run ended on 1 with a crash log kept.
2026-10-23 20:22:42 +02:00
Abdessamad Derraz 58c239deb4 fix: keep the node cache test before main 2026-10-23 19:56:44 +02:00
Abdessamad Derraz a8fef3fbbd chore: merge pad-aware interface hints 2026-10-23 19:43:54 +02:00
Abdessamad Derraz 4b92b517dd fix: read the handheld section up to the next one 2026-10-23 19:36:22 +02:00
Abdessamad Derraz 68452a0518 feat: name the keys of the input that runs
The hint bar, the help and the install's stop line read RETROBIOS_PAD:
gptokeyb, evmapy, muxterm and miyoo each name their own buttons and
none they lack. A desktop names keys only, SteamOS game mode and any
unknown run keep both names. On a Miyoo, A (Space) chooses, L1 and R1
page, and R2 goes back: B is Left Ctrl, which sends no byte alone.

SIGTERM and SIGHUP are handled from the start of the run, so a stop
during detection ends on the farewell. A closed window now ends with
129: once the last write fails, stdout and stderr point at /dev/null
and the flush at exit no longer turns the code into 120.
2026-10-23 19:32:08 +02:00
Abdessamad Derraz 6f958382b7 chore: merge the engine options round 2026-10-23 19:25:34 +02:00
Abdessamad Derraz d6782913cf feat: add --offline and bound the connect time
--offline (or RETROBIOS_INSTALL_OFFLINE=1, which the runs the
full-screen interface starts inherit) makes no network request. The
file list stops the run at once with an error event of reason
offline unless --manifest or --from-pack gives it, a file the run
would download fails at once with its own advice, and board detection
is skipped. --target and --list-targets refuse it. RETROBIOS_OFFLINE
is not reused: CI and the test suite set it for every process, and the
installer tests serve their files over loopback.

A connection now has 4 s to open, then the read keeps its 30 or 60 s
timeout: three tries that never connect end in about 15 s instead of
93, and a slow but open transfer is not cut.

A --dry-run prints its totals first. A plan taller than the screen
names the ten largest systems, and --verbose lists every system and
file. Events are unchanged.
2026-10-23 19:24:07 +02:00
Abdessamad Derraz 7143d20ef8 fix: check the event schema under the given root
validate_schemas.py read install-events.schema.json from the real tree while a test pointed ROOT at a scratch one, and test_schema_semantic_gate.py called unittest.main() before its last class.
2026-10-23 19:23:59 +02:00
Abdessamad Derraz 8f50015a0c feat: round 4 reference and data 2026-10-23 19:23:58 +02:00
Abdessamad Derraz 167597ad5e feat: round 4 emulator pages 2026-10-23 19:23:58 +02:00
Abdessamad Derraz 5e09301dd8 feat: round 4 system pages 2026-10-23 19:23:58 +02:00
Abdessamad Derraz 3bbe7225af docs: round 4 wiki and release docs 2026-10-23 19:23:53 +02:00
Abdessamad Derraz 03d12ffe98 feat: round 4 entry pages 2026-10-23 19:23:29 +02:00
Abdessamad Derraz 7a2b83882d feat: round 4 search 2026-10-23 19:23:29 +02:00
Abdessamad Derraz 370bee1470 feat: round 4 components 2026-10-23 19:23:29 +02:00
Abdessamad Derraz c0b36b8fb5 fix: round 4 theme 2026-10-23 19:23:28 +02:00
Abdessamad Derraz b86c085a11 docs: list test_site_r4_systems in the guide 2026-10-23 19:23:05 +02:00
Abdessamad Derraz 0682114ad6 chore: test system pages and file cards 2026-10-23 19:23:05 +02:00
Abdessamad Derraz 7d412939fa feat: system pages by arcade board and start file
Start lines count which emulators require a file, arcade cards are grouped by board, romsets match by CRC32, cards name emulators and group setups by place, and parts carry parent, neighbours and a name.
2026-10-23 19:23:01 +02:00
Abdessamad Derraz 6a13eda370 fix: run pipeline children without node's cache
The render step's npm build wrote Node's compile cache to /tmp, a 4 GB
tmpfs on this host, and a day of pipeline runs filled it to 3.4 GB.
Every child the pipeline starts now carries NODE_DISABLE_COMPILE_CACHE=1.
2026-10-23 19:19:49 +02:00
Abdessamad Derraz b714d9628c fix: follow pyxel's rewritten history
kitao/pyxel answers again, with a rewritten history: 50f9bd77 is
5d8e7b4f, same tree and message, the v2.9.9 tag. upstream_gone is
dropped and the pin moves to the commit the forge now serves.
2026-10-23 19:13:48 +02:00
Abdessamad Derraz 569d31c075 fix: check yuzu through its mirror
Zenfone-5-X00QD-4-19/yuzu still serves 15e6e48, the analysed commit:
upstream_gone no longer says no mirror exists, and the pin is held on
that revision.
2026-10-23 19:13:48 +02:00
Abdessamad Derraz 5a3f621e94 fix: read the mirror of a gone source
select_views stopped on the first repository that answered as gone, so
yuzu's source_mirror was never read and the profile stayed unchecked. A
gone repository is now passed over, and a profile declared gone that
answers only through its mirror is not reported as a contradiction.
2026-10-23 19:13:48 +02:00
Abdessamad Derraz 6882848836 docs: add data_root to aethersx2
Android folder read from the skeleton APK the LGPL drop ships (NativeLibrary.initializeOnce), macOS and Linux from the 1.5-3939 and 1.5-3606 binaries.
2026-10-23 19:10:44 +02:00
Abdessamad Derraz c548430309 docs: add data_root to citra-mmj
CitraDirectory.start picks getExternalFilesDir on Android 10 and later without legacy storage, and the manifest at the pin does not request legacy storage; the shared-storage root is the pre-Android 10 path, not a per-variant one.
2026-10-23 19:10:44 +02:00
Abdessamad Derraz 21620e0f17 docs: add data_root to azahar-sdl 2026-10-23 19:10:44 +02:00
Abdessamad Derraz bfd73d8bc5 docs: add data_root to azahar
macOS uses ~/Library/Application Support/Azahar unless XDG folders already exist; Android has no default folder, the setup wizard asks for one.
2026-10-23 19:10:44 +02:00
Abdessamad Derraz 1923587880 docs: add data_root to yaps2 2026-10-23 19:10:44 +02:00
Abdessamad Derraz 729a13a1aa docs: add data_root to skyline 2026-10-23 19:10:44 +02:00
Abdessamad Derraz 452ebe4c79 docs: add data_root to mame4droid-2024 2026-10-23 19:10:44 +02:00
Abdessamad Derraz f2b0039d85 docs: add data_root to kenji-nx
git.ryujinx.app did not answer; the pin was read from the Sunshinin11/Ryujinx_Neo GitHub copy, which carries commit 53d32a76.
2026-10-23 19:10:44 +02:00
Abdessamad Derraz c006a16e10 docs: add data_root to dreamm 2026-10-23 19:10:44 +02:00
Abdessamad Derraz 91a4366771 docs: add data_root to mame4droid 2026-10-23 19:10:44 +02:00
Abdessamad Derraz 8d196a4587 docs: add data_root to ryujinx 2026-10-23 19:10:44 +02:00
Abdessamad Derraz 9e054ee96c docs: add data_root to yuzu
Read at 15e6e48bef02, the analysis commit, from the Zenfone-5-X00QD-4-19/yuzu fork that still serves it.
2026-10-23 19:10:44 +02:00
Abdessamad Derraz 216b3671f9 docs: add data_root to sonic3-air 2026-10-23 19:10:44 +02:00
Abdessamad Derraz 723936eb68 docs: add data_root to cxbx-reloaded 2026-10-23 19:10:44 +02:00
Abdessamad Derraz f573f5d1d1 docs: add data_root to cemu 2026-10-23 19:10:44 +02:00