Commit Graph
214 Commits
Author SHA1 Message Date
Abdessamad Derraz 640331b159 docs: regenerate the installer output samples
The RetroArch manifest gained ep128emu/roms/ide12.rom in c624a820f and the page still quoted the earlier counts, which failed test_doc_pages.
2026-11-05 19:23:54 +01:00
Abdessamad Derraz 46302de5bb chore: merge installer batch 2026-11-05 15:21:48 +01:00
Abdessamad Derraz 4ee0fd67a2 chore: merge site and docs batch 2026-11-05 14:37:10 +01:00
Abdessamad Derraz 2479b91e42 chore: merge origin/main 2026-11-05 13:43:55 +01:00
Abdessamad Derraz feab2d5ff0 chore: merge origin/main 2026-11-05 13:22:26 +01:00
Abdessamad Derraz da5f24b74a chore: regenerate lists after the audit batches
The resolver now keeps a name inside its own emulator tree and the retail Xbox dashboard files moved to bios/Microsoft/Xbox/C/, so the install lists, README counts, installer samples and games index are rebuilt from the merged tree. Built twice, identical.
2026-11-05 13:22:19 +01:00
Abdessamad Derraz fe8033f477 chore: index the POM2 Apple II dumps
Database, RetroArch install list, README counts and the installer page samples after the merge of #86, so the installer serves the 27 Apple II files.
2026-11-05 13:07:33 +01:00
Abdessamad Derraz 9c128e46b2 feat: apply the board a mounted card names 2026-11-05 12:34:38 +01:00
Abdessamad Derraz ddafc2ff42 feat: carry the board list in the pack 2026-11-05 12:30:06 +01:00
Abdessamad Derraz 3d694c7d70 feat: tell RomM users to scan after an install 2026-11-05 12:20:08 +01:00
Abdessamad Derraz 4dd43aa627 feat: set up Termux storage from the one-liner 2026-11-05 12:18:39 +01:00
Abdessamad Derraz 860fa575d9 feat: link each emulator page under a needed file 2026-11-05 12:11:29 +01:00
Abdessamad Derraz 505cfc044b fix: say what a platform's own check compares 2026-11-05 12:10:51 +01:00
Abdessamad Derraz f6de9a0ae3 feat: answer ES-DE, LaunchBox and Android by name 2026-11-05 12:07:25 +01:00
Abdessamad Derraz 94b5195590 fix: exit 2 on an unknown name, as for an option 2026-11-05 12:05:44 +01:00
Abdessamad Derraz 3f0dfbce31 feat: emit an error event for an unknown name 2026-11-05 11:59:02 +01:00
Abdessamad Derraz 329fcc0f62 docs: name the installer cache and its variable 2026-11-05 11:52:23 +01:00
Abdessamad Derraz 4d46587693 fix: name a Python built without ssl or zlib 2026-11-05 11:48:50 +01:00
Abdessamad Derraz 33add072cb chore: merge installer page refresh 2026-11-04 05:52:02 +01:00
Abdessamad Derraz af2e930d32 chore: merge games on card installer mode 2026-11-03 21:06:04 +01:00
Abdessamad Derraz 52fc01109e chore: regenerate manifests after the data merges
Same files per platform. The manifests catch up with the per-system MAME
filing, the platform system join and declared_in, and name sfiii2a.zip as
missing. The games index fallback sets and the installer page samples
follow.
2026-11-03 19:05:39 +01:00
Abdessamad Derraz 2e9175a8e9 feat: install for the games on the card
--for-games reads the card's rom folders through install/games/ and keeps
what the games need: per system what its default core reads, one region
where the content proves it (crc32 and size, a disc serial, a header the
core reads), an arcade set's BIOS parents. A game not recognised gets
every BIOS of its system and is named. --required-only keeps only what
starts. The plan and the line menu open on it when the card holds games,
everything one press away. A cache keeps what reading a card found.
2026-11-03 18:51:21 +01:00
Abdessamad Derraz 6454de8772 docs: check and copy samples printed by install.py 2026-11-03 10:22:59 +01:00
Abdessamad Derraz 084bce08f9 docs: bring the installer pages up to the code 2026-11-03 10:17:47 +01:00
Abdessamad Derraz e9ef630b3a docs: regenerate the installer page samples 2026-10-28 17:23:34 +01:00
Abdessamad Derraz 57e0f306e8 chore: merge games parts and cores ticked
# Conflicts:
#	tests/test_doc_pages.py
2026-10-28 17:23:11 +01:00
Abdessamad Derraz ea214d9c01 fix: every core ticked while none narrows the run
Cores drew every box empty when no core narrows the run, read as nothing
chosen. Every core is now drawn ticked, an untick keeps the others, All
and None work as on Choose systems, and the plan, Options and line mode
say all cores or N of M cores. A run with failures counts once, the
failed files said as failed.
2026-10-28 16:51:14 +01:00
Abdessamad Derraz a4faf536dd fix: a games part is its system's card
Closes every finding of code_audit_23 and tui_audit_16: AmberELEC and
EmuELEC cards found as theirs, ArkOS cards told by bgmusic or
launchimages, counts that agree and read a copy of the right size before
calling it in place, one terminal width, line mode in the screen's order
and words, a tap shown armed, and which-pack naming the first screen.
2026-10-28 16:34:55 +01:00
Abdessamad Derraz c1a02ef24f fix: print installer page samples from install.py
The dry run, the Batocera walkthrough and the narrowing line of
wiki/installer.md were typed by hand and went stale with each list.
generate_installer_doc.py now runs install.py against the committed
lists in a sandbox, dated by each list, and the pipeline runs it at
step 7.
2026-10-28 16:22:04 +01:00
Abdessamad Derraz 297a57837f fix: pages say what the installer shows
The site, the README and the wiki take the screen's row names and the
--check pass line from install.py, and the wiki's line menu example is
written by generate_installer_doc from the function line mode runs.
which-pack describes the full screen the one-liner opens instead of a line
menu typed by hand. The systems question lays out in 80 columns under
Python 3.8, whose pty reports no width, and a test no longer reads the
host's drives.
2026-10-28 15:00:21 +01:00
Abdessamad Derraz 9314edb0be fix: one vocabulary and one count in both modes
Line mode says the screen's words for the files in place, missing or to
replace, counts the data files in its last line, names what the --from
folders hold before Enter, says Copying and the result's count once, and ends
every result with the same-choice command. Each data tree is hashed once per
run. A wrapped command reads one rule for PowerShell, a pack path keeps its
file name, folder lines keep one indent, and the systems question fits its
terminal. On the screen a tap on the focused Install row arms it, the Game
data row keeps the focus, a choice in place opens on Choose systems, a pack
holding none of the files offers no Install, and the 40x12 plan keeps its
version note.
2026-10-28 14:02:46 +01:00
Abdessamad Derraz 9911321227 fix: a card is told by what its system writes
A drive is a handheld's games part only when it holds the folders ArkOS,
AmberELEC or EmuELEC write there, and never a disk Windows or Linux calls
fixed. A data drive or a stick with a bios folder is listed with a note,
never taken under Enter. Two cards are named in the plural, and the
settle of a new screen runs from when it is drawn.
2026-10-28 13:28:01 +01:00
Abdessamad Derraz 23804a8da3 fix: one total and the same words in both modes
Commands break between shell words with a continuation the shell reads,
an option kept with its value. The 40x12 setup and plan keep a note or a
folder whole. Line mode counts files in place and missing, and names the
BIOS folder, as the screen does. The systems question fits its terminal.
2026-10-28 12:19:50 +01:00
Abdessamad Derraz 5bf29b3dab fix: find unnamed cards and fit the served copy
An ArkOS or AmberELEC games part is named on the first screen and comes
first at the folder question. Packs that lack files are said so before
any plan. The served bootstrap gives advice that fits it, and the site
build refuses a copy whose pin is not its installer.
2026-10-28 11:57:14 +01:00
Abdessamad Derraz 2e870d0692 fix: settle new screens before taking a tap
A press within 400 ms of a new screen belongs to a double tap on the
screen before and is dropped. A second tap is asked only of entries that
write files with nothing after them. The game data toggle keeps hidden
ticks, a choice in place offers no Install, and one total per plan.
2026-10-28 11:39:18 +01:00
Abdessamad Derraz 7259dbc7c4 chore: merge one choice per run and seen taps
# Conflicts:
#	install.ps1
#	install.sh
#	install/launchers/index.json
2026-10-28 06:49:39 +01:00
Abdessamad Derraz 8021db632d fix: one choice per run, taps seen before acting
Answers code_audit_20 and tui_audit_13. A tap acts on the frame it was
made on, bar entries that install, quit or open Confirm take two taps,
and Preferred regions keep their rows while open. Every check of a list
keeps the systems ticked, the plan's counts read the list the check
read, line mode leaves game data out of the choice alone, Confirm counts
copies, a pack's missing files are said before a size, and paths break
after a separator only.
2026-10-28 06:10:10 +01:00
Abdessamad Derraz 4c8e4ab157 fix: document only the https one-liner 2026-10-28 06:09:53 +01:00
Abdessamad Derraz 9e6af0aa6b feat: serve the one-line installer from the site
The site serves install.sh at /retrobios/i and install.ps1 at
/retrobios/i.ps1. generate_site.py writes both copies with the
installer address set to install.py at the commit the site is built
from (GITHUB_SHA in CI, HEAD locally), so the pinned SHA-256 and the
downloaded installer always come from one commit, including while a
deploy is still running.

Every command a user copies names the short address. The raw form
stays on the installer page as the fallback. Deploy Site now runs on
changes to install.sh and install.ps1. The install box weight keeps
the address length its ratio was fitted on, so no console page moves.
2026-10-28 05:47:38 +01:00
Abdessamad Derraz c8377de90d feat: taps follow the row, quits exit 2
code_audit_19 and tui_audit_12. A tap ticks a box and opens a choice on a
second tap of the row the screen saw tapped. One list drives the plan's game
data row, save line and data files. The version note, --offline in shown
commands, exit 2 for a chosen quit, legacy mouse reports read from bytes,
colour roles that read their words, the setup list's device column, the
copy browser, a drive two systems fit, WSL's Windows folder, and line mode
wording.
2026-10-28 03:15:07 +01:00
Abdessamad Derraz 3a5b95eb31 docs: name the terminals clicks were checked in 2026-10-27 22:00:23 +01:00
Abdessamad Derraz c9d4fbbbd8 chore: merge mouse and touch input
# Conflicts:
#	install.ps1
#	install.sh
#	install/launchers/index.json
2026-10-27 19:42:11 +01:00
Abdessamad Derraz 6e30e86d42 chore: merge main into mouse input
Pins and launcher index recomputed for the merged install.py. Mouse modes are now written before the frame, so a screen read back already takes clicks.
2026-10-27 19:29:42 +01:00
Abdessamad Derraz 7ec4d00375 chore: merge true platform list versions
# Conflicts:
#	install.ps1
#	install.py
#	install.sh
#	install/launchers/index.json
2026-10-27 19:18:57 +01:00
Abdessamad Derraz c8eb3a79e3 feat: say when the system runs another version
The installer reads the version the system states in its own file,
without running anything: batocera.version, recalbox.version (a release
only), RetroBat's system/version.info, VERSION_ID in os-release on Lakka
and EmuELEC. When it differs from the version the list was built for, a
line says so before the install and again with the result, and the new
version event carries it for the screen. An unknown version says
nothing, and the install never stops on it.
2026-10-27 19:10:44 +01:00
Abdessamad Derraz 72287e3310 feat: take clicks and taps on the full screen
Modes 1000 and 1006 only, SGR and legacy reports decoded, a hit map built from each drawn frame, action on release. Off on every way out, on the screens whose text is copied, with a pad route or RETROBIOS_NO_MOUSE.
2026-10-27 19:06:34 +01:00
Abdessamad Derraz c12cecde33 refactor: count every run line from one tally
The run header, the menu, its game data split and g, the plan, the
screen's plan and game data row and both results now divide one tally
of the list the run keeps. Case variants were counted on the run and
missing from the screen's split, g counted the whole list under a head
narrowed by c, and the result left out the data tree files. The wiki
examples come from real runs of 2026-10-27.
2026-10-27 19:01:13 +01:00
Abdessamad Derraz 230885b77f feat: paint the installer with colour roles
One table of roles from the 16 basic colours (accent, success,
warning, failure, muted, strong, selected) read by the full screen and
by the end of a line-mode run. Status words take their role from one
pattern table, the text never changes, and colour is off with NO_COLOR,
TERM dumb or unset, a terminfo entry naming fewer than 8 colours, or an
output that is not a terminal.

Colour goldens keep the escape codes, and a test strips them back to
the text goldens.
2026-10-27 18:19:26 +01:00
Abdessamad Derraz f8881e0874 docs: describe runs without questions and offline
The options and environment tables say what --no-input finds and when
it stops, and how the words name RETROBIOS_INSTALL_OFFLINE. A test holds
the options screen to leave out parallel downloads offline.
2026-10-27 16:30:24 +01:00
Abdessamad Derraz 39c2809a4b fix: polish the screens audit 11 named
Long messages scroll with their position, a small window says why the
questions come line by line, one bar rule per width, the folder a
config names sits under it and wraps whole, the help while typing a
filter lists what does not type, the plan names --core and --region,
pc finds the computer setups, rows keep sizes near their names, a
partial result counts once, a quit is said as one, the WSL browser
names drives by letter and No connection names the pack.
2026-10-27 16:27:47 +01:00