Hacking New Classic Controller Hacks

tech_A_nina

Active Member
Newcomer
Joined
Aug 1, 2018
Messages
35
Trophies
0
XP
292
Country
United Kingdom
...The deflicker modification is universal, if we're talking about disabling the code and not merely changing the filter type.
That sounds great. Do you know how to implement the code to the main.dol? I saw you wrote on the other thread about the deflicker options for gc games and wads. Would be great if that makes little king's story a lil bit sharper on the wii u gamepad
 
  • Like
Reactions: awesomeee

Maeson

Well-Known Member
Member
Joined
Apr 3, 2013
Messages
1,258
Trophies
2
XP
3,724
Country
Spain
It's as simple as looking for the string in that thread with a Hex Editor and edit the last part just like in that thread is written. There's really not more to it than that, besides taking out the main,dol and putting it back in.
 
  • Like
Reactions: tech_A_nina

Ouaz

Well-Known Member
Member
Joined
Jan 5, 2023
Messages
164
Trophies
0
Age
42
XP
346
Country
France
Hello,

Maybe a silly question, but regarding RE4 Wii Edition, when playing with the Wiimote, do you think it's possible to "force" the display of the red laser and the dot (like when plugging a CC or GC controller), instead of having this awful and permanent cursor?
 
Last edited by Ouaz,
  • Like
Reactions: Tarmfot

awesomeee

Well-Known Member
Newcomer
Joined
Oct 7, 2024
Messages
58
Trophies
0
XP
93
Country
United States
Alright, this game idea is a pretty weird one, but possibly Zelda: Twilight princess? Sadly it uses nunchuk motion for thrusting and spin attacks but its an interesting idea

People who dont wanna pay 100 dollars for TP HD on wiiu would like this lmao (since you could make a VC injection with gamepad)
 

Vague Rant

Deceptively cute
OP
Member
Joined
Aug 7, 2008
Messages
2,512
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,769
Country
Thanks! I actually did make my own version, (had my talented friend TechieSaru make it for me)! would we be allowed to distribute with credit?
Awesome, glad to hear you got it working as desired (notwithstanding the below quote!). Feel free to redistribute it, I'm absolutely happy for people to have their preferred control schemes readily available.

Hi! I noticed an issue: after a while of inactivity, City Folk will idle and ask you to press a button to resume. I'm unable to bypass this using this code, soft locking!

Thanks for the code! Having a wonderful time playing AC on controller!!
Isn't this normal behavior for Classic Controllers? Not sure if you're playing on Dolphin, Wii, Wii U VC injection, etc., but Classic Controllers receive their power from the Wii Remote, they're not independently powered. So if you allow the console to idle and the Wiimote gets disconnected, the Classic Controller can't be used to wake up the Wiimote because it's a chicken and egg problem, you have to power on the Wiimote to get power from the Wiimote.

Basically, if the controller goes idle, you have to press buttons on the Wii Remote to wake it up, not on the Classic Controller. That's still true even on Dolphin, you need to press emulated Wiimote buttons. On Wii U GamePad, any button on the GamePad should wake the emulated Wiimote, but some games struggle with reconnecting after an idle, requiring you to walk the GamePad out of the room to try another reconnect.

Thanks. That was the clue. I changed 2082 to 2002 and the Turbo action was gone from ZL. The only downside now is that I have the back button on ZL in the menu instead of B, but that's just a little thing to keep in mind. 🙏
Haha, totally. For my layouts I always try my best to have the default setup "make sense" in terms of menu navigation and stuff, but for people who are willing to wrap their heads around broken confirm/cancel layouts, I definitely think there's cases where the in-game controls could be improved by sacrificing menu sanity.

I mentioned in that earlier post that I wanted to go back to Excite Truck and add the IR pointer and simplify the button injector. I've just updated the Excite Truck post with those changes, so now you can use the Home Button Menu normally and remapping is easier. In the Technical Notes section is the assembly source for the button injector so you can remap in a human-readable(ish) format using CodeWrite if you like.

Hello,

Maybe a silly question, but regarding RE4 Wii Edition, when playing with the Wiimote, do you think it's possible to "force" the display of the red laser and the dot (like when plugging a CC or GC controller), instead of having this awful and permanent cursor?
I'm sure it would be possible, but it's not likely to come from me, sorry. I only got far enough into understanding how RE4 works to disable the intro splashes, I wouldn't have the first idea how the crosshairs are managed.

Alright, this game idea is a pretty weird one, but possibly Zelda: Twilight princess? Sadly it uses nunchuk motion for thrusting and spin attacks but its an interesting idea

People who dont wanna pay 100 dollars for TP HD on wiiu would like this lmao (since you could make a VC injection with gamepad)
This would definitely be a pretty low priority for me because the GameCube version of Twilight Princess already exists and is designed with the intention of being played with button controls. You can even find Gecko codes to enable widescreen support, so ultimately the experience of playing the GameCube version on Wii or Wii U with either GameCube or Classic controls via Nintendont is already very good.

Would this hack be possible with Bully: Scholarship Edition?
I actually considered Bully a while ago but I remembered it using a lot of motion controls from when I played it back in the day. I think all the school lessons are a bunch of motion-based minigames? Minigame collections are a nightmare generally because it's sometimes like making a separate Classic Controller hack for every single minigame.

In terms of the normal gameplay controls though, I think this one amounts to Wiimote Shake and Nunchuk Shake for your two punches? The Nunchuk accelerometer is the bane of my existence, but I was able to get a basic waggle working in Epic Mickey, so if Bully's Nunchuk implementation is similar, I might be able to do the same there.

If I do come to this one, it might end up that I only do the normal gameplay stuff and you'd have to switch back to a real Wiimote and Nunchuk to do the motion classes, because otherwise it's just a lot of effort to put into like 10 minutes of actual gameplay when most of your time is spent doing literally anything else. Not sure if that would defeat the point of having a Classic Controller hack, though.



H2x1_Wii_NewSuperMarioBrosWii_image1600w.jpg


Nintendo EAD's New Super Mario Bros. Wii continued the revival of classic Super Mario Bros. that started on the DS. The main attraction this time around is the chaotic simultaneous four-player co-op multiplayer. At the time of its release, NSMB Wii still felt fresh, coming out before the New series lost its sheen with an avalanche of similar sequels and spinoffs in 2012 and 2013. Regardless, each entry in the series (except that one) has something great to offer and this one is certainly no exception. However, unlike its brothers both big and small, New Super Mario Bros. Wii was the only entry in the series that lacked support for traditional controls.

Highlight for @leejaclane, who asked about the possibility of getting tilt emulation working in this game.

USA (Rev 1/2)EUR (Rev 2)JPN (Rev 2)KOR/Asia

  1. Code:
    Classic Controller Support [Vague Rant]
    040DCDB0 38000000
    041E6640 90BD1E98
    041ECC0C 60000000
    C21EB038 00000011
    90010044 8803005C
    2C000002 40820078
    48000009 3F000000
    7CA802A6 C0050000
    80830000 70800060
    4182001C 2C000060
    41820014 2C000020
    40820038 FC000050
    48000030 80030064
    2C000001 4182001C
    C023007C FC200850
    C0430080 FC21102A
    EC000072 4800000C
    C0230074 EC000072
    D0030058 80010044
    7C0803A6 38210040
    4E800020 00000000
    C21EB2E4 0000000B
    C03E04DC 807E0004
    70600080 4182001C
    48000009 4059999A
    7C8802A6 C0240000
    D03E0060 4800002C
    807E0000 70600080
    4082000C 901E0060
    48000018 C03E0060
    2C140001 4082000C
    FC000850 D01E0060
    60000000 00000000
    C21EBD28 0000001D
    90010024 2C040000
    408200D8 8803005C
    2C000002 408200CC
    48000015 801DD1D0
    3FAAAAAB 3C75C28F
    3F800000 7CA802A6
    90A1000C 80030004
    70008000 41820010
    38000000 90030020
    90030024 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C023006C FC211024
    4800002D D0030020
    C0030024 C0230070
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C025000C FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    C21ECC38 00000012
    4E800421 2C140001
    40820084 4800000D
    3F000000 00000000
    7C6802A6 C0430000
    C0630004 809EFFA0
    80BEFFA4 80DEFFA8
    C03E000C FC200850
    39000004 48000021
    C03E0010 39000001
    48000015 909EFFA0
    90BEFFA4 90DEFFA8
    48000034 FC000A10
    FC001040 4D800020
    FC011840 41800008
    5508083C 7CC04039
    40820008 7CA54378
    7C844378 7CC64079
    4E800020 00000000
    C21EAD34 00000021
    2C040002 408200FC
    38800000 71090800
    41820008 60C68000
    71090001 41820008
    60C60002 71094000
    41820008 60C60001
    71090002 41820008
    60C60008 71098000
    41820008 60C60004
    71090010 41820008
    60C60800 71090040
    41820008 60C60100
    71090008 41820008
    60C60080 71090020
    41820008 60C60200
    81230064 2C090001
    41820038 71092000
    41820008 60C60020
    71090200 41820008
    60C60040 71090080
    41820008 60C60080
    71090004 4182003C
    60C60080 48000034
    71092000 41820008
    60C60080 71090200
    41820008 60C60080
    71090080 41820008
    60C60020 71090004
    41820008 60C60040
    71090400 41820008
    60C60010 71091000
    41820008 60C61000
    70C99FFF 00000000
  2. Code:
    Classic Controller Support [Vague Rant]
    040DCEA0 38000000
    041E6780 90BD1E98
    041ECD4C 60000000
    C21EB178 00000011
    90010044 8803005C
    2C000002 40820078
    48000009 3F000000
    7CA802A6 C0050000
    80830000 70800060
    4182001C 2C000060
    41820014 2C000020
    40820038 FC000050
    48000030 80030064
    2C000001 4182001C
    C023007C FC200850
    C0430080 FC21102A
    EC000072 4800000C
    C0230074 EC000072
    D0030058 80010044
    7C0803A6 38210040
    4E800020 00000000
    C21EB424 0000000B
    C03E04DC 807E0004
    70600080 4182001C
    48000009 4059999A
    7C8802A6 C0240000
    D03E0060 4800002C
    807E0000 70600080
    4082000C 901E0060
    48000018 C03E0060
    2C140001 4082000C
    FC000850 D01E0060
    60000000 00000000
    C21EBE68 0000001D
    90010024 2C040000
    408200D8 8803005C
    2C000002 408200CC
    48000015 801DD310
    3FAAAAAB 3C75C28F
    3F800000 7CA802A6
    90A1000C 80030004
    70008000 41820010
    38000000 90030020
    90030024 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C023006C FC211024
    4800002D D0030020
    C0030024 C0230070
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C025000C FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    C21ECD78 00000012
    4E800421 2C140001
    40820084 4800000D
    3F000000 00000000
    7C6802A6 C0430000
    C0630004 809EFFA0
    80BEFFA4 80DEFFA8
    C03E000C FC200850
    39000004 48000021
    C03E0010 39000001
    48000015 909EFFA0
    90BEFFA4 90DEFFA8
    48000034 FC000A10
    FC001040 4D800020
    FC011840 41800008
    5508083C 7CC04039
    40820008 7CA54378
    7C844378 7CC64079
    4E800020 00000000
    C21EAE74 00000021
    2C040002 408200FC
    38800000 71090800
    41820008 60C68000
    71090001 41820008
    60C60002 71094000
    41820008 60C60001
    71090002 41820008
    60C60008 71098000
    41820008 60C60004
    71090010 41820008
    60C60800 71090040
    41820008 60C60100
    71090008 41820008
    60C60080 71090020
    41820008 60C60200
    81230064 2C090001
    41820038 71092000
    41820008 60C60020
    71090200 41820008
    60C60040 71090080
    41820008 60C60080
    71090004 4182003C
    60C60080 48000034
    71092000 41820008
    60C60080 71090200
    41820008 60C60080
    71090080 41820008
    60C60020 71090004
    41820008 60C60040
    71090400 41820008
    60C60010 71091000
    41820008 60C61000
    70C99FFF 00000000
  3. Code:
    Classic Controller Support [Vague Rant]
    040DCD30 38000000
    041E6450 90BD1E98
    041ECA1C 60000000
    C21EAE48 00000011
    90010044 8803005C
    2C000002 40820078
    48000009 3F000000
    7CA802A6 C0050000
    80830000 70800060
    4182001C 2C000060
    41820014 2C000020
    40820038 FC000050
    48000030 80030064
    2C000001 4182001C
    C023007C FC200850
    C0430080 FC21102A
    EC000072 4800000C
    C0230074 EC000072
    D0030058 80010044
    7C0803A6 38210040
    4E800020 00000000
    C21EB0F4 0000000B
    C03E04DC 807E0004
    70600080 4182001C
    48000009 4059999A
    7C8802A6 C0240000
    D03E0060 4800002C
    807E0000 70600080
    4082000C 901E0060
    48000018 C03E0060
    2C140001 4082000C
    FC000850 D01E0060
    60000000 00000000
    C21EBB38 0000001D
    90010024 2C040000
    408200D8 8803005C
    2C000002 408200CC
    48000015 801DCFE0
    3FAAAAAB 3C75C28F
    3F800000 7CA802A6
    90A1000C 80030004
    70008000 41820010
    38000000 90030020
    90030024 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C023006C FC211024
    4800002D D0030020
    C0030024 C0230070
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C025000C FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    C21ECA48 00000012
    4E800421 2C140001
    40820084 4800000D
    3F000000 00000000
    7C6802A6 C0430000
    C0630004 809EFFA0
    80BEFFA4 80DEFFA8
    C03E000C FC200850
    39000004 48000021
    C03E0010 39000001
    48000015 909EFFA0
    90BEFFA4 90DEFFA8
    48000034 FC000A10
    FC001040 4D800020
    FC011840 41800008
    5508083C 7CC04039
    40820008 7CA54378
    7C844378 7CC64079
    4E800020 00000000
    C21EAB44 00000021
    2C040002 408200FC
    38800000 71090800
    41820008 60C68000
    71090001 41820008
    60C60002 71094000
    41820008 60C60001
    71090002 41820008
    60C60008 71098000
    41820008 60C60004
    71090010 41820008
    60C60800 71090040
    41820008 60C60100
    71090008 41820008
    60C60080 71090020
    41820008 60C60200
    81230064 2C090001
    41820038 71092000
    41820008 60C60020
    71090200 41820008
    60C60040 71090080
    41820008 60C60080
    71090004 4182003C
    60C60080 48000034
    71092000 41820008
    60C60080 71090200
    41820008 60C60080
    71090080 41820008
    60C60020 71090004
    41820008 60C60040
    71090400 41820008
    60C60010 71091000
    41820008 60C61000
    70C99FFF 00000000
  4. Code:
    Classic Controller Support [Vague Rant]
    040DCEC0 38000000
    041E6B80 90BD1E98
    041ED14C 60000000
    C21EB578 00000011
    90010044 8803005C
    2C000002 40820078
    48000009 3F000000
    7CA802A6 C0050000
    80830000 70800060
    4182001C 2C000060
    41820014 2C000020
    40820038 FC000050
    48000030 80030064
    2C000001 4182001C
    C023007C FC200850
    C0430080 FC21102A
    EC000072 4800000C
    C0230074 EC000072
    D0030058 80010044
    7C0803A6 38210040
    4E800020 00000000
    C21EB824 0000000B
    C03E04DC 807E0004
    70600080 4182001C
    48000009 4059999A
    7C8802A6 C0240000
    D03E0060 4800002C
    807E0000 70600080
    4082000C 901E0060
    48000018 C03E0060
    2C140001 4082000C
    FC000850 D01E0060
    60000000 00000000
    C21EC268 0000001D
    90010024 2C040000
    408200D8 8803005C
    2C000002 408200CC
    48000015 801DD710
    3FAAAAAB 3C75C28F
    3F800000 7CA802A6
    90A1000C 80030004
    70008000 41820010
    38000000 90030020
    90030024 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C023006C FC211024
    4800002D D0030020
    C0030024 C0230070
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C025000C FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    C21ED178 00000012
    4E800421 2C140001
    40820084 4800000D
    3F000000 00000000
    7C6802A6 C0430000
    C0630004 809EFFA0
    80BEFFA4 80DEFFA8
    C03E000C FC200850
    39000004 48000021
    C03E0010 39000001
    48000015 909EFFA0
    90BEFFA4 90DEFFA8
    48000034 FC000A10
    FC001040 4D800020
    FC011840 41800008
    5508083C 7CC04039
    40820008 7CA54378
    7C844378 7CC64079
    4E800020 00000000
    C21EB274 00000021
    2C040002 408200FC
    38800000 71090800
    41820008 60C68000
    71090001 41820008
    60C60002 71094000
    41820008 60C60001
    71090002 41820008
    60C60008 71098000
    41820008 60C60004
    71090010 41820008
    60C60800 71090040
    41820008 60C60100
    71090008 41820008
    60C60080 71090020
    41820008 60C60200
    81230064 2C090001
    41820038 71092000
    41820008 60C60020
    71090200 41820008
    60C60040 71090080
    41820008 60C60080
    71090004 4182003C
    60C60080 48000034
    71092000 41820008
    60C60080 71090200
    41820008 60C60080
    71090080 41820008
    60C60020 71090004
    41820008 60C60040
    71090400 41820008
    60C60010 71091000
    41820008 60C61000
    70C99FFF 00000000

Button Mapping​

Note that this hack applies a different control scheme depending on whether you're using an original Classic Controller (SNES-style with analog shoulder buttons) or a Classic Controller Pro (PlayStation-style with digital shoulder buttons).

Wii RemoteClassic Controller/ProFunction
HomeHome
Works normally
Open/Close Home Menu
D-PadD-Pad
Left Stick
Menus
Navigation
Gameplay
Movement
AAMenus
Confirm
Overworld
View Map
Gameplay
Bubble (multiplayer)
BNot mappedNot used?
1YMenus
Cancel
Gameplay
Run
Pick Up Objects
2BMenus
Confirm
Gameplay
Jump
PlusPlusGameplay
Pause
MinusMinusOverworld
Select World
Wii RemoteClassic ControllerFunction
ShakeX
ZL
ZR
Gameplay
Spin Jump
Pick Up Heavy Objects
TiltAnalog L/RGameplay
Tilt Platforms
Aim Toad Cannon
Wii RemoteClassic Controller ProFunction
ShakeX
L
R
Gameplay
Spin Jump
Pick Up Heavy Objects
TiltZL/ZR
Right Stick
Gameplay
Tilt Platforms
Aim Toad Cannon

General Notes​

  • This hack will not work with Classic Controller emulation on the Wii U GamePad as a Wii VC injection. I cannot do anything about that. Nintendo's controller emulation feature is simply not compatible with New Super Mario Bros. Wii for reasons not known outside Nintendo (assuming even they know).

  • Huge credit to Thomas83Lin for the original New Super Mario Bros. Wii Classic Controller hack. While I'm not using any of Thomas's code here, that original hack provided an excellent guide to disabling the bad extension type error, which often sucks. With Thomas's time-traveling assistance, this was one of the quickest errors to get rid of that I've encountered.

    • This hack has some minor additions over Thomas's excellent original: Wiimote tilt emulation as well as Left Stick D-Pad and IR pointer emulation.

  • The OG Classic Controller gets a win for once! If you've got one, I'd say that's the better way to play since you have easy access to precise analog tilting. There's only really a handful of stages where tilting is needed though, so the digital-only Pro scheme is also fine, operating basically the same way it does in New Super Mario Bros. U.

    • That said, the Classic Controller Pro also gets analog tilt support on the Right Stick. This is pretty inconvenient but provided for occasions when you absolutely must have analog tilting support (Toad's Cannon 1-Up minigames). You'll have to use the Right Stick and press Classic B at the same time to do this, so ... get creative with your finger placement, I guess.

    • For people who are using these on Dolphin, it's worth mentioning that Dolphin specifically emulates the original Classic Controller, not the Classic Controller Pro. If you want to use the Classic Controller Pro scheme on Dolphin or if you have any other reason why you need to toggle between the Amateur/Pro layouts (e.g. buggy third-party controller), see the Technical Notes section for a code to allow switching between the two layouts manually.

  • The control scheme here is mostly based on the one from New Super Mario Bros. U, with a couple of changes for practical reasons. Obviously, the Classic Controller Amateur has the buttons rearranged to take advantage of the analog L/R buttons. Besides that, while NSMBU just mirrors Y/B onto X/A, in this hack X is an additional Shake button (especially useful on the Amateur, where ZL/ZR are not ideal) and A is the Bubble button. Having Wiimote A on Classic A just helps keep button prompts sane. Swapping it with Minus as in NSMBU would be confusing when all the button prompts still say Minus/A.

    • If you don't like these button choices, the button remapper's assembly is in the Technical Notes section for you to edit to suit your preferences.

  • I've tested this on USA Rev 1 & Rev 2, Europe Rev 2, Japan Rev 2, Korea and Asia. I strongly suspect that the Europe Rev 2 code would work on Rev 1 and likewise for Japan, but I have not confirmed this myself. If you try either of those, I'd be interested to hear if they worked as well.

Technical Notes​

Code breakdown:
  • 04: force the game to recognize the Classic Controller as a standalone Wii Remote
  • 04 in __wpadGetExtType(): pass the Classic Controller revision through to KPADStatus so we can use it to set up custom control schemes for each later; this is the major technical get in this hack, I had no idea how to identify OG vs. Pro before now
  • 04 in read_kpad_ext(): this usually blanks out the unused word in KPADStatus where we're storing the controller revision, so let's not
  • C2 in calc_acc_vertical(): tilt angle emulation, with CC/Pro support to handle mapping tilts to different inputs depending on revision
  • C2 in read_kpad_acc(): shake emulation, uses another one of the free KPADStatus words to store shake direction so that it can toggle back and forth as the player holds the shake button
  • C2 in calc_dpd_variable(): IR pointer emulation
  • C2 in read_kpad_ext(): Left Stick D-Pad emulation
  • C2 in read_kpad_button(): button remapper, also uses controller revision to handle divergent remaps
Speaking of that last code, because it's slightly more complicated than most (due to the controller revision check), here's the assembly if you wish to remap the buttons yourself in a way that's relatively readable. Use CodeWrite to generate the Gecko code.
Code:
; read_kpad_button
; 801EAD34 for USA (Rev 1/Rev 2)
; 801EAE74 for EUR (Rev 2)
; 801EAB44 for JPN (Rev 2)
; 801EB274 for KOR/ASN

; r4 holds extType
; r6 holds wiimote bitfield
; r7 holds wiimote+nunchuk bitfield
; r8 holds classic bitfield

CLASSIC:
  cmpwi r4, 0x2
  bne- RETURN

  li r4, 0x0            ; standalone wiimote

    CLASSIC_HOME:
      andi. r9, r8, 0x800
      beq- CLASSIC_UP
      ori r6, r6, 0x8000    ; home

    CLASSIC_UP:
      andi. r9, r8, 0x1
      beq- CLASSIC_DOWN
      ori r6, r6, 0x2       ; right (v) / up (h)

    CLASSIC_DOWN:
      andi. r9, r8, 0x4000
      beq- CLASSIC_LEFT
      ori r6, r6, 0x1       ; left (v) / down (h)

    CLASSIC_LEFT:
      andi. r9, r8, 0x2
      beq- CLASSIC_RIGHT
      ori r6, r6, 0x8       ; up (v) / left (h)

    CLASSIC_RIGHT:
      andi. r9, r8, 0x8000
      beq- CLASSIC_A
      ori r6, r6, 0x4       ; down (v) / right (h)

    CLASSIC_A:
      andi. r9, r8, 0x10
      beq- CLASSIC_B
      ori r6, r6, 0x800     ; a

    CLASSIC_B:
      andi. r9, r8, 0x40
      beq- CLASSIC_X
      ori r6, r6, 0x100     ; 2

    CLASSIC_X:
      andi. r9, r8, 0x8
      beq- CLASSIC_Y
      ori r6, r6, 0x80      ; shake

    CLASSIC_Y:
      andi. r9, r8, 0x20
      beq- REVISION
      ori r6, r6, 0x200     ; 1

    REVISION:
      lwz r9, 0x64(r3)
      cmpwi r9, 0x1
      beq- CLASSIC_PRO_L

        CLASSIC_L:
          andi. r9, r8, 0x2000
          beq- CLASSIC_R
          ori r6, r6, 0x20      ; tilt left

        CLASSIC_R:
          andi. r9, r8, 0x200
          beq- CLASSIC_ZL
          ori r6, r6, 0x40      ; tilt right

        CLASSIC_ZL:
          andi. r9, r8, 0x80
          beq- CLASSIC_ZR
          ori r6, r6, 0x80      ; shake

        CLASSIC_ZR:
          andi. r9, r8, 0x4
          beq- CLASSIC_PLUS
          ori r6, r6, 0x80      ; shake
          b CLASSIC_PLUS

; alternate setup for Pro controllers
        CLASSIC_PRO_L:
          andi. r9, r8, 0x2000
          beq- CLASSIC_PRO_R
          ori r6, r6, 0x80      ; shake

        CLASSIC_PRO_R:
          andi. r9, r8, 0x200
          beq- CLASSIC_PRO_ZL
          ori r6, r6, 0x80      ; shake

        CLASSIC_PRO_ZL:
          andi. r9, r8, 0x80
          beq- CLASSIC_PRO_ZR
          ori r6, r6, 0x20      ; tilt left

        CLASSIC_PRO_ZR:
          andi. r9, r8, 0x4
          beq- CLASSIC_PLUS
          ori r6, r6, 0x40      ; tilt right

    CLASSIC_PLUS:
      andi. r9, r8, 0x400
      beq- CLASSIC_MINUS
      ori r6, r6, 0x10      ; plus

    CLASSIC_MINUS:
      andi. r9, r8, 0x1000
      beq- RETURN
      ori r6, r6, 0x1000    ; minus

RETURN:
  andi. r9, r6, 0x9FFF

One last note. If for any reason (Dolphin, buggy controller) you want to use the opposite control scheme to the one detected based on your controller, you can use this code to toggle the revision back and forth by pressing Plus and Minus simultaneously.

USA (Rev 1/2)EUR (Rev 2)JPN (Rev 2)KOR/Asia

  1. Code:
    Toggle Revision for CC Hack [Vague Rant]
    C21EAD78 00000006
    90030004 71081400
    2C081400 40820018
    70001010 41820010
    80030064 68000001
    90030064 28040002
    60000000 00000000
  2. Code:
    Toggle Revision for CC Hack [Vague Rant]
    C21EAEB8 00000006
    90030004 71081400
    2C081400 40820018
    70001010 41820010
    80030064 68000001
    90030064 28040002
    60000000 00000000
  3. Code:
    Toggle Revision for CC Hack [Vague Rant]
    C21EAB88 00000006
    90030004 71081400
    2C081400 40820018
    70001010 41820010
    80030064 68000001
    90030064 28040002
    60000000 00000000
  4. Code:
    Toggle Revision for CC Hack [Vague Rant]
    C21EB2B8 00000006
    90030004 71081400
    2C081400 40820018
    70001010 41820010
    80030064 68000001
    90030064 28040002
    60000000 00000000
The above code will toggle the control scheme of the player who pressed the combo, so if you have multiple players with incorrectly identified controllers, they'll all need to do the input. This setting will last until the next time the controller reconnects and passes in the wrong revision again.
 

awesomeee

Well-Known Member
Newcomer
Joined
Oct 7, 2024
Messages
58
Trophies
0
XP
93
Country
United States
This would definitely be a pretty low priority for me because the GameCube version of Twilight Princess already exists and is designed with the intention of being played with button controls. You can even find Gecko codes to enable widescreen support, so ultimately the experience of playing the GameCube version on Wii or Wii U with either GameCube or Classic controls via Nintendont is already very good.
Fair enough, it would be hard to implement anyways lol
 
  • Like
Reactions: Vague Rant

nully

Member
Newcomer
Joined
Sep 27, 2024
Messages
20
Trophies
0
XP
266
Country
United States
I think all the school lessons are a bunch of motion-based minigames?
Some are, some are only IR and buttons. I think it's usual shake, slam? and tilt for nunchuck most of the time

If I do come to this one, it might end up that I only do the normal gameplay stuff and you'd have to switch back to a real Wiimote and Nunchuk to do the motion classes
That actually sounds like a good idea, to me. I don't think it defeats the point at all, you end up with easier controls and a mini game accessory lol. I'd play like that for sure
 
Last edited by nully,
  • Like
Reactions: Vague Rant

tech_A_nina

Active Member
Newcomer
Joined
Aug 1, 2018
Messages
35
Trophies
0
XP
292
Country
United Kingdom
I've just updated the Excite Truck post with those changes, so now you can use the Home Button Menu normally and remapping is easier
It worked! Thanks for coming back to the older project to fix the IR. I wonder if it would be possible now to change the camera rotation of "little king's story" to the right analog stick like you did with "de blob" or do the games use different mechanics for camera rotation?
 
  • Like
Reactions: Vague Rant

awesomeee

Well-Known Member
Newcomer
Joined
Oct 7, 2024
Messages
58
Trophies
0
XP
93
Country
United States
@Vague Rant Im going to start storing some of these gecko codes in my computer incase this post somehow gets taken down, and i reccomend you do the same.

Anyhoo, election day just passed, and theres a lot of drama, so please take a mental health break if you need it. Theeres going to be way more drama in the future, and possibly bad stuff.
Post automatically merged:

@Vague Rant WHO COULD HAVE DONE SUCH A THING TO DA FISH (High quality picture of the frozen fish)
Word of wisdom #2: The ice playroom is da best!!!!
Word of wisdom #3 (yes 3) You should for sure listen to this games music while making hacks, it has such good music
Good luck with any future hacks, and take breaks when you need to.
 

Attachments

  • Screenshot 2024-11-06 191932.png
    Screenshot 2024-11-06 191932.png
    179 KB · Views: 5
  • Screenshot 2024-11-06 193041.png
    Screenshot 2024-11-06 193041.png
    6.6 KB · Views: 4
Last edited by awesomeee,
  • Like
Reactions: Vague Rant

NestorM

Well-Known Member
Member
Joined
Feb 19, 2021
Messages
100
Trophies
1
Age
40
XP
1,087
Country
France
Hi @Vague Rant. I have two questions
1 : Does priiloader vwii works when a wiivc injection is launched ? It could be the way to disable deflicker for injects.
2 : in wiivc compability list, for kirby return to dreamland, patching main.dol for bypass metafortress is mentioned.
There's a link to this page. What should i do with this code ?
https://github.com/dolphin-emu/dolphin/blob/master/Data/Sys/GameSettings/SUKE01.ini

Thanks for your amazing job and for answering to us.
 
  • Like
Reactions: Vague Rant

NestorM

Well-Known Member
Member
Joined
Feb 19, 2021
Messages
100
Trophies
1
Age
40
XP
1,087
Country
France
Have you tried the deflicker filter option as well? I would love to play this game on the wii u gamepad, but it's just too much blur for my eyes. Maybe it's possible to integrate the deactivated deflicker to the main.dol just like in super mario galaxy.
@Vague Rant do you know if the deflicker code of super mario galaxy will also work on little king's story?
I've removed deflicker by editing main.dol with HxD. It works for SMG and Excite Truck. Will try with Little King's Story and give you some news.
 

creedof69

Well-Known Member
Newcomer
Joined
Apr 28, 2023
Messages
46
Trophies
0
Age
26
XP
129
Country
France
View attachment 458554

I want to be clear off the bat that this is not a Classic Controller hack, but I'm not starting a new thread for "I got rid of the Nunchuk notice on a game that supports the GameCube controller." On startup, this game checks whether there is a Nunchuk or Classic Controller in the Wiimote. Notably, it doesn't even check if there is a Wiimote connected, it goes straight to checking whether there's a valid extension controller. Good one. This is fine if you want to play with Nunchuk or Classic Controller, but it means you need a second controller handy just to get to the part with GameCube controller support. Also, it's Resident Evil 4, I'm not doing an intro where I explain what Resident Evil 4 is. Highlight for @lauty29 who noted this issue's existence.

USAEuropeGermanyJapan (Rev 0)Japan (Rev 1)

  1. Code:
    Skip Nunchuk Splash Screen [Vague Rant]
    0416B260 38600001
    
    Skip All Splash Screens [Vague Rant]
    0416B088 38000001
  2. Code:
    Skip Nunchuk Splash Screen [Vague Rant]
    0416B094 38600001
    
    Skip All Splash Screens [Vague Rant]
    0416AEBC 38000001
  3. Code:
    Skip Nunchuk Splash Screen [Vague Rant]
    0416B0C8 38600001
    
    Skip All Splash Screens [Vague Rant]
    0416AEF0 38000001
  4. Code:
    Skip Nunchuk Splash Screen [Vague Rant]
    0416ADDC 38600001
    
    Skip All Splash Screens [Vague Rant]
    0416AC04 38000001
  5. Code:
    Skip Nunchuk Splash Screen [Vague Rant]
    0416B1E8 38600001
    
    Skip All Splash Screens [Vague Rant]
    0416AD28 38000001

General Notes​

  • There's two codes here. The first skips over just the "insert a Nunchuk" error, while the second skips all of the boot screens: the Wiimote strap warning, Nunchuk error and mature content warning. If you're using a GameCube controller (and no Wiimote), you can get past the Wiimote strap screen by just waiting a few seconds, but if you want to get to the game faster, you can just skip all of them. If you're using the code to skip all splashes, you don't need to use the Nunchuk one as well. It won't hurt anything though, so you can if you want.
  • If you're looking to play in German, you should probably stick to the Europe release. I don't know much about this Wii version, but on GameCube the German release removed two game modes entirely. The standard Europe release still has German language support, so I don't know if there's any reason to play the Germany-specific version.

Technical Notes​

  • The most interesting thing to note here is that the SDK SCGetLanguage() function runs before displaying these screens, since they need to be localized for each supported language. After finding the first one through "proper" reverse engineering and seeing how it worked, when porting to the rest I was able to just find GetLanguage and walk back to the caller. This might be a workable approach to finding these splash screens in other games if anyone is looking to similarly modify or remove them.
Hello, firstly I would like to hug you to have realized a child dream. That is super impressive and want to say thank you, really. I looked for bypass this screen for many years without any success (I'm not from hacking scene, just know how to edit with hex but don't know how hex works ^^)

So, as I bought a Wii U recently, is there a way to port a gecko code directly in the main dol iso ? In order to make it works as a Wii U VC inject.
I'm sure that search "0416B094" by hexadecimal and replace it by "38600001" will not be enough ^^.

Do you have some advices ? And again, thank you kindly
 
  • Like
Reactions: awesomeee

awesomeee

Well-Known Member
Newcomer
Joined
Oct 7, 2024
Messages
58
Trophies
0
XP
93
Country
United States
Hello, firstly I would like to hug you to have realized a child dream. That is super impressive and want to say thank you, really. I looked for bypass this screen for many years without any success (I'm not from hacking scene, just know how to edit with hex but don't know how hex works ^^)

So, as I bought a Wii U recently, is there a way to port a gecko code directly in the main dol iso ? In order to make it works as a Wii U VC inject.
I'm sure that search "0416B094" by hexadecimal and replace it by "38600001" will not be enough ^^.

Do you have some advices ? And again, thank you kindly
Use this. https://www.dropbox.com/scl/fi/p945....zip?rlkey=n4uhselp912hchf19d1zeea5t&e=1&dl=0
 
  • Like
Reactions: Vague Rant

Vague Rant

Deceptively cute
OP
Member
Joined
Aug 7, 2008
Messages
2,512
Trophies
2
Location
Melbourne
Website
vaguerant.tumblr.com
XP
3,769
Country
It worked! Thanks for coming back to the older project to fix the IR. I wonder if it would be possible now to change the camera rotation of "little king's story" to the right analog stick like you did with "de blob" or do the games use different mechanics for camera rotation?
I think it should be doable for Little King's Story as well, as long as nothing goes wrong. Some games (only one in my experience so far: Bit.Trip Complete) really hate the way I handle analog stick D-Pad emulation and will crash when it's added--fortunately it wasn't practical in that game anyway since you needed the Left Stick as a separate input. But I'll come back to Little King's Story at some point and see if I can add the IR pointer and camera rotation on the Right Stick. 👍

Hi @Vague Rant. I have two questions
1 : Does priiloader vwii works when a wiivc injection is launched ? It could be the way to disable deflicker for injects.
2 : in wiivc compability list, for kirby return to dreamland, patching main.dol for bypass metafortress is mentioned.
There's a link to this page. What should i do with this code ?
https://github.com/dolphin-emu/dolphin/blob/master/Data/Sys/GameSettings/SUKE01.ini

Thanks for your amazing job and for answering to us.
  1. Unfortunately not, priiloader is skipped entirely when booting into Wii VC titles. You skip the entire Home Menu, which is also why there's no region locking on injections (doesn't mean they'll always work, but they'll always boot). It's worth mentioning, though, that the priiloader deflicker hack is specifically for disabling the deflicker filter inside the Wii Home Menu. It patches the Home Menu's copy of GXSetCopyFilter() to disable the filter but every game comes with their own copy, so it only affects the Home Menu itself.

  2. That's a really good question. I saw the same note when looking into Kirby a bit and I couldn't find any obvious way to patch the contents of a Dolphin GameSettings file directly into the main.dol, so maybe they literally just copied and pasted every single patch there with a hex editor and a lot of free time?

    My idea for when/if I get to looking at Kirby properly is to basically do a find-replace to turn the .ini file into a Riivolution .xml, since Wiimm's wit tool can apply Riivolution XML patches directly to a .dol. So my idea is ultimately: manually convert that file to Riivolution-style .xml, apply that XML to the main.dol, generate a .ips from the clean to the hacked main.dol, then share the .ips.


crush-hero.jpg


Alien Crush Returns revived the cult hit pinball series spawned by Compile on the PC Engine/TurboGrafx-16. Arriving after a 16-year hiatus (after 1992's Jaki Crush for Super Famicom), Tamsoft returns to the H. R. Giger and Alien (as in the movies)-inspired universe of Alien Crush. Besides its uniquely biological art style, the Crush series has always taken a more consciously video game-y approach to virtual pinball, with roaming enemies, boss battles and level transitions that would be impossible on a physical table. This entry was the first to introduce multiple tables as well as free DLC add-ons to extend the life of the game. Although, the latter hasn't been available since 2014. Hmm.

Highlight for @NestorM who was interested in this game.
Besides the Classic Controller hack, we've also got some bonus stuff here. That includes a minor aspect ratio fix and the restoration of all DLC content--which I want to stress again was all free and built into the game, simply unlocked by connecting to Nintendo WFC, which is no longer possible.

USAEURJPN

  1. Code:
    Classic Controller Support [Vague Rant]
    C20D5750 00000003
    28000002 4082000C
    386308F0 4E800020
    28000001 00000000
    C20D57C4 00000003
    28000002 4082000C
    38640060 4E800020
    28000001 00000000
    C21991EC 00000005
    C03E04A8 801E0004
    70000080 41820018
    48000009 4059999A
    7C8802A6 C0240000
    D03E04AC 00000000
    C2199C08 00000024
    90010024 2C040000
    40820110 8803005C
    2C000002 40820104
    48000021 801830E0
    3FAAAAAB 3C75C28F
    00000000 00000000
    3DCCCCCD 3F800000
    7CA802A6 90A1000C
    5727083C 38E7000C
    C0030074 FC000210
    C0230078 FC200A10
    FC00082A C0450014
    FC001040 4180000C
    38C0012C 48000014
    7CC53AAE 28060000
    408100A0 38C6FFFF
    7CC53B2E 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C0230074 FC211024
    4800002D D0030020
    C0030024 C0230078
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C0250018 FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    0419AAC0 7FC3F378
    C219B1B0 0000001A
    2C040002 408200C0
    38800001 71200800
    41820008 60E78000
    71200001 41820008
    60E70008 71204000
    41820008 60E70004
    71200002 41820008
    60E70001 71208000
    41820008 60E70002
    71200010 41820008
    60E70800 71200040
    41820008 60E70400
    71200008 41820008
    60E70080 71200020
    41820008 60E72000
    71202000 41820008
    60E70001 71200200
    41820008 60E74000
    71200080 41820008
    60E72000 71200004
    41820008 60E70400
    71200400 41820008
    60E70010 71201000
    41820008 60E71000
    7CE83B78 70E09FFF
    60000000 00000000
    Code:
    All DLC Downloaded [Vague Rant]
    C2025D80 00000005
    80034368 60004400
    90034368 80034364
    60003C08 64000400
    90034364 7C030378
    3800FFFF 00000000
    Code:
    Force 704 viWidth [Vague Rant]
    041607A4 38A00008
    041607D0 38C002C0
  2. Code:
    Classic Controller Support [Vague Rant]
    C20D5C40 00000003
    28000002 4082000C
    386308F0 4E800020
    28000001 00000000
    C20D5CB4 00000003
    28000002 4082000C
    38640060 4E800020
    28000001 00000000
    C21998EC 00000005
    C03E04A8 801E0004
    70000080 41820018
    48000009 4059999A
    7C8802A6 C0240000
    D03E04AC 00000000
    C219A308 00000024
    90010024 2C040000
    40820110 8803005C
    2C000002 40820104
    48000021 801837E0
    3FAAAAAB 3C75C28F
    00000000 00000000
    3DCCCCCD 3F800000
    7CA802A6 90A1000C
    5727083C 38E7000C
    C0030074 FC000210
    C0230078 FC200A10
    FC00082A C0450014
    FC001040 4180000C
    38C0012C 48000014
    7CC53AAE 28060000
    408100A0 38C6FFFF
    7CC53B2E 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C0230074 FC211024
    4800002D D0030020
    C0030024 C0230078
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C0250018 FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    0419B1C0 7FC3F378
    C219B8B0 0000001A
    2C040002 408200C0
    38800001 71200800
    41820008 60E78000
    71200001 41820008
    60E70008 71204000
    41820008 60E70004
    71200002 41820008
    60E70001 71208000
    41820008 60E70002
    71200010 41820008
    60E70800 71200040
    41820008 60E70400
    71200008 41820008
    60E70080 71200020
    41820008 60E72000
    71202000 41820008
    60E70001 71200200
    41820008 60E74000
    71200080 41820008
    60E72000 71200004
    41820008 60E70400
    71200400 41820008
    60E70010 71201000
    41820008 60E71000
    7CE83B78 70E09FFF
    60000000 00000000
    Code:
    All DLC Downloaded [Vague Rant]
    C2026184 00000005
    80034368 60004400
    90034368 80034364
    60003C08 64000400
    90034364 7C030378
    3800FFFF 00000000
    Code:
    Force 704 viWidth
    04160EA4 38A00008
    04160ED0 38C002C0
  3. Code:
    Classic Controller Support [Vague Rant]
    C20D4E44 00000003
    28000002 4082000C
    386308F0 4E800020
    28000001 00000000
    C20D4EB8 00000003
    28000002 4082000C
    38640060 4E800020
    28000001 00000000
    C2198920 00000005
    C03E04A8 801E0004
    70000080 41820018
    48000009 4059999A
    7C8802A6 C0240000
    D03E04AC 00000000
    C219933C 00000024
    90010024 2C040000
    40820110 8803005C
    2C000002 40820104
    48000021 801827D4
    3FAAAAAB 3C75C28F
    00000000 00000000
    3DCCCCCD 3F800000
    7CA802A6 90A1000C
    5727083C 38E7000C
    C0030074 FC000210
    C0230078 FC200A10
    FC00082A C0450014
    FC001040 4180000C
    38C0012C 48000014
    7CC53AAE 28060000
    408100A0 38C6FFFF
    7CC53B2E 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C0230074 FC211024
    4800002D D0030020
    C0030024 C0230078
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C0250018 FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    0419A1F4 7FC3F378
    C219A8E4 0000001A
    2C040002 408200C0
    38800001 71200800
    41820008 60E78000
    71200001 41820008
    60E70008 71204000
    41820008 60E70004
    71200002 41820008
    60E70001 71208000
    41820008 60E70002
    71200010 41820008
    60E70800 71200040
    41820008 60E70400
    71200008 41820008
    60E70080 71200020
    41820008 60E72000
    71202000 41820008
    60E70001 71200200
    41820008 60E74000
    71200080 41820008
    60E72000 71200004
    41820008 60E70400
    71200400 41820008
    60E70010 71201000
    41820008 60E71000
    7CE83B78 70E09FFF
    60000000 00000000
    Code:
    All DLC Downloaded [Vague Rant]
    C202534C 00000005
    80034368 60004400
    90034368 80034364
    60003C08 64000400
    90034364 7C030378
    3800FFFF 00000000
    Code:
    Force 704 viWidth [Vague Rant]
    0415FE98 38A00008
    0415FEC4 38C002C0
View attachment AlienCrushReturns_ClassicControllerHack_v1.0.zip

The archive above includes several tools, IPS patches and a Windows batch script to make applying this hack directly to a WAD relatively painless.

In addition to that ZIP, you will need:
  • an Alien Crush Returns WAD (USA, EUR or JPN)
  • common-key.bin
I will not help you find either of the above.

To use the script:
  1. extract the ZIP file somewhere sensible

  2. add the common-key.bin to that directory

  3. drag and drop your Alien Crush Returns WAD onto the apply-patch.bat file

    • alternatively, you can run the script directly and drag and drop the WAD into the window that opens or just type the path to your WAD manually

  4. answer the y/n prompts for which patches you want to apply

  5. once you're ready, the script will use the included tools to unpack, patch and repack a new WAD with your chosen patches

    • the original WAD will not be modified

  6. do whatever you normally would do with a WAD file
As a general rule, you shouldn't download and run random executables and batch scripts you find on the Internet. If you can't or don't want to run any of these on your machine, the IPS patches are included in the patches directory and you can figure out how to apply them in whatever way you feel comfortable. There is a readme.txt included with slightly more details on how to apply the patches in platform-agnostic terms (e.g. "Unpack your WAD").

Button Mapping​

Wii RemoteClassic ControllerFunction
Wiimote HomeHome
Works normally except for being on the Right Stick
Open/Close Home Menu
Wiimote D-PadD-Pad
L (Left)
Menus
Navigation
Gameplay
Shoot Ball (Down)
Previous/Next Action (Left/Right)
Wiimote AAMenus
Confirm
Gameplay
Use Action
Wiimote BB
ZR
Menus
Cancel
Gameplay
Right Flipper
Wiimote 1 & 2Not mappedNot used?
Wiimote PlusPlusMenus
Submit High Score
Wiimote MinusMinusGameplay
Pause
Wiimote ShakeXGameplay
Tilt Table
Wiimote PointerRight StickHome Button Menu
Navigation
Nunchuk StickLeft StickMenus
Navigation
Gameplay
Shoot Ball (Down)
Previous/Next Action (Left/Right)
Nunchuk CRGameplay
Next Action
Nunchuk ZY
ZL
Gameplay
Left Flipper

General Notes​

  • Another WiiWare, another dual-mode release. If you're just loading from a USB loader, the Gecko codes will be easier. If you need the WAD to have the hacks built-in, use the patch script.

  • The button layout is mostly self-explanatory so I'll cover the mildly weird stuff.

    • The flippers are double mapped on Y/B and ZL/ZR. This was mostly only done so that B could be mapped letter-for-letter, which makes menu navigation much nicer. But since it's possible to use Classic B to trigger the right flipper, I figured Y may as well be another option for the left flipper, in case anybody prefers to play using the face buttons. That said, ZL/ZR seem like the most natural inputs (on the CC Pro, anyway).

    • The Nunchuk C button is used to cycle to the next Action Ball (ability triggered with the A button), which can also be done by pressing the Wiimote D-Pad or Nunchuk Stick Right. Since this is more of a "rightward" movement, I put this on Classic R instead of Classic L where it would normally be. On Classic L, I put D-Pad Left so you can cycle left/right through the Action Balls that way if you prefer.

  • To briefly explain the Force viWidth 704 code: the Wii does not have square pixels, it has tall/thin rectangular pixels. When developing a game, studios would ideally factor this into their 2D and 3D rendering to ensure that everything looks the way they intended it. However, many Wii developers just didn't. Alien Crush Returns is designed for square pixels, so when displayed on the Wii, the pinballs are pin-ovals, etc.

    • Forcing a wider viWidth corrects for this by sacrificing a little bit of sharpness. If pixel clarity is more important to you than correct aspect ratio, don't use this code. On the other hand, if you want round, ball-shaped balls, do use this code.

  • The DLC is back! I want to say again (for the third time) that the DLC was always free and included in the game. Each "DLC" is actually a single bit in your save file which would be set for you automatically when you started up the game with Internet access. I don't believe there are any legal or ethical issues here but if any mods are uncomfortable, feel free to edit/delete my post or ask me to do the same.

    • The way DLC worked in this game was somewhat unique in that the "downloads" weren't always immediately accessible to the player. Alien Crush Returns features a number of Action Balls. Only the Speed Ball is available by default, all others (even if they have already been downloaded) must be unlocked through gameplay. The spoiler below explains how to unlock all of the Action Balls.
      • Reverse Ball: beat the first boss in Story Mode

      • Split Ball: beat the second boss in Story Mode

      • Tractor Ball (DLC): complete Story Mode

      • Bomb Ball (DLC): score 3 million on Arcade Stage 1

      • Paralyze Ball (DLC): score 3 million on Arcade Stage 2

      • Trap Ball (DLC): score 3 million on Arcade Stage 3

    • In addition to the Action Balls, there are three more DLCs: an additional stage in Story Mode, a No-Tilt Mode where you are never penalized for tilting the table and an additional difficulty level, Insane (or Expert in the Japanese release). These are available without any additional unlock conditions.

Technical Notes​

Classic Controller hack breakdown:
  • C2: bypass title screen Nunchuk check

  • C2: bypass gameplay Nunchuk check (rude, I already told you, I definitely have a Nunchuk)

  • C2 in read_kpad_acc(): tilt the table with a button

  • C2 in calc_dpd_variable(): infra-red pointer support

  • 04 in read_kpad_stick(): redirect Classic Controller left stick into Nunchuk analog stick

  • C2 in KPADRead(): button injector
DLC hack breakdown:
  • C2: when the game checks your save after starting or loading a game, intercept that check, ori/oris in the DLC bits and write the result back into memory
Aspect ratio hack breakdown:
  • 04 and 04 in VIConfigure(): ignore the actual viXOrigin and viWidth values reported by the GXRenderModeObj and replace them with 8 and 704, respectively
Instead of doing it all by hand like I did for Blaster Master Overdrive, when implementing the WiiWare WAD patches I got ChatGPT to help me write a Python script which takes an insertion address, destination address and an assembly payload like this:
Code:
python branch-generator.py 800D4E44 802764A0 crush\title_nunchuk_check.asm
... and converts them into Riivolution-compatible XML like this:
XML:
<memory offset="0x800D4E44" value="481A165C" />
<memory offset="0x802764A0" value="280000024082000C386308F04E800020280000014BE5E994" />
It also feeds me back the next destination address so that I can do multiple successive patches. Once that's done I can apply the Riivolution hack to the main.dol using wit dolpatch. This is a horrible messy workaround and the code is hideous since it's half AI and half "I have no idea how Python works," but it's a lot nicer than manually calculating branch distances and poking them into the main.dol via hex editor.

If anybody asks for the code they can have it, but it's definitely gross. Leaves behind temp files and stuff because all I cared about was getting something running which made generating IPS patches slightly less awful. I might try to clean it up and post it somewhere but I also might just keep using it as a broken semi-functional disaster area, who knows. Either way, this should make future WiiWare hacks more approachable for me; I wasn't looking forward to doing another after Blaster Master.
 

awesomeee

Well-Known Member
Newcomer
Joined
Oct 7, 2024
Messages
58
Trophies
0
XP
93
Country
United States
Awesome! A way to build a patched WAD painlessly!

Also, i checked Fluidity and it didnt seem to have ay KPAD stuff in dolphin, so i have no idea how it will be done lol

I also looked at Mario Strikers Charged and the KPAD code stuff also seems to exist, but the low level motion is an issue sadly.
 
Last edited by awesomeee,
  • Like
Reactions: Vague Rant

awesomeee

Well-Known Member
Newcomer
Joined
Oct 7, 2024
Messages
58
Trophies
0
XP
93
Country
United States
@Vague Rant Good news! I found a way to emulate a jump motion in Fluidity using dolphin.

So at first i tried to use the swing emulation, but that made all the tilting motion weird, so i tried the SHAKE one instead, and it doesnt affect the camera! Once you get around to fluidity, make sure the jumping action is emulating a KPAD Shake.

(NOTE, I did not do the debugging ui, this is simply messing around with dolphin's controller emulation feature.)
Post automatically merged:

With all this being said, i can now make a full concept of the controls.



Fluidity!.png
Fluidity (by curve games) was a super awesome game that people loved, highlight to Vague Rant that loved this game (and awesome bringing up the concept, haha

With that being said: Lets get into the controls

(Spoilers: Non existent codes)

Wii Remote Classic Controller Game Function

Tilting Left Stick Tilt world

1 Button Y Gather ability

Shake upwards B Jump, drain cloud form

2 Button A Confirm something ingame, dialogue, etc

D - pad D pad / left stick Navigate menus

Up d-pad ZR Squirt Ability

A Button X Enter playroom, camera zoom out view


B Button Not needed Not used.

Extra mapping (for pinball game

Left D - pad / 2 button ZL and ZR (l-dpad is ZL and 2 is ZR) Pinball



L and R buttons can be mapped to other functions, but this is a good concept. The pinball mappings are for world 2's pinball game.

PS: Sorry for how badly this is formatted.
 
Last edited by awesomeee,

NestorM

Well-Known Member
Member
Joined
Feb 19, 2021
Messages
100
Trophies
1
Age
40
XP
1,087
Country
France
I think it should be doable for Little King's Story as well, as long as nothing goes wrong. Some games (only one in my experience so far: Bit.Trip Complete) really hate the way I handle analog stick D-Pad emulation and will crash when it's added--fortunately it wasn't practical in that game anyway since you needed the Left Stick as a separate input. But I'll come back to Little King's Story at some point and see if I can add the IR pointer and camera rotation on the Right Stick. 👍


  1. Unfortunately not, priiloader is skipped entirely when booting into Wii VC titles. You skip the entire Home Menu, which is also why there's no region locking on injections (doesn't mean they'll always work, but they'll always boot). It's worth mentioning, though, that the priiloader deflicker hack is specifically for disabling the deflicker filter inside the Wii Home Menu. It patches the Home Menu's copy of GXSetCopyFilter() to disable the filter but every game comes with their own copy, so it only affects the Home Menu itself.

  2. That's a really good question. I saw the same note when looking into Kirby a bit and I couldn't find any obvious way to patch the contents of a Dolphin GameSettings file directly into the main.dol, so maybe they literally just copied and pasted every single patch there with a hex editor and a lot of free time?

    My idea for when/if I get to looking at Kirby properly is to basically do a find-replace to turn the .ini file into a Riivolution .xml, since Wiimm's wit tool can apply Riivolution XML patches directly to a .dol. So my idea is ultimately: manually convert that file to Riivolution-style .xml, apply that XML to the main.dol, generate a .ips from the clean to the hacked main.dol, then share the .ips.


View attachment 470648

Alien Crush Returns revived the cult hit pinball series spawned by Compile on the PC Engine/TurboGrafx-16. Arriving after a 16-year hiatus (after 1992's Jaki Crush for Super Famicom), Tamsoft returns to the H. R. Giger and Alien (as in the movies)-inspired universe of Alien Crush. Besides its uniquely biological art style, the Crush series has always taken a more consciously video game-y approach to virtual pinball, with roaming enemies, boss battles and level transitions that would be impossible on a physical table. This entry was the first to introduce multiple tables as well as free DLC add-ons to extend the life of the game. Although, the latter hasn't been available since 2014. Hmm.

Highlight for @NestorM who was interested in this game.
Besides the Classic Controller hack, we've also got some bonus stuff here. That includes a minor aspect ratio fix and the restoration of all DLC content--which I want to stress again was all free and built into the game, simply unlocked by connecting to Nintendo WFC, which is no longer possible.

USAEURJPN

  1. Code:
    Classic Controller Support [Vague Rant]
    C20D5750 00000003
    28000002 4082000C
    386308F0 4E800020
    28000001 00000000
    C20D57C4 00000003
    28000002 4082000C
    38640060 4E800020
    28000001 00000000
    C21991EC 00000005
    C03E04A8 801E0004
    70000080 41820018
    48000009 4059999A
    7C8802A6 C0240000
    D03E04AC 00000000
    C2199C08 00000024
    90010024 2C040000
    40820110 8803005C
    2C000002 40820104
    48000021 801830E0
    3FAAAAAB 3C75C28F
    00000000 00000000
    3DCCCCCD 3F800000
    7CA802A6 90A1000C
    5727083C 38E7000C
    C0030074 FC000210
    C0230078 FC200A10
    FC00082A C0450014
    FC001040 4180000C
    38C0012C 48000014
    7CC53AAE 28060000
    408100A0 38C6FFFF
    7CC53B2E 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C0230074 FC211024
    4800002D D0030020
    C0030024 C0230078
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C0250018 FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    0419AAC0 7FC3F378
    C219B1B0 0000001A
    2C040002 408200C0
    38800001 71200800
    41820008 60E78000
    71200001 41820008
    60E70008 71204000
    41820008 60E70004
    71200002 41820008
    60E70001 71208000
    41820008 60E70002
    71200010 41820008
    60E70800 71200040
    41820008 60E70400
    71200008 41820008
    60E70080 71200020
    41820008 60E72000
    71202000 41820008
    60E70001 71200200
    41820008 60E74000
    71200080 41820008
    60E72000 71200004
    41820008 60E70400
    71200400 41820008
    60E70010 71201000
    41820008 60E71000
    7CE83B78 70E09FFF
    60000000 00000000
    Code:
    All DLC Downloaded [Vague Rant]
    C2025D80 00000005
    80034368 60004400
    90034368 80034364
    60003C08 64000400
    90034364 7C030378
    3800FFFF 00000000
    Code:
    Force 704 viWidth [Vague Rant]
    041607A4 38A00008
    041607D0 38C002C0
  2. Code:
    Classic Controller Support [Vague Rant]
    C20D5C40 00000003
    28000002 4082000C
    386308F0 4E800020
    28000001 00000000
    C20D5CB4 00000003
    28000002 4082000C
    38640060 4E800020
    28000001 00000000
    C21998EC 00000005
    C03E04A8 801E0004
    70000080 41820018
    48000009 4059999A
    7C8802A6 C0240000
    D03E04AC 00000000
    C219A308 00000024
    90010024 2C040000
    40820110 8803005C
    2C000002 40820104
    48000021 801837E0
    3FAAAAAB 3C75C28F
    00000000 00000000
    3DCCCCCD 3F800000
    7CA802A6 90A1000C
    5727083C 38E7000C
    C0030074 FC000210
    C0230078 FC200A10
    FC00082A C0450014
    FC001040 4180000C
    38C0012C 48000014
    7CC53AAE 28060000
    408100A0 38C6FFFF
    7CC53B2E 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C0230074 FC211024
    4800002D D0030020
    C0030024 C0230078
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C0250018 FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    0419B1C0 7FC3F378
    C219B8B0 0000001A
    2C040002 408200C0
    38800001 71200800
    41820008 60E78000
    71200001 41820008
    60E70008 71204000
    41820008 60E70004
    71200002 41820008
    60E70001 71208000
    41820008 60E70002
    71200010 41820008
    60E70800 71200040
    41820008 60E70400
    71200008 41820008
    60E70080 71200020
    41820008 60E72000
    71202000 41820008
    60E70001 71200200
    41820008 60E74000
    71200080 41820008
    60E72000 71200004
    41820008 60E70400
    71200400 41820008
    60E70010 71201000
    41820008 60E71000
    7CE83B78 70E09FFF
    60000000 00000000
    Code:
    All DLC Downloaded [Vague Rant]
    C2026184 00000005
    80034368 60004400
    90034368 80034364
    60003C08 64000400
    90034364 7C030378
    3800FFFF 00000000
    Code:
    Force 704 viWidth
    04160EA4 38A00008
    04160ED0 38C002C0
  3. Code:
    Classic Controller Support [Vague Rant]
    C20D4E44 00000003
    28000002 4082000C
    386308F0 4E800020
    28000001 00000000
    C20D4EB8 00000003
    28000002 4082000C
    38640060 4E800020
    28000001 00000000
    C2198920 00000005
    C03E04A8 801E0004
    70000080 41820018
    48000009 4059999A
    7C8802A6 C0240000
    D03E04AC 00000000
    C219933C 00000024
    90010024 2C040000
    40820110 8803005C
    2C000002 40820104
    48000021 801827D4
    3FAAAAAB 3C75C28F
    00000000 00000000
    3DCCCCCD 3F800000
    7CA802A6 90A1000C
    5727083C 38E7000C
    C0030074 FC000210
    C0230078 FC200A10
    FC00082A C0450014
    FC001040 4180000C
    38C0012C 48000014
    7CC53AAE 28060000
    408100A0 38C6FFFF
    7CC53B2E 38C00002
    98C3005E 81850000
    7D8803A6 4E800021
    2C030001 7FE3FB78
    80A1000C C0450004
    40820008 EC4200B2
    C0650008 C0030020
    C0230074 FC211024
    4800002D D0030020
    C0030024 C0230078
    FC200850 48000019
    D0030024 80010024
    7C0803A6 38210020
    4E800020 FC0100FA
    C0250018 FC000800
    4180000C FC000890
    48000014 FC200850
    FC000800 41810008
    FC000890 4E800020
    60000000 00000000
    0419A1F4 7FC3F378
    C219A8E4 0000001A
    2C040002 408200C0
    38800001 71200800
    41820008 60E78000
    71200001 41820008
    60E70008 71204000
    41820008 60E70004
    71200002 41820008
    60E70001 71208000
    41820008 60E70002
    71200010 41820008
    60E70800 71200040
    41820008 60E70400
    71200008 41820008
    60E70080 71200020
    41820008 60E72000
    71202000 41820008
    60E70001 71200200
    41820008 60E74000
    71200080 41820008
    60E72000 71200004
    41820008 60E70400
    71200400 41820008
    60E70010 71201000
    41820008 60E71000
    7CE83B78 70E09FFF
    60000000 00000000
    Code:
    All DLC Downloaded [Vague Rant]
    C202534C 00000005
    80034368 60004400
    90034368 80034364
    60003C08 64000400
    90034364 7C030378
    3800FFFF 00000000
    Code:
    Force 704 viWidth [Vague Rant]
    0415FE98 38A00008
    0415FEC4 38C002C0
View attachment 470651

The archive above includes several tools, IPS patches and a Windows batch script to make applying this hack directly to a WAD relatively painless.

In addition to that ZIP, you will need:
  • an Alien Crush Returns WAD (USA, EUR or JPN)
  • common-key.bin
I will not help you find either of the above.

To use the script:

  1. extract the ZIP file somewhere sensible

  2. add the common-key.bin to that directory

  3. drag and drop your Alien Crush Returns WAD onto the apply-patch.bat file
    • alternatively, you can run the script directly and drag and drop the WAD into the window that opens or just type the path to your WAD manually

  4. answer the y/n prompts for which patches you want to apply

  5. once you're ready, the script will use the included tools to unpack, patch and repack a new WAD with your chosen patches
    • the original WAD will not be modified

  6. do whatever you normally would do with a WAD file
As a general rule, you shouldn't download and run random executables and batch scripts you find on the Internet. If you can't or don't want to run any of these on your machine, the IPS patches are included in the patches directory and you can figure out how to apply them in whatever way you feel comfortable. There is a readme.txt included with slightly more details on how to apply the patches in platform-agnostic terms (e.g. "Unpack your WAD").

Button Mapping​

Wii RemoteClassic ControllerFunction
Wiimote HomeHome
Works normally except for being on the Right Stick
Open/Close Home Menu
Wiimote D-PadD-Pad
L (Left)
Menus
Navigation
Gameplay
Shoot Ball (Down)
Previous/Next Action (Left/Right)
Wiimote AAMenus
Confirm
Gameplay
Use Action
Wiimote BB
ZR
Menus
Cancel
Gameplay
Right Flipper
Wiimote 1 & 2Not mappedNot used?
Wiimote PlusPlusMenus
Submit High Score
Wiimote MinusMinusGameplay
Pause
Wiimote ShakeXGameplay
Tilt Table
Wiimote PointerRight StickHome Button Menu
Navigation
Nunchuk StickLeft StickMenus
Navigation
Gameplay
Shoot Ball (Down)
Previous/Next Action (Left/Right)
Nunchuk CRGameplay
Next Action
Nunchuk ZY
ZL
Gameplay
Left Flipper

General Notes​

  • Another WiiWare, another dual-mode release. If you're just loading from a USB loader, the Gecko codes will be easier. If you need the WAD to have the hacks built-in, use the patch script.

  • The button layout is mostly self-explanatory so I'll cover the mildly weird stuff.
    • The flippers are double mapped on Y/B and ZL/ZR. This was mostly only done so that B could be mapped letter-for-letter, which makes menu navigation much nicer. But since it's possible to use Classic B to trigger the right flipper, I figured Y may as well be another option for the left flipper, in case anybody prefers to play using the face buttons. That said, ZL/ZR seem like the most natural inputs (on the CC Pro, anyway).

    • The Nunchuk C button is used to cycle to the next Action Ball (ability triggered with the A button), which can also be done by pressing the Wiimote D-Pad or Nunchuk Stick Right. Since this is more of a "rightward" movement, I put this on Classic R instead of Classic L where it would normally be. On Classic L, I put D-Pad Left so you can cycle left/right through the Action Balls that way if you prefer.

  • To briefly explain the Force viWidth 704 code: the Wii does not have square pixels, it has tall/thin rectangular pixels. When developing a game, studios would ideally factor this into their 2D and 3D rendering to ensure that everything looks the way they intended it. However, many Wii developers just didn't. Alien Crush Returns is designed for square pixels, so when displayed on the Wii, the pinballs are pin-ovals, etc.
    • Forcing a wider viWidth corrects for this by sacrificing a little bit of sharpness. If pixel clarity is more important to you than correct aspect ratio, don't use this code. On the other hand, if you want round, ball-shaped balls, do use this code.

  • The DLC is back! I want to say again (for the third time) that the DLC was always free and included in the game. Each "DLC" is actually a single bit in your save file which would be set for you automatically when you started up the game with Internet access. I don't believe there are any legal or ethical issues here but if any mods are uncomfortable, feel free to edit/delete my post or ask me to do the same.
    • The way DLC worked in this game was somewhat unique in that the "downloads" weren't always immediately accessible to the player. Alien Crush Returns features a number of Action Balls. Only the Speed Ball is available by default, all others (even if they have already been downloaded) must be unlocked through gameplay. The spoiler below explains how to unlock all of the Action Balls.
      • Reverse Ball: beat the first boss in Story Mode

      • Split Ball: beat the second boss in Story Mode

      • Tractor Ball (DLC): complete Story Mode

      • Bomb Ball (DLC): score 3 million on Arcade Stage 1

      • Paralyze Ball (DLC): score 3 million on Arcade Stage 2

      • Trap Ball (DLC): score 3 million on Arcade Stage 3

    • In addition to the Action Balls, there are three more DLCs: an additional stage in Story Mode, a No-Tilt Mode where you are never penalized for tilting the table and an additional difficulty level, Insane (or Expert in the Japanese release). These are available without any additional unlock conditions.

Technical Notes​

Classic Controller hack breakdown:
  • C2: bypass title screen Nunchuk check

  • C2: bypass gameplay Nunchuk check (rude, I already told you, I definitely have a Nunchuk)

  • C2 in read_kpad_acc(): tilt the table with a button

  • C2 in calc_dpd_variable(): infra-red pointer support

  • 04 in read_kpad_stick(): redirect Classic Controller left stick into Nunchuk analog stick

  • C2 in KPADRead(): button injector
DLC hack breakdown:
  • C2: when the game checks your save after starting or loading a game, intercept that check, ori/oris in the DLC bits and write the result back into memory
Aspect ratio hack breakdown:
  • 04 and 04 in VIConfigure(): ignore the actual viXOrigin and viWidth values reported by the GXRenderModeObj and replace them with 8 and 704, respectively
Instead of doing it all by hand like I did for Blaster Master Overdrive, when implementing the WiiWare WAD patches I got ChatGPT to help me write a Python script which takes an insertion address, destination address and an assembly payload like this:
Code:
python branch-generator.py 800D4E44 802764A0 crush\title_nunchuk_check.asm
... and converts them into Riivolution-compatible XML like this:
XML:
<memory offset="0x800D4E44" value="481A165C" />
<memory offset="0x802764A0" value="280000024082000C386308F04E800020280000014BE5E994" />
It also feeds me back the next destination address so that I can do multiple successive patches. Once that's done I can apply the Riivolution hack to the main.dol using wit dolpatch. This is a horrible messy workaround and the code is hideous since it's half AI and half "I have no idea how Python works," but it's a lot nicer than manually calculating branch distances and poking them into the main.dol via hex editor.

If anybody asks for the code they can have it, but it's definitely gross. Leaves behind temp files and stuff because all I cared about was getting something running which made generating IPS patches slightly less awful. I might try to clean it up and post it somewhere but I also might just keep using it as a broken semi-functional disaster area, who knows. Either way, this should make future WiiWare hacks more approachable for me; I wasn't looking forward to doing another after Blaster Master.
Ok. Thank you for answering. I love Alien Crush.
 
  • Like
Reactions: Vague Rant

awesomeee

Well-Known Member
Newcomer
Joined
Oct 7, 2024
Messages
58
Trophies
0
XP
93
Country
United States
Any chances for Zelda Skyward sword to receive this amazing upgrade?
Skyward sword uses motion plus, it might not be possible sadly
Post automatically merged:


Also, Vague rant, if you have epic mickey 2 on your list PLEASE do not do that one yet, do it later (unless someone begs lol)
The reason why is because epic mickey 1 already seems stressful enough with all that info you told us, so it isnt worth doing for now as it can be stressful. 👍
 
Last edited by awesomeee,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    kijetesantakalu042 @ kijetesantakalu042: https://www.youtube.com/watch?v=9Vl1EGGzVkw