Hacking New Classic Controller Hacks

  • Thread starter Thread starter Vague Rant
  • Start date Start date
  • Views Views 244,600
  • Replies Replies 687
  • Likes Likes 42
Thats honestly an interesting idea. It would probably be a low priority from Vague since of course you can use Nintendont for CC support in GCN games, but I might consider giving it a look. It depends though
Post automatically merged:

@Riot20052 I currently dont own any of those games, so any idea which one I should attempt first if I do end up looking at it, and buying it?
No used patch on Dophin emulator on odin 2 pro itself that end useing.
Post automatically merged:

Thats honestly an interesting idea. It would probably be a low priority from Vague since of course you can use Nintendont for CC support in GCN games, but I might consider giving it a look. It depends though
Post automatically merged:

@Riot20052 I currently dont own any of those games, so any idea which one I should attempt first if I do end up looking at it, and buying it?
Click and Pikmin 2 wii had higher reviews and both games about some cost said around $22 on ebay for it.
 
Last edited by Riot20052,
  • Like
Reactions: awesomeee
I think Paper Mario has some unhacked revisions. Paper Mario had soo many revisions so Vague Rant only did a few.

As for the Tom Clancy one, that seems pretty complicated. I see some of the motion controls involve Twisting the Nunchuk and even Flicking it. Nunchuk accelerometer implementation is by far the most confusing part of these hacks.

I also see it has a GCN version released, so it would probably be a pretty low priority, unless the Wii version has anything special to it.

You can already play GCN games with Nintendont in widescreen and is Very good in general. You can even use Gamepad controls via Nintendont.
He only did the latest revision for each region of Super Paper Mario and said if you give me a compelling reason to also make codes for prior ones I would.

And for Double Agent I assumed it would be possible to map Nunchuck twisting and flicking to the Classic Controller provided there are enough buttons, if he could give it a try why not. (I own the Wii version and it seems to be more common than the GC one)
 
He only did the latest revision for each region of Super Paper Mario and said if you give me a compelling reason to also make codes for prior ones I would.
Ah okay

And for Double Agent I assumed it would be possible to map Nunchuck twisting and flicking to the Classic Controller provided there are enough buttons, if he could give it a try why not. (I own the Wii version and it seems to be more common than the GC one)
The thing is, implementing this would probably be unfathomably hard. There are enough buttons probably BUT Vague only knows how to trigger a basic waggle not any complicated motion like that

As for the GCN / Wii version, I 100% understand the whole Wii games being more common BUT the point still stands about the whole GCN with widescreen being Very good. Vague Rant will (probably) say the same BUT we will have to wait for a definitive answer
 
Last edited by awesomeee,
Do you know what file on the Despicable Me disc has the unstripped .ELF binary? Im going to look at it for some general knowledge, but im not sure where it is located.

EDIT: Found a file game.elf How do i load it into the debugging UI?
Post automatically merged:

@Vague Rant So, it turns out that some Wii Games actually also expect IR Pointer to be moving as well so it knows it is shaking! Maybe that explains some issues.

The thread can be found here: https://dolphin-emu.org/blog/2019/04/26/mastering-motion/
 
Last edited by awesomeee,
(why is this game even getting a hack)
1739326791073.jpeg

WarioWare D.I.Y (Showcase) was a cool game that let you play custom wario games. Yippee

This hack isnt entirely pointless, it does let you have more precision over the pointer in some cases lol

Classic Controller Support (Awesome, Vague Rant)

C2053158 00000029
90010024 2C040000
4082013C 8803005C
2C000002 40820130
48000021 8003BD30
3FAAAAAB 3C75C28F
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
C2052164 00000019
2C040002 408200B8
71090800 41820008
60C68000 71090001
41820008 60C60002
71094000 41820008
60C60001 71090002
41820008 60C60008
71098000 41820008
60C60004 71090010
41820008 60C60800
71090040 41820008
60C60400 71090008
41820008 60C60100
71090020 41820008
60C60200 71092000
41820008 60C60800
71090200 41820008
60C60800 71090080
41820008 60C60800
71090004 41820008
60C60800 71090400
41820008 60C60010
71091000 41820008
60C61000 70C99FFF
60000000 00000000
 
  • Like
  • Love
Reactions: MDLG01 and albarapa
I just discovered this thread and now I'm dreaming about a Zelda Skyward Sword classic controller hack !
Keep up the good work guys :grog:
 
I just discovered this thread and now I'm dreaming about a Zelda Skyward Sword classic controller hack !
Keep up the good work guys :grog:
Skyward sword wont be happening by Vague, it uses both the Accelerometer and Gyrometer (Including the IR Pointer to re center)

Accelerometer support is 100% the toughest part of these hacks. It has stumped Vague Rant even. (Godlike modder)

Adding the complicated factors of the Gyrometer would be on a whole new level of complication, and then you need to fix the Motion plus and No Nunchuk error (Extension errors)
Apologies

It honestly might not even be possible unless the ingame actions are figured out
 
Would it be possible for Onechanbara to get a CC hack? I don't remember if it used the accelerometer for the stabs but if this game is possible I'd like to humbly request it :bow:
 
@Vague Rant
Re: Max and the Magic Marker

1. I might have found a clue to whats going on with the whole audio corruption thing. For a few small frames, I can actually see the extension screen displaying then it goes back to normal. (With Classic Attached) Maybe its some connection issue?
The audio is NOT corrupted when a Nunchuk is attached. I can legit unplug a Classic, insert a Nunchuk and the issue is fixed. Very weird

2. The controls are ready by the way. Would it be possible to map all 4 D Pad inputs to A&B? I tried to in the PPC assembly but it didnt work. I found out this game has a control where you step in and out of imagination (Essentially pauses the game but you can draw while out of imagination.)

I also considered mapping it to the Nunchuk stick bytes, but decided not to. It would be complicated because you would need to go into KPAD Status and find all of this code.
 
Last edited by awesomeee,
Sure, but that's just a list of games and codes, and not the actual codes, right? What I meant was, a zip or a txt or something with a collection of all codes on this thread, to save locally just in case.
I actually did consider doing that but never ended up finishing it. Ill consider it again though
 
That's an interesting one. They do use the pointer quite a lot, which is not as good on an analog stick, but I guess that didn't stop them releasing these games on a bunch of consoles that don't have IR pointers at all. It does use the accelerometer in the Nunchuk which I haven't learned about at all yet, so there are some wrinkles there. Interestingly, it also has a charge move when you tilt the Wiimote upward. Speaking of ...



View attachment 457105

Metroid: Other M is that Metroid game. While it performed pretty well critically, it sold very poorly and many were disappointed by the linear gameplay, the loss of upgrades discovered through exploration, childish characterization, melodramatic story and awkward sideways/upright Wiimote controls. I can help with one of those.

USA (Rev 1) / Europe / Europe (Rev 1) / Japan / Japan (Rev 1)

  1. Same code works on all four tested revisions. Somebody test USA (Rev 0) for me?
    Code:
    Classic Controller and Nunchuk Support [Vague Rant]
    C20F797C 00000005
    881F0028 2C000000
    C03E05C4 41820018
    801E0000 70000080
    C0220000 41820008
    C0229998 00000000
    C20F8AC0 0000001B
    88A40028 2C050002
    408200C4 9421FFF0
    7C0802A6 9001000C
    90610008 3CC08011
    60C681A0 7CC803A6
    4E800021 2C030001
    80610008 48000005
    7CA802A6 C0650088
    40820008 EC6300F2
    C085008C C0030020
    C023006C C0430074
    FC21102A FC211824
    48000035 D0030020
    C0030024 C0230070
    C0430078 FC21102A
    FC200850 48000019
    D0030024 8001000C
    7C0803A6 38210010
    4E800020 FC01013A
    C0250090 FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    3FAAAAAB 3CA3D70A
    3F800000 9421FFC0
    60000000 00000000
    C20F92DC 00000014
    7C0802A6 C0429988
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000049 39000002
    FC011040 4800003D
    FC000050 39000008
    FC001040 4800002D
    FC200850 39000001
    FC011040 4800001D
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    7C0803A6 4E800020
    41800024 7CE34039
    40820008 7CA54378
    7C844378 7D0340F8
    7CC61838 7CE74378
    48000010 7CE34039
    41820008 7CE74278
    4E800020 00000000
    C20F93B8 00000004
    4E800421 C01E0000
    C03E0004 3D80800F
    618C92DC 7D8803A6
    4E800021 00000000
    C20F9470 00000004
    4E800421 C01E000C
    C03E0010 3D80800F
    618C92DC 7D8803A6
    4E800021 00000000
    C20F73A0 0000002F
    2C040001 408200AC
    38C00000 70E08000
    41820008 60C68000
    70E00008 41820008
    60C60002 70E00004
    41820008 60C60001
    70E00001 41820008
    60C60008 70E00002
    41820008 60C60004
    70E00800 41820008
    60C60100 70E00400
    41820008 60C60200
    70E00200 41820008
    60C60880 70E00100
    41820008 60C60880
    70E00010 41820008
    60C60010 70E01000
    41820008 60C61000
    70E04000 41820008
    60C60800 70E02000
    41820008 60C60400
    7CC73378 480000C0
    2C040002 408200B8
    71000800 41820008
    60C68000 71000001
    41820008 60C60002
    71004000 41820008
    60C60001 71000002
    41820008 60C60008
    71008000 41820008
    60C60004 71000010
    41820008 60C60800
    71000040 41820008
    60C60100 71000008
    41820008 60C60880
    71000020 41820008
    60C60200 71002000
    41820008 60C60040
    71000200 41820008
    60C60040 71000080
    41820008 60C60400
    71000004 41820008
    60C60800 71000400
    41820008 60C60010
    71001000 41820008
    60C61000 81230000
    60000000 00000000
    C20F73F8 00000005
    90030004 70000040
    4182001C 8803005E
    68000002 9803005E
    38000000 90030020
    90030024 00000000

Button Mapping​

The "and Nunchuk" code now supports both Classic Controller and Nunchuk input. Go figure. First up, Classic Controller.

[TABLE=full]
[TR]
[TH]Wii Remote[/TH]
[TH]Classic Controller[/TH]
[TH]Game Function[/TH]
[/TR]
[TR]
[TD]Home[/TD]
[TD]Home
Home Menu works but remember to press L/R to enable the pointer[/TD]
[TD]Open/Close Home Button Menu[/TD]
[/TR]
[TR]
[TD]D-Pad[/TD]
[TD]D-Pad
Left Stick[/TD]
[TD]Third-Person
Movement
Sense Move (dodge)[/TD]
[/TR]
[TR]
[TD]Wiimote A[/TD]
[TD]A/ZR[/TD]
[TD]Third-Person
Morph Ball
First-Person
Shoot[/TD]
[/TR]
[TR]
[TD]Wiimote B[/TD]
[TD]ZL[/TD]
[TD]First-Person
Free Look/Lock-On[/TD]
[/TR]
[TR]
[TD]Plus[/TD]
[TD]Plus[/TD]
[TD]Pause[/TD]
[/TR]
[TR]
[TD]Minus[/TD]
[TD]Minus[/TD]
[TD]Skip certain scenes[/TD]
[/TR]
[TR]
[TD]Wiimote 1[/TD]
[TD]Y[/TD]
[TD]Shoot[/TD]
[/TR]
[TR]
[TD]Wiimote 2[/TD]
[TD]B[/TD]
[TD]Third-Person
Jump[/TD]
[/TR]
[TR]
[TD]Wiimote Tilt[/TD]
[TD]X[/TD]
[TD]Third-Person
Concentration (recharge)[/TD]
[/TR]
[TR]
[TD]Wiimote IR Pointer[/TD]
[TD]L/R (enable/disable)
Left Stick/Right Stick[/TD]
[TD]First-Person
Aiming[/TD]
[/TR]
[/TABLE]


Now, on to the Wiimote and Nunchuk control scheme.

[TABLE=full]
[TR]
[TH]Wii Remote[/TH]
[TH]Wiimote and Nunchuk[/TH]
[TH]Game Function[/TH]
[/TR]
[TR]
[TD]Home[/TD]
[TD]Home
Home Menu works but remember that Nunchuk C is your A button[/TD]
[TD]Open/Close Home Button Menu[/TD]
[/TR]
[TR]
[TD]D-Pad[/TD]
[TD]Wiimote D-Pad
Nunchuk Stick[/TD]
[TD]Third-Person
Movement
Sense Move (dodge)[/TD]
[/TR]
[TR]
[TD]Wiimote A[/TD]
[TD]Nunchuk C[/TD]
[TD]Third-Person
Morph Ball
First-Person
Shoot[/TD]
[/TR]
[TR]
[TD]Wiimote B[/TD]
[TD]Nunchuk Z[/TD]
[TD]First-Person
Free Look/Lock-On[/TD]
[/TR]
[TR]
[TD]Plus[/TD]
[TD]Plus[/TD]
[TD]Pause[/TD]
[/TR]
[TR]
[TD]Minus[/TD]
[TD]Minus[/TD]
[TD]Skip certain scenes[/TD]
[/TR]
[TR]
[TD]Wiimote 1[/TD]
[TD]Wiimote B[/TD]
[TD]Shoot[/TD]
[/TR]
[TR]
[TD]Wiimote 2[/TD]
[TD]Wiimote A[/TD]
[TD]Third-Person
Jump[/TD]
[/TR]
[TR]
[TD]Wiimote Tilt[/TD]
[TD]Wiimote 1/2[/TD]
[TD]Third-Person
Concentration (recharge)[/TD]
[/TR]
[TR]
[TD]Wiimote IR Pointer[/TD]
[TD]Wiimote IR Pointer[/TD]
[TD]First-Person
Aiming[/TD]
[/TR]
[/TABLE]

General Notes​

About three weeks ago, I said Metroid: Other M would require somebody who understood Classic Controller hacking better than me to do a CC hack. Three weeks later, I understand Classic Controller hacking better than me, so I did. Highlights for @NestorM and @KelSolaar since they both asked.

I'm the world's biggest non-fan of playing digital games with a stick, but this game might make the exception. Since this hack allows you to use the analog stick as both your movement (third-person) and aiming (first-person) controls, it's actually pretty convenient to just use the analog stick at all times. That said, there are alternative options, e.g. left thumb on the D-pad and right thumb on the right analog stick, or you can even just stick to shooting with the Y (Wiimote 1) button, because that still works even in first-person. Play around, see what you like.

This game changes control schemes whenever you point the Wiimote at the screen, which necessitated some special handling of the pointer. You will need to enable/disable pointer mode by pressing the L or R button. This does result in some occasional weirdness, e.g. an early cutscene requires you to fire a missile at a locked door in the first person mode (press L/R). Another cutscene then plays after the door is unlocked, after which you get back gameplay control, but you'll still need to exit first-person mode by pressing L/R again. There are also scenes which lock you in first-person mode, but remember you still need to press L/R to enable the pointer. The Classic Controller hack doesn't "know" when you need to use the pointer, that's up to you to toggle.

This same hack is compatible with all five versions I tested. The only version which is untested is the USA Rev 0 disc; if you try it on that, let me know. The USA and Europe releases of this game received a second pressing with a game-breaking bug fixed, but the same hack is compatible with the (pre-bugfix) Europe and Japan Rev 0 discs, so there's a good chance it works on USA Rev 0 as well.

Mildly interesting, it's actually not known whether Japan received a second pressing of the game with the bug fixed, as the game Power Bombed in that region. We know Nintendo did prepare a Rev 1 for Japan, because that's the version that was sold on the Wii U eShop, but it's unknown whether that disc exists physically. This hack does work on that version as well if you're able to extract it from the eShop release and convert it back to a usable format.

EDIT: As mentioned below, this hack has been updated with Nunchuk support. The one big caveat of Nunchuk mode is that you need to remember that pointing the Wiimote at the screen will drop you into first-person mode. With an upright Wiimote & Nunchuk setup, there is some risk of this happening just from you naturally resting your hands in a way that points the Wiimote at the TV. My tip: don't do that. It didn't take me long to get used to holding the Wiimote slightly off to the right of the screen while playing. I'd also like to stress that you can shoot with the B button in either first-person or third-person, so feel free to just always shoot with B.

Changelog​

  • "and Nunchuk" code added Nunchuk support and switched to the new button injector

Technical Notes​

There's actually not much new in this one. Pointer support is essentially what was in Tron, Kirby and Wario with the addition of a toggle switch to enable/disable it which I put inside the button injector. This is again done with one of the unused button values of the Wii Remote, so the button with value 0x40 is our "toggle pointer" button, and the button with value 0x80 is our "tilt the Wiimote upward to recharge" button. Speaking of, that function is largely derived from the shaking implementation I used in Wario Land, minus the ... shaking.

Was wondering, is the Classic Controller hack compatible with the 3rd person missiles code?
It's this one:

Missiles in 3rd person said:
;Missiles in 3rd Person
0454E368 38000001
0454D9F4 3B600001
0454D9CC 3B600001
0454D9AC 3B600002
0454D998 3B600003
4E000010 00000000
C2699544 00000003
80630004 48000009
DDDDDDDD 7D8802A6
906C0000 DEADFACE
32000000 00000000
20C78980 00000000
282DBEC2 FBFF0400
0454D9F4 3B600004
0454D9CC 3B600004
0454D9AC 3B600005
0454D998 3B600006
E0000000 80008000

Haven't checked it myself but I was wondering if both would be compatible or if one or the other would require changes to make them work together.
Having both the Classic Controller code and the 3rd Person missiles code compatible with each other would makes the controls on Other M much more fluid.
 
Do you know how to handle an extension check like Max did? (Used different instructions like the lwz one or the li one)
 
Last edited by awesomeee,
View attachment 456958

Wario Land: Shake It! aka Wario Land: The Shake Dimension aka Wario Land: Shake aka Wario Land: Shaking is the game so good they named it four times. This was Good-Feel's "first" game, having released only educational software before this. It takes the form of a level-based 2D platformer with hidden treasures to collect in each stage and a similar countdown timer system to the previous Wario Land 4 on GBA. You really wouldn't know this was the team's first real game-game; from the fun gameplay to the spectacular presentation (with cutscenes by Production I.G.), its biggest downfalls are that it's very short and very reliant on something you might be able to guess from the title. You can tell it's an early Wii game when the fact that you get to shake the controller is the game's unique selling point. There's also some occasional tilting necessary. Maybe it needs a fifth title to incorporate that as well.
B/A Mode

USAEuropeJapan (Rev 1)Korea

  1. Code:
    Classic Controller Support v1.1 (B/A Mode) [Vague Rant, crediar]
    C2409AB4 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFC0 00000000
    C240ABDC 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C63CA4
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240B50C 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADAECC 00000000
    C240BBFC 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50100 70C40040
    41820008 60A50200
    70C40008 41820008
    60A50800 70C40020
    41820008 60A50080
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000
  2. Code:
    Classic Controller Support v1.1 (B/A Mode) [Vague Rant, crediar]
    C240A024 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFC0 00000000
    C240B14C 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C64214
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240BA7C 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADAECC 00000000
    C240C16C 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50100 70C40040
    41820008 60A50200
    70C40008 41820008
    60A50800 70C40020
    41820008 60A50080
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000
  3. Code:
    Classic Controller Support v1.1 (B/A Mode) [Vague Rant, crediar]
    C240D128 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFC0 00000000
    C240E250 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C67318
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240EB80 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADB86C 00000000
    C240F270 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50100 70C40040
    41820008 60A50200
    70C40008 41820008
    60A50800 70C40020
    41820008 60A50080
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000
  4. Code:
    Classic Controller Support v1.1 (B/A Mode) [Vague Rant, crediar]
    C2409A9C 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFB0 00000000
    C240AC08 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C641B4
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240B538 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADAEE4 00000000
    C240BC3C 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50100 70C40040
    41820008 60A50200
    70C40008 41820008
    60A50800 70C40020
    41820008 60A50080
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000
Y/B Mode

USAEuropeJapan (Rev 1)Korea

  1. Code:
    Classic Controller Support v1.1 (Y/B Mode) [Vague Rant, crediar]
    C2409AB4 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFC0 00000000
    C240ABDC 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C63CA4
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240B50C 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADAECC 00000000
    C240BBFC 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50800 70C40040
    41820008 60A50100
    70C40008 41820008
    60A50080 70C40020
    41820008 60A50200
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000
  2. Code:
    Classic Controller Support v1.1 (Y/B Mode) [Vague Rant, crediar]
    C240A024 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFC0 00000000
    C240B14C 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C64214
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240BA7C 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADAECC 00000000
    C240C16C 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50800 70C40040
    41820008 60A50100
    70C40008 41820008
    60A50080 70C40020
    41820008 60A50200
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000
  3. Code:
    Classic Controller Support v1.1 (Y/B Mode) [Vague Rant, crediar]
    C240D128 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFC0 00000000
    C240E250 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C67318
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240EB80 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADB86C 00000000
    C240F270 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50800 70C40040
    41820008 60A50100
    70C40008 41820008
    60A50080 70C40020
    41820008 60A50200
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000
  4. Code:
    Classic Controller Support v1.1 (Y/B Mode) [Vague Rant, crediar]
    C2409A9C 00000013
    88040028 2C000002
    40820088 7C0802A6
    48000005 7CA802A6
    7C0803A6 C0030074
    FC000050 D0030014
    C025006C FC000210
    FC000828 D0030010
    80030004 70000080
    41820010 C0050074
    C0250078 48000028
    80030000 70000080
    41820014 8003000C
    68000001 9003000C
    4E800020 C0050070
    C0250070 D003000C
    D0230018 4E800020
    3F800000 00000000
    4059999A 40BC7277
    9421FFB0 00000000
    C240AC08 00000019
    88A40028 2C050002
    408200B8 9421FFF0
    7C0802A6 9001000C
    90610008 98A3005E
    3CC0803A 60C641B4
    7CC803A6 4E800021
    2C030001 80610008
    48000005 7CA802A6
    C0450078 40820008
    EC4200B2 C065007C
    C0030020 C023006C
    FC211024 4800002D
    D0030020 C0030024
    C0230070 FC200850
    48000019 D0030024
    8001000C 7C0803A6
    38210010 4E800020
    FC0100FA C0250080
    FC000800 4180000C
    FC000890 48000014
    FC200850 FC000800
    41810008 FC000890
    4E800020 3FAAAAAB
    3D23D70A 3F800000
    9421FFC0 00000000
    C240B538 00000017
    7C0802A6 C01E000C
    C03E0010 48000005
    7CA802A6 C0450098
    809EFFA0 80BEFFA4
    80DEFFA8 80FE0024
    39000004 FC001040
    48000045 39000002
    FC011040 48000039
    FC000050 39000008
    FC001040 48000029
    FC200850 39000001
    FC011040 48000019
    909EFFA0 90BEFFA4
    90DEFFA8 90FE0024
    4800003C 41800024
    7CE34039 40820008
    7CA54378 7C844378
    7D0340F8 7CC61838
    7CE74378 48000010
    7CE34039 41820008
    7CE74278 4E800020
    3F000000 7C0803A6
    80ADAEE4 00000000
    C240BC3C 00000021
    901F0068 80DF0060
    48000039 809F0000
    7CC62378 90DF0000
    7CC630F8 809F0008
    7C863038 90DF0008
    80DF0064 48000015
    809F0004 7CC62378
    90DF0004 480000C4
    38A00000 70C40800
    41820008 60A58000
    70C40001 41820008
    60A50002 70C44000
    41820008 60A50001
    70C40002 41820008
    60A50008 70C48000
    41820008 60A50004
    70C40010 41820008
    60A50800 70C40040
    41820008 60A50100
    70C40008 41820008
    60A50080 70C40020
    41820008 60A50200
    70C42000 41820008
    60A50100 70C40200
    41820008 60A50200
    70C40080 41820008
    60A50100 70C40004
    41820008 60A50200
    70C40400 41820008
    60A50010 70C41000
    41820008 60A51000
    7CA62B78 4E800020
    60000000 00000000

Button Mapping​

[TABLE=full]
[TR]
[TH]Wii Remote[/TH]
[TH]Classic Controller[/TH]
[TH]Game Function[/TH]
[/TR]
[TR]
[TD]Home[/TD]
[TD]Home
Home Menu also works[/TD]
[TD]Open/Close Home Button Menu[/TD]
[/TR]
[TR]
[TD]D-Pad[/TD]
[TD]D-Pad
Left Stick[/TD]
[TD]Movement[/TD]
[/TR]
[TR]
[TD]Wiimote A[/TD]
[TD]B/A Mode
X
Y/B Mode
A[/TD]
[TD]Home Menu
Confirm[/TD]
[/TR]
[TR]
[TD]Wiimote B[/TD]
[TD][/TD]

[TD]Not used[/TD]
[/TR]
[TR]
[TD]Plus[/TD]
[TD]Plus[/TD]
[TD]Pause[/TD]
[/TR]
[TR]
[TD]Minus[/TD]
[TD]Minus[/TD]
[TD]Missions[/TD]
[/TR]
[TR]
[TD]Wiimote 1[/TD]
[TD]B/A Mode
B/R/ZR
Y/B Mode
Y/R/ZR[/TD]
[TD]Attack
Throw[/TD]
[/TR]
[TR]
[TD]Wiimote 2[/TD]
[TD]B/A Mode
A/L/ZL
Y/B Mode
B/L/ZL[/TD]
[TD]Jump[/TD]
[/TR]
[TR]
[TD]Wiimote Tilt[/TD]
[TD]Right Stick[/TD]
[TD]Aiming[/TD]
[/TR]
[TR]
[TD]Wiimote IR Pointer[/TD]
[TD]Left Stick[/TD]
[TD]Home Menu Navigation[/TD]
[/TR]
[TR]
[TD]Wiimote Shake[/TD]
[TD]B/A Mode
Y
Y/B Mode
X[/TD]
[TD]Shake[/TD]
[/TR]
[/TABLE]

General Notes​

  • EDIT: To use this hack as a Wii U Wii VC injection, be sure to enable the "Force Classic Controller connected" option in your injection software. It will not work without it.
  • to perform Wario's throw move, you can use whatever button you have mapped as Attack/Throw, but I recommend using R/ZR, which keeps your right thumb free to adjust the tilt/throw angle on the right analog stick
  • this hack adds the option to use the left stick as your D-pad; the controls are still completely digital so personally it feels imprecise to me, but use whichever you prefer
  • once again, there's two code options here, you can use the B/A controls or Y/B controls depending on how you prefer platformers to play; the obvious downside of Y/B is that those are also your cancel/confirm buttons, but in-game I find it much more comfortable

Changelog​

  • v1.1 changes the shoulder button layout to accommodate the later vehicle stages

Technical Notes​

This is quite similar to Kirby's Epic Yarn (same developer, same hacks), so I'll just list the things that are new here. This hack is four C2 codes, the ones I'll be discussing are the third and fourth codes.

Code 3 hits read_kpad_stick() (later renamed read_kpad_ext() as noted in a precious tech notes section). What we're doing here is mapping the left stick to the four D-pad directional buttons. This is kind of busywork, translating an analog stick to cover 12 different button states (each direction pressed/held and released) but it should be very portable, so in theory future hacks of horizontal Wiimote games like this can have analog stick, but crucially, not analog movement, control. I hate playing digital games with a stick but I know some people prefer that, so here it is.

Code 4 is in theory the usual button injector, but I actually noticed there's been a minor bug sitting in this hack which forms the backbone of every Classic Controller hack ever made for like ... 15 years or whenever crediar first wrote it. As mentioned above, buttons have three states, but the button injector incorrectly handles the release state, such that any button you press is reported as being both held and released at the same time. Fortunately, there are very few cases where it's useful to know which buttons were released this frame, and games rarely use that information. The fact that it's been broken for 15 years and never caused any problems is a good indicator of this. It's also broken in all my previous Classic Controller hacks, but unless or until any issues are reported with them, I'm not going to go back and fix the issue since games don't care anyway. That said, it is fixed in this one and will be if I do any more Classic Controller hacks going forward.

Bonus note: This is another one that's 100% hitting SDK libraries, so this one is a good candidate to look at for anybody who wants to add CC support to a horizontal Wiimote game. I was lucky in that this game has no "bad EXT" warning, so there was zero Wario-specific hacking necessary here.

Working like a charm.


Hope someone could make a controller promts texture replacement based on this.

That would be epic.
 

Site & Scene News

Popular threads in this forum