4.8 KiB
4.8 KiB
date-created, date-modified
| date-created | date-modified |
|---|---|
| 2026-10-21 08:47 | 2026-10-21 09:26 |
RetroArch on Zeus design tree
Facts
- Zeus is an
x86_64-linuxdesktop with AMD graphics, 32-bit graphics support, Bluetooth, Hyprland, and Home Manager. - Nixpkgs provides
pkgs.retroarch.withCoresfor an explicit set of Libretro cores. - Nixpkgs provides
pkgs.retroarch-freeandpkgs.retroarch-fullfor broad core sets. - The packaged RetroArch version is 1.22.2 and includes Cloud Sync on Linux.
- Linux Cloud Sync uses a WebDAV endpoint.
- RomM requires RetroArch 1.22 or newer for this integration.
- RomM documents configuration synchronization as part of its Cloud Sync setup.
- Cloud Sync supports saves, configuration, thumbnails, and system files as separate categories.
- RomM matches a save or state to a ROM by its file name without the extension.
- Local ROM files must use the same names as their RomM library records.
- RomM 5.4 provides a WebDAV endpoint for RetroArch Cloud Sync.
- The endpoint is
https://games.alexion.dev/api/sync/retroarch/. - RomM stores its ROMs and BIOS files on Pikachu.
Constraints
- Install RetroArch on Zeus.
- Start with PlayStation and Sega Saturn cores.
- Evaluate RetroArch Cloud Sync.
- Keep package selection declarative.
- Keep credentials out of the Nix store and version control.
Decision tree
- D1 — Initial core selection [settled]
- Use
beetle-psx-hwfor PlayStation. - Use
beetle-saturnfor Sega Saturn. - D4 — Core package viability [settled]
- Both core packages support
x86_64-linux. - Neither package is marked broken or unfree.
- Both core packages support
- D5 — Package composition [settled]
- Build a RetroArch wrapper with
beetle-psx-hwandbeetle-saturnonly.
- Build a RetroArch wrapper with
- Use
- D2 — Cloud Sync data scope [settled]
- Sync saves, states, and configuration.
- Do not sync thumbnails or system files.
- D6 — Sync endpoint [settled]
- Use RomM's RetroArch WebDAV endpoint.
- D7 — Sync identity [settled]
- Use the existing RomM account.
- D15 — Credential injection [settled]
- Store the RomM password in RetroArch's writable user configuration.
- D8 — Synchronization mode [settled]
- Synchronize automatically at startup and after play sessions.
- D16 — Launch order [settled]
- Do not add a game-launching frontend.
- Start RetroArch before loading local ROM content.
- D9 — Conflict and destructive-sync policy [settled]
- Use non-destructive synchronization.
- RetroArch backs up a local file when RomM reports its deletion.
- D3 — ROM and firmware access [settled]
- Keep ROMs and BIOS files locally on Zeus.
- D10 — Mount or replication method [settled]
- Do not configure a remote mount or replication method.
- D11 — RetroArch directory settings [settled]
- Use
~/.local/share/retroarch/. - Use
roms/,system/,saves/, andstates/subdirectories. - Keep saves and states outside the content directory.
- Sort saves and states into per-core folders.
- Use
- D12 — User-configuration policy [settled]
- Nix declares the package, cores, and directory defaults.
- RetroArch manages and synchronizes its writable configuration.
- D13 — User-facing integration [settled]
- Do not add a user-facing integration beyond RetroArch's desktop entry.
- D14 — Validation [settled]
- Verify the NixOS evaluation and a manual Cloud Sync round trip.
Frontier
No decisions remain open.
Decision log
- D13: Do not add a user-facing integration beyond RetroArch's desktop entry.
- D16: Do not add a game-launching frontend. Start RetroArch before loading local ROM content.
- D14: Verify the NixOS evaluation and a manual Cloud Sync round trip.
- D12: Nix declares the package, cores, and directory defaults. RetroArch manages and synchronizes its writable configuration.
- D11: Use
~/.local/share/retroarch/withroms/,system/,saves/, andstates/subdirectories. - D9: Use non-destructive synchronization.
- D8: Synchronize automatically at startup and after play sessions.
- D15: Store the RomM password in RetroArch's writable user configuration.
- D5: Build a RetroArch wrapper with
beetle-psx-hwandbeetle-saturnonly. - D3: Keep ROMs and BIOS files locally on Zeus.
- D10: Do not configure a remote mount or replication method.
- D7: Use the existing RomM account.
- D7 note: RomM accepts API client tokens as Bearer authentication. RetroArch Cloud Sync only supports WebDAV Basic authentication.
- D6: Use RomM's RetroArch WebDAV endpoint.
- D2: Sync saves, states, and configuration. Do not sync thumbnails or system files.
- D11: Keep saves and states outside the content directory. Sort them into per-core folders.
- D1: Use
beetle-psx-hwfor PlayStation andbeetle-saturnfor Sega Saturn. - D4: Both selected core packages support Zeus and have no broken or unfree package status.