View Single Post
Old 10 April 2021, 20:44   #1
FrodeSolheim
FS-UAE Developer
 
FrodeSolheim's Avatar
 
Join Date: Dec 2011
Location: Førde, Norway
Age: 43
Posts: 4,043
Exclamation Want to try builds of the new FS-UAE 4 & Launcher 4?

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

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

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

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:
https://www.dropbox.com/sh/sw7aqcro0...Ic9Ui5Cka?dl=0

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?
Attached Thumbnails
Click image for larger version

Name:	Screenshot from 2021-04-10 20-51-42.png
Views:	1279
Size:	437.9 KB
ID:	71548   Click image for larger version

Name:	Screenshot from 2021-04-10 20-53-53.png
Views:	1057
Size:	248.1 KB
ID:	71549   Click image for larger version

Name:	Screenshot from 2021-04-10 21-10-56.png
Views:	1203
Size:	408.3 KB
ID:	71550  

Last edited by FrodeSolheim; 02 November 2021 at 22:09.
FrodeSolheim is offline  
 
Page generated in 0.14789 seconds with 12 queries