Advance Mess and BBC Micro and joystick control
-
Is it possible to remap specific games without making .sh files for each game and using a single advmess.rc file without destroying the bootup scripts?
In other words I use the CHAIN"LOAD" script and additionally I 'd like to remap a keyboard game to joystick (I'd prefer to play Exile.ssd with a Joystick). Do I scramble up those letters which are already used by the chain load script? -
@teller I don't know the answer to that. Instead of using advmess's internal joystick controls, I use
xboxdrv
so my joysticks mimic the keys that are already set by each game. It means I don't need to fiddle too much with theadvmess.rc
file, except to add in thescript_play
commands to autostart games. @John_RM_70 or @SpudsMcToole may have a better idea as I'm pretty sure both of them are using joysticks via the advmess.rc file. -
@teller Yes, you can remap autoboots and key maps to specific games in a single RC file. See my guide to AdvMESS And The BBC Micro For Dummies which I think is still on the front page.
-
splendid!
here's my joystick config for SEE EMILY PLAY ;)bbcbp128[home_pi_retropie_roms_bbcmicro_seeemilyplay]/input_map[key_capslock] joystick_digital[046d_c219,0,0,1] or keyboard[0566_3029,capslock] bbcbp128[home_pi_retropie_roms_bbcmicro_seeemilyplay]/input_map[key_ctrl] joystick_digital[046d_c219,0,0,0] or keyboard[0566_3029,lcontrol] bbcbp128[home_pi_retropie_roms_bbcmicro_seeemilyplay]/input_map[key_space] joystick_button[046d_c219,tr] or keyboard[0566_3029,space] bbcbp128[home_pi_retropie_roms_bbcmicro_seeemilyplay]/input_map[key_n] joystick_button[046d_c219,tl] or keyboard[0566_3029,n] bbcbp128[home_pi_retropie_roms_bbcmicro_seeemilyplay]/input_map[key_enter] joystick_button[046d_c219,a] or keyboard[0566_3029,enter]
I use a Logitech F710 which is working very well on RetroPie!
The funny thing was that the capslock didn't turn up to be saved, so I had to manually enter that line into advmess.rc. -
Are there any games that only work with the bbcb, that can't be loaded on bbcbp128?
I ask because I think it's not possible to switch between the two without modifying manually the emulators.cfg. -
@teller said in Advance Mess and BBC Micro and joystick control:
Are there any games that only work with the bbcb, that can't be loaded on bbcbp128?
I ask because I think it's not possible to switch between the two without modifying manually the emulators.cfg.I found a few, I'd recommend using bbcb rather tham bbcbp128.
-
unfortunately in this game SABRE WULF the input key SHIFT is used for using the sword. It can't be mapped twice, otherwise i get a Type mismatch error and the autoboot command looks like this:
CHAIN 2LOAD2 instead of CHAIN "LOAD"input map (SWORD):
bbcb[home_pi_retropie_roms_bbcmicro_sabrewulf]/input_map[key_shift] joystick_button[046d_c219,a] or keyboard[0566_3029,lshift]
autoboot command
bbcb[home_pi_retropie_roms_bbcmicro_sabrewulf]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_lshift,150); simulate_key(key_2,50); delay(200); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_lshift,150); simulate_key(key_2,50); delay(200); simulate_key(key_enter,75); delay(75);
I also tried rshift.
In other words, a game which uses the same keys for the autoboot command can't be used. -
@teller Could you use capslock instead? That's what I use in the script_play commands.
-
@spud11 Good idea!
But if I try key_capslock I get
CHAIN load -
@teller Ok. Repeat the capslock command in your script_play so that it is capitalised again and make sure you use the "2" to create the quotations. Have a look at some of my scripts in the other thread.
-
@teller In fact, here are my scripts for you:
bbcb/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_k,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_2,50); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_capslock,75); delay(75); simulate_key(key_quote,75); delay(75); simulate_key(key_1,75); delay(75); simulate_key(key_b,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_chuckie]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(200); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_c,75); delay(75); simulate_key(key_k,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_g,75); delay(75); simulate_key(key_2,50); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_elite]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_capslock,75); delay(75); simulate_key(key_quote,75); delay(75); simulate_key(key_1,75); delay(75); simulate_key(key_b,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_thrust]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_repton]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_repton]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_tempest]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_m,75); delay(75); simulate_key(key_p,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_tempest]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_m,75); delay(75); simulate_key(key_p,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_meteors]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_m,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_meteors]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_m,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_t,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_snapper]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_p,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_snapper]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_c,75); delay(75); simulate_key(key_h,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_i,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_space,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_s,75); delay(75); simulate_key(key_n,75); delay(75); simulate_key(key_a,75); delay(75); simulate_key(key_p,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcb[home_pi_retropie_roms_bbcmicro_loderunner]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_capslock,75); delay(75); simulate_key(key_quote,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_n,75); delay(100); simulate_key(key_space,100); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_loderunner]/script_play delay(750); simulate_key(key_scrlock,75); simulate_key(key_capslock,75); delay(75); simulate_key(key_quote,75); delay(75); simulate_key(key_r,75); delay(75); simulate_key(key_u,75); delay(75); simulate_key(key_n,75); delay(100); simulate_key(key_space,100); simulate_key(key_2,75); delay(75); simulate_key(key_l,75); delay(75); simulate_key(key_o,75); delay(75); simulate_key(key_d,75); delay(75); simulate_key(key_e,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75);
-
That trick with double capslock didn't work either.
Thanks for your scripts.
I also tested your default script_play commands on my system.
All I get is
CHAIN 2load2
do you have different keyboard settings? I didn't change anything in raspi-config. -
@teller I think you may have capslock on automatically. That can be the only explanation if using one of my scripts switches you to small letters when you "press" capslock.
Leave the capslock out and just use the "2" key to create the quotations (capslock + 2 should create quotations).
It's probably the difference between the UK-style keyboard and the US-style keyboard. The BBC Micro was a UK computer. I'm using a US-style keyboard. On my US-style keyboard, the quotation key appears next to the enter key. However, in order to create quotations using the capslock on the BBC Micro, I need to press the "2" key. I figured this out by trial and error by just typing various keys.
-
Yeah, must be a keyboard setup difference.
Or it could be that we use a different Acorn DFS Basic ROM?
But if I have another game that uses capslock, then the autoboot won't work as well.
THRUST uses capslock if I remember. -
@teller Possibly. Advmess is a mess indeed.
You could have separate scripts for Sabre Wulf and for Thrust - one that uses capslock and one that doesn't.
Worst case, remove all the scripts, start a BBC Micro game, attach your keyboard to the Pi (or use a bluetooth keyboard) and experiment by pressing keys with or without capslock/shift to see what comes up on the BBC. That's what I ended up doing for a few of my scripts, particularly because I found the
*
was in a completely different location on the BBC from where it was on my keyboard. -
@spud11 found the right key to get " working ! i need to press alt + 2, then I'll get "
-
Shift for Thrust doesn't work on my joystick although it's mapped correctly.
bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_shift] joystick_button[046d_c219,a]
the autoboot script has no shift command in use.
i don't know why, advmess is driving me crazy! -
@teller In my
advmess.rc
file, I have:input_map[key_lshift] keyboard[0,lshift] or joystick_button[0079_0006_3,2] input_map[key_rshift] keyboard[0,rshift] input_map[key_shift] auto bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_lshift] joystick_button[0079_0006_3,2] or keyboard[0,lshift] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_rshift] joystick_button[0079_0006_3,2] or keyboard[0,lshift]
Obviously, the joystick buttons will be different for you. There's unfortunately not a lot of consistency overall between everyone's setups, so experimentation is probably the only way to get there.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.