Commit Graph
199 Commits
Author SHA1 Message Date
Abdessamad Derraz e2bc06f216 fix: keep the copy hint whole under a long list
The browser hint goes below the list, which scrolls: three folders at
40x12 cut it. The test browses a folder of its own, not the host's /home.
2026-10-27 12:47:54 +01:00
Abdessamad Derraz 6fd831fc67 fix: keep pack system names out of the terminal
A pack's system titles, names and ids are read only without control
characters, and the systems list and the same-choice line go through
screen_text. The --yes row of the option table says it implies
--no-input.
2026-10-27 12:36:15 +01:00
Abdessamad Derraz 31c574aab0 fix: line mode and screen share one decision
Answers code_audit_17 and tui_audit_10: the folder found after o, SHARE
drive roots, one same-choice command, a counted confirm step in line
mode, counts from the narrowed list, read-only advice without sudo,
systems recorded in packs, Ctrl-Z stopping the whole job, and the
wording, layout and docs items.
2026-10-27 12:24:26 +01:00
Abdessamad Derraz 78a5aca760 fix: lead mpeg_card.bin with the Movie Card
The copy shipped first was the European MK-80310 Video CD card (its header reads VIDEO CD PLAYER PAL MK-80310, version 1.105). Lunar Silver Star Story MPEG, the Saturn game that needs a card, names the Movie Card, so the Japanese HSS-0119 (V1.102) now leads and the MK-80310 stays as a variant. No emulator tested reads the card's content today (records in measurements/beetle_saturn.jsonl), and no platform pins a hash for this file. Issue 85.
2026-10-27 11:33:56 +01:00
Abdessamad Derraz 8c1887fd0c chore: merge main into the audit answers 2026-10-27 09:57:16 +01:00
Abdessamad Derraz 559494ae43 fix: line mode reads the screen's decisions
Answers code_audit_16 and tui_audit_9: share drives give their bios
folder, card markers stop at mount points, a model finds its family,
the folder question quits on q, pages move by the rows drawn, and a
folder the installer proposed is created without the guard.
2026-10-27 09:55:50 +01:00
Abdessamad Derraz 9cf0f9177d chore: merge installer tables from code
# Conflicts:
#	install.ps1
#	install.sh
#	install/launchers/index.json
#	scripts/measurement_records.py
#	tests/test_install_tui.py
#	wiki/installer.md
2026-10-27 09:48:44 +01:00
Abdessamad Derraz 47ed945b4a feat: write installer tables from install.py
scripts/generate_installer_doc.py rewrites the marked tables of
wiki/installer.md: options from build_parser(), events from EVENT_KEYS,
exit codes from the sys.exit calls, RETROBIOS_PAD values and the keys of
each route from TUI_ROUTES, the one table the bar, the help and the stop
line now read. Prose cells are kept, a row the code gains stops the
script until its text is written, and --check runs in the tests. The
site drops the markers.

The full screen falls back to the line questions where the terminal's
terminfo moves no cursor the ANSI way (vt52, glass terminals), and --tui
names why. The line mode draws no escape code with TERM unset, dumb or
such a terminal. Ctrl-Z typed on the screen stops the run as SIGTSTP
does, the terminal handed back and redrawn on fg. A window too small
names 40x12 and its own size.

Pty tests check the modes, the cursor and the main screen after Ctrl-C,
Ctrl-D, SIGTERM, SIGHUP and Ctrl-Z then fg. Tests from a mutmut run over
the device filter, the card bounds and the WSL paths raise its score
from 62/71 to 71/71. The parser lists its options in the page's order,
with NAME, PATH, NAMES and N as arguments.
2026-10-27 09:47:44 +01:00
Abdessamad Derraz 4fbbd2c760 fix: one setup decision for line mode and screen
Line mode finds mounted cards, shows its menu and names the folder for a
pack, asks the folder instead of taking a default, and lists setups in the
screen's order. Devices have one spelling each, matched without case,
spaces or punctuation, and a device several systems run lists them all.
--tui --dest reads a card as --plain does. Card boundaries read every
parent up to a mount point from mountinfo. --offline with --yes counts the
files it leaves out as pending, never as failed. The P3 points of
code_audit_15 and tui_audit_8 follow.
2026-10-27 08:43:08 +01:00
Abdessamad Derraz 74f4e301a6 fix: one card reading and one offline wording
card_choice is the one reading of a card's root for --dest, the setup
list with --dest, a card listed, browsed, typed or numbered: a blank
stick named for KNULLI, ROCKNIX or a system no card file names gets its
folder below the root and the same note on the screen and in line mode,
kept on Create the folder? and the plan. The MinUI family refuses a blank
--dest. A card mounted as BIOS is that card, a folder inside another
system's card is refused up to the drive's mount point, a list named for
another system's card gets a note, a refused --dest emits an error
event. AmberELEC and EmuELEC get a card setup.

Offline, every surface says missing, not failed: no retry line, no
--from after --from, Nothing installed when nothing was, --check counts
what needs the internet, a suggested command keeps --offline.

Drive letters under WSL for every path option, shown as D:\.

The setup list names each card system's devices and puts the cards after
RetroArch when nothing is found (Onion: 4 presses at 40x12, was 10), the
filter and the line menu take a device name, one match is chosen in one
press. Line mode names the BIOS folder and the card picked, leaves the
save directory files out before its menu, offers f) to copy from a
folder. Confirm shows no Install while it counts, Back from the systems
lands on Install, help keeps its column, one spelling per device.
2026-10-27 06:10:48 +01:00
Abdessamad Derraz e96d1326a3 fix: skip the line mode pty run without pyte
The offline line mode test opened a pty with pyte missing and errored where its neighbours skip. A comment in install.py also carried a clause semicolon that the prose style test refuses.
2026-10-27 04:20:23 +01:00
Abdessamad Derraz d1d88fed27 feat: one card list and one card check
Every system that runs from its SD card comes from card_setups(),
derived from the device rules: the setup list, its filter, --platform
and the line menus give each its own row and ask for its card. The
RetroArch row no longer lists handheld systems.

card_root_folder and card_choice share one identity check: another
system's card is refused for every system, KNULLI and ROCKNIX included,
and the same --dest gives the same folder from every entry point. WSL
drive letters are read as typed, the line question lists only that
system's cards and asks again after no.

Offline at a terminal, files left out count as missing: the run ends
with code 1 or 2, as the full screen does. Continue on the systems list
opens Confirm. Wording and layout points of code_audit_13 and
tui_audit_6.
2026-10-27 02:55:29 +01:00
Abdessamad Derraz 7abe5b8309 fix: say offline files are not downloaded
The line mode under --offline, with files that need the internet,
ended on Done with 0 files installed. It now counts them as not
downloaded and says --offline is why, not an answer.
2026-10-27 00:45:57 +01:00
Abdessamad Derraz fe1e98917b fix: offer only what an install can do
Back from the systems list with nothing ticked keeps the ticks it
opened with, and None says First system once nothing is left to untick.
Confirm under --offline with nothing on hand has no Install, and the line
mode no longer asks to download what --offline never fetches. The line
mode counts the data files before its question.

Screen words: the checking clock starts at zero, a pack installs from
the pack, the copies found are said on a line of their own, the screen
of misplaced files says the copies stay, the save folder gets a line of
its own, the shared note is one line, a size keeps its unit, the same
save folder remedy on both screens, A Tick on the Miyoo bar, no Home
key in the help of a pad, and a system name said once with a pack.
2026-10-27 00:17:26 +01:00
Abdessamad Derraz 44f94ab703 fix: ask a card setup for its own card
A card system chosen on a computer, from --platform, the setup list, its
filter or the line-mode menu, always asks for its card. The card screen
lists only the cards whose files say they run that system, offers Look
again, and checks a browsed, typed or --dest folder as --dest is checked.
The line-mode Card root prompt lists the mounted drives, asks again on a
missing or foreign root, and asks before creating several folders. On the
device the detected folder is offered, and the bound card is forgotten
when another setup is chosen.
2026-10-27 00:04:56 +01:00
Abdessamad Derraz 08848ce405 chore: refresh source paths and manifests
After the re-profiled armsx1, armsx2, x1-box and rustynes releases.
Manifests generated twice, identical.
2026-10-26 23:24:57 +01:00
Abdessamad Derraz b870083413 chore: regenerate readme, database and manifests
After the third bring-to-head pass and the amiberry whdboot files.
Database and manifests generated twice, identical.
2026-10-26 23:17:29 +01:00
Abdessamad Derraz dc225acb57 chore: merge the last installer items
# Conflicts:
#	install.ps1
#	install.py
#	install.sh
#	install/launchers/index.json
2026-10-26 23:10:30 +01:00
Abdessamad Derraz b4a17fefe1 fix: give the kept copies a line of their own 2026-10-26 22:51:50 +01:00
Abdessamad Derraz c64f3215ea fix: say the misplaced copies stay in place 2026-10-26 22:20:42 +01:00
Abdessamad Derraz e919d8478e feat: pick one system in a few presses
A long systems list opens on None. A there unticks every system and
moves to the first one, and A on a system with nothing ticked installs
that one alone, so Enter still continues. Inside muxterm, which keeps
PgUp and PgDn for its scrollback, Left and Right on the D-pad page.

One system of 66 at 40x15 took 17 presses with a pad, 57 in muxterm;
it now takes 12 on both. The pyyaml check of the device lists skips
where pyyaml is not installed.
2026-10-26 22:20:29 +01:00
Abdessamad Derraz 57811270e3 fix: card setups, pager lines, devices, data size
A system that runs from its SD card (Onion, spruceOS, muOS, KNULLI,
MinUI...) named with --platform on a computer no longer takes that
computer's RetroArch folder: one mounted card of that system is used,
at a terminal the card root is asked, without questions the run stops
on the --dest example. The interface opens the card screen with the
mounted cards first.

The result pager scrolls and counts lines, so its last line is
reachable at every size. The setup filter knows the devices each
setup runs on, from the guides and the firmware pages. A new event
kind, data, gives the bytes of the data trees, and the plan shows
them.
2026-10-26 22:01:02 +01:00
Abdessamad Derraz b7896433ec chore: list the current launcher files for cards 2026-10-26 21:33:10 +01:00
Abdessamad Derraz f4bc8878d9 chore: merge the app on the card 2026-10-26 21:14:51 +01:00
Abdessamad Derraz 67a6f49d8b chore: regenerate readme, database and manifests
After the second bring-to-head pass: 40 bumps, ten profiles by hand,
five off-forge apps, the G-NET BIOS sets and the new hiscore.dat.
Manifests generated twice, identical.
2026-10-26 21:03:54 +01:00
Abdessamad Derraz f3c816eea5 feat: put the retrobios app on a handheld card
--add-app, the result screen and a [y/N] question put the launcher of
muOS, KNULLI or ROCKNIX on the card the BIOS folder is on. The files come
from install/launchers/index.json at the same ref, each checked by size
and SHA-256 before the first is written, and the app event reports it.
2026-10-26 21:01:45 +01:00
Abdessamad Derraz d33c72ac19 chore: regenerate manifests for one placement
Core extras placed under the bios prefix are now one claim per path, so
DuckStation's region-tagged PS2 images carry their regions in the
manifests. Generated twice, identical.
2026-10-24 02:37:50 +02:00
Abdessamad Derraz eb7b265758 chore: regenerate readme, database and manifests
After section A of the round 5 audit and the ROCKNIX standalone profiles
(data_root on 58 profiles, 67 display names, three alias folds, 33 core
names mapped, scummvm and vice standalone, yabasanshiro both modes).
Manifests generated twice, identical.
2026-10-24 02:08:25 +02:00
Abdessamad Derraz 4a1d875f43 feat: name systems in the install manifests
Each manifest carries system_titles, the name the site prints for every system its files list (Sony PlayStation, not sony-playstation or psx), so the installer can show it. Older installers ignore the field.
2026-10-23 15:55:46 +02:00
Abdessamad Derraz 8b4cc0db41 chore: one folder for fbalpha 2012 samples 2026-10-23 14:47:59 +02:00
Abdessamad Derraz 6d7304725f chore: one folder for fbalpha 2012 samples
The three committed samples sat under FBAlpha 2012 while the four
release assets and the profile use fba2012/samples. The folder check
now folds Alpha to A and also reads database paths, which list the
release assets the index never holds.
2026-10-23 14:35:22 +02:00
Abdessamad Derraz 15f69a2212 chore: file QEMU, Roland, Chihiro and Oric
QEMU's 79 files go to QEMU/QEMU and Roland's four loose ROMs to MT-32
and CM-32L. The mt32-roms, soundcanvas-roms and sounddata trees stay as
the code addresses them. Chihiro joins Sega and the Oric joins
Tangerine, the names the site and libretro already use. No destination
held other bytes.

The three QEMU EDK2 images are release assets, and their .gitignore
lines follow them. Database and manifests are regenerated together.
verify --all and cross_reference give the same output once moved paths
are mapped.
2026-10-23 13:49:37 +02:00
Abdessamad Derraz 3de2d52629 chore: one folder per console
DS and DSi split into Nintendo DS and Nintendo DSi. 64DD, Mega-CD,
ZXSpectrum, VSmile, BBC and Game Engines/DOOM merge into the folder
of the same console. Same-named dumps with other bytes are kept:
BBC Micro's earlier zips in .variants/, the vsmilem set in vsmilem/,
the Doom II 1.666 IWAD in v1.666/, BizHawk's DSi firmware in bizhawk/.
Galaksija and Vircon get a console folder, sdlpal's desc.dat joins
its tree, VICE's PET and CBM-II ROMs leave C128 with their vice/ tail.

Database and manifests regenerated together. Verify and cross
reference give the same result once moved paths are mapped.
2026-10-23 10:15:49 +02:00
Abdessamad Derraz d4f02de3fd fix: give shared files every reading system 2026-10-23 00:35:47 +02:00
Abdessamad Derraz 00d6815c90 chore: regenerate retrodeck manifest and readme 2026-10-22 22:59:50 +02:00
Abdessamad Derraz 7f05133a02 chore: regenerate manifests for save folders 2026-10-22 21:44:15 +02:00
Abdessamad Derraz 653e9cd767 chore: regenerate manifests for save-dir files 2026-10-22 19:58:36 +02:00
Abdessamad Derraz 8f84fee2af chore: regenerate manifests for azahar 2026-10-22 18:06:20 +02:00
Abdessamad Derraz 3b1ea6b5d2 chore: regenerate database and manifests 2026-10-22 15:27:59 +02:00
Abdessamad Derraz db75fd9e81 chore: regenerate manifests and README 2026-10-22 14:16:52 +02:00
Abdessamad Derraz 02ea24d887 chore: regenerate database, manifests and exports 2026-10-22 11:59:28 +02:00
Abdessamad Derraz 96d6238edf chore: regenerate database and manifests 2026-10-22 11:19:47 +02:00
Abdessamad Derraz 4366db574a chore: regenerate database and manifests 2026-10-22 11:08:12 +02:00
Abdessamad Derraz e0b9f3d45b chore: regenerate database and manifests 2026-10-22 10:48:41 +02:00
Abdessamad Derraz ccac829b54 chore: regenerate database and manifests 2026-10-22 07:59:31 +02:00
Abdessamad Derraz 361a3840e0 chore: regenerate database, manifests and exports 2026-10-22 07:52:13 +02:00
Abdessamad Derraz 841017c887 chore: merge the minui family platforms 2026-10-22 04:09:17 +02:00
Abdessamad Derraz 259fb14954 chore: merge the amberelec, emuelec, knulli lists
AmberELEC, PAN4ELEC and EmuELEC detection now installs their own lists
at /storage/roms, the root those lists are written against; KNULLI its
own list at /userdata/bios. JELOS, KOLOS, UnofficialOS and Arch R keep
RetroArch's list with the folder their retroarch.cfg names.
2026-10-22 03:58:48 +02:00
Abdessamad Derraz bde78bff45 chore: regenerate database, manifests and exports 2026-10-21 17:46:37 +02:00
Abdessamad Derraz 50d1768207 chore: regenerate readme, manifests and exports 2026-10-21 12:35:42 +02:00