04-22-2025, 09:18 PM
(This post was last modified: 04-23-2025, 12:59 PM by Vega.
Edit Reason: Fixed some formatting - Vega
)
Slippery Ink [KooShnoo]
This makes the blooper ink slippery, just like it is mario kart 8 and mario kart 8 deluxe.
There are two variants, slippery and super slippery.
Slippery ink makes the kart act like it's on sand when inked.
Super slippery ink and makes the kart slip out and act like it's on ice when inked.
These are all PAL codes.
PAL (Slippery)
c256ee0c 00000006
815b0004 812a0004
8129000c 75291000
41820018 812a0000
81290014 81290000
c00900f4 d0040068
39610030 00000000
PAL (Super Slippery)
c256ee0c 00000008
815b0004 812a0004
8129000c 75291000
41820028 812a0000
c0040064 81290014
81290000 c1890104
d1840068 c1890084
ec000332 d0040064
39610030 00000000
c2581afc 00000007
7fc3f378 81230000
38e00000 38c00000
38a00000 8069002c
38800000 8123000c
8129000c 7d2903a6
4e800421 7fc3f378
60000000 00000000
This makes the blooper ink slippery, just like it is mario kart 8 and mario kart 8 deluxe.
There are two variants, slippery and super slippery.
Slippery ink makes the kart act like it's on sand when inked.
Super slippery ink and makes the kart slip out and act like it's on ice when inked.
These are all PAL codes.
PAL (Slippery)
c256ee0c 00000006
815b0004 812a0004
8129000c 75291000
41820018 812a0000
81290014 81290000
c00900f4 d0040068
39610030 00000000
Code:
the constants are:
Action::SpinSomeSpeed = 0 // like a banana
KCL_TYPE_MASK_SANDY_ROAD = 1 // like DDR
KCL_TYPE_MASK_ICY_ROAD = 5 // like rSL
slippery:
```cpp
auto kartStats = m_accessor->kartSettings->param->stats;
if (m_accessor->kartState->onBit(Inked)) {
// add sand slipperiness
collisionData->handlingFactor = kartStats->handling[KCL_TYPE_MASK_SANDY_ROAD];
}
```
```ppc
lwz r10,4(r27)
lwz r9,4(r10)
lwz r9,12(r9)
andis. r9,r9,4096
beq ret
lwz r9,0(r10)
lwz r9,20(r9)
lwz r9,0(r9)
lfs f0,244(r9)
stfs f0,104(r4)
ret:
addi r11,r1,0x30
```
PAL (Super Slippery)
c256ee0c 00000008
815b0004 812a0004
8129000c 75291000
41820028 812a0000
c0040064 81290014
81290000 c1890104
d1840068 c1890084
ec000332 d0040064
39610030 00000000
c2581afc 00000007
7fc3f378 81230000
38e00000 38c00000
38a00000 8069002c
38800000 8123000c
8129000c 7d2903a6
4e800421 7fc3f378
60000000 00000000
Code:
super slippery:
```cpp
auto kartStats = m_accessor->kartSettings->param->stats;
if (m_accessor->kartState->onBit(Inked)) {
// add stronger ice slipperiness
collisionData->handlingFactor = kartStats->handling[KCL_TYPE_MASK_ICY_ROAD];
// add additional ice slowdown
collisionData->speedFactor *= kartStats->speed[KCL_TYPE_MASK_ICY_ROAD];
}
```
```cpp
m_accessor->action->start(action, Action::SpinSomeSpeed, 0, 0, 0);
```
```ppc
or r3,r30,r30
lwz r9,0(r3)
li r7,0
li r6,0
li r5,0
lwz r3,44(r9)
li r4,0
lwz r9,12(r3)
lwz r9,12(r9)
mtctr r9
bctrl
or r3,r30,r30
```
```ppc
lwz r10,4(r27)
lwz r9,4(r10)
lwz r9,12(r9)
andis. r9,r9,4096
beq ret
lwz r9,0(r10)
lfs f0,100(r4)
lwz r9,20(r9)
lwz r9,0(r9)
lfs f12,260(r9)
stfs f12,104(r4)
lfs f12,132(r9)
fmuls f0,f0,f12
stfs f0,100(r4)
ret:
addi r11,r1,0x30
```