Beech: a BBC Micro emulator (v0.3) 1


Yes, Beech can run Elite

Yes, Beech can run Elite

Beech is a BBC Micro emulator. It emulates a Model B with 8271 DFS, and also supports the Music 500/5000 synthesizer.

The program is licensed under the GPL v2.

Requirements

Beech is currently Windows-only, and requires at least Windows 7.

Before running Beech, you’ll need to find the following ROM images and place them in the roms directory:-

    • os12.rom
    • basic2.rom
    • dfs.rom or wdfs.rom (optional, if you want to use disks; either the Acorn or Watford DFS will do)
    • ample.rom (optional, if you want to use the Music 5000)

Downloads

Please note that none of these downloads include ROMs, disks, tapes, or snapshots.

As well as Beech itself, you might need the Visual C++ 2013 Redistributable too. If Beech complains of missing DLLs, just download the appropriate redistributable from here and run it. Alternatively, if you prefer, you can get them direct from Microsoft.

Windows 32-bit binary: Download “Beech-x86.zip”
Windows 64-bit binary: Download “Beech-x64.zip”
Source code: Download “Beech-src.zip”
Visual C++ 2013 Redistributable for Windows 32-bit: Download “vcredist_x86.exe”
Visual C++ 2013 Redistributable for Windows 64-bit: Download “vcredist_x64.exe”

How to use

At this point, Beech is still in a relatively early state and there are some known issues (see below). However, the vast majority of software works fine. If you do find anything that doesn’t work correctly, do let me know. Supported file formats are:
Disks: SSD and DSD
Tapes: UEF
Snapshots: UEF (broadly compatible with BeebEm)

When the emulator starts, it will be in a paused state. To start it, click on the “Go Live” checkbox, then click on the screen display so it will receive keyboard input. (You can tell if the emulated machine has keyboard focus from the border colour. If it’s light, it has focus.) By default, the PC keyboard layout will be used, which should make typing more natural. If you are playing games, however, you’ll probably want to uncheck “PC Keyboard Mapping” so the layout matches the real BBC more closely. In either case, the Break key is assigned to both F11 and F12, and Copy is Home.

The other checkboxes work as follows: “Go Max Speed” makes the emulator run as fast as it can; “Audio” enables audio; “Hear Tape” lets you hear the tape input; “Flashload” speeds up tape loading considerably; “Show Debug Info” opens a side panel with some debugging facilities. Hopefully, everything else is self-explanatory.

If you have a joystick or game controller plugged in, it should be automatically detected, and you can use it in games with joystick support.

How to build

The prerequisites are zlib and PortAudio. PortAudio needs to be placed in “Beech/Beech/portaudio”, and built with MSVC according to the instructions on its site.

Once that’s done, you can build Beech from the Visual Studio solution file in its root directory.

Notes on the Music 500/5000

While the AMPLE ROM is sufficient for the Music 5000, if you want to use the 500, you’ll need to use the interpreter on its system disk instead. Note that the two versions of the language are not compatible: songs for the disk AMPLE will not play on the ROM version and vice versa.

Here’s a quick start guide for each version.

Music 500 Start the AMPLE interpreter with *AMPLE (or, if you have the 5000 ROM installed, use */AMPLE instead to force the disk version to load). If you want to play the song called SONG, just type

"SONG" LOAD RUN

and press Return, and it should start. If it produces an error instead, either the disk is missing some extra modules the song needs, or it’s a 5000 program, or possibly it’s just a bad file. Some disks have a MENU file you can load the same way.

Beech plays the blues

Beech plays the blues

Music 5000 I’ve found that, although many 5000 disks have a !BOOT file, they don’t have the boot option set. If that’s the case, don’t ignore the !BOOT file because it’ll probably preload modules the music files will need. Either *OPT 4,3 and Shift+Break, or just *EXEC !BOOT manually. This should bring you into a menu system. From here you can load a song/program and play it just by selecting the appropriate options.

Some disks have a JUKEBOX program which lets you choose songs from a menu.

 

For more information on the Music System, some good sites are:-

Known bugs

    • Very occasionally the shift keys seem to stick and won’t produce shifted characters. You can toggle the “PC Keyboard Mapping” checkbox to clear this.
    • Sound in general is slightly choppy. I need to use more precise timing code.
    • The Music 500/5000 synth outputs mono instead of stereo (easy to fix, I just haven’t got around to it).
    • The 500’s “SYNCRON” program sounds different from a recording of the real unit. Not sure why.
    • The teletext character rounding is wrong on the lowest scanline of each character. This is most noticeable with descenders and double-height.
    • Watch Impact’s demo mode. The ball falls through the bat!
    • Firetrack’s in-game screen flickers like crazy.

Things I’m thinking of adding

    • Better GUI (including fullscreen mode).
    • UI for configuring ROMs and sideways RAM.
    • Undocumented 6502 opcodes.
    • Tape writing.
    • Snapshot saving. (Would need a new UEF chunk type for the Music 5000’s internal RAM. Not sure who allocates chunk IDs.)
    • 1770 disk support, and therefore ADFS.
    • Internally it’d be pretty easy to add extra modules for the B+, Master and even Electron. It’d be very nice to have the BBC and Electron in one emulator.
    • Instant tape loading. This is very tricky because of the way the OS uses interrupts to receive each byte from the serial system. It’s not just a matter of hooking a single ROM routine as it is on, for example, the Spectrum.

Leave a comment

Your email address will not be published. Required fields are marked *

One thought on “Beech: a BBC Micro emulator (v0.3)

  • Matt Hopkins

    Hi Darren
    This looks really interesting. I had the Music 500 and the Music 2000 midi interface when I was a kid. They never got the midi in working as far as I recall :). I remember programming Ample in reverse Polish like the Forth computer language.

    I’d love to see the old % prompt again 🙂 but I couldn’t download the source code or any of the links in the blog, is there a problem that you are aware of?

    Cheers
    Matt