RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login

    [Guide] Getting EmulationStation to work with FS-UAE

    Scheduled Pinned Locked Moved Ideas and Development
    emulationstatonfs-uae
    37 Posts 9 Posters 9.5k 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.
    • S
      silver @mitu
      last edited by silver

      @mitu said in [Guide] Getting EmulationStation to work with FS-UAE:

      @sierrafool fs-uae is already part of RetroPie, it's available on a PC though, since it's not working (yet) on ARM.

      To be honest, I'm not so sure that fs-uae not working on ARM is true anymore.

      This issue raised on github back in 2016 regarding fs-uae on ARM suggests that it does compile. In addition, this post in June provides builds for OS X running on the M1, which is also ARM.

      There is also a Youtube video which purports to show you step-by-step how to get fs-use running on a Pi. I've not examined it long enough to determine how truthful it is but it seems to make use of this installation script hosted on github.

      Full disclaimer: I've not attempted to install fs-uae on a Pi at all - so YMMV 😀

      mituM 1 Reply Last reply Reply Quote 0
      • mituM
        mitu Global Moderator @silver
        last edited by

        @silver said in [Guide] Getting EmulationStation to work with FS-UAE:

        To be honest, I'm not so sure that fs-uae not working on ARM is true anymore.

        I was referring to the RetroPie module. I know the author has been adding some ARM related improvements recently and at some point, if performance permits, it may be added also for ARM targets in RetroPie.

        1 Reply Last reply Reply Quote 0
        • DjDiabolikD DjDiabolik referenced this topic on
        • Z
          zombiefly
          last edited by

          hi, thanks for this guide, I have set up retropie with fs-uae on ubuntu server and all is going well.

          I have mapped buttons in the fs-uae-launcher for my xbox 360 joypad to operate the f1 and return amiga keys for the game Flashback, using the following mappings in the global config of the launcher.

          joystick_0_left_shoulder = action_key_f1
          joystick_0_right_shoulder = action_key_return

          I can apply these manually to the flashback game entry in the launcher using the cog (top right) however these settings are lost after saving.

          So i came up with the idea of adding a 2nd line to the generated flashback (1993).fs-uae file which currently contains the UUID. for example
          ce412738-58e5-4bf1-ad4d-4a66aa8f2e90-image.png

          now all i need to do is parse the 2nd line in the launch script but i'm struggling to get the head command to do what i need.
          e.g.
          #!/bin/bash

          Get the UUID from the first line of the file

          uuid=head -n 1 "$1"
          params=<something here>

          Launch FS-UAE Launcher passing it this UUID

          fs-uae-launcher "$uuid $params"

          This should then pass the params via command line and map the buttons for this game only.
          any help is appreciated, it seems there is no other way to do this as the per-game modifications are not stored in the launcher config (as they are not stored in the db profile)

          S 2 Replies Last reply Reply Quote 0
          • S
            silver @zombiefly
            last edited by

            @zombiefly Hello! So, assuming I've read this correctly, you basically want to update the launcher so that it can read a two line .fs-uae file with both the UUID and some optional additional arguments?

            Assuming I'm right, then change launch-fs-uae to be the following:

            #!/bin/bash
            
            # Get the UUID from the first line of the file
            uuid=`sed '1!d' "$1"`
            
            # Get (optional) additional arguments from the second line of the file
            args=`sed '2!d' "$1"`
            
            # Launch FS-UAE Launcher passing it this UUID and any further arguments
            fs-uae-launcher "$uuid" $args
            

            The only downside to this approach is that if you run create-fs-uae-uuids again then it'll overwrite the file and your additional command line arguments.

            Hope that helps!

            1 Reply Last reply Reply Quote 0
            • S
              silver @zombiefly
              last edited by silver

              @zombiefly Apologies for the followup, but I think I've found a better solution. This solution stores your additional arguments in a separate text file against a UUID - which means that it doesn't matter if the .fs-uae file gets deleted.

              For this solution, change launch-fs-uae to be the following:

              #!/bin/bash
              
              # Get the UUID from the first line of the file
              uuid=`sed '1!d' "$1"`
              
              # Get (optional) additional arguments from the args.cfg file
              args=`grep "$uuid" args.cfg | cut -d$'\t' -f2`
              
              # Launch FS-UAE Launcher passing it this UUID and any further arguments
              fs-uae-launcher "$uuid" $args
              

              Now all you have to do is create a file called args.cfg with the UUID followed by a tab and then your arguments:

              uuid[tab]--additional-arguments = values --more-args = values -x
              

              for example:

              7798d12b-8e3f-5c7d-ae1f-dce95fed2b4f    --joystick_0_left_shoulder = action_key_f1 --joystick_0_right_shoulder = action_key_return
              b6ea35bf-598f-4eed-8ac1-1c0d092b0d6e    --accuracy = -1
              

              Now when fs-uae-launcher is run, it'll load the UUID from the .fs-uae file, look up the UUID in args.cfg to see if there are any additional arguments and then launch fs-uae-launcher.

              Hope that helps!

              Z 2 Replies Last reply Reply Quote 1
              • Z
                zombiefly @silver
                last edited by

                @silver thanks for the reply. yes, the first option would have meant recreating the files. i will have a try with this today, thanks :)

                1 Reply Last reply Reply Quote 0
                • Z
                  zombiefly @silver
                  last edited by zombiefly

                  @silver made the changes, it now picks up the values from the args file, which i placed into the rom folder. However, now the launcher starts and opens but fails to start the game... (just opens the launcher)

                  On this topic, the last posts indicate this should work (passing --amiga_model)
                  https://eab.abime.net/showthread.php?t=76631

                  pi@retropie-ub:~/RetroPie/roms/amiga$ pi@retropie-ub:~/RetroPie/roms/amiga$ launch-fs-uae 'Flashback (1993).fs-uae'
                  fs-uae-launcher 7798d12b-8e3f-5c7d-ae1f-dce95fed2b4f --joystick_0_left_shoulder = action_key_f1 --joystick_0_right_shoulder = action_key_return
                  [LOGGING] Logging to /home/pi/Documents/FS-UAE/Cache/Logs/fs-uae-launcher.log.txt
                  FS-UAE Launcher 3.0.5u2
                  ['/usr/bin/fs-uae-launcher', '7798d12b-8e3f-5c7d-ae1f-dce95fed2b4f', '--joystick_0_left_shoulder', '=', 'action_key_f1', '--joystick_0_right_shoulder', '=', 'action_key_return']
                  uname_result(system='Linux', node='retropie-ub', release='5.4.0-42-generic', version='#46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020', machine='x86_64', processor='x86_64')
                  [SETTINGS] No settings path specified
                  [SETTINGS] Using default /home/pi/Documents/FS-UAE/Data/Settings.ini
                  [SETTINGS] Loading from /home/pi/Documents/FS-UAE/Data/Settings.ini
                  [SETTINGS] Set config_name = Flashback (Amiga, WHDLoad, v3.4, 1163)
                  [SETTINGS] Set config_search = zool
                  [SETTINGS] Set configurations_dir_mtime = 1697024739+40
                  [SETTINGS] Set database_auth = *CENSORED*
                  [SETTINGS] Set database_email = *CENSORED*
                  [SETTINGS] Set database_show_adult = 1
                  [SETTINGS] Set database_show_games = 0
                  [SETTINGS] Set database_username = *CENSORED*
                  [SETTINGS] Set device_id = 1903b111-f233-47da-8185-0e4a99fa75f3
                  [SETTINGS] Set fullscreen = 1
                  [SETTINGS] Set kickstarts_dir_mtime = 1697062197
                  [SETTINGS] Set last_floppy_dir = /home/pi/RetroPie/roms/amiga/zool-aga
                  [SETTINGS] Set last_hd_dir = /home/pi/RetroPie/roms/amiga
                  [SETTINGS] Set last_scan = 1697208316.7523682
                  [SETTINGS] Set last_settings_page = Advanced
                  [SETTINGS] Set launcher_close_buttons = 1
                  [SETTINGS] Set launcher_theme = fusion-dark
                  [SETTINGS] Set maximized = 0
                  [SETTINGS] Set search_path = /home/pi/RetroPie/roms/amiga;/home/pi/RetroPie/BIOS/Amiga;/home/pi/RetroPie/roms/amiga1200;/opt/retropie/emulators/fs-uae/bin;/home/pi/Documents/FS-UAE/Floppies
                  [I18N] Initialize_locale language =
                  [I18N] Locale is en_GB
                  [I18N] Checking /usr/bin/share/fs-uae-launcher/share-dir
                  [I18N] Checking /usr/bin/../share/fs-uae-launcher/share-dir
                  [I18N] bindtextdomain fs-uae-launcher: /usr/bin/../share/locale
                  [I18N] find translations for en_GB in local directory /usr/bin/../share/locale
                  [I18N] Path to mo file: None```
                  
                  
                  edit: tried a few variations including putting the uuid as the last parameter:
                  fs-uae-launcher <args> <uuid> 
                  which does start the game, then the launcher is switching to a different variant (different uuid) and launching that via whdload. Still not mapping the controls though. i feel like i'm really close here :)
                  S 1 Reply Last reply Reply Quote 0
                  • S
                    silver @zombiefly
                    last edited by silver

                    @zombiefly I'll admit that my Retropie installation is currently offline (microSD card failure), so I've been testing on a Windows machine.

                    Has passing those command line variables to fs-uae-launcher ever worked?

                    The reason being that I've tried playing around with the Windows version of fs-uae-launcher and it doesn't seem to accept anything bar a small number of parameters in the command line. If you cannot get it working either then the only other way will be to call fs-uae directly with all the correct command line arguments - which is a little more complicated to implement.

                    Z 1 Reply Last reply Reply Quote 0
                    • Z
                      zombiefly @silver
                      last edited by

                      @silver i updated my prev post with some info. it's unclear if you can pass control mappings to the launcher like this, most posts go direct to fs-uae as the solution, so it may not support this type of parameter passing.

                      I can live with it as a global config as so far it hasn't caused any issues. thanks for the help though :)

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        silver @zombiefly
                        last edited by silver

                        @zombiefly Ahh, sorry to hear that. To be honest, the lack of options for fs-uae-launcher makes sense, given that the goal of is to get you quickly running the game with the optimal settings already pre-configured.

                        You might be able to roll your own command line that calls fs-uae directly - something along the lines of:

                        /usr/bin/fs-uae --fullscreen --amiga-model=A500 --base_dir=/userdata/system/configs/fs-uae --kickstarts_dir=/userdata/bios --save_states_dir="~/RetroPie/roms/amiga/Flashback (1993)" --zoom=auto --floppy_image_0="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 1).adf" --floppy_drive_0="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 1).adf" --floppy_image_1="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 2).adf" --floppy_drive_1="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 2).adf" --floppy_image_2="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 3).adf" --floppy_drive_2="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 3).adf" --floppy_image_3="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 4).adf" --floppy_drive_3="~/RetroPie/roms/amiga/Flashback (1993)/Flashback (1993) (disk 4).adf" --joystick_0_left_shoulder=action_key_f1 --joystick_0_right_shoulder=action_key_return
                        

                        I've not tested it, but hopefully it gives you enough to have a play and get working.

                        1 Reply Last reply Reply Quote 1
                        • 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.