Criticalbeeb 0.1.0 Released


critical

Certified Guru
Joined
Apr 4, 2005
Messages
666
Website
www.handheldhacker.com
EDIT: now version 0.3.1 - used scaling (no more cut-off Snapper), changed rendering, slightly fiddled with 6502 core, added [ (LEFTBRACKET) and ] (RIGHTBRACKET) mapping and a .kbd file for Labyrinth showing their use

I wanted a BBC Micro emulator that I could hack at and improve, and actually play games on, and since the source wasn't provided for the one that was released before, I thought I'd have a go at one myself.

You can download it at: http://www.handheldhacker.com/gp2x/criticalbeeb0.3.1.zip

The obligatory screenshots:

menu.jpg
repton.jpg

[CUT]
The readme.txt file contents (in the hope that they might actually get read):

Code:
criticalbeeb 0.3.1
------------------


INTRODUCTION
------------

criticalbeeb 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.  I 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.  I took inspiration (and probably some code) 
from pspbeeb-v1.0.7, which was the PSP port performed by Ludovic Jacomme.

My contact email address is criticalhippo@gmail.com

Acknowledgements for GP2X port: squidge for his mmuhack, ryleh for his minlib, 
Karl Bartel for SFont, Adam Bedore for the menu fonts, Jean-loup Gailly and 
Mark Adler for zlib (when it's actually implemented), Acorn for producing the mighty 
machine in the first place, and finally Dave Moore for running www.stairwaytohell.com.

The licence for the main part of this release may be found in the doc directory,
and others are provided along with the source in the src0.3.1.zip file included.

Note that the main licence states that if changes are made, the new source *must* be 
distributed along with the binary.  Please respect this.


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 tranferred 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.  

* Save settings for game : once a disc has been loaded, you can persist the frameskip
and keymap settings for it by pressing B on this item.  When the disc is next loaded,
it will automatically restore your settings.  Settings are stored in the "set" directory.

* 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)
frak.kbd: works for Frak!
hobgoblin.kbd: works for Hobgoblin, Hobgoblin 2, Boxer, Scramble, and probably more (uses shift)
labyrinth.kbd: works for Labyrinth.  B is ]
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.

TODO
----

This is an early release of criticalbeeb.  It has a whole range of problems with it, 
but is playable for me, so it's being released in the hope that others might also 
enjoy it.  I welcome constructive criticism and bug reports, but please make sure 
they aren't already noted here:

Sound is poor.
Emulation is slow for some games.
A virtual keyboard isn't implemented yet.


VERSION HISTORY
---------------

20061010 - 0.3.1 changed rendering/scaling, some 6502 core work, added [ and ] to keymaps
20061009 - 0.3.0 added load/save states, and 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
[/cut]
 
Excellent work, if only i had a GP2X! :eek:

You've made emulators for my 2 favourite systems, well the ones i spent most time with, Beeb and Amiga. :)
 
critical posted on Oct 6 2006 at 01:12 PM said:
I wanted a BBC Micro emulator that I could hack at and improve, and actually play games on, and since the source wasn't provided for the one that was released before, I thought I'd have a go at one myself.


Is it Dec 25th??!

Thanks! Can't wait to try it!
 
Last edited by a moderator:
ste_167 posted on Oct 6 2006 at 04:06 PM said:
How have you sorted the key-mapping to thumbstick issue?
As described above in excruciating detail, under the heading "KEY MAPPING" ;)
 
Last edited by a moderator:
critical posted on Oct 6 2006 at 04:08 PM said:
ste_167 posted on Oct 6 2006 at 04:06 PM said:
How have you sorted the key-mapping to thumbstick issue?
As described above in excruciating detail, under the heading "KEY MAPPING" ;)

Sorry! I never read DVD player manuals.. and my childhood Airfix models always had pieces in the wrong places..
 
Last edited by a moderator:
Fantastic!!

Remind me to brick my GP2X next time we want a PSX emulator, BBC emulator and new Lynx emulator all in one week!

Can't wait to try this when it gets back...

Critical, are you accepting donations for this?
 
Gruntfuggly posted on Oct 6 2006 at 04:45 PM said:
Remind me to brick my GP2X next time we want a PSX emulator, BBC emulator and new Lynx emulator all in one week!

Can't wait to try this when it gets back...
Hehehe. They're normally pretty quick, I've found. I'm looking forward to attacking my GP2X with power tools soon, but hopefully it won't result in disaster. I managed to screw up my GP32 FLU's light by doing something as simple as the glass mod on it, so I'm not overly-confident, however.

Critical, are you accepting donations for this?
I've never been known to turn away money :) My paypal's the same as my contact address.

Hope you like it - I need to do work speeding up the rendering mainly, I think. There's a lot of bloat in the code base too.
 
Last edited by a moderator:
drokkeh posted on Oct 6 2006 at 06:50 PM said:
How about elite to be added to the keymap collection. Although i never played it on beeb it was meant to be the best version by far?
It doesn't really lend itself to straight mapping, as amongst other things you need to enter quantities using the number keys - you'd run out quite quickly! When I implement a virtual keyboard it'll be playable.

Try the NES version of Elite in fishynes or something if you want the best handheld experience. The rom is available online, though never got formally released on that plaform AFAIK.
 
Last edited by a moderator:
critical posted on Oct 6 2006 at 07:42 PM said:
drokkeh posted on Oct 6 2006 at 06:50 PM said:
How about elite to be added to the keymap collection. Although i never played it on beeb it was meant to be the best version by far?
It doesn't really lend itself to straight mapping, as amongst other things you need to enter quantities using the number keys - you'd run out quite quickly! When I implement a virtual keyboard it'll be playable.

Try the NES version of Elite in fishynes or something if you want the best handheld experience. The rom is available online, though never got formally released on that plaform AFAIK.


Elite *was* available in the shops for NES, i bought a copy from a bric-a-brac store circa 1993 - Your right, it was a great version. Wish i had kept hold of it as i'm sure it (may) have been worth something.

Also, when i was playing that version i got stuck trying to find a certain planet i had to transport something to. I w'ent to the phonebox on the corner and rang the number in the elite manual and spoke to david brabens secratary who was relaying my question to david himself! LOL :)

....he couldnt remember either as he was 'working on frontier at the moment'

This might seem a load of cobblers but it's actually true!
 
Last edited by a moderator:
Excellent, cant wait to try this out :)

EDIT: I cant get it to work, clicking on the gpe file just sends me to a black screen. At first I was curious if it didn't like me changing the folder name from 'criticalbeeb' to just 'BBCmicro', but I changed it back and no difference :(
Is there anything that needs to be added/changed in the folder other than popping in disc images?

EDIT2: Ah, it's ok, just popped a new version of the folder in the root of my sd card and it seems fine. oh and runs nicely, well done :)
There may be an issue with the diagonals on the control stick though, I just cant seem to hit any.
 
Thanks critical.. I was hoping someone would start a new project for the good old beeb. I will definitely be donating at some point during its development.

Here's a gmenu2x icon if anyone wants it:
bbcpu8.png
 
Is anyone getting "File not found" on some games? I can't seem to get it to run Chuckie Egg :/

Wonder why it says that for some and not others?
 
Back
Top