A Linux/Qt fork of RPCEmu 0.9.5 — the Acorn RiscPC and A7000 emulator — extended with a StrongARM SA-1110 machine, a dual RISC OS 4 / RISC OS 5 launcher, an emulated KineticGraphics card that lifts the VIDC20 display ceiling, and a range of other fixes.
Runs on modern Ubuntu / Debian / Fedora / Arch with Qt 5 or Qt 6.
Portions Copyright © 2026 Martin Eastwood — RISCOS Technologies.
Licensed under the GNU General Public License, Version 2 (see LICENSE).
- Six machines: ARM610, ARM710, StrongARM RiscPC, A7000, A7000+, and a new StrongARM SA-1110 model. Phoebe and Risc PC ARM810 removed from the picker.
- FPA10 hardware coprocessor emulation enabled (interpreter and amd64 dynarec) with cycle‑accurate timing — ~100× the software FPEmulator on Whetstone.
- Emulated 64 MB graphics podule at physical
0x40000000, driven by the bundled KineticGfx GraphicsV module (ObjAsm source underriscos-progs/KGXDriver/, pre‑built module inpoduleroms/). - Bypasses VIDC20 entirely — supports modes from 16×16 up to 4096×2560 at 16M colours (32bpp).
- Hardware pointer, hardware‑scroll display start register, and a small 2D blit engine.
- New RISC OS commands:
*KGXInfo,*KGXSelect,*KGXMode w h,*KGXDesktop w h,*KGXRevert,*KGXWimpMode.
- SLiRP NAT with Access+/ShareFS broadcast relay (talk to other RISC OS systems on the host LAN).
- 64‑deep RX FIFO in the NAT path — absorbs bursty ShareFS discovery that the single‑slot design dropped.
- Correct source‑port handling for external Access unicasts (no more split ShareFS conversations that stall on opening a shared disc).
IFF_RUNNINGfilter — skips idle virtual bridges likedocker0.
- Qt 5 or Qt 6 (pick with
-DRPCEMU_QT_VERSION=6). - Dual‑machine launcher:
--riscos4usesrpc-riscos4.cfg,--riscos5usesrpc.cfg. Each has its own CMOS, disc image and HostFS root, so you can install RO4 and RO5 in parallel without stepping on each other. - Pixel‑perfect integer scaling — Settings → Pixel‑perfect Scaling.
- Start in Full‑screen — Settings → Start in Full‑screen.
- RISC OS
Shutdowncloses the emulator window — OS_Reset with the “&OFF” magic is intercepted and turned into a clean Qt quit.
- The amd64 dynarec now recompiles flag‑setting data‑processing
instructions inline (ADDS/SUBS/RSBS/CMP/CMN/ANDS/EORS/ORRS/BICS/MOVS/
MVNS/TST/TEQ). Comes with a differential test suite
(
tests/test_jit_flags.c, 8320 checks, all pass against the interpreter). - HostFS hardening: guest path strings truncated rather than overflowing
fixed host buffers; open‑file handles validated instead of raw‑indexed;
Boot$Dirdefined at module init so drag‑copy between HostFS discs works without!Boot. - Disc parsing hardening: HFE geometry validated and track‑list malloc checked; ADF format sanity check against the track buffer.
- Memory allocation checks —
fatal()on failure instead of NULL deref.
- VRAM cap raised to 16 MB (was 8 MB in the shipped ROM).
Debian / Ubuntu:
sudo apt install cmake build-essential qt6-base-dev qt6-multimedia-dev
cmake -S . -B build -DRPCEMU_QT_VERSION=6 -DRPCEMU_DYNAREC=ON
cmake --build build -j$(nproc)
./rpcemu-recompilerOptional: run the JIT flag differential test.
cmake -S . -B build-tests -DRPCEMU_DYNAREC=ON -DRPCEMU_BUILD_TESTS=ON
cmake --build build-tests --target test_jit_flags
./build-tests/tests/test_jit_flags # expect: 8320 checks, 0 failuresQt 5 works too (-DRPCEMU_QT_VERSION=5), and the interpreter engine builds
without the dynarec (-DRPCEMU_DYNAREC=OFF) for non‑x86 hosts.
The emulator is a two‑binary layout: pick RO4 or RO5 at launch time.
./rpcemu-recompiler --riscos5 # loads rpc.cfg + roms/
./rpcemu-recompiler --riscos4 # loads rpc-riscos4.cfg + roms-riscos4/ROM images are not shipped — supply your own. The RISC OS 5.31 image is freely downloadable from RISC OS Open under Apache 2.0; RISC OS 4 / Adjust is not.
For the KineticGraphics card, once RO5 has booted, from a Task window:
*KGXInfo # confirm the card is present
*KGXDesktop 2560 1440 # switch the desktop to that mode
*KGXRevert # back to VIDC20
- Original RPCEmu © 2005‑2010 Sarah Walker and contributors, GPLv2.
- Qt front‑end originated by Peter Howkins and Matthew Howkins.
- HostFS module © 2005‑2010 Matthew Howkins.
- KineticGraphics card + KGXDriver GraphicsV module — ported from Kinetic Box 2.0 © 2026 Martin Eastwood.
- Various fixes ported from Andrew Timmins'
rpcemu-extendedfork. - Session ports, integrations, and the SA-1110 fork work © 2026 Martin Eastwood — RISCOS Technologies.
Bug reports, patches, and hate mail welcome via GitHub Issues.