• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Dolphin - Emulating Wii and Gamecube Games

Lylo

Member
Ubershaders got me back into playing with Dolphin. As a result, I took on a small project that I'd been meaning to do for a while.

Dolphin's input lag compared to a real Wii

TL;DR ~1 frame of video lag, ~2 frames of audio lag on my laptop vs Wii.
Numbers will probably vary depending on PC setup, controller/input method, etc.

DJ Hero is fun, but was really difficult to play on Dolphin due to input & audio lag. I ended up playing most of the game on a real Wii.

A while back I established that my TV had ~15ms of input lag and my soundbar had ~60ms. I used Rock Band's calibration tool (which is fantastic and better than DJ Hero's) to get calibration numbers for my Wii & TV (45ms AV sync, -65ms input lag). I then got the same numbers with Dolphin & my laptop (15ms AV sync, -65ms input lag). Putting all the numbers together results in Dolphin having a native 15ms input lag and 30ms audio lag, which is about 1 frame and 2 frames of lag respectively.

Plugged these numbers into DJ Hero and they worked great. DJ Hero in 1080p with headphones is fantastic.

Windows 10
GTX 860M
DirectX 11 backend
Borderless Fullscreen, no VSync (My laptop seems to force its own VSync on Borderless Fullscreen games, and it has very low input lag compared to Exclusive Fullscreen + VSync)
Cubeb audio backend
TimingVariance = 17 (Dolphin.ini setting which controls audio latency in ms, default is 40)
Real Wii Remote with Emulated Bluetooth adapter (Bluetooth passthrough is unstable on my laptop)

How Exclusive Fullscreen (Vsync off) compares to Borderless Fullscreen? I ask because Windows has this triple-buffering in windowed mode (and in Borderless Fullcreen too) that may result in increased latency.
 

shockdude

Member
How Exclusive Fullscreen (Vsync off) compares to Borderless Fullscreen? I ask because Windows has this triple-buffering in windowed mode (and in Borderless Fullcreen too) that may result in increased latency.
Rock band shows a 30ms AV sync, which translates to 0ms video lag, 30ms audio lag. But there's screen tearing and some framepacing issues and the audio is even more out of sync with the video so I prefer Borderless for DJ Hero at least.

The VSynced Borderless is definitely new. Might have been added in a recent Windows Update, or maybe it was from a newer Dolphin revision, but w/e it works well.

Remember that these numbers were obtained with a Real Wiimote and Emulated Bluetooth. Theoretically Bluetooth Passthrough should have even less video & audio lag.
Also note that these numbers may not necessarily apply to other input methods like the GC adapter.
 

TSM

Member
Rock band shows a 30ms AV sync, which translates to 0ms video lag, 30ms audio lag. But there's screen tearing and some framepacing issues and the audio is even more out of sync with the video so I prefer Borderless for DJ Hero at least.

The VSynced Borderless is definitely new. Might have been added in a recent Windows Update, or maybe it was from a newer Dolphin revision, but w/e it works well.

Remember that these numbers were obtained with a Real Wiimote and Emulated Bluetooth. Theoretically Bluetooth Passthrough should have even less video & audio lag.
Also note that these numbers may not necessarily apply to other input methods like the GC adapter.

Make sure to change the audio back end in dolphin from XAudio2 to Cubeb if you want the lowest latency.
 

finley83

Banned
Do Ubershaders currently work on OpenGL? I'm using version 5.0-4906 but on either Hybrid or Exclusive nothing compiles on startup and the games run exactly the same as if it wasn't turned on. However both seem to be functioning properly on Direct3D 11 with exactly the same graphics settings...
 
Do Ubershaders currently work on OpenGL? I'm using version 5.0-4906 but on either Hybrid or Exclusive nothing compiles on startup and the games run exactly the same as if it wasn't turned on. However both seem to be functioning properly on Direct3D 11 with exactly the same graphics settings...

According to their webpage, with NVIDIA yes.

AMD on Windows
Use D3D for Hybrid mode.
Use D3D or Vulkan for Exclusive Mode.
The AMD OpenGL driver is just slow in general.

NVIDIA on Windows
Use D3D or OpenGL for Hybrid mode.
Use D3D or OpenGL or Vulkan for Exclusive mode. D3D's Ubershaders tend to be more efficient than OpenGL or Vulkan's resulting in higher performance on weaker GPUs.
 

bomblord1

Banned
Is there any place to buy one of those external disc drives that can read wii games? I didn't see them on Amazon.

You can't really find them anymore I tried to order one off Amazon and they sent me a different model. I tried to contact them about it and they replied it "should work to replace that drive" becaise they thought I was just ordering a replacement but it didn't rip games.
 

catabarez

Member
You can't really find them anymore I tried to order one off Amazon and they sent me a different model. I tried to contact them about it and they replied it "should work to replace that drive" becaise they thought I was just ordering a replacement but it didn't rip games.

Welp. Guess ebay is the next place to check.
 
A week or so ago I decided to emulate Geometry Wars Galaxies for DS to my disappointment. It ran poorly and it wasn't really possible to control with analog sticks.

I just realized today that the Wii version had Classic Controller support.

If you haven't tried it and enjoy Geometry Wars, this is the BEST. It runs smoothly at 4K (though music is a bit glitchy) and is a blast.
 

ss_lemonade

Member
Is there a difference between OpenGL and Direct3D when it comes to exclusive fullscreen? I just want to get rid of the diagonal tearing issue with my laptop (Nvidia Optimus tearing) and so far, exclusive fullscreen mode on applications is the only way to do it. I still get tearing on OpenGL + exclusive fullscreen though and I can't get D3D to run to test (Dolphin always crashes when starting a game under D3D)
 

TSM

Member
Is there a difference between OpenGL and Direct3D when it comes to exclusive fullscreen? I just want to get rid of the diagonal tearing issue with my laptop (Nvidia Optimus tearing) and so far, exclusive fullscreen mode on applications is the only way to do it. I still get tearing on OpenGL + exclusive fullscreen though and I can't get D3D to run to test (Dolphin always crashes when starting a game under D3D)

With Nvidia it's preferable to run in OpenGL. Due to ubershaders it's temporarily better to run Nvidia with D3D, but there is a PR they are working on that will bring OpenGL shader performance back up to D3D levels again when it's merged. Then everyone will switch back to OpenGL for Nvidia.
 

linko9

Member
Anyone know if there's a way to reassign inputs using the official gamecube controller adapter? Specifically I want to assign buttons on the GC controller to Wii remote buttons, but there doesn't seem to be an obvious way to do this, since the controller is not detected as a controller by windows, and there's no customization possible at all within Dolphin.
 

PGamer

fucking juniors
Anyone know if there's a way to reassign inputs using the official gamecube controller adapter? Specifically I want to assign buttons on the GC controller to Wii remote buttons, but there doesn't seem to be an obvious way to do this, since the controller is not detected as a controller by windows, and there's no customization possible at all within Dolphin.

You can use the Wii U GCN USB driver but it won't utilize Dolphin's native support and will instead appear as a PC controller.
 

Seik

Banned
I need a bit of help here with playing Metroid Prime Trilogy with a mouse + keyboard setup.

I'll quote a post I did on an older Metroid/Dolphin related thread that never had a reply afterwards. There's more chance I get some help in here anyways. :p

I'm trying to play Prime via Trilogy with a Mouse+Keyboard setup.

It overall works very well, I'm impressed with the potential this configuration has, though there's a LITTLE problem, which is that I can't aim down. On the title screen I can't put the cursor lower than the third lower part of the screen.

Here's my setup. Anybody can see what I'm doing wrong?

onYECmd.png


I tinkled with the 'Height, Width and Center' IR options a lot and there's nothing that seems to work. :(

I took the following screenshot, the inside of that red square is where I'm able to move the cursor/aim. I tried other games like Trauma Center and Red Steel and I'm able to move the cursor everywhere, which makes this problem exclusive to Metroid Prime Trilogy on my end.

 

Nabs

Member
edit: I'm not sure why your box is up there like that. It might be something else. I have a similar box, but it's from the faces down to the end of the screen.

edit 2: Changing the numbers at the botttom (Height/Width/Center) does seem to help, but it feels off to me. I'm not using Relative Input, and I'm using Cursor instead of Axis. No idea if that helps.
 

Seik

Banned
edit: I'm not sure why your box is up there like that. It might be something else. I have a similar box, but it's from the faces down to the end of the screen.

edit 2: Changing the numbers at the botttom (Height/Width/Center) does seem to help, but it feels off to me. I'm not using Relative Input, and I'm using Axis instead of Cursor. No idea if that helps.

If I uncheck Relative Input, my cursor/mouse becomes unusable, no matter what I try to do, I can see the cursor move for half a second and it comes back right to the center.

EDIT: I've been trying to mess with Width, Height and Center for a while.

-Center: If I change the value to anything but 50 the cursor will just fly up (50+) or down (50-) the screen. (But still inside the limits of that red square.)
-Height and Width: Changing the values simply seems to affect the sensitivity of the Axis my cursor moves to. Changing it doesn't affect the limits of the red square.
 

Nabs

Member
If I uncheck Relative Input, my cursor/mouse becomes unusable, no matter what I try to do, I can see the cursor move for half a second and it comes back right to the center.

EDIT: I've been trying to mess with Width, Height and Center for a while.

-Center: If I change the value to anything but 50 the cursor will just fly up (50+) or down (50-) the screen. (But still inside the limits of that red square.)
-Height and Width: Changing the values simply seems to affect the sensitivity of the Axis my cursor moves to. Changing it doesn't affect the limits of the red square.

I found a few posts on the dolphin forum asking for help, but no real solutions.

One thing: I did make a slight mistake in my post. I'm using Cursor (-y,+y, etc) instead of Axis, and no relative input selected. I find that Relative restricts the bounding box, and also adds a bit of input lag or acceleration. If I begin to change the numbers, the box increases. My box location is not as annoying as yours, so I don't know how much help that'll be.
 

Seik

Banned
I found a few posts on the dolphin forum asking for help, but no real solutions.

One thing: I did make a slight mistake in my post. I'm using Cursor (-y,+y, etc) instead of Axis, and no relative input selected. I find that Relative restricts the bounding box, and also adds a bit of input lag or acceleration. If I begin to change the numbers, the box increases. My box location is not as annoying as yours, so I don't know how much help that'll be.

You found the spot. Thanks man! :D

I changed Axis X/Y +/- for Cursor (manually, by right clicking on the input) and it eliminated that invisible box. Indeed, having Relative Input checked now fucks up everything. :lol

However I'm still tinkling with it a bit, I can swing the cursor everywhere on the screen from left to right, but when I reach the top of the screen, the cursor seems to die and re-center sometimes.

I'm using a wireless mouse but it has a brand new battery and the cursor doesn't have that problem on my Desktop. This is big progress though!
 

shockdude

Member
I ended up not being satisfied with the input lag results I got earlier. So I came up with a better experiment and got new numbers.

Compared to a real Wii:
Video lag, Borderless Fullscreen No VSync: ~25ms
Video lag, Exclusive Fullscreen VSync: ~20ms
Video lag, Exclusive Fullscreen No VSync: Negative ~10ms
Audio lag: ~50ms

Feels great - usually. It sometimes feels like Dolphin changes its input lag mid-emulation, but this is usually resolved by pausing & resuming the emulation.
Real Wii is obviously superior and hard to beat. Ever since I got the Sewell Wii to HDMI converter, I've been spending more time on the real Wii than on Dolphin simply due to the input lag.

This time I measured video lag and audio lag using cheap recording equipment.

DJ Hero 2
Dolphin 5.0-5169, DirectX 11, Borderless Fullscreen no VSync, GTX860M, Cubeb audio backend, TimingVariance=17
Wii with low-latency Sewell HDMI converter
Wiimote with Turntable attachment
Low-latency PC Monitor with built-in speakers
Cell phone camera recording at 120FPS (video lag measurement, record time between button press and screen change, average 10 button presses)
Laptop Mic & Audacity (audio lag measurement, record time between button press and sound effect, average 10 button presses)
 

TSM

Member
I ended up not being satisfied with the input lag results I got earlier. So I came up with a better experiment and got new numbers.

Compared to a real Wii:
Video lag: ~25ms
Audio lag: ~50ms

Feels great - usually. It sometimes feels like Dolphin changes its input lag mid-emulation, but this is usually resolved by pausing & resuming the emulation.
Real Wii is obviously superior and hard to beat. Ever since I got the Sewell Wii to HDMI converter, I've been spending more time on the real Wii than on Dolphin simply due to the input lag.

This time I measured video lag and audio lag using cheap recording equipment.

DJ Hero 2
Dolphin 5.0-5169, DirectX 11, Borderless Fullscreen no VSync, GTX860M, Cubeb audio backend, TimingVariance=17
Wii with low-latency Sewell HDMI converter
Wiimote with Turntable attachment
Low-latency PC Monitor with built-in speakers
Cell phone camera recording at 120FPS (video lag measurement, record time between button press and screen change, average 10 button presses)
Laptop Mic & Audacity (audio lag measurement, record time between button press and sound effect, average 10 button presses)

I don't see the point in being overly concerned about latency if you aren't going to use exclusive full screen as going through the windows compositor is going to add lag. Also latency will vary by game depending on the settings the ini uses. Any game that needs the XFB is going to lag far more than games that do not. Their lead tester JMC recently did some latency testing with dolphin:

https://forums.dolphin-emu.org/Thread-base-latency-in-best-case-scenario

With XFB enabled + CRT monitor we're about even with console.

With XFB disabled + any decent low latency monitor (LCD/IPS/CRT) we're lower than console by some amount.

https://github.com/dolphin-emu/dolphin/pull/5498

5.0-5142

VirtualXFB - 16ms
RealXFB - 18ms
NoXFB - -5ms

Basically Dolphin is at least on par with a real Wii, and with games that don't need the XFB Dolphin is significantly lower in latency.
 

shockdude

Member
I don't see the point in being overly concerned about latency if you aren't going to use exclusive full screen as going through the windows compositor is going to add lag. Also latency will vary by game depending on the settings the ini uses. Any game that needs the XFB is going to lag far more than games that do not. Their lead tester JMC recently did some latency testing with dolphin:

https://forums.dolphin-emu.org/Thread-base-latency-in-best-case-scenario
Interesting, good to know.

I measured DJ Hero 2 specifically because, well, that's the game where these numbers actually matter. It's the only Hero game with bonus points for "perfect" notes.
Edit: DJ Hero 1 & 2 use NoXFB.

I'm well aware of sources of video lag. Unfortunately, for DJ Hero 2, Borderless Fullscreen is the only way to get something playable.
  • Exclusive No VSync --> tearing, note highway looks awful and gives me a headache
  • Exclusive VSync --> game randomly drops to 40FPS for some reason
  • Borderless VSync --> lol
And in any case decreasing the video lag doesn't affect the audio lag
 

TSM

Member
Interesting, good to know.

I measured DJ Hero 2 specifically because, well, that's the game where these numbers actually matter. It's the only Hero game with bonus points for "perfect" notes.
Edit: DJ Hero 1 & 2 use NoXFB.

I'm well aware of sources of video lag. Unfortunately, for DJ Hero 2, Borderless Fullscreen is the only way to get something playable.
  • Exclusive No VSync --> tearing, note highway looks awful and gives me a headache
  • Exclusive VSync --> game randomly drops to 40FPS for some reason
  • Borderless VSync --> lol
And in any case decreasing the video lag doesn't affect the audio lag

JMC recently tested the audio latency using Rock Band and using the calibration inside the game was -2 which means Dolphin has lower audio latency than a real Wii, but I don't remember which PR I read it in.
 

shockdude

Member
JMC recently tested the audio latency using Rock Band and using the calibration inside the game was -2 which means Dolphin has lower audio latency than a real Wii, but I don't remember which PR I read it in.
I'd like to see that PR. -2 doesn't make sense without context.

I'm pretty confident in my audio latency numbers as measuring with a microphone is really precise. Time_of_SFX - Time_of_button_click = audio latency. I don't know why it's so high.

Turns out the 40FPS VSync bug disappeared, must've been fixed by a later Dolphin/driver version.
Recording video lag with a phone is actually pretty quick. With VSync, ~17-18ms over a Wii, which I rounded up to 20ms for convenience. Adding RivaTuner doesn't make the lag any lower, which surprised me.
And yeah NoVSync gets -10ms, which is pretty cool.
Thanks for the input.
 

linko9

Member
Basically Dolphin is at least on par with a real Wii, and with games that don't need the XFB Dolphin is significantly lower in latency.

That's insane, I honestly did not know this was possible with an emulator. Does this apply to GC games as well as Wii games? I myself was playing around with settings yesterday, trying to eliminate tearing while keeping low input lag. In my screwing around, I discovered Nvidia's "fast sync" which I had never heard of before. It works amazingly; no tearing and extremely minimal latency. Other people have found it adds only ~5ms over no sync, which I definitely believe. To me it felt like the same latency as on a real console, but I though I must have been tricking myself. Now I'm thinking maybe it's true. Only thing about fast sync is it requires the GPU to supply a lot more frames per second than the game's refresh rate. Luckily this wasn't a problem even at decently high settings for any game I tried (except Rogue Leader, which I've never been able to get running at full speed), but if I cranked up the internal resolution to like 8x for no reason, I did get frames dropping, where I would have no problem using conventional vsync. Anyway, something to check out if you have a recent Nvidia card but no Gsync monitor, to me it was kind of mindblowing.
 

Easy_D

never left the stone age
So Metroid Prime 1 and 2 now both run beautifully, save some very minor microstuttering in 2, problem areas that dipped below 60 at points are now locked, which is awesome.

Buuuut, the map screen in both is just *terrible*. I could deal with the framedrop if it didn't fuck audio up as bad as it did. Not gonna keep me from playing the games, they're too damn good to not play, but still. Seems this has been a known issue for at least 9 years or so too lol. Anything that can be done about this or does this just boil down to being an effect that's really hard on your CPU to emulate? My CPU is pretty weaksauce so that wouldn't surprise me. Hell I'm really glad the actual gameplay is running at full speed these days, I can deal with the map being ass
 

linko9

Member
So Metroid Prime 1 and 2 now both run beautifully, save some very minor microstuttering in 2, problem areas that dipped below 60 at points are now locked, which is awesome.

Buuuut, the map screen in both is just *terrible*. I could deal with the framedrop if it didn't fuck audio up as bad as it did. Not gonna keep me from playing the games, they're too damn good to not play, but still. Seems this has been a known issue for at least 9 years or so too lol. Anything that can be done about this or does this just boil down to being an effect that's really hard on your CPU to emulate? My CPU is pretty weaksauce so that wouldn't surprise me. Hell I'm really glad the actual gameplay is running at full speed these days, I can deal with the map being ass

Yeah that's just due to a weak cpu, nothing wrong with the emulation at all. Incidentally, while the map screen ran slow on the official 5.0 version, using a recent nightly, it runs full speed for me.
 

Easy_D

never left the stone age
Noticing some major slowdown in Prime 2 now, the fight against Dark Samus dipped to 45 FPS which is terrible. Blergh

I guess for reference I'm running an FX6300 OCd at 3.8 Ghz :p. The issues are mostly gone if you turn on Store EFB Copies to Textures Only but as commonly (?) known that breaks the scan visor ): I guess I'm gonna have to shelve this playthrough lol.

Edit: A neat workaround would be to hotkey that setting to the scan visor button, so it comes off when you wanna scan and comes on when you exit it. But I s'pose I can just disable it manually during bossfights after I've scanned. Not many rooms so far have been that taxing so, played up to the Dark Beam and it's been mostly smooth sailing apart from bossfights.
 

Anteater

Member
man I just can't seem to get rid of this stutter where some games load/pause for a split second randomly, it's not a shader compiling thing since i've tried the ishi build, the ubershader build and almost every setting, i just stand still in the game and it'll still happen randomly
 

Easy_D

never left the stone age
I'm a stupid mofo. EFB Copies can be set to a hotkey lmao. This makes my MP2 experience so much smoother. Bless the UI guys for having foresight to add this feature.

I literally can set the toggle of EFB Copies to the visor button. That's fantastic :D
 
The later Call of Duty games patched, tho. And I think the one with the light eyeball thing.

If these were only balance patches, they could have been implemented as in-client gameplay "settings" set on server side and not actual code updates. I remember hearing about this technique in context of an X360 low profile online game whose devs wanted to not deal with certification when changing damage values. Regardless, if so, it's interesting they didn't mention that.
 

bee

Member
anyone got neo mario galaxy mod working in dolphin? tried to use a guide for modding smash bros/mario kart but not managed to get it to work yet, i have win image, virtual sd card maker and a blank pre made 2gb sd.raw file from reddit, tried a few different things but no joy

any ideas?
 
One of the blog posts mentioned that a lot of mods don't work well because they rely on certain cache behaviors (which would normally be labelled as a latent bug, but it's a mod, so the standards are low) or something like that.
 

FyreWulff

Member
If these were only balance patches, they could have been implemented as in-client gameplay "settings" set on server side and not actual code updates. I remember hearing about this technique in context of an X360 low profile online game whose devs wanted to not deal with certification when changing damage values. Regardless, if so, it's interesting they didn't mention that.

Nope, they were actual patches, not live-values.

https://www.youtube.com/watch?v=nflwZMLBkpQ

Conduit 2 also had actual patches.
 

finley83

Banned
Anyone figure out a way to play Resident Evil 2 without borked music? Going back to 5.0 gets it working again but wondering if there's a fix in the newer versions.
 

FyreWulff

Member
Most likely this just added data to your save file and did not actually patch the game. DQX actually patches the game since the data is on a USB thumb drive where the installed data can be directly modified. You can't directly patch the discs since they are read only.

The patches fixed actual crashes and hacks/exploits and other very deep-client-code specific things. They were actual patches. The only difference between them and other consoles was the developers in both cases had to roll the entire patch solutions themselves on Wii, so there isn't an "update partition" like on 360/PS3, the only way the Wii understood data was save file blocks. All they did was make the game look for their special 'save file' being present and then loaded in the executable patch data stored in it. Games that had DLC, like Rock Band 2/3 and Guitar Hero also had their DLC show up as 'save files'.

What they did with DQX was just backport the Wii U file system to the Wii, so yeah, it has better patching support, but this is mostly because they got to avoid using the Wii's obtuse as fuck file management system. Since the Wii U wasn't out when these other patchables were being supported, that was of course a non-option, and the fact that they thought it was literally easier to port an entire future console's subsystem to the previous console sort of tells you how annoying it was to bootstrap patching on the Wii.


Nintendo also did patch some games by shipping the patch inside the latest IOS. Conduit 1 was patched this way, and so was Wii Sports Resort, and a couple of other games. That's obviously patch-by-interception, though.
 

TSM

Member
The patches fixed actual crashes and hacks/exploits and other very deep-client-code specific things. They were actual patches. The only difference between them and other consoles was the developers in both cases had to roll the entire patch solutions themselves on Wii, so there isn't an "update partition" like on 360/PS3, the only way the Wii understood data was save file blocks. All they did was make the game look for their special 'save file' being present and then loaded in the executable patch data stored in it. Games that had DLC, like Rock Band 2/3 and Guitar Hero also had their DLC show up as 'save files'.

From one of the Dolphin devs:

leoetlino said:
To expand a bit: The Skyward Sword bug could never be fixed for existing game copies. All Nintendo did was release a channel that would fix the save file -- no code change was involved.
CoD's updates are actually more like DLC -- they still cannot update the game's base code and are considered to be separate titles.
DQX's patch system is directly integrated into the game and actually replaces old files with the new versions.
 

catabarez

Member
It looks like there are some dvd drives on ebay that will work with rawdump. Should I take the chance with the drives in the enclosures or should I get a bare drive that is for sure the right model number?
 

TSM

Member
It looks like there are some dvd drives on ebay that will work with rawdump. Should I take the chance with the drives in the enclosures or should I get a bare drive that is for sure the right model number?

I'd just buy a Wii and use it to dump everything. You can't actually play off the discs so there's no point in owning a drive for the PC.
 
Top Bottom