Retro Home
Your Home for Retro Gaming
Introduction
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:
Features
- 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)
Downloads
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
Putting Retro Home on a Raspberry Pi
- 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
Building Images
- 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 20.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="21.10"
IMG_RELEASE="impish"
IMG_ARCH="armhf"
You can also create a build without the desktop environment by setting
SKIP_DESKTOP
to 1
in the variables near the end of the retro-home-image
script.
# Set to 1 to skip installing these components
SKIP_LUDO=0
SKIP_DESKTOP=1
SKIP_UBUNTU_STANDARD=0
Usage
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
FAQ
How do I put ROMs on Retro Home?
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
Windows File Sharing (Samba)
Connect to Retro Home via Windows File Sharing (Samba) and copy ROMs to the ROMs folder.
Secure Shell (SSH)
Example:
scp *.zip [email protected]:Retro/roms/
File copy
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.
What is the default username and password:
This is the default username and password for logging into Retro Home via SSH or the desktop.
- Username:
ludo
- Password:
retro
Why is a desktop environment bundled?
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.
What is included in the desktop environment?
- Archive Manager
- BitTorrent Client
- File Manager
- Ludo
- Network Manager
- Terminal Emulator
- Text Editor
How do I access the desktop?
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.
Reference
GPIO
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