James Randall Musings on software development, business and technology.
Acorn Playground
Annhexation gameplay — a hex-based 4X strategy map
Annhexation Steam demo

A turn-based 4X strategy game you can complete in an evening — built from scratch with a custom WebGPU engine and eight civilisations. Try the demo on Steam.

Acorn Playground has its own site, where both emulators run in your browser. The source for all of it is on GitHub.

It started as MacBeeb, a BBC Micro emulator for the Mac. I’ve spent a lot of time in the BBC Micro’s internals through my Thrust and Exile projects, and I wanted an emulator that felt like a proper Mac app, with the tools I actually wanted when I was taking those games apart. Then the BBCs wanted to talk to each other, which meant Econet. Then the Archimedes was the obvious next machine, and the Archimedes needs RISC OS, which can’t be given away - so I rebuilt one from Acorn’s public source. It’s become a family of projects:

  • MacBeeb: the BBC Micro, on your Mac and in your browser.
  • MacArch: the Acorn Archimedes, on your Mac (and Linux) and in your browser.
  • ArcLibre: a free RISC OS ROM for the Archimedes, restored from public source.
  • Internet Econet: BBC Micros and Archimedes on different machines, on one network.
  • VS Code extensions: press F5 and step through 6502, ARM and BBC BASIC on the real thing.

MacBeeb

At its heart is a cycle-exact machine. The 6502 is a port of Tom Seddon’s simulator from b2: each tick is one bus cycle, so the rest of the machine - the VIAs, the 6845, the video ULA, the sound chip, the disc controllers - sees every access at the moment it really happens, 1MHz stretching and all. It’s checked against the standard CPU test suites, against results measured on real hardware, and cycle by cycle against perfect6502, a transistor-level simulation of the chip.

It emulates the Model A, Model B, B+ 128K, Master 128 and Master Compact, with the 8271 and 1770 disc controllers, DFS and ADFS discs, and cassettes that load at real speed. It also emulates the second processors: the 6502 Second Processor, the Z80 booting straight into CP/M, the Master 512 running DOS Plus and GEM, and the ARM Evaluation System, built around ARM1, Acorn’s first ARM processor.

MacBeeb is a download from GitHub, or you can switch one on in your browser: the same Swift emulation, built as WebAssembly.

Elite, the 6502 Second Processor version, in flight

Exile

Repton

MacArch

MacArch is the Acorn Archimedes: the 300 and 400 series, the A540, the A3000, and the A5000 family, with ARM2, ARM3 or ARM250 processors, MEMC, IOC and VIDC, floppies (including protected originals) and hard discs. It boots RISC OS 2 and 3.11, and there’s a shelf of Archimedes classics ready to play. The same core builds a GTK app for Linux, LinuxArch, and a WebAssembly module, so it runs in your browser too.

Zarch, running on MacArch’s A3000

ArcLibre

MacArch can’t include Acorn’s RISC OS, so it comes with ArcLibre: a freely redistributable ROM compatible with RISC OS 3.11, built from the Apache-licensed RISC OS 3.60 source release and restored to the ARM2 and ARM3 machines and to 3.11’s behaviour. No code, resources or fonts are taken from Acorn’s ROM images. It starts the original desktop with its Filer, Edit, Draw, Paint, BBC BASIC, fonts, sound, networking and printing, in a 2MB ROM for any Archimedes and a 4MB one for the A5000 family. Its original C components are compiled with gcc-apcs26, the last 26-bit GCCSDK, patched to build and generate correct code on modern 64-bit machines.

ArcLibre’s desktop on an A5000

Econet

Both emulators speak Econet, Acorn’s classroom network, and talk to each other with Acorn’s own network software: file servers, printers, *I AM. Network Studio wires up a classroom of machines on one Mac, and Internet Econet, running on Cloudflare, puts BBC Micros and Archimedes on different Macs and browsers on one network: share a link or read out a code and they join. You can try it in the browser with an eight-BBC distributed Mandelbrot, and Mark Moxon’s Elite multiplayer scoreboard runs as an always-on game, its Level 3 file server and scoreboard emulated on Cloudflare and anyone can join from MacBeeb.

Tools

Both emulators have a debugger with breakpoints, watchpoints, conditions, a trace and a profiler. Because the machines keep a rewind history, you can also step and continue backwards: find where something went wrong, then go back to see how it got there. They speak the Debug Adapter Protocol, and two VS Code extensions connect to them: press F5 and your 6502 or ARM assembler, or BBC BASIC, is assembled, put on a disc and run, with breakpoints in your own source.

They’re also built to be driven by AI agents. An MCP server lets a coding assistant boot a machine, type into it, read the screen, take screenshots, load discs and drive the debugger - on its own headless machine, or the one running in the app.

The debugger, stopped in Exile’s main loop, with the profiler’s heat on the busiest instructions

Everything is open source: MacBeeb and MacArch under the GPL v3, and ArcLibre under the Apache License 2.0. BBC Micro, Acorn, Archimedes and RISC OS are trademarks of their owners, and Acorn Playground isn’t affiliated with them.

Annhexation gameplay — a hex-based 4X strategy map
Annhexation Steam demo

Forty-two years after I first started programming, I built a 4X strategy game from scratch — a custom WebGPU engine, eight civilisations, and a game you can complete in an evening. Try the demo on Steam.

Built by James Randall — tool-maker, system builder, and occasional cyclist. Walking the hills with my four-legged friend when I'm not building worlds.
© 2025