Document the experimental Ports install

The engine can now install native builds through Batocera's Ports system,
which is the other half of our catalog — cartridges are all this store
takes today. It stays off here: nobody has run one of these games on real
hardware yet, and each is a 30-100 MB download rather than a few kilobytes.

The README says how to switch it on per platform, which platforms have an
ARM build (so a Pi or a handheld skips the rest instead of installing
something that cannot start), and what the coverage measures at today.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-17 08:37:41 +02:00
co-authored by Claude Opus 5
parent 5cac4e3617
commit 946c74bc66
+49
View File
@@ -64,6 +64,55 @@ reach ROMs you put there yourself. To change any of it, edit
`/userdata/system/batocera-store/ttg/config.json` on the box — the full key `/userdata/system/batocera-store/ttg/config.json` on the box — the full key
reference is in the engine's README. reference is in the engine's README.
## Native games as Ports — experimental
Cartridges are all this store installs by default, which is a little under half
the catalog: the rest of our games are native builds, and an emulator cannot
boot those. The engine can install them through Batocera's **Ports** system
instead, but it is off here on purpose — **nobody has yet confirmed on real
hardware that the games start**, and each one is a 30100 MB download rather
than a few kilobytes.
To try it, add platform entries to
`/userdata/system/batocera-store/ttg/config.json` on the box:
```json
"platforms": {
"ebitengine": {
"system": "ports",
"install": "port",
"kind": { "x86_64": "linux_x64", "aarch64": "linux_arm64" },
"ext": ".zip",
"enabled": true
},
"godot": { "system": "ports", "install": "port",
"kind": { "x86_64": "linux_x64" }, "ext": ".zip", "enabled": true },
"love": { "system": "ports", "install": "port",
"kind": { "x86_64": "linux_x64" }, "ext": ".zip", "enabled": true },
"bevy": { "system": "ports", "install": "port",
"kind": { "x86_64": "linux_x64", "aarch64": "linux_arm64" },
"ext": ".zip", "enabled": true }
}
```
Then `/userdata/system/batocera-store/ttg-store sync`. The games appear under
*Ports ▸ Teletype Games*; `remove` takes the unpacked program with it.
**Mind the architecture.** Only the platforms listed with an `aarch64` entry
above have ARM builds today — on a Raspberry Pi or a handheld the others are
skipped with a message naming the architecture, rather than installing something
that cannot start. `godot`, `love` and `tic80` have no ARM build at all yet: a
Godot ARM export needs a preset in the game repo, LÖVE has no upstream ARM
runtime, and TIC-80's exporter has no ARM target.
With everything that can be enabled turned on, the coverage measured on
2026-08-17 was **13 of 15** titles on x86_64 and **9 of 15** on ARM. The two that
stay out either way are `phaserdemo` and `trickster-tiles`: they ship only a web
build.
Report back what happens on a real box — that is the missing piece before this
becomes the default.
## Where things land ## Where things land
``` ```