mirror of
https://github.com/Abdess/retroarch_system.git
synced 2026-10-23 20:29:06 -05:00
docs: explain the handheld port
The installer page says how to get the port (PortMaster's catalog once accepted, or RetroBIOS.zip in the autoinstall folder), what it shows and needs, and why it carries install.py. The download page links to it from the handheld table.
This commit is contained in:
1 parent
87c81e9694
commit
7d87828b98
2 files changed
+68
-2
No files matched your search
@@ -5249,6 +5249,10 @@ ZIP: extract them all into the same folder.
|
||||
| [ROCKNIX](https://rocknix.org/) | Linux OS for ARM and x86 handhelds, among them the RG35XX (H700) and the RG552 (RK3399) | [ROCKNIX]({rel}) | `/storage/roms/bios/`, over SSH or the network share |
|
||||
| [Batocera](https://batocera.org/) | Also has images for handheld chips, among them H700 and RK3326 | [Batocera]({rel}) | `/userdata/bios/` |
|
||||
|
||||
On a handheld that runs PortMaster, the RetroBIOS port checks and fills the
|
||||
BIOS folder from the device, with gamepad screens:
|
||||
[on a handheld](wiki/installer.md#on-a-handheld-the-retrobios-port).
|
||||
|
||||
### FPGA
|
||||
|
||||
| Setup | What it is | Pack | Extract to |
|
||||
|
||||
+64
-2
@@ -271,8 +271,9 @@ Files the list does not name are never read, moved or deleted.
|
||||
## Machine-readable events
|
||||
|
||||
With `--events`, standard output carries only JSON objects, one per line, and
|
||||
the text a person reads goes to standard error. A program driving the installer reads
|
||||
the objects and never parses the text. Every object has an `event` key naming its
|
||||
the text a person reads goes to standard error. A program driving the installer
|
||||
(the [handheld port](#on-a-handheld-the-retrobios-port) is one) reads the
|
||||
objects and never parses the text. Every object has an `event` key naming its
|
||||
kind, and each kind has exactly the keys below, in this order. The schema is
|
||||
`EVENT_KEYS` in `install.py`, and a test holds this table to it.
|
||||
|
||||
@@ -511,6 +512,67 @@ elsewhere. A custom BIOS directory is still named directly:
|
||||
python install.py --platform retroarch --dest /storage/emulated/0/RetroArch/system
|
||||
```
|
||||
|
||||
## On a handheld: the RetroBIOS port
|
||||
|
||||
On a Linux handheld that runs [PortMaster](https://portmaster.games/) (ArkOS,
|
||||
ROCKNIX, AmberELEC, muOS, KNULLI and the others it supports), the installer
|
||||
also runs from the device itself, as a port with gamepad screens. The screens
|
||||
are PortMaster's own, so the port carries no graphics code.
|
||||
|
||||
**Getting it.** Two ways:
|
||||
|
||||
- From PortMaster's catalog, once the port is accepted there: open PortMaster,
|
||||
find RetroBIOS under the Other genre, install.
|
||||
- `RetroBIOS.zip`, attached to each [release](https://github.com/Abdess/retrobios/releases/latest)
|
||||
cut since the port was added, copied into PortMaster's
|
||||
autoinstall folder. Starting PortMaster then installs it, with or without a
|
||||
network connection. PortMaster's FAQ names the folder: `/roms/ports/PortMaster/autoinstall/`
|
||||
on AmberELEC and ROCKNIX, `/roms/tools/PortMaster/autoinstall/` on ArkOS,
|
||||
`/mmc/MUOS/PortMaster/autoinstall/` on muOS,
|
||||
`/userdata/system/.local/share/PortMaster/autoinstall/` on KNULLI.
|
||||
|
||||
From a clone of the repository, `python scripts/build_port.py` builds the
|
||||
same archive into `dist/RetroBIOS.zip`.
|
||||
|
||||
**What it shows.** RetroBIOS appears among the ports. Started, it runs
|
||||
`install.py --check --events` and opens on the result: the system's name,
|
||||
how many BIOS files are present, missing, or present with a hash that does
|
||||
not match. The menu
|
||||
offers to update everything missing, to choose systems (each listed with what
|
||||
it lacks, selected or cleared with A), to check again, or to quit. An update
|
||||
shows a progress bar, one step per file, then what was installed, what failed
|
||||
and why, and what the collection cannot supply. Every list has its own Back or
|
||||
Quit entry, since older PortMaster releases do not read B there.
|
||||
|
||||
**What it needs.**
|
||||
|
||||
- A network connection: the list of files to check comes from the internet,
|
||||
as do the files. Without one the port says so and offers to check again.
|
||||
- Python 3.8 or newer. The port uses the system's `python3` when it is recent
|
||||
enough, else PortMaster's `python_3.11` runtime on aarch64 devices, which it
|
||||
downloads through PortMaster on first use. An armhf device with an older
|
||||
Python is told so, with the computer route below.
|
||||
- A BIOS folder the installer detects (see [Platform detection](#platform-detection)).
|
||||
On a system it does not know yet, the port says it found no BIOS folder.
|
||||
|
||||
**The computer route.** With the SD card mounted on a computer, the one-line
|
||||
command fills it, naming the platform and the card's BIOS folder:
|
||||
`--platform <platform> --dest <BIOS folder on the card>`. The port's screens
|
||||
for an unknown system or an old Python name this route.
|
||||
|
||||
**Which installer runs.** The archive carries `install.py`, the file the
|
||||
one-line command of the same commit downloads: the build refuses any other
|
||||
(`scripts/build_port.py` compares it with the SHA-256 `install.sh` pins). A
|
||||
port that downloaded the installer at each start against a pinned SHA-256
|
||||
would stop working at the next change to `install.py`, since the pin is fixed
|
||||
when the port is built. The file lists come from `main`, as for the one-line
|
||||
command. A newer port version carries a newer installer. When a list is in a
|
||||
format the carried installer does not read, the port says to update it.
|
||||
|
||||
The launcher (`ports/RetroBIOS/RetroBIOS.sh`) and its screens
|
||||
(`retrobios/screens.txt`) read the installer through
|
||||
[Machine-readable events](#machine-readable-events) only.
|
||||
|
||||
## Where the files come from
|
||||
|
||||
Each manifest entry names either `repo_path`, served from the repository at the
|
||||
|
||||
Reference in new issue
Block a user