SyncThing: Synchronisieren von Savegames auf Anbernic Retro-Handhelds


Syncthing mit Batocera und einem Synology NAS

Wenn du Retro-Handhelds oder Raspberry Pis mit vielen ROMs und Savegames besitzt, kann Syncthing dir helfen, die Speicherstände und Spiele über alle deine Geräte zu synchronisieren wie dem Anbernic RGXX35 Plus (kaufen) und ein Backup zu erstellen. Am einfachsten geht das mit Batocera Linux und einem Synology NAS. Das funktioniert zuverlässiger als Lösungen über Dropbox oder Google Drive und ist einfacher einzurichten als das komplexe rclone.

Syncthing ist ideal für Spielstände

Der ideale Anwendungsfall für Syncthing ist das Sichern und Synchronisieren von Spielständen der ROMs. So hast du auf jedem Gerät denselben Spielstand zur Hand. Solange die Geräte Internetzugang haben, werden die kleinen Dateien innerhalb von Sekunden synchronisiert.

Syncthing: Unser Szenario für den Abgleich der Spielstände.
Syncthing kann alle Knoten miteinander abgleichen.

Was ist Syncthing und was nicht?

Syncthing ist ein Programm zur Dateisynchronisation, das Dateien in Echtzeit zwischen zwei oder mehr Computern über das Internet oder lokale Netzwerke abgleicht. Dafür müssen nicht zwingend Ports geöffnet werden. Es läuft auf verschiedenen Betriebssystemen, darunter Windows, macOS und Linux, und ist somit eine vielseitige Lösung für Nutzer verschiedener Plattformen.

Die Software schützt Daten effektiv vor unbefugtem Zugriff, indem sie die Kontrolle über Speicherort, Teilung und Übertragung der Daten dir überlässt. Syncthing ist ein Open-Source-Projekt und hat keine direkte Anbindung an Cloud-Dienste, sondern synchronisiert zwei oder mehr Geräte permanent.

Batocera auf dem RGXX35 Plus. Syncthing is nur ein Haken im Menü.
Batocera auf dem Anbernic RGXX35 Plus (kaufen). Syncthing is nur ein Haken im Menü.

Die Einschränkungen beim Einsatz von Syncthing

Beim Einsatz von Syncthing gibt es einige Herausforderungen. Es kann nicht auf jedem System installiert werden. Bei Retro-Handhelds wird oft ein Linux eingesetzt, bei dem das Dateisystem eingefroren ist. Bisher habe ich nur Batocera gefunden, das offiziell Syncthing als Plug-in integriert hat. Bei Geräten wie dem Steam Deck oder unter Windows oder macOS ist die Installation von SyncThing kein Problem. Beispielsweise unterstützt mein Anbernic RG351V kein Batocera und nur AmberELEC, welches kein Syncthing unterstützt. Dasselbe gilt für ArkOS, Lakka und im Prinzip alle außer Batocera.

Unterschiedliche Ordnerstrukturen

Die Ordnerstruktur der Speicherstände variiert stark zwischen den Systemen. Bei Batocera werden sie nach dem emulierten System abgelegt, während bei RetroArch alle Spielstände in einem Verzeichnis liegen. Das erschwert die Synchronisation zwischen RetroArch und Batocera. Dasselbe gilt für EmuDeck auf dem Steamdeck, das seine Spielstände wiederum anders ablegt.

Batocera

Die Savegames und savestates werden analog der ROM-Ordnerstruktur erzeugt.

saves
├── gba
│   └── Advance Wars (USA) (Rev 1) (patched).srm
├── dreamcast
├── snes
│   └── Chrono Trigger (USA).srm
└── psx

AmberELEC

AmberELEC macht es meiner Meinung nach maximal ungünstig und erstellt die Savegames direkt neben den ROMs. Ich habe keine Option gefunden, das zu ändern.

roms
├── gba
│   └── Advance Wars (USA) (Rev 1) (patched).gba
│   └── Advance Wars (USA) (Rev 1) (patched).srm
├── dreamcast
├── snes
│   └── Chrono Trigger (USA).sfc
│   └── Chrono Trigger (USA).srm
└── psx

RetroArch (SteamDeck)

Alle savesgames und savestates sind in einem „save“ Verzeichnis.

saves
├── Advance Wars (USA) (Rev 1) (patched).srm
└── Chrono Trigger (USA).srm

RetroArch: Spielstände nach Verzeichnis der Inhalte organisieren

Die Ordnerstruktur der Spielstände kann man unter RetroArch unter Settings->Saving konfigurieren. Dazu aktiviert man die beiden folgenden Optionen:

  • Sort Saves into Folders by Content Directory
  • Sort Save States into Folders by Content Directory

Nun müssen die ROMs allerdings analog der Ordnerstruktur der Spielstände anderer Systeme wie Batocera abgelegt werden. Ich habe einfach alles genau so angelegt wie in Batocera:

saves
├── gba
│   └── Advance Wars (USA) (Rev 1) (patched).srm
├── dreamcast
├── snes
│   └── Chrono Trigger (USA).srm
└── psx

Falls man schon vorher Spielstände in RetroArch angelegt hatte, dann muss man die Spielstände per Hand migrieren.

Syncthing unter Batocera und Synology NAS einrichten

Ein NAS oder ein anderes ständig eingeschaltetes Gerät ist erforderlich, um zu vermeiden, dass alle Geräte gleichzeitig eingeschaltet sein müssen. Zwar ermöglicht Syncthing die direkte Synchronisation zwischen allen Knoten im Netzwerk, aber es ist praktisch nicht durchführbar, alle Geräte durchgehend laufen zu lassen. Ein NAS dient hier als zentraler Knoten, der ständig aktiv bleibt und so die Verfügbarkeit der Daten für alle anderen Geräte sicherstellt.

Schritt 1: Syncthing aktivieren
Aktiviere zuerst Syncthing unter Batocera in den Einstellungen unter System Settings -> Services -> Syncthing.

Schritt 2: Gerät neustarten und verbinden
Starte das Gerät neu und verbinde es mit einem WLAN.

Schritt 3: IP-Adresse notieren
Notiere die IP-Adresse des Gerätes unter Network Settings -> IP Address.

Schritt 4: Syncthing-Web-Oberfläche öffnen
Öffne die Syncthing-Weboberfläche unter <IP-Adresse>:8384.

Syncthing: Die Weboberfläche ist einfach aufgebaut.
Syncthing: Die Weboberfläche ist einfach aufgebaut.

Schritt 5: Lokales Verzeichnis hinzufügen
Füge mit „Add Folder“ ein lokales Verzeichnis zur Synchronisierung hinzu:

  • Folder Name: „Spielstände“
  • Folder ID: (nicht ändern)
  • Folder Path: /userdata/saves/
    Achtung: Der Folder Path ist entscheidend und bei jedem System unterschiedlich. Nutze die Autovervollständigung, um Fehler zu vermeiden.

Schritt 6: Device ID notieren
Notiere unter Actions -> Show ID die Device ID des Handhelds für später.

Schritt 7: Syncthing auf Synology NAS installieren
Installiere Syncthing auf einem Synology NAS über das Package Center von DSM.

Schritt 8: NAS-Weboberfläche zugreifen
Greife auf die Weboberfläche des NAS unter <IP-Adresse NAS>:8384 zu.

Schritt 9: Gerät hinzufügen
Wähle „Add Remote Device„, gib die Device ID des Syncthing vom Handheld ein und vergebe einen Namen. Ohne „Auto Accept“, um automatische Ordnererstellung zu vermeiden.

Schritt 10: Vertrauenswürdiges Gerät bestätigen
Bestätige auf der Weboberfläche von Syncthing auf dem Handheld, dass das Synology NAS als vertrauenswürdiges Gerät akzeptiert wird.

Schritt 11: Ordner teilen
Teile den Ordner „Spielstände“ auf dem Handheld unter Edit -> Sharing mit dem NAS.

Schritt 12: Freigabe akzeptieren und lokalen Pfad vergeben
Akzeptiere auf der NAS Syncthing-Oberfläche diese Freigabe und vergebe einen lokalen Pfad wie /volume2/SSD/syncthing/saves/.

Schritt 13: Fertig!

Zusammenfassung und Tipps

Auf demselben Weg kannst du nun weitere Geräte wie einen Raspberry Pi mit Batocera einbinden und weitere Verzeichnisse wie „bios“ oder die Roms freigeben. Dafür habe ich nicht einfach den Hauptordner „roms“ geteilt, sondern ich habe die Systeme wie „snes“, „psx“, „n64“ und so weiter einzeln in Ordnern organisiert. Denn nicht jedes Gerät hat viel Speicher und die Anbernic Handhelds können nicht ausreichend schnell Nintendo 64 Spiele emulieren. Zudem benennen manche Firmwares die Ordner für dasselbe System unterschiedlich. Beispiel ist „dreamcast“ und „dc“. Wenn es aber passt, dann kann man auf dem NAS die ROMs in die Ordner legen und beim Einschalten der Handhelds, werde diese dann übertragen. Wirklich cool. Ab jetzt nutze ich nur noch Emulationsbetriebssysteme für meinen Anbernic RGXX35 Plus (kaufen), die auch Syncthing unterstützten. Und das ist bislang nur Batocera Linux.


Beitrag veröffentlicht

in

von

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert