BEEBEM is a BBC Micro Model 'B' emulator, it works by emulating
the hardware found in a BBC Micro. It was first developed
for
UNIX systems in 1994 by David Gilbert. Since then I have ported
the emulator to the PS2 and added some new features essential
to the console version.
The emulator is very accurate and as such, it has a high
degree
of compatibility with most software titles.
With the exception of sampled sound (very rare on the Beeb)
the
emulator is able to render both video and audio very accurately.
BEEBEM is freeware. You may copy and distribute it as much
as you like. Please do not contact me asking for disk image
files, there are plenty of resources detailing how to transfer
your Beeb software.
///////////////////////////////////////////////////////////////
// Features
//
- emulates a BBC Model B 32K with sideways ram
- full frame rate (between 4 and 5 times faster than the beeb)
- 48Khz mono audio output (matching the beeb)
- full USB keyboard support (USB 1.1 compliant)
- basic controller support (sufficient to play Exile)
- pretty user interface (so that you can select disk images)
- loads disks and states from the cdrom via an XML index.
///////////////////////////////////////////////////////////////
// Setting up the emulator
//
You will need to author a CD containing the emulator and
an
indexed list of files.
BEEBEM will load two types of files, disk image files (.SSD)
these are analogous to 5"1/4 floppy disks; beeb state
files
(.BST) are also supported.
You may incorporate as many of these files as you like
provided that your adhere to the following conventions:
SSD files must be placed in the SSD directory, BST files
must
be placed in the BST directory.
Both directories contain an INDEX.XML file; this contains
an
XML description of each file in that directory.
The schema (pattern) used by BEEBEM is easy to follow. Each
index file starts with a root node: <DISKS> in the case
of
the SSD index file, and <STATES> in the case of the
BST
index file.
Within this node exists multiple child nodes which describe
each file in the corresponding directory. E.g.
Filenames must be no greater than 9 characters including
the extension. Titles, no greater than 127 characters.
The index file ends with a closing node, </DISKS> in
the
case of the SSD index file, and </STATES> in the case
of
the BST index file.
Because XML is such a popular format, there should be no
shortage of freeware utilities to help you create well-
formed XML according to the schema above.
Once you have prepared the disk image files in the correct
directory and added to appropriate entries to the INDEX.XML
file you will need to copy the IRX, ELF and CNF files to
the root directory of your CD. Similarly, copy the
directories: ALP, ROM, SSD and BST to your CD.
The CD should be Mode 2 ISO format :
- Use ISO9660 level 1 filesystem
- Use ISO9660 character set
- Disable Joliet
- Disable any ISO9660 relaxations.
Further to this, you may need to patch your CD, depending
on
your boot method (old versions of AR/GS require SYSTEM.CNF
to be at a certain location on the CD).
//////////////////////////////////////////////////////////////
// Mode 2 ISO 9660 File System Limitations <--- IMPORTANT
The Mode 2 ISO file system used by the PS2 only allows 30
files per directory.
Therefore, if you wish to add more than 30 files you will
need to create subdirectories under the SSD directory which
contains each batch of files.
The SSD\INDEX.XML file must stay in the same place, inside
it each disk entry will look something like this:
In the above example BEEBEM will read SSD\INDEX.XML and look
for the game called FILE.EXT in SSD\SUBDIR\
Note: Although I have extended the maximum file path length
to 31 characters try to keep the names of your directories
short.
//////////////////////////////////////////////////////////////
// Using the emulator
//
Having created the CD, boot it with your favourite method,
typically this involves swapping with an AR / GS CD.
If the CD has been created properly you will see the Beeb's
logo appear. Once the user-interface has loaded use your PS2
controller to move up and down the menu, press X to select
and
'triangle' to cancel.
Alternatively, if you have a USB keyboard, use the cursor
keys
to navigate the menu, press RETURN to select and ESCAPE to
cancel.
Select "run emulation" after loading a disk or
state.
To return to the user-interface, press the START button on
your
controller or press the PAUSE button on your keyboard.
///////////////////////////////////////////////////////////////
// Known Issues
//
Under NTSC systems the emulator will run 17% faster. I don't
know whether to call this a bug or a feature, it is kind of
nice in a weird way!
David Gilbert, for giving us BeebEm
Richard Gellman, for implementing undocumented 6502 instructions.
Sjeep, for his help and especially the low-level sound driver.
Stryder_H, for helping me on so many occasions.
jboom, for hosting the beebem ps2 site.
pukko, for client-side EE PS2 controller library.
Gustavo et al, for their work on PS2LIB.
Dreamtime, for his introductory tutorials on PS2DEV
now3d, for documenting the PS2DEV environment.
oobles, for pulling all this info onto one site!