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.

8-bit PC Pi

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 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 with BMC64 Joystick Adapter

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)

BMC64 PCB with Pi 5

Common hardware

Either hardware option above will need some additional items

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.

8-bit PC Pi

Selection of which emulator to launch

8-bit PC Pi Emulator Select

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

8-bit PC Pi C64 Joy Select

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

8-bit PC Pi C64 Keyboard Select

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

8-bit PC Pi Atari Options

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.

8-bit PC Pi Tools

An update menu for updating the script itself or Pi OS Lite.

8-bit PC Pi Updates

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.