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

    Advance Mess and BBC Micro and joystick control

    Scheduled Pinned Locked Moved Help and Support
    advance messjoystickbbc micro
    75 Posts 5 Posters 10.1k 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.
    • caver01C
      caver01 @spud11
      last edited by

      @spud11 said in Advance Mess and BBC Micro and joystick control:

      script_emulation \
      	. . .
      	delay(200); \
      

      Hey, try getting rid of that trailing backslash on the very last delay(200) script command. That character denotes a broken line to be continued on the next line, and as this is the end of your script, you don't want one because whatever is next in your .rc file will be added to the very long script command.

      My 4-player cocktail style cabinet built as a custom "roadcase"

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

        @edmaul69 It depends on whether you have a US or UK keyboard. You need the parentheses. Try holding shift and pressing the 2 key.

        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 @caver01
          last edited by

          @caver01 Thanks. No, same outcome unfortunately.

          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

          caver01C 1 Reply Last reply Reply Quote 0
          • caver01C
            caver01 @spud11
            last edited by

            @spud11 Ok, one more thing, I noticed that in the script you have above, the second to last line does NOT have the backslash, but that one should have it, because your script command continues on the next line with that last delay(200);

            My 4-player cocktail style cabinet built as a custom "roadcase"

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

              @caver01 Hi. I added the \ back in on the second last line, but again it didn't work. There must be something fundamentally flawed with the script or perhaps how I've included it in the advmess.rc 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

              caver01C edmaul69E 3 Replies Last reply Reply Quote 0
              • caver01C
                caver01 @spud11
                last edited by

                @spud11 said in Advance Mess and BBC Micro and joystick control:

                @caver01 Hi. I added the \ back in on the second last line, but again it didn't work. There must be something fundamentally flawed with the script or perhaps how I've included it in the advmess.rc file.

                There is some ambiguity in the documentation about simulate_event() vs. simulate_key(). I wonder if you can use simulate_event? Also, you might troubleshoot using a much smaller script, something that only types C or something shorter at first.

                Also, I would probably try a script_play as I think this is what I did to get it to type scroll lock a while back.

                It seems like a powerful feature. I wish we could get you up and running with it.

                My 4-player cocktail style cabinet built as a custom "roadcase"

                1 Reply Last reply Reply Quote 0
                • caver01C
                  caver01 @spud11
                  last edited by

                  @spud11 Also, regarding flaws, these backslashes have to be correct as I have noted (add back the missing one on second-to-last line, and remove the trailing one at the end) or else the command will break the .rc file.

                  Another test would be to avoid the use of backslashes completely. Maybe TABs in the file is messing it up. I think my early script simply had everything on one line.

                  This would be a valid test:

                  script_play delay(20000); simulate_key(key_c,100);
                  

                  Of course, it would only type the C key after 20 seconds, but it could be a start.

                  Is there something else in your .rc file messing this up? A wonky comment line or something?

                  My 4-player cocktail style cabinet built as a custom "roadcase"

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

                    @spud11 first off my problem. i cat get any games with more than one word in the name to work. so if say i name 3d Convoy to 3dconvoy and enter that name in advmess bbc commandline i get bad filename. if i name it convoy inside and outside of advmess i get file not found. do you know how i know what to name them?

                    now to make the config correctly. so i am not sure why you set up an emulators.cfg for 1 game? you can set it up for all games. open up your bbc micro's emulators.cfg file and change it to this:

                    advmess=  sudo /opt/retropie/emulators/bbcmicro/advmess bbcb -cfg /opt/retropie/configs/bbcmicro/advmess.rc -floppy %ROM%
                    default = "advmess"
                    

                    now all of your games will work on 1 config.

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

                      @caver01 I'm now getting to the BASIC screen again (which is good), so the advmess.rc file is definitely working once again. (I suspect because I use Windows, the line endings had reverted to Windows rather than Unix format.)

                      But both the script_play delay(20000); simulate_key(key_c,100); and script_emulation delay(20000); simulate_key(key_c,100); don't produce anything on screen.

                      I've pulled the timings back a bit as follows: script_play delay(2000); simulate_key(key_c,100); and script_emulation delay(2000); simulate_key(key_c,100); . No go on these either.

                      I've then tried script_play delay(2000); simulate_event(key_c,100); and script_emulation delay(2000); simulate_event(key_c,100);

                      Neither work. What about the scroll lock issue? Perhaps I first need to try to get the emulator into partial emulation mode first? Not sure.

                      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 @edmaul69
                        last edited by

                        @edmaul69

                        I want to make sure that I can use my joystick for every game and I was finding that the advmess.rc wasn't saving any of my customised input configurations for each game.

                        The easiest way I could find to set up the joystick was to use xboxdrv. Because each BBC Micro game has a different keyboard setup, I can't use runcommand-onstart to invoke xboxdrv because runcommand-onstart includes system-based, not individual game-based, xboxdrv configurations.

                        To ensure that I could set up individual game-based xboxdrv configurations, I need to have separate bash scripts for each game which first invoke xboxdrv then commence advmess emulation.

                        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

                        edmaul69E 1 Reply Last reply Reply Quote 0
                        • edmaul69E
                          edmaul69 @spud11
                          last edited by

                          @spud11 since you have it going to a specific .rc file wouldnt it just be easier to point to say thrust.rc for thrust and have the controls for thrust in that rc file and make one for each game than trying to setup xboxdrv for every game?

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

                            @edmaul69 Yes, it would but the individual game confis wouldn't save in advmess.rc.

                            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

                            edmaul69E 1 Reply Last reply Reply Quote 0
                            • edmaul69E
                              edmaul69 @spud11
                              last edited by edmaul69

                              @spud11 but if it saves it as a whole system in the config and not individual config it wouldnt matter if only one game is looking at that .rc file. which shouldnt have to be called advmess.rc either.

                              1 Reply Last reply Reply Quote 0
                              • caver01C
                                caver01
                                last edited by

                                A couple of notes about the configs. . . I was going to have separate .rc files per floppy disk image for my AppleII MESS setup when I discovered that it was adding my keyboard adjustments with prefixes for each disk image file. That meant I could use one .rc file for everything. Once you have a prefix, you could theoretically use the same prefix for the scripts--one line for each disk image--assuming we get scripting working.

                                As for my scroll lock, I never did find it it. I think it got erased on an old SD card. In any case, I was getting out of full emulation mode on my keyboard only so that I could invoke the TAB menu and configure keys. I don't think this is an issue for what you are trying to accomplish.

                                My 4-player cocktail style cabinet built as a custom "roadcase"

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

                                  @caver01 and @edmaul69 Agree with you both. Trouble was no changes were saving to the advmess.rc at all, so I couldn't rely on advmess for input changes. No idea what the problem was. I might have another go at it in a couple more days.

                                  So with advmess messing up for me, it wound up just being easier to note the default keyboard controls for each game and then use xboxdrv.

                                  About separate advmess.rc files, I need separate advmess.rc files for each game if I want to include a script_play like CHAIN "THRUST" or CHAIN "ELITE". I can't have both in the same advmess.rc file. Unfortunately, I can't get any of these scripts to work.

                                  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

                                  edmaul69E 1 Reply Last reply Reply Quote 0
                                  • edmaul69E
                                    edmaul69 @spud11
                                    last edited by

                                    @spud11 i know individual configs dont work but with seperate configs it doesnt matter. so if it doesnt save configs at all did manually entering them in work? Im not talking about xboxdrv, im talking about advmess controller configs? If they do work, keep making seperate config files but just change the advmess controls for each config file for each game instead of trying to get xboxdrv to work.

                                    S caver01C 2 Replies Last reply Reply Quote 0
                                    • S
                                      spud11 @edmaul69
                                      last edited by

                                      @edmaul69 Yes, I manually changed the advmess.rc adapting your Apple II script, but I couldn't get it to work and I tried several different ways.

                                      Basically, I think what I need is someone who's had changes made to the advmess.rc for the control schemes to show me what changes were made automatically in their advmess.rc for a couple of different BBC Micro games and then I can try again to make manual changes to the file.

                                      While playing Chuckie Egg a couple of days ago, I unintentionally changed the sync_startuptime and that did appear automatically in the advmess.rc file as

                                      bbcb[home_pi_retropie_roms_bbcmicro_chuckie]/sync_startuptime 75
                                      

                                      But my attempts to replicate the syntax to try to change the controls manually in advmess.rc have failed.

                                      I'd prefer not to use xboxdrv in this instance because it should be unnecessary but, as I can't get any changes I make to the control scheme via TAB to save automatically in advmess.rc, xboxdrv has been the only way so far for me to get the joystick to work and to "individualise" game control schemes.

                                      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

                                      edmaul69E 1 Reply Last reply Reply Quote 0
                                      • caver01C
                                        caver01 @edmaul69
                                        last edited by

                                        @spud11 I guess I was saying that you COULD have multiple scripts in the same .rc file so long as they have an added prefix that calls out the system/floppy image to which they apply. It would be similar to how my apple II config saves keymapping:

                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[key_j] keyboard[0,1]
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[key_rshift] 
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[key_ctrl] 
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[key_open] 
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[p1_button1] keyboard[0,lalt]
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[p1_button2] keyboard[0,lcontrol]
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[p1_stick_left] keyboard[0,right]
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[p1_stick_right] keyboard[0,left]
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[p1_stick_up] keyboard[0,up]
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[p1_stick_down] keyboard[0,down]
                                        apple2ee[home_pi_retropie_roms_apple2_karateka]/input_map[key_esc] keyboard[0,p]
                                        apple2ee[home_pi_retropie_roms_apple2_lode_runner]/input_map[key_esc] keyboard[0,p]
                                        apple2ee[home_pi_retropie_roms_apple2_lode_runner]/input_map[key_a] keyboard[0,z]
                                        apple2ee[home_pi_retropie_roms_apple2_lode_runner]/input_map[key_u] keyboard[0,lshift]
                                        apple2ee[home_pi_retropie_roms_apple2_lode_runner]/input_map[key_ctrl] keyboard[0,x]
                                        

                                        My 4-player cocktail style cabinet built as a custom "roadcase"

                                        caver01C 1 Reply Last reply Reply Quote 0
                                        • caver01C
                                          caver01 @caver01
                                          last edited by

                                          @spud11 If you could only get it to save settings after making adjustments in the GUI menu, you would have an example of the syntax for your system/floppy combo.

                                          I assume you are checking the advmess.rc file you are specifying in your -cfg parameter on your launch script, right, and not a .rc file that was created automatically in the default location?

                                          How are you exiting? You cannot "crash out" or kill the process. You have to exit properly for advancemame to write the changes to the .rc file. This comes up sometimes, so mentioning it here.

                                          My 4-player cocktail style cabinet built as a custom "roadcase"

                                          1 Reply Last reply Reply Quote 0
                                          • edmaul69E
                                            edmaul69 @spud11
                                            last edited by edmaul69

                                            did you have problems with saving on the original default advmess.rc? i assume yes. i use a custom made advmess 3.4 that someone fixed the controls not saving or player 2 controls being messed up and stuff on several consoles we use. feel free to test with it. bbcb may or may not save. but it certainly wouldnt hurt to try.

                                            https://drive.google.com/open?id=0B91PCRsG5b5baDFlMWEycV9Id3M

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