English Amiga Board

English Amiga Board (http://eab.abime.net/index.php)
-   support.FS-UAE (http://eab.abime.net/forumdisplay.php?f=122)
-   -   Want to try builds of the new FS-UAE & Launcher? (http://eab.abime.net/showthread.php?t=106562)

FrodeSolheim 10 April 2021 20:44

Want to try builds of the new FS-UAE & Launcher?
3 Attachment(s)
TL;DR; You can start using the new FS-UAE & Launcher today. It works great for many uses cases, but some features are missing. You can test it just out of curiosity, or it might be good enough for your needs already :)

For the time being, I'm not not releasing official dev/stable builds of FS-UAE 4; instead you get work-in-progress snapshots (More about automated builds and versioning later in this post). A nice feature is support for automatic updates in the new Launcher, so you can easily keep up to date with new builds :cool

The following downloads include only FS-UAE Launcher. However, upon launch, it will suggest to automatically download FS-UAE, CAPSImg and QEMU-UAE for you:

FS-UAE-Launcher_Master_Linux_x86-64.tar.xz (Ubuntu 18.04 or newer, or other similarly recent Linux distribution, on x86-64)

FS-UAE-Launcher_Master_Windows_x86-64.tar.xz (Windows 7 or newer on x86-64)

FS-UAE-Launcher_Master_macOS_ARM64.dmg (macOS 11.0 or newer on x86-64)

FS-UAE-Launcher_Master_macOS_x86-64.dmg (macOS 10.13 or newer on M1)

The update system installs updates in the FS-UAE/System folder. This includes updates to FS-UAE Launcher itself. So, if you have stored FS-UAE-Launcher somewhere else and launched it from there, it will check if a newer version exists in FS-UAE/System/FS-UAE-Launcher and re-launch the newer version instead. If you want to avoid having both an old and new launcher installed at the same time, you can extract the Windows/Linux version into FS-UAE/System/FS-UAE-Launcher to begin with and launch it from there, or delete the initially downloaded version after an FS-UAE-Launcher update has been installed.

The macOS primary downloads are distributed as .dmg images to make sure that the gatekeeper security system does not quarantine the app. If you wish, you can download the .tar.xz plugin download instead (x86-64, ARM64).

The new Launcher does not yet do incompatible updates to the local databases, so you should be able to switch between using FS-UAE Launcher 4 and 3 as desired, while sharing data.

Please consider reading the following information if you want to use the new Launcher & FS-UAE!

For legacy operating systems

I've also created some variants for older operating systems:

FS-UAE-Launcher_Master_macOS10.9_x86-64.dmg (macOS 10.9 or newer on x86-64)

Please note that this "macOS10.9" Launcher will suggest downloading the regular "macOS" updates which requires macOS 10.13+. So if you need to use this version, you must download updates for FS-UAE Launcher manually, at least for now. The other plugins (FS-UAE, QEMU-UAE and CAPSImg) should all work on macOS 10.9+.

New FSEMU video/audio/input layer

The homegrown libfsemu library used in FS-UAE have been replaced with a newer FSEMU library which improves on and fixes several shortcomings in the old one. While it should be better, and in many cases is, some stuff is not implemented yet. And in particular, many display/video-related options may have no effect at this point. Instead, the focus is on providing good default settings, and still relevant options (most of them) will be reimplemented progressively.

Improvements include support for hotswappable gamepad devices, more efficient video rendering, better timing, as well as laying the foundation for more driver backends (see later notice) and being easier to maintain. Other consequences is that some features, such as shaders, are not supported yet. This will be fixed of course.

See the following post for a to-do list which I'll hopefully keep up to date :blased

New timings in FS-UAE core

Timing-related code in FS-UAE have been largely rewritten based on better understanding on how UAE works compared to when I begun work on FS-UAE. In particular, fastest-possible-modes should work much better. Previously, the emulated cycles could vary much from frame to frame giving uneven performance, and vsync could not be used together with it (which works now). Also, the improved timings can allow for lower audio latency though this is not configurable at this point.

New FS-UAE user interface

FS-UAE comes with a new user interface that I think looks and works better (or at least promises to do some when complete).

The new interface uses custom window decorations by default (*), but will not require it. There is an environment variable to use native decorations, and there will be an official/supported option for it as well.

(*) An unintended consequence is the lack of drop shadow on Windows. Hopefully I can find a fix/workaround for that.

The new interface includes LEDs and side bezels by default. This are not configurable at the moment, but will be able to disable those later.

A note about the LEDs - the VSYNC led is currently always shown, and it might flash green and red for you. This is intentional, if vsync is enabled - or FreeSync or G-SYNC is used - so that frames are rendered and presented at regular intervals, the VSYNC led should appear solid yellow-ish due to how our eyes work. So it is a trick to visually gauge whether vsync works properly. However, it can probably be annoying when vsync is not enabled or not working, so this needs to become configurable ;-)

New display defaults

By default, FS-UAE will now show a fixed 4:3 viewport - a bit bigger than 640x512 to show overscan content in games. Side bezels are uses to frame this in a nice way. I intend to bring back options to configure this to your desire, so if you want it to work like in FS-UAE 3.x, you should be able to do so in the future.

New integrated Slirp library

Integrating a Slirp library properly means that A2065 emulation works reliably now and does not depend on the QEMU-UAE plugin. Previously, data corruption or even FS-UAE crashes would sometimes occur due to a race conditing in FS-UAE. Great news for using networking in AmigaOS 4.1.

AmigaOS 4.1 and UAE expansions

Speaking of AmigaOS 4.1, integration of newer code from WinUAE means that UAE expansions such as using directory hard drives finally work with AmigaOS 4.1. It does not work out-of-the-box at this point, you need to specify that the UAE board should work in indirect mode.

TODO: Make note about correct option.

MIDI support

FS-UAE includes MIDI support via the portmidi library. This was a contributed feature by Christian Vogelgsang (cnvogelg). I have tested this on Linux by running Sierra games with MT-32 music routed to an MT-32 emulator running on Linux and it worked nicely. However, it isn't straightforward to set up, as you need to somehow find the correct midi device name. I will need to test this on all supported operating systems, write an HOWTO, and hopefully also include an configuration tool in FS-UAE Launcher so you can choose MIDI devices there instead of messing around with config files.


Saves may not be working at the moment, due to internal changes in how games are run from the launcher. So beware that your progress may not be saved yet. This applies specifically to running games from the Launcher, when using FS-UAE directly, this does not apply, but please test that saves work if you plan on using the new version and keeping progress (*).

(*) Even though saves might work from the Launcher in some cases now, the save directory layout might still change, so now guarantees about save compatibility right now.

Better support for Raspberry Pi 4

See docs/raspberry-pi-4.md in the code repository. I will probably supply official ARMv7/ARMv8 builds for Raspberry Pi 4 soon.

Multiple driver backends

The new FSEMU library allows for multiple driver backends in some cases. In particular, rendering can use OpenGL directly, or use the rendering infrastructure provided by SDL2. In the latter case, SDL2 can choose to render via Direct3D instead - a nice option on Windows if you've got bad OpenGL drivers. However, OpenGL is the main target, and right now, you cannot select the alternative renderer. A "null" video driver also exists btw, allowing to run FS-UAE headlessly.

Multiple audio backends also exist. Right now, the only supported choice is the SDL audio driver (which chooses its own backends), but an ALSA backend has also been written and tested (but it might be slightly outdated at this point, and probably needs some updates before working correctly).

So in short, there is only "one supported" backend combination at this point, but code is in place to allow for more variation here, when time permits more development on this.

On-screen keyboard

FS-UAE finally includes an on-screen keyboard (F11 or SELECT to toggle). It works, but it only has a rudimentary GUI and navigation is a bit awkward. The plan is to make it look and work nicely, and also include an "toggle hold" feature for keys, so you can press it once with your gamepad and it will be kept pressed while you press other keys.

Keyboard shortcuts and input mapping

Many keyboard shortcuts are still missing, and you cannot do any custom input mapping right now. For most users, the defaults are probably just fine, but if you depend on being able to do custom remapping, you must wait a bit longer.

Net play

Net play does not yet work the new FS-UAE, since parts of the net play support must be re-implemented to work with the new FSEMU library.

Updated UAE core from WinUAE

FS-UAE currently includes code from WinUAE 4.2.1. More recent WinUAE updates will be merged then the state of FS-UAE 4 stabilizes.

New features and missing features

The new FS-UAE & Launcher have several fixes and some new features over the old versions. However, many features are also lacking - in particular, it is less configurable in terms of user interface etc. Emulation-wise, it supports the same options as before.

A note about Apple M1 hardware

FS-UAE will compile for M1, but I don't currently have any M1 hardware, and will not provide ARM/M1 builds for macOS until I can test those builds myself. The x86-64 builds should work via Rosetta, and if you are interested, you can compile your own builds for M1 hardware.

New FS-UAE Launcher user interface

The Launcher also contains a face-lift. It might be subjective if it is better or worse than the old one. I like the new one better, of course. It is still a work in progress, so please keep that in mind.

Like FS-UAE, the Launcher also uses custom window decorations, and there will also here be an option to use force native window decorations as well. It will also likely include an option to use a more native color palette if you don't like the current design which is partially based on the default color scheme from Workbench 2.x/3.x and is intended to look the same on all platforms.

Automatic updates

A very recent addition to FS-UAE Launcher is support for automatic updates (*). I've tested this on all supported platforms (Linux, macOS, Windows), and seems to work great, though the user interface should be prettier and more functional in the future - let me know if you have issues.

(*) You will need to accept/press a button or two; I don't like fully automatic updates. You should be in charge of if and when.

Some more Launcher notes

In addition to a face lift (work in progress), the code for launching FS-UAE is also being updates. This means that some configuration *might* fail to start. If you encounter issues with this, please report so I can fix it as soon as possible.

FS-UAE Arcade

FS-UAE Arcade is not supported at this point, all focus is on making FS-UAE & the Launcher better first.

Automated build system via GitHub actions

I spent some time setting up an automated build system via GitHub actions. Whenever code is checked in to GitHub, new builds are created and made available on GitHub as build artifacts to the build action, and in a shared Dropbox folder:

So while I don't create any "dev" builds at this point, you can run the builds created from the master branch on GitHub, and these builds are the ones I've made available here.

New versioning scheme

I'm (probably) moving away from the old scheme of using odd and even minor versions to indicate stable and development series. I'm also simplifying it somewhat by focusing on the first number, so the next stable FS-UAE version will be known as "FS-UAE 4", but the full version number of that release might be something like 4.19.1. Then, the next version with new features will be "FS-UAE 5".

Right now, there exist builds with versions such as 4.0.30-master. This is *not* the final FS-UAE 4 version, but a work-in-progress towards FS-UAE 4 (and "-master" signifies that it has been built from the master branch). The "30" in this example is an auto-increment build number related to the automated builds.

Using 4.19.1 as example:

- The first number (4) is the main version number of FS-UAE.
- The next one (19) will be incremented when I feel for it, but basically, this will be the new "dev releases". So 4.1.x might be the first "dev" release, 4.2.x the second, up until it's ready for becoming the new stable release. At this point, maybe 4.19.x or 4.27.x is reached. When the stable version is release, work on 5.x will start.
- The third number is (typically) an auto-incremented build number.
- The git commit a version was built from will be included in the build as well somehow, so an automatically built version can be traced back to the exact commit.

Stable versions will also be built by the automated build system, but from separate git branches.

Hopefully, the use of these new version numbers will become clear, and it is still subject to change if I'm not happy with it.

A note for packagers

There is no "install" target in the fs-uae-launcher Makefile yet, so the project is currently unsuitable for 3rd-party packaging. This will be fixed at a later time when the projects stabilize a bit more. I only support my own binaries right now, or alternatively, you can build and run fs-uae & fs-uae-launcher from the source directories (make sure they are placed side by side).

What's next?

Obviously, there's a way to go to get feature parity with FS-UAE 3.x. And in the meantime, you might be unsure if a problem you have with FS-UAE 4 is a bug, or just something that isn't implemented yet. If unsure, please just ask, and as a result, a bug can be fixed - or - a todo item can be explicitly put on the todo list.

And also, does this new version do almost everything you need, except for one or two things? It could be useful to let me know; it might influence the priorities. And maybe we should have a poll to gauge what the most missing features are?

FrodeSolheim 10 April 2021 20:44

Known issues:

- FS-UAE: Using the dedicated pause/break key only pauses when key is held. Using Alt/Cmd+P works correctly.
- FS-UAE: NTSC games are displaying too much video (resulting in garbage in lower part of screen).

- Launcher: Opening the scan files dialog twice causes error
- Launcher: Launching configs with manually configured .hdf files or directory hard drives fails to launch with NotImplementedError.
- Launcher: Launching WHDLoad slaves seems to fail on Windows only. Works on Linux, looking in to it.

- Launcher: No save button for saving configs at the moment
- Launcher: Mapping controller buttons/axes in settings is not picked up by FS-UAE yet (but FS-UAE comes with a lot of built-in configs).
- Launcher: When FS-UAE is started and your Windows/macOS system uses HiDPI mode, the FS-UAE window might be opened off-center.
- Launcher: The device drop down menu for selecting input device may list devices twice (one with quotes and one without).
- Launcher: Launching WHDLoad games by selecting a .lha/.zip of an archived game install does not currently work.


This is the current content of fs-uae/docs/todo.md. Please note that this list is not intended to be 100% complete. Anything missing from this list does not mean that it won't be implemented.

FS-UAE to-do:

- You cannot actually choose input devices before startup atm, but you can change them from the on-screen GUI.
- GUI rendering is not optimized yet, GUI element textures are created for each frame and not reused. Could affect performance on slower systems.
- Monitor selection does not work in all cases.
- CD audio does not work
- Themes are not implemented yet
- Some video scaling options may have no effect yet
- Some video and audio options may have no effect right now (for example GPU texture format or audio frequency).
- Net play support is not ready yet
- Support for multiple mice is not ready yet
- Joystick support may be limited to gamepad-like devices initially
- Support controlling the GUI with the mouse.
- The escape key should close the on-screen menu.


- Built-in file browser with controller support (mainly for floppy selection), an oft-requested feature.

Other bonuses:

- Make it easier to specify (any) actions on game controllers in ports, independent of controller type but dependent on port mode. (e.g. port0_joy_lefttrigger = action_quit)
- Custom names and automatic screenshots for save states.

In progress:

- On-screen keyboard suitable for use with controllers with realistic system-specific keyboards.


- Better audio subsystem with lower audio latency.
- Make better use of high-resolution timers to ensure the emulation runs smoothly also in fastest-possible CPU mode.
- Support hot-plugging game controllers.
- Create a better architecture which makes it easier to support different audio and video backends. Initial version with ALSA and SDL2 audio backends, and OpenGL and SDL2 video backends.
- Ensure that FS-UAE works really well with G-SYNC and FreeSync monitors on supported systems.
- Better internal book-keeping and visual graphs of performance and timing, to make it easier to identify issues and make sure the emulation runs smoothly.
- Truetype font rendering for better readability and internationalization.
- Better support for high-DPI displays.
- Make the user interface adapt better to non-16:9 displays.
- Make (lib)FSEMU better suitable for integration with different emulators.
- Use RTLD_DEEPBIND with dlopen on Linux when loading plugins, allows for new self-contained QEMU-UAE plugin to work around an issue with how Glib is used.
- Bridgeboard & VGA available and works with custom uae_* options.
- Better clipboard sharing integration.
- New built-in slirp implementation from QEMU 5.2.0 and reworked the slirp support in FS-UAE. Fixes random crashes and corrupt network data.
- Other things I forgot; I haven't been very good at keeping updated Changelog entries lately.

kkgarbod 11 April 2021 09:52

1 Attachment(s)
Me got a guru meditation, randomly clicking on the new preference screen:


FrodeSolheim 11 April 2021 09:56


Originally Posted by kkgarbod (Post 1476157)
Me got a guru meditation, randomly clicking on the new preference screen:

Known (should have removed that icon for now) :)

jbl007 11 April 2021 10:55

Great news! :great
Didn't have the time for excessive testing. Currently I'm fighting against some self made problems. :rolleyes
The launcher's Makefile doesn't provide an install target - so far, so bad. So I have to use it "in-place" which works, but it doesn't find fs-uae.
@Frode: Please allow the system installed fs-uae to be used: https://github.com/FrodeSolheim/fs-u...ncher/pull/107

FrodeSolheim 11 April 2021 11:28


Originally Posted by jbl007 (Post 1476164)
The launcher's Makefile doesn't provide an install target - so far, so bad. So I have to use it "in-place" which works, but it doesn't find fs-uae.
@Frode: Please allow the system installed fs-uae to be used: https://github.com/FrodeSolheim/fs-u...ncher/pull/107

This is on purpose, to maintenance burden when structure changes might still happen, I haven't made it system-installable yet. Will be fixed later of course. Also made a note "For packagers" in the initial post.

If you're compiling your own version, you can just put the fs-uae and fs-uae-launcher directories side-by-side, and ./fs-uae-launcher should find ./../fs-uae/fs-uae automatically. I'm not keen on letting it find the system executable right now, to avoid unintentional issues (for example, if the new v4 fs-uae-launcher finds the old v3 fs-uae-device-helper). But it should of course be possible later. But maybe via an option to make it explicit (because if you're not using the "system fs-uae-launcher" it might be a bug/problem if it does not find "fs-uae" in a plugin).

jbl007 11 April 2021 11:57

Ok, mixing different versions makes debugging unnecessarily complicated, I agree. I'm going with the side-by-side for now, seems to work well.

I really like the new design, although the font looks more like Atari. :D

McNoise 11 April 2021 14:05

1 Attachment(s)
If I use the launcher and an Amiga hard drive (file or folder) I get always an error after clicking START.

Starting my default config directly mit FS-UAE works flawless.

McNoise 11 April 2021 14:13

Could provide some infos, how to configure MIDI on macOS?

FrodeSolheim 11 April 2021 14:24


Originally Posted by McNoise (Post 1476187)
If I use the launcher and an Amiga hard drive (file or folder) I get always an error after clicking START.

Will try to get fixed today :great (Bonus, we'll get to test automatic updates)


Originally Posted by McNoise (Post 1476191)
Could provide some infos, how to configure MIDI on macOS?

Yes, I just need to figure it out / test for myself first :)

McNoise 11 April 2021 15:33

All right, I'll be patient. :spin

BjornHeimdall 11 April 2021 18:00

It's not working as intended for me in my MacBook Pro M1. I see many many yellow lined Guru type errors.:D And i'm curious, how can i list my games on ready and configs same time?

FrodeSolheim 11 April 2021 19:59


Originally Posted by BjornHeimdall (Post 1476227)
It's not working as intended for me in my MacBook Pro M1. I see many many yellow lined Guru type errors.:D And i'm curious, how can i list my games on ready and configs same time?

Difficult to comment about unspecified errors... :)

Ah, at the moment, the selector for choosing between games and configs is not in the UI, so if you have selected either games or configs in the old Launcher, that settings will still apply. Stupid workaround, start FS-UAE Launcher 3, change the setting and start FS-UAE Launcher 4 again :blased

ziosante 13 April 2021 18:28

Downloaded today and trying
Auto update opened and updated automatically


japamuz 16 April 2021 09:01

On windows version, left Alt brings up menu (same than pressing F12). Games like Slamtilt, pinball dreams etc... or Alien Breed (for changing weapon) is impossible to play.

FrodeSolheim 16 April 2021 09:16


Originally Posted by japamuz (Post 1477261)
On windows version, left Alt brings up menu (same than pressing F12). Games like Slamtilt, pinball dreams etc... or Alien Breed (for changing weapon) is impossible to play.

This is correct (this is also an issue in FS-UAE 3.x where the Alt key is still a dedicated shortcut key).

What you do then is to enable full keyboard emulation - Press Alt+K (or F12+K) to do this. From now on, you must use the F12 key as a modifier key, until you switch back with F12+K!

japamuz 16 April 2021 09:38


Originally Posted by FrodeSolheim (Post 1477265)
This is correct (this is also an issue in FS-UAE 3.x where the Alt key is still a dedicated shortcut key).

What you do then is to enable full keyboard emulation - Press Alt+K (or F12+K) to do this. From now on, you must use the F12 key as a modifier key, until you switch back with F12+K!

Thanks for quick reply... Alt+K works..

McNoise 16 April 2021 13:37

About the auto update on Mac:

The auto update function on the Mac does his job like it should (visually) - the update is downloaded and completed, but no changes took effect after the restart.

I've installed the Launcher as usual in the program folder ... hm!? Any additional ideas?

FrodeSolheim 16 April 2021 13:42


Originally Posted by McNoise (Post 1477302)
The auto update function on the Mac does his job like it should (visually) - the update is downloaded and completed, but no changes took effect after the restart.

As mentioned in the initial post: "Due to how the new update system works (updates are always placed in the FS-UAE/System folder), I provide the archives with the same structure in mind (and with a Portable.ini file), so you can extract these files directly in to your existing FS-UAE folder or extract it anywhere else if you want a new self-contained folder for FS-UAE 4."

So, you can find the update in FS-UAE/System/FS-UAE-Launcher/ - more specific: FS-UAE/System/FS-UAE-Launcher/macOS/x86-64/FS-UAE-Launcher.app. If you run this, you get the new version. You should be able to at least dock this .app to avoid having to browse for it every time, but right now it cannot be in /Applications while also working correctly with automatic updates.

McNoise 16 April 2021 17:06

Ok - sorry for bugging you ... in this way it works of course. Thank you! :)

Unfortunately starting using Amiga hard drives with the launcher still doesn't work (4.0.70). but no problem atm.

All times are GMT +2. The time now is 13:24.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2021, vBulletin Solutions Inc.

Page generated in 0.06810 seconds with 11 queries