LastSkywalkerandClaude Opus 5.5 cba8da0ade chore: ignore Playwright MCP session artifacts
The Playwright MCP server drops page snapshots and console logs into
.playwright-mcp/ in the working directory; they are local noise.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 10:06:46 +03:00
2026-10-28 10:35:12 +03:00
2026-10-28 10:35:12 +03:00

🎮 GameSaver

Your game saves, found, versioned and safe — plus a console-style launcher for your Windows gaming PC.

Scans every drive for installed games across all launchers, matches each one to its real save folders, and keeps versioned ZIP backups you can restore in one click. Run it as a PlayStation-style fullscreen shell, drive everything with a gamepad, and stream it all to your TV.

Windows Go Wails React SQLite License: MIT

Console mode — fullscreen gamepad launcher

Console mode: a fullscreen, gamepad-driven launcher that replaces the Windows desktop


✨ Highlights

🔍 Finds every game Steam, GOG, Epic, EA, Ubisoft, Battle.net, Xbox, Riot, Minecraft launchers — plus a heuristic disk walk for standalone installs and repacks.
🧠 Knows where saves live The Ludusavi manifest (53 000+ games) is embedded; ambiguous names are resolved by which save path really exists on disk. A reverse scan finds saves of games that aren't installed anymore.
🗂 Versioned backups Every backup is a ZIP snapshot with a JSON sidecar manifest, de-duplicated by content hash, with keep-N retention. The database can always be rebuilt from the backup folder.
♻️ Safe restore Restoring first snapshots the current save, then writes, then reads every file back and checks it against the archive.
🕹 Console mode Register GameSaver as the Windows shell: logon goes straight into a fullscreen, gamepad-driven launcher with hero art, sounds, a power menu and a monitor picker. A tiny watchdog keeps it alive and always leaves a way back to Explorer.
📺 Couch & streaming Sunshine install/update/pairing and a library sync for Moonlight, Wake-on-LAN for the TV when the pad connects, Bluetooth and audio pickers that work without Explorer.
🎮 Gamepads XInput (all four slots) plus DualShock 4, DualSense and Steam Controller over HID — and the launcher lets go of the pad completely while a game runs.
🔄 Switch saves Back up and restore Nintendo Switch saves over MTP (DBI), backup-gated and read-only by default.
⏱ Playtime & run monitor Last played, total time, sessions; failed game starts are diagnosed instead of leaving you at an empty desktop.
🧹 Storage page Drive usage, per-install sizes and removal (launcher, uninstaller, delete or verified archive) — saves are always backed up first and never deleted.

📸 Screenshots

Library

Library

Every installed game from every launcher in one grid — last played, playtime, save and snapshot counts at a glance.

Game details & snapshots

Game details Snapshots
Installs, matched save folders, play history Versioned snapshots with one-click, verified restore

Backups, storage & stores

Backups Storage
All snapshots — PC and Nintendo Switch Drive usage and safe game removal
Stores Switch saves
Owned + installed games across Steam, GOG and Epic Nintendo Switch saves over MTP, per profile

Settings

Settings Gamepads and streaming
Scanning, backup folder, retention, auto-backup Gamepads and Sunshine → Moonlight streaming

Console mode

Power menu

Lock, sleep, reboot or leave the shell — all from the pad.

The UI is currently mostly in Russian; the English translation is in progress. Screenshots are rendered from mock data (scripts/screenshots/); game art © its respective owners.


🚀 Getting started

  1. Download GameSaver-vX.Y.Z-windows-amd64.zip from the latest release (Gitea · GitHub), unzip it anywhere and run GameSaver.exe. No installer — it is a single portable exe.
  2. Hit Scan. Games, covers and save folders appear as they are found.
  3. Choose a backup folder in Settings (a NAS share works) and press Backup on a game or Backup all. Turn on the watcher if you want backups whenever a save changes.

GameSaver updates itself from the releases page and verifies every download against the release's SHA-256 checksums.

Console mode

Settings → Shell mode downloads the watchdog and registers it as your Windows shell. On the next logon you land in the fullscreen launcher.

Ways back to the normal desktop — always available: Ctrl + Alt + Shift + F12 · the power menu's Exit · gamesaver-watchdog.exe --disable-shell

Backups from the command line

GameSaver.exe --backup "mass effect"   # any unique part of a game's name, or its id
GameSaver.exe --backup all

If GameSaver is running, the backup is done by it (and shows up in the UI); otherwise it runs headless. Exit codes: 0 ok · 1 failed · 2 usage · 3 no answer · 4 GameSaver runs in another Windows session. Handy right before you install mods or as a scheduled task.


🛠 Building from source

Requires Go 1.23+, Node 20+, the Wails CLI v2.12 and a C compiler (MinGW-w64 UCRT works).

git clone https://gitea.sky-apps.uk/LastSkywalker/GameSaver.git
cd GameSaver
wails build        # → build/bin/GameSaver.exe
wails dev          # hot-reload development

Releases are built by CI on every v* tag (app zip, watchdog exe and checksums.txt).

Tool in cmd/ What it does
gs-smoke Runs the whole scan pipeline once and prints a report, no UI.
gs-reconcile Rebuilds the database from the backup folder's sidecar manifests.
gs-hid Lists HID gamepads and dumps raw reports next to the parsed frame.
gs-switch Nintendo Switch MTP harness (read-only unless asked otherwise).
gs-fixtures, gs-fakegame Lay out a fake multi-launcher library and a stand-in game exe for testing in a VM.
gamesaver-watchdog The shell-mode supervisor.

Tech stack

Go 1.25 · Wails v2 (WebView2) · React 18 + TypeScript + Vite + Tailwind · modernc.org/sqlite (no cgo for the driver) · Win32 via syscalls (XInput, HID, display, power, WPD) · minio/selfupdate.


📁 Where things are kept

What Where
Database (a cache — rebuildable) %LOCALAPPDATA%\GameSaver\gamesaver.db
Settings %APPDATA%\GameSaver\settings.json
Covers cache %LOCALAPPDATA%\GameSaver\cache\covers\
Logs (JSON) %LOCALAPPDATA%\GameSaver\logs\gamesaver.log
Backups the folder you choose (default C:\GameSavesBackup\)

A backup is <game-slug>\<timestamp>__<hash>.zip plus a sibling .json manifest with the file list, hashes and game metadata — enough to reconstruct everything if the database is lost.

📄 License

MIT © LastSkywalker. The embedded Ludusavi manifest is MIT-licensed by its authors.


Made for a couch, a TV and a gamepad. 🛋️

S
Description
No description provided
Readme MIT
12 MiB
0 Stars 1 Watchers 0 Forks
2026-10-28 09:58:08 +03:00
Languages
Go 58.9%
TypeScript 35.8%
JavaScript 3.7%
NSIS 0.8%
CSS 0.5%
Other 0.2%