RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    AdvMESS For Dummies - a basic guide

    Scheduled Pinned Locked Moved Help and Support
    advmessmessbbcastrocadefairchild
    75 Posts 7 Posters 11.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • ?
      A Former User @SpudsMcToole
      last edited by

      @SpudsMcToole said in AdvMESS For Dummies - a basic guide:

      @John_RM_70 said in AdvMESS For Dummies - a basic guide:

      The tab won't help you because it won't save after you exit. I tried this, earlier on, and it didn't save.

      It does for other systems. I've tried it with Astrocade and Channel F and the settings save fine. Not for the Emerson Arcadia for some reason, though.

      I have just tried this right now, as I'm sat here, on the BBC emulator and the settings are not saved. When I go back into the same game, the settings are gone and back to stock.

      S 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @A Former User
        last edited by

        @John_RM_70 said in AdvMESS For Dummies - a basic guide:

        None of the companies exist now, and most were obscure British computer companies, now long gone. I don't see the problem.

        Unless the work is released under a permissive license (usage and re-distribution), there is no clear status on them and as such they're not free. Just because the companies don't exist anymore, it doesn't mean their IP hasn't been bought/transferred to another company.

        1 Reply Last reply Reply Quote 1
        • mediamogulM
          mediamogul Global Moderator @A Former User
          last edited by mediamogul

          @John_RM_70 said in AdvMESS For Dummies - a basic guide:

          These are all long gone, as are the software houses. Really don't see the problem.

          Most of the companies have since been absorbed by others and in many occasions they have folded as well and been absorbed by other companies still. The problem is that copyrights are transferred with ownership. What's really a hoot is that sometimes ownership has transferred so many times that no one's quite sure who owns what anymore. Unfortunately, none of that actually invalidates the copyrights themselves and therefore doesn't give us the right to propagate the work freely.

          RetroPie v4.5 • RPi3 Model B • 5.1V 2.5A PSU • 16GB SanDisk microSD • 512GB External Drive

          1 Reply Last reply Reply Quote 0
          • S
            spud11 @SpudsMcToole
            last edited by spud11

            @SpudsMcToole Also, it's possible to automate games loading without the keyboard using the script_play command. It doesn't work perfectly every time (sometimes you need to change the length of the delay between key presses), but it does work reasonably well.

            An example of the code that I have in my advmess.rc file is:

            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);
            

            Just add the above to your .rc file and see if it works.

            When you invoke the advmess and the BBC emulation, when it gets to the BBC's terminal, it should type CHAIN "THRUST" and start the game Thrust automatically. Sometimes keys are skipped and so you need to change the delay from 75 to something higher eg 150.

            You can adapt the code above to any BBC Micro game.

            I use xboxdrv so my joystick mimics the keys for each game, meaning I don't really need to use the keyboard any longer.

            It will be great once there is an emulator or a libretro core for the BBC Micro which works automatically with joysticks. In the meantime, advmess does a serviceable job.

            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.

            RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

            S 2 Replies Last reply Reply Quote 1
            • S
              SpudsMcToole Banned @A Former User
              last edited by

              @John_RM_70 said in AdvMESS For Dummies - a basic guide:

              I have just tried this right now, as I'm sat here, on the BBC emulator and the settings are not saved. When I go back into the same game, the settings are gone and back to stock.

              Can you post your RC file anyway so I can have a look?

              1 Reply Last reply Reply Quote 0
              • S
                SpudsMcToole Banned @spud11
                last edited by

                @spud11 said in AdvMESS For Dummies - a basic guide:

                When you invoke the advmess and the BBC emulation, when it gets to the BBC's terminal, it should type CHAIN "THRUST" and start the game Thrust automatically. Sometimes keys are skipped and so you need to change the delay from 75 to something higher eg 150.

                Oh, THAT'S what those lines are doing? Aha!

                How do you know what to put as the game name in the first bit? (ie this:)

                bbcbp128[home_pi_retropie_roms_bbcmicro_thrust]
                

                What would that line be for a game file called "Chuckie Egg (1983) (A&F Software).ssd"?

                S 1 Reply Last reply Reply Quote 0
                • S
                  SpudsMcToole Banned @spud11
                  last edited by SpudsMcToole

                  @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
                  
                  S 2 Replies Last reply Reply Quote 0
                  • S
                    spud11 @SpudsMcToole
                    last edited by spud11

                    @SpudsMcToole That's a good question. My Chuckie Egg rom is called Chuckie Egg. The equivalent code in advmess.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 my advmess.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 the advmess.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.

                    RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                    1 Reply Last reply Reply Quote 0
                    • S
                      spud11 @SpudsMcToole
                      last edited by spud11

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

                      RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                      S 1 Reply Last reply Reply Quote 1
                      • S
                        spud11
                        last edited by

                        @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]
                        

                        RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                        1 Reply Last reply Reply Quote 0
                        • S
                          spud11 @SpudsMcToole
                          last edited by spud11

                          @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 the simulate_event(EVENT, TIME) and event(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, the script_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
                          

                          RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                          1 Reply Last reply Reply Quote 0
                          • S
                            SpudsMcToole Banned @spud11
                            last edited by

                            @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 :)

                            1 Reply Last reply Reply Quote 0
                            • S
                              SpudsMcToole Banned
                              last edited by

                              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.

                              OneSwitchO 1 Reply Last reply Reply Quote 1
                              • OneSwitchO
                                OneSwitch
                                last edited by

                                Great work. Section 6 didn't work for me. I needed this:

                                advmess = "/opt/retropie/emulators/advmame/bin/advmess bbcb -floppy %ROM%"
                                default = "advmess"

                                S 1 Reply Last reply Reply Quote 0
                                • S
                                  spud11 @OneSwitch
                                  last edited by

                                  @OneSwitch Might be because you haven't manually set up a separate .rc file for the BBC Micro called bbcmicro.rc. I'm assuming you're using the standard advmess.rc configuration file?

                                  RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                                  OneSwitchO 1 Reply Last reply Reply Quote 0
                                  • OneSwitchO
                                    OneSwitch @spud11
                                    last edited by

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

                                    1 Reply Last reply Reply Quote 0
                                    • OneSwitchO
                                      OneSwitch
                                      last edited by

                                      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?

                                      OneSwitchO 1 Reply Last reply Reply Quote 0
                                      • OneSwitchO
                                        OneSwitch @OneSwitch
                                        last edited by

                                        @OneSwitch Lots of remapping is the answer...

                                        1 Reply Last reply Reply Quote 0
                                        • OneSwitchO
                                          OneSwitch @SpudsMcToole
                                          last edited by

                                          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.

                                          S 1 Reply Last reply Reply Quote 0
                                          • S
                                            spud11 @OneSwitch
                                            last edited by

                                            @OneSwitch It looks like you didn't need to "type" the scroll lock or the capslock keys in your script. Would that be right?

                                            RetroPie v4.4.1 • RPi3 Model B • 5.1V 2.5A PSU • 32GB SanDisk Extreme microSD • 2TB Toshiba Canvio Basics Portable USB 3.0 hard drive • 4 x DragonRise USB Arcade joysticks • 2 x TurboTwist spinners • 1 x USB trackball • 1 x PS4 wireless • 1 x 8BitDo Zero

                                            OneSwitchO 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            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.