So will das Thema noch mal aufrollen, da ich das grade umgesetzt habe und es fast das ist was ich wollte .
Dazu auch gleichmal eine Erkläung wie ich es umgesetzt habe,
RomM auf der Synology NAS – browserbasierte Amiga/C64-Bibliothek
Vorstellung meines Retro-Gaming-Setups (DS1618+) – für alle, die auch ihre Sammlung zentral und browserbasiert spielbar machen wollen
Warum RomM statt AmigaOS in der VMM?
Mein ursprünglicher Plan war, Commodore OS Vision als virtuelle Maschine in der Synology VMM laufen zu lassen. Das ist leider gescheitert – der Synology VMM fehlt die 3D-Beschleunigung, wodurch Compiz in einer Absturzschleife hing und an ein brauchbares Desktop-Erlebnis nicht zu denken war.
Also bin ich auf einen komplett anderen Ansatz umgestiegen: RomM, eine selbstgehostete ROM-Verwaltung, die im Zusammenspiel mit EmulatorJS direkt im Browser läuft. Kein Client, keine Installation auf dem Spiele-PC – einfach URL aufrufen und loslegen, von jedem Rechner im Netz (oder per VPN von unterwegs).
Projektseite: github.com/rommapp/romm
Offizielle RomM-Vorschau: Bibliotheksansicht am Desktop (Quelle: RomM-GitHub-Repo)
Architektur / Zugriff
- RomM läuft als Docker-Container-Set (romm + MariaDB) über den Container Manager der Synology
- Zugriff im Heimnetz per Browser über die interne NAS-IP auf dem gemappten Port
- Für unterwegs: WireGuard-VPN zur NAS, danach dieselbe Adresse – der RomM-Port ist bewusst nicht direkt aus dem Internet erreichbar
- EmulatorJS läuft komplett im Browser – die eigentliche Emulation passiert clientseitig, RomM liefert nur ROMs, Metadaten und Cover
Auch die Mobile-Ansicht ist voll nutzbar (Quelle: RomM-GitHub-Repo)
Ordnerstruktur auf der NAS
- /volume1/docker/.../romm/library/roms/amiga/ ← Amiga-Spiele (.adf)
- /volume1/docker/.../romm/library/roms/c64/ ← C64-Spiele (.d64 etc.)
- /volume1/docker/.../romm/library/bios/amiga/ ← Kickstart-ROMs
- /volume1/docker/.../romm/resources
- /volume1/docker/.../romm/redis-data
- /volume1/docker/.../romm/mariadb-data
Wichtig: Der komplette romm-Ordner musste in der File Station für "Alle" auf Lesen+Schreiben (rekursiv) gesetzt werden – sonst bricht MariaDB beim Start mit "Permission denied" auf ddl_recovery.log ab.
Docker-Compose (Kurzfassung, ohne Zugangsdaten)
Zwei Services: eine MariaDB (11.8-noble) als Datenbank und der eigentliche romm-Container (rommapp/romm:latest), der Port 8080 intern auf 7676 nach außen mappt. Die drei Library-Ordner (resources, redis-data, library) werden als Volumes eingebunden. Wichtig für alle, die ScreenScraper noch nicht freigeschaltet haben:
SCREENSCRAPER_USER und SCREENSCRAPER_PASSWORD sollten auskommentiert bleiben, bis der Zugang wirklich funktioniert (siehe Bug-Beschreibung unten) – als Ersatz reicht HASHEOUS_API_ENABLED: "true" für brauchbare Metadaten.
Zwei Bugs gefunden, gemeldet und (teilweise) gelöst
1. Gelöst: Einzeldatei-Spiele ließen sich nicht starten
Symptom: Beim Klick auf "Spielen" kam ein Network Error bzw. 404, im Hintergrund meldete die API "No files found for ROM <id>".
Ursache: Beim Scan versuchte RomM automatisch, Metadaten von ScreenScraper zu holen. Weil meine Zugangsdaten nicht funktionierten ("Ungültiger API-Schlüssel"), brach der Scan pro Spiel ab – bevor die Datei mit dem Datenbankeintrag verknüpft wurde. Der Spiele-Eintrag existierte also, aber ohne Datei-Verknüpfung.
Fix: ScreenScraper-Zugangsdaten aus der YAML entfernt, Projekt neu gebaut, alte kaputte Bibliothekseinträge aus der DB gelöscht (nicht die Dateien!) und neu gescannt. Seitdem laufen Einzeldatei-Spiele einwandfrei.
2. Gelöst und bestätigt: Mehrdisketten-Spiele – "Unsupported file format: ''
Symptom: Bei Spielen aus mehreren Dateien in einem Unterordner (z. B. roms/amiga/B.A.T./B.A.T. Disk1.adf + Disk2.adf) erschien beim Start sofort "Unsupported file format: ''" im EmulatorJS-Overlay.
Ursache: Der Player leitete die Datei-URL vom Ordnernamen der ROM ab statt vom tatsächlich ausgewählten Dateinamen. Bei Mehrdatei-ROMs hat der Ordner keine Dateiendung, daher die leere ''.
Ich habe dazu
Issue #3746 eröffnet. Der Fix wurde über
PR #3844 gemergt.
Bestätigt: RomM 5.0.0 (vor dem Fix) hatte den Bug noch. Mit
RomM 5.1.0 funktioniert es – ich habe "Wing Commander" mit 3 Disketten im Unterordner erfolgreich getestet, inklusive Diskettenwechsel im Emulator-Menü. Der bisherige Workaround (flache Einzeldateien statt Unterordner) ist damit hinfällig – Mehrdisketten-Spiele können jetzt ganz normal in eigenen Unterordnern liegen.
3. Weiterhin offen: "Installierte"/WHDLoad-Amiga-Spiele starten nicht
Das betrifft meine große Sammlung "installierter" Amiga-Spiele im WHDLoad-Format (ca. 200–300+ Spiele, alphabetisch sortiert). Egal ob als selbstgebautes .hdf oder als .lha-Archiv (dem eigentlich vorgesehenen Format) – der Amiga-Kern stürzt beim Start zuverlässig mit einer WASM-Runtime-Exception ab ("RuntimeError: unreachable" / "Aborted(undefined)").
Ich habe das außerhalb von RomM isoliert nachgebaut – mit den unveränderten EmulatorJS-Quellen, dem echten Amiga-Kern (@emulatorjs/core-puae) und einem echten Kickstart-ROM, automatisiert getestet. Der Absturz reproduziert sich zuverlässig, unabhängig vom Dateiformat, immer an derselben Stelle: direkt nachdem der Kern sein internes WHDLoad-Hilfssystem entpackt hat – noch bevor er das eigentliche Spiel anfasst.
Damit ist klar: Das ist ein reproduzierbarer Bug im WHDLoad-Startmechanismus des Amiga-Kerns selbst, kein RomM-Problem. Auch nach dem Update auf 5.1.0 weiterhin bestätigt kaputt. Issue dazu:
EmulatorJS/EmulatorJS#1240 (offen, noch keine Reaktion der Maintainer – bei einem kleinen Open-Source-Team normal). Reine Disketten-Spiele (.adf, auch Mehrdisketten) sind davon nicht betroffen.
Falls hier jemand Erfahrung mit dem puae-Core oder WHDLoad-Booting in EmulatorJS hat – ich freue mich über jeden Hinweis!
Steuerung
- Tastatur funktioniert ohne weitere Einrichtung (Standardbelegung meist Pfeiltasten + X/Z/Leertaste)
- Echtes Gamepad/Joystick per USB/Bluetooth an den PC (nicht die NAS) – der Browser erkennt es automatisch über die Gamepad-API
- Arcade-Titel wie Ghosts 'n Goblins brauchen praktisch einen Joystick, Point-and-Click wie Monkey Island funktioniert gut mit der Maus
Kurz zusammengefasst
Einzeldatei-Spiele: laufen einwandfrei
- Mehrdisketten-Spiele (.adf, Unterordner): laufen seit RomM 5.1.0 einwandfrei
- WHDLoad-"installierte" Spiele: pausiert, bis der Bug im Amiga-Kern behoben ist
- Falls Interesse besteht, kann ich gerne noch mehr Details zur Docker-Compose, zum ScreenScraper/Hasheous-Setup oder zur Ordnerstruktur nachreichen. Über Rückmeldungen, ob jemand von euch RomM schon mit Amiga-Inhalten nutzt oder sogar Erfahrung mit dem WHDLoad-Bug hat, würde ich mich sehr freuen!
Viele Grüße, Fauli085
PS ja ich habe die KI zu Hilfe genommen um das Aufzusetzen 