Hacking New Classic Controller Hacks

  • Thread starter Thread starter Vague Rant
  • Start date Start date
  • Views Views 252,351
  • Replies Replies 690
  • Likes Likes 42
Hey, I was just curious and wanted to ask, has the code for Pikmin 2 been completed yet?
I think we got decently far but it was never completed. The problem is there’s some issues with the nunchuk in menus I believe

I’ll try and find it
Post automatically merged:

$Classic Controller Support V 0.4 WIP [New Play Control! Pikmin 2 USA] [Proboscis-2, Awesome]

C218DD5C 00000023
901F0068 811F0060
48000061 80DF0000
7D083378 911F0000
7D0840F8 80DF0008
7CC84038 911F0008
811F0064 4800003D
80DF0004 7D083378
911F0004 71060040
41820010 38C00002
98DF005E 480000C4
71060080 418200BC
88DF005E 68C60002
98DF005E 480000AC
38E00000 71060800
41820008 60E78000
71060200 41820008
60E70008 71060004
41820008 60E70002
71060010 41820008
60E70800 71061000
41820008 60E70004
71060040 41820008
60E70400 71060020
41820008 60E71000
71060001 41820008
60E70200 71064000
41820008 60E70180
71062000 41820008
60E70004 71060080
41820008 60E72000
71060400 41820008
60E70090 71060008
41820008 60E74000
7CE83B78 4E800020
60000000 00000000
c24fd120 00000003
2C000001 4182000C
C0230104 48000008
C0230074 00000000
c24fd13c 00000003
2C000001 4182000C
C0230108 48000008
C0230078 00000000
C24dbd28 00000003
2C000002 40820008
38000001 2c000001
60000000 00000000
C24dbc18 00000003
2C000002 40820008
38000001 2c000001
60000000 00000000
C20098c4 00000003
2C000002 40820008
38000001 2c000001
60000000 00000000
c24dbcf0 00000003
2C000002 40820008
38000001 2c000001
60000000 00000000
c24dbbe8 00000003
2C000002 40820008
38000001 2c000001
60000000 00000000
c200972c 00000003
2C000002 40820008
38000001 2c000001
60000000 00000000
C218C764 00000029
90010024 2C040000
4082013C 8803005C
2C000002 40820130
48000021 80193BA4
3FAAAAAB 3C54FDF4
00000000 00000000
3DCCCCCD 3F800000
7CA802A6 90A1000C
5727083C 38E7000C
C0030074 FC000210
C0230078 FC200A10
C083006C FC802210
C0A30070 FCA02A10
FC00082A FC84282A
FC00202A C0450014
FC001040 4180000C
38C0012C 48000014
7CC53AAE 28060000
408100B4 38C6FFFF
7CC53B2E 38C00002
98C3005E 81850000
7D8803A6 4E800021
2C030001 7FE3FB78
80A1000C C0450004
40820008 EC4200B2
C0650008 C0030020
C0230074 C083006C
FC21202A FC211024
48000039 D0030020
C0030024 C0230078
FC200850 C0830070
FC802050 FC21202A
48000019 D0030024
80010024 7C0803A6
38210020 4E800020
FC0100FA C0250018
FC000800 4180000C
FC000890 48000014
FC200850 FC000800
41810008 FC000890
4E800020 00000000
0401215c 60000000
Changes:
Remapped controls a little (NOT COMPLETE)
Added IR support on right stick
 
I'm trying to play Metroid: Other M with the patched Redux version and using the Wiimote + Nunchuk trick, but I'm having trouble firing missiles in first person. At the beginning of the game, I have to shoot a target to open a door, but no matter how many times I press the fire button, it doesn't work. I can fire in third person, but not first. What am I doing wrong? :unsure:
 
I'm trying to play Metroid: Other M with the patched Redux version and using the Wiimote + Nunchuk trick, but I'm having trouble firing missiles in first person. At the beginning of the game, I have to shoot a target to open a door, but no matter how many times I press the fire button, it doesn't work. I can fire in third person, but not first. What am I doing wrong? :unsure:
Puh it's been a long time since I have played the redux version. Iirc try Nunchuck Z and Wiimote B for the missiles. It should work in first and third person.
 
It doesn't work :( it only fires its normal attack but not missiles :unsure:
I had that happen to me a few times, I'm not sure what could be the cause, but I would recommend you check your emulator controller settings and make sure that no buttons are assigned to other controller layouts.
For example, I'd recommend only using one of the several controller methods, be it only Wiimote, only Wiimote+Nunchuck or only Classic Controller.
Sometimes restarting the game altogether does fix it, but I think it boils down to controller config.
 
  • Like
Reactions: elenarguez
I think I've fixed it! :lol:

I forgot to mention that I'm playing it on Dolphin and using the mouse as the pointer Apparently, when I lock onto the target and don't point the mouse cursor at the specific target, it doesn't launch missiles, which is why it wasn't firing. I had to center the mouse right where the Wii Remote cursor is pointing so that it could fire missiles.
So thanks anyway for your help :shy:
 
Hi,

Thanks for your excellent codes. Kirby's Epic Yarn works perfectly! However, I'm having trouble with DeBlob 2: I can start the game without any problems, but the tutorial tells me to center the camera with "C". In your instructions, you mentioned you mapped "C" to "L". But no matter which key I press, it doesn't work. The problem exists with both the European and US versions. I'm using Dolphin on the Steam Deck via Retrodeck. Any ideas?

Happy Holidays!
 
Hi,

Thanks for your excellent codes. Kirby's Epic Yarn works perfectly! However, I'm having trouble with DeBlob 2: I can start the game without any problems, but the tutorial tells me to center the camera with "C". In your instructions, you mentioned you mapped "C" to "L". But no matter which key I press, it doesn't work. The problem exists with both the European and US versions. I'm using Dolphin on the Steam Deck via Retrodeck. Any ideas?

Happy Holidays!
Try this:
change the line
60C64000 71000200
to
60C64000 71002000

Then it should be on the L button.
 
Try this:
change the line
60C64000 71000200
to
60C64000 71002000

Then it should be on the L button.
Thank you for the quick reply.

Unfortunately, it's not working. Just to clarify: The Steam Deck controller layout is the same as the Xbox one.

By "L-Button," do you mean the left stick (LS) or the left trigger (left shoulder button)? Unfortunately, none of the options work. I've tested both the US version (English/French) and the European version. Is there perhaps another free button that we could assign?
All the best!
 
Thank you for the quick reply.

Unfortunately, it's not working. Just to clarify: The Steam Deck controller layout is the same as the Xbox one.

By "L-Button," do you mean the left stick (LS) or the left trigger (left shoulder button)? Unfortunately, none of the options work. I've tested both the US version (English/French) and the European version. Is there perhaps another free button that we could assign?
All the best!
L is the shoulder button. But in dolphin you can assign any button to your liking. Just go into the controller configuration setup and assign the L shoulder button of the wii classic controller to any button of your steam deck which is still free.
 
Hi there, been a while

Are there any new patches coming soon?
Nope

Vague just left unfortunately and I had a hard demotivation so I barely know how to do it anymore

It’s unfortunate since there were some unfinished mods like Mario Sluggers and whatever

The last we know is Felix tried to reach out in GitHub about the whole documentation thing but never got a response
 
  • Like
Reactions: TonyNESgri
Many Wii games required the use of the Wiimote (or Nunchuk), while not including support for the other major Wii input device, the Classic Controller. Some games benefited from these specialized controls, while others didn't. Listed below are several Classic Controller hacks for games that seemed like they could benefit from some more flexibility in their controller options. I don't claim that all of these are improvements over their official control schemes, as the sensitivity of accelerometer input and immediacy of infra-red cannot always be replicated well on a traditional controller.

If you need to patch these hacks directly into your disc image (e.g. for Wii VC injection on the Wii U), you can use:
If you'd like to see these and other CC hacks sorted into a handy color-coded list, with additional notes on compatibility or other miscellaneous features, you're in luck! Many thanks to pearlfect for putting in the work to make this excellent spreadsheet:

Classic Controller Hacks​

Disc:
WiiWare:



Little King's Story is a cult hit RTS/city builder/life sim/RPG from the creator of Harvest Moon/Story of Seasons, Yasuhiro Wada. It was originally released on the Wii, is currently available on Steam and briefly had a reimagined PS Vita release, which has since been delisted. In the game, you play as a child (canonically named Corobo, but chosen by the player) who comes to rule over a tiny kingdom. Tasked with expanding your empire, the moment-to-moment gameplay is somewhat reminiscent of Pikmin, with Corobo being almost powerless on his own and "Charging" recruits at different tasks (tossing them at the target like Olimar). The Wii release has no motion or pointer controls whatsoever, but can only be played with the Wii Remote and Nunchuk. This made it a good candidate for a Classic Controller hack, which you can find in the spoiler below.

USAEuropeJapan

  1. Code:
    Classic Controller Support [Vague Rant, crediar]
    04060E74 60000000
    04078FA4 28000002
    04079550 28000002
    04079558 C0230178
    04079580 28000002
    04079588 C023017C
    C242A1B4 00000029
    7C0802A6 80BF0060
    48000041 809F0000
    7CA52378 90BF0000
    80BF0064 4800002D
    809F0004 7CA52378
    90BF0004 80BF0068
    48000019 809F0008
    7CA52378 90BF0008
    7C0803A6 4E800020
    38C00000 70A40800
    2C040000 41820008
    60C68000 70A40001
    2C040000 41820008
    60C60008 70A44000
    2C040000 41820008
    60C60004 70A40002
    2C040000 41820008
    60C60001 70A48000
    2C040000 41820008
    60C60002 70A40010
    2C040000 41820008
    60C60800 70A40040
    2C040000 41820008
    60C60400 70A40008
    2C040000 41820008
    60C60004 70A40020
    2C040000 41820008
    60C64000 70A42000
    2C040000 41820008
    60C60001 70A40200
    2C040000 41820008
    60C60002 70A40080
    2C040000 41820008
    60C62000 70A40004
    2C040000 41820008
    60C60008 70A40400
    2C040000 41820008
    60C60010 70A41000
    2C040000 41820008
    60C60300 7CC53378
    4E800020 00000000
  2. Code:
    Classic Controller Support [Vague Rant, crediar]
    04060B3C 60000000
    0407837C 28000002
    04078928 28000002
    04078930 C0230178
    04078958 28000002
    04078960 C023017C
    C2428858 00000029
    7C0802A6 80BF0060
    48000041 809F0000
    7CA52378 90BF0000
    80BF0064 4800002D
    809F0004 7CA52378
    90BF0004 80BF0068
    48000019 809F0008
    7CA52378 90BF0008
    7C0803A6 4E800020
    38C00000 70A40800
    2C040000 41820008
    60C68000 70A40001
    2C040000 41820008
    60C60008 70A44000
    2C040000 41820008
    60C60004 70A40002
    2C040000 41820008
    60C60001 70A48000
    2C040000 41820008
    60C60002 70A40010
    2C040000 41820008
    60C60800 70A40040
    2C040000 41820008
    60C60400 70A40008
    2C040000 41820008
    60C60004 70A40020
    2C040000 41820008
    60C64000 70A42000
    2C040000 41820008
    60C60001 70A40200
    2C040000 41820008
    60C60002 70A40080
    2C040000 41820008
    60C62000 70A40004
    2C040000 41820008
    60C60008 70A40400
    2C040000 41820008
    60C60010 70A41000
    2C040000 41820008
    60C60300 7CC53378
    4E800020 00000000
  3. Code:
    Classic Controller Support [Vague Rant, crediar]
    04060CB0 60000000
    04078F98 28000002
    04079544 28000002
    0407954C C0230178
    04079574 28000002
    0407957C C023017C
    C2429B74 00000029
    7C0802A6 80BF0060
    48000041 809F0000
    7CA52378 90BF0000
    80BF0064 4800002D
    809F0004 7CA52378
    90BF0004 80BF0068
    48000019 809F0008
    7CA52378 90BF0008
    7C0803A6 4E800020
    38C00000 70A40800
    2C040000 41820008
    60C68000 70A40001
    2C040000 41820008
    60C60008 70A44000
    2C040000 41820008
    60C60004 70A40002
    2C040000 41820008
    60C60001 70A48000
    2C040000 41820008
    60C60002 70A40010
    2C040000 41820008
    60C60800 70A40040
    2C040000 41820008
    60C60400 70A40008
    2C040000 41820008
    60C60004 70A40020
    2C040000 41820008
    60C64000 70A42000
    2C040000 41820008
    60C60001 70A40200
    2C040000 41820008
    60C60002 70A40080
    2C040000 41820008
    60C62000 70A40004
    2C040000 41820008
    60C60008 70A40400
    2C040000 41820008
    60C60010 70A41000
    2C040000 41820008
    60C60300 7CC53378
    4E800020 00000000

Button (Re-)Mapping​

The button mapping used here is a combination of common sense, the Steam version button layout and advice from Deadweight in the Little King's Story community. That said, the code is relatively easy to customize if you want to use a different layout. First off, here's our layout as set up in the above codes:

[TABLE=full]
[TR]
[th]Wii Remote/Nunchuk[/th][th]Classic Controller[/th][th]Game Function[/th]
[/TR]
[TR]
[td]Home[/td][td]Home
Classic Controller analog stick is not supported in the Home Button Menu, you will need to use a Wii Remote to quit[/td][td]Open/Close Home Button Menu[/td]
[/TR]
[TR]
[td]D-Pad Up[/td][td]D-Pad Up
ZR[/td][td]Change Formation[/td]
[/TR]
[TR]
[td]D-Pad Down[/td][td]D-Pad Down
X[/td][td]Change Rank (party order, i.e. selected job type)[/td]
[/TR]
[TR]
[td]D-Pad Left/Right[/td][td]D-Pad Left/Right
L/R[/td][td]Camera Rotation[/td]
[/TR]
[TR]
[td]Wiimote A[/td][td]A[/td][td]Confirm/Action/Charge[/td]
[/TR]
[TR]
[td]Wiimote B[/td][td]B[/td][td]Cancel
Recruit (town)
Call Back (field)[/td]
[/TR]
[TR]
[td]Nunchuk C[/td][td]Y[/td][td]Zoom Camera (town)
Scepter Attack (field)[/td]
[/TR]
[TR]
[td]Nunchuk Z[/td][td]ZL[/td][td]Target[/td]
[/TR]
[TR]
[td]Plus/Minus[/td][td]Plus[/td][td]Open/Close Field Menu[/td]
[/TR]
[TR]
[td]Wiimote 1
Wiimote 2[/td][td]Minus[/td][td]Dismiss Party (town)
Return to Castle (field)[/td]
[/TR]
[/TABLE]


If you prefer the D-Pad, you can use that to access its original functions (and to navigate menus), but its functions have all been mirrored to the face and shoulder buttons, which is closer to how the original control scheme has you mostly using the action buttons with your right hand. The most contentious change is that the Nunchuk C button has moved to the Y face button. This is how Corobo attacks and feels better with the other action buttons than it does up on the Nunchuk-equivalent L-button. Realistically, the original devs put it on C because that's the only other button you really have access to in the Wiimote and Nunchuk layout. The base game already does a lot of re-using buttons for different functions depending on whether you're in town or the field, and this hack added one more with the Wiimote 1/2 Dismiss (town)/Return (field) buttons being combined into Classic Controller Minus. It feels pretty intuitive combining these since they're both cancel/quit type inputs which are out of the way so you don't accidentally press them.

If you want to change any of these mappings, you'll need to edit the end section of the code. Here it is again with labels for the buttons from the above scheme:
Code:
   |  Wii Output |     xxxx     xxxx | Classic Input
------------------------------------------------------
 1 |             |          70A40800 | Home
 2 |             | 2C040000 41820008 |
 3 |        Home | 60C68000 70A40001 | D-Pad Up
 4 |             | 2C040000 41820008 |
 5 |    D-Pad Up | 60C60008 70A44000 | D-Pad Down
 6 |             | 2C040000 41820008 |
 7 |  D-Pad Down | 60C60004 70A40002 | D-Pad Left
 8 |             | 2C040000 41820008 |
 9 |  D-Pad Left | 60C60001 70A48000 | D-Pad Right
10 |             | 2C040000 41820008 |
11 | D-Pad Right | 60C60002 70A40010 | A
12 |             | 2C040000 41820008 |
13 |           A | 60C60800 70A40040 | B
14 |             | 2C040000 41820008 |
15 |           B | 60C60400 70A40008 | X
16 |             | 2C040000 41820008 |
17 |  D-Pad Down | 60C60004 70A40020 | Y
18 |             | 2C040000 41820008 |
19 |           C | 60C64000 70A42000 | L
20 |             | 2C040000 41820008 |
21 |  D-Pad Left | 60C60001 70A40200 | R
22 |             | 2C040000 41820008 |
23 | D-Pad Right | 60C60002 70A40080 | ZL
24 |             | 2C040000 41820008 |
25 |           Z | 60C62000 70A40004 | ZR
26 |             | 2C040000 41820008 |
27 |    D-Pad Up | 60C60008 70A40400 | Plus
28 |             | 2C040000 41820008 |
29 |        Plus | 60C60010 70A41000 | Minus
30 |             | 2C040000 41820008 |
31 |         1+2 | 60C60300 00000000 |

I know it's a bit lopsided and confusing to look at, but each button value on the right side triggers the next button down on the left side. Just look at the first mapping, where Classic Controller 0800 Home on line 1 (right) triggers Wiimote 8000 Home on line 3 (left), to get a feel for how it works. Personally, I'd suggest changing the left column if you want to customize this layout, keeping the Classic Controller inputs in their default order. Otherwise, it gets confusing really fast.

Each button is a four digit value. Here's a table of the button values you can substitute in to customize your mapping.
[TABLE=full]
[TR]
[th]Wii Remote/Nunchuk[/th][th]Classic Controller[/th]
[/TR]
[TR]
[td]0001 D-Pad Left
0002 D-Pad Right
0004 D-Pad Down
0008 D-Pad Up
0010 +
0020 // no button
0040 // no button
0080 // no button
0100 2
0200 1
0400 B
0800 A
1000 -
2000 Z
4000 C
8000 Home[/td][td]0001 D-Pad Up
0002 D-Pad Left
0004 ZR
0008 X
0010 A
0020 Y
0040 B
0080 ZL
0100 // no button
0200 R
0400 +
0800 // no button
1000 -
2000 L
4000 D-Pad Down
8000 D-Pad Right[/td]
[/TR]
[/TABLE]

General Notes​

Just stuff you might want to know about the hack and underlying game.
  • this is specifically a hack of the way Little King's Story handles Nunchuk inputs; it can't really be generalized to other games (barring perhaps other games on the same engine, assuming they exist)
  • this code breaks the original Nunchuk input; turn off the code if you want to go back to playing with the original controls
  • sorry, I don't have the slightest idea how to map camera rotation to the right stick
  • has also been tested and works on Wii U as a Wii VC injection with Classic Controller emulation, for semi-portable play
  • if you have the choice, you should probably play the USA or Japan versions, which came out after the European game and include extra content and 60 Hz support
  • fans regard the Steam and Vita versions as inferior to the original Wii release

Technical Notes​

Slightly nerdier stuff. The code is basically made up of 4 main parts. The first three are King-specific while the last can basically be ported to other games as long as you can figure out the rest yourself.
  • the first line patches out the code which determines that the Classic Controller is not an acceptable extension
  • the second line tells the game that it should accept Nunchuk button values when they're "pressed" by a Classic Controller (extension type 2)
  • the next four lines again tell the game to use extension 2 and force it to read the Classic Controller left analog offset instead of the Nunchuk when reading the joystick X/Y values
  • the remainder is crediar's original button remapping hack which injects into the SDK read_kpad_acc() function; it reads the CC button values then translates and injects them into the Wiimote/Nunchuk button field

Credits​

  • DeadweightLKS, the world's #1 Little King's Story expert, for advising on the ideal button layout
  • crediar: creating the original Classic Controller hacks for sideways Wii Remote games, in particular Kirby's Return to Dream Land
  • Vague Rant: hacking Nunchuk inputs (C, Z and the analog stick) and disabling "wrong extension" error
Does anyone know if this would work with bully scholarship edition
 
Is it normal for the pointer to stop working?, I did Mario Strikers and at the beginning started working great anything with the pointer was going well but then it just stays in the center any time I restart the game and never works again.
 
@Vague Rant The Mario Kart Wii MK8 Style Controls Gecko code seems to be crashing Mario Kart Wii Deluxe X. Is there any to modify this code to work with this new mod? The game crashes after the initial splash screen for me with the code enabled.
 
It is possible to patch a WiiWare game?,
FFCC: My Life as a Darklord. It is implemented for horizontal use.
 

Site & Scene News

Popular threads in this forum