Dolphin, the GameCube and Wii emulator - Forums

Full Version: The Future of Melee: How fast can Dolphin accept inputs? What is the refresh rate?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5
Raphnet is working on a new version of their adapter that will use full speed USB.  The USB communication will be done by hardware so a low poll interval of 1 ms will be possible.  This is huge for games like Super Smash Bros. Melee where every millisecond counts.  This allows for communication that is faster than native hardware speeds on a GameCube if we also set our USB polling to 1000hz.  Also, because of Dolphin being on PC, we can use 144hz Gaming Monitors instead of 60hz displays.  This allows for transmission rates to be cut down from 16.67ms to about 9ms (6.94ms + 2ms input processing).  For Smash Bros, this is super important because Smash is a non-buffered analog fighter.  The timing is so fast and tight that having a setup with the least amount of input lag becomes very important.

Currently, the best confirmed way of playing (in terms of lag) is using a Wii or GameCube with a CRT TV.  If you want to play with on a Gaming Monitor with a marginal 2ms of input lag and have widescreen progressive output, you can get an HDMI adapter for the Wii and a BenQ 60hz display.  Either method still allows for a possible 22.67ms of lag with respect to how fast GameCubes and Wiis refresh controller inputs (~6ms).  But what about the future?  What are the goals?  What are things we can improve on?


Well, here are the top requests:
1 - 1080p / HD
2 - Widescreen Progressive Output
3 - Online Play
4 - Native input lag or less


Possible solutions:

1 - Dolphin Upscaling and Anti-Aliasing
While it's not as good as actually creating better sampled textures, it is a huge improvement over native internal resolution and immediately noticeable.
2 - 20XX Pack and Dolphin Full RGB 4:4:4 Progressive Output

With the 20XX Pack, you can enable widescreen 16:9 output. And Dolphin already outputs in progressive full RGB without worrying about analog to digital conversions. It's the best image you can get.
3 - Netplay P2P
With Netplay and Smash Ladder, we can find regional opponents with only 1 to 2 frames of input lag from the connection alone if we play people with buffer 4 and under.
4 - USB Adapters and Gaming Monitors
Official Nintendo Wii U GameCube Controller Adapter (5ms) and the Future Raphnet Adapter (1ms) solve the issue where we were getting extra input lag just from the adapter. We also had an issue with getting an extra frame of input lag from Desktop Windows Manager (Windows Aero) not being disabled but if you have Windows 7, you can still disable it.  So with these newer adapters and being able to poll our USB devices at 1000hz, we can improve the input lag from 6ms to 1ms. And now with these newer gaming monitors, we can use 144hz displays improving the display lag from 16.67ms to ~9ms. With the total overall lag improving from a possible 22.67ms per frame to ~10ms per frame having a possible reduction of -12.67ms per frame.


Summary
Having an input lag reduction of ~12.67ms per frame is a big deal already for local play, but also improves the netplay experience.  With netplay, I could be playing someone at buffer 3 with about ~25ms of input lag from the connection, but if I were to use the new Raphnet Adapter and a 144hz Gaming Monitor, it would improve from a possible ~50ms of total input lag (including display lag and controller refresh lag) to approximately 35-40ms of total lag.  And not only would using Dolphin in this way help input lag, but it would also allow for vast improvements visually.  We would finally be able to run Melee at 1080p via Upscaling and Anti-Aliasing with Full RGB Widescreen Progressive output.  This would make our scene look much better on streams and events and would attract more possible players.  We need to adjust to 2015 standards and I think if Nintendo can't help us, there's no reason we can't help ourselves.


The Big Question
Even if we get a 144hz Gaming Monitor, a new Raphnet Adapter, and disabled Windows Aero - allowing for a theoretical 1ms of input lag from hardware alone - if Dolphin doesn't accept 1ms inputs or refresh every 1ms, then the whole thing is a waste.


Which makes this is the most important question right now:


How fast can Dolphin accept inputs and what is the refresh rate in which it checks for new inputs?
And if Dolphin can't accept inputs at 1ms, how can we modify or improve Dolphin to be able to?  And if we can't get it at 1ms, can we at least get it matched to the GameCube refresh rate of ~6ms?


Thanks for reading,
TruckJitsu
As of Dolphin 4.0-4536, the input is polled once every 60th of a second.  See this commit:

https://github.com/magcius/dolphin/commi...c42f517d9b

OTOH, if the GC adapter is used with native support, the latency will be near as fast as USB can send data:

https://github.com/dolphin-emu/dolphin/b...er.cpp#L67
(01-28-2015, 10:34 AM)skid Wrote: [ -> ]As of Dolphin 4.0-4536, the input is polled once every 60th of a second.  See this commit:

https://github.com/magcius/dolphin/commi...c42f517d9b

OTOH, if the GC adapter is used with native support, the latency will be near as fast as USB can send data:

https://github.com/dolphin-emu/dolphin/b...er.cpp#L67

Ok, so currently the only GC adapter with native support is the Official Nintendo Wii U GameCube Adapter right? So that means as of right now, if we use the official adapter, we will only experience ~5ms of input lag correct? What about Windows having a default polling rate of 125hz? Do we still have to overclock our USB polling to 1000hz?
(01-28-2015, 10:48 AM)TruckJitsu Wrote: [ -> ]Ok, so currently the only GC adapter with native support is the Official Nintendo Wii U GameCube Adapter right? So that means as of right now, if we use the official adapter, we will only experience ~5ms of input lag correct?  What about Windows having a default polling rate of 125hz?  Do we still have to overclock our USB polling to 1000hz?

Yes, it is the Official Nintendo Wii U GameCube Adapter.

I think it will be less than 5ms, but I am not sure.

I believe the Windows default polling rate of 125hz does not apply to the GameCube Adapter (I might be wrong).

Dolphin will poll the GameCube Adapter as fast as your PC can emulate the GameCube - this means if the PC is emulating the GC at 50% speed, the GameCube Adapter gets polled half as much.
(01-28-2015, 03:38 PM)skid Wrote: [ -> ]
(01-28-2015, 10:48 AM)TruckJitsu Wrote: [ -> ]Ok, so currently the only GC adapter with native support is the Official Nintendo Wii U GameCube Adapter right? So that means as of right now, if we use the official adapter, we will only experience ~5ms of input lag correct?  What about Windows having a default polling rate of 125hz?  Do we still have to overclock our USB polling to 1000hz?

Yes, it is the Official Nintendo Wii U GameCube Adapter.

I think it will be less than 5ms, but I am not sure.

I believe the Windows default polling rate of 125hz does not apply to the GameCube Adapter (I might be wrong).

Dolphin will poll the GameCube Adapter as fast as your PC can emulate the GameCube - this means if the PC is emulating the GC at 50% speed, the GameCube Adapter gets polled half as much.

Ok awesome.  Now how can we verify whether or not we need to overclock the adapter?  Is there anyone else in the Dolphin Community who might know that we can ask?
You shouldn't need to unless you're really crazy. It feels like console as it is with Native GC support + Exclusive Fullscreen; even without a CRT monitor.
(01-28-2015, 08:28 PM)JMC47 Wrote: [ -> ]You shouldn't need to unless you're really crazy.  It feels like console as it is with Native GC support + Exclusive Fullscreen; even without a CRT monitor.

For competitive players with money on the line, it's not considered "really crazy".  It's crucial for Dolphin support to be as good as or better than console play.  This is for the competitive Smash Community - so when there's money on the line, it can't be worse than console.  The big reason more players aren't using Dolphin is because of input lag and no one is taking it seriously right now.  I'm trying to change this.
The biggest way to reduce input latency on PC is exclusive fullscreen, not doing placebo stuff like overclocking USB ports.
(01-29-2015, 02:21 AM)JMC47 Wrote: [ -> ]The biggest way to reduce input latency on PC is exclusive fullscreen, not doing placebo stuff like overclocking USB ports.

What is "exclusive fullscreen"? - What's the difference between setting your output resolution to 1080p (matching monitor resolution) while having the " fullscreen" option checked, compared to this "exclusive fullscreen" option you're talking about?

Also, if it is 5ms + variable 1-8ms, then we're talking about a potential ~half-frame or ~1 whole buffer difference for netplay that would occur some of the time.  We want to avoid this.  Consoles have ~6ms of lag with their controllers.  Why wouldn't we want to reduce the potential 13ms of lag to match the lag of 6ms like on consoles?
The GameCube only outputs 60 frames per second, you're getting more than 5ms of lag whether you know it or not.
Pages: 1 2 3 4 5