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 10.7k 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.
    • ClydeC
      Clyde @silver
      last edited by

      @silver Where can one find the updated script? Your opening post still shows as last edited seven days ago.

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

      • Although I've hardcoded the paths into the script, given that these are the default FS-UAE and EmulationStation paths, it should make it even easier to use

      Since you defined them at the top of the script, I don't see a problem with that either.

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

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

        @silver Where can one find the updated script? Your opening post still shows as last edited seven days ago.

        Odd, I only just updated it now! I think that might be something to do with the forum software?

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

        • Although I've hardcoded the paths into the script, given that these are the default FS-UAE and EmulationStation paths, it should make it even easier to use

        Since you defined them at the top of the script, I don't see a problem with that either.

        I was hoping that, so good to know :) I still think the installation instructions are overly complicated as I think the majority of people will just have one account running EmulationStation with the default locations. In which case it should just be "save these files, copy to /usr/local/bin/, set permissions and you're done".

        Would be good to know your thoughts?

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

          Blow it, I've updated the instructions based on those assumptions :)

          I think anyone who has changed the defaults will know what to change to get it working.

          1 Reply Last reply Reply Quote 0
          • ClydeC
            Clyde @silver
            last edited by Clyde

            @silver Forget what I wrote, I just mistook the creation date for the editing date. The latter shows when you hover the mouse pointer over the little edited sign behind the creation date.

            Your instructions are already well structured, I think, and some things can't be shortened much more without becoming unintelligible.

            One thing I noticed that won't concern many common users in my opinion is the system-wide placement you describe. I usually advise less experienced users to put scripts into ~/bin for global access, because most of them only have one user account. Experienced users don't require that information anyway.

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

              Added a bunch of updates just to make things clearer, plus added some commentary to the code so people understand what it's actually doing.

              1 Reply Last reply Reply Quote 0
              • W
                werpu
                last edited by werpu

                Thanks for the guide it was really helpful to move my collection over to fs-uae, there are several small issues
                a) The db already must exist, so fire up fs-uae-launcher first and import/scan your games
                b) There is a small bug in the regexp file=echo $name | sed -e 's/[^a-z0-9\._\-&]/ /gi' | tr -s ' ' the & should be escaped aka \&
                c) Third on localized machines, Documents will become something else, aka on german machines Documents now is Dokumente, they localized the paths after user home. Not sure if there is a generic way to query them.
                I just wanted to drop the info.

                1 Reply Last reply Reply Quote 0
                • N
                  noise @silver
                  last edited by

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

                  @youxia said in Guide: Getting EmulationStation to work with FS-UAE:

                  I thought Amiberry solution is presently the best one regarding Amiga?

                  I've never tried it. If it works better for you, then great.

                  that's right but Amiberry is only ARM, not possible at this time with x64.

                  the guide is fine, except running with my adf files.. (i need to do it manually) thanks for it. (y)

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

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

                    the guide is fine, except running with my adf files.. (i need to do it manually)

                    Glad to hear you found the guide helpful!

                    Regarding the issue you have with ADF files, can you explain a little more?

                    If I can solve your problem by improving the script then I'm more than happy to do so.

                    1 Reply Last reply Reply Quote 0
                    • N
                      noise
                      last edited by noise

                      @silver
                      if that does not too much circumstances to you, with pleasure

                      i try to start a fs-uae file, but no work it starts only the launcher itself.
                      (here i give all other right, Amiberry is much better with starting from uae files)

                      it is not posible to start a fs-uae file like this, only with uuids ?
                      open internal with fs-uae starts the game

                      [fs-uae]
                      accelerator_memory = 262144
                      bsdsocket_library = 0
                      chip_memory = 8192
                      cpu = 68000
                      floppy_drive_0 = GAME.ADF
                      floppy_drive_speed = 0
                      floppy_drive_volume_empty = 5
                      graphics_memory = 262144
                      network_card = a2065
                      slow_memory = 1536
                      sound_card = toccata
                      

                      also have a few lha files that not working with fs-uae, however on rasperry with amiberry worked fine.

                      Edit: the only way i got to start a adf from emulationstation are with a .sh script with the command

                      fs-uae --floppy-drive-0=GAME.ADF --fullscreen
                      

                      but this needs to replace the runcommand to default.
                      is there a simple terminal command to run a .lha file ?
                      i try:

                      fs-uae --amiga_model=A1200 --accelerator_memory=262144 --bsdsocket_library=0 --fast_memory=8192 --floppy_drive_speed=0 --floppy_drive_volume=3 --floppy_drive_volume_empty=0 graphics_memory=262144 --slow_memory=1536 --fullscreen --fullscreen=1 --fullscreen_mode=desktop --hard_drive_0=game.lha --x_whdload_args=game.slave PRELOAD
                      

                      but no success

                      the fs-uae config file from launcher start the game with:

                      [fs-uae]
                      accelerator_memory = 262144
                      amiga_model = A1200/3.0
                      bsdsocket_library = 0
                      chip_memory = 8192
                      cpu = 68000
                      fast_memory = 8192
                      floppy_drive_speed = 0
                      floppy_drive_volume_empty = 5
                      graphics_memory = 262144
                      hard_drive_0 = game.lha
                      network_card = a2065
                      platform = amiga
                      slow_memory = 1536
                      sound_card = toccata
                      x_whdload_args = game.Slave PRELOAD
                      
                      S 1 Reply Last reply Reply Quote 0
                      • S
                        silver @noise
                        last edited by

                        @noise Sorry, I'm probably not going to be much help. lha is an Amiga archive format and it's not something I've seen used before to compress disk images for running via emulation.

                        My instructions will stop EmulationStation from displaying any Amiga games which don't end in fs-uae and then cause runcommand to launch my script which itself launches fs-uae-launcher with the correct UUID.

                        If you need to run a different command line for certain image formats, then you'll need to modify the create-fs-uae-uuids script to examine the database for the correct filetype and then write out a custom script as the name of the game.

                        In the coming weeks I'll have a play and see if I can recreate the issue you're having. Sorry I can't be much more help.

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

                          Following on from this, a couple of people have asked me if it's possible to separate out the Amiga, CD32 and CDTV games.

                          It is possible and you only need to make a simple one line change in create-fs-uae-uuids.

                          Look for the following line:

                          sqlite3 "$database" "select name,year,uuid from 'game' where have=4" | while read line ;
                          

                          If you want only Amiga games change it to:

                          sqlite3 "$database" "select name,year,uuid from 'game' where have=4 and platform='Amiga'" | while read line ;
                          

                          If you want only CD32 games change it to:

                          sqlite3 "$database" "select name,year,uuid from 'game' where have=4 and platform='CD32'" | while read line ;
                          

                          And if you want only CDTV games change it to:

                          sqlite3 "$database" "select name,year,uuid from 'game' where have=4 and platform='CDTV'" | while read line ;
                          

                          Save the file, re-run and enjoy.

                          If you're feeling particularly adventurous, then you could always update the SQL to include the platform, save that as a variable and then write out the UUIDs to a different location depending on the platform - but I'll leave that as an exercise for the reader :)

                          1 Reply Last reply Reply Quote 2
                          • X
                            xxalfalfaxx
                            last edited by

                            Hi all,
                            i successfully followed all steps above but i can't see any amiga game listed in EmulationStation.
                            Does the guide still worth?

                            Thank you

                            X 1 Reply Last reply Reply Quote 0
                            • X
                              xxalfalfaxx @xxalfalfaxx
                              last edited by

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

                              Hi all,
                              i successfully followed all steps above but i can't see any amiga game listed in EmulationStation.
                              Does the guide still worth?

                              Thank you

                              Helped by the kind author. Just a tag mistake in es_systems.cfg

                              1 Reply Last reply Reply Quote 0
                              • S
                                SierraFOOL
                                last edited by

                                Is it possible to integrate the fs-uae in the Retropie Setup to Support this exellent Emulator Out of the Box?

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

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

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