Emulator Issues #1740

IR dots don't rotate

Added by rodiabloalmeida over 10 years ago.

% Done:


Operating system:
Issue type:
Relates to usability:
Relates to performance:
Relates to maintainability:
Regression start:
Fixed in:


What steps will reproduce the problem?
1. Run Trauma Center Second Opinion
2. Get to the the stage "Nurse Angie->From Overseas"
3. Try to rotate the bone pieces while holding both A and B buttons (using
emulated wiimote)

What is the expected output? What do you see instead?
expected: the bone pieces to be rotated
see instead: the bones doesn't rotate

What version of the product are you using? On what operating system?
Latest version on WinXP or Vista, but it doesn't matter. This function
never worked anyway and I think I discovered why. Not a big deal. More info

Please provide any additional information below.

I'm not a programmer but I'm good with logic. I've been looking in
dolphin's code, in the EmuDynamics.cpp of Plugin_Wiimote's source hoping to
find out what is wrong when you twist the emulated wiimote pointed to
screen and the bones never rotate. And I discovered the section "IR data

So after reading some code, I figured out there are 2 dots like in the real
hardware (4 coordinates been 2 for x and 2 for y, I guess) and it seems the
dots are always reordered based on it's x-values. And then there is this
part (line 417):

/* For the emulated Wiimote the y distance is always zero so then the
distance is the simple distance between the x dots, i.e. the sensor bar
width */

So correct me if I'm wrong, but if y-distance is always zero, there is no
rotation of the wiimote IR sensor at all but only the accelerometer does
rotation. And if my assumption is correct, so to be able to twist/rotate
the bone pieces, there must be a distance between y dots to
detect/calculate rotation. In the real hardware, there is a IR camera-like
inside the wiimote, I think (based on sensor calibration observation).

Like I said, I'm not a programmer but my suggestion is: modify the code so
when emulated wiimote twist/rotate while pointed to the screen, the IR
twists/rotates too based in it's x and y axis, and not just x.

If I said a lot of bullshit above and the code modification is not possible
by some reason, I apologize.

Thanks for your hard work, Dolphin DEV Team o/


#1 Updated by ayuanx over 10 years ago

Although I don't have this game but from your description I think you just have to
use roll (set max to 90 degrees or so) on an analog stick.

It doesn't look like an IR problem.

#2 Updated by rodiabloalmeida over 10 years ago

Roll doesn't work, anyuanx. I've already tried that loooooong time ago. This is a
very old issue. I just decided to report it now, but its been there for ages.

#3 Updated by ayuanx over 10 years ago

So what movements were you supposed to perform on that bone-rotation? I mean with a
real wiimote.

From your description, you said you just needed to "hold A & B"? That's all?
I think you have to some special movement like roll left 45 degrees or so, don't you?

#4 Updated by rodiabloalmeida over 10 years ago

You have to point the wiimote to the screen, grab the bones by holding A and B
buttons (like a tweezer) and twist it like a door knob. Doing this, the bone rotates
like a clock pointer to the left or to the right. Here is a video showing what I mean.

btw, did you read my whole explanation and the .cpp code also?

Thanks for trying to help on this. ^

#5 Updated by ayuanx over 10 years ago

Yes, I did read your explanation and the code, and I stll think it has nothing to do
with IR. You just have to try "roll" with an appropriate degree like 60, and you have
to do this on an analog stick.

#6 Updated by rodiabloalmeida over 10 years ago

Of course it has to be with an analog stick. What I've been trying to say is that
this issue is as old as dolphin's wii emulation. I test dolphin since r27, ayuanx.
Doing "roll" with an analog stick does nothing with the bones because "roll" only
affects the acelerometer of the wiimote, but not the IR camera-sensor-whatever. If
only you had the game to test it...

btw, when you calibrate the wiimote on the real hardware, there are 2 dots on the tv
screen, and you can rotate then and zoom then. Most games don't use this, but uses
the accelerometer as reference instead. I hope I made this clear now ;)

#7 Updated by ayuanx over 10 years ago

Well, Could you have a test on this?

  1. Apply this patch
  2. Bind Tilt & Swing to Analog Stick
  3. Set Roll L/R to 90 degrees, set Pitch U/D to Free Swing
  4. Do that twist thing while pressing analog stick to left or right

#8 Updated by ayuanx over 10 years ago

Forget about the patch in step 1, just update to r4657 which already contains this patch.

#9 Updated by rodiabloalmeida over 10 years ago

Here is some feedback, ayuanx.

First of all, I just realized that you don't have to own Trauma Center SO to test
this thing. You can just load any wii game and press the HOME button to test the
rotation by looking at the little hand on the screen.

After some testing, I can confirm that if you set the roll to 90ยบ, bind it to an
analog stick, set pitch to freeswing and try to rotate the IR dots, the result is the
described at the picture above:

You're almost there, ayuanx. Thanks very much for trying to solve this old issue.

#10 Updated by ayuanx over 10 years ago

rodiabloalmeida, I need you to do some tests with a Real Wiimote.

With a real wiimote, in the home menu, when you roll the real wiimote to left/right,
what will happen to the hand cursor on screen? Does its coordination change in this

I mean can you make the hand cursor rotate while maintaining its coordination on the

I suspect that you can't rotate the hand cursor without changing its coordination,
unless the hand cursor lies right in the center of the screen, is it so?

#11 Updated by rodiabloalmeida over 10 years ago

I can not do this test you are asking me to do until February 2010 because when my
nephew goes to school vacation, I usually borrow my Wii for him and he lives in
another city. But I can almost assure you that when you rotate the wiimote, the hand
rotates together and you can even move the pointer around the screen with the hand
rotated without losing control of it. I mean, the hand follows the IR position on the
screen (the spot you're pointing the wiimote to) and can do this with the hand in any
position ( the hand's finger ponting to the bottom of the screen, pointing to the
left, to the right or whatever direction you points the hand's finger to).

#12 Updated by rodiabloalmeida over 10 years ago

It's just like that red laser pointers used in slide presentations, but with a shape
of a hand instead of just a red circle dot. The behavior is the same.

#13 Updated by ayuanx over 10 years ago

  • Status changed from New to Fixed

Thank you for your clarification. Now Fixed in r4659.

Also available in: Atom PDF