Graham Sanderson Turns the Raspberry Pi Pico, Other RP2040 Boards Into a Vintage Acorn BBC Micro
Using one core for emulation and the other to handle the video output, this port of b-em may make for the smallest BBC Micros yet.
Developer Graham Sanderson has released a forked version of the b-em BBC Micro emulator designed to run on the Raspberry Pi Pico and other RP2040-based microcontrollers — offering an ultra-low-cost, ultra-compact blast from the past.
"The sole reason for this project's existence was to get a BBC B/Master 128 emulator running on the Raspberry Pi Pico," Sanderson explains of his efforts, which build atop the existing b-em emulator. "It supports building on other platforms (particularly Pi) however that was not the initial intent, and the Pi version may be missing features you would like (since it has the same feature set as the Pico version). This may be addressed in the future, but is not high on my priority list at least, since most games can already be played."
With two Arm Cortex-M0+ cores running at up to 133MHz stock and higher when clocked outside of spec plus 264kB of memory, the Raspberry Pi Pico is considerably more powerful than Acorn's classic BBC Micro or even upgraded BBC Master 128. Emulation, though, can be power-hungry, and Sanderson has taken full advantage of the two cores to keep things ticking over: The emulator runs on one core, while video display work is handled by the second.
Sanderson has plans to improve the emulator too: For the Raspberry Pi Pico, and other RP2040-based microcontroller boards, he hopes to add support for connecting a USB keyboard rather than having to pass keyboard traffic via the UART, the ability to drive an original BBC Micro-compatible CRT monitor, connect a second Raspberry Pi Pico as a Tube or SPI device, interface the emulator with the Pico's general-purpose input/output (GPIO) pins, support loading from tape, and more.
The source code and technical details for the project can be found on Sanderson's GitHub repository under the GNU General Public License 2.0; he warns, however, that it is to be considered "in a 'works-on-my-machines' state, so expect build issues."