Restore moves a file in place with other bytes into a new dated backup, the installer's own recorded copy aside. Removal hashes each file again just before it goes and keeps one changed since the plan, keeps the record entries of files that stayed, touches the record only after the yes, and stops on a BIOS folder that is not there. A Windows junction counts as a link in the planner, the backup walk and --delete-backup. A place both the platform's list and a core name is never a core's alone, and two names of one file on a folding drive are planned once. A restore into a moved folder says the record was not updated.
12daa6698 wrote "the file for your system" on the installer page, and
test_site_pronouns failed Validation on it. The line above already
names the file for the system: "Download that file".
A record's choice holds only the options of the choice and their
values, or the whole record is said once and ignored: it no longer reaches
the commands printed for the user. A recorded games folder is kept only
under the folder that holds the BIOS folder. A recorded option the list
can no longer apply is left out in one line, never refused. The record is
read only when it is a regular file of at most 16 MiB, its day is unknown
when no clock can show it, one a newer installer wrote is left as it is,
and a setup that cannot be used is dropped alone. The plan opened on the
one setup found keeps that screen's notes under Details.
build_port's four archives carry install.py pinned by SHA-256, so they
change with the installer, not with the packs. The site now builds them
from its own commit and serves them under get/handheld/. Each get/ page
of Batocera, KNULLI, ROCKNIX and AmberELEC names its file, size, hash,
folder and menu, and get/linux-handhelds/ does the same for muOS, ArkOS,
dArkOS and JELOS. The installer's handheld section opens on a download
table, both tables written from sitehandheld.LAUNCHERS.
An install writes retrobios-backup/<folder>.install.json beside the BIOS
folder: each file it placed with its sha1, size and source, and the choice
it made. The next run for the same setup and folder takes that choice when
the command line chose nothing, in line mode and on the full screen, and
says so. A record that cannot be read is said once and ignored. A record
event reports it.
With one setup found, the full screen opens on its plan, Change where one
row away. The plan's Install row says the size its headline says.
The release carries the packs, the handheld launchers and the signed checksum list. The installer and the file lists are pinned from the tag (installer page, For packagers), and check_release.py now refuses them as unrecorded files. The notes link each pack's files on the release itself, in a beginner's page: one idea per line. The handheld section links the latest release.
An entry the installer places in the roms, emulators or configs folder is in the install list but not in the ZIP, which is unzipped into the BIOS folder. pack_files and pack_size counted them: release_record.py refused Batocera (19196 against 19125 in the archive) and RetroBat (9200 against 8882). Manifests regenerated twice, identical.
Online pipeline at 169776790, generated twice with identical output: database, recipes, install manifests and games index, native exports, README, installer and report excerpts.
Five lines the default text hid are back where the user reads them:
- the result names each failed file again, after Exit too;
- a run, --check, the plan and the result count the files an emulator
needs that are not available here, --verbose or Details naming them;
- --check names each copy that fails its check, the files that sit too
deep and what a run copies, and says such a copy is backed up; only
the plain missing files wait on --verbose;
- the plan and the result keep the count of save files left out and the
remedy, the reason going to Details;
- the plan counts the --from files that could not be read where no row
names them, and says another drive to add.
Exit codes are unchanged. The result's word budget rises by the failed
file line.
The ZIP replay in packextras.hidden_extras now skips roms, emulators and configs entries as the builder does, so verify and pack integrity stop counting files only the installer places. The consistency check treats the Android .nomedia marker as a pack note. MAME4droid's hiscore.dat leaves bios/: the app unpacks it from its own files.zip. VVVVVV's Make and Play data.zip is collected as a release asset, which EmuELEC declares as required.
The plan, Confirm and the result say what happens, its size, where and
the next step. Their counts, free space, backup and save notes, kinds,
reasons a file is left out, per-file failures and commands move to a
Details screen: d on the plan, Confirm and the result, the Details row
on the plan, Y, o or Tab on the result. Opened on the result, they are
also said in the terminal after Exit. Installing lists the files that
went well only with --verbose, and --verbose draws every line in place.
The log line reads Log: so that Details names one thing.
--check prints its count, the folder and the remedy in both modes, so
that --verbose prints every default line. Each golden screen gets a word
budget per size, and a test proves the screen and its Details together
equal the --verbose screen.
By default a run prints what it installs, the BIOS folder, the progress
at a terminal, the result and the next step. The steps, the per-file log
lines, the counts and the reasons a file is left out come back with
--verbose. --check gives the count and the folder, and lists each file
with --verbose. The installer page shows the default run and walks
through the --verbose one.
Run from the retrobios package, a hint and --help named python3 install.py, a file that user does not have. The package's launcher sets RETROBIOS_BOOTSTRAP=pypi, and the command is read from the environment it runs in: uvx retrobios from uv's cache, pipx run retrobios from pipx's, retrobios once installed.
The merge of 6c1446886 took one side of wiki/installer.md for its generated samples and dropped four hand-written changes from the other (folder browser text, --restore row, muOS card text, a kept-file sample). Redone as a three-way merge, samples regenerated.
A list naming retroarch now takes the libretro profiles whose built_by names the platform: ROCKNIX ships yabadabadoo with its RetroArch and named it nowhere, so its files never reached the ROCKNIX pack. Only change across the registry: rocknix + yabadabadoo. Also quotes the installer's current unproven-drive message.
- The installer speaks without "you": the first screen asks "Where
to install?", rows read "Copy the BIOS files from an old card or a
folder", a close match reads "Close matches: ...". The handheld
launchers and their port text follow, and the pronoun guard no
longer lists any installer message.
- A setup that runs as an app opens on its one-line command, the
folder table after it; a setup that runs on its own device keeps
the network folder first, which its ZIP route needs.
- The home steps say what to do: "Its page gives one line to copy",
"Paste it, press Enter".
The events transcript on the installer page is a --check run that finds
files missing. Since November such a run ends on 3, as the Exit status
table says, and the sample still showed 1.
- The installer says "Every file on the list is in place." where it
said "Everything is in place.": a check covers the files the
collection holds, and the required ones it lacks follow.
- The FAQ, first install, legal and home pages state only what the
code shows (PlayStation 1 and Saturn run without a BIOS on some
emulators, save files are never touched, records are added).
- MinUI and MyMinUI show their own boot logos, and the Android,
Linux handheld and iPhone tiles show the Android robot, Tux and a
plain device icon, each credited in sources.json.
- Each Markdown copy, llms.txt and llms-full.txt name the commit
they were built from, version.json the current one, and the
answering rules tell assistants to fetch a stale copy again.
- The deploy lists the pages whose words changed (digests.json) and
posts them to IndexNow once the site is live.
Each claim in the README and the wiki now matches the code or data it
describes: line citations counted as such (93%), closed-source profiles
named, severity tied to the check mode, installs limited to files the
collection holds, and the demo labelled as a demonstration card.
The page said a long list opens on None. The list opens on its first
system since the three tick lists share one rule (A on None unticked
every system as a beginner's first press). The page now says what the
screen does, and a test reads both.