Not everything is work. Even I need to play.
And my idea of relaxing is, of course, turning my game collection into a software project. Steam games, emulators, PC ports, decompilations, fan games and mod packs, all installed, configured and documented by AI agents in one Ansible repository. It runs inside a container, so my Omarchy desktop never sees a single one of their dependencies. On top sits a launcher I wrote, so the whole thing feels like a console.
Fun to Drive: the new Tesla Roadster in an 80s arcade racer
A small game I vibe coded with AI agents. The newly announced Tesla Roadster, cold-air thruster and jump kick included, races down an Outrun-style road on the screen of an 80s toy dashboard, like the Playmates Fun-to-Drive and Tectoy's Turbo Video Driver.
- Pick a two, six or ten minute run and pass as much traffic as you can before time runs out. Each run starts in the season and time of day of your own clock.
- Collect three cold-air charges to fire the thruster, and Jump Kicks to leap over traffic, unless you land on it.
- The toy reacts on the desk: the wheel turns, the gear lever moves, and the whole dashboard jolts when you crash.
- Clear skies, rain and snow, seasonal scenery from sakura to bare winter trees, and backdrops from Tokyo neon to Paris. Watch for the rare ones: a hurricane that lifts traffic, a UFO abduction at night and, if you hold 88 mph, a time machine.
- Play with a keyboard, a gamepad with rumble, or touch. It runs in the browser, written in Rust with Bevy and compiled to WebAssembly.
Old racing games, playable again
Some of my favorite racing games are abandonware: no store sells them, and they won't run on a modern PC without an afternoon of hacks. So I wrote a launcher for each one, with coding agents and my reverse engineering tool, REA. The original game stays untouched. The launcher fixes what aged around it, like graphics, controls, screen and Registry, then adds what a modern PC can do.
You need your own copy of each game. No launcher ships game files.
1995Screamer trilogy
Before Three MS-DOS games. GOG's Screamer 2 ships a Windows Glide stub that doesn't work in DOS, and at full emulator speed the analog controls never register.
- Real 3dfx Glide, with the emulated Voodoo drawing at twice the resolution
- FSR upscaling, Hor+ widescreen and a longer draw distance
- Analog controls and CD music
- Experimental frame generation at 100 fps
1998Colin McRae Rally
Before Made for Windows 95. On my machine it took Registry keys, XP compatibility mode, a screen locked at 800x600 and a keyboard bridge for the gamepad, and it still ran at 800x600 in 4:3.
- 4K, Hor+ widescreen and 60 fps, with the original 25 Hz physics
- HD art redrawn with AI for the HUD, menus, skies, signs and cars
- Up to three times the draw distance
- Triggers as pedals, and rumble
Release v0.8.0SourceThe recomp in RustThe first launcher, in detail
2003Colin McRae Rally 3
Before A washed-out picture, and an official 1.1 executable tied to disc copy protection.
- SilentPatch widescreen at any aspect ratio, with an HD interface in 4K
- Converts the 1.1 executable into the re-releases' DRM-free one
- Anisotropic filtering up to 16x and an adjustable field of view
- An optional color and gamma fix on Linux
2004Colin McRae Rally 04
Before 16:9 shows no extra scenery, the graphics menu stops at 2048x1536 and crashes, and Alt+F4 does nothing.
- 16:9 with the right geometry, through dgVoodoo
- Picks the landscape monitor, and closing the window works
- Analog triggers and a controller that comes configured
- Optional fps cap and vsync
2004Colin McRae Rally 2005
Before Crashes at launch under Wine, and GOG's installer hangs there. The DVD editions use StarForce and aren't supported.
- Installs straight from GOG's installer files
- 16:9 with the game's own wide view
- DXVK on Linux: a stage that ran at about 20 fps now passes 1,000
- Saves in their own folder
2006OutRun 2006: Coast 2 Coast
Before The PC port needs community fixes and its disc DRM removed, and it lost the first two seconds of "Rush a Difficulty".
- OutRun2006Tweaks installed for you, at a fixed, tested version
- 4K, 16x anisotropic filtering and a longer draw distance
- The full "Rush a Difficulty"
- Optional HD textures, rumble and full triggers
2007Colin McRae: DiRT
Before Crashes loading any race on a CPU with many threads, and the community fix resets every graphics setting.
- Its own fix for the many-thread crash, with your settings kept
- Large Address Aware, so the game can use more than 2 GB
- Hard links instead of a second copy of 9 GB
- The Ultra preset in 4K, and native XInput
2007Sega Rally Revo
Before A constant microstutter from two timing bugs in patch 4.060, a black screen on PCs with two GPUs, and a settings tool that fails under Wine.
- A clean-room stutter fix: the race clock stays within 1 ms of real time in 99.9% of frames
- 4K, Ultra quality, 21:9 and 32:9
- A 60 or 120 fps cap
- Native XInput and rumble
2015DiRT Rally
Before Feral's 2017 Linux port crashes at launch on Ryzen 5000 and newer, needs libraries modern Linux dropped, and was pulled from sale in 2022.
- A small Rust library fixes the crash without touching the game
- Brings the old libraries, for the game only
- Skips Feral's pre-launch window and opens in 4K
- Controllers like 8BitDo's show up in the game's own list
They are experimental. I tested each one end to end on Linux, with an RTX 5090 and an Xbox-style controller. None has been tested on native Windows yet, so if you try one there, open an issue with the executable's SHA-256 and the log.
Then the recipe became an SDK
Each launcher started as a copy of the last one, and every copy drifted with its own bugs. So I did what I always tell people to do: build the apps first, then extract the framework. rea-launcher-sdk holds what the launchers share, and it is written for a coding agent to drive.
The order I followed
- Build several projects of the same kind, each one solving its real problem.
- Compare them side by side.
- Refactor until they all stand on the same foundation.
- Only then extract the common parts into a framework.
- 9
- launchers built on it, for 11 games
- 1,223
- tests across the SDK and the launchers, all passing
- 95%
- line coverage of the SDK's own code, 310 tests
- ~4
- hours for each launcher made from the SDK, against 8 to 18 before it
Counted in my post of November 2, 2026.
Make a launcher for your own game
Clone the SDK, add REA to your agent, and point it at your installed game. The agent researches the community fixes, does the reverse engineering and writes the code. It stops at four checkpoints for your decisions and publishes nothing without your approval. It works with Claude Code, Codex, opencode or Cursor.
cd ~/Projectsgit clone https://github.com/akitaonrails/rea-launcher-sdk# REA, the reverse engineering MCPnpx rea-agents setup# Claude Code onlyrea-launcher-sdk/scripts/install-skillsCreate a new rea launcher for Need for Speed: Porsche Unleashed (PC, 2000) using the SDK in ~/Projects/rea-launcher-sdk. Read AGENTS.md, docs/STANDARDS.md and docs/playbooks/new-launcher.md and follow the playbook phase by phase. The game is installed in /mnt/games/NFSPU (read only, never copy it into the repo). Research community fixes first and show me what you found before writing code. Don't push or publish anything without asking me.
An example prompt, adapted from the SDK's README.
AI Assisted Retro-Gaming

The host stays clean
Emulators and Windows games drag in 32-bit libraries, Wine builds, AUR packages and runtime versions that fight each other. None of that touches my desktop. It all lives in one Arch Linux distrobox called gaming, Steam included, and the host keeps only what the desktop needs.

- Steam runs inside the box, with my library and its Proton prefixes on their own disk
- The NVIDIA driver is passed through, and the one 32-bit library edge case is fixed in the launcher, never on the host
- The box renders desktop entries; a small host script validates and installs them, and removes the ones for apps that are gone
- Saves are mirrored to my NAS and restored on demand, so wiping the box loses nothing
Idempotent, so I can break it
Every emulator, config, patch and mod set is an Ansible role. Running the playbook a second time changes nothing, so I can experiment freely, reset a single emulator's settings, or rebuild the whole box from scratch and get the same machine back.
ansible-playbook site.yml # the whole box, from scratchansible-playbook site.yml # again: nothing changesansible-playbook reset-configs.yml --tags esde # reset one frontendansible-playbook backup.yml && ansible-playbook restore.ymlansible-playbook site.yml --tags verify # post-setup checks- 96
- notes in docs/, one per game, port or fix
- 497
- commits since April 11, 2026
AI does the research, and writes it down
For every port, recompilation or stubborn Windows game, an agent researched the sources, wrote the Ansible role and left a note with where to get it, how it is set up and what did not work. Steam games have their own compatibility database under Proton, with each local fix backed by a source.
How to use it
The easiest way is to let an agent do it. Clone the repository, open Claude Code inside it, and tell it which container and games you want. The playbooks and notes are written for exactly that.
git clone https://github.com/akitaonrails/distrobox-gamingcd distrobox-gamingclaudeSet up the gaming container with ES-DE, Dolphin and PCSX2. My ROMs and BIOS files are in /path/to/your/games.
The repository ships no games, ROMs, BIOS or other binaries. You bring your own and tell the agent where they are.
What is in the box
Emulators
ES-DE as the frontend, plus standalone shadPS4, Dolphin, PCSX2, DuckStation, Flycast, xemu, RPCS3, PPSSPP, Azahar, Eden, Cemu, Supermodel and RetroArch with its cores.
Ports, decomps and recomps
Native builds such as Ship of Harkinian, 2Ship2Harkinian, Starship, SpaghettiKart, Render96ex and Unleashed Recompiled.
Windows games
Wine-managed installs and fixes for games like the Metal Gear Master Collection. The old racing games now come in through my own launchers, above.
Mods, reproducibly
NexusMods mod sets per game, DLC and patch installers for PS3 and Switch, and per-game RPCS3 settings.
My own launcher, made for Omarchy
omarchy-games-menu is a Steam-like fullscreen launcher for Omarchy and Hyprland. It reads the desktop entries the gaming repository exports, so a new game shows up by itself, and it puts everything a keybinding away.

- A Rust CLI, ogm, does the scanning, catalog and persistence; a QuickShell overlay draws the grid
- Cover art and metadata from SteamGridDB, and new-release checks on GitHub for ports and recomps
- Sorted by most played, name, date added or release date; type anywhere to filter
- Scales with Hyprland's monitor setting, opens with one key such as Super+G, and games open fullscreen on a dedicated workspace
yay -S omarchy-games-menu-binogm scan && ogm refreshgames-menu # or bind it: bind = SUPER, G, exec, games-menuEverything here is open source
The tools, the skills and the benchmark are public repositories. Fork them and build the version that fits the way you work.
