Cap'n Arbyte's


Local interest

Other sites


How to Control Samba de Amigo (Wii)

Samba de Amigo was released for the Wii about a week and a half ago. I had played this game on a friend's Sega Dreamcast system, and we thought this game would be a natural port to the Wii, where it could use the motion sensitive Wii Remote instead of an expensive custom controller.

I bought the game. I played it. I had some trouble with the controls. I looked around online and discovered that a lot of people have had trouble with the controls. In fact, the most common complaint is that the game doesn't control very well. I found some well-intentioned recommendations online but they didn't help me very much.

Then I stated experimenting, and I've figured it out. The controls are actually excellent, perhaps better than on the Dreamcast, but only if you use the proper technique when playing.

The trick is to think like an accelerometer. Samba de Amigo does not use the IR-emitting Wii Sensor Bar during gameplay. It uses the accelerometers in the Wii Remote (or Nunchuk). First of all, the game does not know how high you're holding your hands. It determines whether you're aiming at the upper, middle, or lower targets purely on the pitch of the controller. (You can hold the controller at your knees, but point it straight up, and the game will register that as aiming at the upper targets.)

For cross-overs — using your left hand to aim at the targets on the right side, or vice versa — the yaw and roll are also used. In the calibration screen you're taught to do a cross-over to the middle target by holding both controllers on their sides (pointing both left or both right) with their tops facing your body. (By "top" I mean the side of the Wii Remote with buttons on it, not the "front" that houses the IR receiver.) The calibration screen doesn't teach you how to cross-over to the upper or lower targets. It should, because this isn't as intuitive. For the upper target, do exactly like the middle target but hold the controller at a 45° angle instead of horizontally. For the lower target, you again want the 45° angle, but you need to rotate the controller so its top points away from your body rather than toward it. (This makes sense: for the middle target you point the controllers at the television, with tops toward the ceiling. When you drop your arms to point down at the lower targets, the buttons face away from you, not toward you.)

After figuring how how to reliably hit all six targets with either hand, I was able to progress farther in the game, but often had trouble when switching rapidly between the high and low targets. Especially when moving from low to high, my shake was often not recognized. I noticed that when the movement was slower, or if I had time to let the controller "rest" at its new position before I needed to shake, things worked better. But on some songs there just isn't enough time to do that!

I put on my engineer's hat, thought about how the system works, and realized that the way I shake the controllers was part of the problem. In addition to positioning the controllers correctly, you also need to shake them correctly.

The insight came when I thought about letting the controller "rest" at its new position before the game shows the white circle at that target. If I swung the controller from low to high, it took a moment before the game realized I was holding the controller up. The programming difficulty here is that the game knows the controller's pitch only due to the acceleration of gravity. If I'm moving the controller with my hands, the influence of gravity is being overwhelmed by the influence of my hands — hence the game not recognizing a new pitch until I stop my hands for a moment and let the accelerometers report what gravity alone is doing to them.

In order for the game to know that I'm pointing "up" when I shake the controllers, I need to shake in an upward direction. I had been tilting the controllers up but then shaking by pushing forward, toward the television. No! Bad! The correct method is to shake by thrusting straight up, toward the ceiling. That motion makes the acceleration of the shake in exactly the same direction as the acceleration of gravity when the controller is aimed up, so the game interprets this as a shake on the upper target. With this, I could reliably hit in the upper targets, no matter what position I was moving from. For the middle targets I shake out, horizontally away from my body. (I probably ought to be shaking forward, not to my sides, but the middle targets seem to be the most forgiving.) For the lower targets I shake down, toward the floor.

To make this as effective as possible, I had to adjust my positioning. The game will recognize that you're aiming for the upper or lower targets with just a 45° pitch, but I needed to position the controllers at a 90° pitch so that my shaking up or down would be directly along the axis of the controller, rather than at an angle. (However, it should also work to keep the 45° angle if you shake out along that same angle. The key is to shake along the axis of the controller.)

I've found that this method of playing is a lot more tiring than what I had been doing before, and certainly more tiring than some of the advice I had read online (like "don't move your arms at all, just tilt the controller.") But this method of playing is a lot more fun! The forceful and energetic motions make the game more immersive. And naturally, they make the game more fun because they work.

I wish that the game's instruction manual included information like this. Clearly, a lot of people have had trouble with the control scheme. It does work, but it's not fully intuitive, and does benefit from being explained in detail.

(Yes, I have completed the superhard difficulty level in career mode. When controlling the game properly, this isn't superhard after all.)

Warning: mysql_pconnect(): The server requested authentication method unknown to the client [mysql_old_password] in /home/kmarkley/scripts/arrcom.php on line 47

Warning: mysql_pconnect(): The server requested authentication method unknown to the client in /home/kmarkley/scripts/arrcom.php on line 47
Tiny Island