Slippery Blooper Ink [KooShnoo]
#1
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

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
```
Reply
#2
Nice code.

I've moved the thread to the incomplete code forum since there are only PAL ports.

Also fixed some formatting by adding the two sources inside code boxes.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)