Introduction
ZX Spectrum, C64 and Amiga emulation on Raspberry Pi gave me a reason to plug that little board back in. I started with a Pi 4, loaded up Raspbian, and added EmulationStation to get all three systems running. I had a cheap USB gamepad lying around, which worked fine for old C64 joystick controls. Amiberry needed Kickstart ROMs, so I used ones from my Amiga Forever set.
For the Spectrum, I skipped RetroPie and went straight to ZXBaremulator. It boots fast and loads .tzx files like a charm. VICE handled the 8-bit games smoothly, especially once I switched to HDMI audio. Every setup step felt like solving a puzzle with real payoffs: working graphics, familiar sounds, and games I hadn’t seen since the 90s.
Key Takeaways
- ZX Spectrum, C64, and Amiga emulators run well on Raspberry Pi with the right setup.
- Use Fuse or ZXBaremulator for Spectrum, VICE for C64, and Amiberry or UAE4ARM for Amiga.
- Kickstart ROMs are required for Amiga emulation.
- RetroPie simplifies installation and organizes ROMs neatly.
- Input issues are common—check joystick ports and key mappings.
- HDMI settings, power supply quality, and emulator builds affect performance.
- Communities and GitHub pages provide critical support and updates.
Choosing Your Raspberry Pi Model
Performance vs Compatibility
Not all Raspberry Pi models are equal when running ZX Spectrum, C64 and Amiga emulation. The Raspberry Pi 4 handles all three systems well, especially with Amiga emulation through Amiberry or UAE4ARM. It has more RAM, a faster processor, and better thermal control than older models. You can even load WHDLoad games without noticeable lag.
Raspberry Pi Zero and 3 Options
The Raspberry Pi Zero runs ZXBaremulator for bare-metal Spectrum emulation with no OS in the way. It’s lean, boots fast, and doesn’t need much power. For Commodore 64 and Amiga games, though, the Zero will struggle. The Pi 3 handles VICE and Fuse fine but might choke when loading Kickstart-heavy ADF files.
Choosing Based on Emulator Load
Each emulator has its own demands:
| Emulator | System | Recommended Pi Model |
|---|---|---|
| ZXBaremulator | ZX Spectrum | Pi Zero or Pi 3 |
| VICE | C64 | Pi 3 or Pi 4 |
| Amiberry | Amiga | Pi 4 |
| UAE4ARM | Amiga | Pi 4 |
| Fuse | ZX Spectrum | Pi 3 or Pi 4 |
HDMI Output and USB Input Needs
The Pi 4 provides full HDMI, more USB ports, and faster access to external drives via USB 3. That matters if you’re running larger disk images or need better audio sync. Using a powered USB hub helps if you’re connecting gamepads, a mouse, and a keyboard.
Installing the Right Operating System
RetroPie vs PiMiga vs Raspbian
You’ve got three main choices. RetroPie gives you a menu-driven front end with EmulationStation and supports Fuse, VICE, and Amiberry. It’s built on Raspbian and works best on the Pi 3 or 4. PiMiga is designed for Amiga fans, preloaded with Kickstart support and WHDLoad tools, but it’s heavier and runs best on the Pi 4. If you prefer manual control, vanilla Raspbian lets you install each emulator directly and skip the extras.
Flashing the SD Card
You’ll need an 8GB card at minimum, but 32GB or higher gives room for ADFs, .d64 files, and Spectrum tapes. Use Raspberry Pi Imager or BalenaEtcher. Set up your WiFi and enable SSH if you want to send ROMs with SFTP later.
File System and Folder Layout
RetroPie creates organized folders:
/home/pi/RetroPie/roms/c64/home/pi/RetroPie/roms/zxspectrum/home/pi/RetroPie/roms/amiga
Kickstart ROMs go in /home/pi/RetroPie/BIOS/, and ADFs sit in the Amiga folder. Fuse and VICE will read from their own config paths, but RetroPie standardizes this so everything shows in the same front-end.
Setting Up ZX Spectrum Emulation
Fuse vs ZXBaremulator
You’ve got two ways to go. Fuse runs inside RetroPie or Raspbian and supports .tzx, .tap, and snapshot files. ZXBaremulator skips the OS and boots directly into emulation. That means faster loading, better performance, and no menu clutter—just pure ZX Spectrum.
Using ZXBaremulator
ZXBaremulator works great on a Raspberry Pi Zero or 3. Flash it like an OS image to your SD card. Drop your game files into the tape/ folder on the card. Plug in a USB keyboard or mapped gamepad, power it up, and it boots straight to the Spectrum menu. It even mimics the look of the 48K or 128K startup screen.
Running Fuse in RetroPie
If you’re using RetroPie, Fuse installs from the optional packages menu. Drop .tzx or .tap files into /roms/zxspectrum. You can access settings for sound, display type, and joystick mapping inside the emulator. Fuse supports multiple models and loads snapshots for quick testing.
File Types and Input Setup
| File Type | Use Case |
|---|---|
| .tzx | Full game tape |
| .tap | Simplified tape |
| .sna | Save state |
| .z80 | Snapshot |
USB gamepads work fine, but older games expect keyboard input. Fuse lets you remap keys to buttons, or just plug in a USB keyboard if you’re chasing the original layout experience.
Commodore 64 Emulation with VICE
Installing VICE on Raspberry Pi
VICE is the go-to emulator for running Commodore 64 software. It’s included in RetroPie under optional packages. You can also install it directly on Raspbian using the terminal. Once installed, it emulates the C64, C128, VIC-20, and more, but for this setup, you’ll mostly be using the C64 mode.
Configuring Input Devices
By default, the keyboard maps to port 1, but many games expect input on port 2. You’ll want to change that in the joystick settings. USB gamepads usually get detected automatically. You can also map specific keys to simulate joystick directions or fire buttons.
Loading Disk and Program Files
The most common file types:
| File Type | Description |
|---|---|
| .d64 | Disk image |
| .prg | Program file (quick load) |
| .t64 | Tape image |
| .crt | Cartridge ROM |
VICE allows you to mount a .d64 as a virtual drive and load the game via the emulator’s menu. PRG files can be autoloaded by dragging them into the interface or configuring autostart options in RetroPie.
Optimizing Sound and Graphics
The SID chip emulation can be set to fast, accurate, or reSID depending on your Pi’s performance. Use HDMI audio for cleaner output. For video, you can enable true aspect ratio, borders, or CRT-style scanlines. These options help the game look closer to the original, or cleaner if you prefer that.
Running Amiga Games with Amiberry or UAE4ARM
Choosing Between Amiberry and UAE4ARM
Both emulators run Amiga games, but Amiberry is better optimized for Raspberry Pi. It supports WHDLoad, ADF images, and Kickstart ROMs. UAE4ARM is more flexible with older configurations and ECS/OCS setups but may need more manual tweaking. On a Pi 4, either works, but Amiberry gets you up and running faster.
Installing and Setting Up Kickstart ROMs
You need Kickstart ROMs to boot any Amiga system. These aren’t included due to licensing. Most people use ROMs from the Amiga Forever package. Drop them into /home/pi/RetroPie/BIOS/. Common versions include:
| ROM File | System Used For |
|---|---|
| kick13.rom | Amiga 500 |
| kick31.rom | Amiga 1200 |
| kick20.rom | Amiga 600 |
Make sure the file names match what the emulator expects. If they don’t, the system won’t boot.
Running ADF and WHDLoad Games
ADF files are virtual floppy disks. Insert them via the emulator’s GUI or set them as defaults in the config. WHDLoad images load games directly from hard-disk-style setups and run faster. They also skip long floppy load times.
Performance and Compatibility Tips
WHDLoad setups require more RAM and CPU. Use a Pi 4 for smoother playback and faster game loading. Enable CPU JIT (Just-In-Time compiler) for better speed. Set chipset type (ECS, OCS, AGA) to match the game. Older titles usually need OCS.
Managing ROMs and Disk Images
Organizing by System
To keep things clean, create separate folders for each platform. RetroPie does this automatically inside /roms/. If you’re not using RetroPie, make sure your folders are labeled clearly: spectrum/, c64/, amiga/. This avoids confusing your emulators and makes file transfers easier.
File Formats and Naming
Each emulator prefers specific formats:
| System | Format Examples |
|---|---|
| Spectrum | .tzx, .tap, .sna, .z80 |
| C64 | .d64, .t64, .prg |
| Amiga | .adf, .hdf, .lha |
Use consistent naming. For example, name disks game_disk1.adf, game_disk2.adf to help the emulator load them in sequence. Avoid special characters or long names that could break in certain OS environments.
Transferring Files to the Pi
You’ve got a few options:
- SFTP: Connect with tools like WinSCP or FileZilla using the Pi’s IP address. Fast and safe.
- USB stick: Plug it in, mount it, and copy files manually.
- Network share: If you installed Samba or similar, your Pi appears as a network drive.
Legal and Ethical Reminders
Own the games you use. ROMs and ADFs are often shared online, but unless they’re freeware or you’ve backed up your own copies, downloading commercial titles gets legally murky. Kickstart ROMs especially are licensed. Stick to sources like Amiga Forever, and check usage rights when downloading.
Optimizing for HDMI Output
Resolution Settings
By default, Raspberry Pi outputs HDMI at 1080p. That’s fine for menus, but older games may look blurry. Most emulators let you scale output to native retro resolutions. Fuse, VICE, and Amiberry all have settings for 320×240 or 640×480. These reduce input lag and make pixel art cleaner.
Overscan and Display Cropping
Some monitors crop the screen. If text or borders are missing, adjust the config.txt file on the SD card. Disable overscan by setting:
disable_overscan=1
Or fine-tune with overscan_left=, overscan_right=, etc., until borders display correctly.
HDMI Audio Sync
Audio lag is rare on Pi 4, but it can still happen. Make sure the emulator’s sound settings match your Pi’s output method. For example, Amiberry should be set to ALSA with HDMI as the default. VICE has its own delay adjustment slider. USB audio can introduce latency, so stick to HDMI if you can.
CRT Filters and Aspect Ratio
Want it to look like your old TV? Enable CRT shaders or scanline filters. These add horizontal lines and curve distortion. Most emulators support this, but performance varies. For a clean image, turn them off and stick to square pixels with 4:3 aspect ratio.
Using EmulationStation as a Unified Front-End
Installing EmulationStation
If you’re using RetroPie, EmulationStation is already bundled. If not, you can install it manually on top of Raspbian. It acts as a graphical launcher for your emulators. No more typing commands — just plug in your gamepad, navigate menus, and pick a system.
Organizing Systems and Games
Each emulator is treated as a separate system. EmulationStation scans the /roms/ directory and creates menus based on the subfolders. Add Spectrum games to zxspectrum/, C64 files to c64/, and Amiga titles to amiga/. It will generate menus for each system automatically.
Custom Themes and Art
You can add box art, game titles, and descriptions using scraper tools like Skyscraper or built-in metadata scrapers. Just be prepared — some entries might be wrong, especially for homebrew or region-specific titles. Clean up the results by editing the gamelist.xml files.
Controller Navigation
Most USB gamepads work out of the box. During the first boot, EmulationStation prompts you to map your buttons. One pad can control the entire menu, and individual emulators manage their own input separately. You can remap buttons for each system if needed.
Adding New Systems
If you later want to emulate MSX, Atari ST, or DOS, just add ROMs to the right folders and restart EmulationStation. It adds new systems on the fly without needing reinstallation.
Tips for Input Devices and Peripherals
Gamepads
Most USB gamepads work out of the box with RetroPie and EmulationStation. SNES-style controllers are popular and inexpensive. In VICE, you’ll need to assign the correct joystick port—many C64 games expect input from port 2, not port 1. Amiberry allows for both gamepad and mouse use, especially useful for point-and-click titles.
Keyboards
A USB keyboard is essential for Spectrum games that require typed commands like LOAD "". Fuse maps keys directly to Spectrum equivalents, but you can remap inputs if needed. For Amiga, many games were built with keyboard controls, so having one nearby saves headaches.
Mice
Amiga titles often need mouse input—especially if you’re loading WHDLoad games or running productivity software. USB mice plug in and work without extra drivers. You can configure sensitivity and button layout in Amiberry or UAE4ARM.
Adapting Vintage Inputs
If you’re feeling brave (or nostalgic), adapters exist to use original Commodore or Atari joysticks via GPIO or USB converters. The Pi’s GPIO pins can map to digital signals, but it requires setup and a bit of scripting. Not beginner-friendly, but possible.
Power Draw and USB Hubs
Raspberry Pi boards, especially the 4, can get overloaded when too many devices are plugged in. Use a powered USB hub if you’re connecting a mouse, keyboard, gamepad, and storage drive. Some devices won’t initialize properly without it.
Troubleshooting Common Issues
Emulator Crashing or Freezing
First thing: check your power supply. Inconsistent voltage causes random crashes. Use a 5V 3A adapter for Raspberry Pi 4. If a specific game crashes, try another ROM or use a different emulator build. For example, a game might fail in Amiberry but run fine in UAE4ARM.
Audio Problems
No sound? Double-check your HDMI output settings. Run raspi-config and set the audio output manually to HDMI or analog. In VICE or Amiberry, verify audio drivers—ALSA usually works best. If sound stutters, lower the sample rate or disable unnecessary filters.
Video Lag or Wrong Resolution
Emulators sometimes default to weird resolutions. Set a fixed HDMI resolution in /boot/config.txt, like hdmi_group=1 and hdmi_mode=16 for 1024×768. In emulator menus, disable smoothing or shaders that can slow things down.
ROMs Not Loading
Make sure file extensions match the emulator’s expectations. Amiberry won’t load .lha archives unless WHDLoad is set up. Spectrum and C64 emulators require .tzx, .tap, or .d64—others might fail silently. Double-check paths, especially if you renamed folders.
Controller Not Responding
If EmulationStation recognizes your pad but the emulator doesn’t, map it directly inside that emulator’s config. Some use different input libraries. For RetroPie, you can override input per system by editing the retroarch.cfg file in the system folder.
Community Resources and Updates
Trusted Forums and Help Desks
When you get stuck—and you will—forums like the RetroPie Forum and Lemon64 are packed with others who’ve hit the same walls. There’s also English Amiga Board (EAB) for Amiga questions. Don’t be shy about posting—chances are someone’s solved your issue already.
GitHub Repositories and Builds
Many emulators are active projects. You can find updates, forks, and bug fixes on GitHub:
These include source code, compiled binaries, and setup guides. Always read the README files—some updates break things if you skip steps.
YouTube Walkthroughs
Video guides are everywhere. Look for walkthroughs from creators like “Wagner’s TechTalk” or “Retro Recipes.” Some focus on Pi-specific builds, others on setting up WHDLoad or fine-tuning audio. Watch out for outdated videos—check upload dates.
SD Card Images
Some users share pre-configured images for specific use cases. These often include RetroPie with preinstalled emulators and themes. Be cautious about legality—especially if ROMs are bundled. When in doubt, build your own from scratch.
Updates and Maintenance
Periodically update your Pi’s OS with:
sudo apt update && sudo apt upgrade
RetroPie can be updated through its own setup script. Emulator updates may require compiling new builds or replacing binaries. Always back up your SD card first.
Conclusion
Setting up ZX Spectrum, C64 and Amiga emulation on Raspberry Pi isn’t just a trip down memory lane – it’s a practical way to preserve and enjoy classic computing. You’ve got options: Fuse and ZXBaremulator for Spectrum games, VICE for C64 classics, and Amiberry or UAE4ARM for Amiga titles. Each tool works differently, and matching them with the right Pi model makes all the difference.
With a solid power supply, clean ROMs, and a bit of configuration, you can run everything from Jet Set Willy to Shadow of the Beast without dusting off a floppy disk. If something doesn’t work, there’s a forum post or GitHub thread waiting for you.
Keep your system updated, your files organized, and your expectations realistic. These old machines weren’t perfect, and neither is emulation. But the fun? Still solid.
FAQ
Q: Do I need a Raspberry Pi 4 to run Amiga emulators?
A: For smooth performance, yes. Especially if you’re using WHDLoad or running AGA games.
Q: Can I use one SD card for all three systems?
A: Absolutely. RetroPie handles multi-system setups easily, and EmulationStation keeps everything organized.
Q: Are Kickstart ROMs included with Amiberry?
A: No. You’ll need to supply your own, preferably from a legal source like Amiga Forever.
Q: My joystick isn’t working in VICE. What gives?
A: Many C64 games use joystick port 2, not port 1. Swap ports in the VICE menu.
Q: Is it legal to download ROMs for old games?
A: Only if the rights holder has made them free, or you own the original media. Otherwise, it’s a legal gray area.
References
- RetroPie Official Documentation
- VICE Emulator Project
- Amiberry GitHub
- ZXBaremulator GitHub
- Amiga Forever (Cloanto)

