8-bit PC Pi Compile
The 8-bit PC Pi Compile is a makefile and menu system to make it simple to build and install VICE (a Commodore 64 emulator) and Atari800 (Atari 8-bit emulator) on a Raspberry Pi 4B/400/5/500 running the Pi OS Lite operating system.
It also includes some patches and tweaks to improve the experience and easy configuration switching via the menu with support connection of original joysticks and a C64 keyboard.
Why?
Why indeed, there are so many options available if you want to run old retro PCs or consoles, why even bother making something new?
Alternatives:
- RetroPie - solid retro emulation experience with the Emulation Station frontend
- RecallBox - another all in one retro gaming console option
- Batocera - a linux distro aimed at retro gaming
All of these are great options and easy to set up. They are all retro multisystem consoles, I wanted to have something that would just boot directly into Commodore or Atari Basic like they did with the original hardware.
Even with the requirement to boot directly into Commodore or Atari Basic there are options:
- BMC64 - excellent C64 emulator, with some limitations
- Combian64 - custom linux distro that boots directly into VICE.
BMC64 has the listed limitations, and Combian64 currently only supports the Pi400, and there is a fee to get access to the easy configuration menu.
Even though I grew up playing Commodore 64 at a friends house, we had an Atari 800 at home so I really wanted to get both working and the two options above are C64 only.
Goal
I wanted my final solution to:
- Use original hardware (i.e. C64 keyboard and joysticks)
- Support modern USB gamepads and mice
- Support the Raspberry Pi 500 (and Pi 400) in place of original hardware
- Boot directly to Commodore or Atari Basic
- Make it easy to switch between different configurations (e.g. USB gamepads to original joysticks)
- Easy networking to copy files to the device, and update itself or the emulators
Preferred Hardware
As this makefile is designed to run on top of Pi OS Lite, it will work on any Raspberry Pi. But it includes out of the box configuration for the following hardware:
Modern hardware option
- Pi 500 (recommended) or Pi 400
- BMC Joystick Adapter - to connect original joysticks
Looks like an original C64 option
Complete old school look and feel with original C64 case and keyboard.
- Pi 5 (recommended) or Pi 4B
- BMC PCB - version 2.2 or greater
- Original C64 case (C64C or breadbin)
- Original C64 keyboard (or new equivalent)
Common hardware
Either hardware option above will need some additional items
- Raspberry Pi 27W USB-C Power Supply - Reliable power supply
- 8BitDo M30 2.4G Wireless Gamepad - one of my favourite gamepads
- Your choice of original C64 or Atari controllers if you want to go old school.
Installation
Detailed installation instructions are found in the 8-bit PC Pi Compile repository.
The short version is:
- Use Raspberry Pi Imager to setup Pi OS Lite (64-bit) on a new microSD card
- Configure the user
pi
, a password and WiFi settings when writing the image - Put the microSD card in the pi and boot it up, and login with
pi
and your password - Install git:
sudo apt-get install -y git
- Clone 8-bit PC repository:
git clone https://github.com/aminch/8-bit-pc-pi-compile.git
make all
About 15 minutes later you will be asked to reboot and you'll be ready to go!
Additional roms
To have a more optimum setup you'll have to buy some additional roms if you don't have them already.
For Commodore 64 you should get and configure the JiffyDOS roms.
For Atari you should find the original Atari BIOS roms.
Note: The emulators will run without these additional roms.
Emulator patches
I had to add a patch to both emulators to ignore USB devices that are not controllers. This was needed because the Pi 500 keyboard is detected as a USB controller when it should not be.
Atari800 additional patches
There are more extensive changes for the Atari800 emulator. In fact the original repository is forked here.
Two major additions were made:
- Small fix just to get Pi OS Lite to start
- Support for OpenGL ES3 and GLSL 140 shaders on Pi OS Lite
- Ignore non-controller USB devices (yes it thinks the Pi500 keyboard is a controller without this fix!)
Features
It will boot into the configured emulator in around 15 seconds.
Exiting the emulator and typing the menu
command will launch the 8-bit PC menu, which has easy configuration changes and tools you might need.
Selection of which emulator to launch
When the Commodore 64 emulators x64 or x64sc are selected you can select which joysticks are connected USB or original (GPIO), and optionally configure a USB mouse
Which keyboard is connected to for the Commodore 64 emulators can also be set. Either select the Pi400/500 model you have connected or the C64P when using an original C64 keyboard
The Atari emulator has very few options, both of which just reset the original (GPIO) joystick and video settings if you change them and things don't work as expected
The tools and utilities menu allows you to do a number of things such as run Midnight Commander, Mount/Unmount a USB drive, Start/Stop Windows file sharing, Launch the standard raspberry pi configuration script, force video mode to 720P or 1080P or view system information including the IP address.
An update menu for updating the script itself or Pi OS Lite.
There are also easy reboot and shutdown options at the bottom of the menu.
Summary
Was all the effort worth it? YES!! 😃
The make file makes the setup very simple and the menu system makes it easy to switch between all the main configurations without dealing with the internal emulator menus.