English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.FS-UAE (https://eab.abime.net/forumdisplay.php?f=122)
-   -   FS-UAE - Progress report (https://eab.abime.net/showthread.php?t=100873)

FrodeSolheim 12 February 2020 18:35

FS-UAE - Progress report
 
This post will explain what I’m currently doing, and also gives you an idea of why there hasn’t been any development release in a good while :)

UPDATED: Please see this thread for more up to date information: http://eab.abime.net/showthread.php?t=106562

I’m working on FS-UAE 4.0, which replaces many of the non-emulation related components. Don’t worry, FS-UAE should still feel familiar, only better. I also want to mention that many of the improvements in this post are already done.

Design goals include:
  • 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.
  • On-screen keyboard suitable for use with controller with realistic system-specific keyboards.
  • 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.
  • Support controlling the GUI with the mouse.
  • Deliver on the initial idea of making FSEMU suitable for integration with different emulators.
Probably:
  • 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.
And of course, update the UAE core to a newer version. Ideally on par with the latest WinUAE stable release when FS-UAE 4.0 is released.

No features are currently planned removed, but the initial development versions will come without some existing functionality. The changes due to the new architecture means that some code must be rewritten before everything will work again, and I want to release development versions before everything is in place.

The stuff that will probably not work in the initial development versions include:
  • Themes will not work initially.
  • Some video scaling options may have no effect initially.
  • Some video and audio options may have no effect initially (for example GPU texture format or audio frequency).
  • Net play support will be initially disabled.
  • Support for multiple mice will probably be initially disabled.
  • Joystick support may be limited to gamepad-like devices initially.
I would also like to mention that I’m considering allowing changes which are not backwards compatible. Since this release changes quite a lot already, it could be a good idea to reconsider a few design choices done years ago. So a few configuration options might change without being able to automatically convert old options to new options, and directory layout could change slightly (including how saves are stored). Don’t panic, and don’t read too much into this. We can discuss these things in the forum when we get more specific, and we should at minimum write a migration guide if there are incompatible changes.

(I'm also adapting the Vice emulator in parallel, with similar feature set, so there'll likely be a Vice-FS dev version soon as well :xmas).

manossg 12 February 2020 18:48

Thanks for your hard work, I am a fan of FS-UAE!

arcanist 12 February 2020 18:59

Very nice!

I'd love to see improvements in audio sync. OpenAL has huge (100s of ms) latency with PulseAudio on my integrated sound card. When I dug into it the buffer size was being derived from some arbitrary figure reported by the ALSA driver, that nothing except OpenAL seems to use. Apps that uses ALSA or Pulse directly work much better.

With Pipewire aiming to give JACK-like latency things might get even better.

FS-UAE is my favorite emulator for development. Its quick snapshot save/restore feature is invaluable. I still use WinUAE on a Windows PC because its beamraced vsync is unbeatable for gaming (and seems not available in OpenGL or Vulkan). I'd love to see better support for that on Windows at least.

Thanks for your hard work on this.

Pyromania 12 February 2020 19:08

Super nice, I'm a big fan of FS-UAE.

malko 12 February 2020 20:55

Thank you Frode for your hard work on this wonderful emulator :great

Pyromania 12 February 2020 21:25

FS-UAE is my favorite app on macOS!

Foul 13 February 2020 20:00

Excellent news !!! thx :)

jbl007 14 February 2020 21:05

Quote:

Originally Posted by arcanist (Post 1378370)
OpenAL has huge (100s of ms) latency with PulseAudio

You can configure OpenAL to use ALSA output directly. But you need to pay attention, that you don't get an ALSA -> Pulse -> ALSA routing. Check, remove/backup /etc/asound.conf
With tweaked settings in /etc/openal/alsoft.conf or $HOME/.alsoftrc you can configure FS-UAEs
audio_buffer_target_size
from default 40 to a very low value. Depending on the hardware of cource. On my old Audigy2 I could set it to <10. With my ALC1220 onboard sound I need at least 13.
https://fs-uae.net/audio

Quote:

Apps that uses ALSA or Pulse directly work much better.
Yeah, of course. But without OpenAL or something similar Frode needs to write code for Windows, Mac, Linux, BSD, whatever... - Even more work...

I think FS-UAEs latency is good already. Without using shaders, tweaked sound setting and disabled vsync (I use freesync) gameplay is really snappy. But perhaps I'm just not very sensitive to that, and I am completely wrong. Last time I played on a real Amiga was decades ago, so I can't really compare. :sad

I'm excited to give the new FS-UAE verison a try. Thank you for your work, Frode. :great

Retro-Nerd 14 February 2020 21:27

Quote:

I think FS-UAEs latency is good already. Without using shaders, tweaked sound setting and disabled vsync (I use freesync) gameplay is really snappy.

It's pretty good with Freesync. But believe me, Beam Racing or Run Ahead gives you much better latency. :)

FrodeSolheim 14 February 2020 21:47

In case my original post wasn't clear enough on that, OpenAL is effectively already removed from the next version FS-UAE. I've written new code which (currently) uses SDL2 for audio (which again uses miscellaneous backends) or directly uses ALSA, and I'm not planning to add support for OpenAL since the SDL backend seems to work very well cross-platform.

Btw, one "problem" with current FS-UAE is that if you have a powerful computer which emulates frames really quickly, you cannot have sub-20-ms audio latency, because FS-UAE emulates a frame in one go (If FS-UAE emulates a frame infinitely fast, then FS-UAE generates 20 ms audio instantly, which means you get a least 20 ms buffering). The next version uses high-resolution timers to emulate more in real-time (sleeping between scanlines when necessary, somewhat similar to how WinUAE runs in beam-racing mode I suppose) which means that audio latency can go really low. I've successfully run some tests with around 2-3 ms buffering with ALSA/FS-UAE combined.

On the other hand, to minimize input lag, you want to postpone emulation as close to rendering time as possible, which means you need bigger audio buffers, so there is a trade-off here. And also maybe no point in having less audio latency than video lag.

The default setup is still to be determined I guess, but the point is that FS-UAE should be able to perform better (and also with lower audio latency by default) :)

quantum8 10 March 2020 13:12

Sounds like a huge leap forward!

Exciting times ahead. Thanks for all the hard work for my go-to emulator :)

Weaselrama 24 March 2020 18:56

I haven't posted in a long while. I had to take a break with other workload but this is great news. Thanks very much for all your hard work. I recently upgraded to a new 13" MBP, 2019 model. I still have audio latency issues if I try to switch to full screen 1920 x 1080 but not as bad as on the 2017 model (which had battery issues). Looking forward to a new release!

FrodeSolheim 16 April 2020 17:37

1 Attachment(s)
A small progress from me. Progress is quite good (the git repository isn't up to date with the latest changes yet). The input and menu subsystems of FS-UAE are coming along nicely, and are soon usable.

I'm also, in parallel, working on giving the Launcher an overhaul, and that's been the main focus recently. I'm attaching a screenshot of how the Launcher is currently looking, I believe that is quite representative of how FS-UAE Launcher 4.0 will look :)

Weaselrama 16 April 2020 19:56

Quote:

Originally Posted by FrodeSolheim (Post 1392490)
I'm also, in parallel, working on giving the Launcher an overhaul, and that's been the main focus recently. I'm attaching a screenshot of how the Launcher is currently looking, I believe that is quite representative of how FS-UAE Launcher 4.0 will look :)

That looks great! I'm sure we're all glad to read that progress continues along on FS-UAE. Our thanks for all your hard work as usual.

fehmi 16 April 2020 20:11

Quote:

Originally Posted by FrodeSolheim (Post 1392490)
I'm attaching a screenshot of how the Launcher is currently looking, I believe that is quite representative of how FS-UAE Launcher 4.0 will look :)

Looks super slick! Just wondered if you have considered adding right click support on the gamelist to edit /remove entries.

FrodeSolheim 16 April 2020 20:12

Quote:

Originally Posted by fehmi (Post 1392554)
Looks super slick! Just wondered if you have considered adding right click support on the gamelist to edit /remove entries.

Yes, I will finally fix this :)

CCRider 16 April 2020 22:27

Looking very good!

ReaperX 22 June 2020 21:53

You're doing amazing work, thank you.

Quote:

Custom names and automatic screenshots for save states.
Will that also include having these screenshots displayed in the Launcher?

A second question: has anything changed since this discussion

http://eab.abime.net/showthread.php?t=67009


on restoring save states on load? It would be awesome to be able to launch a favorite game and be instantly at the title screen, skipping intros and such, just by command line alias for fs-uae <game.uss>, or double-clicking on the .uss file.

ReaperX 27 June 2020 00:54

two more requests about save states:

- extend the number of supported save states beyond 9

- display the automatically taken screenshots for save states in the load state window.

Korodny 28 June 2020 05:32

Quote:

Originally Posted by ReaperX (Post 1409499)
You're doing amazing work, thank you.
A second question: has anything changed since this discussion

http://eab.abime.net/showthread.php?t=67009


on restoring save states on load? It would be awesome to be able to launch a favorite game and be instantly at the title screen, skipping intros and such, just by command line alias for fs-uae <game.uss>, or double-clicking on the .uss file.

You can load a save states by specifing "--load_state=N" as an argument, where "N" is the number of the save slot you want to load. I do that for all the games I'm currently playing - nice and very quick way to start a game from your regular (non-Amiga) desktop.

Not that save states are tied to the actual configuration file (each configuration has its own separate nine save states). So if nine save states aren't sufficient for you, you need to create new configurations and tell FS-UAE which configuration to load, and which save slot from that configuration to restore, like this:

Code:

fs-uae /home/korodny/.config/fs-uae/Configurations/ColonialConquest.fs-uae --load_state=9


All times are GMT +2. The time now is 15:02.

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

Page generated in 0.05494 seconds with 11 queries