Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WiimoteEmu: Increase camera FOV to match that of a real Wii remote. #9106

Merged
merged 5 commits into from Sep 28, 2020

Conversation

jordan-woyak
Copy link
Member

I've measured the field of view of Nintendo Wii Remote IR cameras (original and "MotionPlus Inside") using the known distance of a sensor bar with LEDs of known separation and trigonometry!

It comes out at 42 degrees horizontally by 31.5 vertically.
This is an increase from the 33 by 23 guess we took from Wiibrew.

Increasing the FOV on the emulated camera makes IMUPointer's simulated sensor bar pointing noticeably less sensitive.
Many users complained it was too sensitive. Gyro pointing should more closely match IR pointing now.

We could potentially expose the FOV as an adjustable setting.
Even though it shouldn't ever change it would allow adjusting the sensitivity of gyro pointing.

Point's "Total Yaw" and "Total Pitch" settings must be increased to compensate for the higher FOV to produce similar behavior in game.
I've adjusted the defaults a bit more than just FOV compensation so screen edges in the Wii Menu can now be reached by default.

I've made the "Total Yaw" default of IMUPointer match.
I've removed the line from our included Wii remote profile to take on the default value.

I've added an "IR Distance" input to ControllerInterface's Wii Remote device which performs a sensor bar distance calculation using math.

Merging this can close #8631.

@jordan-woyak jordan-woyak changed the title Wm distance WiimoteEmu: Increase camera FOV to match that of a real Wii remote. Sep 22, 2020
Copy link
Contributor

@iwubcode iwubcode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

I tested a number of Wii games with pointer controls using the built-in profile that was recently merged:

  • Boom Blox
  • Bully Scholarship Edition
  • Epic Mickey
  • Final Fantasy Crystal Bearers
  • Link's Crossbow Training
  • Lost Winds
  • Mini Ninjas
  • Red Steel
  • Silent Hill Shattered Memories
  • Trauma Center: Second Opinion

The only one that couldn't get to the edge of the screen was Mini Ninjas.

This was my first time testing Crossbow Training with an actual Wiimote. I found it difficult to interact precisely. I don't think this review changed that but wanted to mention it.

@JMC47
Copy link
Contributor

JMC47 commented Sep 24, 2020

My only worry is that people with existing controller profiles on the old FOV will need to update things, but that's not really a huge deal. We'll just have to mention this in the progress report.

Copy link
Contributor

@Techjar Techjar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code looks sensible to me (besides the thing lioncash already pointed out). Tested it and gyro IR feels much better (less sensitive) with the larger FOV. Once that comment is dealt with, seems good to merge.

…for new FOV and to reach screen edges in the Wii Menu.
…ch that of regular "Point" settings.

Removed "Total Yaw" from included Wii remote input profile to take on the default value.
@jordan-woyak jordan-woyak merged commit 3655243 into dolphin-emu:master Sep 28, 2020
10 checks passed
@jordan-woyak jordan-woyak deleted the wm-distance branch September 28, 2020 23:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
5 participants