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

Completed Stale Scale

Punkline

Dr. Frankenstack
Joined
May 15, 2015
Messages
423
Default stale move penalties:
1st 2nd 3rd 4th 5th 6th 7th 8th 9th
-9% -8% -7% -6% -5% -4% -3% -2% -1%
91% 83% 76% 70% 65% 61% 58% 56% 55%
(applied damage)

By default, stale moves create a diminishing penalty curve to applied move damage. With this code, you can scale these penalties all as a whole, or change the steps individually.


Stale Scale
Code:
-==-


Stale Scale
Adjust the amount subtracted from damage staling by editing the contents of <Stale_Scale> with the edit button.
[Punline]
Revision ---- DOL Offset ---- Hex to Replace ---------- ASM Code -
<Stale_Scale> NTSC 1.02
.float/*
Modify the floating point values between the */ /* marks to change the scale and severity of what is subtracted from true damage values when staling:

*/   1.000 /*
COEF - a % of stale subtraction
- used like : stale = 1.0-(COEF*(1.0-stale))
- set to 0.0 to turn off staling
- set to 1.0 to use normal staling
- use values other than 1.0 to scale staling effect
- use negatives to add staling instead of subtract it

*/, 0.09, 0.08, 0.07, 0.06, 0.05, 0.04, 0.03, 0.02, 0.01/*
     1     2     3     4     5     6     7     8     9
On each staling step, an extra one of these numbers is added to the total subtaction percentage.
- modify these to make more or less severe steps
- this may be used to create different staling curves
- you can use negatives to add instead of subtract
- negative damage will act as healing, for extremely severe staling

The default values are here, for reference:
0.09, 0.08, 0.07, 0.06, 0.05, 0.04, 0.03, 0.02, 0.01
1st   2nd   3rd   4th   5th   6th   7th   8th   9th
91%   83%   76%   70%   65%   61%   58%   56%   55%
(modifying these does nothing)
*/
NTSC 1.02 --- 0x8008914C ---- 80CDAEA8 -> Branch
lis r12, <<Stale_Scale>>+0x4@h
ori r6, r12, <<Stale_Scale>>+0x4@l
00000000
------------- 0x8008926C ---- 4BFFFEAD -> Branch
bl    0x80089118
C0628028 EC230828
lis r0, <<Stale_Scale>>@h
ori r12, r0, <<Stale_Scale>>@l
C04C0000 EC2100B2 EC230828 00000000
Code:
    -==-

!
ASM - Stale Scale
Adjust the amount subtracted from damage staling by editing the contents of <Stale_Scale> with the edit button.
[Punline]
Revision ---- DOL Offset ---- Hex to Replace ---------- ASM Code -
<Stale_Scale> NTSC 1.02
.float/*
Modify the floating point values between the */ /* marks to change the scale and severity of what is subtracted from true damage values when staling:

*/   1.000 /*
COEF - a % of stale subtraction
- used like : stale = 1.0-(COEF*(1.0-stale))
- set to 0.0 to turn off staling
- set to 1.0 to use normal staling
- use values other than 1.0 to scale staling effect
- use negatives to add staling instead of subtract it

*/, 0.09, 0.08, 0.07, 0.06, 0.05, 0.04, 0.03, 0.02, 0.01/*
     1     2     3     4     5     6     7     8     9
On each staling step, an extra one of these numbers is added to the total subtaction percentage.
- modify these to make more or less severe steps
- this may be used to create different staling curves
- you can use negatives to add instead of subtract
- negative damage will act as healing, for extremely severe staling

The default values are here, for reference:
0.09, 0.08, 0.07, 0.06, 0.05, 0.04, 0.03, 0.02, 0.01
1st   2nd   3rd   4th   5th   6th   7th   8th   9th
91%   83%   76%   70%   65%   61%   58%   56%   55%
(modifying these does nothing)
*/

NTSC 1.02 --- 0x8008914C ---- 80CDAEA8 -> Branch

lis r12, <<Stale_Scale>>+0x4@h
ori r6, r12, <<Stale_Scale>>+0x4@l
.long 0

------------- 0x8008926C ---- 4BFFFEAD -> Branch

rData=12;fStale=1;fCoef=2; fOne=3
bl    0x80089118  # Damage_DamageStaleCalcMult
lfs fOne, -0x7FD8(rtoc)  # 1.0
fsubs fStale, fOne, fStale
lis r0, <<Stale_Scale>>@h
ori r12, r0, <<Stale_Scale>>@l
lfs fCoef, 0x0(rData)
fmuls fStale, fStale, fCoef
fsubs fStale, fOne, fStale
.long 0


Modify the <Stale_Scale> function included with the code to set custom user parameters for calculating all applied stale move multipliers:



With these settings, you can customize stale moves to do any of the following:
  • no staling (use 0.0 coef to virtually disable stale moves)
  • scaled staling (use +/- 1.0 coef for more or less severe staling, overall)
  • new staling curves (use more or less severe step values than defaults)
  • berserk staling (use negative stale to make moves get stronger with repeated use)
  • parabolic staling (??? you can tho)
  • super stale (heal your opponents using >100% staling)
 
Last edited:
Top Bottom