Cyberithub

B-Em: Open Source BBC Micro Emulator for Win32 and Linux/Unix

Advertisements

In this article, we will look into B-Em open source BBC micro emulator for Win32 and Linux Unix. B-em is a free and open source emulator created by Acorn computers in 1980s along with a selection of 2nd processors. It is supported for Win32 and Linux/UNIX but may also work on other systems supported by the Allegro library. It comes with lot of features in which few of the important features are described below. It is also very easy to install and use. Here we will see the steps to install BBC Micro emulator through source code on Ubuntu Linux based systems.

 

Important Features

  • It can emulates models A, B, B+, Master 128, Master 512, Master Turbo and Master Compact
  • It can also emulates ARM evaluation system on Master 128
  • It can emulates 6502, 65816 and Z80 and 32016 tubes.
  • It provides cycle-accurate video emulation
  • It has all documented and undocumented 6502 instructions
  • It supports following disc formats - .ssd, .dsd, .adf, .adl, .img, .fdi and variants thereof for the non
  • Acorn DFSes.
  • Supports the following tape formats: .uef and .csw
  • Can run many protected disc and tape games.
  • SCSI and IDE hard disc emulation
  • Sound emulation, including sample playback
  • BeebSID emulation
  • Hybrid Music System emulating including Music 500o (synth), Music 4000 (keyboard, emulated via MIDI) and Music 2000 (MIDI).
  • Lots of video tricks, such as overscan, raster splitting, rupture, interlace, mid-line palette and mode splits, etc.
  • Video NuLA extended pallete ULA emulation.
  • Sideways RAM emulation
  • Joystick emulation
  • AMX Mouse emulation

 

B-Em: Open Source BBC Micro Emulator for Win32 and Linux/Unix

B-Em: Open Source BBC Micro Emulator for Win32 and Linux/Unix

Also Read: How to Install Allegro 5 library on Ubuntu 20.04 LTS (Focal Fossa)

To install B-Em open source BBC Micro Emulator on your system, you need to first clone the repo from GitHub by using git clone https://github.com/stardot/b-em.git command as shown below.

cyberithub@ubuntu:~$ git clone https://github.com/stardot/b-em.git
Cloning into 'b-em'...
remote: Enumerating objects: 10828, done.
remote: Counting objects: 100% (1770/1770), done.
remote: Compressing objects: 100% (625/625), done.
remote: Total 10828 (delta 1216), reused 1682 (delta 1143), pack-reused 9058
Receiving objects: 100% (10828/10828), 11.59 MiB | 4.37 MiB/s, done.
Resolving deltas: 100% (7837/7837), done.

Then switch to b-em directory using cd b-em command as shown below.

cyberithub@ubuntu:~$ cd b-em/

Then run ./autogen.sh && ./configure && make command to configure and compile the source code as shown below.

cyberithub@ubuntu:~/b-em$ ./autogen.sh && ./configure && make
configure.ac:14: installing 'etc/compile'
configure.ac:11: installing 'etc/config.guess'
configure.ac:11: installing 'etc/config.sub'
configure.ac:8: installing 'etc/install-sh'
configure.ac:8: installing 'etc/missing'
src/Makefile.am: installing 'etc/depcomp'
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
..........................................
make[1]: Leaving directory '/home/cyberithub/b-em/src'
make[1]: Entering directory '/home/cyberithub/b-em'
make[1]: Nothing to be done for 'all-am'.
make[1]: Leaving directory '/home/cyberithub/b-em'

Once done, install the binaries by using sudo make install command as shown below.

cyberithub@ubuntu:~/b-em$ sudo make install
[sudo] password for cyberithub:
Making install in src
make[1]: Entering directory '/home/cyberithub/b-em/src'
make[2]: Entering directory '/home/cyberithub/b-em/src'
/usr/bin/mkdir -p '/usr/local/bin'
/usr/bin/install -c b-em m7makechars hdfmt jstest gtest sdf2imd bsnapdump '/usr/local/bin'
make[2]: Nothing to be done for 'install-data-am'.
make[2]: Leaving directory '/home/cyberithub/b-em/src'
make[1]: Leaving directory '/home/cyberithub/b-em/src'
make[1]: Entering directory '/home/cyberithub/b-em'
make[2]: Entering directory '/home/cyberithub/b-em'
make[2]: Nothing to be done for 'install-exec-am'.
/usr/bin/mkdir -p '/usr/local/share/doc/b-em'
/usr/bin/install -c -m 644 README.md '/usr/local/share/doc/b-em'
/usr/bin/mkdir -p '/usr/local/share/b-em'
/usr/bin/install -c -m 644 b-em.cfg '/usr/local/share/b-em'
make install-data-hook
make[3]: Entering directory '/home/cyberithub/b-em'
mkdir -p /usr/local/share/b-em
cp -r ddnoise discs fonts roms tapes /usr/local/share/b-em
find /usr/local/share/b-em -type f -print0 | xargs -0 chmod 644
find /usr/local/share/b-em -type d -print0 | xargs -0 chmod 755
make[3]: Leaving directory '/home/cyberithub/b-em'
make[2]: Leaving directory '/home/cyberithub/b-em'
make[1]: Leaving directory '/home/cyberithub/b-em'

After successful installation, you can launch BBC Micro Emulator by running b-em command as shown below.

B-Em: Open Source BBC Micro Emulator for Win32 and Linux/Unix 2

You can also check all the other options available with b-em command using b-em --help as shown below.

cyberithub@ubuntu:~/b-em$ b-em --help
B-em v-d666bc6 command line options:

-mx - start as model x (see readme.txt for models)
-tx - start with tube x (see readme.txt for tubes)
-disc disc.ssd - load disc.ssd into drives :0/:2
-disc1 disc.ssd - load disc.ssd into drives :1/:3
-autoboot - boot disc in drive :0
-tape tape.uef - load tape.uef
-fasttape - set tape speed to fast
-Fx - set maximum video frames skipped
-s - scanlines display mode
-i - interlace display mode
-spx - Emulation speed x from 0 to 9 (default 4)
-debug - start debugger
-debugtube - start debugging tube processor
-exec file - debugger to execute file
-paste string - paste string in as if typed
-vroot host-dir - set the VDFS root
-vdir guest-dir - set the initial (boot) dir in VDFS

Leave a Comment