Thank you. Do you know of any code that only breaks offline? Also, bit 27 is for auto/manual flag. I'm still unsure what bits 28-31 are used for. Bit 20 if set to 1 disables everything except wheelies. Iirc bit 21 is an on/off flag for the end race camera/cpu control of the player (setting this in race sets the camera, but makes your position cease updating) So in theory, XORing the bit should work:
(NTSC-U)
C258FDC0 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
(PAL)
C25965E4 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
(NTSC-J)
C2595F64 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
(NTSC-K)
C258463C 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
.set region, '' #Must set region value, or else source will not compile
.if (region == 'E' || region == 'e') # RMCE
.macro controller_address
lis r12, 0x8034
.endm
.elseif (region == 'P' || region == 'p') # RMCP
.macro controller_address
lis r12, 0x8034
.endm
.elseif (region == 'J' || region == 'j') # RMCJ
.macro controller_address
lis r12, 0x8034
.endm
.elseif (region == 'K' || region == 'k') # RMCK
.macro controller_address
lis r12, 0x8033
.endm
.else # Invalid Region
.abort
.endif
lis r12, controller_address
lhz r12, 0x3E80 (r12)
andi. r12, r12, 0x90 #Z button
beq noPress
lwz r12, 0x14 (r4)
xori r12, r12, 0x10
stw r12, 0x14 (r4)
noPress:
lwz r4, 0x14 (r4)
XXXX = Upper Controller Address
YYYY = Lower Controller Address
ZZZZ = Button to Press
(NTSC-U)
C258FDC0 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
(PAL)
C25965E4 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
(NTSC-J)
C2595F64 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
(NTSC-K)
C258463C 00000005
3D80XXXX A18CYYYY
718CZZZZ 41820010
81840014 698C0010
91840014 80840014
60000000 00000000
.set region, '' #Must set region value, or else source will not compile
.if (region == 'E' || region == 'e') # RMCE
.macro controller_address
lis r12, 0x8034
.endm
.elseif (region == 'P' || region == 'p') # RMCP
.macro controller_address
lis r12, 0x8034
.endm
.elseif (region == 'J' || region == 'j') # RMCJ
.macro controller_address
lis r12, 0x8034
.endm
.elseif (region == 'K' || region == 'k') # RMCK
.macro controller_address
lis r12, 0x8033
.endm
.else # Invalid Region
.abort
.endif
lis r12, controller_address
lhz r12, 0x3E80 (r12)
andi. r12, r12, 0x90 #Z button
beq noPress
lwz r12, 0x14 (r4)
xori r12, r12, 0x10
stw r12, 0x14 (r4)
noPress:
lwz r4, 0x14 (r4)
XXXX = Upper Controller Address
YYYY = Lower Controller Address
ZZZZ = Button to Press
Super Mario Eclipse, what Super Mario Sunshine could've been.