[Guide] Getting EmulationStation to work with FS-UAE
-
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. -
@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)
-
@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.
-
@silver
if that does not too much circumstances to you, with pleasurei 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
-
@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 causeruncommand
to launch my script which itself launchesfs-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.
-
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 :)
-
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
-
@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
-
Is it possible to integrate the fs-uae in the Retropie Setup to Support this exellent Emulator Out of the Box?
-
@sierrafool
fs-uae
is already part of RetroPie, it's available on a PC though, since it's not working (yet) on ARM. -
@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 😀
-
@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.
-
-
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_returnI 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
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/bashGet 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) -
@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!
-
@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 inargs.cfg
to see if there are any additional arguments and then launchfs-uae-launcher
.Hope that helps!
-
@silver thanks for the reply. yes, the first option would have meant recreating the files. i will have a try with this today, thanks :)
-
@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=76631pi@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 :)
-
@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 callfs-uae
directly with all the correct command line arguments - which is a little more complicated to implement. -
@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 :)
-
@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.
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.