A Freeware BBC Micro Emulator for DOS, Windows and Mac OS X

The 8 Bit
Acorn Webring



This site is hosted by NETnorthClick here to download the latest version of B-EM for DOS (version 1.1).
Click here to download the latest version of B-EM for Windows (version 2.2) (source code included).
Click here to download the latest version of B-EM for Linux (version 2.2) (source code included).
Click here to download the previous version of B-EM for Linux (version 2.0a) (source code included).
Click here to download the latest version of B-EM for Mac OS X (version 1.0).
Click here to download the B-EM source code (version 1.5).

June 3rd 2012
B-em v2.2 released.

Changes from v2.1a:

  • MOS 3.50 emulation
  • Fixed CRTC bug when programmed with stupid values (MOS 3.50 startup)
  • ADFS disc corruption bug fixed (Carlo Concari)
  • Fixed ACIA bug - Pro Boxing Simulator tape version now works
  • Fixed bug which created endless blank hard disc images
  • Printer port DAC emulation
  • AMX mouse emulation
  • Master 512 mouse now works properly
  • Master Compact joystick emulation
  • IDE emulation available in non-Master models
  • UI fixes (some from Carlo Concari)
  • Improvements to VIA emulation
  • PAL video filter
  • Bugfixes in ARM and 65816 coprocessors
  • Debugger fixes
  • Tidying up of code
  • Windows version can now build on MSVC as well as GCC

February 14th 2011
B-em v2.1a released.

Changes from v2.1:

  • Keyboard bug fixed, Dr Who : The First Adventure now works
  • Video ULA bug, Atic Atac now has correct colours
  • Cursor inversion now works properly
  • Linux screenshots now work
  • Save states in Linux

November 15th 2010
B-em v2.1 Linux version released.

v2.1 has a more involved installation process than v2.0a, so the latter is still available.

October 25th 2010
B-em v2.1 released.

Changes from v2.0x:

  • IDE hard disc emulation
  • OpenGL video support (mainly for Linux)
  • Fixed 360k discs in Master 512 mode
  • Fixed some hanging bugs in Windows (mainly when resetting)
  • Resizeable window in Windows
  • Debugger improvements
  • VIA and video fixes, cassette version of Lunar Jetman now works
  • Lightpen fix, Pharaoh's Curse works
  • Some mode 7 fixes
  • Speed control
  • Savestates
Linux version should be updated shortly.

August 26th 2010
B-em v2.0b released.

Fixes (hopefully) a keyboard bug on some machines running Windows 7.

March 16th 2010
B-em v2.0a released.

Fixes a few bugs in v2.0. Also Linux port is now available.

March 14th 2010
B-em v2.0 released.

Changes from v1.5:

  • Most of the emulator re-written
  • Cycle-accurate video emulation
  • Higher quality mode 7
  • Added 80186 (Master 512) and 65816 second processors
  • BeebSID emulation (using resid-fp)
  • FDI support is back
  • Improved sound overall
  • Much more stable
  • Debugger
  • Redefineable keyboard
  • Now licensed under the GPL
Linux version should be out in a couple of days.

May 20th 2008
B-em v1.5 released.

Changes from v1.4a:

  • Acorn Z80 tube emulation
  • Various fixes to video and sound
  • New bandpass sound filter - recommended! (sounds very BBC-ish)
  • Fixed crash bug on exit

June 10th 2007
B-em v1.4a released.

This fixes the problems with modes 3 and 6. However, due to licensing problems, FDI disc images are no longer supported.

May 15th 2007
B-em v1.4 released.

Changes from v1.3:

  • 65c012 tube emulation (+ Master Turbo) - from 4mhz to 64mhz
  • Fixed bug in ARM tube emulation
  • Sideways ROMs supported in Master emulation
  • Windows version now releases unneeded CPU time
  • Sound should hopefully be better

December 13th 2006
B-em v1.3 released.

Changes from v1.2:

  • Better sound in Windows version
  • Better CSW support
  • Bugfix in mode 7
  • Bugfix in cursor handling - Frogman works again, no more random crashes in some games
  • Periodic noise pitch now correct - see Icarus, Cute To Kill
  • Video can now use hardware scaling - should be faster
  • Removed colour errors with 2xSaI filter
  • File dialogs now (finally!) work properly

Only Windows port updated at the moment, DOS version should be brought up to date before the end of the year.

July 28th 2006
B-em v1.2 released.

Changes from v1.1:

  • Preliminary CSW support
  • Improved timing, more protected games work (eg Nightshade, Tapper, Beach Head etc)
  • E00 DFS now supported
  • Disc writing works properly again

May 7th 2006
B-em v1.1 released.

Changes from v1.0:

  • Can now emulate a Model B with 1770 FDC
  • Better mode 7 emulation - many programs improved, eg Granny's Garden
  • Added cursor to modes 0-6
  • Altered video timing a little
  • Added more commands to 1770 FDC - Watford DDFS now works (single density only)
  • Some optimisations to video code
  • Update VGM logging to latest spec

February 1st 2006

The OS X port has been updated to version 1.0, thanks to Thomas Harte.

December 24th 2005
B-em v1.0 released.

Changes from v0.82:

  • FDI support. Allows use of copy protected disc images. A few bugs in FDC emulation remain, however about 75% of FDI images dumped so far work.
  • Improvements to timing, Joust now works, along with some Kevin Edwards protected games.
  • Master Compact emulation (largely for some of the dumped FDI images).
  • Slight improvements to cassette emulation, loader on Joust now works, speedup now available.
  • Fixes and optimisations to ARM emulation.

A load of FDI files will be available at www.acornpreservation.org later today, thanks to Dave Moore.

August 11th 2005
B-em v0.82 released.

Changes from v0.81b:

  • ARM Evaluation System emulation. Beware that this is quite slow and probably buggy (I don't have any software to test on it)
  • Fixed ADC/SBC BCD flags that were broken in 0.8 - Exile works again
  • Added read ID commands to 8271 FDC - Superior Collection now works
  • Ported to OS X

August 4th 2005

The first OS X alpha of B-em is now available, thanks to Thomas Harte.

July 28th 2005
B-em v0.81b released.

Changes from v0.81a:

  • Audio buffer length now user selectable (Windows only)
  • Fixed bug with instructions like STA $FFFF,x - 3D Grand Prix no longer crashes
  • A few other fixes

July 27th 2005
B-em v0.81a released.

Changes from v0.81:

  • Adjusted audio a bit, less lagging in Windows port
  • Fixed VGM logging

July 26th 2005
B-em v0.81 released.

Changes from v0.8:

  • Fixed bugs in 8271 and 1770 FDCs, all write operations should now work, along with formatting. The Hobbit also now works correctly
  • Fixed some crash bugs
  • Added command line options, mainly for use by frontends

July 2nd 2005
B-em v0.8 released.

Changes from v0.71b:

  • Timing improvements, some stuff that encrypts via timers (eg Frogman) now works
  • VIA improvements - fixed Planetoids/Super Defender/whatever, Volcano and Pharoah's Curse
  • Improvements to sound accuracy, Ghouls and Killer Gorilla (and probably others) have better sound
  • Cassette emulation now much more reliable, and supports HQ-UEF files
  • Save states are implemented again
  • Config file now in English
  • Added high pass sound filter and SID waveform
  • Vastly improved Windows port

July 27th 2004
B-em v0.71b released.

Changes from v0.71/0.71a:

  • 8271 FDC now supports writing
  • FDC no longer crashes B-em in The Hobbit
  • Windows version should be more responsive

July 6th 2004
B-em v0.71a released (Windows only update).

This release fixes a stupid bug relating to system resources on Windows.

July 5th 2004
B-em v0.71 released.

Changes from v0.7:

  • Stupid bug in Master 128 fixed - most Master stuff should work now
  • High resolution video now supported
  • 2xSaI filter
  • Bugs fixed in CRTC, Uridium and Psycastria now look better
  • Sound volume now logarithmic
  • Couple of other bug fixes
  • Win32 port can now run in a window

June 23rd 2004
Elkulator moved.

It is now at http://elkulator.acornelectron.co.uk

April 5th 2004
B-em v0.7 released.

Changes from v0.61:

  • Master 128 emulation (buggy)
  • Better video timing, Uridium works
  • VIA interrupt bug fixed, many games better
  • Interrupt bug fixed, Empire Strikes Back now working
  • Disc write (B+ and Master 128 only)
  • Sound mixing now 16 bit
  • Low pass filter for sound
  • Improved disc drive noise
  • More reliable tape emulation

January 28th 2004
B-em v0.61 released.

Changes from v0.6:

  • ADFS support
  • Model A support
  • Model B+ fixed a bit, Level 9 adventures now show pictures
  • Win32 version improved a bit
  • Some undocumented sound stuff emulated - Crazee Rider now has correct drums
  • Some other misc changes

July 31st 2003
B-em v0.6 released.

Changes from v0.5:

  • Model B+ support, along with 1770 emulation
  • Totally rewritten 6502 core - faster, more accurate
  • Fixed some VIA timing - Revs now works
  • UEF works better
  • New GUI
  • Improved sound core - now supports sample playback
  • Now emulates two disc drives
  • Win32 version now available

December 23rd 2002
B-em v0.5 released.

Changes from v0.4a:

  • Totally rewritten 6502 core - faster
  • Totally rewritten video - better split palette/mode emulation + R5 scrolling and some rupture
  • UEF support is back
  • New GUI
  • Blurring filter
  • Switchable sound waveforms
  • Samples no longer crash B-em
  • Sideways RAM emulation actually works
  • Joystick emulation

As usual, any feedback is appreciated. Send comments to : b-em@bbcmicro.com.

January 20th 2002
B-EM v0.4a released.

Changes from v0.4:

  • Some 6502 bugs fixed, Exile now working properly
  • Re-added Model A emulation
  • Disc drive noise added
  • Default config file no longer points to a non-existant file
  • Can now log sound - invented new file format for this (.sn - player and format description included)
  • Arrow keys and delete/copy now work again
  • Updated documentation.

(Still) wanted:

  • Replica 2 (good tape-to-disc menu prog)
  • Tube docs
  • Working ACIA emulation
  • Any ideas on how to get SN76489 samples working in Allegro's sound mixer
  • Pinouts for the BBC tape port (and to know if it's safe to poke wires in there - I can't be bothered to make a real cable).

As always, feedback is appreciated/welcomed/required(!) - the address to send any comments to is: b-em@bbcmicro.com.

January 13th 2002
B-EM v0.4 released.

New in this version:

  • Sound is *much* better
  • Speed increased 2-4 times
  • Video emulation improved. Full overscan is supported, and the colour generation is the same as on a real BBC
  • New GUI
  • UEF support removed, as it were crap
  • Directories semi-supported in TFS (for Dambusters and Sorcery)
  • Setup removed (no longer needed)
  • Some 6502 bugs fixed
  • Sideways RAM emulation added, but quite buggy
  • Exile now works! (just)
  • Elite is now playable!

April 23rd 2001
Uploaded a replacement source code zip that includes a couple of extra files, plus improved documentation.

April 22nd 2001
Uploaded the B-EM source code.

Can anyone help with any of the following?

  • Speed up the 6502 emulation
  • Speed up the video emulation
  • Fix the 6850 emulation
  • Fix some bugs in the 6522 emulation
  • Sort out sound emulation
  • Get bem.c to compile with optimisation
  • Neaten up the source code (no chance!).

If you think you can assist Tom in any way, please contact him at b-em@bbcmicro.com.

April 14th 2001
B-EM version 0.3a released.

Differences from the last version:

  • 'clear screen' command removed, as it was using the same key as change disc
  • stuff held in seperate directories:
    • roms - OS ROM and paged ROMs
    • inf - .INF files (with the extension-less files as well)
    • uef - .UEF files
    • discs - .SSD, .IMG, and .DSD files
  • You shouldn't get 'chunk ID' errors anymore with the UEF code
  • American BBC support.

*Please* let Tom know how you get on with the new version!!

Any feedback should be directed to b-em@bbcmicro.com.

April 1st 2001
First public release of B-EM (version 0.3).


  • Emulates the BBC Model B
  • All documented video modes supported
  • All documented and undocumented 6502 instructions
  • 8271 Floppy Disc Controller emulated (single drive, double sided, 80 track)
  • Supports five formats for BBC storage on PC - .ssd, .dsd, .inf, .uef (preliminary) and __catalog__
  • Sound emulation (preliminary)
  • Snapshots
  • Optional 6502 debugging to file.