How to emulate a BBC Micro on a Raspberry Pi (full tutorial)

By Colin Hoad | Feb 22, 2024

In this tutorial I show how to emulate a BBC Micro using a Raspberry Pi. This is a complete tutorial with full instructions, end to end. It also includes a quick how-to for getting a fresh copy of Raspberry Pi OS up and running, in case your Pi is in a poorly condition (as mine was!)


 

I'm using a Raspberry Pi 2 Model B but the steps should work for any model, including the Pi Pico for which the original guide by Ashley Whittaker was written.


 

As I say in the video, this is all very much "standing on the shoulders of giants", I didn't come up with this by myself and am hugely indebted to both Ashley and Graham for their work.


 

All I want to do is try and promote the concept a bit more, because I think it's ace!


 

LINKS:

Ashley Whittaker's article: https://www.raspberrypi.com/news/emulate-a-bbc-micro-on-raspberry-pi-400/

Raspberry Pi disc imager: https://www.raspberrypi.com/software/

Graham "kilograham" Sanderson's B-em Git repository: https://github.com/kilograham/b-em

Raspberry Pi picoextras Git repository: https://github.com/raspberrypi/pico-extras

Elesar keyboard: https://shop.elesar.co.uk/index.php?route=product/product&product_id=61


 

COMMANDS:

I've tried to include all of the major commands used in the video aligned with the steps. You can also refer directly to Ashley's article.


 

Step 1

sudo raspi-config


 

Step 2

sudo apt install build-essential cmake libdrm-dev libx11-xcb-dev libxcb-dri3-dev libepoxy-dev ruby libasound2-dev


 

Step 3

mkdir Pico

cd Pico

wget https://github.com/raspberrypi/pico-sdk/archive/refs/tags/1.5.1.tar.gz

tar -xzf 1.5.1.tar.gz

git clone https://github.com/raspberrypi/pico-extras.git

git clone https://github.com/kilograham/b-em.git

cd b-em

mkdir pi_build

cd pi_build

cmake -DPICO_SDK_PATH=path/to/pico-sdk -DPI_
BUILD=1 -DPICO_PLATFORM=host -DDRM_PRIME=1 
-DX_GUI=1 ..

make -j4


 

Step 4

cd src/pico

./xbeeb

./xmaster


 

Step 5 & 6

Press F11 to get the onscreen menu within Bem

Use the cursor keys to navigate the menu, including the left/right cursors to select a disc image

Press Enter when you have found the disc image you want to use

Use SHIFT + F12 to boot up the disc image (or you can type *EXEC !BOOT and press Return)

Use ALT + F4 to close the emulator


 

Step 7

Deliberately skipped as I decided not to include this, since embedding disc images is - in my opinion - far more preferable.


 

Step 8

Use the following syntax when adding new entries to the beeb_discs_user.txt or master_discs_user.txt files:

Name Of Game = /path/to/discs/name_of_game.ssd

You can use the "greater than" symbol next to one entry to designate the default disc image

There seems to be a maximum limit of 144 entries in the configuration file, after which you run the risk of compilation errors

If you haven't already got a pile of disc images, you can get almost any BBC Micro game from the Complete BBC Micro Games Archive site: https://www.bbcmicro.co.uk