iris-gamebox: Konsolen-, Arkade- und DOS-Spiele aus den Bibliotheken als macOS-App #235
Labels
No labels
herkunft/alpha-feedback
status
blockiert
status
zu-testen
typ
bug
typ
docs
typ
enhancement
typ
feature
typ
idea
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
iris/iris-plugins#235
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Neues Plugin
iris-gamebox(iris-dosgamebleibt erhalten, sein Code dient als Referenz): in den vorhandenen Bibliotheken ein Spiel suchen und es als eigenständige, weitergebare macOS-App bauen.Bibliotheken (Quellen-Registry, erweiterbar)
/Volumes/data/volume/exodos/eXoDOS: Katalog istData/Platforms/MS-DOS.xml(7634 Spiele: Titel, Entwickler, Publisher, Jahr, Notizen bei 7618,ManualPathbei 4005, fertigeApplicationPath/ConfigurationPath), Handbücher unterManuals/MS-DOS/, Bilder unterImages/MS-DOS/(47 Kategorien, Icon-Vorlage). BigBox.exe ist nur das Frontend — keine RE-Analyse nötig, die Daten stehen offen in XML./Volumes/data/volume/retrodeck: befüllt laut Zählung arcade 573, psx 505, amiga 364, nes 246, snes 199, c64 157, zxspectrum 135, gba 101, segacd 51, n64 42, gamegear 30, gb/gbc/3do je 25, psp 23, sega32x 16. BIOS unterbios/(260 Dateien, vollständig:3do_arcade_saot.bin,SCPH1001.BIN,neogeo.zip,bios_CD_E/J/U.bin, Kickstarts …).Engines
ScummVM, DOSBox-X (aus
iris-dosgameübernommen) und neu RetroArch + ein Libretro-Core pro System.Verifiziert (2026-10-23, gemessen, nicht angenommen)
stable/1.22.2/apple/osx/universal/RetroArch_Metal.dmg(232 MB). Der Homebrew-Cask ist x86_64-only → Rosetta, für diesen Mac unbrauchbar.nightly/apple/osx/{arm64,x86_64}/latest/<core>_libretro.dylib.zip; beide Architekturen mitlipozu Universal zusammenfügen (opera 1,3 MB, snes9x 5,9 MB, mesen 7,0 MB, fbneo 59 MB, mame2003_plus 71 MB).opera_3do_process_framein der CPU-Sample, kein Menü. Bewährtes Rezept (Launcher + cfg) liegt im Export-Chat 2026-10-23.mame2003-pluslädt den Core, lädt1942.zipaber nicht („Inhalt konnte nicht geladen werden“).fbneostartet1942undgalaga→ fbneo ist der Arkade-Kandidat; Rest per Stichprobe prüfen.Entscheidungen (mit Nutzer geklärt)
retrodeck/bios/), Hinweis im Stand, dass BIOS/ROM nicht weiterverteilt werden sollen.iris-gamebox.util/install.batnur das Entpacken des Spiel-ZIPs nacheXoDOS/<SpielDir>/— kein DOS-Installer. Die.batin!dos/ist der BigBox-Umschlag (startetutil/launch.bat, interaktiv); für die App zählt der[autoexec]-Startbefehl aus!dos/<Spiel>/dosbox.conf, wieiris-dosgamees bereits übernimmt.PR #236 gemergt: feat(iris-gamebox): Bibliotheken durchsuchen und DOS-, Konsolen- und Arkadespiele als macOS-Apps bauen (#235)
#236
Commits:
Stand iris-gamebox 0.1.0 (Issue #235)
Befund
Neues Plugin
iris-gamebox(iris-dosgame bleibt Referenz, unverändert): sucht Spiele über beideBibliotheken und baut eigenständige macOS-Apps. BigBox.exe brauchte keine RE — die Metadaten stehen
offen in
Data/Platforms/MS-DOS.xml(Titel, Entwickler, Jahr, Notizen, ManualPath, ApplicationPath),Handbücher in
Manuals/, Box-Art inImages/(5129), RetroDeck-Covers inES-DE/downloaded_media/.Geändert
gamebox_cli.py: sources (Quellen-Registry) / index (XML+ROM-Catalog, 9370 Spiele in 18 s) /search (fuzzy, normalisierte Titel) / info / bundle / cores / install / verify / doctor.
Systeme-Tabelle (16 Systeme: Core, Endungen, BIOS-Muster) und Quellen-Registry sind getrennt —
dritte Quelle (Windows) später ohne Umbau.
lipo universal), Launcher mit absoluten Paden,
arch -arm64, Direktstart ohne Menü,load_dummy_on_core_shutdown=false. BIOS aus retrodeck/bios ins Bundle (Cap pro Datei).CD-Abbilder, --keys). Icons: Box-Art/Cover → icns.
Geprüft (gemessen)
swanstation, opera, puae, vice_x64, fuse, picodrive (SegaCD+32X), ppsspp, fbneo.
Arkade-Stichprobe: 10 verteilte fbneo-Sets, alle gestartet.
verifygrün: contra (Arkade 401 M), Flashback (3DO 449 M, BIOS),40 Winks (PSX 672 M, 5 BIOS), Mad TV (DOSBox-X+CD 174 M), 3 Skulls (ScummVM 634 M).
Nicht geprüft
Titel, Savestates, Amiga-Kickstart-Auswahl, Arkade-Titel jenseits der Stichprobe, Weitergabe auf
fremden Mac (Gatekeeper-Rechtsklick nur dokumentiert).
Grenzen
Veröffentlicht: 0.1.1
Auf Alfs Wort veröffentlicht (
publish-plugins.sh, Registry-Commit8cf4fbc):iris-gamebox-0.1.1.irisplugin(24 KB), Index-Eintrag mit changelogstore-page.json→ Hero-Seite + Gamepad-Icon,description.md,changelog.mduser_docs-Seiten) als HTML unterstore/iris-gamebox/anleitung/Geändert gegenüber 0.1.0
Nur Manifest/Store: Version 0.1.1,
changelog-Feld,store/-Material,.include-Freigabe. Der Code ist identisch zum Stand des PR #236.Geprüft
Dry-Run und Veröffentlichung grün; Indexeintrag, Paket und Store-Dateien im Registry-Repo bestätigt (
8cf4fbc). Die auf dem Mac installierte Drop-Zone-Kopie 0.1.0 bezieht ihr Update jetzt regulär aus der Registry.Nicht geprüft
Darstellung der Store-Seite in der App; Update-Pfad bei Geräten, die 0.1.0 nie hatten (erstveröffentlichung).
PR #237 gemergt: chore(iris-gamebox): Store-Material, changelog und .include — Veröffentlichung 0.1.1 (#235)
#237
Commits:
PR #238 gemergt: feat(iris-gamebox): Spiele-Suche als Anwenden-Seite mit Systemwahl, Sortierung und App-Erzeugung (#235)
#238
Commits:
Stand iris-gamebox 0.2.0 (Issue #235)
Befund
Alf wollte das Plugin interaktiver: Suche in eigener Oberfläche, Auswahl der Plattform (DOS, Arkade, Amiga,
PSX, PSP …), Sortierung (alphabetisch, nach Größe) und ein Knopf „App erzeugen“. Recherche (iris/Iris#149,
README Kap. 15): Ein Canvas mit eigenen Buttons wäre heute nur über autonome Blöcke sauber möglich
(Mac-only, nur lokaler Chat, kein Referenz-Plugin) — mit Nutzer entschieden: jetzt der Anwenden-View
(Chevron), Canvas als Stufe 2.
Geändert
web/search.html(usage_web_view_path+quick_access_label„Spiele-Suche“): Suchfeld, System-Dropdownmit Trefferzahlen, Sortierung Alphabet/Größe/Jahr, Liste mit „mehr laden“, Detailspalte mit App-Name,
DOS-Menü-Tasten und „App erzeugen“ inkl. Fortschritt; hell/dunkel.
panel_api.py(panel_api-Vertrag, Befehleconfig-status systems browse build job recent sources):buildstartetgamebox_cli.py bundleals Hintergrundprozess (stdout in Logdatei, keine eigene Session —TCC),
jobliest Fortschritt/Endzustand aus dem Log und persistiert ihn.gamebox_cli.py: Index-Feldsize(Größen-Sortierung),browse/systems/--json, Filter fürBrowser-Suche verschärft (near-Treffer + klare Tippfehler, Chat-Rangfolge unverändert breit),
Signatur ohne
--deep(eingebettete Engines behalten ihre Signatur),source/checkedim Index-Cache.(erste-schritte, befehle), SKILL.md-Hinweis auf die Seite,
store-page.json/Hero neu erzeugt.Geprüft (gemessen)
browse: 9370 Spiele, 0,14 s aus dem Cache; Sortierung Titel/Größe/Jahr, Systemfilter, Paginierung.build → jobgegen echte Bibliothek: contra gebaut (460 MB, „fertig“ + App-Pfad), zweiter Bau„fehler: existiert schon“; die so gebaute App
verify-grün (fbneo, CPU 12 %) — trägt ohne--deep.browseantwortet sofort mit „wird aufgebaut“, Neubaulauf im Hintergrund, danach Treffer.panel_api.pyundsearch.htmlim Paket, Store-Check grün, JS-Syntax geprüft.Nicht geprüft
/plugins/iris-gamebox/api/…durch die Iris-Web-View — Backend und HTML nur gegeneinander getestet.
sources-Befehl (in Manifest gelistet, Oberfläche nutzt ihn noch nicht).Grenzen / offen
PR #239 gemergt: chore(iris-gamebox): Store-Seite auf 0.2.0 ziehen — Spiele-Suche im Text (#235)
#239
Commits:
PR #241 gemergt: feat(iris-gamebox): Konfiguration-Panel — Bibliotheken und App-Ablage per Ordner-Auswahl (#235)
#241
Commits:
Stand iris-gamebox 0.3.0 (Issue #235)
Befund
Alf wollte das Plugin konfigurierbar wie die anderen: eXoDOS- und RetroDeck-Pfad per Picker und das
Ausgabeverzeichnis der Apps frei wählbar. Bisher: Quellen nur über den Chat (
sources add), Ausgabe hart~/Applications(panel_api) bzw. aktuelles Verzeichnis (CLI), kein Konfigurieren-Panel.Geändert
web/settings.html(neu): Konfiguration-Panel (settings_web_view_path+has_settings_panel),getrennt vom Anwenden-Chevron (Muster filmcraft/solidcraft, README Kap. 15). Zwei Bibliothekskarten
(eXoDOS, RetroDeck) mit Status Abzeichen bereit/nicht verbunden/nicht gesetzt, je einem Ordner-Picker
und „Entfernen“; darunter die Ablage der Apps mit Picker und „Auf Standard zurücksetzen“; darunter
„Weitere Quellen“ (frei benannte
sources add-Einträge, Leseanzeige).exodos/retrodeckinsources.json(CLIsources set SLOT PFAD,Art-Prüfung: falscher Ordner → klare Meldung;
sources addbleibt für dritte Quellen).config.json → out_dir, Standard~/Documents/Gamebox(mit Nutzer entschieden;vorher
~/Applications).bundleohne--outund der Bau aus der Seite lesengb.out_dir(),ein explizites
--out/outgewinnt; Bestand bleibt liegen, wo er liegt.browse-dir(Ordner-Picker, nur Unterordner, Shortcuts inkl. /Volumes,verzeihender Startpfad),
settings,save-source,clear-source,set-out,clear-out; Manifest0.3.0 + changelog. Spiele-Suche zeigt die aktuelle Ablage beim „App erzeugen“.
config [get|set-out|clear-out],sources set;doctorzeigt die Ablage. Doku (4 Seiten),SKILL.md, store-page/hero, changelog.md auf den neuen Weg gezogen.
Geprüft (gemessen)
sources setnimmt eXoDOS/lehnt RetroDeck-Ordner im falschen Slot(„Der gewählte Ordner ist RetroDeck — erwartet wird eXoDOS …“);
config/set-out/clear-out;alle sechs neuen panel_api-Befehle inkl. Fehlerpfade;
buildübergibt die eingestellte Ablage als--out, explizitesoutgewinnt;browse-dirfällt bei fehlendem Pfad auf den nächsten Eltern.node --checkbeider Views;store_page.py --checkgrün;Privacy-Scan ohne Fund; Build 44 KB,
settings.htmlim Paket.Nicht geprüft
nur gegeneinander getestet.
die alte Quelle bleibt sichtbar unter „Weitere Quellen“.
Grenzen
sources add); das Panel führt die beiden Slots.PR #242 gemergt: docs(iris-gamebox): PLAN.md — 0.3.0 veröffentlicht (Registry 642bf42) (#235)
#242
Commits:
Stand
PLAN.md auf „0.3.0 veröffentlicht" gezogen (Registry-Commit 642bf42). Nur Doku, kein Code.
Veröffentlicht: 0.3.0
Auf Alfs Wort veröffentlicht (
publish-plugins.sh, Registry-Commit642bf42):iris-gamebox-0.3.0.irisplugin(44 KB), Index-Eintrag mit changelog; Paket-Hash gegen den Index geprüft (2687ef22…)description.md,changelog.md, Anleitung (4 Seiten, jetzt mit Konfiguration-Panel)Geändert gegenüber 0.2.0
Konfiguration-Panel (
settings_web_view_path): eXoDOS und RetroDeck per Ordner-Auswahl (Slotsexodos/retrodeck, CLIsources set), Ablage der Apps frei wählbar — neuer Standard~/Documents/Gameboxstatt~/Applications; Spiele-Suche zeigt die Ablage. PR #241.Geprüft
Registry-Pfad gemessen (Index, Paket, Store-Dateien in
642bf42bestätigt). Panel-Backend und Views gegeneinander getestet (siehe Stand-Kommentar zu #241).Nicht geprüft
Panel in der echten Iris-Web-View (öffnen, cfg_token); Update-Pfad bei frei benannten Alt-Quellen (Slots einmalig neu wählen).
PR #243 gemergt: feat(iris-gamebox): Standard-Ablage wird angelegt, neuer Ordner im Ablage-Picker (0.4.0) (#235)
#243
Commits:
Stand iris-gamebox 0.4.0 (Issue #235)
Befund
Alf testete das Konfiguration-Panel in der echten Iris-Web-View (Screenshot: Slots bereit, Picker mit Shortcuts und /Volumes-Laufwerken) und wünschte: die Standard-Ablage ~/Documents/Gamebox soll existieren, wenn sie Standard ist, und im Ablage-Picker neue Ordner anlegen können.
Geändert
out_dir()legt die Ablage beim Anzeigen best effort an (schreibgeschütztes Ziel bricht die Anzeige nicht) — gilt für Panel, Spiele-Suche,configunddoctor.mkdir{path, name}: neuer Ordner im Picker; Name gegen/,.., versteckte Punkte; klare Meldungen bei Duplikat und nicht lesbarem Eltern. Manifest 0.4.0.Geprüft (gemessen)
Fake-HOME: ~/Documents/Gamebox entsteht beim ersten
settings; mkdir legt an und lehnt Duplikat/../.versteckt/fehlenden Eltern; Manifest↔panel_api-Deckung; IDs undnode --checkgrün; Build 44 KB.Nicht geprüft
Der neue Knopf in der echten Iris-Web-View (gleicher Contract wie die übrigen Picker-Aufrufe, die dort seit 0.3.0 laufen).
Grenzen
Veröffentlichung erst auf ausdrückliches Wort.
PR #244 gemergt: docs(iris-gamebox): PLAN.md — 0.4.0 veröffentlicht, Lesson Learned Plugin-Import (#235)
#244
Commits:
Stand
PLAN.md auf „0.4.0 veröffentlicht" gezogen (Registry-Commit 45fa674, Paket-Hash gegen den Index geprüft) und die Lesson Learned zur installierten Kopie (nie rsync — panel_api-Whitelist kommt aus plugins-index.json) ergänzt. Nur Doku, kein Code.
Veröffentlicht: 0.4.0
Auf Alfs Wort veröffentlicht (
publish-plugins.sh, Registry-Commit45fa674), damit der Update-Weg über den Marktplatz getestet wird:iris-gamebox-0.4.0.irisplugin(44 KB), Index-Eintrag mit changelog; Paket-Hash gegen den Index geprüft (9bb3939a…, 44.689 B)~/Documents/Gameboxwird beim Anzeigen angelegt; „Neuer Ordner …“ im Ablage-Picker (Enter, neue Ordner vorausgewählt); panel_api-Befehlmkdir(PR #243)Veranlassung
Alfs Test in der echten Web-View (Screenshot) meldete „Unknown command“ für
mkdir: keine ist ein Plugin-Fehler, sondern rsync auf die installierte Kopie — die Befehls-Whitelist kommt ausplugins-index.json(beim Import geschrieben), HTML/JS liest Iris live von Platte. Import/Update ist der einzige saubere Weg (PLAN.md Lesson Learned).Nicht geprüft
Der Update-Pfad über den Marktplatz (nutzerseitiger Test jetzt) und der „Neuer Ordner“-Knopf nach frischem Import.
PR #245 gemergt: fix(iris-gamebox): config-status meldet den Marktplatz-Vertrag state/message (0.4.1) (#235)
#245
Commits:
Stand iris-gamebox 0.4.1 (Issue #235)
Befund
Alfs Screenshot nach dem Update auf 0.4.0: Die Marktplatz-Kachel meldet „Ungültige Antwort des Plugins: Zustand nil ist weder 'configured' noch 'needs_configuration'“. Kein 0.4.0-Fehler: Iris fragt bei Plugins mit Konfigurationsfenster den Zustand über config-status ab (Vertrag README Kap. 21.5: {state, message}); gamebox meldete seit 0.1.0 das hauseigene {status: gruen|gelb|rot, meldung}. Erst dass 0.3.0 das Plugin durch das Panel configurable machte, ließ die Kachel es abfragen.
Geändert
Geprüft (gemessen)
Fake-HOME: needs_configuration ohne Quellen, needs_configuration ohne Katalog, configured mit Quellen+Katalog; node --check beider Views; Build 44 KB, Fix im Paket verifiziert.
Nicht geprüft
Die Kachel nach dem Einspielen in der echten App (derselbe Abgleich, gegen den Iris-Parser geprüft).
Grenzen
Veröffentlichung erst auf ausdrückliches Wort.