Jump to content
LaunchBox Community Forums

BBC Micro Computer on 'beeb em'


kerszr

Recommended Posts

So I can't seem to find a BBC Micro thread. I would love to learn how to hook up the emulator 'Beebem' to launch box. The part I'm having problems with is launching the boot disk then the 'other' disk. I have a lot of those types of problems especially with old floppy based systems. Is there a secret way of inputing two floppies at once? If so, could you walk me through it? Also: I LOVE THE BETA BUILD.
Link to comment
Share on other sites

Hey, I run a BeebEm setup on launchbox with no fancy settings, just point to beebem as your emulator and I have the .SSD games from . I need to start my games by doing *cat to list the directory, then, in the example of Elite - chain "elite" to run the game. I don't have any boot disks, can you give an example? EDIT - Just to clarify - once I pick a game, it loads to the BASIC command prompt, if you type *CAT it will list the contents of the disk, then CHAIN "FILENAMEHERE" will run the game, just like it was on the original hardware :)
Link to comment
Share on other sites

  • 5 years later...

I have BBC Micro working seamlessly on my cabinet using only the arcade buttons, and no keyboard. It was anything but straight forward getting it running flawlessly. This will go well beyond the scope of the original post here, but I want this here for my own purpose in case I lose my hard drive data at any point, and also to help others if you dare figure this novel of an explanation out! :)

Here is what I did:

In BeebEm, go to the Options tab and check "Hide Cursor" and "User Defined Mapping". Be sure to click on Options/Save Preferences after this, or BeebEm's configuration file will not reflect these changes, and they won't happen when you're trying to play your games.

In LaunchBox go to Tools/Manage Emulators (if you've already created a BBC Micro Emulator in LaunchBox, otherwise set one up, and still follow these steps), then in "Default command line parameters", type "%romfile%" (including the quotes). For the check boxes, uncheck "Don't use quotes", but check "No space before ROM" and "Use file name only without file extension or folder path". In "Sample Command" type .LaunchBoxBBCMicro.ahk "%romfile%""File" (with the quotes).

Next, in the folder where BeebEm.exe is located, paste the .LaunchBoxBBCMicro file I attached to this reply. You will need to right click on the AHK file, and edit it. You'll need to change "C:\LaunchBox\Roms\BBC" "Micro\%romname%.ssd" to point towards your rom path (notice that " " is used for a space in your path). You will also need to change "C:\LaunchBox\Emulators\BBC Micro\KEYBOARD_MAPPINGS\%romname%.ahk" to point to the folder where you are going to keep your AHK remapping files (mentioned immediately below).

Unfortunately BBC Micro does not use the same keys on every game. This is a big problem for an arcade cabinet unless you really feel like digging out a keyboard every time you play your BBC Micro games, and the work around is extremely tedious. To get around this, I had to custom code an AHK script for each of my games. These AHK scripts must have the same name as the rom file, and should not include any spaces. You will likely need to edit the rom file name so it does not have spaces. I attached all of the AHK button mapping files I've made to this point in the rar file.

For reference when looking at the AHK scripts:

Note #1:

My cabinet has the buttons remapped using a program called Xpadder to the following: player 1 joystick mapped to a(joystick up), b(joystick down), c(joystick left), d(joystick right), e(button 1), f(button 2), g(button 3), h(button 4), i(button 5), j(button 6), k(player 1 start), l(player 1 select), m(joystick 2 up), n(joystick 2 down), o(joystick 2 left), p(joystick 2 right), q(button 7), r(button 8), s(button 9), t(button 10), u(button 11), v(button 12), w(player 2 start), x(player 2 select), y(left pinball button), and z(right pinball button).

Note #2:

The symbols or letters on the right side of the "::" in the script are the ones that my arcade buttons are being mapped to. For example, a::` implies that when I move my player 1 joystick up, it sends ` instead. The ` button is "up" in 3D Dotty on the BBC Micro in BeebEm.

Note #3:

Unfortunately BeebEm does not respond well to AHK mappings such as "Send {n Down}{Enter Down}" "Sleep 50" "Send {Enter Up}{n Up}". As a result, you will see how I remapped "k" in the 3D Dotty script. BeebEm works fine when remapping multiple keys in this way, including the "Sleep 50" between all of the key inputs.

Note #4:

The way I exit out of games on my cabinet is by hitting both the select and start buttons simultaneously. You'll see at the bottom of the script that I have four possible remapping's to exit the game. Those account for if the user hits the select button followed by the start button, or vice versa, and they could do that on the player 1 buttons, or the player 2 buttons. If you have a dedicated exit button, then you would only need to have a single remapping.

Note #5:

You will see a section at the top of every remapping script labeled, "Make inactive keys do nothing". This section is there because, for example, if I hit a button on the player 2 side of my button panel that sends some keystroke, BeebEm may react to that keystroke, even though I didn't want that button to do anything.

Rather than find out which buttons did something in any given game, I just chose to include that "Make inactive keys do nothing" section at the top of every script where all other buttons not used in the given script do nothing (i.e. all they do is send "Return" which AHK interprets as essentially move along, nothing to see here).

Some of the buttons in that section will have a dollar sign ($) next to them. This is needed for AHK to understand that it should still be able to send that keystroke programmatically in its code. For example, c::z will make my player 1 left joystick which would otherwise send "c" to BeebEm send "z" instead. However I do not want my right side pinball button which would otherwise send "z" to be interpreted by BeebEm as the same as left on the player 1 joystick. So in the "Make inactive keys do nothing" section you would see "$z::return". This tells AHK to allow "z" to still be sent by its own code "c::z", but the "z" button on my arcade just sends "return" (i.e. do nothing).

.LaunchBoxBBCMicro.ahk

KEYBOARD_MAPPINGS.rar

Edited by mcfasa09
  • Thanks 1
Link to comment
Share on other sites

  • 4 weeks later...
On 6/19/2021 at 8:20 AM, mcfasa09 said:

I have BBC Micro working seamlessly on my cabinet using only the arcade buttons, and no keyboard. It was anything but straight forward getting it running flawlessly. This will go well beyond the scope of the original post here, but I want this here for my own purpose in case I lose my hard drive data at any point, and also to help others if you dare figure this novel of an explanation out! :)

Here is what I did:

In BeebEm, go to the Options tab and check "Hide Cursor" and "User Defined Mapping". Be sure to click on Options/Save Preferences after this, or BeebEm's configuration file will not reflect these changes, and they won't happen when you're trying to play your games.

In LaunchBox go to Tools/Manage Emulators (if you've already created a BBC Micro Emulator in LaunchBox, otherwise set one up, and still follow these steps), then in "Default command line parameters", type "%romfile%" (including the quotes). For the check boxes, uncheck "Don't use quotes", but check "No space before ROM" and "Use file name only without file extension or folder path". In "Sample Command" type .LaunchBoxBBCMicro.ahk "%romfile%""File" (with the quotes).

Next, in the folder where BeebEm.exe is located, paste the .LaunchBoxBBCMicro file I attached to this reply. You will need to right click on the AHK file, and edit it. You'll need to change "C:\LaunchBox\Roms\BBC" "Micro\%romname%.ssd" to point towards your rom path (notice that " " is used for a space in your path). You will also need to change "C:\LaunchBox\Emulators\BBC Micro\KEYBOARD_MAPPINGS\%romname%.ahk" to point to the folder where you are going to keep your AHK remapping files (mentioned immediately below).

Unfortunately BBC Micro does not use the same keys on every game. This is a big problem for an arcade cabinet unless you really feel like digging out a keyboard every time you play your BBC Micro games, and the work around is extremely tedious. To get around this, I had to custom code an AHK script for each of my games. These AHK scripts must have the same name as the rom file, and should not include any spaces. You will likely need to edit the rom file name so it does not have spaces. I attached all of the AHK button mapping files I've made to this point in the rar file.

For reference when looking at the AHK scripts:

Note #1:

My cabinet has the buttons remapped using a program called Xpadder to the following: player 1 joystick mapped to a(joystick up), b(joystick down), c(joystick left), d(joystick right), e(button 1), f(button 2), g(button 3), h(button 4), i(button 5), j(button 6), k(player 1 start), l(player 1 select), m(joystick 2 up), n(joystick 2 down), o(joystick 2 left), p(joystick 2 right), q(button 7), r(button 8), s(button 9), t(button 10), u(button 11), v(button 12), w(player 2 start), x(player 2 select), y(left pinball button), and z(right pinball button).

Note #2:

The symbols or letters on the right side of the "::" in the script are the ones that my arcade buttons are being mapped to. For example, a::` implies that when I move my player 1 joystick up, it sends ` instead. The ` button is "up" in 3D Dotty on the BBC Micro in BeebEm.

Note #3:

Unfortunately BeebEm does not respond well to AHK mappings such as "Send {n Down}{Enter Down}" "Sleep 50" "Send {Enter Up}{n Up}". As a result, you will see how I remapped "k" in the 3D Dotty script. BeebEm works fine when remapping multiple keys in this way, including the "Sleep 50" between all of the key inputs.

Note #4:

The way I exit out of games on my cabinet is by hitting both the select and start buttons simultaneously. You'll see at the bottom of the script that I have four possible remapping's to exit the game. Those account for if the user hits the select button followed by the start button, or vice versa, and they could do that on the player 1 buttons, or the player 2 buttons. If you have a dedicated exit button, then you would only need to have a single remapping.

Note #5:

You will see a section at the top of every remapping script labeled, "Make inactive keys do nothing". This section is there because, for example, if I hit a button on the player 2 side of my button panel that sends some keystroke, BeebEm may react to that keystroke, even though I didn't want that button to do anything.

Rather than find out which buttons did something in any given game, I just chose to include that "Make inactive keys do nothing" section at the top of every script where all other buttons not used in the given script do nothing (i.e. all they do is send "Return" which AHK interprets as essentially move along, nothing to see here).

Some of the buttons in that section will have a dollar sign ($) next to them. This is needed for AHK to understand that it should still be able to send that keystroke programmatically in its code. For example, c::z will make my player 1 left joystick which would otherwise send "c" to BeebEm send "z" instead. However I do not want my right side pinball button which would otherwise send "z" to be interpreted by BeebEm as the same as left on the player 1 joystick. So in the "Make inactive keys do nothing" section you would see "$z::return". This tells AHK to allow "z" to still be sent by its own code "c::z", but the "z" button on my arcade just sends "return" (i.e. do nothing).

.LaunchBoxBBCMicro.ahk 639 B · 1 download

KEYBOARD_MAPPINGS.rar 25.33 kB · 0 downloads

Hello,

I followed mcfasa09´s guide, but I can´t get the roms directly run, through launchbox. First problem is; you wrote: "In "Sample Command" type .LaunchBoxBBCMicro.ahk "%romfile%""File" (with the quotes)."

But for me, it´s not possible, to edit the Sample Command-line.
When I start a rom through launchbox, the emulator (beebem 4.17) will start and shows a command-promt. It will not autostart any rom :(

Can someone helb me, to get it work?

Link to comment
Share on other sites

According to another poster -

 

For disk image formats (ssd, dsd etc.) clicking on a game in LaunchBox will by default auto-boot it in BeebEm

What format are your Roms in?

 

I often have to ctrl+f12 to get my games to run when the command prompt opens

 

I'll try run through the above instructions at some point soon and report back if they work or have issues

Edited by locvez
Link to comment
Share on other sites

22 minutes ago, locvez said:

According to another poster -

 

For disk image formats (ssd, dsd etc.) clicking on a game in LaunchBox will by default auto-boot it in BeebEm

What format are your Roms in?

 

I often have to ctrl+f12 to get my games to run when the command prompt opens

 

I'll try run through the above instructions at some point soon and report back if they work or have issues

Thank you, locvez. I´ve read the same post, a few hours ago :(
I don´t know, whats wrong, with my settings. First I setup the emulator to launchbox, double-clicked on a game and the emulator startet - but with no rom image in the disk drive. After that I tried some checkbox-settings, on and off, but I always got the same result.

Nearly 99% of my roms are in the .ssd file-format. A few more are in the .uef file-format.

Link to comment
Share on other sites

  • 2 years later...
  • 2 weeks later...

None of the above is really needed for direct boot..... 

In Launchbox just add BeebEm with default settings

On the emulator details screen do not add anything to "Default Command-Line Parameters" - this should be blank

Keep all tick boxes unchecked

 

Make sure that the ROM files you import into Launchbox are only the bootfiles

 

You can now launch direct from Launchbox straight to game

 

  • Thanks 1
Link to comment
Share on other sites

  • 7 months later...

@megaman_255

Hi,
Better late than never I suppose, this might be useful to other people trying to get discs to autoboot.

This is how I do it:

Double click the game you want to autoboot, e.g. Elite.ssd

Once in BeebEm, type *. or *CAT and press Enter to list the contents of the disc.

A !BOOT file needs to exist. This is like a startup file which shows what commands will be executed when the disc boots up.
If one exists you can see what it contains by typing *TYPE !BOOT
The Elite one contains this:
*BASIC
*DIR $
MODE 7
CHAIN"ELITE"

The last part of getting it to boot automatically is to used *OPT 4,3

Before setting this option run the *. command again and if it displays "Option 0 (off)" in the top right hand corner this means auto-boot is disabled for this disc.

If you run *OPT 4,3 and then run *. again you should see "Option 3 (EXEC)" instead.

Now if you do a reboot (Shift BREAK) using Shift F12 it should auto boot the game.

This should persist and should auto boot the game when launched from Launchbox.

Note: If you have it in a zip file (with Launchbox emulator options set to unzip) then any changes you make to the disc won't be saved.
 

Edited by ChasBing
  • Unusual Gem 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...