07-04-2020, 09:01 PM
(This post was last modified: 02-16-2021, 11:39 AM by WhatisLoaf.
Edit Reason: added ghost manager info
)
This code stores the inputs of a ghost when replaying it.
This will make the game replicate these inputs when either in Solo Time Trial or Ghost Race.
The latter makes comparisons in time trial recordings possible.
[1] Select the ghost you want to mimic
[2] Press "Watch Replay" and exit when the replay starts, you don't have to watch the entire replay play out.
[3] For regular live replay just press "Solo Time Trial"
[4] If you want to race a ghost just select the ghost you want to race and press "Race Ghost"
Getting 2 ghosts on your console/dolphin can be by using Ghost Manager.
PAL
04522738 60000000
0452273C 60000000
C252EDF4 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
NTSC-U
0451E2C4 60000000
0451E2C8 60000000
C252A2AC 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
NTSC-J
045220B8 60000000
045220BC 60000000
C252E774 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
NTSC-K
0451075C 60000000
04510760 60000000
C251CE4C 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
Code created by: WhatisLoaf
Code credits: Seeky (documentation)
This will make the game replicate these inputs when either in Solo Time Trial or Ghost Race.
The latter makes comparisons in time trial recordings possible.
[1] Select the ghost you want to mimic
[2] Press "Watch Replay" and exit when the replay starts, you don't have to watch the entire replay play out.
[3] For regular live replay just press "Solo Time Trial"
[4] If you want to race a ghost just select the ghost you want to race and press "Race Ghost"
Getting 2 ghosts on your console/dolphin can be by using Ghost Manager.
PAL
04522738 60000000
0452273C 60000000
C252EDF4 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
NTSC-U
0451E2C4 60000000
0451E2C8 60000000
C252A2AC 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
NTSC-J
045220B8 60000000
045220BC 60000000
C252E774 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
NTSC-K
0451075C 60000000
04510760 60000000
C251CE4C 00000005
899E0B53 2C0C0002
40820018 A19E23DE
918400E4 818400DC
918400E0 38043E60
90040008 00000000
Code:
# 8052edf4 - RMCP
# 8052a2ac - RMCE
# 8052e774 - RMCJ
# 8051ce4c - RMCK
lbz r12, 0x0b53 (r30) # get the current game mode
cmpwi r12, 2
bne store_address # only execute code when in time trial
# make ghost saving possible
lhz r12, 0x23de (r30) # get the input data length
stw r12, 0xe4 (r4)
lwz r12, 0xdc (r4) # get pointer to input data
stw r12, 0xe0 (r4)
addi r0, r4, 0x3e60 # set pointer to controller that contains the inputs
store_address:
stw r0, 0x8 (r4) # default instruction
Code created by: WhatisLoaf
Code credits: Seeky (documentation)