• Welcome to Smashboards, the world's largest Super Smash Brothers community! Over 250,000 Smash Bros. fans from around the world have come to discuss these great games in over 19 million posts!

    You are currently viewing our boards as a visitor. Click here to sign up right now and start on your path in the Smash community!

Request Disable shielding for arbitrary shoulder button

Malurth

Smash Cadet
Joined
Dec 18, 2011
Messages
34
As in, a code to disable shield on L, but not on R. (Or vice versa.) So it could still do everything else (tech, airdodge, L-cancel, etc), but if you stand there and hold the newly 'disabled' button, nothing happens but your character continuing to stand there.

I guess ideally this would be a per-player code, but if it's universal that's fine.

Also, important note: if anyone out there knows it's possible to do this, but doesn't feel like actually doing it, just let me know. I figured I might try to get into melee modding myself via making this code, but I don't want to try and implement this only to eventually realize it's not possible at all.

(And if anyone is wondering the reason why I want this: throughout my entire melee career I've been trying to switch my muscle memory to using R to shield, but it always slips back to L whenever I stop keeping track of it. I think the only way to actually fix this is if L simply didn't work to shield, but did everything else.)
 
Last edited:

UnclePunch

Smash Ace
Joined
Nov 9, 2014
Messages
673
This was a fun one.

Disabling the digital button was for shielding was easy. The hard part was light shielding. The game doesn't keep track of which button you're using for analog presses so I set a hook in the function that takes both triggers' data and stores the one that is more pressed into the player block. I had it set a flag at 0x24 of the start of the player entity block, "01" for left trigger, "02" for right trigger. From there it was pretty simple. Lots of hooks though, one for the trigger identifier, one for hard press, one for light shield press, and another for hard press and light shield press when you're in the dash AS, not sure why but there's a separate function that checks for the inputs for that AS.

Code:
$No Shield on L Press [UnclePunch]
C206AEF8 00000004
C0030030 FC000840
4081000C 39C00001
48000008 39C00002
99DFFFC4 00000000
C2091A64 00000005
2C000040 41820010
2C000020 41820018
48000004 3DC08009
61CE1A88 7DC903A6
4E800420 00000000
C2091A94 00000004
89C30024 2C0E0001
4082000C 38000000
48000008 38000001
60000000 00000000
C2091afc 00000005
2C000040 41820010
2C000020 41820018
48000004 3DC08009
61CE1B20 7DC903A6
4E800420 00000000
C2091B2C 00000004
89C30024 2C0E0001
4082000C 38000000
48000008 38000001
60000000 00000000
Code:
$No Shield on R Press [UnclePunch]
C206AEF8 00000004
C0030030 FC000840
4081000C 39C00001
48000008 39C00002
99DFFFC4 00000000
C2091A64 00000005
2C000020 41820010
2C000040 41820018
48000004 3DC08009
61CE1A88 7DC903A6
4E800420 00000000
C2091A94 00000004
89C30024 2C0E0002
4082000C 38000000
48000008 38000001
60000000 00000000
C2091afc 00000005
2C000020 41820010
2C000040 41820018
48000004 3DC08009
61CE1B20 7DC903A6
4E800420 00000000
C2091B2C 00000004
89C30024 2C0E0002
4082000C 38000000
48000008 38000001
60000000 00000000
 
Last edited:

Malurth

Smash Cadet
Joined
Dec 18, 2011
Messages
34
Awesome, thanks a ton!

Edits: Ok I had some initial difficulty getting it to work (apparently it conflicts with any 'netplay settings' code) but I can now confirm it works as intended.

As a side note, I noticed you can still roll sometimes when holding the button down, even though you are never in shield. Interesting.
 
Last edited:

UnclePunch

Smash Ace
Joined
Nov 9, 2014
Messages
673
Awesome, thanks a ton!

Edits: Ok I had some initial difficulty getting it to work (apparently it conflicts with any 'netplay settings' code) but I can now confirm it works as intended.

As a side note, I noticed you can still roll sometimes when holding the button down, even though you are never in shield. Interesting.
Yeah, noticed that too. I guess because if you press R and left/right at the same time you can roll without entering shield. HAL probably just assumed you'd be in shield if you were holding R so it doesn't use the "instant buttons" value.
 
Top Bottom