docs: show installer runs as they really print

This commit is contained in:
Abdessamad Derraz committed 2026-10-17 15:06:04 +02:00
1 parent 4d365ff57f
commit 5cc45794f4
7 files changed
+48 -19

No files matched your search

+3 -2
View File
@@ -287,8 +287,9 @@ platforms:
# files there, not the one RetroArch's Windows and macOS builds see.
case_insensitive_fs: false
schedule: weekly
target_scraper: lakka_targets
target_source: https://buildbot.libretro.com/nightly/
# No target list yet: Lakka builds its cores per device image, and no
# scraper reads those lists.
target_scraper: null
install:
detect:
- os: linux
+18
View File
@@ -208,6 +208,24 @@ class RecalboxReadsItsSystemsInBatches(unittest.TestCase):
self.assertEqual(len(cores), 120)
class EveryNamedScraperExists(unittest.TestCase):
"""The registry named lakka_targets, a scraper no file defines: a refresh
of stale targets would have failed on its import."""
def test_registry_scrapers_are_modules(self):
import yaml # noqa: PLC0415
registry = yaml.safe_load((REPO_ROOT / "platforms" / "_registry.yml").read_text())
scraper_dir = REPO_ROOT / "scripts" / "scraper"
for name, meta in registry["platforms"].items():
with self.subTest(platform=name):
if meta.get("scraper"):
self.assertTrue((scraper_dir / f"{meta['scraper']}_scraper.py").is_file())
if meta.get("target_scraper"):
self.assertTrue((scraper_dir / "targets"
/ f"{meta['target_scraper']}_scraper.py").is_file())
class RetroPiePackageList(unittest.TestCase):
"""RetroPie states its packages, and nothing else states them for it."""
+4 -2
View File
@@ -142,8 +142,10 @@ platforms:
```
A platform without a scraper (`scraper: null`, `schedule: null`) keeps its YAML
as a hand-maintained file. RetroPie is the example: it inherits RetroArch's
file set and has nothing of its own to fetch.
as a hand-maintained file. Every registered platform has a scraper today, so
none is edited by hand: RetroPie inherits RetroArch's file set and its scraper
writes the packages it builds, read from the `rp_module_id` of each
scriptmodule, and any manual change is overwritten on the next scrape.
The `cores` field determines which emulator profiles are resolved for this platform.
Three strategies exist:
+14 -8
View File
@@ -63,12 +63,15 @@ curl -fsSL https://raw.githubusercontent.com/Abdess/retrobios/main/install.sh |
The first lines name what it found and where it will write:
```
RetroBIOS
RetroBIOS 8c0e9c762d2f
Detecting platform...
Found Batocera at /userdata/bios
```
The code after RetroBIOS identifies the installer: it is the start of the
SHA-256 the command checked before running it.
That path is the one thing worth reading twice. If it is not where the emulator
keeps its BIOS files, stop with Ctrl+C and see the last section.
@@ -78,22 +81,25 @@ Two phases follow. The first reads what is already in the folder, which takes a
few minutes on a memory card because every file is hashed:
```
Fetching file index for misterfpga...
72 files (24.0 MB)
Fetching file index for batocera...
12893 files (8.6 GB)
Checking existing files...
72/72 present (72 verified, 0 wrong hash)
0/12893 present (0 verified, 0 wrong hash)
```
On a first install those numbers are zeros, which is expected, not a fault.
On a first install the present count is zero, which is expected, not a fault.
On a later run it counts what is already there, and only the rest is
downloaded. A download of 1 GB or more is confirmed first
(`Download 8.6 GB to /userdata/bios? [Y/n]`).
The second phase downloads what is missing, one line per file:
```
Downloading 72 files (24.0 MB)...
Downloading 12893 files (8.6 GB)...
Press Ctrl+C to stop. Running the same command again carries on from here.
[1/72] AtariLynx/boot.rom ok
[2/72] Astrocade/boot.rom ok
[1/12893] 3do_arcade_saot.bin ok
[2/12893] 3dobios.zip ok
```
Ctrl+C is safe at any point. Files already installed stay, and running the
+1 -1
View File
@@ -237,7 +237,7 @@ It ends on a count:
```
Checking existing files...
1872/1872 present (1872 verified, 0 wrong hash)
5865/5865 present (5865 verified, 0 wrong hash)
All files up to date.
```
+7 -6
View File
@@ -101,22 +101,23 @@ A run looks like this:
```
Fetching file index for retroarch...
1872 files (5.5 GB)
Safety notice: 9 unavailable or unsafe entries omitted (1 required; not found: 9).
5865 files (5.7 GB)
Checking existing files...
0/1872 present (0 verified, 0 wrong hash)
1872 files need downloading.
0/5865 present (0 verified, 0 wrong hash)
```
When the manifest leaves entries out (a file the collection cannot supply, or
one that failed a safety check), a `Safety notice:` line under the index count
says how many and why.
## Choosing what to install
By default the installer fetches everything the platform runs. At a terminal,
after detection, it asks:
```
Retroarch: 5861 files, 6.0 GB.
Retroarch: 5865 files, 5.7 GB.
Enter) install everything
i) only what the installed cores read: 102 files, 44.5 MB
c) choose systems, cores and regions
+1
View File
@@ -667,6 +667,7 @@ Located in `scripts/scraper/`. Each inherits `BaseScraper` and implements `fetch
| `retrodeck_scraper` | component manifests | JSON per component |
| `romm_scraper` | known_bios_files.json | JSON |
| `rocknix_scraper` | rocknix-systems script | Python dict |
| `retropie_scraper` | RetroPie-Setup scriptmodules (`rp_module_id`, `rp_module_help`) and `retropie_packages.sh` (version) | Bash |
| `misterfpga_scraper` | BiosDB_MiSTer bios_db.json.zip | JSON in ZIP |
| `coreinfo_scraper` | .info files from libretro-core-info | INI-like |
| `bizhawk_scraper` | FirmwareDatabase.cs | C# source |