RunAhead vs Preemptive frames

Now that preemptive frames has been out for a while, how does it compare to runahead?

1 Like

Depends of the game.
Usually run ahead can be a bit faster under heavy button usage, preemptive allows faster fast forward.
Run ahead 2nd instance is also more compatible.

2 Likes

What I can understand, since Preemptive came out, is that they are very similar technologies but give very different results, in theory P.F is faster than R-A, but it depends a lot on the type of game, the platform where it runs and the level of integration that the core dedicates to it.

P.F had a time being slower than R-A, but then it changed.

R-A is recommended with one instance, because the second one looks like an ornament. But there are 3D PSX games that glitch in 2D graphics and only look good with double instance of AR. O_o

FBNeo on a fast machine works better PF, on a slow machine the best RA. But Genesis is the opposite. O_o

And so infinity of weird things, until we have well defined and implemented one or both features.

Second instance is simply a workaround for cores that are a bit lacking in terms of deterministic savestate support, so yeah you should try it anytime you run into glitches with single-instance.

3 Likes

This is good to know, I update my database.

Just tried to play Espgaluda 2 on Fbaneo, and setting run-ahead (or preempive frames) results in a huge fps drop. Is my cpu not enough (i5 6400) or is just not viable? did anybody had better luck with this game?

Initially I set 2 frames but also just 1 frame of RA/PF gives the same performance drop.

I run at 100~120fps with run ahead 2 frames, stressing up the buttons a lot on a 5600X.

1 Like

I’d think an [email protected] could handle 1 frame of runahead on cv1k with FBNeo, maybe there is something else worsening performance (cpu clock ?).

I normally keep it @2.5-Ghz, It can handle all my emulations needs (up to beetle psx with 1 frame of RA). But in this case fps goes down to a real crawl to around 13-17 fps.

can your system keep 60?

During gameplay, without run-ahead, I get >220fps (with fast forward)

What other settings might be the cause?

Settings -> Video -> Sync

Quick Menu -> Latency

Edit: tried few more cv1000 games (saidaioujou, daifukkatsu and akai katana): same behavior, same performance drop.

oh wow, I guess my system is not up to the task I guess :sob:

Hmm, I’m also curious and have similar problems. CPU is Ryzen 7 7700X on Linux without throttling. Without Reduce Latency I get around and over 300 fps in Espgaluda II when fast forward (no audio on fast forward). When I enable Run-Ahead 1 frame (Use Second Instance), the fps drops to under 50 and gets worse and inconsistent whenever gamepad input is involved. Using Preemptive Frames 1 frame instead is consistent in fps, but even less fps around 29 or so.

In short I experience similar hit as you, just on a higher level, but still unplayable with Latency Reduction. So I am not sure if its our hardware that can’t handle it, if Tatsuya79 gets over 100 fps with 2 frames Latency Reduction on a slower CPU 5600X. There are probably other settings impacting this too.

1 Like

Cv1k’s savestates are huge (around 140MB iirc), making those games initially unplayable with runahead. Back in 2022, i implemented some new stuff in the libretro api to let the core know when runahead is being used, which allowed me to optimize the cv1k savestates used for runahead usage to ~16MB, which is still huge but that’s the most i could cut.

Afaik, as long as you have up-to-date retroarch (1.15+ ?) and core, and a sufficiently powerful cpu, it should be playable. Also, you should never use second instance with FBNeo, iirc it disables all runahead performance optimizations in FBNeo, because second instance is not compatible with most of them. Performance is as solid as tatsuya’s on my side but i have an i7-12700.

1 Like

I have a 14 year old i5 4670. I just tested Espgaluda 2 and it runs full speed in fbneo (stressing buttons and all) with 2 runahead frames (GPU sync and VRR are enabled at the same time, on a 240hz screen). I also tested it with 3 frames and it runs full speed most of the time but i did see instances of slowing down a bit when a lot was going on, i could hear the sound pop/crack slightly.

Other games can handle many more runahead frames.

FF without run ahead I get 420fps average, but I see it can drop around 300fps on that same 5600X.

@Hari-82 you can try to turn hard GPU sync to off
(but if you really lose a frame of buffering in the process to use run ahead instead… well)

Oh well, that’s on me!

I checked my fbaneo and my core was locked from my last update (I think it was August 2022: fbneo_libretro.dll.20220820T141139.65b311a9.0.lcbk ). I unlocked the core and update to latest (also update the rom that was not working with the new core) and got a huge boost in performance.

I did some testing on the first level of Espgaluda 2:

Run-Ahead 1 : Mostly stable, some drops (55-58) when big explosions or busy pattern happens and a big drop in the last pattern of level 1 boss.

Run-Ahead 2 : Not very stable, during stage often drops to 57-58 but “big” drops in the 40’ when big explosions or busy pattern happens during the stage.

Preemptive Frames 1 : Stable all the way, no perceivable drops: nice and smooth even when busy.

Preemptive Frames 2 : Mostly stable, some drops (55-58) when big explosions or busy pattern happens

After setting my CPU to Performance mode and using a lighter shader things gets better:

Run-Ahead 1: Stable and solid.

Run-Ahead 2: small minor drops during big explosions and more drops during the last pattern of stage 1 boss.

1 Like

lol I have locked the version too, we are both same :smiley: also a year ago… rofl. Will update soon too.

1 Like

The name is fbneo.

Except if you are strongly against improvements, i don’t recommend ever locking this core.

3 Likes

Surely not against improvements but I often do core updates and I keep fbneo locked because I usually do a romset update about every 6 month and to keep everything working I keep the core and romset on the same “page”…

I guess I will keep it unlocked from now on and if some games stop working I will just update the roms as needed…

Thanks for your work, very much appreciated!

3 Likes

Yeah, that’s what i’d recommend, A romset change on a game you are actually playing is usually quite rare and not a good enough reason to block updates imho.

1 Like

I don’t use runahead, but, during some testing I did, 2nd instance showed poor results with the Genesis Plus GX core, ranging from minor graphical glitches to lock-ups, depending on the game. Other cores were fine. Weird.