BeebEm

From wiki.gp2x.org
BeebEm
Ingame screenshot
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
Personal tools