Dolphin, the GameCube and Wii emulator - Forums

Full Version: MotionPlus Theoretical Implementation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

FoxLovesYou

As a fan of using controllers to play games on my pc, I've come across a few tricks and treats that assist in my gaming experience. Many times, I'll find a game that works well with a joystick or hat control scheme, but has more buttons necessary for combat than the controller gives me access to. For this scenario, I'll discuss implementations for MapleStory, a platform MMORPG. If you're not interested in this, skip to the tl;dr below.

MapleStory (hereby referred to MS) is a platforming MMORPG that uses 2 hands on the keyboard, and brief movement pausing to use the mouse, as movement is controlled with your right hand. Your left hand controls melee combat and basic skills with your left hand on ASDF, and extends the use of the 1-0 hotkeys. When planning a controller scheme, one would, under normal circumstances (on an xbox classic controller for reference), map Jump to A, loot to Y, Melee to B, and your main combat skill to X. You would then map your potions to Blk/Wht (former versions of LB/RB), usually on the INSERT/DELETE hotkeys. 2 support skills could be marked on 9/0 to the L/R triggers. 4 alternative skills could be mapped to the right joystick UDLR like Super Smash smash attacks on the C-stick. Great. We have 8 necessary hotkeys implemented. Now we need to include those not so frequent skills, or in the case of a priest, those team-heavy skills.

[tl;dr] Here's the trick. To map the additionally needed skills, we use instanced configs. Joy2Key allows us to temporarily swap control schemes while a button is held. We can place the R Trigger to config 2, and the L Trigger to config 3. This triplicates the usable keys as if the triggers were modifiers. By keeping the left joystick as your UDLR movement keys, everything runs smoothly. With the Wii and the MotionPlus emulation, a similar setup could be implemented for 4 axis controllers, and even better so, the 6axis ps3 controllers. These things get pretty cheap, and are pretty easy to set up various desired controls, including the tilt 6th axis.

[tl;dr;tl;dr] By initiating state configurations while using specified modifier keys via hold, or toggle activators, I could map the R3 key on my PS3 controller (right stick press) to toggle to nunchuck motion controls, allowing me to flip or tilt the controller with one hand (or unskillfully with 2), and then the L3 key (left stick press) to toggle wii-mote motion controls. Similar configuration methods could be used for additionally necessary axis controls in various scenarios. Default mapping configs would be recommended for people who want to plug-and-play to cut down on config times on popular controllers like PS3, XB360, XBONE, PS4, should be applicable for starters. Most controller software will allow players to conform their controllers to the 360 scheme if they really don't want to adjust their off-brand controllers.

[tl;dr:because you suck if you skipped everything] This post was generated in response to me being unable to play Skyward Sword after beating Ocarina of Time, and wanting something new to do.

-- EDIT --
Reading more into the physics involved with the MotionPlus, One should be able to sufficiently generate the roll/pitch using a single axis.

Controls necessary for Skyward Sword: ref - http://www.zeldainformer.com/skyward-swo...e-controls
Wiimote: A, B, 2 Axis (IR Pointing)
MotionPlus: 2 Axis (swing precision)
Nunchuck: C, Z, 2 Axis (Joystick), 2 Axis (swing)

With this in mind, I would map the IR as the left joystick, the Nunchuck Joystick as the right joystick, L3 (analog click) as MP swing toggle (or shift), and R3 as nunchuck swing toggle (or shift). I don't see a game that would need the use of either shared axis together as you couldn't get very good data from a joystick you were trying to swing. If you wanted more precise aim (not just swing, and not IR related) you can match it to the tilt axis similarly to what is already designed for the existing wiimote swing/tilt options. Not really required by zelda, but hey, we like compatibility!

Example from Skyward Sword:
Vertical Spin: Swing remote and nunchuck vertically = Click both sticks, pull down
Execute: Swing remote and nunchuck together = Click both sticks, point to center
Rolling Attack: Flick nunchuck while moving joystick = While holding right stick forward, click the stick (would cause the same result unless some bug causes joystick input to zero out, in which you simply lock input on click).

Note: swing/tilt sensors may need to be duplicated between wiimote and MP to ensure that games that average them for accuracy will be as accurate as ones that select one as the master sensor.

Overall, you would only want a checkbox to enable the MP adapter (rather than an additional extension, but put it in the extension group box) and use the existing swing/tilt controls in addition to toggle buttons for 'hot' profile swapping. Maybe add a group box with a listbox for hotswap buttons, or add to right click menu? [See Image for Example]