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