• 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 Reversed knockback

Melee maniac

Smash Cadet
Joined
Jun 24, 2019
Messages
64
Can someone make a code that reverses all of the characters knockback I want it because of a smash 4 mod that reversed the knockback

I also need to be for 1.02
 

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
I'm not sure if you wanted the angles truly reversed or just the facing direction reversed; so I made this configurable through MCM:



By default, angles are flipped horizontally, but not vertically.
If you change the highlighted 0 into a 3, then you can enable vertical angle reversals as well. The other flags can be used to manipulate the mechanic via procedure.

Use the latest version of Melee Code Manager to install the DOL Mod:


Reverse Knockback:

Code:
-==-

Reverse Knockback
Modify <reverse_knockback_params> to permanently or temporarily flip the X and/or Y axis of all knockback angles.
[Punkline]
<reverse_knockback_params> All
00000003
# masks:
# 00000007 = 3-bit X modifiers
# 00000070 = 3-bit Y modifiers

# each has 3 bools:
# +1 = if true, next knockback calculation will be reversed on this axis
#      if false, next knockback calculation will be normal

# +2 = while true, +1 flag does not get cleared
#      while flase, +1 flag is cleared on each knockback

# +4 = while true, disable checks for +1 and +2 flags
#      while false, code is enabled

1.02 ----- 8008dc18 --- 7c050000 -> Branch
7C050000
lis r0, <<reverse_knockback_params>>@h
ori r6, r0, <<reverse_knockback_params>>@l
88060003 7C003120 41BD0010 40BF000C 4FFEF382 FC200850 41B90010 40BB000C 4F7AD382 FC401050 7C000026 98060003 00000000
Code:
-==-
!
ASM - Reverse Knockback
Modify <reverse_knockback_params> to permanently or temporarily flip the X and/or Y axis of all knockback angles.
[Punkline]
<reverse_knockback_params> All
00000003
# masks:
# 00000007 = 3-bit X modifiers
# 00000070 = 3-bit Y modifiers

# each has 3 bools:
# +1 = if true, next knockback calculation will be reversed on this axis
#      if false, next knockback calculation will be normal

# +2 = while true, +1 flag does not get cleared
#      while flase, +1 flag is cleared on each knockback

# +4 = while true, disable checks for +1 and +2 flags
#      while false, code is enabled



1.02 ----- 8008dc18 --- 7c050000 -> Branch
# bool names:
bXTrigger = 31; bXHold = 30; bXDisable = 29;
bYTrigger = 27; bYHold = 26; bYDisable = 25;

cmpw r5, r0
# cr0 holds imporatant comparison for return branch to use

lis r0, <<reverse_knockback_params>>@h
ori r6, r0, <<reverse_knockback_params>>@l
lbz r0, 0x3(r6)
mtcrf 0x03, r0
# cr6 and cr7 hold param bools

_checkX:
bt+ bXDisable, _checkY
  bf+ bXTrigger, _checkY
    crmove bXTrigger, bXHold
    fneg f1, f1
    # reverse argument for X velocity if triggered

_checkY:
bt+ bYDisable, _return
  bf+ bYTrigger, _return
    crmove bYTrigger, bYHold
    fneg f2, f2
    # reverse argument for Y velocity of triggered

_return:
mfcr r0
stb r0, 0x3(r6)
# update trigger flags

.long 0  # cr0 is still intact

Only lightly tested.
 

Melee maniac

Smash Cadet
Joined
Jun 24, 2019
Messages
64
I'm not sure if you wanted the angles truly reversed or just the facing direction reversed; so I made this configurable through MCM:



By default, angles are flipped horizontally, but not vertically.
If you change the highlighted 0 into a 3, then you can enable vertical angle reversals as well. The other flags can be used to manipulate the mechanic via procedure.

Use the latest version of Melee Code Manager to install the DOL Mod:


Reverse Knockback:

Code:
-==-

Reverse Knockback
Modify <reverse_knockback_params> to permanently or temporarily flip the X and/or Y axis of all knockback angles.
[Punkline]
<reverse_knockback_params> All
00000003
# masks:
# 00000007 = 3-bit X modifiers
# 00000070 = 3-bit Y modifiers

# each has 3 bools:
# +1 = if true, next knockback calculation will be reversed on this axis
#      if false, next knockback calculation will be normal

# +2 = while true, +1 flag does not get cleared
#      while flase, +1 flag is cleared on each knockback

# +4 = while true, disable checks for +1 and +2 flags
#      while false, code is enabled

1.02 ----- 8008dc18 --- 7c050000 -> Branch
7C050000
lis r0, <<reverse_knockback_params>>@h
ori r6, r0, <<reverse_knockback_params>>@l
88060003 7C003120 41BD0010 40BF000C 4FFEF382 FC200850 41B90010 40BB000C 4F7AD382 FC401050 7C000026 98060003 00000000
Code:
-==-
!
ASM - Reverse Knockback
Modify <reverse_knockback_params> to permanently or temporarily flip the X and/or Y axis of all knockback angles.
[Punkline]
<reverse_knockback_params> All
00000003
# masks:
# 00000007 = 3-bit X modifiers
# 00000070 = 3-bit Y modifiers

# each has 3 bools:
# +1 = if true, next knockback calculation will be reversed on this axis
#      if false, next knockback calculation will be normal

# +2 = while true, +1 flag does not get cleared
#      while flase, +1 flag is cleared on each knockback

# +4 = while true, disable checks for +1 and +2 flags
#      while false, code is enabled



1.02 ----- 8008dc18 --- 7c050000 -> Branch
# bool names:
bXTrigger = 31; bXHold = 30; bXDisable = 29;
bYTrigger = 27; bYHold = 26; bYDisable = 25;

cmpw r5, r0
# cr0 holds imporatant comparison for return branch to use

lis r0, <<reverse_knockback_params>>@h
ori r6, r0, <<reverse_knockback_params>>@l
lbz r0, 0x3(r6)
mtcrf 0x03, r0
# cr6 and cr7 hold param bools

_checkX:
bt+ bXDisable, _checkY
  bf+ bXTrigger, _checkY
    crmove bXTrigger, bXHold
    fneg f1, f1
    # reverse argument for X velocity if triggered

_checkY:
bt+ bYDisable, _return
  bf+ bYTrigger, _return
    crmove bYTrigger, bYHold
    fneg f2, f2
    # reverse argument for Y velocity of triggered

_return:
mfcr r0
stb r0, 0x3(r6)
# update trigger flags

.long 0  # cr0 is still intact

Only lightly tested.

I have a problem seen I don't have a computer I can't really use the melee code manager, so can do for me, and can you enable the vertical angle reversals to please, sorry if I'm asking for to much
 

SilentCustard

Smash Rookie
Joined
Feb 25, 2019
Messages
7
Thank you to Melee maniac for requesting the thing I was going to request, and also to Punkline for making it happen! REVERSE UP AIRS, HERE I COME!
 

Melee maniac

Smash Cadet
Joined
Jun 24, 2019
Messages
64
Thank you to Melee maniac for requesting the thing I was going to request, and also to Punkline for making it happen! REVERSE UP AIRS, HERE I COME!
I'm glad I could help you! edit: and can you give me the code?
 
Last edited:

SilentCustard

Smash Rookie
Joined
Feb 25, 2019
Messages
7
I'm glad I could help you! edit: and can you give me the code?
Huh? Are you asking for the DOL code that Punkline made to use with Melee Code Manager? If so, this is it:
Reverse Knockback
Modify <reverse_knockback_params> to permanently or temporarily flip the X and/or Y axis of all knockback angles.
[Punkline]
<reverse_knockback_params> All
00000003
# masks:
# 00000007 = 3-bit X modifiers
# 00000070 = 3-bit Y modifiers

# each has 3 bools:
# +1 = if true, next knockback calculation will be reversed on this axis
# if false, next knockback calculation will be normal

# +2 = while true, +1 flag does not get cleared
# while flase, +1 flag is cleared on each knockback

# +4 = while true, disable checks for +1 and +2 flags
# while false, code is enabled

1.02 ----- 8008dc18 --- 7c050000 -> Branch
7C050000
lis r0, <<reverse_knockback_params>>@h
ori r6, r0, <<reverse_knockback_params>>@l
88060003 7C003120 41BD0010 40BF000C 4FFEF382 FC200850 41B90010 40BB000C 4F7AD382 FC401050 7C000026 98060003 00000000
 

Melee maniac

Smash Cadet
Joined
Jun 24, 2019
Messages
64
Huh? Are you asking for the DOL code that Punkline made to use with Melee Code Manager? If so, this is it:
Reverse Knockback
Modify <reverse_knockback_params> to permanently or temporarily flip the X and/or Y axis of all knockback angles.
[Punkline]
<reverse_knockback_params> All
00000003
# masks:
# 00000007 = 3-bit X modifiers
# 00000070 = 3-bit Y modifiers

# each has 3 bools:
# +1 = if true, next knockback calculation will be reversed on this axis
# if false, next knockback calculation will be normal

# +2 = while true, +1 flag does not get cleared
# while flase, +1 flag is cleared on each knockback

# +4 = while true, disable checks for +1 and +2 flags
# while false, code is enabled

1.02 ----- 8008dc18 --- 7c050000 -> Branch
7C050000
lis r0, <<reverse_knockback_params>>@h
ori r6, r0, <<reverse_knockback_params>>@l
88060003 7C003120 41BD0010 40BF000C 4FFEF382 FC200850 41B90010 40BB000C 4F7AD382 FC401050 7C000026 98060003 00000000
oh I was asking if you could make the code then give to me
 
Top Bottom