• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
  • We have made minor adjustments to how the search bar works on ResetEra. You can read about the changes here.

Wowfunhappy

Member
Oct 27, 2017
3,102
I am legit blown away by this. I never realized how much lag these games had on emulators but I just booted up Mario All-Stars Mario 3 and it feels like a completely different game now, it's so damn fast. Holy shit this is a miracle.
Doing this on a CRT, it absolutely feels like the game is reading my mind. The sensation of my fingers pressing the button actually, physically seems to come just after the visuals. It's so wild.

I just want to say, this demonstrates how damn important low input latency is in general. A lot of people say they don't care in non-competitive games, because medicore input lag generally feels fine—but when the input lag is lower, the game always just feels better.
 

khaz

Member
Oct 25, 2017
274
"lower latency than original hardware" is only valid for consoles using polling, like the NES and SNES, I believe. Consoles using Atari-compatible controllers (SEGA, most home computers) use interrupts which shouldn't have any lag of their own. Unless I'm missing something?

Regardless, this is super cool for people with modern displays. Does it produce some unintended visuals, like sprites stuttering in some extreme situations?

What happens if you configure it to rewind to earlier than your display latency? Could it be used to correct the user mistake, like a miscalculated jump in a platformer, or understeering / not braking enough in a racing game?
 

shockdude

Member
Oct 26, 2017
1,311
Got a source for that?
No definitive source, just math.
Both CRTs and LCDs draw frames from top to bottom. https://youtu.be/3BJU2drrtCM#t=2m11s.
For a 60Hz CRT. the top of the screen should have 0ms input lag, and the bottom should have 16.7ms input lag (not counting overscan which would reduce the range of visible input lag).
The input lag that people measure these days is the lag from the center of the screen. The center of a CRT should have 8.3ms lag - halfway between 0ms and 16.7ms.
I'm thinking of making a thread about this since I don't think most people realize this property of CRTs.
 

Dark1x

Digital Foundry
Verified
Oct 26, 2017
3,530
You can already do that (but you know it :p) with some very specific (and expensive) video cards

Or do it and run CRT-Royal in 4k to amazing results

I just wish the libreto mame core would allow for hlsl so that my vertical ganes look fine (crt-royal is ugly in vertical games while properly configured hlsl looks fantastic)
Oh, I know, I've done it but it doesn't work very well with modern Windows. A pain to use but cool when it works.
 

Deleted member 5956

User-requested account closure
Banned
Oct 25, 2017
353
"lower latency than original hardware" is only valid for consoles using polling, like the NES and SNES, I believe. Consoles using Atari-compatible controllers (SEGA, most home computers) use interrupts which shouldn't have any lag of their own. Unless I'm missing something?

If I'm not wrong it's removing the frames that a console would normally buffer so is not related to any controller polling.

Does it produce some unintended visuals, like sprites stuttering in some extreme situations?

Yes, I noticed some odd sprite behaviour if I set it to run too many frames ahead. 2 seemed to be the sweet spot with snes9x.

No definitive source, just math.

Makes perfect sense, sounds like the "sawtooth" that Kevtris used to describe how the input lag builds with the Super NT in buffered mode.
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
"lower latency than original hardware" is only valid for consoles using polling, like the NES and SNES, I believe. Consoles using Atari-compatible controllers (SEGA, most home computers) use interrupts which shouldn't have any lag of their own. Unless I'm missing something?
Individual games on those systems can still have some built-in latency.
This is not a per-system thing, it's a per-game thing. Consequently, there isn't a correct setting per system, but only per game.

Does it produce some unintended visuals, like sprites stuttering in some extreme situations?
I have some longer answers earlier in the thread, but the short one is no. Not if used as intended (i.e. only removing as many frames of lag as a given game actually had).

I feel this is a solution to a problem that doesn't exist
The many discussions about emulator latency -- and even display latency for retro games -- and the ways to minimize it we've had over the years indicate that it is a very real problem.
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
Is there an easy to way to find out how many frames of lag a game innately had?
I can't think of any automated way.
But usually it will be either 1 or 2 for most games on of these older platforms, maybe 3. So it's not a big deal to just try each, and use the largest value that doesn't cause any artifacts.
 

Deleted member 2102

User requested account closure
Banned
Oct 25, 2017
692
I can't think of any automated way.
But usually it will be either 1 or 2 for most games on of these older platforms, maybe 3. So it's not a big deal to just try each, and use the largest value that doesn't cause any artifacts.
Not too bad, then! Seems the negative effects of going too high are fairly apparent. I'll have to experiment when I get home.
 

Deleted member 5956

User-requested account closure
Banned
Oct 25, 2017
353
This is not a per-system thing, it's a per-game thing. Consequently, there isn't a correct setting per system, but only per game.

That's a shame, I thought it was on a system level from what I had read on reddit. Will mean it's impossible to save a setting a knowing it will work for every title, I hate having to make adjustments on a per game basis!
 
Oct 27, 2017
3,050
i've been using ala carte emulators but this is making me wonder if I should just set up retroarch. seems pretty future-proof?
 

brainchild

Independent Developer
Verified
Nov 25, 2017
9,482
Incredible news and a pretty 'forward thinking' idea....Get it? Forwar---ok, sorry. I couldn't help myself XD
 

Jazzem

Member
Feb 2, 2018
2,686
Forgive my naivete; are there any extra steps needed to enable the feature? I found this link:



Which says that it should be a standard feature on 1.7.2, but I'm only getting the top three options there for frame throttle
 
Last edited:

Custódio

Member
Oct 25, 2017
1,902
Brazil, Unaí/MG
I'm really hoping it can for some lighter emulators, at least. SNES9X's core had a fair amount of headroom on the Win 1. Wouldn't expect much beyond 16-bit emulation, nor for it to work with some hyper-accurate emulators like Higan.

Yea, I was mostly thinking of SNEX9X. If it has a fair amount of headroom on the Win 1 so it's probably going to be possible on the Win 2. Sounds good.


Forgive my naivete; are there any extra steps needed to enable the feature? I found this link:


Which says that it should be a standard feature on 1.7.2, but I'm only getting the top three options there for frame throttle

In the nightly build at least, it is on the Latency menu, not the Frame Throttle.
 

TheMadTitan

Member
Oct 27, 2017
27,262
I really want to like and use Retroarch, but I can never seem to get things set up properly. There's almost too many options and it's daunting to get it all set up, and the cores I used were all terribly laggy, leading me to assume that I had things set up wrong. I freaking love the idea of it though.

Can anyone point to any decent tutorials out there?
I wouldn't even use Retroarch on its own, to be honest. UI is convoluted and annoying as hell to set up. If you're going to put in the effort to configure things beyond controller inputs and cheats, put that effort into setting it up via a frontend like Launchbox. Much, much easier to get games set up to run via specific cores, save states, and whatnot. And with this way, you'd avoid that bullshit of "your rom wasn't ripped in this specific fashion that we like, so your game isn't going to run."
 

Skyfireblaze

Member
Oct 25, 2017
11,257
I wouldn't even use Retroarch on its own, to be honest. UI is convoluted and annoying as hell to set up. If you're going to put in the effort to configure things beyond controller inputs and cheats, put that effort into setting it up via a frontend like Launchbox. Much, much easier to get games set up to run via specific cores, save states, and whatnot. And with this way, you'd avoid that bullshit of "your rom wasn't ripped in this specific fashion that we like, so your game isn't going to run."

Is Launchbox another frontend for Libretro? What about EmulationStation?
 

TheMadTitan

Member
Oct 27, 2017
27,262
Is Launchbox another frontend for Libretro? What about EmulationStation?
Launchbox is a front end for whatever you want it to be, be it Steam games, SNES, or whatever. What'd you end up doing is pre-configuring your specific ROM set to run on a set emulator (Retroarch in this case), and then you set up to choose which core Retroarch uses for each game type.

Then on an individual game basis, should one game run better on another core than all of the others -- or it just doesn't work at all via traditional scrape loading in Retroarch -- you can use the command line to have it run on that core anyway, saving you from having to go through the ridiculous trial and error process of choosing a game, choosing a core, discovering that the game doesn't work with that core, scrolling through your list of games to find that specific game and remove it from the list, going back to your game directory to find that game so you can add it back to your list, trying that specific game with another core, and then discovering that the game won'r work with that core either.

You'll also avoid the "load core" and then the "load game" steps which would inevitably get the aforementioned game to work with the prior emulator cores you tested that take an eternity on their own since Retroarch bastardized the XMB layout.

You just plug in some fields, click some stuff with your mouse, and then launch your game from the Window or, if you (unfortunately) pony up some cash or win a contest, in Launchbox's big picture, "Big Box" mode.

But this is just Launchbox specifically since it's the one i have experience with; other front ends also ease the frustration in setting up Retroarch cores and tying them to roms. Haven't tried EmulationStation myself, but I hear it's just as annoying to set up, if not moreso due to how controller configuration works.
 

Jazzem

Member
Feb 2, 2018
2,686
Yea, I was mostly thinking of SNEX9X. If it has a fair amount of headroom on the Win 1 so it's probably going to be possible on the Win 2. Sounds good.




In the nightly build at least, it is on the Latency menu, not the Frame Throttle.

Thank you!!

Wow yeah, this is the real deal, the platformers I tried feel a great deal more responsive. It worked a treat on SNES9x and BSNES performance, BSNES accuracy brought my i5 6600 to its knees though :p
 

Awakened

Member
Oct 27, 2017
506
And with this way, you'd avoid that bullshit of "your rom wasn't ripped in this specific fashion that we like, so your game isn't going to run."
You mean it won't be scanned and automatically added to one of the playlist tabs in RA's interface because it doesn't match the database. You can always run stuff that doesn't match the database with Load Content from the main menu tab.
 

impact

Banned
Oct 26, 2017
5,380
Tampa
You can already do that (but you know it :p) with some very specific (and expensive) video cards

Or do it and run CRT-Royal in 4k to amazing results

I just wish the libreto mame core would allow for hlsl so that my vertical ganes look fine (crt-royal is ugly in vertical games while properly configured hlsl looks fantastic)
What do you mean by vertical games? I've only tried it on a handful of SNES games (too many new games to play the oldies!) but CRT royale looks so good on my X800D.
 

Deleted member 5956

User-requested account closure
Banned
Oct 25, 2017
353
discovering that the game doesn't work with that core, scrolling through your list of games to find that specific game and remove it from the list, going back to your game directory to find that game so you can add it back to your list, trying that specific game with another core, and then discovering that the game won'r work with that core either.

A game being compatible with a core is down to the original emulator, not Retroarch. It does nothing to change how a core sees the rom or disc image compared to the standalone.

Retroarch checks against the no-intro database when creating playlists so to get around that just use the Retroarch playlist buddy to create a list that will accept any game regardless of where you got it from, its what I use and it works flawlessly.

https://forums.libretro.com/t/retroarch-playlist-buddy-playlist-and-thumbnail-generation-app/8417

You'll also avoid the "load core" and then the "load game" steps which would inevitably get the aforementioned game to work with the prior emulator cores you tested that take an eternity on their own since Retroarch bastardized the XMB layout.

Create a playlist and associate it with an emulator, that gets rid of all those extra steps. You just select a game and it loads.
 

TheMadTitan

Member
Oct 27, 2017
27,262
You mean it won't be scanned and automatically added to one of the playlist tabs in RA's interface because it doesn't match the database. You can always run stuff that doesn't match the database with Load Content from the main menu tab.
I know, I mention that later on in the post. Still a nuisance because Retroarch's UI isn't intuitive and is even worse if you have roms for more than one console.

A game being compatible with a core is down to the original emulator, not Retroarch. It does nothing to change how a emulator sees the rom or disc image compared to the standalone.

Retroarch checks against the no-intro database when creating playlists so to get around that just use the Retroarch playlist buddy to create a list that will accept any game regardless of where you got it from, its what I use and it works flawlessly.

https://forums.libretro.com/t/retroarch-playlist-buddy-playlist-and-thumbnail-generation-app/8417

Create a playlist and associate it with an emulator, that gets rid of all those extra steps. You just select a game and it loads.
Which is a complete hassle. You have to navigate 30 years to get to your rom folder for it to scan everything, then you have to try games with specific cores, only for Retroarch to reject that pair, then you have to remove the game from the playlist and try it again with a different core. A person who's just starting out isn't going to know that going to Load Content/Core or creating your own individual playlists is going to get around this issue when they first encounter it, and then getting around this situation is annoying because the UI is annoying. Even without this propping up, scanning and loading games and having them show up in the UI is annoying because navigation itself makes no sense.

Retroarch is still much, much easier to use when using another program on top of it.
 

Deleted member 5956

User-requested account closure
Banned
Oct 25, 2017
353
You have to navigate 30 years to get to your rom folder for it to scan everything

Or spend ten seconds setting up a rom directory link which everything look towards.

then you have to try games with specific cores

You do? I never had this issue and have no idea what you are doing to have content be rejected by a core or be in such an incorrect format.

The only time I ever had games not work is with Mednafen when the rips were no good, but again this was not a problem with Retroarch as they didn't work with the stand alone either.

I agree that it using the No-intro set as a standard for playlists is annoying but from me realising this was an issue to finding and implementing a solution via google took all of 5 minutes.
 

jimboton

Member
Oct 27, 2017
1,421
I wonder if the CPU on the GPD Win 2 is strong enough to handle this.

I'm really hoping it can for some lighter emulators, at least. SNES9X's core had a fair amount of headroom on the Win 1. Wouldn't expect much beyond 16-bit emulation, nor for it to work with some hyper-accurate emulators like Higan.

SNES9X works perfectly for me on the Win 1 with 2 frames look ahead and 1 core. Well, The Addams Family does at least. Need to test more stuff.
 

TheMadTitan

Member
Oct 27, 2017
27,262
There's a new Windowsy point and click UI being built in QT you might like when it's finished.
I don't want a point and click UI (not entirely), I'm already routing all of my PC gaming through LaunchBox/Big Box so on my next build, I can shove it under a TV and have it be accessible by controller or keyboard for anyone who comes across it and wants to sit down and play some shit.

What I need from Retroarch at this point is a UI that's laid out in a way that makes sense so that once I'm actually in a game, I can thumb through what I need and hop back into a game without having to hop between columns that are 47 spaces apart from each other.
 

1-D_FE

Member
Oct 27, 2017
8,274
Wow yeah, this is the real deal, the platformers I tried feel a great deal more responsive. It worked a treat on SNES9x and BSNES performance, BSNES accuracy brought my i5 6600 to its knees though :p

I haven't tried it yet. But that's pretty cool that BSNES Performance works. It's my understanding there's no practical difference between the performance and accuracy anyways. Are you running any shaders with that too?
 

Wowfunhappy

Member
Oct 27, 2017
3,102
I haven't tried it yet. But that's pretty cool that BSNES Performance works. It's my understanding there's no practical difference between the performance and accuracy anyways. Are you running any shaders with that too?
Reminder that the "BSNES" core is based on a very old version of Byuu's emulator.

Use either higan_sfc (accuracy) or higan_sfc_balanced (balanced). The performance profile doesn't exist anymore; if you need it, you're probably better off just going with snes9x.

Curious to hear how the balanced version runs. There's not a ton of reason to use the accuracy profile IMO. The only difference is that balanced operates per-scanline instead of per-pixel, which causes a shadow to not appear in exactly one game.
 
Last edited:

1-D_FE

Member
Oct 27, 2017
8,274
Reminder that the "BSNES" core is based on a very old version of Byuu's emulator.

Use either higan_sfc (accuracy) or higan_sfc_balanced (balanced). The performance profile doesn't exist anymore; if you need it, you're probably better off just going with snes9x.

Curious to here how the balanced version runs. There's not a ton of reason to use the accuracy profile IMO. The only difference is that balanced operates per-scanline instead of per-pixel, which causes a shadow to not appear in exactly one game.

Wait. How exactly do you download Higan_Balanced? I always found it strange that for download options, it only gives me Higan_accuracy as an option (if I want the newer Higan core). Those are always the two I choose from (Higan_Accuracy or BSNES balanced), but would love if Higan_Balanced was a download option. It seems like the no-brainer if given the option.
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
I wouldn't even use Retroarch on its own, to be honest. UI is convoluted and annoying as hell to set up.
Seriously? It's basically 2 controller inputs to re-launch a game you have played previously in Retroarch.

I know, I mention that later on in the post. Still a nuisance because Retroarch's UI isn't intuitive and is even worse if you have roms for more than one console.

Which is a complete hassle. You have to navigate 30 years to get to your rom folder for it to scan everything, then you have to try games with specific cores, only for Retroarch to reject that pair, then you have to remove the game from the playlist and try it again with a different core. A person who's just starting out isn't going to know that going to Load Content/Core or creating your own individual playlists is going to get around this issue when they first encounter it, and then getting around this situation is annoying because the UI is annoying. Even without this propping up, scanning and loading games and having them show up in the UI is annoying because navigation itself makes no sense.

Retroarch is still much, much easier to use when using another program on top of it.
This is a ludicrous exaggeration. It takes a few seconds for me to launch a never-before-launched rom in retroarch. Literally.
 
Oct 31, 2017
8,466
Just to be clear:

1- This isn't exactly new. This feature was discussed for months.
2- Input lag lower than original hardware is not unique to Retroarch. This can happen with several titles on Dolphin and CEMU as well, for instance.
 

Wowfunhappy

Member
Oct 27, 2017
3,102
Wait. How exactly do you download Higan_Balanced? I always found it strange that for download options, it only gives me Higan_accuracy as an option (if I want the newer Higan core). Those are always the two I choose from (Higan_Accuracy or BSNES balanced), but would love if Higan_Balanced was a download option. It seems like the no-brainer if given the option.

Is it not in the built in downloader? That's super weird, someone should fix that!

I download cores from their buildbot directly, due to my aforementioned habit of hiding nearly everything from the GUI. If you're on Windows, the aforementioned core ("higan_sfc_balanced_libretro") is listed athttps://buildbot.libretro.com/nightly/windows/x86_64/latest/. If you're on another platform, navigate through the folders on the left.
 

4859

Banned
Oct 27, 2017
7,046
In the weak and the wounded
This sounds super cool but I don' get it.

Those old consoles had really short pipelines. Today' processors have really long pipelines. So you can cram tons of shit in there, and hide the latency cause you are doing so much at once, but if you got a bad apple in the stack, or missed prediction or some shit, you got to wait until it chugs through the whole pipeline to fix it right? And then the latency 'disguise' is exposed. So if an input comes while it's smoking that pipe, how does it pull it off?

Is it just because the clocks on today's processors are just so much higher than those old consoles?
 

1-D_FE

Member
Oct 27, 2017
8,274
Are they not in the built in downloader? That's super weird, someone should fix that!

I download cores from their buildbot directly, due to my aforementioned habit of hiding nearly everything from the GUI. If you're on Windows, the aforementioned core is listed at https://buildbot.libretro.com/nightly/windows/x86_64/latest/. If you're on another platform, navigate through the folders on the left.

Thanks for the link!

I've never been able to see it. That's with a bunch of different builds. Only ever see download options for all the BSNES versions or Higan accuracy. That's the one I've been wanting:)
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
1- This isn't exactly new. This feature was discussed for months.
Sure, it's not hot off the presses -- but clearly it was new to me and most people here! That said, looking at the actual repo, it has only been merged for 20 days, so in terms of being actually usable for people in an easy-to-obtain version of the emulator it's still pretty new.

2- Input lag lower than original hardware is not unique to Retroarch. This can happen with several titles on Dolphin and CEMU as well, for instance.
Well, with modern systems, that can be a result of different input processing, less buffering or simply running faster.
That's a nice result, but IMHO not nearly as exciting or interesting as the approach implemented here.
 

Lork

Member
Oct 25, 2017
843
One semi related thing that I've been wondering about for a while: do Retroarch's cg shaders add any input lag?
 

Cow Mengde

Member
Oct 26, 2017
12,731
I would try it if it wasn't such a huge pain in the ass to use. I wonder if it works for the android version?
 

Arulan

Member
Oct 25, 2017
1,571
I've been using standalone emulators for the longest time. Should I just switch to RetroArch at this point?
 
OP
OP
Durante

Durante

Dark Souls Man
Member
Oct 24, 2017
5,074
I've been using standalone emulators for the longest time. Should I just switch to RetroArch at this point?
I'd say so -- for everything 32 bit and older.

I used to go with standalone emulators even though I had tried Retroarch a few times, because the latter was still missing some features for specific systems and was cumbersome to configure.

But modern Retroarch today is
  • extremely feature-rich, in ways that just can't be matched across the board by standalone emulators
  • easier and quicker to set-up than several stanadalone emus (ie. using multiple controllers for local multiplayer is just plug-and-play, 0 configuration required)
  • really quite slick in terms of in-game UI and configuration
  • and it allows you to share some configuration such as shader setups or system functionality hotkeys across several emulators/systems.
    Which is a good thing, since there is e.g. no reason not to use the same CRT shader you spent some time setting up to your preferences across all console platforms that benefit from something like that
 

Skyfireblaze

Member
Oct 25, 2017
11,257
Launchbox is a front end for whatever you want it to be, be it Steam games, SNES, or whatever. What'd you end up doing is pre-configuring your specific ROM set to run on a set emulator (Retroarch in this case), and then you set up to choose which core Retroarch uses for each game type.

Then on an individual game basis, should one game run better on another core than all of the others -- or it just doesn't work at all via traditional scrape loading in Retroarch -- you can use the command line to have it run on that core anyway, saving you from having to go through the ridiculous trial and error process of choosing a game, choosing a core, discovering that the game doesn't work with that core, scrolling through your list of games to find that specific game and remove it from the list, going back to your game directory to find that game so you can add it back to your list, trying that specific game with another core, and then discovering that the game won'r work with that core either.

You'll also avoid the "load core" and then the "load game" steps which would inevitably get the aforementioned game to work with the prior emulator cores you tested that take an eternity on their own since Retroarch bastardized the XMB layout.

You just plug in some fields, click some stuff with your mouse, and then launch your game from the Window or, if you (unfortunately) pony up some cash or win a contest, in Launchbox's big picture, "Big Box" mode.

But this is just Launchbox specifically since it's the one i have experience with; other front ends also ease the frustration in setting up Retroarch cores and tying them to roms. Haven't tried EmulationStation myself, but I hear it's just as annoying to set up, if not moreso due to how controller configuration works.

Hmm I see thanks for the detailed explanation, I'll look into both! I mean I don't mind Retroarch's UI and I like the XMB but as you said it's at some points pretty annoying, unintuitive and could be way better streamlined. Plus, while the XMB is highly themable there's only a handful of themes I've found online.
 

Wowfunhappy

Member
Oct 27, 2017
3,102
Is there a reason the different emulator instances can't be run on separate cores? I image that could help a lot on modern systems, since the emulators themselves are generally constrained to a single core.

*****

Excuse me if I'm missing something obvious, but are there no nightly builds available for Mac? I generally use stable but I wanted to play around with this feature...
 
Last edited: