Skip to content

Motion Plus inside vs external: different angular rate signs #243

@lucas-m3

Description

@lucas-m3

Hi,

I've noticed that the sign of the angular rate read from motion plus is different between my wii controllers for the same rotation.

I have two wii controllers:

  • one marked MotionPlus Inside (RVL-036) and bluetooth device's name is Nintendo RVL-CNT-01-TR
  • one with external MotionPlus connected (RVL-003) and device's name is Nintendo RVL-CNT-01

For instance, if I rotate the -TR remote from pointing to TV to pointing to ceiling, I see exp.mp.rx values going up. But for the remote with external MotionPlus, values are going down for the same rotation.
The two other axes also have opposite signs. I tried on Dolphin with real remotes and on the Wii, I get the same behavior.

I didn't find much on this opposite signs subject on the net but after some investigation I found that the scale value in the motion plus calibration data could be interpreted as signed values instead of unsigned.
I've forked libogc and added some code to fetch the motion plus calibration data at 0x04A40020 and store it in a struct as mentioned here https://wiibrew.org/wiki/Wiimote/Extension_Controllers/Wii_Motion_Plus
Here are my results for fast/slow scale calibration values for my two controllers (I just use the most significant bit to extract the sign):

Image

My problem was that I needed to ask the user in my game to manually choose between two configurations depending on their controller model and I wanted to skip that step. It's not that important but I thought what I found could be useful to others :)
I also want to use the scale values to calibrate the angular rates instead of using default scales but I don't know how to use these values yet. Does anyone have any information on this ?

Anyway thanks for all the work on libogc ;)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions