Retro Gaming in the Living Room: Building a RetroArch + EmulationStation Console in the Wake of Steam Machine Hype
A practical deep dive into setting up a retro gaming console with RetroArch and EmulationStation — real examples, comparisons, and setup guides.
Retro Gaming in the Living Room: Building a RetroArch + EmulationStation Console in the Wake of Steam Machine Hype
Valve’s Steam Machine launch today is a curious bookmark in the history of living-room gaming. It wasn’t just a hardware release; it was a reminder that the idea of a single box running everything, plugged into your TV, is still alive. The hype faded, the hardware didn’t become a mass-market standard, but the underlying concept didn’t die. Today you can replicate that vibe with much simpler, much cheaper gear: a Raspberry Pi or a compact PC, paired with RetroArch and EmulationStation. In this guide I’m going to walk you through setting up a retro gaming console using RetroArch and EmulationStation, with practical steps you can actually follow. I’ll anchor the setup in today’s news cycle and show you how the landscape changed since the Steam Machine era.
Why today’s news matters for retro setups
The Steam Machine era demonstrated that people want living-room-ready hardware that can double as a PC and a game console. It was a bold bet that desktop power could live in the living room, but the project fizzled for a lot of practical reasons. Fast forward a few years, and a different ecosystem is flourishing: affordable single-board computers, open-source frontends, and streamlined installation guides. The result is a workflow that’s not about chasing a monolithic “Steam Box” but about composing a modular stack that fits your space, budget, and legal ROMs you actually own.
What changed, concretely:
- Hardware is cheap and flexible. A Raspberry Pi 4 with 4GB or 8GB of RAM can run most classic systems smoothly, and it can host a more ambitious setup if you’re willing to tune cores.
- Frontends have matured. RetroArch provides the cores; EmulationStation offers the UI. Together they give you a cohesive experience without needing a heavy desktop environment.
- You can roll your own cab or keep a compact box. A Raspberry Pi with a small power draw is perfect for a coffee-table setup; a repurposed PC works for 4K CRT-style nostalgia or more demanding PSX/PS2 titles—though you’ll likely favor lighter cores on Pi.
- ROM management is more manageable. With network sharing, external drives, and clear folder structures, you can keep ROMs organized across devices and keep the device footprint small.
If you’re reading this, you probably want two things: a clean, reliable frontend UX and a robust set of emulators that leverages RetroArch’s cores. RetroArch is the workhorse; EmulationStation is the face your thumbs see when they pick a system to play. Let’s set one up.
What you’ll need (quick start)
- Hardware (choose one):
- Raspberry Pi 4 or Pi 400 (4–8 GB RAM recommended for smoother PSX/PS2 emulation with the right cores)
- A small PC with HDMI output (Intel/AMD, discrete GPU optional)
- External USB drive for ROMs and BIOS files (optional but handy)
- Storage:
- microSD card (16–64 GB minimum for Pi, larger if you’re loading a lot of ROMs)
- Or SSD/HDD if you’re on a PC or Pi with USB boot
- Input:
- USB gamepad or a wired/Xbox/PS-style controller (prefer a modern controller for robust input support)
- OS/software route:
- Route A (manual): Raspberry Pi OS Lite (or Desktop) + RetroArch + EmulationStation
- Route B (prebuilt): RetroPie or Batocera (they ship with RetroArch/EmulationStation ready-to-go)
- Route C (minimalist): Lakka or a dedicated RetroArch build
- ROMs and BIOS:
- Use legally obtained ROMs or homebrew. Do not download ROMs you don’t own. Some cores require BIOS files; store BIOS in the appropriate RetroArch/system folder and respect licenses.
- Network/storage:
- A network share (Samba/SMB) or a USB drive for ROM collection
- Optional: external ROM folder mounted at boot for a clean path
Practical routes and what to pick
- Route A: Manual RetroArch + EmulationStation on Raspberry Pi OS
- Pros: maximum control, small footprint, no extra layers
- Cons: a few more steps to configure, care about BIOS paths and roms
- Route B: RetroPie
- Pros: straightforward, large community, lots of documentation, EmulationStation is the default frontend
- Cons: a bit opinionated about layout; not as “vanilla” RetroArch + EmulationStation experience
- Route C: Batocera/Lakka
- Pros: nearly plug-and-play, excellent for a dedicated retro box
- Cons: less flexible if you want to mix modern apps or toggling between Media Center and RetroArch
I lean Route A for the fun of assembling things from scratch. It teaches you where the files live and how the system boots, which is useful if you ever want to tweak startup behavior or add custom frontends.
A practical start: a minimal manual setup on Raspberry Pi OS
This is a compact walkthrough you can actually run today. It uses the Raspberry Pi OS repository versions for reliability, but you can swap in newer RetroArch or EmulationStation versions if you’re comfortable compiling.
1) Prepare the board
- Write Raspberry Pi OS to your microSD and boot.
- Update and upgrade:
- sudo apt-get update
- sudo apt-get upgrade -y
2) Install RetroArch and EmulationStation
- Install RetroArch:
- sudo apt-get install retroarch -y
- Install EmulationStation:
- sudo apt-get install emulationstation -y
Note: If your distribution has older versions, you can add RetroArch from RetroArch’s own builds or compile from source. For a calmer start, the stock repos are fine.
3) Organize ROMs and bios paths
- Create a ROM directory. EmulationStation expects a ROMs folder. A simple approach is:
- mkdir -p ~/EmulationStation/roms
- mkdir -p ~/EmulationStation/roms/nes
- mkdir -p ~/EmulationStation/roms/snes
- Place ROMs in the matching subfolders (nes, snes, gba, etc.). EmulationStation will scan these folders on startup.
- BIOS files (if needed) go under RetroArch’s system folder:
- mkdir -p ~/.config/retroarch/system
- Put BIOS files there. Make sure you have the right licenses for BIOS files.
4) First run and controller setup
- Start EmulationStation first to generate config files:
- emulationstation
- The UI will prompt you to map your controller. Do that, and save the profile. If you need to rebind later, EmulationStation’s UI makes it straightforward.
5) Auto-start EmulationStation at boot (optional)
If you want a true “box in the living room” experience, you’ll want EmulationStation to start when the device boots. Here’s a simple way to auto-start EmulationStation on boot using systemd (works on Raspberry Pi OS with a desktop target for a GUI, or via a minimal Graphical target):
- Create a systemd service:
- sudo nano /etc/systemd/system/emulationstation.service
Put in:
- [Unit]
Description=EmulationStation frontend
After=network-online.target
- [Service]
Type=simple
User=pi
ExecStart=/usr/games/emulationstation
Restart=on-abort - [Install]
WantedBy=graphical.target - Then enable and start:
- sudo systemctl daemon-reload
- sudo systemctl enable emulationstation.service
- sudo systemctl start emulationstation.service
- If you’re using a headless Pi with no GUI on boot, you can instead auto-launch from ~/.bashrc:
- echo "emulationstation &" >> ~/.bashrc
6) Networking ROM transfer (optional)
- If you have ROMs on a PC, you can copy them over the network. A quick Samba share setup on the PC side and mounting on Pi via cifs is a clean approach:
- sudo apt-get install cifs-utils
- Mount with:
- sudo mount -t cifs -o username=user,password=pass //192.168.x.x/roms /home/pi/EmulationStation/roms
- Or simply copy ROMs to the EmulationStation ROMs folder with a USB drive.
7) Tuning for performance
- RetroArch cores are the real horsepower here. For Pi 4:
- Use the “glcore” or “dispmanx” video driver for different cores (in RetroArch settings under Video).
- Enable Fast BIOS Scan if you’re dealing with older systems.
- If a core is lagging on Pi, swap to a lighter core (e.g., NES/GEN/SNES emulation is fine; PS1 or PSP may require more attention).
- For Pi hardware, disable HDMI overscan if you have a perfect fit:
- sudo raspi-config → Display Options → Overscan → No
- If you want to framerate cap to something stable:
- RetroArch: Run a non-OSS vsync mode; set the frame limit to 60fps if your core supports it.
A practical example: a command snippet you can reuse
- Install RetroArch and EmulationStation (Pi OS):
- sudo apt-get update
- sudo apt-get install retroarch emulationstation -y
- Create ROM folder structure:
- mkdir -p ~/EmulationStation/roms/nes
- mkdir -p ~/EmulationStation/roms/snes
- Add a simple autostart (headless-friendly) at login:
- echo "emulationstation" >> ~/.bashrc
- Systemd auto-start example (as shown above) for a full GUI-boot setup.
Two honest caveats I’ve learned the hard way
- ROM legality is not optional. I don’t endorse piracy. I use ROMs I own or legally provided samples. If you’re building a living-room system, your goal is to enjoy the games you own and preserve the experience, not to curate a pirate library.
- BIOS licensing matters. Some cores require BIOS files; you must ensure you have the rights to use those BIOS files. If you don’t own them, don’t rely on those cores for your primary setup.
A quick comparison table: options for RetroArch + EmulationStation setups
| Option | Frontend/Core combo | Setup difficulty | Pros | Cons | Hardware sweet spot |
|---|---|---|---|---|---|
| Route A: Manual RetroArch + EmulationStation on Raspberry Pi OS | RetroArch + EmulationStation, manual ROM folders | Moderate | Maximum control; you learn where everything lives; small footprint | More steps; BIOS/ROM organization manual | Raspberry Pi 4 (4–8GB) or Pi 400; SD card |
| Route B: RetroPie | EmulationStation as default frontend; RetroArch cores via RetroPie setup | Easy to moderate | Large community; lots of guides; turnkey ROM scanning | Less “vanilla” RetroArch feel; some customization friction | Raspberry Pi 4; any PC in a pinch |
| Route C: Batocera | Batocera hardware-dedicated OS | Easy | Very clean, plug-and-play; great for a dedicated retro box | Limited opportunity to mix with other apps | Any capable SBC or PC; USB bootable |
| Route D: Lakka | Standalone RetroArch-focused | Easy | Very lean; fast boot; simple to deploy on many devices | UI and platform support can be sparse; customization limited | Small SBCs, older hardware; single-function device |
| Route E: PC-based Emulation Station + RetroArch | Full Linux distro, manual config | Moderate to hard | Maximum customization; run other services alongside gaming | Complexity grows quickly; not ideal for a couch potato setup | Mini-PC or old PC with HDMI |
What I actually do in my own setup
- I started with a Pi 4 and a mini HDMI кабель, a small wireless controller, and a 128GB microSD. I kept ROMs on a USB 3.0 external drive to reduce microSD wear and for easier ROM management.
- I ran a clean Raspberry Pi OS Lite install, then RetroArch + EmulationStation via apt. Then I created a tidy ROM folder under /home/pi/EmulationStation/roms and pointed EmulationStation to it via its settings.
- For a “living-room appliance” vibe, I added a systemd service to boot straight into EmulationStation, so the device behaves like a dedicated game console.
- I also added a Samba share for ROMs so I could drag-and-drop ROMs from my desktop to the Pi when the mood hit; this keeps ROM management from turning into a scavenger hunt.
Why this approach fits today’s momentum
- It scratches the “Steam Machine vibe” without the pressure of a full PC gaming stack. You get a plug-in-box you can put next to the TV, not a PC that needs a desk.
- It respects the ongoing hardware reality: Pi is cheap, energy-efficient, and silent. If you want to push PSX/PS2 more, you can run a compact x86 build or a small NUC-like PC, but you’ll likely be fine with a Pi for the majority of classic cores.
- It’s upgrade-friendly. RetroArch’s cores updated over time; EmulationStation stays familiar. If you want to switch from EmulationStation to a different frontend later, it’s straightforward to point ROMs to a new UI.
A few tips to go further (optional but handy)
- BIOS-aware: If you’re planning PS1 or PSP cores, much BIOS work is needed. Keep BIOSs in a clearly named “system” directory inside RetroArch’s system folder and verify core requirements before you boot.
- Network streaming: If you want to turn this into a media-orchestration device, you can install a lightweight media front-end (e.g., OMXPlayer or VLC) alongside EmulationStation and configure a home theater mode. It’s not out of the question to dual-run a small samba server or NFS for ROMs and a media library.
- Theming: EmulationStation is functional but not gorgeous out of the box. If you want a “clean” look, start by picking a theme and dropping it into the EmulationStation/themes directory. It’s not glamorous, but it gets you a more cohesive living-room feel.
- Controller mapping: Invest a few minutes mapping your controller. EmulationStation’s on-screen prompts make this straightforward; you’ll save headaches later when you mix different cores.
What should you do next?
- Pick your hardware path: Pi 4 for a compact couch setup, or a small PC if you want more power and a bigger ROM library. If you want near-zero setup, go RetroPie or Batocera.
- Decide on your route: manual RetroArch + EmulationStation if you want to learn the ins-and-outs; RetroPie if you want a smoother on-boarding experience; Batocera/Lakka if you want plug-and-play convenience.
- Start with a clean ROM structure. Create ~/EmulationStation/roms and subfolders for nes, snes, gba, psx, etc. Copy a few legally-owned ROMs to test (and only test).
- Boot, map a controller, and enjoy. If you want to automate, enable EmulationStation at boot and mount your ROM drive automatically.
A short, actionable conclusion
The Steam Machine era showed living-room PC gaming would always be aspirational until someone made it simple. Today, RetroArch and EmulationStation give you that same dream with a practical, modular stack. Pick your hardware, choose your setup path, and you’ll be gaming in a living-room-friendly, upgradeable way in under an hour. Start with a Pi 4, install RetroArch + EmulationStation, set up a ROM folder, and enable auto-start if you want couch-ready automation. Then decide whether you want to add a network drive, BIOS files, or a nicer theme. Your retro console is not just nostalgia; it’s a modern, practical piece of your entertainment setup. Now go build it.
Recommended products & services
Gpu Hosting
| Product | Notes | Link |
|---|---|---|
| Amazon GPU deals | GPU cloud for model training and inference | Link |
| Paperspace | GPU cloud for model training and inference | Link |
| Lambda Labs | GPU cloud for model training and inference | Link |