Commit Graph
124 Commits
Author SHA1 Message Date
Abdessamad Derraz f8702a19f7 feat: treat a Lakka card as a card setup
Lakka keeps its BIOS on its STORAGE partition (/storage/system). A computer now tells that partition by the retroarch.cfg RetroArch writes there, whose system_directory is Lakka's /tmp/system overlay, and --platform lakka on a computer asks for the card instead of writing to /storage/system here.
2026-11-06 03:41:18 +01:00
Abdessamad Derraz cbe98d5fec fix: keep the mister row among the platforms 2026-11-05 19:51:12 +01:00
Abdessamad Derraz 73b82375d9 feat: recognise a mister card on a computer 2026-11-05 19:25:30 +01:00
Abdessamad Derraz 494e390de8 fix: take an elec bios folder as its games part 2026-11-05 19:09:43 +01:00
Abdessamad Derraz b90f8bb0b9 chore: merge tooling batch 2026-11-05 15:57:19 +01:00
Abdessamad Derraz 37d9165f33 fix: let a pack alone narrow by core in a test 2026-11-05 13:03:54 +01:00
Abdessamad Derraz ccec5486e5 refactor: name site tests by subject
The site test modules were cut by review pass (test_site_r2_css to test_site_r5_wiki): the passes of one subject become one module, and the modules that stood alone take the name of what they hold. The installer test classes named after a review take the name of what they test. One test left --manifest set for the tests after it, which the new order showed: it now resets the sources.
2026-11-05 12:51:52 +01:00
Abdessamad Derraz 3d694c7d70 feat: tell RomM users to scan after an install 2026-11-05 12:20:08 +01:00
Abdessamad Derraz 964812f977 chore: drop review tags from comments
Comments, docstrings and test texts ended on tags that name private review notes no clone holds. The tags go, the facts stay. Test methods named after a finding number are named after what they hold. test_prose_style refuses a tag that comes back. install.py changes in comments only: its pin and the launcher index follow.
2026-11-05 12:19:12 +01:00
Abdessamad Derraz 505cfc044b fix: say what a platform's own check compares 2026-11-05 12:10:51 +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 8844b30fb2 fix: read the folder tail on a crowded screen 2026-11-03 15:32:42 +01:00
Abdessamad Derraz 7b8b191a0c fix: read a wrapped folder without line breaks 2026-11-03 15:29:02 +01:00
Abdessamad Derraz 1cc12d8e2a docs: which-pack names the folder in fewer words 2026-11-03 14:56:45 +01:00
Abdessamad Derraz 27bd4f1a50 fix: one failure line per file, tests stay local 2026-11-03 14:31:49 +01:00
Abdessamad Derraz 2478c2a96c fix: tick lists wrap, tests follow the new keys 2026-11-03 14:24:51 +01:00
Abdessamad Derraz d8ee7439f5 chore: tests follow the tick lists and found cards 2026-11-03 14:21:22 +01:00
Abdessamad Derraz 48fa8abf44 chore: audit 24 and 17 cases, host kept out 2026-11-03 10:45:18 +01:00
Abdessamad Derraz 3d96f968e1 chore: merge main 2026-11-03 10:19:54 +01:00
Abdessamad Derraz 28d91e2eea fix: settle test taps past float rounding 2026-11-03 10:16:09 +01:00
Abdessamad Derraz c186b168bc docs: which-pack names the folder question 2026-11-03 10:14:09 +01:00
Abdessamad Derraz 8e811582c1 fix: which-pack names the first screen in brief
The sentence fits the page's 400-word ceiling and its 20-word sentences.
A test reading the site generator skips under Python 3.8, as the others
do, and the core plan test names the cores --core gave.
2026-10-28 17:22:16 +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 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 7713c365dc fix: a refused installer said in fewer words
The first install page stays within its word budget, and the tests run
under Python 3.8.
2026-10-28 12:25:30 +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 03eac0da94 fix: usage names install.py, not its copy
install.ps1 runs a copy named retrobios-install-<guid>.py, and --help and
every usage error printed that name. The parser names install.py.
2026-10-28 06:28:38 +01:00
Abdessamad Derraz 10af16f55d fix: definitions whole in a 40x12 help
The data files definition was cut in its second sentence at 40x12: the
help gives both kinds in a few words when the sentences do not fit.
2026-10-28 06:13:40 +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 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 ae5e377f21 fix: skip the tap pty tests without pyte 2026-10-28 03:35:04 +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 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 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 a4af2ffda4 fix: name --offline when given, keep page budget
--offline given with the variable set is named as the option, and the
runs the screen starts get it only when the user gave it. The first
install page stays under its 400 words, the 3.8 runs skip only the
pack test that needs generate_pack.
2026-10-27 16:57:34 +01:00
Abdessamad Derraz 73f8e48d41 fix: test the save line through a found card 2026-10-27 16:31:50 +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 dbc9da283d refactor: run line mode findings for parity
The line-mode findings of code audit 18 and tui audit 11, the escape
sequence checks among them, run in LineModeAndScreenDecideAlike.
2026-10-27 16:29:58 +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
Abdessamad Derraz 302c7737b2 fix: one remedy per card and plainer line mode
A full or read-only card is freed or unlocked, checked again first,
never left for another drive. Line mode names --dest where it said
choose another one, numbers out of range, the folder copied from, the
frontend's save directory and the command after Enter. The words name
RETROBIOS_INSTALL_OFFLINE when it, not --offline, made a run offline.
2026-10-27 16:13:10 +01:00
Abdessamad Derraz 0fb1047231 feat: count game data apart from BIOS files
The installer knew BIOS files from game data and no count showed it.
The plan, the line menu and the result count them apart for a list that
marks game data, the plan gets a game data row and the menu a g key,
each toggling it in one press, and one sentence says what game data is.
2026-10-27 16:03:25 +01:00
Abdessamad Derraz 992bc8ce70 fix: keep paths whole and spelled one way
A Termux run named /sdcard and /storage/emulated/0 for one storage, read
saves/<core> as a folder, split a backup path and the restore command
inside their words and named no folder for missing game data. Paths are
spelled as the BIOS folder was named, folders per core are said in
words, the result keeps paths and commands whole, and the game data line
names the folder it goes in.
2026-10-27 15:50:51 +01:00
Abdessamad Derraz 2ab01d3eec fix: ignore Ctrl-Z when no shell can resume
Started with no job-control shell, a Ctrl-Z stopped the screen and its
launcher for good. The key now stops it only when its process group is
a shell's job, and the bar says why otherwise.
2026-10-27 15:39:50 +01:00