AdvMESS For Dummies - a basic guide
-
@spud11 said in AdvMESS For Dummies - a basic guide:
The other thing that strikes me is that you might be able to use the script_play command to "press" the TAB key to enter the menu. See my reference to key_scrlock in the code above which should change the keyboard from full emulation to partial emulation and perhaps allow you to press the TAB key on your keyboard. Anyway, worth a try.
Ah, I think you might be onto something here. I just noticed that the MESS splash screen that flashes up very briefly when the BBC boots says "UI: disabled" on it and tells me to toggle it with ScrollLock or NumLock, which of course I don't have.
I'm not too sure how to use this information, though. When I add the line script_play delay(750); simulate_key(key_scrlock,75) to the RC file on its own (replacing the empty "script_play" line), MESS crashes with the error report:
Error compiling the script: 'delay(750); simulate_key(key_scrlock,75)', syntax error, unexpected $end
-
@SpudsMcToole That's a good question. My Chuckie Egg rom is called
Chuckie Egg
. The equivalent code inadvmess.rc
is:bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]
You'll see that the
home_pi_retropie_roms_bbcmicro_
is effectively the folder in which your roms appear for the BBC Micro.Also, even if you are stuck, once you've got one of the games starting, I'm pretty sure that the
advmess.rc
records the inputs for the game you played at the bottom of the file - at least I've got something like the below in myadvmess.rc
. It's been a while but I don't think I added this manually:bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_1] joystick_button[0079_0006_3,7] or keyboard[0,1] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_3] joystick_button[0079_0006,10] or keyboard[0,3] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_2] joystick_button[0079_0006,9] or keyboard[0,2] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_4] joystick_button[0079_0006,11] or keyboard[0,4] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_5] joystick_button[0079_0006,12] or keyboard[0,5] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_7] joystick_button[0079_0006,14] or keyboard[0,7] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_6] joystick_button[0079_0006,13] or keyboard[0,6] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_8] joystick_button[0079_0006,15] or keyboard[0,8] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_9] joystick_button[0079_0006,16] or keyboard[0,9] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_0] joystick_button[0079_0006,18] or keyboard[0,0] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_enter] joystick_button[0079_0006,19] or keyboard[0,enter] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_del] joystick_button[0079_0006,17] or keyboard[0,del] or keyboard[0,backspace] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_a] joystick_digital[0079_0006_3,0,0,0] or keyboard[0,a] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_s] joystick_button[0079_0006_3,7] or keyboard[0,s] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_z] joystick_digital[0079_0006_3,0,0,1] or keyboard[0,z] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_space] joystick_button[0079_0006_3,2] or keyboard[0,space] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_comma] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,comma] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_period] joystick_digital[0079_0006_3,0,1,0] or keyboard[0,period]
I might be wrong, but I'm pretty sure I didn't add this manually. If I'm right and it was automatically added, then just by starting a game and then exiting and having a look at the
advmess.rc
should give you a bit of a better idea of how to construct the scripts. A bit of trial and error is useful in this case and having a look at theadvmess.rc
file.But ALWAYS make a backup of
advmess.rc
. It is a temperamental beast. Even 1 character out of place will stop it working. -
@SpudsMcToole Try this instead:
bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/script_play delay(750); simulate_key(key_scrlock,75);
The above assumes that you are starting Thrust.
I haven't tried below but I suggest trying it anyway:
bbcbp128/script_play delay(750); simulate_key(key_scrlock,75);
I don't know whether the generic code (ie no reference to a game) will work. Possibly not.
One other possible generic code to try:
script_play delay(750); simulate_key(key_scrlock,75);
The code immediately above I reckon is the most likely one to work in a generic fashion. The last one is likely to work across all systems ie not just BBC Micro.
-
@SpudsMcToole While I'm about it, my entire
advmess.rc
file is below:debug_crash no debug_rawsound no debug_speedmark no device_alsa_device default device_alsa_mixer channel device_color_bgr15 yes device_color_bgr16 yes device_color_bgr24 yes device_color_bgr32 yes device_color_bgr8 yes device_color_palette8 no device_color_yuy2 no device_joystick auto device_keyboard sdl device_mouse auto device_raw_firstkeyhack no device_raw_mousedev[0] auto device_raw_mousedev[1] auto device_raw_mousedev[2] auto device_raw_mousedev[3] auto device_raw_mousetype[0] pnp device_raw_mousetype[1] pnp device_raw_mousetype[2] pnp device_raw_mousetype[3] pnp device_sdl_samples 512 device_sound auto device_video sdl device_video_cursor auto device_video_doublescan yes device_video_fastchange yes device_video_interlace no device_video_output overlay device_video_overlaysize 0 device_video_singlescan no device_video_clock 10 - 150 / 30.5 - 60 / 55 - 130 dir_artwork /home/pi/.advance/artwork:/usr/local/share/advance/artwork:/opt/retropie/emulators/advmame/share/advance/artwork dir_crc /home/pi/.advance/crc dir_diff /home/pi/.advance/diff dir_hi /home/pi/.advance/hi dir_image /home/pi/.advance/image:/usr/local/share/advance/image:/opt/retropie/emulators/advmame/share/advance/image:/opt/retropie/configs/mame-advmame/image:/home/pi/RetroPie/roms/bbcmicro dir_inp /home/pi/.advance/inp dir_memcard /home/pi/.advance/memcard dir_nvram /home/pi/.advance/nvram dir_rom /home/pi/.advance/rom:/usr/local/share/advance/rom:/opt/retropie/emulators/advmame/share/advance/rom:/opt/retropie/configs/mame-advmame/rom dir_sample /home/pi/.advance/sample:/usr/local/share/advance/sample:/opt/retropie/emulators/advmame/share/advance/sample dir_snap /home/pi/.advance/snap dir_sta /home/pi/.advance/sta display_adjust none display_antialias no display_artwork_backdrop no display_artwork_bezel no display_artwork_crop no display_artwork_overlay no display_beam 1 display_brightness 1 display_buffer no display_color auto # Below widens the screen to 16:9 display_expand 1.35 display_flicker 0 display_flipx no display_flipy no display_frameskip auto display_gamma 1 display_intensity 1.5 display_interlaceeffect none display_magnify auto display_magnifysize 640 display_mode auto display_pausebrightness 1 display_resize fractional display_resizeeffect none display_restore no display_rgbeffect none display_rol no display_ror no display_scanlines no display_skipcolumns auto display_skiplines auto display_translucency no display_vsync yes include input_hotkey yes input_idleexit 0 input_map[event10] auto input_map[event11] auto input_map[event12] auto input_map[event13] auto input_map[event14] auto input_map[event1] auto input_map[event2] auto input_map[event3] auto input_map[event4] auto input_map[event5] auto input_map[event6] auto input_map[event7] auto input_map[event8] auto input_map[event9] auto input_map[key_0] joystick_button[0,18] or keyboard[0,0] input_map[key_1] joystick_button[0,8] or keyboard[0,1] input_map[key_2] joystick_button[0,9] or keyboard[0,2] input_map[key_3] joystick_button[0,10] or keyboard[0,3] input_map[key_4] joystick_button[0,11] or keyboard[0,4] input_map[key_5] joystick_button[0,12] or keyboard[0,5] input_map[key_6] joystick_button[0,13] or keyboard[0,6] input_map[key_7] joystick_button[0,14] or keyboard[0,7] input_map[key_8] joystick_button[0,15] or keyboard[0,8] input_map[key_9] joystick_button[0,16] or keyboard[0,9] input_map[key_a] auto input_map[key_again] auto input_map[key_alt] auto input_map[key_asterisk] auto input_map[key_b] auto input_map[key_back] auto input_map[key_backquote] auto input_map[key_backslash] auto input_map[key_backspace] auto input_map[key_break] auto input_map[key_c] auto input_map[key_capslock] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,capslock] input_map[key_closebrace] auto input_map[key_colon] auto input_map[key_comma] auto input_map[key_copy] auto input_map[key_ctrl] auto input_map[key_cut] auto input_map[key_d] auto input_map[key_del] joystick_button[0,17] or keyboard[0,del] or keyboard[0,backspace] input_map[key_diesis] auto input_map[key_doublequote] auto input_map[key_down] auto input_map[key_e] auto input_map[key_edit] auto input_map[key_end] auto input_map[key_enter] joystick_button[0,19] or keyboard[0,enter] input_map[key_equals] auto input_map[key_esc] auto input_map[key_f10] auto input_map[key_f11] auto input_map[key_f12] auto input_map[key_f13] auto input_map[key_f14] auto input_map[key_f15] auto input_map[key_f16] auto input_map[key_f17] auto input_map[key_f18] auto input_map[key_f19] auto input_map[key_f1] auto input_map[key_f20] auto input_map[key_f21] auto input_map[key_f22] auto input_map[key_f23] auto input_map[key_f24] auto input_map[key_f2] auto input_map[key_f3] auto input_map[key_f4] auto input_map[key_f5] auto input_map[key_f6] auto input_map[key_f7] auto input_map[key_f8] auto input_map[key_f9] auto input_map[key_f] auto input_map[key_fctn] auto input_map[key_find] auto input_map[key_forward] auto input_map[key_g] auto input_map[key_graph] auto input_map[key_h] auto input_map[key_help] auto input_map[key_hold] auto input_map[key_home] auto input_map[key_i] auto input_map[key_ins] auto input_map[key_j] auto input_map[key_k] auto input_map[key_l] auto input_map[key_lalt] auto input_map[key_lctrl] auto input_map[key_left] auto input_map[key_less] auto input_map[key_lshift] keyboard[0,lshift] or joystick_button[0079_0006_3,2] input_map[key_m] auto input_map[key_menu] auto input_map[key_minus] auto input_map[key_move] auto input_map[key_n] auto input_map[key_numlock] auto input_map[key_o] auto input_map[key_open] auto input_map[key_openbrace] auto input_map[key_p] auto input_map[key_pad_0] auto input_map[key_pad_1] auto input_map[key_pad_2] auto input_map[key_pad_3] auto input_map[key_pad_4] auto input_map[key_pad_5] auto input_map[key_pad_6] auto input_map[key_pad_7] auto input_map[key_pad_8] auto input_map[key_pad_9] auto input_map[key_pad_asterisk] auto input_map[key_pad_colon] auto input_map[key_pad_diesis] auto input_map[key_pad_enter] auto input_map[key_pad_minus] auto input_map[key_pad_plus] auto input_map[key_pad_slash] auto input_map[key_paste] auto input_map[key_pause] auto input_map[key_period] auto input_map[key_pgdn] auto input_map[key_pgup] auto input_map[key_play] auto input_map[key_plus] auto input_map[key_pound] auto input_map[key_print] auto input_map[key_q] auto input_map[key_quickload] auto input_map[key_quote] auto input_map[key_r] auto input_map[key_ralt] auto input_map[key_rctrl] auto input_map[key_record] auto input_map[key_restore] auto input_map[key_rew] auto input_map[key_right] auto input_map[key_rshift] keyboard[0,rshift] input_map[key_s] auto input_map[key_scrlock] auto input_map[key_semicolon] auto input_map[key_shift] auto input_map[key_slash] auto input_map[key_space] auto input_map[key_stop] auto input_map[key_store] auto input_map[key_t] auto input_map[key_tab] auto input_map[key_u] auto input_map[key_undo] auto input_map[key_up] auto input_map[key_v] auto input_map[key_w] auto input_map[key_x] auto input_map[key_y] auto input_map[key_z] auto input_map[p1_dialx] auto input_map[p1_dialy] auto input_map[p1_lightgunx] auto input_map[p1_lightguny] auto input_map[p1_mousex] auto input_map[p1_mousey] auto input_map[p1_paddlex] auto input_map[p1_paddley] auto input_map[p1_pedalbrake] auto input_map[p1_pedalgas] auto input_map[p1_pedalother] auto input_map[p1_stickx] auto input_map[p1_sticky] auto input_map[p1_stickz] auto input_map[p1_trackballx] auto input_map[p1_trackbally] auto input_map[p2_dialx] auto input_map[p2_dialy] auto input_map[p2_lightgunx] auto input_map[p2_lightguny] auto input_map[p2_mousex] auto input_map[p2_mousey] auto input_map[p2_paddlex] auto input_map[p2_paddley] auto input_map[p2_pedalbrake] auto input_map[p2_pedalgas] auto input_map[p2_pedalother] auto input_map[p2_stickx] auto input_map[p2_sticky] auto input_map[p2_stickz] auto input_map[p2_trackballx] auto input_map[p2_trackbally] auto input_map[p3_dialx] auto input_map[p3_dialy] auto input_map[p3_lightgunx] auto input_map[p3_lightguny] auto input_map[p3_mahjong_a] auto input_map[p3_mahjong_b] auto input_map[p3_mahjong_bet] auto input_map[p3_mahjong_c] auto input_map[p3_mahjong_chance] auto input_map[p3_mahjong_chi] auto input_map[p3_mahjong_d] auto input_map[p3_mahjong_double_up] auto input_map[p3_mahjong_e] auto input_map[p3_mahjong_f] auto input_map[p3_mahjong_flip_flop] auto input_map[p3_mahjong_g] auto input_map[p3_mahjong_h] auto input_map[p3_mahjong_i] auto input_map[p3_mahjong_j] auto input_map[p3_mahjong_k] auto input_map[p3_mahjong_kan] auto input_map[p3_mahjong_l] auto input_map[p3_mahjong_m] auto input_map[p3_mahjong_n] auto input_map[p3_mahjong_pon] auto input_map[p3_mahjong_reach] auto input_map[p3_mahjong_ron] auto input_map[p3_mahjong_score] auto input_map[p3_mousex] auto input_map[p3_mousey] auto input_map[p3_paddlex] auto input_map[p3_paddley] auto input_map[p3_pedalbrake] auto input_map[p3_pedalgas] auto input_map[p3_pedalother] auto input_map[p3_stickx] auto input_map[p3_sticky] auto input_map[p3_stickz] auto input_map[p3_trackballx] auto input_map[p3_trackbally] auto input_map[p4_dialx] auto input_map[p4_dialy] auto input_map[p4_lightgunx] auto input_map[p4_lightguny] auto input_map[p4_mahjong_a] auto input_map[p4_mahjong_b] auto input_map[p4_mahjong_bet] auto input_map[p4_mahjong_c] auto input_map[p4_mahjong_chance] auto input_map[p4_mahjong_chi] auto input_map[p4_mahjong_d] auto input_map[p4_mahjong_double_up] auto input_map[p4_mahjong_e] auto input_map[p4_mahjong_f] auto input_map[p4_mahjong_flip_flop] auto input_map[p4_mahjong_g] auto input_map[p4_mahjong_h] auto input_map[p4_mahjong_i] auto input_map[p4_mahjong_j] auto input_map[p4_mahjong_k] auto input_map[p4_mahjong_kan] auto input_map[p4_mahjong_l] auto input_map[p4_mahjong_m] auto input_map[p4_mahjong_n] auto input_map[p4_mahjong_pon] auto input_map[p4_mahjong_reach] auto input_map[p4_mahjong_ron] auto input_map[p4_mahjong_score] auto input_map[p4_mousex] auto input_map[p4_mousey] auto input_map[p4_paddlex] auto input_map[p4_paddley] auto input_map[p4_pedalbrake] auto input_map[p4_pedalgas] auto input_map[p4_pedalother] auto input_map[p4_stickx] auto input_map[p4_sticky] auto input_map[p4_stickz] auto input_map[p4_trackballx] auto input_map[p4_trackbally] auto input_map[safequit] auto input_map[service_coin5] auto input_map[service_coin6] auto input_map[service_coin7] auto input_map[service_coin8] auto input_map[ui_cancel] joystick_button[0079_0006_3,8] joystick_button[0079_0006_3,10] or keyboard[0,f7] input_map[ui_mode_next] keyboard[0,f24] input_map[ui_mode_pred] keyboard[0,f24] input_map[ui_reset_machine] joystick_button[0079_0006,4] or joystick_button[0079_0006_2,4] or keyboard[0,f9] input_map[ui_toggle_debug] keyboard[0,f24] input_steadykey no lcd_server none lcd_speed 4 lcd_timeout 500 misc_bios default misc_cheat no misc_cheatfile cheat.dat misc_difficulty none misc_eventdebug no misc_eventfile event.dat misc_freeplay no misc_hiscorefile hiscore.dat misc_lang none misc_languagefile english.lng misc_mutedemo no misc_quiet yes misc_ramsize auto misc_safequit no misc_smp no misc_timetorun 0 record_sound no record_sound_time 15 record_video no record_video_interleave 2 record_video_time 15 script_coin1 script_coin2 script_coin3 script_coin4 script_emulation script_event1 script_event10 script_event11 script_event12 script_event13 script_event14 script_event2 script_event3 script_event4 script_event5 script_event6 script_event7 script_event8 script_event9 script_led1 on(kdb, 0b1); wait(!event()); off(kdb, 0b1); script_led2 on(kdb, 0b10); wait(!event()); off(kdb, 0b10); script_led3 script_play script_safequit script_start1 script_start2 script_start3 script_start4 script_turbo while (event()) { toggle(kdb, 0b100); delay(100); } off(kdb, 0b100); script_video wait(!event()); set(kdb, 0); sound_adjust auto sound_equalizer_highvolume 0 sound_equalizer_lowvolume 0 sound_equalizer_midvolume 0 sound_latency 0.05 sound_mode auto sound_normalize yes sound_samplerate 44100 sound_samples yes sound_volume 0 sync_fps auto sync_resample auto sync_speed 1 sync_startuptime auto sync_turbospeed 3 ui_color[help_other] 000000 808080 ui_color[help_p1] 000000 ffff00 ui_color[help_p2] 000000 00ff00 ui_color[help_p3] 000000 ff0000 ui_color[help_p4] 000000 00ffff ui_color[interface] 000000 ffffff ui_color[select] 000000 afffff ui_color[tag] 247ef0 ffffff ui_font auto ui_fontsize auto ui_helpimage auto ui_translucency 0.8 a5200/input_map[key_1] joystick_button[0,8] or keyboard[0,1] a5200/input_map[key_2] joystick_button[0,9] or keyboard[0,2] a5200/input_map[p1_button1] joystick_button[0,0] a5200/input_map[p1_button2] joystick_button[0,1] a5200/input_map[key_s] joystick_button[0,2] a5200/input_map[key_r] joystick_button[0,5] a5200/input_map[key_b] joystick_button[0,4] a5200[star_raiders]/input_map[key_s] joystick_button[0,2] or joystick_button[1,2] a5200[star_raiders]/input_map[key_1] joystick_button[0,8] or joystick_button[1,8] a5200[star_raiders]/input_map[key_2] joystick_button[0,9] or joystick_button[1,9] a5200[star_raiders]/input_map[key_3] joystick_button[0,10] or joystick_button[1,10] a5200[star_raiders]/input_map[key_4] joystick_button[0,11] or joystick_button[1,11] a5200[star_raiders]/input_map[key_5] joystick_button[0,12] or joystick_button[1,12] a5200[star_raiders]/input_map[key_6] joystick_button[0,13] or joystick_button[1,13] a5200[star_raiders]/input_map[key_7] joystick_button[0,14] or joystick_button[1,14] a5200[star_raiders]/input_map[key_8] joystick_button[0,15] or joystick_button[1,15] a5200[star_raiders]/input_map[key_9] joystick_button[0,16] or joystick_button[1,16] a5200[star_raiders]/input_map[key_del] joystick_button[0,17] or joystick_button[1,17] a5200[star_raiders]/input_map[key_0] joystick_button[0,18] or joystick_button[1,18] a5200[star_raiders]/input_map[key_enter] joystick_button[0,19] or joystick_button[1,19] a5200[star_raiders]/input_map[p1_button1] joystick_button[0,0] or joystick_button[1,0] a5200[star_raiders]/input_map[p1_button2] joystick_button[0,1] or joystick_button[1,1] adam/input_map[key_1] joystick_button[0,8] or keyboard[0,1] adam/input_map[key_2] joystick_button[0,9] or keyboard[0,2] adam/input_map[p1_trackball_left] keyboard[0,f24] adam/input_map[p1_trackball_right] keyboard[0,f24] adam/input_map[p2_button1] joystick_button[1,0] adam/input_map[p2_button2] joystick_button[1,1] adam/input_map[p2_button3] joystick_button[1,2] adam/input_map[p2_button4] joystick_button[1,4] adam/input_map[p2_down] joystick_digital[1,0,1,0] adam/input_map[p2_left] joystick_digital[1,0,0,1] adam/input_map[p2_right] joystick_digital[1,0,0,0] adam/input_map[p2_trackball_down] keyboard[0,f24] adam/input_map[p2_trackball_up] keyboard[0,f24] adam/input_map[p2_up] joystick_digital[1,0,1,1] adam/input_dipswitch[controllers] super_action_controllers channelf/input_map[key_1] joystick_button[0,8] or keyboard[0,1] channelf/input_map[key_2] joystick_button[0,9] or keyboard[0,2] channelf/input_map[p1_start] joystick_button[0,8] or keyboard[0,1] channelf/input_map[p1_button5] joystick_button[0,9] or keyboard[0,5] channelf/input_map[p1_button6] joystick_button[0,10] or keyboard[0,6] channelf/input_map[p1_button7] joystick_button[0,11] or keyboard[0,7] channelf/input_map[p1_button4] joystick_button[0,17] or keyboard[0,3] channelf/input_map[p1_button3] joystick_button[0,18] or keyboard[0,4] channelf/input_map[p1_button2] joystick_button[0,0] or keyboard[0,z] channelf/input_map[p1_button1] joystick_button[0,1] or keyboard[0,x] channelf/input_map[p2_button5] joystick_button[1,9] channelf/input_map[p2_button6] joystick_button[1,10] channelf/input_map[p2_button7] joystick_button[1,11] channelf/input_map[p2_button4] joystick_button[1,17] channelf/input_map[p2_button3] joystick_button[1,18] channelf/input_map[p2_button2] joystick_button[1,0] channelf/input_map[p2_button1] joystick_button[1,1] coleco/input_map[key_1] joystick_button[0,8] or keyboard[0,1] coleco/input_map[key_2] joystick_button[0,9] or keyboard[0,2] coleco/input_map[key_q] joystick_button[1,8] coleco/input_map[key_w] joystick_button[1,9] coleco/input_map[key_e] joystick_button[1,10] coleco/input_map[key_r] joystick_button[1,11] coleco/input_map[key_t] joystick_button[1,12] coleco/input_map[key_y] joystick_button[1,13] coleco/input_map[key_u] joystick_button[1,14] coleco/input_map[key_i] joystick_button[1,15] coleco/input_map[key_o] joystick_button[1,16] coleco/input_map[key_p] joystick_button[1,17] coleco/input_map[key_k] joystick_button[1,18] coleco/input_map[key_l] joystick_button[1,19] coleco/input_map[p2_button1] joystick_button[1,0] coleco/input_map[p2_button2] joystick_button[1,1] coleco/input_map[p2_button3] joystick_button[1,2] coleco/input_map[p2_button4] joystick_button[1,3] coleco/input_map[p2_down] joystick_digital[1,0,1,0] coleco/input_map[p2_left] joystick_digital[1,0,0,1] coleco/input_map[p2_right] joystick_digital[1,0,0,0] coleco/input_map[p2_up] joystick_digital[1,0,1,1] coleco/input_dipswitch[extra_controllers] super_action_controllers intv/input_map[key_1] joystick_button[0,8] or keyboard[0,1] intv/input_map[key_2] joystick_button[0,9] or keyboard[0,2] intv/input_map[key_q] joystick_button[1,8] intv/input_map[key_w] joystick_button[1,9] intv/input_map[key_e] joystick_button[1,10] intv/input_map[key_r] joystick_button[1,11] intv/input_map[key_t] joystick_button[1,12] intv/input_map[key_y] joystick_button[1,13] intv/input_map[key_u] joystick_button[1,14] intv/input_map[key_i] joystick_button[1,15] intv/input_map[key_o] joystick_button[1,16] intv/input_map[key_p] joystick_button[1,17] intv/input_map[key_k] joystick_button[1,18] intv/input_map[key_l] joystick_button[1,19] intv/input_map[p2_button1] joystick_button[1,0] intv/input_map[p2_button2] joystick_button[1,1] intv/input_map[p2_button3] joystick_button[1,2] intv/input_map[p2_left] joystick_digital[1,0,0,1] intv/input_map[p2_down] joystick_digital[1,0,1,0] intv/input_map[p2_right] joystick_digital[1,0,0,0] intv/input_map[p2_up] joystick_digital[1,0,1,1] 280x210/display_resize fractional 320x192/display_mode sdl_1824x984 320x192/display_resize fractional 320x192x59/display_mode sdl_1824x984 320x192x59/display_resize fractional 336x225/display_mode sdl_416x288 336x225/display_resize fractional 320x204/display_mode sdl_1920x1080 320x204/display_resize fractional 800x300x50/display_mode generate-double 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_elite]/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_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,50); delay(75); simulate_key(key_capslock,75); delay(75); simulate_key(key_enter,75); delay(75); bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/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_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); input_map[p1_up] joystick_digital[0079_0006_3,0,0,0] or keyboard[0,up] input_map[p1_down] joystick_digital[0079_0006_3,0,0,1] or keyboard[0,down] input_map[p1_left] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,left] input_map[p1_right] joystick_digital[0079_0006_3,0,1,0] or keyboard[0,right] input_map[p1_start] joystick_button[0079_0006_3,7] or keyboard[0,1] input_map[p1_select] joystick_button[0079_0006_3,7] or keyboard[0,5] input_map[p2_up] joystick_digital[0079_0006,0,0,0] or keyboard[0,r] input_map[p2_down] joystick_digital[0079_0006,0,0,1] or keyboard[0,f] input_map[p2_left] joystick_digital[0079_0006,0,1,1] or keyboard[0,d] input_map[p2_right] joystick_digital[0079_0006,0,1,0] or keyboard[0,g] input_map[p2_button1] joystick_button[0079_0006,1] or keyboard[0,a] input_map[p2_button2] joystick_button[0079_0006,3] or keyboard[0,s] input_map[p2_button3] joystick_button[0079_0006,5] or keyboard[0,q] input_map[p2_button4] joystick_button[0079_0006,0] or keyboard[0,w] input_map[p2_button5] joystick_button[0079_0006,2] input_map[p2_button6] input_map[p2_button7] input_map[p2_button8] input_map[p2_button9] input_map[p2_button10] input_map[p2_start] joystick_button[0079_0006,4] or joystick_button[0079_0006_3,10] or keyboard[0,2] input_map[p2_select] joystick_button[0079_0006,4] or joystick_button[0079_0006_3,10] or keyboard[0,6] input_map[ui_up] joystick_digital[0079_0006_3,0,0,0] or keyboard[0,up] input_map[ui_down] joystick_digital[0079_0006_3,0,0,1] or keyboard[0,down] input_map[ui_left] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,left] input_map[ui_right] joystick_digital[0079_0006_3,0,1,0] or keyboard[0,right] input_map[ui_select] joystick_button[0079_0006_3,2] or keyboard[0,enter] input_map[ui_record_start] input_map[ui_record_stop] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_1] joystick_button[0079_0006_3,7] or keyboard[0,1] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_3] joystick_button[0079_0006,10] or keyboard[0,3] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_2] joystick_button[0079_0006,9] or keyboard[0,2] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_4] joystick_button[0079_0006,11] or keyboard[0,4] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_5] joystick_button[0079_0006,12] or keyboard[0,5] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_7] joystick_button[0079_0006,14] or keyboard[0,7] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_6] joystick_button[0079_0006,13] or keyboard[0,6] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_8] joystick_button[0079_0006,15] or keyboard[0,8] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_9] joystick_button[0079_0006,16] or keyboard[0,9] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_0] joystick_button[0079_0006,18] or keyboard[0,0] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_enter] joystick_button[0079_0006,19] or keyboard[0,enter] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_del] joystick_button[0079_0006,17] or keyboard[0,del] or keyboard[0,backspace] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_a] joystick_digital[0079_0006_3,0,0,0] or keyboard[0,a] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_s] joystick_button[0079_0006_3,7] or keyboard[0,s] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_z] joystick_digital[0079_0006_3,0,0,1] or keyboard[0,z] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_space] joystick_button[0079_0006_3,2] or keyboard[0,space] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_comma] joystick_digital[0079_0006_3,0,1,1] or keyboard[0,comma] bbcbp128[home_pi_retropie_roms_bbcmicro_chuckie]/input_map[key_period] joystick_digital[0079_0006_3,0,1,0] or keyboard[0,period] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_1] joystick_button[0079_0006,8] or keyboard[0,1] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_ctrl] joystick_digital[0079_0006_3,0,1,0] or keyboard[0,lcontrol] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_3] joystick_button[0079_0006,10] or keyboard[0,3] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_2] joystick_button[0079_0006,9] or keyboard[0,2] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_4] joystick_button[0079_0006,11] or keyboard[0,4] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_space] joystick_button[0079_0006_3,7] or joystick_button[0079_0006_3,5] or keyboard[0,space] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_5] joystick_button[0079_0006,12] or keyboard[0,5] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_7] joystick_button[0079_0006,14] or keyboard[0,7] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_6] joystick_button[0079_0006,13] or keyboard[0,6] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_8] joystick_button[0079_0006,15] or keyboard[0,8] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_9] joystick_button[0079_0006,16] or keyboard[0,9] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_0] joystick_button[0079_0006,18] or keyboard[0,0] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_enter] joystick_button[0079_0006_3,0] or keyboard[0,enter] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_del] joystick_button[0079_0006,17] or keyboard[0,del] or keyboard[0,backspace] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[p1_button1] bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]/input_map[p1_button2] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_1] joystick_button[0079_0006,8] or keyboard[0,1] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_tab] joystick_button[0079_0006_3,1] or keyboard[0,tab] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_3] joystick_button[0079_0006,10] or keyboard[0,3] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_2] joystick_button[0079_0006,9] or keyboard[0,2] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_a] joystick_digital[0079_0006_3,0,0,0] or keyboard[0,a] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_z] joystick_digital[0079_0006_3,0,0,1] or keyboard[0,z] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_4] joystick_button[0079_0006,11] or keyboard[0,4] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_space] joystick_button[0079_0006_3,5] or keyboard[0,space] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_5] joystick_button[0079_0006,12] or keyboard[0,5] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_7] joystick_button[0079_0006,14] or keyboard[0,7] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_6] joystick_button[0079_0006,13] or keyboard[0,6] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_h] joystick_button[0079_0006_3,4] or keyboard[0,h] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_8] joystick_button[0079_0006,15] or keyboard[0,8] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_9] joystick_button[0079_0006,16] or keyboard[0,9] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_0] joystick_button[0079_0006,18] or keyboard[0,0] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_enter] joystick_button[0079_0006_3,0] or keyboard[0,enter] bbcbp128[home_pi_retropie_roms_bbcmicro_planetoid]/input_map[key_del] joystick_button[0079_0006,17] or keyboard[0,del] or keyboard[0,backspace] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_1] joystick_button[0079_0006,8] or keyboard[0,1] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_3] joystick_button[0079_0006,10] or keyboard[0,3] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_2] joystick_button[0079_0006,9] or keyboard[0,2] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_4] joystick_button[0079_0006,11] or keyboard[0,4] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_5] joystick_button[0079_0006,12] or keyboard[0,5] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_7] joystick_button[0079_0006,14] or keyboard[0,7] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_6] joystick_button[0079_0006,13] or keyboard[0,6] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_8] joystick_button[0079_0006,15] or keyboard[0,8] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_9] joystick_button[0079_0006,16] or keyboard[0,9] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_0] joystick_button[0079_0006,18] or keyboard[0,0] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_enter] joystick_button[0079_0006,19] or keyboard[0,enter] bbcbp128[home_pi_retropie_roms_bbcmicro_elite]/input_map[key_del] joystick_button[0079_0006,17] or keyboard[0,del] or keyboard[0,backspace] 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] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_1] joystick_button[0079_0006,8] or keyboard[0,1] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_3] joystick_button[0079_0006,10] or keyboard[0,3] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_2] joystick_button[0079_0006,9] or keyboard[0,2] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_4] joystick_button[0079_0006,11] or keyboard[0,4] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_5] joystick_button[0079_0006,12] or keyboard[0,5] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_7] joystick_button[0079_0006,14] or keyboard[0,7] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_6] joystick_button[0079_0006,13] or keyboard[0,6] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_8] joystick_button[0079_0006,15] or keyboard[0,8] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_9] joystick_button[0079_0006,16] or keyboard[0,9] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_0] joystick_button[0079_0006,18] or keyboard[0,0] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_enter] joystick_button[0079_0006,19] or keyboard[0,enter] bbcb[home_pi_retropie_roms_bbcmicro_thrust]/input_map[key_del] joystick_button[0079_0006,17] or keyboard[0,del] or keyboard[0,backspace]
-
@SpudsMcToole Lastly, I've got a complete list of the symbols and naming convention for simulating events etc:
Symbols:
This is the complete list of all the predefined symbols available.
These are the event symbols available for thesimulate_event(EVENT, TIME)
andevent(EVENT)
commands :p1_up, p1_down, p1_left, p1_right, p2_up, p2_down, p2_left, p2_right, p1_button1, p1_button2, p1_button3, p1_button4, p1_button5, p1_button6, p1_button7, p1_button8, p1_button9, p1_button10, p2_button1, p2_button2, p2_button3, p2_button4, p2_button5, p2_button6, p2_button7, p2_button8, p2_button9, p2_button10, start1, start2, start3, start4, coin1, coin2, coin3, coin4, service_coin1, service_coin2, service_coin3, service_coin4, service, tilt
And:
ui_mode_next, ui_mode_pred, ui_record_start, ui_record_stop, ui_turbo, ui_cocktail, ui_configure, ui_on_screen_display, ui_pause, ui_reset_machine, ui_show_gfx, ui_frameskip_dec, ui_frameskip_inc, ui_throttle, ui_show_fps, ui_snapshot, ui_toggle_cheat, ui_up, ui_down, ui_left, ui_right, ui_select, ui_cancel, ui_pan_up, ui_pan_down, ui_pan_left, ui_pan_right, ui_show_profiler, ui_show_colors, ui_toggle_ui, ui_toggle_debug, ui_save_state, ui_load_state, ui_add_cheat, ui_delete_cheat, ui_save_cheat, ui_watch_value
These are the keyboard symbols available for the
simulate_key(EVENT, TIME)
(for example, thescript_play
) command:key_a, key_b, key_c, key_d, key_e, key_f, key_g, key_h, key_i, key_j, key_k, key_l, key_m, key_n, key_o, key_p, key_q, key_r, key_s, key_t, key_u, key_v, key_w, key_x, key_y, key_z, key_0, key_1, key_2, key_3, key_4, key_5, key_6, key_7, key_8, key_9, key_0_pad, key_1_pad, key_2_pad, key_3_pad, key_4_pad, key_5_pad, key_6_pad, key_7_pad, key_8_pad, key_9_pad, key_f1, key_f2, key_f3, key_f4, key_f5, key_f6, key_f7, key_f8, key_f9, key_f10, key_f11, key_f12, key_esc, key_backquote, key_minus, key_equals, key_backspace, key_tab, key_openbrace, key_closebrace, key_enter, key_semicolon, key_quote, key_backslash, key_less, key_comma, key_period, key_slash, key_space, key_insert, key_del, key_home, key_end, key_pgup, key_pgdn, key_left, key_right, key_up, key_down, key_slash_pad, key_asterisk_pad, key_minus_pad, key_plus_pad, key_period_pad, key_enter_pad, key_prtscr, key_pause, key_lshift, key_rshift, key_lcontrol, key_rcontrol, key_lalt, key_ralt, key_scrlock, key_numlock, key_capslock, key_lwin, key_rwin, key_menu
-
@spud11 said in AdvMESS For Dummies - a basic guide:
bbcbp128/script_play delay(750); simulate_key(key_scrlock,75);
Fantastic! That one solved it - left Alt and Tab now brings up the menu. Cheers :)
-
Okay, so this seems to be how to get everything working and customisable on BBC, so I'll also add it to the OP.
Firstly, add this line on its own somewhere in the .RC file:
bbcbp128/script_play delay(750); simulate_key(key_scrlock,75);
That enables the MESS menu to be brought up.
When you start a game, press left-Alt and Tab to bring the menu up. Go to "Input (this system)" and map the controls for that game. Despite the name, this actually appears to be a per-game mapping, not system-wide, which is handy.
When you're done, quit out. Now your bbcmicro.rc file will have a bunch of lines like this in it:
bbcbp128[home_pi_retropie_roms_bbcmicro_killer]/input_map[key_z] keyboard[0,z] or joystick_digital[0079_0011,0,0,1] bbcbp128[home_pi_retropie_roms_bbcmicro_killer]/input_map[key_x] keyboard[0,x] or joystick_digital[0079_0011,0,0,0]
The important thing about these is that they tell you what MESS uses as its internal name for the game - this is Killer Gorilla, and MESS has titled it "killer".
If you don't mind manually typing CHAIN "KILLER" every time you want to boot the game up, you're already done. The control keys have been mapped to your joystick and saved, so you only have to set them once for each game in your library.
If, however, you also want to automate the boot process, you'll need one of two lines.
For games which boot with CHAIN "GAMENAME", add this line to the .RC file before the control-map lines above:
bbcbp128[home_pi_retropie_roms_bbcmicro_GAMENAME]/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_g,100); delay(75); simulate_key(key_a,75); delay(100); simulate_key(key_m,75); delay(100); simulate_key(key_e,75); delay(100); simulate_key(key_n,75); delay(100); simulate_key(key_a,75); delay(100); simulate_key(key_m,75); delay(100); simulate_key(key_e,75); delay(100); simulate_key(key_2,75); delay(100); simulate_key(key_capslock,75); delay(100); simulate_key(key_enter,75); delay(100);
Replace "GAMENAME" with whatever MESS has told you is its internal name for the game - eg "killer" in our example above - and change the letters g-a-m-e-n-a-m-e in the script for the letters of whatever that title is. (Obviously you might need to add or delete a couple.)
For games which boot with *RUN "GAMENAME", do the exact same but use this template:
bbcbp128[home_pi_retropie_roms_bbcmicro_GAMENAME]/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(100); simulate_key(key_u,100); delay(100); simulate_key(key_n,100); delay(100); simulate_key(key_space,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_g,100); delay(75); simulate_key(key_a,75); delay(100); simulate_key(key_m,75); delay(100); simulate_key(key_e,75); delay(100); simulate_key(key_n,75); delay(100); simulate_key(key_a,75); delay(100); simulate_key(key_m,75); delay(100); simulate_key(key_e,75); delay(100); simulate_key(key_2,75); delay(100); simulate_key(key_capslock,75); delay(100); simulate_key(key_enter,75); delay(100);
AFAIK every game on the BBC runs with either CHAIN or *RUN, so those two templates should cover you for everything. You now have fully-automated BBC games loading, booting and running with custom control mappings.
-
Great work. Section 6 didn't work for me. I needed this:
advmess = "/opt/retropie/emulators/advmame/bin/advmess bbcb -floppy %ROM%"
default = "advmess" -
@OneSwitch Might be because you haven't manually set up a separate
.rc
file for the BBC Micro calledbbcmicro.rc
. I'm assuming you're using the standardadvmess.rc
configuration file? -
@spud11 Maybe linked to having previously set-up the Channel F using the advmess.rc file. I did set up the separate file as described. Don't want to break the Channel F so happy it's working a bit.
I'm finding I can't SHIFT+BREAK at the minute, but just having the BBC 32K window is big progress for me, thanks.
-
I'm finding as soon as I press "." it's swapping resolutions up until a crash point. Makes loading games impossible. I'd better read the rest of the above first, but if it's not explained, any thoughts?
-
@OneSwitch Lots of remapping is the answer...
-
Thanks so much for doing all of this. I found that auto-start didn't work for me though. I've had to do this...
bbcbp128[home_pi_retropie_roms_bbcmicro_lottery]/script_play delay(750); 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_lalt,75); delay(75); simulate_key(key_2,75); delay(75); simulate_key(key_m,100); delay(75); simulate_key(key_e,75); delay(100); simulate_key(key_n,75); delay(100); simulate_key(key_u,75); delay(100); simulate_key(key_2,75); delay(100); simulate_key(key_enter,75); delay(100);
Where I'm using the BBC Master emulator (bbcp128), and needed to CHAIN"MENU" [return] to get the game running. I found that the " " part wasn't working for me. Hope this helps a bit further.
-
@OneSwitch It looks like you didn't need to "type" the scroll lock or the capslock keys in your script. Would that be right?
-
@spud11 - Yes that's right. I'm not sure why the slight differences. I'm also finding (after some tweaking) that every game seems to store its own unique joystick settings. Which is very handy, albeit laborious.
Love the auto-boot script. Thanks for that.
Wondering now.... Is it possible to have two separate BBC Micro areas. One for 32K Model B and one for BBC Master 128K, as they both have lots of incompatibility issues I find, between one another.
Cheers again for all this.
-
The Master can be made more compatible using older Model B os, I do this on a real master using a switchable multi-os. I found os 1.20 to be the most compatible. Whether this can be done in emulation, I don't yet know.
One thing I can't seem to get working is saving per-game settings like you all seem to be doing, my settings aren't saved when I exit.
I would like to get a specific video mode working, higher horizontal res + multiplier x2 - which gives a picture far closer to the real thing. -
@OneSwitch No worries - my contribution to the betterment of humanity!
I just had a look at my
emulators.cfg
for BBC Micro which is:beebem = "/usr/local/bin/beebem %ROM%" default = "advmess" beebem2 = "%ROM%" advmess = "/opt/retropie/emulators/advmame/bin/advmess bbcbp128 -floppy %ROM%" b-em = "/opt/retropie/emulators/b-em/b-em %ROM%" -m10 beebem3 = "/opt/retropie/emulators/beebem2/beebem2 %ROM%"
I have a feeling if you wanted to replicate the 32K Model B as well as the 128, you'd just need to add another configuration manually to this file. When you start a game, you'd need to bring up the blue menu to pick the new 32K configuration for that particular game.
As that can be a bit of a pain (ie destroys immersion), what I often do with my systems is create a new
configs
folder and a newroms
folder - one for the BBC 128 and another for the BBC 32K. I then combine the 2 romlists into a new combined Attract Mode romlist. That way I don't need to bring up the blue menu when I start a game - the game automatically has the right configuration.I would also create a new emulator in the Attract Mode emulators folder which would look something like this:
# Generated by Attract-Mode v2.2.1 # executable /opt/retropie/supplementary/runcommand/runcommand.sh args 0 _SYS_ bbcmicro32k "[romfilename]" rompath /home/pi/RetroPie/roms/bbcmicro32k romext .ssd;.SSD system BBC Micro info_source thegamesdb.net artwork flyer /home/pi/RetroPie/roms/bbcmicro/flyer artwork marquee /home/pi/RetroPie/roms/bbcmicro/marquee artwork snap /home/pi/RetroPie/roms/bbcmicro/snap artwork wheel /home/pi/RetroPie/roms/bbcmicro/wheel
-
Champion. I'll try that ASAP. So nice to have the Beeb running.
-
If you are only playing games on the BBC emulator, then is there any real reason to run a Master 128 ?
It didn't really offer anything over the standard 32k Model B, for the majority of games, aside from Elite Enhanced.For what the Beeb could really do, and it's a shame it took until the last few years to show this, then this is a fabulous collection of freeware games by Retro Software.
http://bbcmicro.co.uk/index.php?search=Retro+Software&on_P=on
Some are almost arcade-perfect.
-
@John_RM_70 Brilliant list. Thanks for that.
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.