dolphin icon indicating copy to clipboard operation
dolphin copied to clipboard

Emulated Wiimote: allow recentering IR cursor with the Home button on the built-in profile

Open mbc07 opened this issue 3 years ago • 7 comments

Dolphin ships with a built-in "Wii Remote with MotionPlus Pointing" profile for a while now, providing a quick and easy way of setting the emulated Wiimotes bindings to allow playing Wii titles that requires a sensor bar with just a Wii Remote Plus.

I've been using this profile lately and although it works great, it has a big shortcoming: the Recenter action doesn't come mapped to anything and that binding is essential to use Dolphin's Gyro => IR simulation to its fullest. Since the purpose of the built-in profile is to also provide an 1:1 mapping of a real Wiimote to an emulated one, there's no free buttons left, but after messing around with different approaches, I think I found one that provides a strong balance between compromise and usefulness:

  • Recenter command gets assigned to the Home button of the real Wiimote
  • Home button of the emulated Wiimote is adjusted to only trigger after holding it for at least 200 ms

I've chosen the Home button because it's arguably the least used button when playing Wii titles and also made Recenter the default action instead of the other way around (hold to Recenter, press to open Home menu) because in that scenario (Wii Remote with MotionPlus Pointing) you'll definitely use Recenter way more than the Home menu.

I understand that what mapping is considered the "best" or the "correct" is subjective to personal preference of each user and that's also why Dolphin doesn't ship with predefined profiles for other popular controllers (Xbox, DualShock, etc.), This change to the built-in MotionPlus profile could easily be rejected based on that same reasoning, however, consider the other way around, we're shipping a built-in profile with a rather big usability issue out of the box (not being able to recenter) and I strongly think that should be addressed.

TL;DR this PR changes the behavior of the Home button on the built-in profile to trigger a Recenter with a short press and to open the Home menu with a long (> 200 ms) press of the button. To test, enable "Connect Wii Remotes to Emulated Controllers", pair a Wii Remote Plus, load the built-in "Wii Remote with MotionPlus Pointing" profile and play around with the Home button in any Wii title that requires a sensor bar (e.g. main page of the Wii System Menu)...

mbc07 avatar Jan 20 '22 07:01 mbc07

It's not exactly conventional, but it's a rather cool way to handle it. I'm not against this.

JMC47 avatar Jan 20 '22 08:01 JMC47

I don't know if I like this. "Recenter" functionality isn't even really needed with a properly configured "Total Yaw" setting which allows pointing to the left/right of the screen to adjust the center point.

jordan-woyak avatar Jan 20 '22 21:01 jordan-woyak

The key point is that you have to configure it, which kinda defeats the purpose of the built-in profile (ready to use out of the box). If you just load the profile and don't change anything else, during gameplay the cursor positioning will eventually get wrong, without a proper way to recenter it. There's also the gyro drift issue, which Wiimotes are more prone in comparison to modern controllers and their more accurate gyros, that just exacerbates the problem.

Sure, you can waggle the Wiimote around the sides of the screen until the cursor becomes centered again, but that normally won't work without adjusting Total Yaw manually (the optimal value change from game to game) and recentering that way is slower and less intuitive than just pressing a button. If you take a look at other games using gyro aiming (not just from Nintendo, from other companies as well), they all provide a quick and easy to access recenter command, most of time through a button press as well...

mbc07 avatar Jan 20 '22 21:01 mbc07

Do we want to merge this? It seems like a nifty QoL thing on the default profile.

AdmiralCurtiss avatar Apr 16 '22 02:04 AdmiralCurtiss

I think I'm on Billiard's side here. Doing this without explaining it to users will probably leave some number of users confused about why the home button isn't working.

JosJuice avatar Apr 16 '22 07:04 JosJuice

I've changed the behavior to trigger recenter by holding the Home button instead of the other way around. It makes recentering a little less instantaneous but should address the raised point of changing default behavior without clear communication to the users...

mbc07 avatar Sep 01 '22 22:09 mbc07

Wait, now the home menu always open when you hold the home button to recenter. I'll try to find another approach...

mbc07 avatar Sep 01 '22 22:09 mbc07

I messed around with various different approaches and they all ended with messy syntax (you couldn't easily figure out what was going on just by looking at the binding) and with, IMO, less intuitive behavior. So, I've reverted back to the initial approach from when I opened this PR (short press to trigger a recenter, press longer than 200ms to open Home menu).

Considering the current capabilities of Dolphin's Input System, I still think this is the best approach to address the issue of not being able to recenter with the built-in profile, and although the default Home button behavior now differs from the real peripheral, the syntax used on the binding of the Home button is short and intuitive enough (hold(`HOME`,0.2)) to figure out what it does differently with just a quick glance at the Emulated Wiimote settings...

mbc07 avatar Sep 25 '22 16:09 mbc07

Ping

mbc07 avatar Oct 15 '22 23:10 mbc07

Pinging one last time. Is there any change of this PR getting through or should I just close it and move on?

mbc07 avatar Nov 23 '22 07:11 mbc07

I still like this, for what it's worth.

Maybe make it a second profile instead if user confusion is a big concern?

AdmiralCurtiss avatar Nov 23 '22 07:11 AdmiralCurtiss

Maybe make it a second profile instead if user confusion is a big concern?

I don't see how that would improve anything. It'd probably be more confusing, like "what is different between those two profiles?" given all bindings (except one) would be identical...

mbc07 avatar Nov 23 '22 19:11 mbc07

I'd like to try to get this through one more time. What exactly is blocking this PR? Maybe is something I can address, maybe not. Although a lot has changed in Dolphin since I opened it, this PR still solves a usability problem that currently exists with the built-in "Wii Remote with MotionPlus Pointing" profile in the least intrusive way I could find...

(pinging @AdmiralCurtiss and @JMC47 as they've approved this PR at some point in the past)

mbc07 avatar Jan 24 '23 04:01 mbc07

I guess that's it. I'm done with this PR.

I've been trying to get this merged for over an year already and despite getting two different approvals, it simply doesn't go anywhere. I've asked what are the blockers to get this merged (if any) several times and nobody cares to answer, given the last actual response on this discussion (other than me pinging people) was nearly 3 months ago. So that's it, I'll take that as a "we're not interested".

The usability issue with the built-in profile that I tried to solve with this PR still remains in Dolphin to this day. I just don't feel like spending any more time or effort on this. Time to move on...

mbc07 avatar Feb 12 '23 07:02 mbc07

I think the problem was a lack of consensus on it. The Wii Remote profile doing something that it didn't do originally can make things rather confusing. Also, the home button does things anyway. It's a difficult question that goes into bigger redesigns than just this. The home button automatically recentering isn't a huge deal.

I think the biggest thing is discussing this on IRC and the Discord so we can work through things in a timely manner. There are too many Pull Requests and too many opinions. There are also future plans (real Infrared for emulated Wii Remotes?) that could get in the way.

It's hard to keep track of everything on github and I take responsibility for letting it slip through the cracks here.

JMC47 avatar Feb 12 '23 08:02 JMC47