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: | Beech-x86.zip |
Windows 64-bit binary: | Beech-x64.zip |
Source code: | Beech-src.zip |
Visual C++ 2013 Redistributable for Windows 32-bit: | vcredist_x86.zip |
Visual C++ 2013 Redistributable for Windows 64-bit: | vcredist_x64.zip |
How to use
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. |
|
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. |
-
- Colin Fraser’s site
- The AMPLINEX archive
- Retro-kit.co.uk’s page on the Music 5000
- David Banks’s reverse-engineering notes. These were very helpful, filling in gaps with my own efforts reverse-engineering the synth’s schematic, and providing confirmation where I’d actually got it right!
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.
Hi, I found your website when searching for information about the old Acorn Music 5000 system. I am an engineer and I still have a Music 500 unit. I was musing about a project to drive it with something other than a BBC micro but I would be intrigued to know how you connect the hardware unit to a PC so that your emulator can drive it?
PhilipJ
> The 500’s “SYNCRON” program sounds different from a recording of the real unit. Not sure why.
If you send me a recording (or preferably post on YouTube), I can probably tell you which, er, bit 🙂 you’re missing.
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
Yes, I apologise, I’d completely forgotten to look after this site and the downloads went missing. I’ve fixed the links and it should be available again.
The download links don’t work. I’m wanting to try this out and, I hope, encourage you to keep developing. The Music500/5000 emulation is what I’m looking for.
Yes, I apologise, I’d completely forgotten to look after this site and the downloads went missing. I’ve fixed the links and it should be available again.