• 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!

Grab Infinite Removal Code

_glook

Got a Passion for Smashin'
Joined
Sep 30, 2005
Messages
802
Location
Not UC Berkeley anymore
UPDATE BY Punkline on Oct. 21, 2018:
Punkline has updated this code, so use his version on post #11: https://smashboards.com/threads/grab-infinite-removal-code.412693/post-22571254





ORIGINAL POST:

This is for v1.02.
Code:
C208EE48 00000006
887D2226 70630020
4082001C C01D1A4C
C02296F0 FC000840
4C401382 40820008
38000000 2C000000
60000000 00000000
This removes grab infinites by making any attack knock opponents out of a grab when the grip has run out. This keeps everything else about grabs the same except for the ability to extend grabs into infinity.

This nerfs Ice Climbers a bit. From the discussions I've seen online of wobbling seem to indicate that a nerf like this would not affect the tier position of the Ice Climbers, but even so, it might be good to give them a few buffs. Here are a couple of my recommendations:

I would recommend at least doubling Popo's grounded Up+B animation speed, so that Up+B out of shield desyncing is much more useful. It requires the following entries into your Frame Speed Modification List (click here for more info):
Code:
0E00015E 40000000
0E00015F 40000000
As you may know, Nana's AI difficulty setting depends on how high of a percent Popo is. This makes it so that Nana is super easy to kill at low percents. To make Nana (or Popo, depending on which colors you use) not such a dumb dumb, Achilles created a code to make that less of an issue:
Code:
Nana is always Lvl 9 (1.02) [Achilles]
040B10FC 60000000

August 7th, 2015:
- Fixed bug where certain throws were not behaving as normal, ones where the throw leads into a subsequent hit, like Young Link, Link, and upthrows. Many other throws were potentially broken.

Source code:
@ 8008EE48
lbz r3, 0x2226(r29) # Load throw state
andi. r3, r3, 0x20 # Is the "isThrowing" bit set?
bne NORMAL # If it is set, proceed as normal
lfs f0, 0x1A4C(r29) # Load grip amount into f0
lfs f1, -0x6910(r2) # Load 0 into f1
fcmpo cr0,f0,f1
cror 2,0,2
bne NORMAL # 40820008
li r0, 0
NORMAL:
cmpwi r0, 0 # The code that's already there
 
Last edited:

Myougi

My posts are gluten free.
Joined
Mar 14, 2014
Messages
484
Location
WEST COAST BEST COAST
This is for v1.02.
Code:
C208EE48 00000004
C01D1A4C C02296F0
FC000840 4C401382
40820008 38000000
2C000000 00000000
This removes grab infinites by making any attack knock opponents out of a grab when the grip has run out. This keeps everything else about grabs the same except for the ability to extend grabs into infinity.

Noticed a huge bug with this. Throws no longer work correctly for some characters.
If I go Young Link vs Doctor Mario, grab Doc with Young Link, then up-throw, Doc breaks out of the throw and gets sent to the left/right of Young Link.
 

_glook

Got a Passion for Smashin'
Joined
Sep 30, 2005
Messages
802
Location
Not UC Berkeley anymore
Noticed a huge bug with this. Throws no longer work correctly for some characters.
If I go Young Link vs Doctor Mario, grab Doc with Young Link, then up-throw, Doc breaks out of the throw and gets sent to the left/right of Young Link.
Thanks for catching that. I believe throws are their own category, so I can probably just detect whether the current move being used is a throw or not. I've changed the status of the topic to reflect the bug.
 

_glook

Got a Passion for Smashin'
Joined
Sep 30, 2005
Messages
802
Location
Not UC Berkeley anymore
Okay, the bug should be fixed. I added a check so that if the character is being thrown, it behaves as normal, so moves like Young Link and Link's upthrows, which have a subsequent hit after the initial throw, no longer have odd behavior.

Also added the source code, for anyone interested.
 

_glook

Got a Passion for Smashin'
Joined
Sep 30, 2005
Messages
802
Location
Not UC Berkeley anymore
Since this nerfs ICs a little bit, I went ahead and added a couple of recommended buffs, one that increases Popo's grounded Up+B animation speed so that Up+B from shield desyncs are much safer and more useful, and one from Achilles that freezes Nana's AI level to 9 instead of it being based on Popo's damage percent, which should make it so it isn't as super easy to kill Nana when Popo is at low percent.
 
Last edited:

_glook

Got a Passion for Smashin'
Joined
Sep 30, 2005
Messages
802
Location
Not UC Berkeley anymore
There's a bug where Ganondorf's Up+B doesn't work correctly if you aim it to the side and then grab someone (doing it straight up works fine apparently).

Gonna look into this.
 

Aerros11

Smash Journeyman
Joined
Sep 5, 2009
Messages
284
@ _glook _glook I'll tell you hwut...

Applying the same HorMom of 1.15 (Horizontal Momentum >__>'|l) to 20XX Ganon from SDR Ganon cannot replicate the problem.
 

Aerros11

Smash Journeyman
Joined
Sep 5, 2009
Messages
284
Also, injecting the grab infinite removal code as a gecko code in the Melee Code Manager does not seem to work properly (into a fresh melee). Maybe I did something wrong. Is there a way to inject this code with notepad++ or hex editing? I don't know which offset to start on : /

Thanks though and hi again : D


Nvm, it's a C2 gecko code...duh @__@
 
Last edited:

The Cape

Smash Master
Joined
May 16, 2004
Messages
4,478
Location
Carlisle, PA
There's a bug where Ganondorf's Up+B doesn't work correctly if you aim it to the side and then grab someone (doing it straight up works fine apparently).

Gonna look into this.
Any luck on this?

I'm seeing this issue when Ganon grabs a grounded opponent only, not when they are in the air.

Edit:

So this is what I have found out: Ganon's UpB does 19 damage normally and 17 with this code on. This is how the breakdown works:

Hold: Frame 2: hit, 6H, 10h, 14h, 15 > Release which does 15

With the code the initial hits do less than 1 and then does 13% at the end and comboed with a one damage hit to do 14% total (tested on airborne opponents)
 
Last edited:

The Cape

Smash Master
Joined
May 16, 2004
Messages
4,478
Location
Carlisle, PA
OK, I think I figured this out.

So I experimented with different damages and knockbacks and had no luck. Eventually I tried FSMs on Ganon's UpB and found that if I speed up the hold element so no hits happen I have no issues with the move, slow it down at all and it breaks on the first impact.

This makes me think that if we exclude the TCaptainCapture state or whatever it is called from the infinite throw removal issue, since it is it's own unique capture state, then this should work again. I think the game is viewing the state as a capture state, without grip strength, and when an attack hits it registers the issue and released the opponent.

Can anyone code this into the above code?


Also, a temporary fix that works. Remove the knockback from the looping hitboxes and it works.

This is the example that I have. The small hitbox is attached to Ganon's head and hits the opponent being grabbed, while the other hitboxes generally hit those standing near Ganon for teams or FFAs.
 

Attachments

Last edited:

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
The Cape The Cape requested a revision of this code that ignores pummels and Captain Falcon/Ganon’s up-B grab. Changes simply add a few comparisons to the code. The DOL Mod has been ported for all Melee versions:

Code:
-==-

Stop infinite grab Combos v3
Revision ignores the following action states from grabber:
0x0D9 - "CatchAttack" for all characters
0x163 - Up+B catch for Captain Falcon and Ganondorf
[Glook, Punkline]
Revision ---- DOL Offset ---- Hex to Replace ---------- ASM Code -
NTSC 1.02 --- 0x8008EE48 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
PAL 1.00 ---- 0x8008F500 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
NTSC 1.01 --- 0x8008EC88 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
NTSC 1.00 --- 0x8008EBA0 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
#
Code:
-==-
!
ASM - Stop infinite grab Combos v3
Revision ignores the following action states:
0x0D9 - "CatchAttack" for all characters
0x163 - Up+B catch for Captain Falcon and Ganondorf
[Glook, Punkline]

Revision ---- DOL Offset ---- Hex to Replace ---------- ASM Code -
NTSC 1.02 --- 0x8008EE48 ---- 2c000000 -> Branch
# r29 = grabee   player data
# r27 = grabber  player data

# player data offsets
.set xCHID, 0x04
.set xASID, 0x10
.set xBreakout, 0x1A4C
.set xFlags,    0x2226

# action states
.set CatchAttack, 0xD9
.set CatchSpecialCfGd, 0x163

# character IDs
.set Cf, 0x02
.set Gd, 0x19

_check_pummel:
lwz r3, xASID(r27)
cmpwi r3, CatchAttack
beq- _return
# return if grabbing player is pummeling

_check_CfGd_special_grab:
cmpwi r3, CatchSpecialCfGd
bne+ _check_flag
# proceed with normal v2 code if not in up-B action for Cf or Gd
# else, check for character ID

  _confirm_character_ID:
  lwz r3, xCHID(r27)
  cmpwi r3, Cf
  cmpwi cr1, r3, Gd
  cror eq, eq, eq+4
  beq- _return
  # return if grabbing character ID matches Captain Falcon or Ganondorf

_check_flag:
lbz   r3, xFlags(r29)
andi. r3, r3, 0x20
bne- _return
# check captured flag

  _check_breakout:
  lfs f0, xBreakout(r29)
  li r3, 0
  stw r3, -0x10(sp)  # this has been changed from an rtoc reference to ease porting
  lfs f1, -0x10(sp)
  fcmpo cr0, f0, f1
  cror eq, lt, eq
  bne- _return

    li r0, 0
    # set condition to 0 for return comparison

_return:
cmpwi r0, 0
.long 0
Code:
$Stop Infinite Grab Combos v3[Glook, Punkline]
C208EE48 0000000C
807B0010 2C0300D9
4182004C 2C030163
40A20018 807B0004
2C030002 2C830019
4C423382 41820030
887D2226 70630020
40820024 C01D1A4C
38600000 9061FFF0
C021FFF0 FC000840
4C401382 40820008
38000000 2C000000
60000000 00000000
 
Last edited:

The Cape

Smash Master
Joined
May 16, 2004
Messages
4,478
Location
Carlisle, PA
The Cape The Cape requested a revision of this code that ignores pummels and Captain Falcon/Ganon’s up-B grab. Changes simply add a few comparisons to the code. The DOL Mod has been ported for all Melee versions:

Code:
-==-

Stop infinite grab Combos v3
Revision ignores the following action states from grabber:
0x0D9 - "CatchAttack" for all characters
0x163 - Up+B catch for Captain Falcon and Ganondorf
[Glook, Punkline]
Revision ---- DOL Offset ---- Hex to Replace ---------- ASM Code -
NTSC 1.02 --- 0x8008EE48 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
PAL 1.00 ---- 0x8008F500 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
NTSC 1.01 --- 0x8008EC88 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
NTSC 1.00 --- 0x8008EBA0 ---- 2c000000 -> Branch
807B0010 2C0300D9 4182004C 2C030163 40A20018 807B0004 2C030002 2C830019 4C423382 41820030 887D2226 70630020 40820024 C01D1A4C 38600000 9061FFF0 C021FFF0 FC000840 4C401382 40820008 38000000 2C000000 00000000
#
Code:
-==-
!
ASM - Stop infinite grab Combos v3
Revision ignores the following action states:
0x0D9 - "CatchAttack" for all characters
0x163 - Up+B catch for Captain Falcon and Ganondorf
[Glook, Punkline]

Revision ---- DOL Offset ---- Hex to Replace ---------- ASM Code -
NTSC 1.02 --- 0x8008EE48 ---- 2c000000 -> Branch
# r29 = grabee   player data
# r27 = grabber  player data

# player data offsets
.set xCHID, 0x04
.set xASID, 0x10
.set xBreakout, 0x1A4C
.set xFlags,    0x2226

# action states
.set CatchAttack, 0xD9
.set CatchSpecialCfGd, 0x163

# character IDs
.set Cf, 0x02
.set Gd, 0x19

_check_pummel:
lwz r3, xASID(r27)
cmpwi r3, CatchAttack
beq- _return
# return if grabbing player is pummeling

_check_CfGd_special_grab:
cmpwi r3, CatchSpecialCfGd
bne+ _check_flag
# proceed with normal v2 code if not in up-B action for Cf or Gd
# else, check for character ID

  _confirm_character_ID:
  lwz r3, xCHID(r27)
  cmpwi r3, Cf
  cmpwi cr1, r3, Gd
  cror eq, eq, eq+4
  beq- _return
  # return if grabbing character ID matches Captain Falcon or Ganondorf

_check_flag:
lbz   r3, xFlags(r29)
andi. r3, r3, 0x20
bne- _return
# check captured flag

  _check_breakout:
  lfs f0, xBreakout(r29)
  li r3, 0
  stw r3, -0x10(sp)  # this has been changed from an rtoc reference to ease porting
  lfs f1, -0x10(sp)
  fcmpo cr0, f0, f1
  cror eq, lt, eq
  bne- _return

    li r0, 0
    # set condition to 0 for return comparison

_return:
cmpwi r0, 0
.long 0
Code:
$Stop Infinite Grab Combos v3[Glook, Punkline]
C208EE48 0000000C
807B0010 2C0300D9
4182004C 2C030163
40A20018 807B0004
2C030002 2C830019
4C423382 41820030
887D2226 70630020
40820024 C01D1A4C
38600000 9061FFF0
C021FFF0 FC000840
4C401382 40820008
38000000 2C000000
60000000 00000000
So the code, as Glook told me, reads for grip strength. When grip strength is at 0 it forces the next attack that hits to force a release, something generally done with 14% or more. This keeps the original function of the code, but removes pummel so that hitting a pummel to a buffered grab still works, but in a team combo or a wobble, the next hit would knock you out.

The Ganon UpB became a glitch because when the electric sparks hit you it forces that release point.

Something I just thought of Punkline Punkline , what about Koopa Klaw’s bite?
 

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
So the code, as Glook told me, reads for grip strength. When grip strength is at 0 it forces the next attack that hits to force a release, something generally done with 14% or more. This keeps the original function of the code, but removes pummel so that hitting a pummel to a buffered grab still works, but in a team combo or a wobble, the next hit would knock you out.

The Ganon UpB became a glitch because when the electric sparks hit you it forces that release point.

Something I just thought of Punkline Punkline , what about Koopa Klaw’s bite?
Looking at it, Bowser's bite doesn't seem to trigger the hook so it should be unaffected by the code. Have you seen otherwise?

Also, in testing things; captain falcon's up+B doesn't seem to trigger the hook either, even though Ganon's does. I made the assumption that the condition would be the same for each character. Can anyone confirm this for me? I'll update the code to exclude it if it's unnecessary.
 

The Cape

Smash Master
Joined
May 16, 2004
Messages
4,478
Location
Carlisle, PA
Looking at it, Bowser's bite doesn't seem to trigger the hook so it should be unaffected by the code. Have you seen otherwise?

Also, in testing things; captain falcon's up+B doesn't seem to trigger the hook either, even though Ganon's does. I made the assumption that the condition would be the same for each character. Can anyone confirm this for me? I'll update the code to exclude it if it's unnecessary.
In my previous experiences with it it was only Ganon. This was due to the fact that he hit the opponent multiple times with electricity while holding them
 
Top Bottom