SM64 Ghost Race

Released:
By: Kaze
Found on: rhcom
Difficulty: 5

Race yourself in an attempt to beat your own record! You can also send savestates to friends to have them race you.

Download Patch File

Extra Files:

How to play.txt

For info on how to
get the ROM to run,
check out my tutorial (takes 1 minute):
https://www.youtube.com/watch?v=HUzVTZi5ws8

actselectghosthack2.txt


.org 0x7d5540
!writeacts:
addiu sp, sp, $ffe0
sw ra, $1c (SP)
lui t8, $801c
ori at, r0, $0006
sb at, $9aa1 (T8)
lbu t1, $9aa2 (T8)
bne t1, at, !dontset100csstar
nop

LUI A0, 0x8033
LUI A1, 0x8034
LH A1, 0xBAC6 (A1)
LH A0, 0xDDF4 (A0)
ADDIU A1, A1, 0xFFFF
JAL 0x8027A1C8
ADDIU A0, A0, 0xFFFF
andi v0, v0, $0040
beq v0, r0, !dontset100csstar
nop
ori at, r0, $0007
sb at, $9aa2 (T8)
lbu t1, $9aa3 (T8)
addiu t2, r0, $6
bne t1, t2, !dontset100csstar
nop
sb at, $9aa3 (T8)
!dontset100csstar:
lui a0, $1300
jal $277f50
ori a0, a0, $302C

lui t8, $801c
lbu t0, $9aa2 (T8)
lui t2, $8033
lhu t2, $ddf8 (T2)
lui t3, $8037
add t3, t3, t2
lbu t3, $5500 (T3)
slt at, t0, t3
addiu a3, r0, $0
bne at, r0, !dontasndfiuasbifbsaihfiuhusdbgfiubdsiugbiu
nop
lui t1, $8017
lw at, $002c (T1)
bne at, r0, !dontasndfiuasbifbsaihfiuhusdbgfiubdsiugbiu
nop
beq t0, t3, !dontasndfiuasbifbsaihfiuhusdbgfiubdsiugbiu
nop
addiu a3, r0, $1
sub t4, t0, t3
sll t4, t4, $6
//turn t4 into position offset
mtc1 t4, f4
cvt.s.w f4, f4
or t0, t3, r0
addiu t4, t3, $ffff
lui t1, $801b
sb t4, $81a0 (T1)
sb t4, $81a4 (T1)
lui t1, $8017
lui at, $2400
sw at, $002c (T1)

!dontasndfiuasbifbsaihfiuhusdbgfiubdsiugbiu:
addiu t1, t0, $ffff
sb t1, $9aa1 (T8)
sb t0, $9aa2 (T8)
sb t0, $9aa3 (T8)
beq a3, r0, !dontdeanifuasuifnuiasbnfasuif
nop
lui t0, $8034
addiu t0, t0, $d488
!loop23:
lh t1, $0074 (T0)
beq t1, r0, !endofthisloop23
nop
lw t2, $020c (T0)
bne t2, v0, !endofthisloop23
nop
lw t2, $0014 (T0)
lui t3, $8033
lw t3, $ddc4 (T3)
lw t3, $01e8 (T3)
sh r0, $0074 (T0)
bne t3, t2, !endofthisloop23
nop
addiu at, r0, $0101
sh at, $0074 (T0)
lwc1 f2, $00a0 (T0)
add.s f2, f2, f4
swc1 f2, $00a0 (T0)

!endofthisloop23:
lui t1, $8036
ori t1, t1, $0e88
addiu t0, t0, $260
bne t0, t1, !loop23
nop
!dontdeanifuasuifnuiasbnfasuif:



lui a2, $8037
ori a2, a2, $5fc0
addiu a0, r0, $0010
JAL 0x802d62d8
addiu a1, r0, $0009
lui t0, $8037
lhu t1, $5ffc (T0)
lui a0, $8034
lhu a0, $afa0 (A0)
andi a0, a0, $0300
sh a0, $5ffc (T0)
beq t1, a0, !dontchangeselectionaa
nop
beq a0, r0, !dontchangeselectionaa
nop
srl a0, a0, $7
addiu a0, a0, $fffd
lbu t2, $5ffe (T0)
add t2, t2, a0
addiu at, r0, $ffff
bne t2, at, !notzero
nop
addiu t2, r0, $2
!notzero:

addiu at, r0, $0003
bne t2, at, !notzero22
nop
addiu t2, r0, $0
!notzero22:

sb t2, $5ffe (T0)
!dontchangeselectionaa:
lui t0, $8037
lbu t1, $5ffe (T0)
sll t1, t1, $4
lui a2, $8037
ori a2, a2, $5e90
add a2, a2, t1
addiu a0, r0, $0050
JAL 0x802d62d8
addiu a1, r0, $0009
lw ra, $1c (SP)
jr ra
addiu sp, sp, $0020

bonuslevelsinactselect.txt

//time 10m
.org 0x97830
!levelselect1:
addiu at, r0, $17


.org 0x97848
!levelselect2:
addiu t3, r0, $0017

.org 0x978f8
!writelevelname:
slti at, t6, $0017
//here you put in the level names for other stars too and you need to change a0 on the 277f50 afterwards

.org 0x9777c
!levelselect3:
addiu at, r0, $0018

.org 0x977a4
!levelselect4:
addiu t4, r0, $0017

.org 0x977b8
!geteepbyte:
addiu at, r0, $0017


.org 0x97770
!maxlevelsincrease:
addiu a3, r0, $0018

enableactsghostraceacts.txt

.org 0x2278e0
!hookacts:
jal $371700

.org 0x7d1700
!doactstrings:
addiu sp, sp, $ffe8
sw ra, $14 (SP)
slti at, t9, $0001
bne at, r0, !errorhandling
nop
slti at, t9, $0010
bne at, r0, !noerrorhandling
nop
!errorhandling:
sll t6, t6, $3
lui a0, $0037
ori a0, a0, $1680
beq r0, r0, !no100cs
add a0, a0, t6

!noerrorhandling:
addiu at, r0, $6
bne at, t6, !no100cs
nop
lui a0, $0037
ori a0, a0, $16f0
!no100cs:


jal $277f50
nop
lw ra, $14 (SP)
jr ra
addiu sp, sp, $0018

ghostrace pipehack.txt


.org 0x9098
!pipe:
jal $373400

.org 0x7d3400
!pipeact:
addiu sp, sp, $ffe8
sw ra, $14 (SP)
lui a0, $1300
jal $277f50
ori a0, a0, $07a0
LW T3, 0x0048 (SP)
lw t5, $020c (T3)
bne t5, v0, !skippipe
nop
lui t2, $8033
lhu t2, $ddf8 (T2)
addiu at, r0, $0011
beq t2, at, !okpipe
nop
addiu at, r0, $0013
beq t2, at, !okpipe
nop
addiu at, r0, $0015
bne t2, at, !skippipe
nop
!okpipe:
addiu t2, r0, $2
lui t4, $8034
sh t2, $bac8 (T4)
!skippipe:
lw ra, $14 (SP)
addiu ra, ra, $000c
jr ra
addiu sp, sp, $0018

sm64ghost race full game.txt


.org 0x8E34
!checkthisout:
nop

.org 0x80f48
!checkstarID:
lw t1, $0030 (SP)
lbu t2, $0188 (T1)
addiu at, r0, $6
//beq t2, at, !skipsetact
nop
lui t3, $8034
addiu t2, t2, $1
sh t2, $bac8 (T3)
!skipsetact:
jr ra
nop

.org 0x861c0
!hook:
addiu sp, sp, $ffe8
sw ra, $14 (SP)
jal $371200
nop
beq v0, r0, !end
nop
lui t4, $9999
ori t3, t4, $9999
lui t0, $8034
addiu t0, t0, $d488
!loop2:
lw t2, $0144 (T0)
bne t2, t3, !endofthisloop2
lui t1, $8036
lh t5, $0074 (T0)
beq t5, r0, !endofthisloop2
nop
beq r0, r0, !afterloop
addiu a0, r0, $0000
!endofthisloop2:
ori t1, t1, $0e88
addiu t0, t0, $260
bne t0, t1, !loop2
lui a0, $8036
lui a2, $1300
ori a2, a2, $2a48
addiu a1, r0, $00f0
jal $29edcc
lw a0, $1158 (A0)
lui at, $3e80
sw at, $002c (V0)
sw at, $0030 (V0)
sw at, $0034 (V0)
lui t3, $9999
ori t3, t3, $9999
sw t3, $0144 (V0)
or t0, v0, r0
addiu a0, r0, $001
!afterloop:
jal $370000
or v1, t0, r0
!end:
jal $2C5DC0
nop

.org 0x9E744
jr ra
nop

//remap 802A8370 and 802a83a0
.org 0x7d1200
!checklevel:
addiu sp, sp, $ffe0
sw ra, $1c (SP)
lui t0, $8034
addiu at, r0, $ffff
sh at, $b21c (T0)
lui t0, $8033
lhu t1, $ddf8 (T0)
lui t2, $8034
lw t2, $b17c (T2)
ori at, r0, $1909
beq t2, at, !yeskilllevel
nop
addiu v0, r0, $0001
beq r0, r0, !endoflevelcheck
nop
!yeskilllevel:
lui at, $8080
lw t2, $03fc (at)
sh t2, $0018 (SP)

addiu at, r0, $0708
div t2, at
mflo a3
LUI A2, 0x8034
ADDIU A2, A2, 0x83B0
mult a3, at
mflo t0
ADDIU A0, R0, 0x001c
ADDIU A1, R0, 0x00d1
JAL 0x802d62d8   
sh t0, $0014 (SP)



lh t2, $0018 (SP)
lhu t1, $0014 (SP)
sub t2, t2, t1
addiu at, r0, $1e
div t2, at
mflo a3
LUI A2, 0x8034
ADDIU A2, A2, 0x83B4
mult a3, at
mflo t0
ADDIU A0, R0, 0x0031
ADDIU A1, R0, 0x00d1
JAL 0x802d62d8        
sh t0, $0016 (SP)


lh t2, $0018 (SP)
lhu t1, $0014 (SP)
sub t2, t2, t1
lhu t1, $0016 (SP)
LUI A2, 0x8034
ADDIU A2, A2, 0x83B4
ADDIU A0, R0, 0x0053
ADDIU A1, R0, 0x00d1
sub a3, t2, t1
add t2, a3, a3    
add a3, a3, t2
addiu at, r0, $9
div a3, at
mflo t2
JAL 0x802d62d8     
add a3, t2, a3

addiu v0, r0, $0000


lui a0, $817c
ori a0, a0, $2000
lhu t2, $fffc (A0)
lui t0, $8080
lw t4, $03fc (T0)
lw t5, $0004 (T0)
beq t5, r0, !newentry
nop
slt at, t4, t5
beq at, r0, !endoflevelcheck
nop
!newentry:
lui t2, $8080
ori a1, t2, $6400
sw a1, $0004 (T0)



lui a0, $817c
ori a0, a0, $2000
lhu t1, $fffc (A0)
sw t4, $0000 (T0)
lw t5, $0004 (T0)

lui at, $8179
lw t0, $0000 (t5)
lw t2, $0000 (a0)
bne t0, t2, !orderscores
nop
lw t0, $0004 (t5)
lw t2, $0004 (a0)
bne t0, t2, !orderscores
nop
lw t0, $0008 (t5)
lw t2, $0008 (a0)
bne t0, t2, !orderscores
nop
lw t0, $000c (t5)
lw t2, $000c (a0)
bne t0, t2, !orderscores
nop
beq r0, r0, !dontsetoldhighscoretable
nop
!orderscores:
or t2, at, r0
addiu t3, at, $006c
!moreloop22:
lw t0, $fffc (t3)
sw t0, $0010 (t3)
addiu t3, t3, $fffc
bne t2, t3, !moreloop22
nop
!dontsetoldhighscoretable:
lw t0, $0000 (A0)
sw t0, $0000 (At)
lw t0, $0004 (A0)
sw t0, $0004 (At)
lw t0, $0008 (A0)
sw t0, $0008 (At)
lw t0, $000c (A0)
sw t0, $000c (At)
sh t4, $0010 (AT)



!loopstufftocopy:
lw t0, $0000 (A0)
sw t0, $0000 (A1)
lw t0, $0004 (A0)
sw t0, $0004 (A1)
lw t0, $0008 (A0)
sw t0, $0008 (A1)
lw t0, $000c (A0)
sw t0, $000c (A1)

!moreloop:
addiu a1, a1, $0010
addiu a0, a0, $0010
lbu t1, $000c (A0)
beq t1, r0, !loopstufftocopy
nop
addiu a0, r0, $0001
addiu a1, r0, $0014
jal $320544
ori a2, r0, $0000

addiu v0, r0, $0000
!endoflevelcheck:
lw ra, $1c (SP)
jr ra
addiu sp, sp, $0020

.org 0x32ae8
!fixholp:
jal $37a550


.org 0x63540
!fakeanimatemario:
addiu sp, sp, $ffDC
sw ra, $14 (SP)
sw v1, $0020 (SP)
lui t0, $8037
sw v1, $0580 (T0)
ori at, t0, $05b8
sw at, $0598 (T0)
lui at, $8006
ori t1, at, $4040
sw t1, $05b8 (t0)
lui at, $8080
ori at, at, $0400
sw at, $05c0 (T0)
addiu at, r0, $bd
sh at, $05a8 (T0)

lw t0, $014c (V1)
sw t0, $0018 (SP)
or a1, a0, r0
lui t0, $8037
JAL $802509B8
ori a0, t0, $04f8
lw v1, $0020 (SP)
lw t0, $0018 (SP)
sw t0, $014c (V1)
lw ra, $14 (SP)
jr ra
addiu sp, sp, $24


//63410
.org 0x7d1500
!checklevelIDtwo:
jr ra
nop

//
.org 0x6345c
!checklevelIDthree:
addiu ra, ra, $0004
lui t0, $8033
sw t0, $03f4 (at)
lhu t1, $ddf8 (T0)
//set act to 1 if non course
addiu t3, r0, $0010
beq t1, t3, !yeskilllevel3
addiu t2, r0, $0006
beq t1, t2, !yeskilllevel3
addiu t3, r0, $001a
beq t1, t3, !yeskilllevel3
addiu t2, r0, $001e
beq t1, t2, !yeskilllevel3
addiu t3, r0, $0021
beq t1, t3, !yeskilllevel3
addiu t2, r0, $0022
beq t1, t2, !yeskilllevel3
addiu t3, r0, $001F
beq t1, t3, !yeskilllevel3
nop
addiu ra, ra, $fffc
beq r0, r0, !reunitelevlekill
nop
!yeskilllevel3:

lui t3, $8034
addiu t2, r0, $0001
sh t2, $bac8 (T3)

!reunitelevlekill:
jr ra
nop



.org 0xb2924
!storediff:
sub t2, t2, t3		//store this globally and then show it somewhere if its positive
sh t2, $0018 (SP)
addiu t2, t2, $ffff
sw t2, $03f0 (T0)
jr ra
nop

//only gets called in levels, make sure it works always
.org 0x80dc0
!showdiff:
lw ra, $14 (SP)

addiu sp, sp, $ffdc
sw ra, $20 (SP)
lw ra, $20 (SP)
jr ra
addiu sp, sp, $003c





.org 0x3891c
!alwaysmario:
jal $2a84d0


.org 0x634d0
!hookmeup:
beq v0, r0, !addRA
nop
jr ra
nop
!addRA:
lui ra, $8027
ori ra, ra, $d9d0
jr ra
nop


.org 0x22746c
!actselectsfsahuf:
nop
nop
nop


.org 0x3155c
!resettime:
lw v0, $0024 (SP)
nop
lui t0, $8080
sw r0, $03fc (T0)

.org 0x7d5800
!writename:
jr ra
nop

.org 0x7d5680
!writeacts:
jr ra
nop

.org 0xfb9e0
!hookload:
jal $2ca6d0

//space to 802CA918
.org 0x856d0
!load:
addiu sp, sp, $ffe0
sw ra, $1c (SP)
jal $2786f0
nop
LUI A0, $8037
LUI A1, $007D
JAL $00278504
ORI A2, A1, $6000
lw ra, $1c (SP)
jr ra
addiu sp, sp, $0020




//reset 808003fc to 0 on game boot

.org 0x7d0000
!start:
addiu sp, sp, $ffD0
sw ra, $1C (SP)
lui t2, $8033
lhu t2, $ddf8 (T2)
lui t3, $8034
lhu t3, $bac8 (T3)
lui at, $8080
addiu a3, r0, $007f
lw t5, $0000 (AT)
bne t5, r0, !startmoving
nop
!nodata:
lui at, $d800
beq r0, r0, !endmove
sw at, $00a4 (V1)
!startmoving:
lui t0, $8037
lbu t1, $5ffe (T0)


lui a3, $6900
sw a3, $019c (V1)
sw r0, $008c (V1)
lw a3, $0004 (AT)
addiu a3, a3, $0030
lui t0, $8080
lw t1, $03fc (t0)
sll t1, t1, $4
add a3, a3, t1
lw t0, $0000 (A3)
sw t0, $0020 (V1)
lh t0, $0004 (A3)
mtc1 t0, f2
cvt.s.w f2, f2
swc1 f2, $0024 (V1)
lhu t0, $0006 (A3)
sh t0, $001c (V1)
lw t0, $0008 (A3)
sw t0, $0028 (V1)

sw a3, $0020 (SP)
sw at, $0024 (SP)
jal $2a8540
lbu a0, $000d (A3)
lw a3, $0020 (SP)
lw at, $0024 (SP)
lhu t0, $000e (A3)
sh t0, $0040 (V1)



lhu t2, $0002 (AT)
lui t0, $8080
lw t3, $03fc (t0)
jal $2f7924		//store this globally and then show it somewhere if its positive
sh t2, $0018 (SP)
addiu a3, r0, $007f
bne t2, r0, !skiptotext
sw a3, $017c (V1)
sw r0, $0014 (V1)
!skiptotext:
lh t2, $0018 (SP)
slti at, t2, $0000
beq at, r0, !nonegataf
nop
sub t2, r0, t2
sh t2, $0018 (SP)

LUI A2, 0x8037
ADDIU A2, A2, 0x5FF0
ADDIU A0, R0, 0x000c
JAL 0x802d62d8   
ADDIU A1, R0, 0x00d1

lh t2, $0018 (SP)
!nonegataf:
addiu at, r0, $0708
div t2, at
mflo a3
LUI A2, 0x8034
ADDIU A2, A2, 0x83B0
mult a3, at
mflo t0
ADDIU A0, R0, 0x001c
ADDIU A1, R0, 0x00d1
JAL 0x802d62d8   
sh t0, $0014 (SP)



lh t2, $0018 (SP)
lhu t1, $0014 (SP)
sub t2, t2, t1
addiu at, r0, $1e
div t2, at
mflo a3
LUI A2, 0x8034
ADDIU A2, A2, 0x83B4
mult a3, at
mflo t0
ADDIU A0, R0, 0x0031
ADDIU A1, R0, 0x00d1
JAL 0x802d62d8        
sh t0, $0016 (SP)


lh t2, $0018 (SP)
lhu t1, $0014 (SP)
sub t2, t2, t1
lhu t1, $0016 (SP)
LUI A2, 0x8034
ADDIU A2, A2, 0x83B4
ADDIU A0, R0, 0x0053
ADDIU A1, R0, 0x00d1
sub a3, t2, t1
add t2, a3, a3    
add a3, a3, t2
addiu at, r0, $9
div a3, at
mflo t2
JAL 0x802d62d8     
add a3, t2, a3







!endmove:
lui t0, $8080
lw t1, $03fc (T0)
addiu t1, t1, $0001
sw t1, $03fc (T0)

lui t2, $8033
lhu t2, $ddf8 (T2)
lui t3, $8034
lhu t3, $bac8 (T3)
sll t2, t2, $8
or t4, t2, t3


sll t2, t1, $04
addiu t2, t2, $0010
lui t5, $817c
ori t5, t5, $2000

sh t4, $fffc (T5)	//store level and act
lui t0, $8037
lw t3, $6000 (T0)
sw t3, $0000 (T5)
lw t3, $6004 (T0)
sw t3, $0004 (T5)
lw t3, $6008 (T0)
sw t3, $0008 (T5)
lw t3, $600c (T0)
sw t3, $000C (T5)

add t5, t5, t2
lui t0, $8034
lw t1, $b1ac (T0)
sw t1, $0000 (T5)
lwc1 f2, $b1b0 (T0)
cvt.w.s f2, f2
mfc1 t1, f2
sh t1, $0004 (T5)
lhu t1, $b19e (T0)
sh t1, $0006 (T5)
lw t1, $b1b4 (T0)
sw t1, $0008 (T5)
sb r0, $000c (T5)
addiu t9, r0, $0001
sb t9, $001c (T5)
lui t9, $8036
lw t9, $1160 (T9)
lhu t8, $0040 (T9)
sh t8, $000e (T5)
lhu t8, $0038 (T9)
sb t8, $000d (T5)
lw ra, $1C (SP)
jr ra
addiu sp, sp, $0030



.org 0x8c40
!hookstar:
sw t6, $0020 (SP)
lw t7, $0030 (SP)

.org 0x227ab8
!starselect:
lw ra, $14 (SP)
jr ra
addiu sp, sp, $0020

.org 0x97ab0
!hooknumbers:
jal $375000
nop
beq r0, r0, $97c28
nop

.org 0x7d5000
!shownumbers:
addiu sp, sp, $ffD8
sw ra, $1C (SP)

lui a0, $0200
jal $277f50
ori a0, a0, $7700
lui t0, $0037
ori t1, t0, $3600
sw t1, $0084 (V0)
lui t0, $0037
ori t1, t0, $3800
sw t1, $004c (V0)
ori t1, t0, $3a00
sw t1, $0068 (V0)
ori t1, t0, $3c00
sw t1, $007c (V0)
ori t1, t0, $3e00
sw t1, $008c (V0)


lui t0, $8037
lbu t1, $5ff2 (T0)
lbu t2, $5ff3 (T0)
lui t4, $8034
lhu a0, $afa0 (t4)
andi t3, a0, $0010
bne t3, r0, !Rispressed
nop
andi t3, a0, $8000
sh t3, $0020 (SP)
andi t3, a0, $4000
sh t3, $0022 (SP)

ori t3, a0, $8000
sh t3, $afa0 (T4)

andi a2, a0, $0f00
lh t3, $5ff6 (T0)
sh a2, $5ff6 (T0)
beq a2, t3, !noxaxis
nop

andi a1, a0, $0c00
beq a1, r0, !noyaxis
nop
addiu a1, a1, $fa00
sra a1, a1, $9
sub a1, r0, a1
add t1, t1, a1
andi t1, t1, $3
sb t1, $5ff2 (T0)
!noyaxis:

andi a1, a0, $0300
beq a1, r0, !noxaxis
nop
addiu a1, a1, $fe80
sra a1, a1, $7
sub a1, r0, a1
add t2, t2, a1
andi t2, t2, $7
sb t2, $5ff3 (T0)
!noxaxis:
or t3, t2, r0
or t2, t1, r0
or t1, t3, r0

sll a0, t1, $4
add a0, a0, a0
sll t1, t1, $2
add a0, a0, t1
addiu a0, a0, $000c


sll a1, t2, $4
add a1, a1, a1
add a1, a1, t2
add a1, a1, t2
add a1, a1, t2
add a1, a1, t2
sll t2, t2, $2
add a1, a1, t2
sll t2, t2, $1
add a1, a1, t2
addiu at, r0, $00a1
sub a1, at, a1

LUI A2, 0x8037
JAL 0x802d62d8   
ADDIU A2, A2, 0x5ff4


lhu t1, $0022 (SP)

lui t0, $8037
lhu t2, $5ffa (T0)
sh t1, $5ffa (T0)
beq t1, t2, !dontdelete
nop
bne t1, r0, !delete
nop

!dontdelete:
lhu t1, $0020 (SP)

lhu t2, $5ff8 (T0)
sh t1, $5ff8 (T0)
beq t1, t2, !dontwrite
nop
beq t1, r0, !dontwrite
nop
lbu t1, $5ff2 (T0)
sll t1, t1, $4
lbu t2, $5ff3 (T0)
add t1, t1, t2
add t3, t0, t1
lbu t2, $5ec0 (T3)
addiu at, r0, $ff
bne at, t2, !moreletters
nop
!delete:
lbu t4, $6010 (T0)
beq t4, r0, !dontwrite
nop
add t3, t4, t0
addiu at, r0, $0020
sb at, $6000 (T3)
sb at, $5fff (T3)
addiu t4, t4, $ffff
sb t4, $6010 (T0)
beq r0, r0, !dontwrite
nop
!moreletters:
lbu t4, $6010 (T0)
addiu at, r0, $000e
beq t4, at, !dontwrite
nop
add t3, t0, t4
sb t2, $6000 (T3)
addiu t4, t4, $1
sb t4, $6010 (T0)
!dontwrite:

LUI A2, 0x8037
ADDIU A2, A2, 0x6000
ADDIU A0, R0, 0x001c
JAL 0x802d62d8   
ADDIU A1, R0, 0x00d1


LUI A2, 0x8037
ADDIU A2, A2, 0x5f40
ADDIU A0, R0, 0x001c
JAL 0x802d62d8   
ADDIU A1, R0, 0x00a1

LUI A2, 0x8037
ADDIU A2, A2, 0x5f60
ADDIU A0, R0, 0x001c
JAL 0x802d62d8   
ADDIU A1, R0, 0x0071

LUI A2, 0x8037
ADDIU A2, A2, 0x5f80
ADDIU A0, R0, 0x001c
JAL 0x802d62d8   
ADDIU A1, R0, 0x0041


LUI A2, 0x8037
ADDIU A2, A2, 0x5fa0
ADDIU A0, R0, 0x001c
JAL 0x802d62d8   
ADDIU A1, R0, 0x0011
beq r0, r0, !endpausemenu
nop
!Rispressed:
lui t0, $8037
lui a0, $8034
lhu a0, $afa0 (A0)
andi a2, a0, $0300
lh t3, $5ff6 (T0)
sh a2, $5ff6 (T0)
beq a2, t3, !noxaxisaaa
nop

lui at, $8037
lbu t2, $1090 (AT)
andi a1, a0, $0300
beq a1, r0, !noxaxisaaa
nop
addiu a1, a1, $fe80
sra a1, a1, $7
sub a1, r0, a1
add t2, t2, a1
andi t2, t2, $7
sb t2, $1090 (at)
!noxaxisaaa:


lui t0, $8033
lbu t1, $1490 (T0)
addiu t7, r0, $000f
beq t1, t7, !endpausemenu
nop


lui at, $8037
add at, at, t1
lbu t7, $1080 (AT)
sll t7, t7, $a
lui t1, $8037
lbu t1, $1090 (T1)
sll t1, t1, $7
add t1, t1, t7
lui at, $8179
sw at, $0018 (SP)
sw r0, $0014 (SP)
!printmorehighscores:
lw at, $0014 (SP)
lw a2, $0018 (SP)
add a2, at, a2
addiu a1, r0, $0081
sub a1, a1, at
JAL 0x802d62d8
addiu a0, r0, $000c

lw at, $0014 (SP)
lw a2, $0018 (SP)
add a2, at, a2
lhu a3, $0010 (A2)
sh a3, $0020 (SP)



//show time for this
lh t2, $0020 (SP)
addiu at, r0, $0708
div t2, at
mflo a3
LUI A2, 0x8034
ADDIU A2, A2, 0x83B0
mult a3, at
mflo t0
ADDIU A0, R0, 0x00dc
lw at, $0014 (SP)
ADDIU A1, R0, 0x0081
sub a1, a1, at
JAL 0x802d62d8   
sh t0, $0022 (SP)


lh t2, $0020 (SP)
lhu t1, $0022 (SP)
sub t2, t2, t1
addiu at, r0, $1e
div t2, at
mflo a3
LUI A2, 0x8034
ADDIU A2, A2, 0x83B4
mult a3, at
mflo t0
ADDIU A0, R0, 0x00f1
ADDIU A1, R0, 0x0081
lw at, $0014 (SP)
ADDIU A1, R0, 0x0081
sub a1, a1, at
JAL 0x802d62d8        
sh t0, $0024 (SP)


lh t2, $0020 (SP)
lhu t1, $0022 (SP)
sub t2, t2, t1
lhu t1, $0024 (SP)
LUI A2, 0x8034
ADDIU A2, A2, 0x83B4
ADDIU A0, R0, 0x0113
ADDIU A1, R0, 0x0081
lw at, $0014 (SP)
ADDIU A1, R0, 0x0081
sub a1, a1, at
sub a3, t2, t1
add t2, a3, a3    
add a3, a3, t2
addiu at, r0, $9
div a3, at
mflo t2
JAL 0x802d62d8     
add a3, t2, a3




lw t1, $0014 (SP)
addiu t1, t1, $14
sw t1, $0014 (SP)
addiu at, r0, $64
bne t1, at, !printmorehighscores
nop

!endpausemenu:
lw ra, $1C (SP)
jr ra
addiu sp, sp, $0028


.org 0x2278e0
!hookacts:
jal $277f50

.org 0x7d1700
!doactstrings:
addiu sp, sp, $ffe8
sw ra, $14 (SP)
slti at, t9, $0001
bne at, r0, !errorhandling
nop
slti at, t9, $0010
bne at, r0, !noerrorhandling
nop
!errorhandling:
sll t6, t6, $3
lui a0, $0037
ori a0, a0, $1680
beq r0, r0, !no100cs
add a0, a0, t6

!noerrorhandling:
addiu at, r0, $6
bne at, t6, !no100cs
nop
lui a0, $0037
ori a0, a0, $16f0
!no100cs:


jal $277f50
nop
lw ra, $14 (SP)
jr ra
addiu sp, sp, $0018
Tags: #Concept