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)
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: