BeebEm
Escott  BeebEm  Wolfenstein 3D  Home 
 
   
Excuse me! Is that KnightLore running on your PDA?!......... Sure is!
 
BeebEm is an emulator for the Acorn BBC Model B computer, an 8 bit machine of circa some years ago which was rather popular in the UK, and I guess in Europe (I don't think it was available in the States). BeebEm was written in 1994 by Dave Gilbert, its one of the best 8 bit emulators I've seen as it pretty much runs everthing it ought to and has nice authentic feel. There is a kind of BeebEm homepage here. BeebEm currently compiles for various Unices, Linux, Windows, and now for the Agenda Vr3 PDA!
 
This is very much an alpha test. Many features, including certain modes do not display correctly - I've only done enough to test a couple of games (KnightLore and Citadel). It runs fine, but it needs to be about twice as fast (at a guess - its actually not that bad). I've hacked it a bit to try and speed it up: in particular it now draws by writing directly to the framebuffer device (/dev/fb0). Switching to SNOW has significantly improved things over my pre-SNOW experiments. The RAM-kernel PMON setup also seemed to be an improvement (or was I imagining it?) but I've rolled that back since I couldn't run Wolfenstein with it. It still opens an 'invisible' X window to read key events... I'm thinking a direct /dev/tty0 approach might make a little difference esp. if I quit X altogether...? Anyhow the project's currently on a backburner until I get some more inspiration...
 
The following is describes how to set up BeebEm essentially how I have it my Agenda at the moment. That is, it runs KnightLore in a playable manner, and will run other games but the button mapping isn't right for them (though can be changed and recompiled...). You wll also need to download some other things - namely the BBC ROM images and disc images for whatever games you want to try. Probably, you can find this stuff elsewhere on the 'net. Note the port of BeebEm here is based on version 0.8, not the latest release (0.9), since I was using an older set of sources not realising there was a new one. There are also bunch of bodgy features I've added to get it to auto start a game when it runs.
 
These instructions are based on a SNOW build with the toolchain in /opt/snow-gcc as described (I think) somewhere on the Agenda Wiki pages. You can build for non-SNOW, but you'll have to figure out how for yourself...
 
To compile and install BeebEm on Agenda Vr3 with SNOW, download and unpack the sources beebem-0.8.2.tar.gz, cd to the directory and type:
source use_snow
./configure vr3snow
make
mipsel-linux-strip beebem
On the Vr3 I prefer to put everything in a directory called beebem under /home/default, so establish a network connection with your Vr3, telnet to it as default and type
mkdir beebem
cd beebem
mkdir beebfile
mkdir discims
Then on the workstation transfer over the executable
rsync beebem agenda::default/beebem/
In the beebfile directory need to go the three ROM images. These should be called (note, lowercase):
basic
dnfs
os12
In the discims directory go the disc images of the software you want to run. Currently I have two on my system, called:
kl.ssd
cit.ssd
Being Knight Lore and Citadel respectively. These for sure can be found on several websites, though I think I have renamed the files.
 
All this stuff should be copied to the relevant directories on the Agenda using rsync. Also you should copy from the beebem tar archive the two start scripts to the /home/default/beebem directory:
rsync kl_start agenda::default/beebem/
rsync cit_start agenda::default/beebem/
Make sure they have run permissions (chmod 770).
 
These are just single line shell scripts that start off beebem and run the relevant game (assuming its disc image is in the discims directory and named as above). By examining these files and the BeebEm documentation (specifically Readme.0th file) you should be able to set up other games. Teletext mode is just a blank screen at the moment, and also BeebEm doesn't seem to respond to the Agenda keypad, so starting games any other way is a bit impossible. Once the game runs the Agenda buttons are hard coded to the keys for KnightLore within BeebEm. The large key on the right hand side quits BeebEm. You can find these definitions in the file beebwin.cc if you wan't to change them. You will find there some code to uncomment to set the keys for Citadel
 
I recommend putting a link from one of your menus under /home/default/.wmx to kl_start so you can start it up without the overhead of a terminal or whatever.
 
Finally, before running BeebEm, you have to get user write permission on the frame buffer device. This must be done as root on your Agenda. So on your telnet session type:
su
password: agenda (unless you've changed it)
chgrp default /dev/fb0
chmod 664 /dev/fb0
exit
ls -l /dev/fb0
should give you this (with a different date and time)
crw-rw-r--    1 root     default    29,   0 Oct 30 03:52 /dev/fb0
I think this gets undone if you reset the Vr3, so bear that in mind if the Vr3 is reset and BeebEm doesn't work afterwards.
 
Note that Citadel is a bit tricky to start up and appears to have a blank screen for a long time (its actually showing the left hand picture below if you look carefully). Then you have to experiment with button pressing to get past the initial control selection screen, but it can be done...
 
That's it!
 
Any comments, questions etc. to: beebem@vaagmaer.com.
 
Citadel: