BeebEm
BeebEm | |
---|---|
Download(s) | latest Critical version (no virtual keyboard)/latest Fru T. Bunn version (no GUI) |
Developer(s) | David Gilbert |
Porting developer(s) |
critical, Fru T. Bunn |
Version | v0.4.0 |
Status | Released and Playable |
Webpage |
criticalbeeb/BeebEm is a BBC B Micro emulator. It is essentially the work of David Gilbert, who wrote the original UNIX version, with modifications by various people including Mike Wyatt, Richard Gellman and Dave Eggleston. Critical took Dave Eggleston's beebem-0.0.11, added a menu for the GP2X, fiddled with the rendering code, wrote some key mapping code, added some key mappings, and here we are. Critical took inspiration (and probably some code) from pspbeeb-v1.0.7, which was the PSP port performed by Ludovic Jacomme. Fru T. Bunn wrote the original Windows to SDL port, and has since merged Criticalbeeb with his own work, adding sound suppport and more.
Contents |
Installation Instructions
Copy all of the file included with this readme.txt file onto your SD card, maintaining the directory structure.
Put your BBC Micro disk images in the criticalbeeb/discs directory. They should be unzipped, have the extension .ssd or .dsd, and not be in any subdirectory - just in criticalbeeb/discs.
Disks may be transferred from your originals by following the instructions at: http://www.stairwaytohell.com/index2.html. Games are also available for download from that site.
Let's Go
Start criticalbeeb.gpe
You are presented with the main menu.
- Sound options are between On, Off and Accurate. Accurate sound emulation
can result in latency (delay between on-screen event and the sound being played), but sounds nicer. Off can give a speed boost.
- Frameskip allows you to speed up emulation by not emulating every frame of display.
- Key mapping allows you to select a file that holds mappings between the
GP2X's buttons and the emulated BBC Micro's keys. Use joystick left and right to go through the mappings, and press B when you have the one you want. It will then apply the new mappings, and display which buttons are mapped to which keys.
Some mappings for games I like are provided, and further information is given about the mapping system below (see "KEY MAPPING").
- State will allow you to load/save the current state of the emulated BBC Micro.
At version 0.1.0, this is not yet supported.
- Selecting a disk: use the joystick left and right to go through the list of discs
that are in your criticalbeeb/discs directory. When the disc you want to play is shown, hit B. The game will load and run.
- Quit will exit back to the GP2X menu.
Whilst the emulation is running, the GP2X's START button will take you back to the criticalbeeb main menu, pausing the emulation. Pressing START again will resume the emulation.
Key Mapping
Since the virtual keyboard hasn't been implemented yet, button to key mapping is currently essential to playing the games. Inside the criticalbeeb/kbd directory there are a number of .kbd files. You can see inside default.kbd that they map GP2X buttons and joystick directions to key names. The key names follow the SDL key naming forms largely, with a few extras to make life easier.
GP2X buttons supported: LEFT, RIGHT, UP, DOWN, A, B, X, Y, SELECT
Emulation keys supported (in the sense that it'll try to do something with them - clearly many aren't supported by the BBC Micro anyway):
BACKSPACE, TAB, CLEAR, RETURN, ESCAPE, SPACE, EXCLAIM, QUOTEDBL, HASH, PAUSE, DOLLAR, AMPERSAND, QUOTE, LEFTPAREN, RIGHTPAREN, ASTERISK, PLUS, COMMA, MINUS, PERIOD, SLASH, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, COLON, SEMICOLON, LESS, EQUALS, GREATER, QUESTION, AT, LEFTBRACKET, BACKSLASH, RIGHTBRACKET, CARET, UNDERSCORE, BACKQUOTE, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, DELETE, KP0, KP1, KP2, KP3, KP4, KP5, KP6, KP7, KP8, KP9, KP_PERIOD, KP_DIVIDE, KP_MULTIPLY, KP_MINUS, KP_PLUS, KP_ENTER, KP_EQUALS, UP, DOWN, RIGHT, LEFT, INSERT, HOME, END, PAGEUP, PAGEDOWN, F0, F1, F2, F3, F4, F5, F6, F7, F8, F9, NUMLOCK, CAPSLOCK, SCROLLOCK, SHIFT, CTRL, RALT, LALT, MODE, HELP, PRINT, SYSREQ, BREAK, MENU, POWER, EURO
The supplied key mapping files have been tested to work with the following games:
- barbarian.kbd: works for Barbarian
- blast.kbd: works for Blast!
- bugeyes.kbd: works for Bugeyes and Bugeyes 2
- chuckieegg.kbd: works for Chuckie Egg (although you must redefine keys)
- cybertron.kbd: works for Cybertron Mission
- default.kbd: works for Snapper, Killer Gorilla, Repton, and probably lots more
- exile.kbd: works partially for Exile (not all functions permitted - wait for virtual keyboard)
- hobgoblin.kbd: works for Hobgoblin, Hobgoblin 2, Boxer, Scramble, and probably more (uses shift)
- ricochet.kbd: works for Ricochet
- starshipcmd.kbd: works for Starship Command
- thrust.kbd: works for Thrust and Qwak
If you've added some for games you like to play, please mail them to me and I'll add them to the distribution.
Other Key Mappings
Frak!
For Frak!, you probably want to copy the default.kbd as frak.kbd and just change the following line:
X=n to: X=COLON
Cybertron Mission
LEFT=COMMA RIGHT=PERIOD UP=a DOWN=z A=SPACE B=m X=n Y=RETURN SELECT=ESCAPE
Chuckie Egg
To get Chuckie Egg working, wait for the game to go to the menu, then press the A button. This will take you to the Chuckie Egg control configuration. You can then just set it up properly. I couldn't remember what the default up and down keys were, otherwise I'd have provided them in the key mapping file.
Mr Wiz
To run MrWiz, use the command: /mnt/sd/beebem/beebem /mnt/sd/beebem/MrWiz.ssd
# Initial state of emulator: SET ORIENTATION=FLIPPED SET VOLUME=50 # Normal screen orientation keys (we don't use these): LEFT=BBC_Z RIGHT=BBC_X UP=BBC_: DOWN=BBC_/ A=BBC_SPACE B=BBC_SPACE X=BBC_RETURN Y=BBC_RETURN SELECT=BBC_ESCAPE VOLUP=VOLUME VOLDOWN=VOLUME L=NOTHING R=NOTHING # The 'flipped' screen orientation keys (we do use these): R_LEFT=BBC_X R_RIGHT=BBC_Z R_UP=BBC_/ R_DOWN=BBC_: R_A=BBC_X R_B=BBC_Z R_X=BBC_: R_Y=BBC_/ R_SELECT=ESCAPE R_L=NOTHING R_R=NOTHING R_VOLUP=BBC_SPACE R_VOLDOWN=BBC_RETURN
TODO
- Save states
- GUI
- Emulation is slow for some games.
- Screen not scaled properly for some games (Snapper loses last few lines, for example).
Version History
BeebEm
- 20070223 - V4
- No longer dependent on a hardwired directory, should now install anywhere on your SD card.
- Fully working virtual keyboard with excellent graphics by Rooster.
- Configuration pages, simply click the options you want enabled and off you go!
- A Button mapper, no more messing about with configuration files! Simply use the built in mapper and click save - bingo!
- You can now change the audio volume via the user interface, so the volume is no longer fixed for 'flipped' mode games (or if you remap the volume buttons).
- 20061216 - V3
- Added additional mapping to Critical's keyboard code
- Added screen flip - use Y, A, B & X as a D-Pad
- 20061209 - V2
- Merged Critical's virtual keyboard
- Speed is regulated
- Can load multiple images
- 20061205 - V1
- Proof of concept
- Only plays Zalaga - keys hardwired
Criticalbeeb
- 20061009 - 0.3.0
- added load/save states
- per-disc settings saving
- 20061008 - 0.2.0
- added diagonals
- button repeats in menu
- sorted keymap and disc lists
- More keymaps.
- 20061006 - 0.1.0
- first public release