flieskiller
Smash Journeyman
- Joined
- Jan 3, 2013
- Messages
- 426
TESTED and working
Rumble on v-cancel (1.02) [flieskiller]
C208DEF0 0000000B
3821FFE0 9081001C
90A10018 90C10014
90E10010 887D000C
38800000 38A0000C
38C00000 38ED9950
3E208037 62318430
7E2903A6 4E800421
8081001C 80A10018
80C10014 80E10010
38210020 806DAEB4
60000000 00000000
Because almost every player doesn't use the rumble, I got an idea of using it anyway (skipping if rumble = on for that player). When a player v-cancel, the controller rumbles for 12 frames.
ASM notes:
Rumble on v-cancel (1.02) [flieskiller]
C208DEF0 0000000B
3821FFE0 9081001C
90A10018 90C10014
90E10010 887D000C
38800000 38A0000C
38C00000 38ED9950
3E208037 62318430
7E2903A6 4E800421
8081001C 80A10018
80C10014 80E10010
38210020 806DAEB4
60000000 00000000
Because almost every player doesn't use the rumble, I got an idea of using it anyway (skipping if rumble = on for that player). When a player v-cancel, the controller rumbles for 12 frames.
ASM notes:
rumble function (notes by Dan Salvato):
802477e4
r3: Port number
r4: ?? (usually 0)
r5: Number of frames to rumble
r6: ?? (usually 0)
r7: Unknown pointer value (rumble options screen uses 804d4ff0)
ASM:
subi sp, sp, 0x20
stw r4, 0x1c(sp)
stw r5, 0x18(sp)
stw r6, 0x14(sp)
stw r7, 0x10(sp) #storing needed registers in the stack
lbz r3, 0x000C (r29) #loading number of player
li r4, 0 #need to be 0
li r5, 0xc #number of frames
li r6, 0 #need to be 0
subi r7,r13,0x66b0 #need 804d4ff0
lis r17, 0x8037
ori r17, r17, 0x8430 #bl to the rumble function directly
mtctr r17
bctrl
lwz r4, 0x1c(sp)
lwz r5, 0x18(sp)
lwz r6, 0x14(sp)
lwz r7, 0x10(sp) #restore back used registers
addi sp, sp, 0x20
lwz r3, -0x514C (r13) #normal line
802477e4
r3: Port number
r4: ?? (usually 0)
r5: Number of frames to rumble
r6: ?? (usually 0)
r7: Unknown pointer value (rumble options screen uses 804d4ff0)
ASM:
subi sp, sp, 0x20
stw r4, 0x1c(sp)
stw r5, 0x18(sp)
stw r6, 0x14(sp)
stw r7, 0x10(sp) #storing needed registers in the stack
lbz r3, 0x000C (r29) #loading number of player
li r4, 0 #need to be 0
li r5, 0xc #number of frames
li r6, 0 #need to be 0
subi r7,r13,0x66b0 #need 804d4ff0
lis r17, 0x8037
ori r17, r17, 0x8430 #bl to the rumble function directly
mtctr r17
bctrl
lwz r4, 0x1c(sp)
lwz r5, 0x18(sp)
lwz r6, 0x14(sp)
lwz r7, 0x10(sp) #restore back used registers
addi sp, sp, 0x20
lwz r3, -0x514C (r13) #normal line
Last edited: