Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .org 0x861c0
- !main:
- addiu sp, sp, $ffe8
- sw ra, $14 (SP)
- jal $370000
- nop
- !end:
- lw ra, $14 (SP)
- jr ra
- addiu sp, sp, $0018
- .org 0x7d0000
- !main2:
- addiu sp, sp, $ffe8
- sw ra, $14 (SP)
- lui t0, $8034
- lw t1, $b17c (t0)
- lui at, $0C00
- ori at, at, $0227
- bne at, t1, !endahsiufrbuzasf
- nop
- lui t2, $8037
- lhu t3, $fffc (T2)
- lhu t1, $afa0 (T0)
- andi t5, t1, $0300
- beq t5, r0, !skipthissetting
- nop
- andi t5, t5, $0100
- sh t5, $fffe (T2)
- !skipthissetting:
- andi t1, t1, $0020
- sh t1, $fffc (T2)
- beq t3, t1, !endahsiufrbuzasf
- nop
- beq t1, r0, !endahsiufrbuzasf
- nop
- !shoothat:
- lui a0, $8036
- lw a0, $1158 (A0)
- addiu a1, r0, $00aa
- lui a2, $1300
- jal $29edcc
- ori a2, a2, $10b8
- addiu at, r0, $00ff
- sw at, $017c (V0)
- lui t2, $8037
- lhu t2, $fffe (T2)
- srl t2, t2, $8
- sw t2, $0144 (V0)
- sw t2, $00f0 (V0)
- lui at, $42e8
- mtc1 at, f2
- lwc1 f0, $00a4 (V0)
- add.s f0, f0, f2
- swc1 f0, $00a4 (V0)
- lui t1, $8034
- lhu t2, $c536 (T1)
- sw t2, $00d0 (V0)
- lhu t2, $c538 (T1)
- lhu t3, $b19e (T1)
- add t2, t2, t3
- sw t2, $00c8 (V0)
- sw t2, $00d4 (V0)
- lui at, $42c8
- mtc1 at, f6
- lui t4, $8038
- lhu t7, $00d2 (v0)
- sub t7, r0, t7
- andi t7, t7, $ffff
- sra t8, t7, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00b0 (v0)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b8 (v0)
- lui a0, $5023
- jal $2ca144
- ori a0, a0, $0081
- !endahsiufrbuzasf:
- lw ra, $14 (SP)
- jr ra
- addiu sp, sp, $0018
- .org 0x7d1700
- !portalposition:
- addiu sp, sp, $ffe8
- sw ra, $14 (SP)
- jal $2a04c0
- addiu a0, r0, $00fb
- lhu t1, $0002 (v1)
- andi t1, t1, $fffb
- sh t1, $0002 (V1)
- sw r0, $00b8 (V1)
- lui at, $3f80
- sw at, $002c (V1)
- sw at, $0034 (V1)
- lui at, $3f80
- sw at, $0030 (V1)
- lw t2, $0144 (V1)
- sw t2, $00f0 (V1)
- lw t1, $014c (V1)
- addiu at, r0, $1
- beq t1, at, !droptoground
- nop
- lw t0, $0180 (V1)
- lui at, $c2c8
- mtc1 at, f4
- lwc1 f2, $001c (t0)
- mul.s f2, f2, f4
- lwc1 f12, $00a0 (V1)
- add.s f2, f2, f12
- swc1 f2, $00a0 (v1)
- lwc1 f2, $0024 (t0)
- mul.s f2, f2, f4
- lwc1 f12, $00a8 (V1)
- add.s f2, f2, f12
- swc1 f2, $00a8 (V1)
- lw t1, $008c (V1)
- andi t1, t1, $fffe
- //sw t1, $008c (V1)
- beq r0, r0, !nopositionrot
- nop
- !droptoground:
- LWC1 F12, $00A0 (V1)
- LWC1 F10, $00A4 (V1)
- LW A2, $00A8 (V1)
- LUI AT, $4300
- MTC1 AT, F16
- JAL $80381794
- ADD.S F14, F10, F16
- lwc1 f2, $00a4 (V1)
- swc1 f0, $00a4 (V1)
- !nopositionrot:
- lw ra, $14 (SP)
- jr ra
- addiu sp, sp, $0018
- //disable shooting portals into portals
- //list at 80371c00
- .org 0x7d1900
- !checkcoll:
- addiu sp, sp, $ffe8
- sw ra, $14 (SP)
- lui a0, $1300
- jal $277f50
- ori a0, a0, $10b8
- sw v0, $000c (SP)
- lui a2, $8034
- addiu a2, a2, $d488
- !loop21111:
- lui t2, $8037
- lw t6, $0144 (v1)
- sll t6, t6, $A
- add t2, t2, t6
- !checkobjects11:
- lw t3, $1c00 (T2)
- beq t3, a2, !thisisoutobject
- nop
- addiu t2, t2, $4
- lw t3, $1c00 (T2)
- addiu at, r0, $ffff
- bne t3, at, !checkobjects11
- nop
- lui t2, $8037
- lw t6, $0144 (v1)
- sll t6, t6, $A
- add t2, t2, t6
- !checkobjects1122:
- lw t3, $1c00 (T2)
- beq t3, r0, !thisisoutobject
- nop
- beq r0, r0, !checkobjects1122
- addiu t2, t2, $4
- !thisisoutobject:
- sw r0, $1c00 (T2)
- lh t1, $0074 (a2)
- beq t1, r0, !endofthisloop21111111
- nop
- lui at, $42c8
- mtc1 at, f0
- lwc1 f2, $00a0 (A2)
- lwc1 f12, $00a0 (V1)
- sub.s f2, f2, f12
- abs.s f2, f2
- c.lt.s f2, f0
- nop
- bc1f !endofthisloop21111111
- nop
- lwc1 f2, $00a4 (A2)
- lwc1 f12, $00a4 (V1)
- sub.s f2, f2, f12
- abs.s f2, f2
- c.lt.s f2, f0
- nop
- bc1f !endofthisloop21111111
- nop
- lwc1 f2, $00a8 (A2)
- lwc1 f12, $00a8 (V1)
- sub.s f2, f2, f12
- abs.s f2, f2
- c.lt.s f2, f0
- nop
- bc1f !endofthisloop21111111
- nop
- lw t6, $020c (A2)
- lw t7, $000c (SP)
- beq t6, t7, !endofthisloop21111111
- nop
- sw a2, $1c00 (T2)
- bne t3, r0, !endofthisloop21111111
- nop
- lui t2, $8037
- lw t6, $0144 (v1)
- xori t6, t6, $0001
- sll t6, t6, $A
- add t2, t2, t6
- !chekifthasaf:
- lw t3, $1c00 (T2)
- beq t3, a2, !endofthisloop21111111
- nop
- addiu t2, t2, $4
- lw t3, $1c00 (T2)
- addiu at, r0, $ffff
- bne at, t3, !chekifthasaf
- nop
- sw a2, $0010 (SP)
- addiu v0, r0, $1
- beq r0, r0, !endofcheckcoll
- nop
- !endofthisloop21111111:
- lui t1, $8036
- ori t1, t1, $0e88
- addiu a2, a2, $260
- bne a2, t1, !loop21111
- nop
- !portaldead:
- addiu v0, r0, $0000
- !endofcheckcoll:
- lw a2, $0010 (SP)
- lw ra, $0014 (SP)
- jr ra
- addiu sp, sp, $0018
- .org 0x856d0
- !portal:
- addiu sp, sp, $ffe8
- sw ra, $14 (SP)
- lui v1, $8036
- lw v1, $1160 (V1)
- lui at, $5800
- sw at, $019c (v1)
- lw t0, $014c (V1)
- beq t0, r0, !run
- nop
- jal $371400
- nop
- lui v1, $8036
- lw v1, $1160 (V1)
- lui at, $4348
- sw at, $01f8 (V1)
- lui at, $4300
- sw at, $01fc (V1)
- jal $371900
- nop
- beq v0, r0, !asasbdfasbzfzuasdf
- nop
- //lw t0, $0154 (V1)
- //slti at, t0, $0002
- //sw r0, $0154 (V1)
- //bne at, r0, !asasbdfasbzfzuasdf
- //nop
- !portcalculation:
- lui a0, $1300
- jal $277f50
- ori a0, a0, $10b8
- //beq to a2 end
- lui t0, $8034
- addiu t0, t0, $d488
- !loop22:
- lw t2, $020c (T0)
- bne t2, v0, !endofthisloop22
- nop
- bne t0, v1, !teleportme
- nop
- !endofthisloop22:
- lui t1, $8036
- ori t1, t1, $0e88
- addiu t0, t0, $260
- bne t0, t1, !loop22
- nop
- beq r0, r0, !asasbdfasbzfzuasdf
- nop
- //t0 is portal to port to, v1 portal to port from
- !teleportme:
- lui a1, $8036
- lw a1, $1158 (A1)
- bne a2, a1, !skipcameramovement
- nop
- sw r0, $0154 (T0)
- sw r0, $0154 (v1)
- lui t5, $8034
- lwc1 f2, $00a0 (T0)
- lwc1 f12, $00a0 (V1)
- sub.s f2, f2, f12
- lwc1 f0, $c6a4 (T5)
- add.s f0, f0, f2
- lwc1 f2, $00a4 (T0)
- lwc1 f12, $00a4 (V1)
- sub.s f2, f2, f12
- lwc1 f0, $c6a8 (T5)
- add.s f0, f0, f2
- lwc1 f2, $00a8 (T0)
- lwc1 f12, $00a8 (V1)
- sub.s f2, f2, f12
- lwc1 f0, $c6ac (T5)
- add.s f0, f0, f2
- !skipcameramovement:
- jal $370200
- nop
- lui a0, $5066
- jal $2ca1e0
- ori a0, a0, $0081
- beq r0, r0, !asasbdfasbzfzuasdf
- nop
- !run:
- lui a0, $1300
- jal $277f50
- ori a0, a0, $10b8
- lw t4, $0154 (V1)
- bne t4, r0, !donasfrasuibfbasf
- nop
- lui t0, $8034
- addiu t0, t0, $d488
- lw t4, $0144 (v1)
- !loop2:
- lw t2, $020c (T0)
- bne t2, v0, !endofthisloop2
- nop
- beq t0, v1, !endofthisloop2
- nop
- lw t6, $0144 (t0)
- bne t6, t4, !endofthisloop2
- nop
- sh r0, $0074 (T0)
- !endofthisloop2:
- lui t1, $8036
- ori t1, t1, $0e88
- addiu t0, t0, $260
- bne t0, t1, !loop2
- nop
- !donasfrasuibfbasf:
- LWC1 F12, $00A0 (V1)
- LWC1 F10, $00A4 (V1)
- LW A2, $00A8 (V1)
- LUI AT, $4300
- MTC1 AT, F16
- JAL $80381794
- ADD.S F14, F10, F16
- lwc1 f2, $00a4 (V1)
- c.lt.s f2, f0
- nop
- bc1f !monkeyend
- nop
- addiu at, r0, $1
- sw at, $014c (V1)
- lw v0, $fffc (SP)
- jal $371700
- sw v0, $0180 (V1)
- !monkeyend:
- addiu a0, v1, $00a0
- lui a1, $42c8
- JAL $80251A48
- lui a2, $42c8
- beq v0, r0, !endhatfunction
- nop
- addiu at, r0, $2
- sw at, $014c (V1)
- jal $371700
- sw v0, $0180 (V1)
- !endhatfunction:
- lw t1, $0154 (V1)
- addiu at, r0, $0080
- bne t1, at, !endportal
- nop
- sh r0, $0074 (V1)
- !endportal:
- jal $2a1308
- nop
- jal $29f070
- nop
- !asasbdfasbzfzuasdf:
- lui t0, $8034
- lui t2, $8037
- lw t1, $b1b8 (T0)
- sw t1, $ffe0 (T2)
- lw t1, $b1bc (T0)
- sw t1, $ffe4 (T2)
- lw t1, $b1c0 (T0)
- sw t1, $ffe8 (T2)
- lhu t1, $b19e (T0)
- lui t4, $8036
- lw t4, $1158 (T4)
- sw t1, $00c8 (T4)
- sh t1, $ffec (T2)
- lw t1, $b17c (T0)
- sw t1, $fff0 (T2)
- lw ra, $14 (SP)
- jr ra
- addiu sp, sp, $0018
- //t0 port to
- //v1 port from
- //a2 is object to port
- .org 0x7d0200
- !calcmore:
- addiu sp, sp, $ffb0
- sw ra, $14 (SP)
- lui a1, $8036
- lw a1, $1158 (A1)
- bne a1, a2, !ditsnotmarioguys
- nop
- lui t2, $8037
- lw t1, $ffe0 (T2)
- sw t1, $00ac (A2)
- lw t1, $ffe4 (T2)
- sw t1, $00b0 (A2)
- lw t1, $ffe8 (T2)
- sw t1, $00b4 (A2)
- lhu t1, $ffec (T2)
- sw t1, $00c8 (a2)
- !ditsnotmarioguys:
- lw t4, $014c (V1)
- addiu at, r0, $1
- beq t4, at, !fromground
- nop
- !fromwall:
- lw t4, $014c (t0)
- addiu at, r0, $1
- beq t4, at, !toground1
- nop
- !towall1:
- sw a2, $0018 (SP)
- sw v1, $001c (SP)
- sw t0, $0020 (SP)
- lw t1, $0180 (V1)
- lwc1 f12, $0024 (T1)
- jal $37a9a8
- lwc1 f14, $001c (t1)
- andi v0, v0, $ffff
- sw v0, $0028 (SP)
- lw t0, $0020 (SP)
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- jal $37a9a8
- lwc1 f14, $001c (t1)
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lw t1, $0028 (SP)
- sub t1, v0, t1
- sw t1, $0048 (SP)
- lw t2, $00c8 (A2)
- add t2, t2, t1
- addiu t2, t2, $8000
- sw t2, $00c8 (A2)
- lwc1 f2, $00a8 (V1)
- lwc1 f12, $00a8 (A2)
- sub.s f12, f12, f2
- mul.s f0, f12, f12
- lwc1 f4, $00a0 (V1)
- lwc1 f14, $00a0 (A2)
- sub.s f14, f14, f4
- mul.s f10, f14, f14
- add.s f0, f0, f10
- sqrt.s f0, f0
- sw a2, $0018 (SP)
- sw v1, $001c (SP)
- sw t0, $0020 (SP)
- swc1 f0, $0024 (SP)
- jal $37a9a8
- nop
- lw t1, $0048 (SP)
- add v0, v0, t1
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0024 (SP)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f4, $00a0 (t0)
- add.s f4, f4, f8
- swc1 f4, $00a0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f4, $00a8 (t0)
- add.s f4, f4, f18
- swc1 f4, $00a8 (A2)
- lwc1 f12, $00b4 (A2)
- mul.s f0, f12, f12
- lwc1 f14, $00ac (A2)
- mul.s f10, f14, f14
- add.s f0, f0, f10
- sqrt.s f0, f0
- swc1 f0, $0024 (SP)
- sw a2, $0018 (SP)
- sw v1, $001c (SP)
- sw t0, $0020 (SP)
- jal $37a9a8
- nop
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0024 (SP)
- swc1 f6, $00b8 (a2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00ac (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b4 (A2)
- lwc1 f2, $00a4 (V1)
- lwc1 f12, $00a4 (A2)
- sub.s f12, f12, f2
- lwc1 f4, $00a4 (T0)
- add.s f4, f4, f12
- swc1 f4, $00a4 (A2)
- beq r0, r0, !reuiasf
- nop
- !toground1:
- lw t1, $00ac (a2)
- sw t1, $0030 (SP)
- lw t1, $00b4 (a2)
- sw t1, $0034 (SP)
- sw a2, $0018 (SP)
- sw v1, $001c (SP)
- sw t0, $0020 (SP)
- lw t1, $0180 (V1)
- lwc1 f12, $0024 (T1)
- jal $37a9a8
- lwc1 f14, $001c (t1)
- andi v0, v0, $ffff
- sw v0, $0028 (SP)
- lw t0, $0020 (SP)
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lw v0, $0028 (SP)
- bc1t !skipretorationcausenormalvector0
- nop
- jal $37a9a8
- nop
- andi v0, v0, $ffff
- !skipretorationcausenormalvector0:
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lw t1, $0028 (SP)
- sub t1, v0, t1
- lw t2, $00c8 (A2)
- add t2, t2, t1
- addiu t2, t2, $8000
- sw t2, $00c8 (A2)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b0 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00b0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b8 (A2)
- //turn horizontal speed into new speed
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0030 (SP)
- abs.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00b0 (A2)
- add.s f8, f0, f8
- swc1 f8, $00b0 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00b8 (A2)
- add.s f18, f0, f18
- swc1 f18, $00b8 (A2)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0034 (SP)
- abs.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00b0 (A2)
- add.s f8, f0, f8
- swc1 f8, $00b0 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00b8 (A2)
- add.s f18, f0, f18
- swc1 f18, $00b8 (A2)
- //X and Z speed
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lw v0, $0028 (SP)
- bc1t !skipretorationcausenormalvector02
- nop
- jal $37a9a8
- nop
- andi v0, v0, $ffff
- !skipretorationcausenormalvector02:
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b8 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00ac (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b4 (A2)
- //calculate new position
- lwc1 f2, $00a0 (A2)
- lwc1 f12, $00a0 (V1)
- sub.s f2, f2, f12
- swc1 f2, $0030 (SP)
- lwc1 f4, $00a8 (A2)
- lwc1 f14, $00a8 (V1)
- sub.s f4, f4, f14
- swc1 f4, $0034 (SP)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b0 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f2, $00a4 (T0)
- add.s f2, f2, f8
- swc1 f2, $00a4 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $0038 (SP)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0030 (SP)
- abs.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (A2)
- add.s f8, f0, f8
- swc1 f8, $00a4 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $0038 (sp)
- add.s f18, f0, f18
- swc1 f18, $0038 (sp)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0034 (SP)
- abs.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (A2)
- add.s f8, f0, f8
- swc1 f8, $00a4 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $0038 (sp)
- add.s f18, f0, f18
- swc1 f18, $0038 (sp)
- //X and Z speed
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lw v0, $0028 (SP)
- bc1t !skipretorationcausenormalvector021
- nop
- jal $37a9a8
- nop
- andi v0, v0, $ffff
- !skipretorationcausenormalvector021:
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b8 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f2, $00a0 (T0)
- add.s f8, f8, f2
- swc1 f8, $00a0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f2, $00a8 (T0)
- add.s f18, f18, f2
- swc1 f18, $00a8 (A2)
- beq r0, r0, !reuiasf
- nop
- !fromground:
- lw t4, $014c (t0)
- addiu at, r0, $1
- beq t4, at, !toground2
- nop
- !towall2:
- sw a2, $0018 (SP)
- sw v1, $001c (SP)
- sw t0, $0020 (SP)
- lw t1, $00ac (A2)
- sw t1, $0040 (SP)
- lw t1, $00b0 (A2)
- sw t1, $0044 (SP)
- lw t1, $00b4 (A2)
- sw t1, $0048 (SP)
- lw t1, $0180 (V1)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lhu t7, $00ca (A2)
- //maybe rotate 180
- sw t7, $0028 (SP)
- bc1t !skipretorationcausenormalvector01114422
- nop
- jal $37a9a8
- nop
- addiu v0, v0, $8000
- andi v0, v0, $ffff
- sw v0, $0028 (SP)
- !skipretorationcausenormalvector01114422:
- lw t0, $0020 (SP)
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- jal $37a9a8
- lwc1 f14, $001c (t1)
- andi v0, v0, $ffff
- sw v0, $003c (SP)
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lw t1, $0028 (SP)
- sub t1, v0, t1
- lw t2, $00c8 (A2)
- add t2, t2, t1
- sw t2, $00c8 (A2)
- andi t2, t2, $ffff
- sub t3, v0, t2
- sll t3, t3, $10
- sra t3, t3, $10
- sra t4, t3, $1f
- xor t3, t3, t4
- sub t3, t3, t4
- slti at, t3, $4000
- bne at, r0, !skipthissetting11
- nop
- addiu t2, t2, $8000
- sw t2, $00c8 (A2)
- !skipthissetting11:
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b0 (A2)
- neg.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00b0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b8 (A2)
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00ac (A2)
- lwc1 f16, $00b4 (A2)
- mul.s f6, f6, f6
- mul.s f16, f16, f16
- add.s f6, f6, f16
- sqrt.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00b0 (A2)
- add.s f8, f8, f0
- swc1 f8, $00b0 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00b8 (A2)
- add.s f18, f18, f0
- swc1 f18, $00b8 (A2)
- lw v0, $00c8 (a2)
- lwc1 f6, $00b8 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00ac (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b4 (A2)
- //calculate ground to wall pos
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f2, $00a4 (V1)
- lwc1 f6, $00a4 (A2)
- sub.s f6, f6, f2
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (T0)
- add.s f8, f8, f0
- swc1 f8, $00a4 (a2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $004c (SP) //position offset
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f0, $00a0 (v1)
- lwc1 f6, $00a0 (A2)
- sub.s f6, f6, f0
- lwc1 f10, $00a8 (V1)
- lwc1 f16, $00a8 (A2)
- sub.s f16, f16, f10
- mul.s f6, f6, f6
- mul.s f16, f16, f16
- add.s f6, f6, f16
- sqrt.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (A2)
- add.s f8, f8, f0
- swc1 f8, $00a4 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $004c (sp)
- add.s f18, f18, f0
- swc1 f18, $004c (sp)
- lw v0, $00c8 (a2)
- lwc1 f6, $004c (sp)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a0 (T0)
- add.s f8, f8, f0
- swc1 f8, $00a0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00a8 (T0)
- add.s f18, f18, f0
- swc1 f18, $00a8 (A2)
- beq r0, r0, !reuiasf
- nop
- !toground2:
- sw a2, $0018 (SP)
- sw v1, $001c (SP)
- sw t0, $0020 (SP)
- lw t1, $00ac (A2)
- sw t1, $0040 (SP)
- lw t1, $00b0 (A2)
- sw t1, $0044 (SP)
- lw t1, $00b4 (A2)
- sw t1, $0048 (SP)
- lw t1, $0180 (V1)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lhu t7, $00ca (A2)
- //maybe rotate 180
- sw t7, $0028 (SP)
- bc1t !skipretorationcausenormalvector011144
- nop
- jal $37a9a8
- nop
- addiu v0, v0, $8000
- andi v0, v0, $ffff
- sw v0, $0028 (SP)
- !skipretorationcausenormalvector011144:
- lw t0, $0020 (SP)
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lw v0, $0028 (SP)
- bc1t !skipretorationcausenormalvector01144
- nop
- jal $37a9a8
- nop
- andi v0, v0, $ffff
- !skipretorationcausenormalvector01144:
- sw v0, $003c (SP)
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lw t1, $0028 (SP)
- sub t1, v0, t1
- lw t2, $00c8 (A2)
- add t2, t2, t1
- sw t2, $00c8 (A2)
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b0 (A2)
- neg.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00b0 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b8 (A2)
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00ac (A2)
- lwc1 f16, $00b4 (A2)
- mul.s f6, f6, f6
- mul.s f16, f16, f16
- add.s f6, f6, f16
- sqrt.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00b0 (A2)
- add.s f8, f8, f0
- swc1 f8, $00b0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00b8 (A2)
- add.s f18, f18, f0
- swc1 f18, $00b8 (A2)
- lw v0, $00c8 (a2)
- lwc1 f6, $00b8 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00ac (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b4 (A2)
- lw t1, $00ac (a2)
- sw t1, $0030 (SP)
- lw t1, $00b4 (a2)
- sw t1, $0034 (SP)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b0 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00b0 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b8 (A2)
- //turn horizontal speed into new speed
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0030 (SP)
- abs.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00b0 (A2)
- add.s f8, f0, f8
- swc1 f8, $00b0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00b8 (A2)
- add.s f18, f0, f18
- swc1 f18, $00b8 (A2)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0034 (SP)
- abs.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00b0 (A2)
- add.s f8, f0, f8
- swc1 f8, $00b0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00b8 (A2)
- add.s f18, f0, f18
- swc1 f18, $00b8 (A2)
- //X and Z speed
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lw v0, $0028 (SP)
- bc1t !skipretorationcausenormalvector0244
- nop
- jal $37a9a8
- nop
- andi v0, v0, $ffff
- !skipretorationcausenormalvector0244:
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $00b8 (A2)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- swc1 f8, $00ac (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $00b4 (A2)
- lui a1, $8036
- lw a1, $1158 (A1)
- bne a1, a2 , !skiptsauifbuisafuibisdau
- nop
- lui t2, $8037
- lw t1, $fff0 (T2)
- lui at, $0080
- ori at, at, $08A9
- bne t1, at, !skiptsauifbuisafuibisdau
- nop
- lui at, $0300
- ori at, at, $0881
- sw at, $fff0 (T2)
- !skiptsauifbuisafuibisdau:
- lwc1 f0, $0040 (sp)
- mul.s f10, f0, f0
- lwc1 f2, $0044 (sp)
- mul.s f12, f2, f2
- lwc1 f4, $0048 (sp)
- mul.s f14, f4, f4
- add.s f0, f10, f12
- add.s f0, f0, f14
- sqrt.s f0, f0
- lwc1 f8, $00ac (a2)
- mul.s f18, f8, f8
- lwc1 f2, $00b0 (a2)
- mul.s f12, f2, f2
- lwc1 f4, $00b4 (a2)
- mul.s f14, f4, f4
- add.s f18, f18, f12
- add.s f18, f18, f14
- sqrt.s f18, f18
- div.s f0, f0, f18
- mul.s f8, f8, f0
- swc1 f8, $00ac (A2)
- mul.s f2, f2, f0
- swc1 f2, $00b0 (A2)
- mul.s f4, f4, f0
- swc1 f4, $00b4 (A2)
- //GROUND TO GROUND POSITIONS
- lwc1 f0, $00a0 (V1)
- lwc1 f10, $00a0 (A2)
- sub.s f10, f10, f0
- swc1 f10, $0040 (SP)
- lwc1 f2, $00a4 (V1)
- lwc1 f12, $00a4 (A2)
- sub.s f12, f12, f2
- swc1 f12, $0044 (SP)
- lwc1 f4, $00a8 (V1)
- lwc1 f14, $00a8 (A2)
- sub.s f14, f14, f4
- swc1 f14, $0048 (SP)
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f0, $00a4 (v1)
- lwc1 f6, $00a4 (A2)
- sub.s f6, f6, f0
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (T0)
- add.s f8, f0, f8
- swc1 f8, $00a4 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $004c (sp) //translation offset
- lw t1, $0180 (v1)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f2, $00a0 (v1)
- lwc1 f4, $00a0 (a2)
- sub.s f6, f2, f4
- lwc1 f12, $00a8 (v1)
- lwc1 f14, $00a8 (A2)
- sub.s f16, f12, f14
- mul.s f6, f6, f6
- mul.s f16, f16, f16
- add.s f6, f6, f16
- sqrt.s f6, f6
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (a2)
- add.s f8, f8, f0
- swc1 f8, $00a4 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $004c (sp)
- add.s f18, f18, f0
- swc1 f18, $004c (sp)
- lwc1 f2, $00a0 (a2)
- swc1 f2, $0164 (V1)
- lwc1 f2, $00a8 (a2)
- jal $2A2748
- swc1 f2, $016c (V1) //calculate rotation towards mario from portal
- lwc1 f6, $004c (sp)
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a0 (T0)
- add.s f8, f8, f0
- swc1 f8, $00a0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00a8 (T0)
- add.s f18, f18, f0
- swc1 f18, $00a8 (A2)
- //calculate a2+a0 first
- lwc1 f2, $00a0 (T0)
- lwc1 f12, $00a0 (A2)
- sub.s f12, f12, f2
- swc1 f12, $0030 (SP)
- lwc1 f4, $00a8 (T0)
- lwc1 f14, $00a8 (A2)
- sub.s f14, f14, f4
- swc1 f14, $0034 (SP)
- //IS THIS NECESSARY
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f0, $00a4 (t0)
- lwc1 f6, $00a4 (A2)
- sub.s f6, f6, f0
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $7000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (T0)
- add.s f8, f8, f0
- swc1 f8, $00a4 (A2)
- lwc1 f10, $6000 (T4)
- mul.s f18, f10, f6
- swc1 f18, $004c (sp)
- //turn horizontal speed into new speed
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0030 (SP)
- //abs.s f6, f6 //useless?
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (A2)
- add.s f8, f0, f8
- swc1 f8, $00a4 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $004c (sp)
- add.s f18, f0, f18
- swc1 f18, $004c (sp)
- lw t1, $0180 (T0)
- lwc1 f12, $0020 (T1)
- mul.s f2, f12, f12
- lui at, $3f80
- mtc1 at, f14
- sub.s f14, f14, f2
- jal $37a9a8
- sqrt.s f14, f14
- andi v0, v0, $ffff
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $0034 (SP)
- //abs.s f6, f6 //useless?
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a4 (A2)
- add.s f8, f0, f8
- swc1 f8, $00a4 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $004c (sp)
- add.s f18, f0, f18
- swc1 f18, $004c (sp)
- //X and Z speed
- lw t1, $0180 (t0)
- lwc1 f12, $0024 (T1)
- lwc1 f14, $001c (t1)
- add.s f2, f12, f14
- mtc1 r0, f0
- c.eq.s f0, f2
- lw v0, $0028 (SP)
- bc1t !skipretorationcausenormalvector0244333
- nop
- jal $37a9a8
- nop
- andi v0, v0, $ffff
- !skipretorationcausenormalvector0244333:
- lw a2, $0018 (SP)
- lw v1, $001c (SP)
- lw t0, $0020 (SP)
- lwc1 f6, $004c (sp)
- lui t4, $8038
- sra t8, v0, $4
- sll t9, t8, $2
- addu t4, t4, t9
- lwc1 f4, $6000 (T4)
- mul.s f8, f4, f6
- lwc1 f0, $00a0 (T0)
- add.s f8, f8, f0
- swc1 f8, $00a0 (A2)
- lwc1 f10, $7000 (T4)
- mul.s f18, f10, f6
- lwc1 f0, $00a8 (T0)
- add.s f18, f18, f0
- swc1 f18, $00a8 (A2)
- lwc1 f0, $0040 (sp)
- mul.s f10, f0, f0
- lwc1 f2, $0044 (sp)
- mul.s f12, f2, f2
- lwc1 f4, $0048 (sp)
- mul.s f14, f4, f4
- add.s f0, f10, f12
- add.s f0, f0, f14
- sqrt.s f0, f0
- //calculate current distance then scale
- lwc1 f10, $00a0 (T0)
- lwc1 f8, $00a0 (a2)
- sub.s f8, f8, f10
- mul.s f18, f8, f8
- lwc1 f10, $00a4 (T0)
- lwc1 f2, $00a4 (a2)
- sub.s f2, f2, f10
- mul.s f12, f2, f2
- lwc1 f10, $00a8 (T0)
- lwc1 f4, $00a8 (a2)
- sub.s f4, f4, f10
- mul.s f14, f4, f4
- add.s f18, f18, f12
- add.s f18, f18, f14
- sqrt.s f18, f18
- div.s f0, f0, f18
- mul.s f8, f8, f0
- lwc1 f12, $00a0 (T0)
- add.s f12, f12, f8
- swc1 f12, $00a0 (A2)
- mul.s f2, f2, f0
- lwc1 f14, $00a4 (T0)
- add.s f14, f14, f2
- swc1 f14, $00a4 (A2)
- mul.s f4, f4, f0
- lwc1 f16, $00a8 (T0)
- add.s f16, f16, f4
- swc1 f16, $00a8 (A2)
- beq r0, r0, !reuiasf
- nop
- !reuiasf:
- lui a1, $8036
- lw a1, $1158 (A1)
- bne a1, a2, !dontwriteaiusfzisafi
- nop
- //write out mario rotation values if mario was ported
- lui t4, $8034
- lw t1, $00c8 (A2)
- sh t1, $b19e (T4)
- lw t1, $00a0 (A2)
- sw t1, $b1ac (T4)
- lw t1, $00a4 (A2)
- sw t1, $b1b0 (T4)
- lw t1, $00a8 (A2)
- sw t1, $b1b4 (T4)
- lw t1, $00ac (A2)
- sw t1, $b1b8 (T4)
- lw t1, $00b0 (A2)
- sw t1, $b1bc (T4)
- lw t1, $00b4 (A2)
- sw t1, $b1c0 (T4)
- lw t1, $00b8 (A2)
- sw t1, $b1c4 (T4)
- lui t2, $8037
- lw t1, $fff0 (T2)
- sw t1, $b17c (T4)
- !dontwriteaiusfzisafi:
- lw ra, $14 (SP)
- jr ra
- addiu sp, sp, $0050
- .org 0x7d1400
- !calculaterotation:
- ADDIU SP, SP, 0xFFC0
- SW RA, 0x001C (SP)
- lw t1, $014c (V1)
- addiu at, r0, $2
- beq t1, at, !endallofthis
- nop
- LUI T6, 0x8036
- LW T6, 0x1160 (T6)
- LWC1 F4, 0x00A0 (T6)
- SWC1 F4, 0x003C (SP)
- LUI T7, 0x8036
- LW T7, 0x1160 (T7)
- LWC1 F6, 0x00A4 (T7)
- SWC1 F6, 0x0038 (SP)
- LUI T8, 0x8036
- LW T8, 0x1160 (T8)
- LWC1 F8, 0x00A8 (T8)
- SWC1 F8, 0x0034 (SP)
- LUI AT, 0x8034
- LWC1 F10, 0x8478 (AT)
- SWC1 F10, 0x002C (SP)
- LUI T9, 0x8036
- LW T9, 0x1160 (T9)
- LUI AT, 0x8038
- LHU T0, 0x00CA (T9)
- LWC1 F18, 0x00B8 (T9)
- SRA T1, T0, 0x4
- SLL T2, T1, 0x2
- ADDU AT, AT, T2
- LWC1 F16, 0x6000 (AT)
- MUL.S F4, F16, F18
- SWC1 F4, 0x0028 (SP)
- LUI T3, 0x8036
- LW T3, 0x1160 (T3)
- LUI AT, 0x8038
- LHU T4, 0x00CA (T3)
- LWC1 F8, 0x00B8 (T3)
- SRA T5, T4, 0x4
- SLL T6, T5, 0x2
- ADDU AT, AT, T6
- LWC1 F6, 0x7000 (AT)
- MUL.S F10, F6, F8
- SWC1 F10, 0x0024 (SP)
- SH R0, 0x0022 (SP)
- LWC1 F4, 0x0034 (SP)
- LWC1 F6, 0x0024 (SP)
- LWC1 F18, 0x0028 (SP)
- LWC1 F16, 0x003C (SP)
- ADD.S F8, F4, F6
- MFC1 A3, F18
- LWC1 F14, 0x0038 (SP)
- SWC1 F6, 0x0010 (SP)
- MFC1 A2, F8
- JAL 0x802E405C
- ADD.S F12, F16, F18
- BNEZ V0, !skipasfjihasfui
- NOP
- LH T7, 0x0022 (SP)
- ADDIU T8, T7, 0x0002
- SH T8, 0x0022 (SP)
- !skipasfjihasfui:
- LWC1 F4, 0x0034 (SP)
- LWC1 F8, 0x0024 (SP)
- LWC1 F10, 0x003C (SP)
- LWC1 F16, 0x0028 (SP)
- ADD.S F18, F4, F8
- LUI A3, 0x8036
- ADDIU A3, A3, 0x1450
- LWC1 F14, 0x0038 (SP)
- MFC1 A2, F18
- JAL 0x80381900
- ADD.S F12, F10, F16
- SWC1 F0, 0x0030 (SP)
- beq r0, r0, !rotateme
- nop
- LUI A0, 0x8036
- LW A0, 0x1450 (A0)
- LW A1, 0x0030 (SP)
- LW A2, 0x0028 (SP)
- JAL 0x802E41A4
- LW A3, 0x0024 (SP)
- ADDIU AT, R0, 0x0001
- BNE V0, AT, !endrotation
- NOP
- LWC1 F6, 0x003C (SP)
- LWC1 F10, 0x0028 (SP)
- LWC1 F16, 0x0034 (SP)
- LWC1 F4, 0x0024 (SP)
- ADD.S F12, F6, F10
- JAL 0x80381BA0
- ADD.S F14, F16, F4
- SWC1 F0, 0x002C (SP)
- LWC1 F8, 0x002C (SP)
- LWC1 F18, 0x0038 (SP)
- C.LT.S F18, F8
- NOP
- BC1F !rotateme
- NOP
- LWC1 F6, 0x002C (SP)
- LUI A0, 0x8036
- LW A0, 0x1450 (A0)
- LW A1, 0x0030 (SP)
- LW A2, 0x0028 (SP)
- LW A3, 0x0024 (SP)
- JAL 0x802E4814
- SWC1 F6, 0x0010 (SP)
- LH T0, 0x0022 (SP)
- ADDIU T1, T0, 0x0004
- BEQ R0, R0, !endrotation
- SH T1, 0x0022 (SP)
- !rotateme:
- LUI A0, 0x8036
- LW A0, 0x1450 (A0)
- LW A1, 0x0030 (SP)
- LW A2, 0x0028 (SP)
- JAL 0x802E445C
- LW A3, 0x0024 (SP)
- !endrotation:
- LH V0, 0x0022 (SP)
- lui v1, $8036
- lw v1, $1160 (V1)
- sw r0, $00b0 (V1)
- sw r0, $00b8 (V1)
- beq r0, r0, !fdinalsafiua
- nop
- !endallofthis:
- addiu at, r0, $4000
- sw at, $00d0 (V1)
- sh at, $001a (V1)
- lw t1, $0180 (V1)
- lwc1 f12, $0024 (T1)
- jal $37a9a8
- lwc1 f14, $001c (t1)
- andi v0, v0, $ffff
- sw v0, $00d4 (V1)
- sw v0, $00c8 (V1)
- sh v0, $001c (V1)
- !fdinalsafiua:
- LW RA, 0x001C (SP)
- JR RA
- ADDIU SP, SP, 0x0040
- //f3d at 7D2800 and 7D3F00
- //geo at 7D2700
- //pointer1 at 7D2798
- //pointer2 at 7D27A0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement