
Summary
The first thing a retro console project needs is a gaming controller, but that’s a bit of a problem for me. An old injury left my left thumb with enough movement to smash a space bar, and that’s about it. Needless to say, analog controller sticks are pretty much out of the question. That doesn’t mean I didn’t get my fair share of pointing, clicking, and rummaging through inventories. I wanted a retro gaming PC built around a keyboard and mouse, so I installed Batocera on a spare Zotac mini PC. Doom was obviously the first to be tested, then Sonic and Beneath a Steel Sky joined the collection. I even got Deus Ex running through Steam. A dedicated retro gaming box deserves a place on my desk, even if it keeps forgetting I’m not holding a gamepad. My old Zotac had enough power once I ditched the USB stick The first bottleneck appeared before I’d launched a game My spare Zotac had already done a few different jobs around the homelab, so I already knew I was working with some modest hardware:
- Intel Celeron N3160 processor
- 8GB of RAM
- A 120GB SATA SSD
This was perfectly fine for the older games I wanted to revisit. I installed Batocera, which is a gaming-focused Linux distribution similar to Retropie. It brings emulators and game launches together for one smooth behind-the-scenes interface, and booting straight into my game library was part of the appeal.
Getting there did take a bit longer than I expected. I initially just wanted to boot Batocera from a USB stick, but after watching the installation crawl along for 45 minutes, I knew something was wrong. A splash did finally appear, followed by a blank display. Even logging in via SSH was painfully slow.
When the game menu did finally arrive, it barely responded. I checked what was going on over SSH:
vmstat 1 5
That printed a summary with four samples one second apart. In those samples, I could see the I/O wait time sat between 86%
and 75%
. That pointed toward a defective USB stick. So I installed a spare SSD into the Zotac and served the downloaded image from my laptop over the local network. I then wrote it to the newly installed SSD.
After removing the USB drive and attempting the installation via the SSD, the entire setup took only 30 seconds. The difference was obvious immediately, with the game menu and interface being far more responsive. It was finally time to get on with playing.
Batocera.linux - OS
- x86-64 PCs, ARM devices, Raspberry Pi, Steam Deck, and other supported hardware
- Developer
- Batocera.linux Project Batocera Linux is a free, open-source operating system that turns compatible PCs and single-board computers into retro gaming machines. It brings emulators, game engines, and a browsable game library together in one interface.
- Price model
- Free and open-source The games built for a desk made the strongest case Pointing, clicking, and shooting felt right with the peripherals I already had The dystopian cyberpunk game Beneath a Steel Sky” was my first proper test. I ran it through ScummVM, which uses the original game data to run supported adventure games on much newer systems. I copied over the files into Batocera’s ScummVM folder and added a launcher so it appeared in the library. Then I got stuck in the opening sequence. I tried every key combination except the one I should have used to skip it — Esc. With that minor embarrassment behind me, clicking to move around worked exactly as I hoped it would. The mouse already belonged to this game, and it felt native. It didn’t take long to just settle in without having to guess what key translated to what button on a controller. Doom (because of course Doom) gave me something faster to try. Batocera’s included shareware version ran through PrBroom, a more modern adaptation of the original Doom engine. The games I enjoyed most were already built around the controls I could use. With the keyboard-and-mouse controls working exactly as I remembered them, I could move around and play comfortably. Between this and a beloved adventure game, I already had more than enough reason to keep these peripherals plugged in. Steam gave me a reason to stay longer Deus Ex turned an optional experiment into one of the best parts of the build I’d already collected enough games to call the initial retro project a success:
- Beneath a Steel Sky
- Doom
- Sonic the Hedgehog 2
- Super Mario 64
- Grand Theft Auto DOS version
- Prince of Persia
- Age of Empires II I then noticed Batocera’s Steam section and a thought ran through my head: Could this little box play my all-time old school favorite game, Deus Ex? I installed Steam through Flatpak using two commands over SSH. The first added Flathub, the repository supplying the application: flatpak remote-add —if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo The second step installed Steam and prompted for its supporting dependencies: flatpak install flathub com.valvesoftware.Steam I also installed Proton and the Linux Steam runtime. Proton is the compatibility software that allows a lot of Windows games to happily run on Linux through Steam. Finding the Steam launcher involved a ridiculous and hilarious detour. Since I had already run Batocera’s Scraper, which retrieves game names and artwork, the Steam launcher had mysteriously become renamed Arcanum: Of Steamworks and Magick Obscura. While looking for the missing launcher, I discovered that behind this mystery RPG game that I hadn’t installed was indeed the Steam launcher itself. A rename fixed the issue. Once Steam finished updating, I installed Deus Ex: Game of the Year Edition from my own Steam account. It launched without problems, and the gameplay not only felt smooth but brought back a lot of happy memories. Obviously, I won’t be playing Cyberpunk 2077 or Red Dead Redemption on my Batocera box any time soon, but it has given me a chance to revisit some of my favorites. The keyboard worked, but the controller assumptions stayed Console games were playable once I learned what the buttons meant Sonic the Hedgehog brought the memories back immediately. Super Mario 64 needed a bit more adjustment. Its keyboard mappings were all over the place, but once I’d worked them out, it was still comfortable to play. My old copy of the original GTA DOS version joined the collection too, but with equally strange key assignments. The Batocera launcher was sometimes even more confusing than the games, mostly because it also assumed I had a controller in my hands. The UI itself shows gamepad symbols for navigation while I stared down at my keyboard, poking blindly at letters to figure out which one opened a menu. I ended up making a small cheat sheet for the default interface controls: | Controller prompt or action | Keyboard equivalent | | D-pad / navigate | Arrow keys | | Bottom face button / confirm | Enter | | Bottom face button held / game options | Hold Enter | | Right face button / back | Esc | | Left face button / contextual action | Minus (-) | | Top face button / contextual action | Equals (=) | | Start / main menu | Space | | Select / list or system options | Backspace | | File manager | F1 | A controller would definitely feel more natural on Batocera, especially given the collection of mostly console games. The prompts would certainly make a lot more sense. For me, the best experience came from games already designed around a keyboard and mouse. Batocera just consolidated them all for me on one machine, connected to my TV. I’d keep this little box on my desk The collection is more important to me than recreating a living room console My finished list of games gave this mini-project a satisfying end. I had a small collection I actually wanted to play, gathered into a single interface on a machine dedicated to the job. An ordinary PC, of course, could run these games too with something like Retroarch. What appealed to me was placing them all on a single spare PC with a specific purpose. I could boot it up and not get distracted by notifications, social media, or emails. Its existing hardware handled the games I loved just fine. The PC classics felt natural with the keyboard and mouse, and Steam was a nice bonus. Getting there took a little tinkering. The defective USB drive was frustrating, but ultimately led to the retro gaming box becoming a permanent fixture beside my TV. Now I have a tiny gaming box that works with controls I can actually use. Returning to familiar games was the point, and getting old favorites running like GTA and Deux Ex have given me more than enough reason to keep this setup plugged in.