Bizmuth 1.0.0-rc1 is available
October 2, 2026
Bizmuth
Bizmuth 1.0.0-rc1 is available to download — the first release candidate for 1.0.0. The headline is speed: emulation is faster, and the emulator spends much less CPU time doing it.
Performance
- Roughly a quarter of the CPU time with a window open — 76% fewer cycles and 99% fewer page faults, measured on Linux/X11 at the same 50 frames a second
- Interrupt-heavy programs run faster: one change to the IM2 daisy chain alone gives NXModPlayer 118% and TX-1696 18%
- A UART channel with nothing attached is no longer clocked — ScrollNutter gains 6.4%
- The window presents through OpenGL where it can, letting the GPU scale the frame, and an unchanged frame is not presented again
- Full screen keeps up: a 5K2K ultrawide ran at 2 frames a second, and now presents 50
Output is byte-identical to the previous build on every benchmark workload.
Breaking
- A memory watchpoint is
wp add mem, notbp add mem. The old spelling answers with the new one. - The debug servers are off on a fresh install [
--debug-protocol,debug.protocol]. An existing config keeps what it had.
Added
- Run FantASM
!testblocks on the emulated Next, from boot to a ready point if the program needs one, with the card attached [--run-tests] - FantASM’s
.fxiimages, and several files loaded in order:--load flint.nex --load prog.fxi[--load, File ▸ Open] - A
.nexwanting an open file handle loads through NextZXOS’s own.nexload, with companions beside it [--nex-route,--load-with] - Watchpoints on a register, from ADP or FantASM source — catches a stack running away [
wp add reg sp < 7F00,watch] - More than one SLD, for a program built as several images [
--sld] - Pin a window of the address space to the page a loader chose [
map add] - A controller-driven overlay: every menu action, preferences, file choosing, text entry and Run Setup, with no mouse or keyboard [hold Select,
--player] - The emulator’s own frame times — mean, p99, worst, overruns [
frametimes] - UDP on the virtual ESP [
AT+CIPSTART="UDP"] - End a headless capture from a script [
stop()]
Fixed
- 17 debugger and annotation fixes — an
assertin a relocated or unplaced image fired against the wrong code (one run reported 11563 failures against 60 claims); a script’s top level re-ran before every handler; a headless run counted claims checked that were never reached - 5 window and overlay fixes — OpenGL drew nothing on macOS; no letter ever reached the overlay’s text entry; a key held as the window lost focus stayed pressed
- 4 Next hardware fixes — the port enables in
$82–$85turned nothing off; Kempston answered on any port with A0 set; port$FFfloated under +3 and Pentagon timing; a soft reset kept SP and AF - 4 virtual ESP fixes —
AT+RST, its timing, echo and command-line parsing now match an ESP-01S, measured on one - 3 tape fixes —
--tapewas ignored on the Next; TZX Custom Info blocks and zero-count loops refused the whole tape - 3
--loadfixes — a.z80or.snaran on the Next at 28 MHz, or was refused in a window - 3
--run-testsfixes —--sdwas ignored; thereadyfield refused the whole file - 2 save fixes — a large save stuttered the machine; a failed savestate ended the session
Changed
- Single-stepping on the Next advances every clock a running frame does — copper, DMA, CTC, audio — and redraws the screen at a frame boundary
- The overlay grows to fill a small display such as the Steam Deck’s
- The hardware reference and debugger guide moved into the manual
The full changelog has the rest.
Bizmuth is free. Get it from the Downloads page. ROMs and SD images are user-supplied and not included.