Emulation catching up to real hardware responsiveness


#1

For the last couple of years, Brunnis at libretro has been looking into input lag in Retroarch and ways to minimize it. His findings have actually encouraged emulator authors to improve their cores for reduced lag under certain settings. In his recent findings, Brunnis claims input lag on his sub-1ms LCD monitor is a mere fraction of a frame slower than real hardware on a CRT with room for improvement. Already they’re virtually identical going by his tests. This is illuminating in light of the increased interest in FPGA consoles with zero input lag (and accuracy, convenience, use of real carts, among other benefits). I know not all emulators are built the same and comparable in accuracy to the original hardware, but going by DF Retro’s latest review, BSNES/Higan and the Super NT are basically tied when it comes to producing an experience matching an original SNES 2-chip. If you have a G-Sync-enabled display and the SNES core set to run at native refresh… then it’s possible the overall emulator experience can, in some cases, exceed the performance of dedicated FPGA hardware. This includes CRT shaders if they’re to your liking, save states for games lacking any save system, and the tack-sharp Retroarch 4K vs. the NT’s slight softness after its 1080p output is upscaled/filtered by a 4KTV.

Read his full findings at the link below (the overall discussion is a good read). I think this is motivation for me to get Retroarch cores fully set up once and for all. Obviously emulators aren’t perfect, far from it in the cases of systems like the N64, but it’s encouraging to see how greatly improved they are compared to only recently. I know personally that terrible performance and serious input lag with the then-best console emulators were my push into retro gaming on original hardware and CRTs. It’s nice to have a growing number of options.

His setup:

I’ve used my iPhone 8 to record videos of the monitor and LEDs/controllers at 240 FPS. I’ve then counted the frames from the LED lighting up or button appearing pressed down until the character on screen reacts (jumps). The results presented further down are based on 39 samples for each test case. Below are screenshots of each test case. The test scene is the starting of the very first level in Yoshi’s Island.

Dell E5450

Core i5-5300U (Broadwell)
16 GB DDR3-1600 CL11 (1T)
Windows 10 Version 1709 (OS version 16299.125)
Intel GPU driver 20.19.15.4531 (with default settings)
RetroArch nightly from November 12 2017
HP Z24i 1920x1200 monitor, connected to the Dell laptop via DVI. Native resolution was used in all tests.
Super Mario World 2: Yoshi’s Island (NTSC)
snes9x2010
RetroArch settings

Default, except:
video_fullscreen = “true”
video_windowed_fullscreen = “false”
video_hard_sync = “true”
video_frame_delay = “6”
video_smooth = “false”
Raphnet Technologies ADAP-1XWUSBMOTE_V2

Adapter configured to poll controller with 1 ms interval (fastest setting available)
And, just to be clear, vsync was enabled for all tests.

Finally, I’m including results from a real SNES as well. That setup consists of:

SNES (PAL) connected to CRT TV (Panasonic TX-28LD2E) via RF output
Original SNES controller rigged with an LED connected to the B button
Super Mario World 2: Yoshi’s Island (PAL)


#2

This is pretty interesting. I have a gsync monitor and I do love save states. The filters are amazing to suck depending on how you set it up. That software is still very user unfriendly. I never figured out how to default back to normal none shader after I used the damn thing. Honestly, there is a lot of good to be had here. In particular the shaders they use for Gameboy where it looks like a large dot matrix is incredible.

I think emulators are great for a few reasons but ultimately not what I want to game on. I like having a physical cartridge. I like that I can even get a rom cart when I can’t reasonably get a game without a significant investment. The other thing about emulators is this disposable effect it can have on your brain. Like changing the channels of the tv because you are bored or just want to see what else is on. Rom carts and Emulators have this effect on me. Its often easier for me to finish a game if I have to take it out of where i store it, maybe clean the contacts and put it into my system where I’d have to remove my cart and put another game in if I wanted to play something else.


#3

I mostly emulate and I primarily use retroarch for most things, I really don’t notice much lag at all. I emulate to CRTs mostly but if the software was introducing that much lag it’d still probably be noticeable. Also as someone who likes to sit down and play some serious Smash Brothers Melee sometimes, the forks of Dolphin made for Melee Netplay feel identical to my Nintendo Wii side by side.


#4

I like Retroarch and use emulation to test stuff but I just can’t play a game through on it. Every time some stutters or slows I’m constantly asking myself “was that how it happened on the console?” and it ruins the experience for me. I also cant stop fucking around with settings and shaders and end up doing that more than playing the game.


#5

I played emulators for many years before starting my collection of retro stuff. Why spend money if you don’t have to? I was a firm believer that collecting was a waste of money, yet I still didn’t sell my old systems from my childhood for some reason.

I think my enjoyment of real hardware has to do with a lot of factors.

When I’m playing the actual hardware, I’m in my dedicated area for retro gaming. My entertainment unit is the perfect size for a 27" CRT, and it’s entirely made of a fantastic cheap wood grain veneer. I turn on the lamps in the room for a nice warm-lit comfy feeling. I sit down, turn on my AV receiver and the TV and wait for that sweet degauss sound. I use the switchbox to select a game system and pull out an authentic controller from a drawer. I paid money for these carts and these systems, and it just feels very old-school and tangible. I don’t have to remap buttons or use a mouse/kb to get things started.

My oldest son is 3 now, and he plays with me almost daily. It’s incredible to share in his excitement of playing these games for the first time, and when he turns away from his favourite show on the TV upstairs and says “mario racing game, daddy” (Super Mario Kart, of course), or “pumpkin fighting game, daddy” (Clayfighter), I can’t help but melt a little. He mostly has no idea what he’s doing in the games, but spending time with him in the basement, sitting on an old couch and letting him kick my ass in clayfighter brings me so much joy.

This is why retro gaming holds so much value to me, and why I’ll gladly pay $20 for a cartridge that I could have played for free in a dozen different ways on various systems.


To be fair, I still love emulation. I am very pleased to see that things have come along so well with the accuracy and input timings. I have every intention of hooking a PC up to my CRT for emulation reasons, and I will use it a great deal I’m sure.


#6

How is that possible? Melee is just so fast. I can’t wrap my head around how it could feel correct in an online setting.

Engineering wizardry if true.


#7

The distance still has to be fairly low but playing with someone close under about 30-20 ping feels pretty close to the real deal. If I just start up practice mode by myself on Dolphin and on the Wii and play with both I can’t tell a differece.


#8

That’s impressive!


#9

Yeah I understand I do the same thing sometimes. I think getting a good frontend setup and connecting my PC to a CRT helped me bridge that gap and make things feel as close to authentic as I could because I just don’t have the budget to go entirely real hardware


#10

I had a Groovymame PC inside of a gutted Blast City cab and it was pretty awesome. I could not feel any lag at all,1 cc’d a couple of my favorite shooters on it! (fuck I regret selling it) That’s probably the best emulation can get,everything felt great but it was on a CRT.

Here’s a quick little video of my Groovymame PC.


#11

Wow that is nice! I really want to get a couple good arcade sticks for my PC looking at that!


#12

Here’s a much more in depth video I made to a couple potential buyers.


#13

This is how I feel about first-time playthroughs. I went through the small hassle of ripping Mario Galaxy and trying it in Dolphin and was super impressed at how even at 480p (with some basic aa/af) it looked so much better than on my Wii but then I had experienced a slight stutter and was worried if that was the emulator or just how it was in the game. I ended up playing through on the Wii instead but it’s something I’d return to after.

It’s really awesome to see lag being decreased so much, I have been very close to dipping my toes into getting a consolized CPS2 and 3 but I think I might hold off. I have no idea how accurate all these emulators are for the various systems and so I like to get real hardware but it sounds like at least for some they’re good enough.


#14

The stuttering you experienced was probably due to the shader compilation problems Dolphin used to have. https://dolphin-emu.org/blog/2017/07/30/ubershaders/ It’s been fixed for some months now and stutters much less. Check it out some time!


#15

Thanks, I’ll be checking out dolphin again for sure!


#16

Been following these tests for a while. With a decent PC and CRT monitor, it’s really amazing what you can do with emulation nowadays. I can attest that my emulation experience has been pretty much indistinguishable from the real deal for a while now on most older systems (not that I’m an expert on lag or emulation accuracy).


#17

With any fast monitor/TV it’s conceivable you could have one machine doing a great job of running a number of systems with a snappy, high degree of accuracy, resulting in cutting out most of the clutter in a retro setup. I’m currently moving my retro setup, in order to simplify and consolidate the with my regular gaming setup. I’m considering what roles my reg PC and my 240p PC can play in all this.

I know nothing replaces the feel of simply sticking in a cartridge, hitting the power button and playing in seconds. And while big lists of games tend to cause a “channel flipping” effect (noncommittal, indecisiveness), I already have a bunch of flash carts and ODEs and make an effort to pick a game and stick with it until I finish it or for as long as I’m enjoying it.

I had the video stuttering problem and audio stutter crashing into an obnoxious loud noise in Dolphin. I remember that also propelling me toward re-obtaining original hardware. Good to know it’s long been fixed.


#18

I think I’ve said it before, but the more I emulate, the more I appreciate original hardware and the more I seek out old games. That’s no dig on emulation at all, I love the convenience and features it offers and I’ve found so many games through emulating them, but I can’t deny the good feeling I get from popping in a cart and knowing this is the way it was (a few upgrades aside) in 1993. In the end though, I support anything that gets people into retro gaming. Emulation, original hardware, or good clones like the Super Nt, it’s all one thing for me. I’m just in it for the games and the good times.

I definitely feel you on the channel-flipping feeling though. What I’ve done to combat that is to have a full set of games in one folder, and in the containing folder I have my “Top 50” or so games that I know I love or have wanted to try for a while. It helps narrow things down while putting that large selection one step further away.


#19

That’s why emulation has always rubbed me the wrong way. It cheapens the experience for me personally. Yeah, it sucks that some games cost a lot and I may never own them because of that, but often it just takes patience to play it legitimately.


#20

Thanks to flash carts you don’t need to sell your house to play some old games in good conditions any more. Unless someone really wants the original cart, it’s the way to go imo.

I’m waiting for a device that would allow me to use a Raspberry Pi on a 15kHz consumer CRT in RGB. Along with a custom OS, that should remove any overhead that come from outside the emulator. Hopefully the experience will be satisfying.