Work out and build the RetroArch store
RETROARCH_STORE.md is the design, written from measurements rather than documentation: the format samples, thumbnail layout and core names come from a real RetroArch install on this machine, the core availability from the libretro buildbot index, and the CRC32s from the catalog itself. Three findings shaped it. The playlist folder is not necessarily inside the RetroArch directory — on the machine measured, playlist_directory is under ~/Documents while cores and thumbnails are under ~/Library — so reading retroarch.cfg is a requirement, not a nicety. Thumbnails must be PNG, and one of our covers is a GIF, which no store had cared about before. And a .lpl entry has nowhere to put a description, so desc and author do not survive the trip. Built the same day, in three repositories: engines/warpstore (the shared core, extracted immediately rather than in the second phase the plan proposed), tools/warp-engine-retroarch-store and tools/ttg-retroarch-store. The closing section of the design records what the implementation changed about it. MORE_STORES.md item 4 is closed, its "a minta" section now points at the extracted core, and REPO_REFACT.md carries the three new repos — check-repos.sh is green at 49. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+11
-1
@@ -92,6 +92,13 @@ A `shortcuts.vdf`-be írva a játékaink megjelennek a Steam könyvtárban borí
|
||||
### 4. RetroArch playlistek
|
||||
`.lpl` JSON playlist platformonként. A cartridge-eket sokkal nagyobb közönségnek adja, mint a Batocera: Android, asztali gépek, konzolok. Kis formátum, kevés munka.
|
||||
|
||||
**Kész (2026-08-17).** Terv és mérések: `RETROARCH_STORE.md`. Három repó:
|
||||
`engines/warpstore` (a kiemelt közös mag), `tools/warp-engine-retroarch-store`
|
||||
(motor), `tools/ttg-retroarch-store` (a mi store-unk). A Batocera-motor ugyanabban
|
||||
a körben átült a közös magra. **Hátra van:** valódi gépen kipróbálni, hogy a
|
||||
VICE-mag magától indítja-e a `.prg`-t, és hogy az Android `adb push` útvonalai
|
||||
állnak-e. Ott mérve: mind a két mag (`vice_x64`, `tic80`) elérhető minden célon, Androidon is; a playlist-könyvtár nem feltétlenül a RetroArch alapkönyvtárában van, tehát a `retroarch.cfg` kötelező olvasmány; a borító csak PNG lehet, amin az `impostor` GIF-je ma elhasal; leírást a `.lpl` nem tud. A motor egyetlen valódi új képessége az út-átírás (`stage_root` / `target_prefix`), ami az Androidot és a 2. pont asztali store-ját egyszerre szolgálja.
|
||||
|
||||
### 5. BBS store
|
||||
A `bbs/bbs-server`-be, a saját `rubbs`-unkra épülve. Bármelyik asset-fajtát tudja adni letöltésként, és ez az egyetlen a listán, amit **rajtunk kívül senki nem tudna lemásolni** — márkaérték, nem csak elérés.
|
||||
|
||||
@@ -117,12 +124,15 @@ Mind ugyanaz a forma: **olvasd a WarpEngine katalógust → írd a gazdaplatform
|
||||
|
||||
Egy dolog viszont **nem** tartozik az adapterbe, hanem a közös részbe: az **architektúra-illesztés**. A gazdaplatform megmondja, milyen gépen fut (`uname -m`, Windows/macOS esetén a megfelelő megfelelője), és a motornak ehhez kell asset-fajtát választania. Ez a 0., 1. és 2. pontnak egyaránt kell, tehát egyszer, jó helyen érdemes megírni.
|
||||
|
||||
**A közös rész 2026-08-17-én kiemelve:** `engines/warpstore`, egyetlen fájl, amit mindkét motor a telepítéskor letölt. Benne a katalógus és gyorsítótára, a kiadásválasztás, a `state.json`, a borító-letöltés, az atomikus írás és a törlés-őr — plusz az architektúra-illesztés, ami a második adapter miatt `resolve_for_host`-tá bővült: nem csak az `arch`, hanem az `os` is kulcs lehet, mert egy libretro mag fájlneve OS-enként más. Egy új store innentől valóban egy adapter plusz egy config.
|
||||
|
||||
## A javasolt sorrend
|
||||
|
||||
1. ~~**`linux_arm64` a build-mátrixba**~~ — **kész** (2026-08-16). Az `ebitengine` és a `bevy` gyártja; a `godot`-hoz a játék repójában kell ARM export preset, a LÖVE-hoz nincs upstream ARM AppImage, a TIC-80 `export` parancsának meg nincs ARM célja. A `bevydemo` 1.0.0 már `linux_arm64`-et is ad.
|
||||
2. ~~**Architektúra-illesztés a motorba**~~ — **kész** (2026-08-17). A `kind` és az `ext` lehet architektúra-leképezés `*` tartalékkal; a felismert arch látszik a `list` és a `config` kimenetében. `aarch64`-en végigpróbálva: az ARM csomagot tölti le, és a benne lévő bináris valóban AArch64.
|
||||
3. ~~**`linux_*` → Batocera ports**~~ — **kész** (2026-08-17). `install: "port"`; `aarch64`-en végigpróbálva: telepítés, idempotens újraszinkron, eltávolítás a 106 MB-os payloaddal, és a névtér-védés is (idegen `.data` útra mutató bejegyzést elutasít). **Hátra van:** bekapcsolni a `ttg-batocera-store` configjában, és valódi gépen kipróbálni, hogy a natív játékok tényleg elindulnak-e.
|
||||
4. **ES-családú store-ok** (1.) — a motor itt már majdnem kész.
|
||||
4. ~~**RetroArch playlistek**~~ — **kész** (2026-08-17), a közös mag kiemelésével együtt. Lásd `RETROARCH_STORE.md`. **Hátra van:** a VICE `.prg`-autostart és az Android-út valódi gépen.
|
||||
5. **ES-családú store-ok** (1.) — a motor itt már majdnem kész, és a `warpstore` óta az adapter tényleg csak a gazdaplatform írása.
|
||||
|
||||
## Amit valódi gépen kell ellenőrizni
|
||||
|
||||
|
||||
Reference in New Issue
Block a user