English Amiga Board

English Amiga Board (https://eab.abime.net/index.php)
-   support.FS-UAE (https://eab.abime.net/forumdisplay.php?f=122)
-   -   A method for further improving latency (input lag) in FS-UAE (https://eab.abime.net/showthread.php?t=88589)

Dr.Venom 12 September 2017 13:53

A method for further improving latency (input lag) in FS-UAE
 
1 Attachment(s)
Hi Frode,

With interest I read your page on latency (https://fs-uae.net/latency), great write up. Personally I think input latency for FS-UAE with the proper settings is really good already. Nonetheless I hope you will consider implementing a "Frame Delay" feature, explained in more detail below, by which input latency can be further reduced by almost up to a frame (on fast hardware at least).

In short "Frame Delay" adds a configurable fixed amount of delay before frame emulation is started, thereby moving frame emulation closer to host PC vsync. This enlarges the window in which host PC input can be read.

I've mocked up a picture based on your "CTRL+F10" overlay stats, to illustrate the concept further, see below (also attached since most online picture storage gets lost over time).

This feature has been implemented in some other emulators too. GroovyMAME users have gone to length to measure it with leds wired to joystick and high-speed camera footage that the input latency improvement is real. It also found its way to Retroarch, which has a "Frame Delay" value setting under the video tab, where user Brunnis based on similar tests came to the same conclusion for the Retroarch implementation. WinUAE has this implemented as an "unsupported" commandline option, called "extraframewait". Unfortunately there it doesn't work together with the Wasapi low latency audio mode. Toni once mentioned it needs a redesign to work properly.

As further info, GroovyMAME has this implemented as a frame_delay variable that goes from "0" (off) to "10", which are units of 1/10th of total frametime. The other emulators have it implemented as a variable that can set the delay in milliseconds.

Possibly the 1/10th unit size is the most robust as it will cater for both pal and ntsc scenario's. (In Retroarch the value is limited to 15ms, which makes it suboptimal for PAL emulation.)

Hopefully you will consider implementing the "Frame Delay" feature for FS-UAE.

If you have any questions or thoughts please share! Cheers :)


http://oi66.tinypic.com/t6b7zd.jpg

Retro-Nerd 12 September 2017 14:05

You should really update to Freesync/G-Sync hardware. It works fine with most of the emulators i've tested so far. No more Vsync issues, no judder no tearing and the latency is on an enjoyable level. :)

Dr.Venom 12 September 2017 15:15

Quote:

Originally Posted by Retro-Nerd (Post 1184203)
You should really update to Freesync/G-Sync hardware. It works fine with most of the emulators i've tested so far. No more Vsync issues, no judder no tearing and the latency is on an enjoyable level. :)

It's a nice technology, especially with the various shaders becoming better and better.

But to be honest for longer playing sessions I still love my CRT setup the most. It works perfect with the emulators I use. It has no v-sync issues, no judder, no tearing, latency on an enjoyable level, no ghosting, no blur or blockiness, real scanlines, real bloom, real dot mask, real phospor decay, real curvature, high contrast and perfect viewing angle... In other words it's a nice system to keep besides a high-end FLAT panel :)

mark_k 12 September 2017 16:07

WinUAE already has an extraframewait config file option. It looks like there are remnants of that in the FS-UAE code, e.g.:

// FIXME: What is this?
int extraframewait = 0;

Dr.Venom 12 September 2017 16:49

Quote:

Originally Posted by mark_k (Post 1184238)
WinUAE already has an extraframewait config file option. It looks like there are remnants of that in the FS-UAE code, e.g.:

// FIXME: What is this?
int extraframewait = 0;

Ah, that's interesting, seems Frode has taken a look at it already at some point then. The "What is this?" should be explained with this thread then :).

Hopefully it can be extended to a fully working Frame Delay feature for FS-UAE.


All times are GMT +2. The time now is 19:30.

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

Page generated in 0.13296 seconds with 11 queries