Your Home for Retro Gaming 🕹
Retro Home is retro-gaming operating system for Raspberry Pi and is made possible thanks to Ubuntu and Ludo.
Ludo is a minimalist frontend for emulators
- Ask questions and provide feedback via our Discord 💬
- Submit bug reports via GitHub 🐛
This repository hosts downloadable images of Retro Home and the script that builds Retro Home images for Raspberry Pi devices along with the associated documentation to get you retro-gaming in style.
We have a Discord for this project:
- Optimized images for Raspberry Pi 2, 3, 4 and 400.
- Based on Ubuntu and Ludo
- Supported emulation:
- Arcade
- Atari 2600 (VCS)
- Atari 5200
- Atari 7800
- Atari Jaguar
- Atari Lynx
- Bandai Wonder Swan
- Bandai Wonder Swan Color
- Coleco Vision
- Magnavox Odyssey2
- Microsoft MSX
- Microsoft MSX2
- Nintendo Game Boy
- Nintendo Game Boy Color
- Nintendo Game Boy Advance
- Nintendo DS
- Nintendo Entertainment System
- Super Nintendo Entertainment System
- Nintendo 64 (WIP)
- Nintendo Pokémon Mini
- Nintendo Virtual Boy
- Sega Game Gear
- Sega Master System (Mark III)
- Sega Mega Drive (Genesis)
- Sega Pico
- Sega Saturn
- SNK Neo Geo Pocket
- SNK Neo Geo Pocket Color
- NEC PC-98
- NEC PC Engine TurboGrafx-16
- NEC PC Engine SuperGrafx
- NEC PC-FX
- Sony PlayStation
- Vectrex
- Supported Raspberry Pi models:
- Raspberry Pi Compute Module 3 Lite
- Raspberry Pi Compute Module 4 Lite
- Raspberry Pi 2 Model B
- Raspberry Pi 3 Model A+
- Raspberry Pi 3 Model B
- Raspberry Pi 3 Model B+
- Raspberry Pi 4 Model B (Recommended)
- Raspberry Pi 400
- Raspberry Pi Zero 2 W
- Boot from USB
- Automatic first boot file system expansion
- WiFi and Bluetooth management
- Integrated Samba and SSH server for copying over ROMS
- GNOME Flashback based micro desktop (not on handhelds)
Alpha images of Retro Home are available for download from the GitHub releases.
The alpha images work for most emulators and are suitable for having retro-gaming 🕹 fun and testing to provide your feedback to the project.
- Download Retro Home
- Use Raspberry Pi Imager to put the image on microSD card.
- Select Use custom from the Operating System drop down
- Select the target microSD card.
- Click Write
- Clone the Retro Home project
git clone https://github.com/wimpysworld/retro-home.git
It is best to run the retro-home-image
on an Ubuntu 22.04 x86 64-bit
workstation, ideally running in a VM via Quickemu. If using a fresh Quickemu VM you will need to set the disk_size
parameter large enough to complete the build (around 26G). This can be achieved by adding disk_size="32G"
to ubuntu-mate-focal.conf
before running quickemu
to create the VM. Alternatively you could mount external storage into the container for the build area. You'll also need at least to sudo apt install git
.
The following incantation will build a Retro Home armhf image for Raspberry Pi.
sudo ./retro-home-image --device raspi
You can tweak some variables towards the bottom of the retro-home-image
script.
However, Ludo currently only publishes pre-built binaries for armhf
, so
changing the target architecture is not recommended.
IMG_VER="22.04"
IMG_RELEASE="jammy"
IMG_ARCH="armhf"
You can also create a build without the desktop environment by setting
INCLUDE_DESKTOP
to false
in the variables near the end of the retro-home-image
script.
# Set to "false" to skip installing these components
INCLUDE_LUDO=true
INCLUDE_DESKTOP=true
We will be adding hardware support for various retro themed Raspberry Pi cases in the future.
Usage
sudo ./retro-home-image --device <targetdevice>
Available supported devices are:
raspi
megapi
nespi
superpi
ROMs are stored in /storage/Retro/roms
on the Retro Home file system. Once
you've copied some ROMs to Retro Home (see below) you can use Ludo to
scan your games.
If Retro Home has an active Internet connection while scanning your games, game thumbnails will be automatically be downloaded. Thumbnails are stored persistently and are usable without an Internet connection.
Copying ROMs on to a Raspberry Pi via WiFi is extremely slow 🐢 We highly recommend you use wired Ethernet for copying files over the network to Retro Home.
Connect to Retro Home via Windows File Sharing (Samba) and copy ROMs to the ROMs folder.
Example:
scp *.zip ludo@retro-home-raspi.local:Retro/roms/
If you have a Linux workstation, you can insert the Retro Home
memory card / USB stick into an appropriate reader and copy ROMs to the
partition labelled writable
in the /storage/Retro/roms
directory.
This is the default username and password for logging into Retro Home via SSH or the desktop.
- Username:
ludo
- Password:
retro
Having a small desktop environment is helpful during the early stages of development and debugging.
We will continue to include the desktop environment in most of the Retro Home images we make available as it is useful for downloading and installing your ROMs if you don't have another computer available.
We won't be including the desktop on Retro Home images targeting handheld devices.
- Archive Manager
- BitTorrent Client
- File Manager
- Ludo
- Network Manager
- Terminal Emulator
- Text Editor
- Web Browser
You must have a keyboard and mouse connected to Retro Home to access the desktop.
- Boot Retro Home and when Ludo has loaded pressed the Escape key.
- Ludo will exit and you'll be presented with the display manager.
- Select the GNOME FlashBack session by clicking the icon above the password entry.
- Enter the password for the Ludo user (
retro
is the default password) and press Enter.
To shutdown or reboot Retro Home from the desktop environment, click the cog icon in the top right of the panel.
My capture cards sync at 1920x1200 @ 59.94Hz and this cause Ludo performance to really suffer. Once Ludo is running I reset the refresh rate as follows:
env DISPLAY=:0 xrandr --rate 60
If you need to build kernel modules you can install the kernel header for the Raspberry Pi kernel like so:
sudo apt-get install linux-headers-raspi
As of Linux kernel 5.11, the old methods of communicating with the header pins on the Raspberry Pi will no longer work. This means that packages such as RPi.GPIO will no longer function properly with newer kernels.
- The Pins They Are A-Changin’
- The lg archive
- lg is an archive of programs for Linux Single Board Computers which allows control of the General Purpose Input Outputs.
- Raspberry Pi GPIO Tutorial