mirror of
https://github.com/n64decomp/mk64
synced 2026-06-02 01:30:21 -04:00
Doc setup_game_memory, label syms, add osSyncPrintf support, match funcs (#444)
* Doc setup_game_memory and label syms * match func_800132F4 * match func label defines * fix some fake ptrs * match more code * Matches * Add osSyncPrintf support and matches * Add func equiv to draw_square and add comment to is_debug
This commit is contained in:
+1
-16
@@ -30,7 +30,7 @@ glabel D_80162F8C
|
||||
glabel D_80162FA0
|
||||
.skip 8
|
||||
|
||||
glabel D_80162FA8
|
||||
glabel D_80162FA8 # fake var?
|
||||
.skip 8
|
||||
|
||||
glabel D_80162FB0
|
||||
@@ -293,18 +293,3 @@ glabel D_80163598
|
||||
|
||||
glabel D_8016359C
|
||||
.skip 4
|
||||
|
||||
glabel sTrains
|
||||
.skip 4
|
||||
|
||||
glabel D_801635A4
|
||||
.skip 12
|
||||
|
||||
glabel D_801635B0
|
||||
.skip 12
|
||||
|
||||
glabel D_801635BC
|
||||
.skip 8
|
||||
|
||||
glabel D_801635C4
|
||||
.skip 220
|
||||
|
||||
+1
-1
@@ -783,7 +783,7 @@ glabel D_8018C3F0
|
||||
glabel D_8018C404
|
||||
.skip 140
|
||||
|
||||
glabel D_8018C490
|
||||
glabel D_8018C490 # end of 8018C3F0
|
||||
.skip 352
|
||||
# end D_8018C3F0
|
||||
|
||||
|
||||
+2
-8
@@ -2,14 +2,8 @@
|
||||
|
||||
.section .bss
|
||||
|
||||
glabel D_801636A0
|
||||
.skip 16
|
||||
|
||||
glabel D_801636B0
|
||||
.skip 252
|
||||
|
||||
glabel D_801637AC #
|
||||
.skip 12
|
||||
glabel sTrains
|
||||
.skip 536
|
||||
|
||||
glabel isCrossingTriggeredByIndex # Crossing activated boolean
|
||||
.skip 4
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
glabel func_80011E38
|
||||
/* 012A38 80011E38 000470C0 */ sll $t6, $a0, 3
|
||||
/* 012A3C 80011E3C 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 012A40 80011E40 000E7100 */ sll $t6, $t6, 4
|
||||
/* 012A44 80011E44 0004C040 */ sll $t8, $a0, 1
|
||||
/* 012A48 80011E48 3C028016 */ lui $v0, %hi(D_801632E8) # 0x8016
|
||||
/* 012A4C 80011E4C 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 012A50 80011E50 00581021 */ addu $v0, $v0, $t8
|
||||
/* 012A54 80011E54 944232E8 */ lhu $v0, %lo(D_801632E8)($v0) # 0x32e8($v0)
|
||||
/* 012A58 80011E58 000E7080 */ sll $t6, $t6, 2
|
||||
/* 012A5C 80011E5C 3C0F800E */ lui $t7, %hi(gPlayerOne)
|
||||
/* 012A60 80011E60 8DEFC4DC */ lw $t7, %lo(gPlayerOne)($t7)
|
||||
/* 012A64 80011E64 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 012A68 80011E68 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 012A6C 80011E6C 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 012A70 80011E70 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 012A74 80011E74 1040000E */ beqz $v0, .L80011EB0
|
||||
/* 012A78 80011E78 01CF2821 */ addu $a1, $t6, $t7
|
||||
/* 012A7C 80011E7C 24010001 */ li $at, 1
|
||||
/* 012A80 80011E80 10410005 */ beq $v0, $at, .L80011E98
|
||||
/* 012A84 80011E84 24010002 */ li $at, 2
|
||||
/* 012A88 80011E88 10410007 */ beq $v0, $at, .L80011EA8
|
||||
/* 012A8C 80011E8C 00000000 */ nop
|
||||
/* 012A90 80011E90 10000008 */ b .L80011EB4
|
||||
/* 012A94 80011E94 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80011E98:
|
||||
/* 012A98 80011E98 0C0046C5 */ jal func_80011B14
|
||||
/* 012A9C 80011E9C 00000000 */ nop
|
||||
/* 012AA0 80011EA0 10000004 */ b .L80011EB4
|
||||
/* 012AA4 80011EA4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80011EA8:
|
||||
/* 012AA8 80011EA8 0C004752 */ jal func_80011D48
|
||||
/* 012AAC 80011EAC 00000000 */ nop
|
||||
.L80011EB0:
|
||||
/* 012AB0 80011EB0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
.L80011EB4:
|
||||
/* 012AB4 80011EB4 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 012AB8 80011EB8 03E00008 */ jr $ra
|
||||
/* 012ABC 80011EBC 00000000 */ nop
|
||||
@@ -1,39 +0,0 @@
|
||||
glabel func_80012190
|
||||
/* 012D90 80012190 3C040600 */ lui $a0, %hi(d_frappe_snowland_tree) # $a0, 0x600
|
||||
/* 012D94 80012194 24847520 */ addiu $a0, %lo(d_frappe_snowland_tree) # addiu $a0, $a0, 0x7520
|
||||
/* 012D98 80012198 00047602 */ srl $t6, $a0, 0x18
|
||||
/* 012D9C 8001219C 000E7880 */ sll $t7, $t6, 2
|
||||
/* 012DA0 800121A0 3C188015 */ lui $t8, %hi(gSegmentTable) # 0x8015
|
||||
/* 012DA4 800121A4 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 012DA8 800121A8 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
|
||||
/* 012DAC 800121AC 8F180258 */ lw $t8, %lo(gSegmentTable)($t8) # 0x258($t8)
|
||||
/* 012DB0 800121B0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
|
||||
/* 012DB4 800121B4 0081C824 */ and $t9, $a0, $at
|
||||
/* 012DB8 800121B8 3C018000 */ lui $at, 0x8000
|
||||
/* 012DBC 800121BC 03192821 */ addu $a1, $t8, $t9
|
||||
/* 012DC0 800121C0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 012DC4 800121C4 00A12821 */ addu $a1, $a1, $at
|
||||
/* 012DC8 800121C8 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 012DCC 800121CC 00A01025 */ move $v0, $a1
|
||||
/* 012DD0 800121D0 34048000 */ li $a0, 32768
|
||||
/* 012DD4 800121D4 00001825 */ move $v1, $zero
|
||||
.L800121D8:
|
||||
/* 012DD8 800121D8 94480000 */ lhu $t0, ($v0)
|
||||
/* 012DDC 800121DC 24420008 */ addiu $v0, $v0, 8
|
||||
/* 012DE0 800121E0 10880003 */ beq $a0, $t0, .L800121F0
|
||||
/* 012DE4 800121E4 00000000 */ nop
|
||||
/* 012DE8 800121E8 1000FFFB */ b .L800121D8
|
||||
/* 012DEC 800121EC 24630001 */ addiu $v1, $v1, 1
|
||||
.L800121F0:
|
||||
/* 012DF0 800121F0 3C048016 */ lui $a0, %hi(D_80163598) # $a0, 0x8016
|
||||
/* 012DF4 800121F4 8C843598 */ lw $a0, %lo(D_80163598)($a0)
|
||||
/* 012DF8 800121F8 0C0045A3 */ jal func_8001168C
|
||||
/* 012DFC 800121FC 2466FFFF */ addiu $a2, $v1, -1
|
||||
/* 012E00 80012200 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 012E04 80012204 3C018016 */ lui $at, %hi(D_8016359C) # $at, 0x8016
|
||||
/* 012E08 80012208 AC22359C */ sw $v0, %lo(D_8016359C)($at)
|
||||
/* 012E0C 8001220C 3C018016 */ lui $at, %hi(D_80162EB2) # $at, 0x8016
|
||||
/* 012E10 80012210 2409FFD8 */ li $t1, -40
|
||||
/* 012E14 80012214 A4292EB2 */ sh $t1, %lo(D_80162EB2)($at)
|
||||
/* 012E18 80012218 03E00008 */ jr $ra
|
||||
/* 012E1C 8001221C 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
@@ -1,64 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED128
|
||||
.float 1.66666666
|
||||
.word 0x00000000
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_800132F4
|
||||
/* 013EF4 800132F4 3C058016 */ lui $a1, %hi(D_801637C0) # $a1, 0x8016
|
||||
/* 013EF8 800132F8 3C01800F */ lui $at, %hi(D_800ED128) # $at, 0x800f
|
||||
/* 013EFC 800132FC 3C0B8016 */ lui $t3, %hi(D_801637EC) # $t3, 0x8016
|
||||
/* 013F00 80013300 3C0A8019 */ lui $t2, %hi(D_8018EDF3) # $t2, 0x8019
|
||||
/* 013F04 80013304 3C088016 */ lui $t0, %hi(D_80162EB2) # $t0, 0x8016
|
||||
/* 013F08 80013308 3C078016 */ lui $a3, %hi(D_80163598) # $a3, 0x8016
|
||||
/* 013F0C 8001330C 44800000 */ mtc1 $zero, $f0
|
||||
/* 013F10 80013310 24E73598 */ addiu $a3, %lo(D_80163598) # addiu $a3, $a3, 0x3598
|
||||
/* 013F14 80013314 25082EB2 */ addiu $t0, %lo(D_80162EB2) # addiu $t0, $t0, 0x2eb2
|
||||
/* 013F18 80013318 254AEDF3 */ addiu $t2, %lo(D_8018EDF3) # addiu $t2, $t2, -0x120d
|
||||
/* 013F1C 8001331C 256B37EC */ addiu $t3, %lo(D_801637EC) # addiu $t3, $t3, 0x37ec
|
||||
/* 013F20 80013320 C422D128 */ lwc1 $f2, %lo(D_800ED128)($at)
|
||||
/* 013F24 80013324 24A537C0 */ addiu $a1, %lo(D_801637C0) # addiu $a1, $a1, 0x37c0
|
||||
/* 013F28 80013328 00001825 */ move $v1, $zero
|
||||
/* 013F2C 8001332C 240C0001 */ li $t4, 1
|
||||
/* 013F30 80013330 2409FFFF */ li $t1, -1
|
||||
.L80013334:
|
||||
/* 013F34 80013334 8CF80000 */ lw $t8, ($a3)
|
||||
/* 013F38 80013338 306EFFFF */ andi $t6, $v1, 0xffff
|
||||
/* 013F3C 8001333C 000E7880 */ sll $t7, $t6, 2
|
||||
/* 013F40 80013340 01F83021 */ addu $a2, $t7, $t8
|
||||
/* 013F44 80013344 84D90000 */ lh $t9, ($a2)
|
||||
/* 013F48 80013348 850D0000 */ lh $t5, ($t0)
|
||||
/* 013F4C 8001334C 814F0000 */ lb $t7, ($t2)
|
||||
/* 013F50 80013350 44992000 */ mtc1 $t9, $f4
|
||||
/* 013F54 80013354 448D4000 */ mtc1 $t5, $f8
|
||||
/* 013F58 80013358 29E10003 */ slti $at, $t7, 3
|
||||
/* 013F5C 8001335C 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 013F60 80013360 00A02025 */ move $a0, $a1
|
||||
/* 013F64 80013364 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 013F68 80013368 E4A60004 */ swc1 $f6, 4($a1)
|
||||
/* 013F6C 8001336C E4AA0008 */ swc1 $f10, 8($a1)
|
||||
/* 013F70 80013370 84CE0002 */ lh $t6, 2($a2)
|
||||
/* 013F74 80013374 A4A3001C */ sh $v1, 0x1c($a1)
|
||||
/* 013F78 80013378 246300B4 */ addiu $v1, $v1, 0xb4
|
||||
/* 013F7C 8001337C 448E8000 */ mtc1 $t6, $f16
|
||||
/* 013F80 80013380 A4A9001E */ sh $t1, 0x1e($a1)
|
||||
/* 013F84 80013384 468084A0 */ cvt.s.w $f18, $f16
|
||||
/* 013F88 80013388 14200003 */ bnez $at, .L80013398
|
||||
/* 013F8C 8001338C E4B2000C */ swc1 $f18, 0xc($a1)
|
||||
/* 013F90 80013390 10000002 */ b .L8001339C
|
||||
/* 013F94 80013394 A4A00000 */ sh $zero, ($a1)
|
||||
.L80013398:
|
||||
/* 013F98 80013398 A4AC0000 */ sh $t4, ($a1)
|
||||
.L8001339C:
|
||||
/* 013F9C 8001339C 24A5002C */ addiu $a1, $a1, 0x2c
|
||||
/* 013FA0 800133A0 E4800010 */ swc1 $f0, 0x10($a0)
|
||||
/* 013FA4 800133A4 E4800014 */ swc1 $f0, 0x14($a0)
|
||||
/* 013FA8 800133A8 E4800018 */ swc1 $f0, 0x18($a0)
|
||||
/* 013FAC 800133AC E4820020 */ swc1 $f2, 0x20($a0)
|
||||
/* 013FB0 800133B0 14ABFFE0 */ bne $a1, $t3, .L80013334
|
||||
/* 013FB4 800133B4 A4800024 */ sh $zero, 0x24($a0)
|
||||
/* 013FB8 800133B8 3C018016 */ lui $at, %hi(D_801630FC) # 0x8016
|
||||
/* 013FBC 800133BC 03E00008 */ jr $ra
|
||||
/* 013FC0 800133C0 A42030FC */ sh $zero, %lo(D_801630FC)($at) # 0x30fc($at)
|
||||
@@ -1,184 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED168
|
||||
.double 0.6
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_800139E4
|
||||
/* 0145E4 800139E4 27BDFF98 */ addiu $sp, $sp, -0x68
|
||||
/* 0145E8 800139E8 AFB7005C */ sw $s7, 0x5c($sp)
|
||||
/* 0145EC 800139EC AFBE0060 */ sw $fp, 0x60($sp)
|
||||
/* 0145F0 800139F0 AFB3004C */ sw $s3, 0x4c($sp)
|
||||
/* 0145F4 800139F4 F7BA0038 */ sdc1 $f26, 0x38($sp)
|
||||
/* 0145F8 800139F8 F7B80030 */ sdc1 $f24, 0x30($sp)
|
||||
/* 0145FC 800139FC 3C178016 */ lui $s7, %hi(gWaypointCountByPathIndex) # $s7, 0x8016
|
||||
/* 014600 80013A00 46006606 */ mov.s $f24, $f12
|
||||
/* 014604 80013A04 46007686 */ mov.s $f26, $f14
|
||||
/* 014608 80013A08 00C0F025 */ move $fp, $a2
|
||||
/* 01460C 80013A0C AFBF0064 */ sw $ra, 0x64($sp)
|
||||
/* 014610 80013A10 AFB60058 */ sw $s6, 0x58($sp)
|
||||
/* 014614 80013A14 AFB50054 */ sw $s5, 0x54($sp)
|
||||
/* 014618 80013A18 AFB40050 */ sw $s4, 0x50($sp)
|
||||
/* 01461C 80013A1C AFB20048 */ sw $s2, 0x48($sp)
|
||||
/* 014620 80013A20 AFB10044 */ sw $s1, 0x44($sp)
|
||||
/* 014624 80013A24 AFB00040 */ sw $s0, 0x40($sp)
|
||||
/* 014628 80013A28 F7B60028 */ sdc1 $f22, 0x28($sp)
|
||||
/* 01462C 80013A2C F7B40020 */ sdc1 $f20, 0x20($sp)
|
||||
/* 014630 80013A30 AFA70074 */ sw $a3, 0x74($sp)
|
||||
/* 014634 80013A34 96F745C8 */ lhu $s7, %lo(gWaypointCountByPathIndex)($s7)
|
||||
/* 014638 80013A38 18C0007B */ blez $a2, .L80013C28
|
||||
/* 01463C 80013A3C 00009825 */ move $s3, $zero
|
||||
/* 014640 80013A40 8FB00078 */ lw $s0, 0x78($sp)
|
||||
/* 014644 80013A44 3C01800F */ lui $at, %hi(D_800ED168)
|
||||
/* 014648 80013A48 3C16800E */ lui $s6, %hi(gModeSelection)
|
||||
/* 01464C 80013A4C 4480A000 */ mtc1 $zero, $f20
|
||||
/* 014650 80013A50 26D6C53C */ addiu $s6, %lo(gModeSelection) # addiu $s6, $s6, -0x3ac4
|
||||
/* 014654 80013A54 D436D168 */ ldc1 $f22, %lo(D_800ED168)($at)
|
||||
/* 014658 80013A58 0000A025 */ move $s4, $zero
|
||||
/* 01465C 80013A5C 24150001 */ li $s5, 1
|
||||
/* 014660 80013A60 26110004 */ addiu $s1, $s0, 4
|
||||
/* 014664 80013A64 2612001C */ addiu $s2, $s0, 0x1c
|
||||
.L80013A68:
|
||||
/* 014668 80013A68 029E001A */ div $zero, $s4, $fp
|
||||
/* 01466C 80013A6C 00007012 */ mflo $t6
|
||||
/* 014670 80013A70 8FAF0074 */ lw $t7, 0x74($sp)
|
||||
/* 014674 80013A74 8FA9007C */ lw $t1, 0x7c($sp)
|
||||
/* 014678 80013A78 17C00002 */ bnez $fp, .L80013A84
|
||||
/* 01467C 80013A7C 00000000 */ nop
|
||||
/* 014680 80013A80 0007000D */ break 7
|
||||
.L80013A84:
|
||||
/* 014684 80013A84 2401FFFF */ li $at, -1
|
||||
/* 014688 80013A88 17C10004 */ bne $fp, $at, .L80013A9C
|
||||
/* 01468C 80013A8C 3C018000 */ lui $at, 0x8000
|
||||
/* 014690 80013A90 16810002 */ bne $s4, $at, .L80013A9C
|
||||
/* 014694 80013A94 00000000 */ nop
|
||||
/* 014698 80013A98 0006000D */ break 6
|
||||
.L80013A9C:
|
||||
/* 01469C 80013A9C 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 0146A0 80013AA0 0317001A */ div $zero, $t8, $s7
|
||||
/* 0146A4 80013AA4 00001810 */ mfhi $v1
|
||||
/* 0146A8 80013AA8 3079FFFF */ andi $t9, $v1, 0xffff
|
||||
/* 0146AC 80013AAC 001940C0 */ sll $t0, $t9, 3
|
||||
/* 0146B0 80013AB0 01091021 */ addu $v0, $t0, $t1
|
||||
/* 0146B4 80013AB4 844A0000 */ lh $t2, ($v0)
|
||||
/* 0146B8 80013AB8 240DFFFF */ li $t5, -1
|
||||
/* 0146BC 80013ABC 16E00002 */ bnez $s7, .L80013AC8
|
||||
/* 0146C0 80013AC0 00000000 */ nop
|
||||
/* 0146C4 80013AC4 0007000D */ break 7
|
||||
.L80013AC8:
|
||||
/* 0146C8 80013AC8 2401FFFF */ li $at, -1
|
||||
/* 0146CC 80013ACC 16E10004 */ bne $s7, $at, .L80013AE0
|
||||
/* 0146D0 80013AD0 3C018000 */ lui $at, 0x8000
|
||||
/* 0146D4 80013AD4 17010002 */ bne $t8, $at, .L80013AE0
|
||||
/* 0146D8 80013AD8 00000000 */ nop
|
||||
/* 0146DC 80013ADC 0006000D */ break 6
|
||||
.L80013AE0:
|
||||
/* 0146E0 80013AE0 448A2000 */ mtc1 $t2, $f4
|
||||
/* 0146E4 80013AE4 24010003 */ li $at, 3
|
||||
/* 0146E8 80013AE8 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 0146EC 80013AEC E6060004 */ swc1 $f6, 4($s0)
|
||||
/* 0146F0 80013AF0 844B0002 */ lh $t3, 2($v0)
|
||||
/* 0146F4 80013AF4 448B4000 */ mtc1 $t3, $f8
|
||||
/* 0146F8 80013AF8 00000000 */ nop
|
||||
/* 0146FC 80013AFC 468042A0 */ cvt.s.w $f10, $f8
|
||||
/* 014700 80013B00 E60A0008 */ swc1 $f10, 8($s0)
|
||||
/* 014704 80013B04 844C0004 */ lh $t4, 4($v0)
|
||||
/* 014708 80013B08 A60D001E */ sh $t5, 0x1e($s0)
|
||||
/* 01470C 80013B0C A603001C */ sh $v1, 0x1c($s0)
|
||||
/* 014710 80013B10 448C8000 */ mtc1 $t4, $f16
|
||||
/* 014714 80013B14 A6000000 */ sh $zero, ($s0)
|
||||
/* 014718 80013B18 E6140010 */ swc1 $f20, 0x10($s0)
|
||||
/* 01471C 80013B1C 468084A0 */ cvt.s.w $f18, $f16
|
||||
/* 014720 80013B20 E6140014 */ swc1 $f20, 0x14($s0)
|
||||
/* 014724 80013B24 E6140018 */ swc1 $f20, 0x18($s0)
|
||||
/* 014728 80013B28 A2000030 */ sb $zero, 0x30($s0)
|
||||
/* 01472C 80013B2C A2000031 */ sb $zero, 0x31($s0)
|
||||
/* 014730 80013B30 E612000C */ swc1 $f18, 0xc($s0)
|
||||
/* 014734 80013B34 8ECE0000 */ lw $t6, ($s6)
|
||||
/* 014738 80013B38 16AE0006 */ bne $s5, $t6, .L80013B54
|
||||
/* 01473C 80013B3C 00000000 */ nop
|
||||
/* 014740 80013B40 0261001A */ div $zero, $s3, $at
|
||||
/* 014744 80013B44 00007810 */ mfhi $t7
|
||||
/* 014748 80013B48 A60F002E */ sh $t7, 0x2e($s0)
|
||||
/* 01474C 80013B4C 10000005 */ b .L80013B64
|
||||
/* 014750 80013B50 8602002E */ lh $v0, 0x2e($s0)
|
||||
.L80013B54:
|
||||
/* 014754 80013B54 0C0ADF8D */ jal random_int
|
||||
/* 014758 80013B58 24040003 */ li $a0, 3
|
||||
/* 01475C 80013B5C A602002E */ sh $v0, 0x2e($s0)
|
||||
/* 014760 80013B60 8602002E */ lh $v0, 0x2e($s0)
|
||||
.L80013B64:
|
||||
/* 014764 80013B64 3C19800E */ lui $t9, %hi(gCCSelection)
|
||||
/* 014768 80013B68 24010002 */ li $at, 2
|
||||
/* 01476C 80013B6C 2458FFFF */ addiu $t8, $v0, -1
|
||||
/* 014770 80013B70 44982000 */ mtc1 $t8, $f4
|
||||
/* 014774 80013B74 3C098016 */ lui $t1, %hi(D_8016347A) # $t1, 0x8016
|
||||
/* 014778 80013B78 240A0003 */ li $t2, 3
|
||||
/* 01477C 80013B7C 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 014780 80013B80 02202025 */ move $a0, $s1
|
||||
/* 014784 80013B84 02402825 */ move $a1, $s2
|
||||
/* 014788 80013B88 46003221 */ cvt.d.s $f8, $f6
|
||||
/* 01478C 80013B8C 46364282 */ mul.d $f10, $f8, $f22
|
||||
/* 014790 80013B90 46205420 */ cvt.s.d $f16, $f10
|
||||
/* 014794 80013B94 E6100024 */ swc1 $f16, 0x24($s0)
|
||||
/* 014798 80013B98 8F39C548 */ lw $t9, %lo(gCCSelection)($t9)
|
||||
/* 01479C 80013B9C 1F200004 */ bgtz $t9, .L80013BB0
|
||||
/* 0147A0 80013BA0 00000000 */ nop
|
||||
/* 0147A4 80013BA4 8EC80000 */ lw $t0, ($s6)
|
||||
/* 0147A8 80013BA8 56A80006 */ bnel $s5, $t0, .L80013BC4
|
||||
/* 0147AC 80013BAC E61A0020 */ swc1 $f26, 0x20($s0)
|
||||
.L80013BB0:
|
||||
/* 0147B0 80013BB0 54410004 */ bnel $v0, $at, .L80013BC4
|
||||
/* 0147B4 80013BB4 E61A0020 */ swc1 $f26, 0x20($s0)
|
||||
/* 0147B8 80013BB8 10000002 */ b .L80013BC4
|
||||
/* 0147BC 80013BBC E6180020 */ swc1 $f24, 0x20($s0)
|
||||
/* 0147C0 80013BC0 E61A0020 */ swc1 $f26, 0x20($s0)
|
||||
.L80013BC4:
|
||||
/* 0147C4 80013BC4 A6000028 */ sh $zero, 0x28($s0)
|
||||
/* 0147C8 80013BC8 A600002C */ sh $zero, 0x2c($s0)
|
||||
/* 0147CC 80013BCC 8529347A */ lh $t1, %lo(D_8016347A)($t1)
|
||||
/* 0147D0 80013BD0 5520000B */ bnel $t1, $zero, .L80013C00
|
||||
/* 0147D4 80013BD4 8E060020 */ lw $a2, 0x20($s0)
|
||||
/* 0147D8 80013BD8 8E060020 */ lw $a2, 0x20($s0)
|
||||
/* 0147DC 80013BDC 8E070024 */ lw $a3, 0x24($s0)
|
||||
/* 0147E0 80013BE0 AFAA0014 */ sw $t2, 0x14($sp)
|
||||
/* 0147E4 80013BE4 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 0147E8 80013BE8 02202025 */ move $a0, $s1
|
||||
/* 0147EC 80013BEC 0C0035B4 */ jal func_8000D6D0
|
||||
/* 0147F0 80013BF0 02402825 */ move $a1, $s2
|
||||
/* 0147F4 80013BF4 10000006 */ b .L80013C10
|
||||
/* 0147F8 80013BF8 A602002A */ sh $v0, 0x2a($s0)
|
||||
/* 0147FC 80013BFC 8E060020 */ lw $a2, 0x20($s0)
|
||||
.L80013C00:
|
||||
/* 014800 80013C00 8E070024 */ lw $a3, 0x24($s0)
|
||||
/* 014804 80013C04 0C003650 */ jal func_8000D940
|
||||
/* 014808 80013C08 AFA00010 */ sw $zero, 0x10($sp)
|
||||
/* 01480C 80013C0C A602002A */ sh $v0, 0x2a($s0)
|
||||
.L80013C10:
|
||||
/* 014810 80013C10 26730001 */ addiu $s3, $s3, 1
|
||||
/* 014814 80013C14 0297A021 */ addu $s4, $s4, $s7
|
||||
/* 014818 80013C18 26100034 */ addiu $s0, $s0, 0x34
|
||||
/* 01481C 80013C1C 26310034 */ addiu $s1, $s1, 0x34
|
||||
/* 014820 80013C20 167EFF91 */ bne $s3, $fp, .L80013A68
|
||||
/* 014824 80013C24 26520034 */ addiu $s2, $s2, 0x34
|
||||
.L80013C28:
|
||||
/* 014828 80013C28 8FBF0064 */ lw $ra, 0x64($sp)
|
||||
/* 01482C 80013C2C 240B000A */ li $t3, 10
|
||||
/* 014830 80013C30 3C018016 */ lui $at, %hi(D_801631C8) # $at, 0x8016
|
||||
/* 014834 80013C34 D7B40020 */ ldc1 $f20, 0x20($sp)
|
||||
/* 014838 80013C38 D7B60028 */ ldc1 $f22, 0x28($sp)
|
||||
/* 01483C 80013C3C D7B80030 */ ldc1 $f24, 0x30($sp)
|
||||
/* 014840 80013C40 D7BA0038 */ ldc1 $f26, 0x38($sp)
|
||||
/* 014844 80013C44 8FB00040 */ lw $s0, 0x40($sp)
|
||||
/* 014848 80013C48 8FB10044 */ lw $s1, 0x44($sp)
|
||||
/* 01484C 80013C4C 8FB20048 */ lw $s2, 0x48($sp)
|
||||
/* 014850 80013C50 8FB3004C */ lw $s3, 0x4c($sp)
|
||||
/* 014854 80013C54 8FB40050 */ lw $s4, 0x50($sp)
|
||||
/* 014858 80013C58 8FB50054 */ lw $s5, 0x54($sp)
|
||||
/* 01485C 80013C5C 8FB60058 */ lw $s6, 0x58($sp)
|
||||
/* 014860 80013C60 8FB7005C */ lw $s7, 0x5c($sp)
|
||||
/* 014864 80013C64 8FBE0060 */ lw $fp, 0x60($sp)
|
||||
/* 014868 80013C68 A42B31C8 */ sh $t3, %lo(D_801631C8)($at)
|
||||
/* 01486C 80013C6C 03E00008 */ jr $ra
|
||||
/* 014870 80013C70 27BD0068 */ addiu $sp, $sp, 0x68
|
||||
@@ -1,54 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED1B8
|
||||
.double 90.0
|
||||
|
||||
glabel D_800ED1C0
|
||||
.double 4.583333333333333
|
||||
|
||||
glabel D_800ED1C8
|
||||
.double 2.9166666666666665
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_800147E0
|
||||
/* 0153E0 800147E0 3C0E800E */ lui $t6, %hi(gCCSelection)
|
||||
/* 0153E4 800147E4 8DCEC548 */ lw $t6, %lo(gCCSelection)($t6)
|
||||
/* 0153E8 800147E8 3C01800F */ lui $at, %hi(D_800ED1B8)
|
||||
/* 0153EC 800147EC D428D1B8 */ ldc1 $f8, %lo(D_800ED1B8)($at)
|
||||
/* 0153F0 800147F0 448E2000 */ mtc1 $t6, $f4
|
||||
/* 0153F4 800147F4 3C01406B */ li $at, 0x406B0000 # 3.671875
|
||||
/* 0153F8 800147F8 44818800 */ mtc1 $at, $f17
|
||||
/* 0153FC 800147FC 468021A1 */ cvt.d.w $f6, $f4
|
||||
/* 015400 80014800 44808000 */ mtc1 $zero, $f16
|
||||
/* 015404 80014804 3C01800F */ lui $at, %hi(D_800ED1C0)
|
||||
/* 015408 80014808 D432D1C0 */ ldc1 $f18, %lo(D_800ED1C0)($at)
|
||||
/* 01540C 8001480C 3C01800F */ lui $at, %hi(D_800ED1C8)
|
||||
/* 015410 80014810 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 015414 80014814 D426D1C8 */ ldc1 $f6, %lo(D_800ED1C8)($at)
|
||||
/* 015418 80014818 3C0F800E */ lui $t7, %hi(gModeSelection)
|
||||
/* 01541C 8001481C 8DEFC53C */ lw $t7, %lo(gModeSelection)($t7)
|
||||
/* 015420 80014820 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 015424 80014824 24010001 */ li $at, 1
|
||||
/* 015428 80014828 3C188016 */ lui $t8, %hi(gBoxTruckList) # $t8, 0x8016
|
||||
/* 01542C 8001482C AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 015430 80014830 46305003 */ div.d $f0, $f10, $f16
|
||||
/* 015434 80014834 24060007 */ li $a2, 7
|
||||
/* 015438 80014838 27183818 */ addiu $t8, %lo(gBoxTruckList) # addiu $t8, $t8, 0x3818
|
||||
/* 01543C 8001483C 00003825 */ move $a3, $zero
|
||||
/* 015440 80014840 3C198016 */ lui $t9, %hi(D_80164550) # $t9, 0x8016
|
||||
/* 015444 80014844 46320100 */ add.d $f4, $f0, $f18
|
||||
/* 015448 80014848 46260200 */ add.d $f8, $f0, $f6
|
||||
/* 01544C 8001484C 46202320 */ cvt.s.d $f12, $f4
|
||||
/* 015450 80014850 15E10002 */ bne $t7, $at, .L8001485C
|
||||
/* 015454 80014854 462043A0 */ cvt.s.d $f14, $f8
|
||||
/* 015458 80014858 24060008 */ li $a2, 8
|
||||
.L8001485C:
|
||||
/* 01545C 8001485C 8F394550 */ lw $t9, %lo(D_80164550)($t9)
|
||||
/* 015460 80014860 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 015464 80014864 0C004E79 */ jal func_800139E4
|
||||
/* 015468 80014868 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 01546C 8001486C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 015470 80014870 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 015474 80014874 03E00008 */ jr $ra
|
||||
/* 015478 80014878 00000000 */ nop
|
||||
@@ -1,54 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED1D0
|
||||
.double 90.0
|
||||
|
||||
glabel D_800ED1D8
|
||||
.double 4.583333333333333
|
||||
|
||||
glabel D_800ED1E0
|
||||
.double 2.9166666666666665
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_80014934
|
||||
/* 015534 80014934 3C0E800E */ lui $t6, %hi(gCCSelection)
|
||||
/* 015538 80014938 8DCEC548 */ lw $t6, %lo(gCCSelection)($t6)
|
||||
/* 01553C 8001493C 3C01800F */ lui $at, %hi(D_800ED1D0)
|
||||
/* 015540 80014940 D428D1D0 */ ldc1 $f8, %lo(D_800ED1D0)($at)
|
||||
/* 015544 80014944 448E2000 */ mtc1 $t6, $f4
|
||||
/* 015548 80014948 3C01406B */ li $at, 0x406B0000 # 3.671875
|
||||
/* 01554C 8001494C 44818800 */ mtc1 $at, $f17
|
||||
/* 015550 80014950 468021A1 */ cvt.d.w $f6, $f4
|
||||
/* 015554 80014954 44808000 */ mtc1 $zero, $f16
|
||||
/* 015558 80014958 3C01800F */ lui $at, %hi(D_800ED1D8)
|
||||
/* 01555C 8001495C D432D1D8 */ ldc1 $f18, %lo(D_800ED1D8)($at)
|
||||
/* 015560 80014960 3C01800F */ lui $at, %hi(D_800ED1E0)
|
||||
/* 015564 80014964 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 015568 80014968 D426D1E0 */ ldc1 $f6, %lo(D_800ED1E0)($at)
|
||||
/* 01556C 8001496C 3C0F800E */ lui $t7, %hi(gModeSelection)
|
||||
/* 015570 80014970 8DEFC53C */ lw $t7, %lo(gModeSelection)($t7)
|
||||
/* 015574 80014974 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 015578 80014978 24010001 */ li $at, 1
|
||||
/* 01557C 8001497C 3C188016 */ lui $t8, %hi(gSchoolBusList) # $t8, 0x8016
|
||||
/* 015580 80014980 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 015584 80014984 46305003 */ div.d $f0, $f10, $f16
|
||||
/* 015588 80014988 24060007 */ li $a2, 7
|
||||
/* 01558C 8001498C 27183988 */ addiu $t8, %lo(gSchoolBusList) # addiu $t8, $t8, 0x3988
|
||||
/* 015590 80014990 2407004B */ li $a3, 75
|
||||
/* 015594 80014994 3C198016 */ lui $t9, %hi(D_80164550) # $t9, 0x8016
|
||||
/* 015598 80014998 46320100 */ add.d $f4, $f0, $f18
|
||||
/* 01559C 8001499C 46260200 */ add.d $f8, $f0, $f6
|
||||
/* 0155A0 800149A0 46202320 */ cvt.s.d $f12, $f4
|
||||
/* 0155A4 800149A4 15E10002 */ bne $t7, $at, .L800149B0
|
||||
/* 0155A8 800149A8 462043A0 */ cvt.s.d $f14, $f8
|
||||
/* 0155AC 800149AC 24060008 */ li $a2, 8
|
||||
.L800149B0:
|
||||
/* 0155B0 800149B0 8F394550 */ lw $t9, %lo(D_80164550)($t9)
|
||||
/* 0155B4 800149B4 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 0155B8 800149B8 0C004E79 */ jal func_800139E4
|
||||
/* 0155BC 800149BC AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 0155C0 800149C0 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 0155C4 800149C4 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 0155C8 800149C8 03E00008 */ jr $ra
|
||||
/* 0155CC 800149CC 00000000 */ nop
|
||||
@@ -1,54 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED1E8
|
||||
.double 90.0
|
||||
|
||||
glabel D_800ED1F0
|
||||
.double 4.583333333333333
|
||||
|
||||
glabel D_800ED1F8
|
||||
.double 2.9166666666666665
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_80014A88
|
||||
/* 015688 80014A88 3C0E800E */ lui $t6, %hi(gCCSelection)
|
||||
/* 01568C 80014A8C 8DCEC548 */ lw $t6, %lo(gCCSelection)($t6)
|
||||
/* 015690 80014A90 3C01800F */ lui $at, %hi(D_800ED1E8)
|
||||
/* 015694 80014A94 D428D1E8 */ ldc1 $f8, %lo(D_800ED1E8)($at)
|
||||
/* 015698 80014A98 448E2000 */ mtc1 $t6, $f4
|
||||
/* 01569C 80014A9C 3C01406B */ li $at, 0x406B0000 # 3.671875
|
||||
/* 0156A0 80014AA0 44818800 */ mtc1 $at, $f17
|
||||
/* 0156A4 80014AA4 468021A1 */ cvt.d.w $f6, $f4
|
||||
/* 0156A8 80014AA8 44808000 */ mtc1 $zero, $f16
|
||||
/* 0156AC 80014AAC 3C01800F */ lui $at, %hi(D_800ED1F0)
|
||||
/* 0156B0 80014AB0 D432D1F0 */ ldc1 $f18, %lo(D_800ED1F0)($at)
|
||||
/* 0156B4 80014AB4 3C01800F */ lui $at, %hi(D_800ED1F8)
|
||||
/* 0156B8 80014AB8 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 0156BC 80014ABC D426D1F8 */ ldc1 $f6, %lo(D_800ED1F8)($at)
|
||||
/* 0156C0 80014AC0 3C0F800E */ lui $t7, %hi(gModeSelection)
|
||||
/* 0156C4 80014AC4 8DEFC53C */ lw $t7, %lo(gModeSelection)($t7)
|
||||
/* 0156C8 80014AC8 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 0156CC 80014ACC 24010001 */ li $at, 1
|
||||
/* 0156D0 80014AD0 3C188016 */ lui $t8, %hi(gTankerTruckList) # $t8, 0x8016
|
||||
/* 0156D4 80014AD4 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 0156D8 80014AD8 46305003 */ div.d $f0, $f10, $f16
|
||||
/* 0156DC 80014ADC 24060007 */ li $a2, 7
|
||||
/* 0156E0 80014AE0 27183AF8 */ addiu $t8, %lo(gTankerTruckList) # addiu $t8, $t8, 0x3af8
|
||||
/* 0156E4 80014AE4 24070032 */ li $a3, 50
|
||||
/* 0156E8 80014AE8 3C198016 */ lui $t9, %hi(D_80164550) # $t9, 0x8016
|
||||
/* 0156EC 80014AEC 46320100 */ add.d $f4, $f0, $f18
|
||||
/* 0156F0 80014AF0 46260200 */ add.d $f8, $f0, $f6
|
||||
/* 0156F4 80014AF4 46202320 */ cvt.s.d $f12, $f4
|
||||
/* 0156F8 80014AF8 15E10002 */ bne $t7, $at, .L80014B04
|
||||
/* 0156FC 80014AFC 462043A0 */ cvt.s.d $f14, $f8
|
||||
/* 015700 80014B00 24060008 */ li $a2, 8
|
||||
.L80014B04:
|
||||
/* 015704 80014B04 8F394550 */ lw $t9, %lo(D_80164550)($t9)
|
||||
/* 015708 80014B08 AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 01570C 80014B0C 0C004E79 */ jal func_800139E4
|
||||
/* 015710 80014B10 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 015714 80014B14 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 015718 80014B18 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 01571C 80014B1C 03E00008 */ jr $ra
|
||||
/* 015720 80014B20 00000000 */ nop
|
||||
@@ -1,54 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED200
|
||||
.double 90.0
|
||||
|
||||
glabel D_800ED208
|
||||
.double 4.583333333333333
|
||||
|
||||
glabel D_800ED210
|
||||
.double 2.9166666666666665
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_80014BDC
|
||||
/* 0157DC 80014BDC 3C0E800E */ lui $t6, %hi(gCCSelection)
|
||||
/* 0157E0 80014BE0 8DCEC548 */ lw $t6, %lo(gCCSelection)($t6)
|
||||
/* 0157E4 80014BE4 3C01800F */ lui $at, %hi(D_800ED200)
|
||||
/* 0157E8 80014BE8 D428D200 */ ldc1 $f8, %lo(D_800ED200)($at)
|
||||
/* 0157EC 80014BEC 448E2000 */ mtc1 $t6, $f4
|
||||
/* 0157F0 80014BF0 3C01406B */ li $at, 0x406B0000 # 3.671875
|
||||
/* 0157F4 80014BF4 44818800 */ mtc1 $at, $f17
|
||||
/* 0157F8 80014BF8 468021A1 */ cvt.d.w $f6, $f4
|
||||
/* 0157FC 80014BFC 44808000 */ mtc1 $zero, $f16
|
||||
/* 015800 80014C00 3C01800F */ lui $at, %hi(D_800ED208)
|
||||
/* 015804 80014C04 D432D208 */ ldc1 $f18, %lo(D_800ED208)($at)
|
||||
/* 015808 80014C08 3C01800F */ lui $at, %hi(D_800ED210)
|
||||
/* 01580C 80014C0C 46283282 */ mul.d $f10, $f6, $f8
|
||||
/* 015810 80014C10 D426D210 */ ldc1 $f6, %lo(D_800ED210)($at)
|
||||
/* 015814 80014C14 3C0F800E */ lui $t7, %hi(gModeSelection)
|
||||
/* 015818 80014C18 8DEFC53C */ lw $t7, %lo(gModeSelection)($t7)
|
||||
/* 01581C 80014C1C 27BDFFE0 */ addiu $sp, $sp, -0x20
|
||||
/* 015820 80014C20 24010001 */ li $at, 1
|
||||
/* 015824 80014C24 3C188016 */ lui $t8, %hi(gCarList) # $t8, 0x8016
|
||||
/* 015828 80014C28 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 01582C 80014C2C 46305003 */ div.d $f0, $f10, $f16
|
||||
/* 015830 80014C30 24060007 */ li $a2, 7
|
||||
/* 015834 80014C34 27183C68 */ addiu $t8, %lo(gCarList) # addiu $t8, $t8, 0x3c68
|
||||
/* 015838 80014C38 24070019 */ li $a3, 25
|
||||
/* 01583C 80014C3C 3C198016 */ lui $t9, %hi(D_80164550) # $t9, 0x8016
|
||||
/* 015840 80014C40 46320100 */ add.d $f4, $f0, $f18
|
||||
/* 015844 80014C44 46260200 */ add.d $f8, $f0, $f6
|
||||
/* 015848 80014C48 46202320 */ cvt.s.d $f12, $f4
|
||||
/* 01584C 80014C4C 15E10002 */ bne $t7, $at, .L80014C58
|
||||
/* 015850 80014C50 462043A0 */ cvt.s.d $f14, $f8
|
||||
/* 015854 80014C54 24060008 */ li $a2, 8
|
||||
.L80014C58:
|
||||
/* 015858 80014C58 8F394550 */ lw $t9, %lo(D_80164550)($t9)
|
||||
/* 01585C 80014C5C AFB80010 */ sw $t8, 0x10($sp)
|
||||
/* 015860 80014C60 0C004E79 */ jal func_800139E4
|
||||
/* 015864 80014C64 AFB90014 */ sw $t9, 0x14($sp)
|
||||
/* 015868 80014C68 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 01586C 80014C6C 27BD0020 */ addiu $sp, $sp, 0x20
|
||||
/* 015870 80014C70 03E00008 */ jr $ra
|
||||
/* 015874 80014C74 00000000 */ nop
|
||||
@@ -1,155 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED218
|
||||
.double 3000.0
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_80015544
|
||||
/* 016144 80015544 00045840 */ sll $t3, $a0, 1
|
||||
/* 016148 80015548 3C0C8016 */ lui $t4, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 01614C 8001554C 018B6021 */ addu $t4, $t4, $t3
|
||||
/* 016150 80015550 958C4438 */ lhu $t4, %lo(gNearestWaypointByPlayerId)($t4) # 0x4438($t4)
|
||||
/* 016154 80015554 00077040 */ sll $t6, $a3, 1
|
||||
/* 016158 80015558 3C028016 */ lui $v0, %hi(gWaypointCountByPathIndex) # 0x8016
|
||||
/* 01615C 8001555C 004E1021 */ addu $v0, $v0, $t6
|
||||
/* 016160 80015560 944245C8 */ lhu $v0, %lo(gWaypointCountByPathIndex)($v0) # 0x45c8($v0)
|
||||
/* 016164 80015564 258D000A */ addiu $t5, $t4, 0xa
|
||||
/* 016168 80015568 00067880 */ sll $t7, $a2, 2
|
||||
/* 01616C 8001556C 01A2001A */ div $zero, $t5, $v0
|
||||
/* 016170 80015570 3C018016 */ lui $at, %hi(D_80164688)
|
||||
/* 016174 80015574 44856000 */ mtc1 $a1, $f12
|
||||
/* 016178 80015578 002F0821 */ addu $at, $at, $t7
|
||||
/* 01617C 8001557C 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 016180 80015580 E42C4688 */ swc1 $f12, %lo(D_80164688)($at)
|
||||
/* 016184 80015584 AFA60048 */ sw $a2, 0x48($sp)
|
||||
/* 016188 80015588 00C0C025 */ move $t8, $a2
|
||||
/* 01618C 8001558C 0006C840 */ sll $t9, $a2, 1
|
||||
/* 016190 80015590 3C098016 */ lui $t1, %hi(gNearestWaypointByCameraId) # $t1, 0x8016
|
||||
/* 016194 80015594 01E04025 */ move $t0, $t7
|
||||
/* 016198 80015598 25294668 */ addiu $t1, %lo(gNearestWaypointByCameraId) # addiu $t1, $t1, 0x4668
|
||||
/* 01619C 8001559C 00007010 */ mfhi $t6
|
||||
/* 0161A0 800155A0 00073400 */ sll $a2, $a3, 0x10
|
||||
/* 0161A4 800155A4 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0161A8 800155A8 AFA40040 */ sw $a0, 0x40($sp)
|
||||
/* 0161AC 800155AC 03291821 */ addu $v1, $t9, $t1
|
||||
/* 0161B0 800155B0 00805025 */ move $t2, $a0
|
||||
/* 0161B4 800155B4 00067C03 */ sra $t7, $a2, 0x10
|
||||
/* 0161B8 800155B8 14400002 */ bnez $v0, .L800155C4
|
||||
/* 0161BC 800155BC 00000000 */ nop
|
||||
/* 0161C0 800155C0 0007000D */ break 7
|
||||
.L800155C4:
|
||||
/* 0161C4 800155C4 2401FFFF */ li $at, -1
|
||||
/* 0161C8 800155C8 14410004 */ bne $v0, $at, .L800155DC
|
||||
/* 0161CC 800155CC 3C018000 */ lui $at, 0x8000
|
||||
/* 0161D0 800155D0 15A10002 */ bne $t5, $at, .L800155DC
|
||||
/* 0161D4 800155D4 00000000 */ nop
|
||||
/* 0161D8 800155D8 0006000D */ break 6
|
||||
.L800155DC:
|
||||
/* 0161DC 800155DC 44056000 */ mfc1 $a1, $f12
|
||||
/* 0161E0 800155E0 A46E0000 */ sh $t6, ($v1)
|
||||
/* 0161E4 800155E4 01E03025 */ move $a2, $t7
|
||||
/* 0161E8 800155E8 31C4FFFF */ andi $a0, $t6, 0xffff
|
||||
/* 0161EC 800155EC AFA30028 */ sw $v1, 0x28($sp)
|
||||
/* 0161F0 800155F0 AFA8002C */ sw $t0, 0x2c($sp)
|
||||
/* 0161F4 800155F4 0C002EF6 */ jal func_8000BBD8
|
||||
/* 0161F8 800155F8 AFA7004C */ sw $a3, 0x4c($sp)
|
||||
/* 0161FC 800155FC 3C028016 */ lui $v0, %hi(D_80162FA0) # $v0, 0x8016
|
||||
/* 016200 80015600 8FA8002C */ lw $t0, 0x2c($sp)
|
||||
/* 016204 80015604 24422FA0 */ addiu $v0, %lo(D_80162FA0) # addiu $v0, $v0, 0x2fa0
|
||||
/* 016208 80015608 8FA7004C */ lw $a3, 0x4c($sp)
|
||||
/* 01620C 8001560C 8FA30028 */ lw $v1, 0x28($sp)
|
||||
/* 016210 80015610 C44C0000 */ lwc1 $f12, ($v0)
|
||||
/* 016214 80015614 C4400008 */ lwc1 $f0, 8($v0)
|
||||
/* 016218 80015618 3C188016 */ lui $t8, %hi(D_801645F8) # $t8, 0x8016
|
||||
/* 01621C 8001561C 3C198016 */ lui $t9, %hi(D_80164638) # $t9, 0x8016
|
||||
/* 016220 80015620 271845F8 */ addiu $t8, %lo(D_801645F8) # addiu $t8, $t8, 0x45f8
|
||||
/* 016224 80015624 27394638 */ addiu $t9, %lo(D_80164638) # addiu $t9, $t9, 0x4638
|
||||
/* 016228 80015628 3C0A8016 */ lui $t2, %hi(D_80164550) # 0x8016
|
||||
/* 01622C 8001562C 01182021 */ addu $a0, $t0, $t8
|
||||
/* 016230 80015630 01192821 */ addu $a1, $t0, $t9
|
||||
/* 016234 80015634 00074880 */ sll $t1, $a3, 2
|
||||
/* 016238 80015638 846B0000 */ lh $t3, ($v1)
|
||||
/* 01623C 8001563C 01495021 */ addu $t2, $t2, $t1
|
||||
/* 016240 80015640 E48C0000 */ swc1 $f12, ($a0)
|
||||
/* 016244 80015644 E4A00000 */ swc1 $f0, ($a1)
|
||||
/* 016248 80015648 8D4A4550 */ lw $t2, %lo(D_80164550)($t2) # 0x4550($t2)
|
||||
/* 01624C 8001564C 000B60C0 */ sll $t4, $t3, 3
|
||||
/* 016250 80015650 3C01403E */ li $at, 0x403E0000 # 2.968750
|
||||
/* 016254 80015654 014C6821 */ addu $t5, $t2, $t4
|
||||
/* 016258 80015658 85AE0002 */ lh $t6, 2($t5)
|
||||
/* 01625C 8001565C 44813800 */ mtc1 $at, $f7
|
||||
/* 016260 80015660 44803000 */ mtc1 $zero, $f6
|
||||
/* 016264 80015664 448E2000 */ mtc1 $t6, $f4
|
||||
/* 016268 80015668 44060000 */ mfc1 $a2, $f0
|
||||
/* 01626C 8001566C AFA50020 */ sw $a1, 0x20($sp)
|
||||
/* 016270 80015670 46802420 */ cvt.s.w $f16, $f4
|
||||
/* 016274 80015674 AFA40024 */ sw $a0, 0x24($sp)
|
||||
/* 016278 80015678 460080A1 */ cvt.d.s $f2, $f16
|
||||
/* 01627C 8001567C 46261200 */ add.d $f8, $f2, $f6
|
||||
/* 016280 80015680 F7A20018 */ sdc1 $f2, 0x18($sp)
|
||||
/* 016284 80015684 0C0AB870 */ jal func_802AE1C0
|
||||
/* 016288 80015688 462043A0 */ cvt.s.d $f14, $f8
|
||||
/* 01628C 8001568C 3C014034 */ li $at, 0x40340000 # 2.812500
|
||||
/* 016290 80015690 D7A20018 */ ldc1 $f2, 0x18($sp)
|
||||
/* 016294 80015694 44815800 */ mtc1 $at, $f11
|
||||
/* 016298 80015698 44805000 */ mtc1 $zero, $f10
|
||||
/* 01629C 8001569C 46000321 */ cvt.d.s $f12, $f0
|
||||
/* 0162A0 800156A0 3C0B8016 */ lui $t3, %hi(cameras) # $t3, 0x8016
|
||||
/* 0162A4 800156A4 462A1481 */ sub.d $f18, $f2, $f10
|
||||
/* 0162A8 800156A8 8FA40024 */ lw $a0, 0x24($sp)
|
||||
/* 0162AC 800156AC 8FA50020 */ lw $a1, 0x20($sp)
|
||||
/* 0162B0 800156B0 8FA8002C */ lw $t0, 0x2c($sp)
|
||||
/* 0162B4 800156B4 4632603C */ c.lt.d $f12, $f18
|
||||
/* 0162B8 800156B8 3C01800F */ lui $at, %hi(D_800ED218)
|
||||
/* 0162BC 800156BC 256B46F0 */ addiu $t3, %lo(cameras) # addiu $t3, $t3, 0x46f0
|
||||
/* 0162C0 800156C0 45030008 */ bc1tl .L800156E4
|
||||
/* 0162C4 800156C4 3C014024 */ li $at, 0x40240000 # 2.562500
|
||||
/* 0162C8 800156C8 D424D218 */ ldc1 $f4, %lo(D_800ED218)($at)
|
||||
/* 0162CC 800156CC 3C014024 */ li $at, 0x40240000 # 2.562500
|
||||
/* 0162D0 800156D0 462C203E */ c.le.d $f4, $f12
|
||||
/* 0162D4 800156D4 00000000 */ nop
|
||||
/* 0162D8 800156D8 4502000C */ bc1fl .L8001570C
|
||||
/* 0162DC 800156DC 44819800 */ mtc1 $at, $f19
|
||||
/* 0162E0 800156E0 3C014024 */ li $at, 0x40240000 # 2.562500
|
||||
.L800156E4:
|
||||
/* 0162E4 800156E4 44813800 */ mtc1 $at, $f7
|
||||
/* 0162E8 800156E8 44803000 */ mtc1 $zero, $f6
|
||||
/* 0162EC 800156EC 3C0F8016 */ lui $t7, %hi(D_80164618) # $t7, 0x8016
|
||||
/* 0162F0 800156F0 25EF4618 */ addiu $t7, %lo(D_80164618) # addiu $t7, $t7, 0x4618
|
||||
/* 0162F4 800156F4 46261200 */ add.d $f8, $f2, $f6
|
||||
/* 0162F8 800156F8 010F1821 */ addu $v1, $t0, $t7
|
||||
/* 0162FC 800156FC 462042A0 */ cvt.s.d $f10, $f8
|
||||
/* 016300 80015700 10000009 */ b .L80015728
|
||||
/* 016304 80015704 E46A0000 */ swc1 $f10, ($v1)
|
||||
/* 016308 80015708 44819800 */ mtc1 $at, $f19
|
||||
.L8001570C:
|
||||
/* 01630C 8001570C 44809000 */ mtc1 $zero, $f18
|
||||
/* 016310 80015710 3C188016 */ lui $t8, %hi(D_80164618) # $t8, 0x8016
|
||||
/* 016314 80015714 27184618 */ addiu $t8, %lo(D_80164618) # addiu $t8, $t8, 0x4618
|
||||
/* 016318 80015718 46326100 */ add.d $f4, $f12, $f18
|
||||
/* 01631C 8001571C 01181821 */ addu $v1, $t0, $t8
|
||||
/* 016320 80015720 462021A0 */ cvt.s.d $f6, $f4
|
||||
/* 016324 80015724 E4660000 */ swc1 $f6, ($v1)
|
||||
.L80015728:
|
||||
/* 016328 80015728 8FB90048 */ lw $t9, 0x48($sp)
|
||||
/* 01632C 8001572C 44804000 */ mtc1 $zero, $f8
|
||||
/* 016330 80015730 3C018016 */ lui $at, %hi(D_80164648)
|
||||
/* 016334 80015734 00194880 */ sll $t1, $t9, 2
|
||||
/* 016338 80015738 00280821 */ addu $at, $at, $t0
|
||||
/* 01633C 8001573C 01394823 */ subu $t1, $t1, $t9
|
||||
/* 016340 80015740 000948C0 */ sll $t1, $t1, 3
|
||||
/* 016344 80015744 E4284648 */ swc1 $f8, %lo(D_80164648)($at)
|
||||
/* 016348 80015748 C48A0000 */ lwc1 $f10, ($a0)
|
||||
/* 01634C 8001574C 01394823 */ subu $t1, $t1, $t9
|
||||
/* 016350 80015750 000948C0 */ sll $t1, $t1, 3
|
||||
/* 016354 80015754 012B1021 */ addu $v0, $t1, $t3
|
||||
/* 016358 80015758 E44A0000 */ swc1 $f10, ($v0)
|
||||
/* 01635C 8001575C C4720000 */ lwc1 $f18, ($v1)
|
||||
/* 016360 80015760 E4520004 */ swc1 $f18, 4($v0)
|
||||
/* 016364 80015764 C4A40000 */ lwc1 $f4, ($a1)
|
||||
/* 016368 80015768 E4440008 */ swc1 $f4, 8($v0)
|
||||
/* 01636C 8001576C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 016370 80015770 27BD0040 */ addiu $sp, $sp, 0x40
|
||||
/* 016374 80015774 03E00008 */ jr $ra
|
||||
/* 016378 80015778 00000000 */ nop
|
||||
@@ -1,130 +0,0 @@
|
||||
glabel func_80015A9C
|
||||
/* 01669C 80015A9C 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 0166A0 80015AA0 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 0166A4 80015AA4 00077400 */ sll $t6, $a3, 0x10
|
||||
/* 0166A8 80015AA8 000E3C03 */ sra $a3, $t6, 0x10
|
||||
/* 0166AC 80015AAC 3C0E8016 */ lui $t6, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 0166B0 80015AB0 00046840 */ sll $t5, $a0, 1
|
||||
/* 0166B4 80015AB4 01CD7021 */ addu $t6, $t6, $t5
|
||||
/* 0166B8 80015AB8 44856000 */ mtc1 $a1, $f12
|
||||
/* 0166BC 80015ABC 95CE4438 */ lhu $t6, %lo(gNearestWaypointByPlayerId)($t6) # 0x4438($t6)
|
||||
/* 0166C0 80015AC0 3C0B8016 */ lui $t3, %hi(gNearestWaypointByCameraId) # $t3, 0x8016
|
||||
/* 0166C4 80015AC4 0006C080 */ sll $t8, $a2, 2
|
||||
/* 0166C8 80015AC8 3C018016 */ lui $at, %hi(D_80164688)
|
||||
/* 0166CC 80015ACC 256B4668 */ addiu $t3, %lo(gNearestWaypointByCameraId) # addiu $t3, $t3, 0x4668
|
||||
/* 0166D0 80015AD0 00065040 */ sll $t2, $a2, 1
|
||||
/* 0166D4 80015AD4 00380821 */ addu $at, $at, $t8
|
||||
/* 0166D8 80015AD8 014B1821 */ addu $v1, $t2, $t3
|
||||
/* 0166DC 80015ADC E42C4688 */ swc1 $f12, %lo(D_80164688)($at)
|
||||
/* 0166E0 80015AE0 25CF000A */ addiu $t7, $t6, 0xa
|
||||
/* 0166E4 80015AE4 A46F0000 */ sh $t7, ($v1)
|
||||
/* 0166E8 80015AE8 3C0A8016 */ lui $t2, %hi(gWaypointCountByPathIndex) # 0x8016
|
||||
/* 0166EC 80015AEC 0007C840 */ sll $t9, $a3, 1
|
||||
/* 0166F0 80015AF0 03001025 */ move $v0, $t8
|
||||
/* 0166F4 80015AF4 01595021 */ addu $t2, $t2, $t9
|
||||
/* 0166F8 80015AF8 954A45C8 */ lhu $t2, %lo(gWaypointCountByPathIndex)($t2) # 0x45c8($t2)
|
||||
/* 0166FC 80015AFC 84780000 */ lh $t8, ($v1)
|
||||
/* 016700 80015B00 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 016704 80015B04 00806025 */ move $t4, $a0
|
||||
/* 016708 80015B08 030A001A */ div $zero, $t8, $t2
|
||||
/* 01670C 80015B0C 00005810 */ mfhi $t3
|
||||
/* 016710 80015B10 00073400 */ sll $a2, $a3, 0x10
|
||||
/* 016714 80015B14 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 016718 80015B18 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 01671C 80015B1C 00066403 */ sra $t4, $a2, 0x10
|
||||
/* 016720 80015B20 44056000 */ mfc1 $a1, $f12
|
||||
/* 016724 80015B24 15400002 */ bnez $t2, .L80015B30
|
||||
/* 016728 80015B28 00000000 */ nop
|
||||
/* 01672C 80015B2C 0007000D */ break 7
|
||||
.L80015B30:
|
||||
/* 016730 80015B30 2401FFFF */ li $at, -1
|
||||
/* 016734 80015B34 15410004 */ bne $t2, $at, .L80015B48
|
||||
/* 016738 80015B38 3C018000 */ lui $at, 0x8000
|
||||
/* 01673C 80015B3C 17010002 */ bne $t8, $at, .L80015B48
|
||||
/* 016740 80015B40 00000000 */ nop
|
||||
/* 016744 80015B44 0006000D */ break 6
|
||||
.L80015B48:
|
||||
/* 016748 80015B48 A46B0000 */ sh $t3, ($v1)
|
||||
/* 01674C 80015B4C 01803025 */ move $a2, $t4
|
||||
/* 016750 80015B50 3164FFFF */ andi $a0, $t3, 0xffff
|
||||
/* 016754 80015B54 AFA20020 */ sw $v0, 0x20($sp)
|
||||
/* 016758 80015B58 AFA3001C */ sw $v1, 0x1c($sp)
|
||||
/* 01675C 80015B5C 0C002EF6 */ jal func_8000BBD8
|
||||
/* 016760 80015B60 A7A70036 */ sh $a3, 0x36($sp)
|
||||
/* 016764 80015B64 3C098016 */ lui $t1, %hi(D_80162FA0) # $t1, 0x8016
|
||||
/* 016768 80015B68 8FA20020 */ lw $v0, 0x20($sp)
|
||||
/* 01676C 80015B6C 87A70036 */ lh $a3, 0x36($sp)
|
||||
/* 016770 80015B70 25292FA0 */ addiu $t1, %lo(D_80162FA0) # addiu $t1, $t1, 0x2fa0
|
||||
/* 016774 80015B74 8FA3001C */ lw $v1, 0x1c($sp)
|
||||
/* 016778 80015B78 C5240000 */ lwc1 $f4, ($t1)
|
||||
/* 01677C 80015B7C 3C0D8016 */ lui $t5, %hi(D_801645F8) # $t5, 0x8016
|
||||
/* 016780 80015B80 25AD45F8 */ addiu $t5, %lo(D_801645F8) # addiu $t5, $t5, 0x45f8
|
||||
/* 016784 80015B84 3C198016 */ lui $t9, %hi(D_80164550) # 0x8016
|
||||
/* 016788 80015B88 004D2021 */ addu $a0, $v0, $t5
|
||||
/* 01678C 80015B8C 00077880 */ sll $t7, $a3, 2
|
||||
/* 016790 80015B90 84780000 */ lh $t8, ($v1)
|
||||
/* 016794 80015B94 032FC821 */ addu $t9, $t9, $t7
|
||||
/* 016798 80015B98 E4840000 */ swc1 $f4, ($a0)
|
||||
/* 01679C 80015B9C 8F394550 */ lw $t9, %lo(D_80164550)($t9) # 0x4550($t9)
|
||||
/* 0167A0 80015BA0 001850C0 */ sll $t2, $t8, 3
|
||||
/* 0167A4 80015BA4 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
/* 0167A8 80015BA8 032A5821 */ addu $t3, $t9, $t2
|
||||
/* 0167AC 80015BAC 856C0002 */ lh $t4, 2($t3)
|
||||
/* 0167B0 80015BB0 000FC0C0 */ sll $t8, $t7, 3
|
||||
/* 0167B4 80015BB4 030FC023 */ subu $t8, $t8, $t7
|
||||
/* 0167B8 80015BB8 448C3000 */ mtc1 $t4, $f6
|
||||
/* 0167BC 80015BBC 0018C100 */ sll $t8, $t8, 4
|
||||
/* 0167C0 80015BC0 030FC023 */ subu $t8, $t8, $t7
|
||||
/* 0167C4 80015BC4 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 0167C8 80015BC8 C52A0008 */ lwc1 $f10, 8($t1)
|
||||
/* 0167CC 80015BCC 3C0E8016 */ lui $t6, %hi(D_80164618) # $t6, 0x8016
|
||||
/* 0167D0 80015BD0 3C0D8016 */ lui $t5, %hi(D_80164638) # $t5, 0x8016
|
||||
/* 0167D4 80015BD4 0018C080 */ sll $t8, $t8, 2
|
||||
/* 0167D8 80015BD8 25CE4618 */ addiu $t6, %lo(D_80164618) # addiu $t6, $t6, 0x4618
|
||||
/* 0167DC 80015BDC 25AD4638 */ addiu $t5, %lo(D_80164638) # addiu $t5, $t5, 0x4638
|
||||
/* 0167E0 80015BE0 030FC023 */ subu $t8, $t8, $t7
|
||||
/* 0167E4 80015BE4 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 0167E8 80015BE8 3C01800F */ lui $at, %hi(gPlayers+0x94)
|
||||
/* 0167EC 80015BEC 004E2821 */ addu $a1, $v0, $t6
|
||||
/* 0167F0 80015BF0 004D3021 */ addu $a2, $v0, $t5
|
||||
/* 0167F4 80015BF4 E4A80000 */ swc1 $f8, ($a1)
|
||||
/* 0167F8 80015BF8 00380821 */ addu $at, $at, $t8
|
||||
/* 0167FC 80015BFC E4CA0000 */ swc1 $f10, ($a2)
|
||||
/* 016800 80015C00 C4306A24 */ lwc1 $f16, %lo(gPlayers+0x94)($at)
|
||||
/* 016804 80015C04 3C0140A0 */ li $at, 0x40A00000 # 5.000000
|
||||
/* 016808 80015C08 44819000 */ mtc1 $at, $f18
|
||||
/* 01680C 80015C0C 44803000 */ mtc1 $zero, $f6
|
||||
/* 016810 80015C10 44803800 */ mtc1 $zero, $f7
|
||||
/* 016814 80015C14 46128003 */ div.s $f0, $f16, $f18
|
||||
/* 016818 80015C18 3C0E8016 */ lui $t6, %hi(D_80164648) # $t6, 0x8016
|
||||
/* 01681C 80015C1C 25CE4648 */ addiu $t6, %lo(D_80164648) # addiu $t6, $t6, 0x4648
|
||||
/* 016820 80015C20 004E4021 */ addu $t0, $v0, $t6
|
||||
/* 016824 80015C24 3C0B8016 */ lui $t3, %hi(cameras) # $t3, 0x8016
|
||||
/* 016828 80015C28 46000121 */ cvt.d.s $f4, $f0
|
||||
/* 01682C 80015C2C E5000000 */ swc1 $f0, ($t0)
|
||||
/* 016830 80015C30 4626203C */ c.lt.d $f4, $f6
|
||||
/* 016834 80015C34 00000000 */ nop
|
||||
/* 016838 80015C38 45020005 */ bc1fl .L80015C50
|
||||
/* 01683C 80015C3C 8FB90030 */ lw $t9, 0x30($sp)
|
||||
/* 016840 80015C40 44804000 */ mtc1 $zero, $f8
|
||||
/* 016844 80015C44 00000000 */ nop
|
||||
/* 016848 80015C48 E5080000 */ swc1 $f8, ($t0)
|
||||
/* 01684C 80015C4C 8FB90030 */ lw $t9, 0x30($sp)
|
||||
.L80015C50:
|
||||
/* 016850 80015C50 C48A0000 */ lwc1 $f10, ($a0)
|
||||
/* 016854 80015C54 256B46F0 */ addiu $t3, %lo(cameras) # addiu $t3, $t3, 0x46f0
|
||||
/* 016858 80015C58 00195080 */ sll $t2, $t9, 2
|
||||
/* 01685C 80015C5C 01595023 */ subu $t2, $t2, $t9
|
||||
/* 016860 80015C60 000A50C0 */ sll $t2, $t2, 3
|
||||
/* 016864 80015C64 01595023 */ subu $t2, $t2, $t9
|
||||
/* 016868 80015C68 000A50C0 */ sll $t2, $t2, 3
|
||||
/* 01686C 80015C6C 014B1021 */ addu $v0, $t2, $t3
|
||||
/* 016870 80015C70 E44A0000 */ swc1 $f10, ($v0)
|
||||
/* 016874 80015C74 C4B00000 */ lwc1 $f16, ($a1)
|
||||
/* 016878 80015C78 E4500004 */ swc1 $f16, 4($v0)
|
||||
/* 01687C 80015C7C C4D20000 */ lwc1 $f18, ($a2)
|
||||
/* 016880 80015C80 E4520008 */ swc1 $f18, 8($v0)
|
||||
/* 016884 80015C84 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 016888 80015C88 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 01688C 80015C8C 03E00008 */ jr $ra
|
||||
/* 016890 80015C90 00000000 */ nop
|
||||
@@ -1,117 +0,0 @@
|
||||
glabel func_800162CC
|
||||
/* 016ECC 800162CC 00046040 */ sll $t4, $a0, 1
|
||||
/* 016ED0 800162D0 3C0D8016 */ lui $t5, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 016ED4 800162D4 44856000 */ mtc1 $a1, $f12
|
||||
/* 016ED8 800162D8 01AC6821 */ addu $t5, $t5, $t4
|
||||
/* 016EDC 800162DC 95AD4438 */ lhu $t5, %lo(gNearestWaypointByPlayerId)($t5) # 0x4438($t5)
|
||||
/* 016EE0 800162E0 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 016EE4 800162E4 00077400 */ sll $t6, $a3, 0x10
|
||||
/* 016EE8 800162E8 0006C080 */ sll $t8, $a2, 2
|
||||
/* 016EEC 800162EC 3C018016 */ lui $at, %hi(D_80164688)
|
||||
/* 016EF0 800162F0 3C0A8016 */ lui $t2, %hi(gNearestWaypointByCameraId) # $t2, 0x8016
|
||||
/* 016EF4 800162F4 000E7C03 */ sra $t7, $t6, 0x10
|
||||
/* 016EF8 800162F8 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 016EFC 800162FC 00380821 */ addu $at, $at, $t8
|
||||
/* 016F00 80016300 254A4668 */ addiu $t2, %lo(gNearestWaypointByCameraId) # addiu $t2, $t2, 0x4668
|
||||
/* 016F04 80016304 00064840 */ sll $t1, $a2, 1
|
||||
/* 016F08 80016308 01E03825 */ move $a3, $t7
|
||||
/* 016F0C 8001630C 03001825 */ move $v1, $t8
|
||||
/* 016F10 80016310 012A4021 */ addu $t0, $t1, $t2
|
||||
/* 016F14 80016314 E42C4688 */ swc1 $f12, %lo(D_80164688)($at)
|
||||
/* 016F18 80016318 3C188016 */ lui $t8, %hi(gWaypointCountByPathIndex) # 0x8016
|
||||
/* 016F1C 8001631C 000F7840 */ sll $t7, $t7, 1
|
||||
/* 016F20 80016320 A50D0000 */ sh $t5, ($t0)
|
||||
/* 016F24 80016324 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 016F28 80016328 971845C8 */ lhu $t8, %lo(gWaypointCountByPathIndex)($t8) # 0x45c8($t8)
|
||||
/* 016F2C 8001632C 850E0000 */ lh $t6, ($t0)
|
||||
/* 016F30 80016330 00C0C825 */ move $t9, $a2
|
||||
/* 016F34 80016334 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 016F38 80016338 01D8001A */ div $zero, $t6, $t8
|
||||
/* 016F3C 8001633C 0000C810 */ mfhi $t9
|
||||
/* 016F40 80016340 00073400 */ sll $a2, $a3, 0x10
|
||||
/* 016F44 80016344 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 016F48 80016348 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 016F4C 8001634C 00805825 */ move $t3, $a0
|
||||
/* 016F50 80016350 00064C03 */ sra $t1, $a2, 0x10
|
||||
/* 016F54 80016354 44056000 */ mfc1 $a1, $f12
|
||||
/* 016F58 80016358 17000002 */ bnez $t8, .L80016364
|
||||
/* 016F5C 8001635C 00000000 */ nop
|
||||
/* 016F60 80016360 0007000D */ break 7
|
||||
.L80016364:
|
||||
/* 016F64 80016364 2401FFFF */ li $at, -1
|
||||
/* 016F68 80016368 17010004 */ bne $t8, $at, .L8001637C
|
||||
/* 016F6C 8001636C 3C018000 */ lui $at, 0x8000
|
||||
/* 016F70 80016370 15C10002 */ bne $t6, $at, .L8001637C
|
||||
/* 016F74 80016374 00000000 */ nop
|
||||
/* 016F78 80016378 0006000D */ break 6
|
||||
.L8001637C:
|
||||
/* 016F7C 8001637C A5190000 */ sh $t9, ($t0)
|
||||
/* 016F80 80016380 01203025 */ move $a2, $t1
|
||||
/* 016F84 80016384 3324FFFF */ andi $a0, $t9, 0xffff
|
||||
/* 016F88 80016388 AFA8001C */ sw $t0, 0x1c($sp)
|
||||
/* 016F8C 8001638C AFA30020 */ sw $v1, 0x20($sp)
|
||||
/* 016F90 80016390 0C002EF6 */ jal func_8000BBD8
|
||||
/* 016F94 80016394 A7A70036 */ sh $a3, 0x36($sp)
|
||||
/* 016F98 80016398 3C068016 */ lui $a2, %hi(D_80162FA0) # $a2, 0x8016
|
||||
/* 016F9C 8001639C 8FA30020 */ lw $v1, 0x20($sp)
|
||||
/* 016FA0 800163A0 24C62FA0 */ addiu $a2, %lo(D_80162FA0) # addiu $a2, $a2, 0x2fa0
|
||||
/* 016FA4 800163A4 87A70036 */ lh $a3, 0x36($sp)
|
||||
/* 016FA8 800163A8 C4C00000 */ lwc1 $f0, ($a2)
|
||||
/* 016FAC 800163AC 8FA8001C */ lw $t0, 0x1c($sp)
|
||||
/* 016FB0 800163B0 3C018016 */ lui $at, %hi(D_801645F8)
|
||||
/* 016FB4 800163B4 00230821 */ addu $at, $at, $v1
|
||||
/* 016FB8 800163B8 3C0C8016 */ lui $t4, %hi(D_80164550) # 0x8016
|
||||
/* 016FBC 800163BC 00075880 */ sll $t3, $a3, 2
|
||||
/* 016FC0 800163C0 E42045F8 */ swc1 $f0, %lo(D_801645F8)($at)
|
||||
/* 016FC4 800163C4 850D0000 */ lh $t5, ($t0)
|
||||
/* 016FC8 800163C8 018B6021 */ addu $t4, $t4, $t3
|
||||
/* 016FCC 800163CC 8D8C4550 */ lw $t4, %lo(D_80164550)($t4) # 0x4550($t4)
|
||||
/* 016FD0 800163D0 000D78C0 */ sll $t7, $t5, 3
|
||||
/* 016FD4 800163D4 8FA90028 */ lw $t1, 0x28($sp)
|
||||
/* 016FD8 800163D8 018F7021 */ addu $t6, $t4, $t7
|
||||
/* 016FDC 800163DC 85D80002 */ lh $t8, 2($t6)
|
||||
/* 016FE0 800163E0 3C0A8016 */ lui $t2, %hi(D_80164618) # $t2, 0x8016
|
||||
/* 016FE4 800163E4 254A4618 */ addiu $t2, %lo(D_80164618) # addiu $t2, $t2, 0x4618
|
||||
/* 016FE8 800163E8 44982000 */ mtc1 $t8, $f4
|
||||
/* 016FEC 800163EC 006A2021 */ addu $a0, $v1, $t2
|
||||
/* 016FF0 800163F0 000950C0 */ sll $t2, $t1, 3
|
||||
/* 016FF4 800163F4 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 016FF8 800163F8 01495023 */ subu $t2, $t2, $t1
|
||||
/* 016FFC 800163FC 000A5100 */ sll $t2, $t2, 4
|
||||
/* 017000 80016400 01495023 */ subu $t2, $t2, $t1
|
||||
/* 017004 80016404 C4C80008 */ lwc1 $f8, 8($a2)
|
||||
/* 017008 80016408 3C198016 */ lui $t9, %hi(D_80164638) # $t9, 0x8016
|
||||
/* 01700C 8001640C 000A5080 */ sll $t2, $t2, 2
|
||||
/* 017010 80016410 27394638 */ addiu $t9, %lo(D_80164638) # addiu $t9, $t9, 0x4638
|
||||
/* 017014 80016414 01495023 */ subu $t2, $t2, $t1
|
||||
/* 017018 80016418 000A50C0 */ sll $t2, $t2, 3
|
||||
/* 01701C 8001641C 3C01800F */ lui $at, %hi(gPlayers+0x94)
|
||||
/* 017020 80016420 00792821 */ addu $a1, $v1, $t9
|
||||
/* 017024 80016424 8FAB0030 */ lw $t3, 0x30($sp)
|
||||
/* 017028 80016428 E4860000 */ swc1 $f6, ($a0)
|
||||
/* 01702C 8001642C 002A0821 */ addu $at, $at, $t2
|
||||
/* 017030 80016430 E4A80000 */ swc1 $f8, ($a1)
|
||||
/* 017034 80016434 C4226A24 */ lwc1 $f2, %lo(gPlayers+0x94)($at)
|
||||
/* 017038 80016438 3C018016 */ lui $at, %hi(D_80164658)
|
||||
/* 01703C 8001643C 000B6880 */ sll $t5, $t3, 2
|
||||
/* 017040 80016440 00230821 */ addu $at, $at, $v1
|
||||
/* 017044 80016444 01AB6823 */ subu $t5, $t5, $t3
|
||||
/* 017048 80016448 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 01704C 8001644C E4224658 */ swc1 $f2, %lo(D_80164658)($at)
|
||||
/* 017050 80016450 3C018016 */ lui $at, %hi(D_80164648)
|
||||
/* 017054 80016454 3C0C8016 */ lui $t4, %hi(cameras) # $t4, 0x8016
|
||||
/* 017058 80016458 01AB6823 */ subu $t5, $t5, $t3
|
||||
/* 01705C 8001645C 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 017060 80016460 258C46F0 */ addiu $t4, %lo(cameras) # addiu $t4, $t4, 0x46f0
|
||||
/* 017064 80016464 00230821 */ addu $at, $at, $v1
|
||||
/* 017068 80016468 01AC1021 */ addu $v0, $t5, $t4
|
||||
/* 01706C 8001646C E4224648 */ swc1 $f2, %lo(D_80164648)($at)
|
||||
/* 017070 80016470 E4400000 */ swc1 $f0, ($v0)
|
||||
/* 017074 80016474 C48A0000 */ lwc1 $f10, ($a0)
|
||||
/* 017078 80016478 E44A0004 */ swc1 $f10, 4($v0)
|
||||
/* 01707C 8001647C C4B00000 */ lwc1 $f16, ($a1)
|
||||
/* 017080 80016480 E4500008 */ swc1 $f16, 8($v0)
|
||||
/* 017084 80016484 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 017088 80016488 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 01708C 8001648C 03E00008 */ jr $ra
|
||||
/* 017090 80016490 00000000 */ nop
|
||||
@@ -1,120 +0,0 @@
|
||||
glabel func_80017720
|
||||
/* 018320 80017720 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 018324 80017724 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 018328 80017728 00077400 */ sll $t6, $a3, 0x10
|
||||
/* 01832C 8001772C 000E3C03 */ sra $a3, $t6, 0x10
|
||||
/* 018330 80017730 00044880 */ sll $t1, $a0, 2
|
||||
/* 018334 80017734 3C018016 */ lui $at, %hi(D_80163068)
|
||||
/* 018338 80017738 00290821 */ addu $at, $at, $t1
|
||||
/* 01833C 8001773C 00047040 */ sll $t6, $a0, 1
|
||||
/* 018340 80017740 3C0F8016 */ lui $t7, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 018344 80017744 C4203068 */ lwc1 $f0, %lo(D_80163068)($at)
|
||||
/* 018348 80017748 01EE7821 */ addu $t7, $t7, $t6
|
||||
/* 01834C 8001774C 95EF4438 */ lhu $t7, %lo(gNearestWaypointByPlayerId)($t7) # 0x4438($t7)
|
||||
/* 018350 80017750 3C018016 */ lui $at, %hi(D_80164688)
|
||||
/* 018354 80017754 0006C080 */ sll $t8, $a2, 2
|
||||
/* 018358 80017758 00380821 */ addu $at, $at, $t8
|
||||
/* 01835C 8001775C 3C0C8016 */ lui $t4, %hi(gNearestWaypointByCameraId) # $t4, 0x8016
|
||||
/* 018360 80017760 03001825 */ move $v1, $t8
|
||||
/* 018364 80017764 258C4668 */ addiu $t4, %lo(gNearestWaypointByCameraId) # addiu $t4, $t4, 0x4668
|
||||
/* 018368 80017768 00065840 */ sll $t3, $a2, 1
|
||||
/* 01836C 8001776C 016C4021 */ addu $t0, $t3, $t4
|
||||
/* 018370 80017770 E4204688 */ swc1 $f0, %lo(D_80164688)($at)
|
||||
/* 018374 80017774 25F80003 */ addiu $t8, $t7, 3
|
||||
/* 018378 80017778 A5180000 */ sh $t8, ($t0)
|
||||
/* 01837C 8001777C 00074840 */ sll $t1, $a3, 1
|
||||
/* 018380 80017780 3C0A8016 */ lui $t2, %hi(gWaypointCountByPathIndex) # 0x8016
|
||||
/* 018384 80017784 01495021 */ addu $t2, $t2, $t1
|
||||
/* 018388 80017788 954A45C8 */ lhu $t2, %lo(gWaypointCountByPathIndex)($t2) # 0x45c8($t2)
|
||||
/* 01838C 8001778C 85190000 */ lh $t9, ($t0)
|
||||
/* 018390 80017790 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 018394 80017794 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 018398 80017798 032A001A */ div $zero, $t9, $t2
|
||||
/* 01839C 8001779C 00005810 */ mfhi $t3
|
||||
/* 0183A0 800177A0 00073400 */ sll $a2, $a3, 0x10
|
||||
/* 0183A4 800177A4 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 0183A8 800177A8 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 0183AC 800177AC 00806825 */ move $t5, $a0
|
||||
/* 0183B0 800177B0 00066403 */ sra $t4, $a2, 0x10
|
||||
/* 0183B4 800177B4 44050000 */ mfc1 $a1, $f0
|
||||
/* 0183B8 800177B8 15400002 */ bnez $t2, .L800177C4
|
||||
/* 0183BC 800177BC 00000000 */ nop
|
||||
/* 0183C0 800177C0 0007000D */ break 7
|
||||
.L800177C4:
|
||||
/* 0183C4 800177C4 2401FFFF */ li $at, -1
|
||||
/* 0183C8 800177C8 15410004 */ bne $t2, $at, .L800177DC
|
||||
/* 0183CC 800177CC 3C018000 */ lui $at, 0x8000
|
||||
/* 0183D0 800177D0 17210002 */ bne $t9, $at, .L800177DC
|
||||
/* 0183D4 800177D4 00000000 */ nop
|
||||
/* 0183D8 800177D8 0006000D */ break 6
|
||||
.L800177DC:
|
||||
/* 0183DC 800177DC A50B0000 */ sh $t3, ($t0)
|
||||
/* 0183E0 800177E0 01803025 */ move $a2, $t4
|
||||
/* 0183E4 800177E4 3164FFFF */ andi $a0, $t3, 0xffff
|
||||
/* 0183E8 800177E8 AFA80018 */ sw $t0, 0x18($sp)
|
||||
/* 0183EC 800177EC AFA3001C */ sw $v1, 0x1c($sp)
|
||||
/* 0183F0 800177F0 0C002EF6 */ jal func_8000BBD8
|
||||
/* 0183F4 800177F4 A7A70036 */ sh $a3, 0x36($sp)
|
||||
/* 0183F8 800177F8 3C068016 */ lui $a2, %hi(D_80162FA0) # $a2, 0x8016
|
||||
/* 0183FC 800177FC 8FA3001C */ lw $v1, 0x1c($sp)
|
||||
/* 018400 80017800 24C62FA0 */ addiu $a2, %lo(D_80162FA0) # addiu $a2, $a2, 0x2fa0
|
||||
/* 018404 80017804 87A70036 */ lh $a3, 0x36($sp)
|
||||
/* 018408 80017808 C4C00000 */ lwc1 $f0, ($a2)
|
||||
/* 01840C 8001780C 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* 018410 80017810 3C018016 */ lui $at, %hi(D_801645F8)
|
||||
/* 018414 80017814 00230821 */ addu $at, $at, $v1
|
||||
/* 018418 80017818 3C0F8016 */ lui $t7, %hi(D_80164550) # 0x8016
|
||||
/* 01841C 8001781C 00077080 */ sll $t6, $a3, 2
|
||||
/* 018420 80017820 E42045F8 */ swc1 $f0, %lo(D_801645F8)($at)
|
||||
/* 018424 80017824 85180000 */ lh $t8, ($t0)
|
||||
/* 018428 80017828 01EE7821 */ addu $t7, $t7, $t6
|
||||
/* 01842C 8001782C 8DEF4550 */ lw $t7, %lo(D_80164550)($t7) # 0x4550($t7)
|
||||
/* 018430 80017830 001848C0 */ sll $t1, $t8, 3
|
||||
/* 018434 80017834 8FAC0028 */ lw $t4, 0x28($sp)
|
||||
/* 018438 80017838 01E9C821 */ addu $t9, $t7, $t1
|
||||
/* 01843C 8001783C 872A0002 */ lh $t2, 2($t9)
|
||||
/* 018440 80017840 3C0D8016 */ lui $t5, %hi(D_80164618) # $t5, 0x8016
|
||||
/* 018444 80017844 25AD4618 */ addiu $t5, %lo(D_80164618) # addiu $t5, $t5, 0x4618
|
||||
/* 018448 80017848 448A2000 */ mtc1 $t2, $f4
|
||||
/* 01844C 8001784C 006D2021 */ addu $a0, $v1, $t5
|
||||
/* 018450 80017850 000C68C0 */ sll $t5, $t4, 3
|
||||
/* 018454 80017854 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 018458 80017858 01AC6823 */ subu $t5, $t5, $t4
|
||||
/* 01845C 8001785C 000D6900 */ sll $t5, $t5, 4
|
||||
/* 018460 80017860 01AC6823 */ subu $t5, $t5, $t4
|
||||
/* 018464 80017864 C4C80008 */ lwc1 $f8, 8($a2)
|
||||
/* 018468 80017868 3C0B8016 */ lui $t3, %hi(D_80164638) # $t3, 0x8016
|
||||
/* 01846C 8001786C 000D6880 */ sll $t5, $t5, 2
|
||||
/* 018470 80017870 256B4638 */ addiu $t3, %lo(D_80164638) # addiu $t3, $t3, 0x4638
|
||||
/* 018474 80017874 01AC6823 */ subu $t5, $t5, $t4
|
||||
/* 018478 80017878 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 01847C 8001787C 3C01800F */ lui $at, %hi(gPlayers+0x94)
|
||||
/* 018480 80017880 006B2821 */ addu $a1, $v1, $t3
|
||||
/* 018484 80017884 8FAE0030 */ lw $t6, 0x30($sp)
|
||||
/* 018488 80017888 E4860000 */ swc1 $f6, ($a0)
|
||||
/* 01848C 8001788C 002D0821 */ addu $at, $at, $t5
|
||||
/* 018490 80017890 E4A80000 */ swc1 $f8, ($a1)
|
||||
/* 018494 80017894 C4226A24 */ lwc1 $f2, %lo(gPlayers+0x94)($at)
|
||||
/* 018498 80017898 3C018016 */ lui $at, %hi(D_80164658)
|
||||
/* 01849C 8001789C 000EC080 */ sll $t8, $t6, 2
|
||||
/* 0184A0 800178A0 00230821 */ addu $at, $at, $v1
|
||||
/* 0184A4 800178A4 030EC023 */ subu $t8, $t8, $t6
|
||||
/* 0184A8 800178A8 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 0184AC 800178AC E4224658 */ swc1 $f2, %lo(D_80164658)($at)
|
||||
/* 0184B0 800178B0 3C018016 */ lui $at, %hi(D_80164648)
|
||||
/* 0184B4 800178B4 3C0F8016 */ lui $t7, %hi(cameras) # $t7, 0x8016
|
||||
/* 0184B8 800178B8 030EC023 */ subu $t8, $t8, $t6
|
||||
/* 0184BC 800178BC 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 0184C0 800178C0 25EF46F0 */ addiu $t7, %lo(cameras) # addiu $t7, $t7, 0x46f0
|
||||
/* 0184C4 800178C4 00230821 */ addu $at, $at, $v1
|
||||
/* 0184C8 800178C8 030F1021 */ addu $v0, $t8, $t7
|
||||
/* 0184CC 800178CC E4224648 */ swc1 $f2, %lo(D_80164648)($at)
|
||||
/* 0184D0 800178D0 E4400000 */ swc1 $f0, ($v0)
|
||||
/* 0184D4 800178D4 C48A0000 */ lwc1 $f10, ($a0)
|
||||
/* 0184D8 800178D8 E44A0004 */ swc1 $f10, 4($v0)
|
||||
/* 0184DC 800178DC C4B00000 */ lwc1 $f16, ($a1)
|
||||
/* 0184E0 800178E0 E4500008 */ swc1 $f16, 8($v0)
|
||||
/* 0184E4 800178E4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0184E8 800178E8 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 0184EC 800178EC 03E00008 */ jr $ra
|
||||
/* 0184F0 800178F0 00000000 */ nop
|
||||
@@ -1,123 +0,0 @@
|
||||
glabel func_80017F10
|
||||
/* 018B10 80017F10 00077400 */ sll $t6, $a3, 0x10
|
||||
/* 018B14 80017F14 000E7C03 */ sra $t7, $t6, 0x10
|
||||
/* 018B18 80017F18 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 018B1C 80017F1C 000FC040 */ sll $t8, $t7, 1
|
||||
/* 018B20 80017F20 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 018B24 80017F24 3C028016 */ lui $v0, %hi(gWaypointCountByPathIndex) # 0x8016
|
||||
/* 018B28 80017F28 01E03825 */ move $a3, $t7
|
||||
/* 018B2C 80017F2C 00581021 */ addu $v0, $v0, $t8
|
||||
/* 018B30 80017F30 00045080 */ sll $t2, $a0, 2
|
||||
/* 018B34 80017F34 3C018016 */ lui $at, %hi(D_80163068)
|
||||
/* 018B38 80017F38 3C188016 */ lui $t8, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 018B3C 80017F3C 00047840 */ sll $t7, $a0, 1
|
||||
/* 018B40 80017F40 002A0821 */ addu $at, $at, $t2
|
||||
/* 018B44 80017F44 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 018B48 80017F48 944245C8 */ lhu $v0, %lo(gWaypointCountByPathIndex)($v0) # 0x45c8($v0)
|
||||
/* 018B4C 80017F4C C4203068 */ lwc1 $f0, %lo(D_80163068)($at)
|
||||
/* 018B50 80017F50 97184438 */ lhu $t8, %lo(gNearestWaypointByPlayerId)($t8) # 0x4438($t8)
|
||||
/* 018B54 80017F54 0006C880 */ sll $t9, $a2, 2
|
||||
/* 018B58 80017F58 3C018016 */ lui $at, %hi(D_80164688)
|
||||
/* 018B5C 80017F5C 00390821 */ addu $at, $at, $t9
|
||||
/* 018B60 80017F60 03201825 */ move $v1, $t9
|
||||
/* 018B64 80017F64 3C0D8016 */ lui $t5, %hi(gNearestWaypointByCameraId) # $t5, 0x8016
|
||||
/* 018B68 80017F68 25AD4668 */ addiu $t5, %lo(gNearestWaypointByCameraId) # addiu $t5, $t5, 0x4668
|
||||
/* 018B6C 80017F6C 00066040 */ sll $t4, $a2, 1
|
||||
/* 018B70 80017F70 0302C821 */ addu $t9, $t8, $v0
|
||||
/* 018B74 80017F74 2729FFFE */ addiu $t1, $t9, -2
|
||||
/* 018B78 80017F78 018D4021 */ addu $t0, $t4, $t5
|
||||
/* 018B7C 80017F7C E4204688 */ swc1 $f0, %lo(D_80164688)($at)
|
||||
/* 018B80 80017F80 A5090000 */ sh $t1, ($t0)
|
||||
/* 018B84 80017F84 850A0000 */ lh $t2, ($t0)
|
||||
/* 018B88 80017F88 00C05825 */ move $t3, $a2
|
||||
/* 018B8C 80017F8C AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 018B90 80017F90 0142001A */ div $zero, $t2, $v0
|
||||
/* 018B94 80017F94 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 018B98 80017F98 00005810 */ mfhi $t3
|
||||
/* 018B9C 80017F9C 00073400 */ sll $a2, $a3, 0x10
|
||||
/* 018BA0 80017FA0 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 018BA4 80017FA4 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 018BA8 80017FA8 00807025 */ move $t6, $a0
|
||||
/* 018BAC 80017FAC 00066403 */ sra $t4, $a2, 0x10
|
||||
/* 018BB0 80017FB0 44050000 */ mfc1 $a1, $f0
|
||||
/* 018BB4 80017FB4 14400002 */ bnez $v0, .L80017FC0
|
||||
/* 018BB8 80017FB8 00000000 */ nop
|
||||
/* 018BBC 80017FBC 0007000D */ break 7
|
||||
.L80017FC0:
|
||||
/* 018BC0 80017FC0 2401FFFF */ li $at, -1
|
||||
/* 018BC4 80017FC4 14410004 */ bne $v0, $at, .L80017FD8
|
||||
/* 018BC8 80017FC8 3C018000 */ lui $at, 0x8000
|
||||
/* 018BCC 80017FCC 15410002 */ bne $t2, $at, .L80017FD8
|
||||
/* 018BD0 80017FD0 00000000 */ nop
|
||||
/* 018BD4 80017FD4 0006000D */ break 6
|
||||
.L80017FD8:
|
||||
/* 018BD8 80017FD8 A50B0000 */ sh $t3, ($t0)
|
||||
/* 018BDC 80017FDC 01803025 */ move $a2, $t4
|
||||
/* 018BE0 80017FE0 3164FFFF */ andi $a0, $t3, 0xffff
|
||||
/* 018BE4 80017FE4 AFA80018 */ sw $t0, 0x18($sp)
|
||||
/* 018BE8 80017FE8 AFA3001C */ sw $v1, 0x1c($sp)
|
||||
/* 018BEC 80017FEC 0C002EF6 */ jal func_8000BBD8
|
||||
/* 018BF0 80017FF0 A7A70036 */ sh $a3, 0x36($sp)
|
||||
/* 018BF4 80017FF4 3C068016 */ lui $a2, %hi(D_80162FA0) # $a2, 0x8016
|
||||
/* 018BF8 80017FF8 8FA3001C */ lw $v1, 0x1c($sp)
|
||||
/* 018BFC 80017FFC 24C62FA0 */ addiu $a2, %lo(D_80162FA0) # addiu $a2, $a2, 0x2fa0
|
||||
/* 018C00 80018000 87A70036 */ lh $a3, 0x36($sp)
|
||||
/* 018C04 80018004 C4C00000 */ lwc1 $f0, ($a2)
|
||||
/* 018C08 80018008 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* 018C0C 8001800C 3C018016 */ lui $at, %hi(D_801645F8)
|
||||
/* 018C10 80018010 00230821 */ addu $at, $at, $v1
|
||||
/* 018C14 80018014 3C0F8016 */ lui $t7, %hi(D_80164550) # 0x8016
|
||||
/* 018C18 80018018 00077080 */ sll $t6, $a3, 2
|
||||
/* 018C1C 8001801C E42045F8 */ swc1 $f0, %lo(D_801645F8)($at)
|
||||
/* 018C20 80018020 85180000 */ lh $t8, ($t0)
|
||||
/* 018C24 80018024 01EE7821 */ addu $t7, $t7, $t6
|
||||
/* 018C28 80018028 8DEF4550 */ lw $t7, %lo(D_80164550)($t7) # 0x4550($t7)
|
||||
/* 018C2C 8001802C 0018C8C0 */ sll $t9, $t8, 3
|
||||
/* 018C30 80018030 8FAC0028 */ lw $t4, 0x28($sp)
|
||||
/* 018C34 80018034 01F94821 */ addu $t1, $t7, $t9
|
||||
/* 018C38 80018038 852A0002 */ lh $t2, 2($t1)
|
||||
/* 018C3C 8001803C 3C0D8016 */ lui $t5, %hi(D_80164618) # $t5, 0x8016
|
||||
/* 018C40 80018040 25AD4618 */ addiu $t5, %lo(D_80164618) # addiu $t5, $t5, 0x4618
|
||||
/* 018C44 80018044 448A2000 */ mtc1 $t2, $f4
|
||||
/* 018C48 80018048 006D2021 */ addu $a0, $v1, $t5
|
||||
/* 018C4C 8001804C 000C68C0 */ sll $t5, $t4, 3
|
||||
/* 018C50 80018050 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 018C54 80018054 01AC6823 */ subu $t5, $t5, $t4
|
||||
/* 018C58 80018058 000D6900 */ sll $t5, $t5, 4
|
||||
/* 018C5C 8001805C 01AC6823 */ subu $t5, $t5, $t4
|
||||
/* 018C60 80018060 C4C80008 */ lwc1 $f8, 8($a2)
|
||||
/* 018C64 80018064 3C0B8016 */ lui $t3, %hi(D_80164638) # $t3, 0x8016
|
||||
/* 018C68 80018068 000D6880 */ sll $t5, $t5, 2
|
||||
/* 018C6C 8001806C 256B4638 */ addiu $t3, %lo(D_80164638) # addiu $t3, $t3, 0x4638
|
||||
/* 018C70 80018070 01AC6823 */ subu $t5, $t5, $t4
|
||||
/* 018C74 80018074 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 018C78 80018078 3C01800F */ lui $at, %hi(gPlayers+0x94)
|
||||
/* 018C7C 8001807C 006B2821 */ addu $a1, $v1, $t3
|
||||
/* 018C80 80018080 8FAE0030 */ lw $t6, 0x30($sp)
|
||||
/* 018C84 80018084 E4860000 */ swc1 $f6, ($a0)
|
||||
/* 018C88 80018088 002D0821 */ addu $at, $at, $t5
|
||||
/* 018C8C 8001808C E4A80000 */ swc1 $f8, ($a1)
|
||||
/* 018C90 80018090 C4226A24 */ lwc1 $f2, %lo(gPlayers+0x94)($at)
|
||||
/* 018C94 80018094 3C018016 */ lui $at, %hi(D_80164658)
|
||||
/* 018C98 80018098 000EC080 */ sll $t8, $t6, 2
|
||||
/* 018C9C 8001809C 00230821 */ addu $at, $at, $v1
|
||||
/* 018CA0 800180A0 030EC023 */ subu $t8, $t8, $t6
|
||||
/* 018CA4 800180A4 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 018CA8 800180A8 E4224658 */ swc1 $f2, %lo(D_80164658)($at)
|
||||
/* 018CAC 800180AC 3C018016 */ lui $at, %hi(D_80164648)
|
||||
/* 018CB0 800180B0 3C0F8016 */ lui $t7, %hi(cameras) # $t7, 0x8016
|
||||
/* 018CB4 800180B4 030EC023 */ subu $t8, $t8, $t6
|
||||
/* 018CB8 800180B8 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 018CBC 800180BC 25EF46F0 */ addiu $t7, %lo(cameras) # addiu $t7, $t7, 0x46f0
|
||||
/* 018CC0 800180C0 00230821 */ addu $at, $at, $v1
|
||||
/* 018CC4 800180C4 030F1021 */ addu $v0, $t8, $t7
|
||||
/* 018CC8 800180C8 E4224648 */ swc1 $f2, %lo(D_80164648)($at)
|
||||
/* 018CCC 800180CC E4400000 */ swc1 $f0, ($v0)
|
||||
/* 018CD0 800180D0 C48A0000 */ lwc1 $f10, ($a0)
|
||||
/* 018CD4 800180D4 E44A0004 */ swc1 $f10, 4($v0)
|
||||
/* 018CD8 800180D8 C4B00000 */ lwc1 $f16, ($a1)
|
||||
/* 018CDC 800180DC E4500008 */ swc1 $f16, 8($v0)
|
||||
/* 018CE0 800180E0 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 018CE4 800180E4 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 018CE8 800180E8 03E00008 */ jr $ra
|
||||
/* 018CEC 800180EC 00000000 */ nop
|
||||
@@ -1,122 +0,0 @@
|
||||
glabel func_80018718
|
||||
/* 019318 80018718 00077400 */ sll $t6, $a3, 0x10
|
||||
/* 01931C 8001871C 000E7C03 */ sra $t7, $t6, 0x10
|
||||
/* 019320 80018720 27BDFFD8 */ addiu $sp, $sp, -0x28
|
||||
/* 019324 80018724 000FC040 */ sll $t8, $t7, 1
|
||||
/* 019328 80018728 AFA70034 */ sw $a3, 0x34($sp)
|
||||
/* 01932C 8001872C 3C028016 */ lui $v0, %hi(gWaypointCountByPathIndex) # 0x8016
|
||||
/* 019330 80018730 01E03825 */ move $a3, $t7
|
||||
/* 019334 80018734 00581021 */ addu $v0, $v0, $t8
|
||||
/* 019338 80018738 00045080 */ sll $t2, $a0, 2
|
||||
/* 01933C 8001873C 3C018016 */ lui $at, %hi(D_80163068)
|
||||
/* 019340 80018740 3C188016 */ lui $t8, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 019344 80018744 00047840 */ sll $t7, $a0, 1
|
||||
/* 019348 80018748 002A0821 */ addu $at, $at, $t2
|
||||
/* 01934C 8001874C 030FC021 */ addu $t8, $t8, $t7
|
||||
/* 019350 80018750 944245C8 */ lhu $v0, %lo(gWaypointCountByPathIndex)($v0) # 0x45c8($v0)
|
||||
/* 019354 80018754 C4203068 */ lwc1 $f0, %lo(D_80163068)($at)
|
||||
/* 019358 80018758 97184438 */ lhu $t8, %lo(gNearestWaypointByPlayerId)($t8) # 0x4438($t8)
|
||||
/* 01935C 8001875C 0006C880 */ sll $t9, $a2, 2
|
||||
/* 019360 80018760 3C018016 */ lui $at, %hi(D_80164688)
|
||||
/* 019364 80018764 00390821 */ addu $at, $at, $t9
|
||||
/* 019368 80018768 03201825 */ move $v1, $t9
|
||||
/* 01936C 8001876C 0302C821 */ addu $t9, $t8, $v0
|
||||
/* 019370 80018770 2729FFFB */ addiu $t1, $t9, -5
|
||||
/* 019374 80018774 0122001A */ div $zero, $t1, $v0
|
||||
/* 019378 80018778 E4204688 */ swc1 $f0, %lo(D_80164688)($at)
|
||||
/* 01937C 8001877C 3C0D8016 */ lui $t5, %hi(gNearestWaypointByCameraId) # $t5, 0x8016
|
||||
/* 019380 80018780 AFA5002C */ sw $a1, 0x2c($sp)
|
||||
/* 019384 80018784 25AD4668 */ addiu $t5, %lo(gNearestWaypointByCameraId) # addiu $t5, $t5, 0x4668
|
||||
/* 019388 80018788 00005010 */ mfhi $t2
|
||||
/* 01938C 8001878C 00066040 */ sll $t4, $a2, 1
|
||||
/* 019390 80018790 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 019394 80018794 AFA40028 */ sw $a0, 0x28($sp)
|
||||
/* 019398 80018798 AFA60030 */ sw $a2, 0x30($sp)
|
||||
/* 01939C 8001879C 018D4021 */ addu $t0, $t4, $t5
|
||||
/* 0193A0 800187A0 00807025 */ move $t6, $a0
|
||||
/* 0193A4 800187A4 00C05825 */ move $t3, $a2
|
||||
/* 0193A8 800187A8 14400002 */ bnez $v0, .L800187B4
|
||||
/* 0193AC 800187AC 00000000 */ nop
|
||||
/* 0193B0 800187B0 0007000D */ break 7
|
||||
.L800187B4:
|
||||
/* 0193B4 800187B4 2401FFFF */ li $at, -1
|
||||
/* 0193B8 800187B8 14410004 */ bne $v0, $at, .L800187CC
|
||||
/* 0193BC 800187BC 3C018000 */ lui $at, 0x8000
|
||||
/* 0193C0 800187C0 15210002 */ bne $t1, $at, .L800187CC
|
||||
/* 0193C4 800187C4 00000000 */ nop
|
||||
/* 0193C8 800187C8 0006000D */ break 6
|
||||
.L800187CC:
|
||||
/* 0193CC 800187CC 44050000 */ mfc1 $a1, $f0
|
||||
/* 0193D0 800187D0 A50A0000 */ sh $t2, ($t0)
|
||||
/* 0193D4 800187D4 3C064270 */ lui $a2, 0x4270
|
||||
/* 0193D8 800187D8 3144FFFF */ andi $a0, $t2, 0xffff
|
||||
/* 0193DC 800187DC AFA80018 */ sw $t0, 0x18($sp)
|
||||
/* 0193E0 800187E0 AFA3001C */ sw $v1, 0x1c($sp)
|
||||
/* 0193E4 800187E4 0C002E85 */ jal func_8000BA14
|
||||
/* 0193E8 800187E8 A7A70036 */ sh $a3, 0x36($sp)
|
||||
/* 0193EC 800187EC 3C068016 */ lui $a2, %hi(D_80162FA0) # $a2, 0x8016
|
||||
/* 0193F0 800187F0 8FA3001C */ lw $v1, 0x1c($sp)
|
||||
/* 0193F4 800187F4 24C62FA0 */ addiu $a2, %lo(D_80162FA0) # addiu $a2, $a2, 0x2fa0
|
||||
/* 0193F8 800187F8 87A70036 */ lh $a3, 0x36($sp)
|
||||
/* 0193FC 800187FC C4C00000 */ lwc1 $f0, ($a2)
|
||||
/* 019400 80018800 8FA80018 */ lw $t0, 0x18($sp)
|
||||
/* 019404 80018804 3C018016 */ lui $at, %hi(D_801645F8)
|
||||
/* 019408 80018808 00230821 */ addu $at, $at, $v1
|
||||
/* 01940C 8001880C 3C0D8016 */ lui $t5, %hi(D_80164550) # 0x8016
|
||||
/* 019410 80018810 00076080 */ sll $t4, $a3, 2
|
||||
/* 019414 80018814 E42045F8 */ swc1 $f0, %lo(D_801645F8)($at)
|
||||
/* 019418 80018818 850E0000 */ lh $t6, ($t0)
|
||||
/* 01941C 8001881C 01AC6821 */ addu $t5, $t5, $t4
|
||||
/* 019420 80018820 8DAD4550 */ lw $t5, %lo(D_80164550)($t5) # 0x4550($t5)
|
||||
/* 019424 80018824 000E78C0 */ sll $t7, $t6, 3
|
||||
/* 019428 80018828 8FAA0028 */ lw $t2, 0x28($sp)
|
||||
/* 01942C 8001882C 01AFC021 */ addu $t8, $t5, $t7
|
||||
/* 019430 80018830 87190002 */ lh $t9, 2($t8)
|
||||
/* 019434 80018834 3C0B8016 */ lui $t3, %hi(D_80164618) # $t3, 0x8016
|
||||
/* 019438 80018838 256B4618 */ addiu $t3, %lo(D_80164618) # addiu $t3, $t3, 0x4618
|
||||
/* 01943C 8001883C 44992000 */ mtc1 $t9, $f4
|
||||
/* 019440 80018840 006B2021 */ addu $a0, $v1, $t3
|
||||
/* 019444 80018844 000A58C0 */ sll $t3, $t2, 3
|
||||
/* 019448 80018848 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 01944C 8001884C 016A5823 */ subu $t3, $t3, $t2
|
||||
/* 019450 80018850 000B5900 */ sll $t3, $t3, 4
|
||||
/* 019454 80018854 016A5823 */ subu $t3, $t3, $t2
|
||||
/* 019458 80018858 C4C80008 */ lwc1 $f8, 8($a2)
|
||||
/* 01945C 8001885C 3C098016 */ lui $t1, %hi(D_80164638) # $t1, 0x8016
|
||||
/* 019460 80018860 000B5880 */ sll $t3, $t3, 2
|
||||
/* 019464 80018864 25294638 */ addiu $t1, %lo(D_80164638) # addiu $t1, $t1, 0x4638
|
||||
/* 019468 80018868 016A5823 */ subu $t3, $t3, $t2
|
||||
/* 01946C 8001886C 000B58C0 */ sll $t3, $t3, 3
|
||||
/* 019470 80018870 3C01800F */ lui $at, %hi(gPlayers+0x94)
|
||||
/* 019474 80018874 00692821 */ addu $a1, $v1, $t1
|
||||
/* 019478 80018878 E4860000 */ swc1 $f6, ($a0)
|
||||
/* 01947C 8001887C 002B0821 */ addu $at, $at, $t3
|
||||
/* 019480 80018880 E4A80000 */ swc1 $f8, ($a1)
|
||||
/* 019484 80018884 C4226A24 */ lwc1 $f2, %lo(gPlayers+0x94)($at)
|
||||
/* 019488 80018888 8FAE0030 */ lw $t6, 0x30($sp)
|
||||
/* 01948C 8001888C 3C018016 */ lui $at, %hi(D_80164658)
|
||||
/* 019490 80018890 00230821 */ addu $at, $at, $v1
|
||||
/* 019494 80018894 E4224658 */ swc1 $f2, %lo(D_80164658)($at)
|
||||
/* 019498 80018898 000E6880 */ sll $t5, $t6, 2
|
||||
/* 01949C 8001889C 3C018016 */ lui $at, %hi(D_80164648)
|
||||
/* 0194A0 800188A0 01AE6823 */ subu $t5, $t5, $t6
|
||||
/* 0194A4 800188A4 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 0194A8 800188A8 00230821 */ addu $at, $at, $v1
|
||||
/* 0194AC 800188AC 3C0F8016 */ lui $t7, %hi(cameras) # $t7, 0x8016
|
||||
/* 0194B0 800188B0 E4224648 */ swc1 $f2, %lo(D_80164648)($at)
|
||||
/* 0194B4 800188B4 01AE6823 */ subu $t5, $t5, $t6
|
||||
/* 0194B8 800188B8 3C018016 */ lui $at, %hi(D_8016448C) # $at, 0x8016
|
||||
/* 0194BC 800188BC 240C0001 */ li $t4, 1
|
||||
/* 0194C0 800188C0 000D68C0 */ sll $t5, $t5, 3
|
||||
/* 0194C4 800188C4 25EF46F0 */ addiu $t7, %lo(cameras) # addiu $t7, $t7, 0x46f0
|
||||
/* 0194C8 800188C8 AC2C448C */ sw $t4, %lo(D_8016448C)($at)
|
||||
/* 0194CC 800188CC 01AF1021 */ addu $v0, $t5, $t7
|
||||
/* 0194D0 800188D0 E4400000 */ swc1 $f0, ($v0)
|
||||
/* 0194D4 800188D4 C48A0000 */ lwc1 $f10, ($a0)
|
||||
/* 0194D8 800188D8 E44A0004 */ swc1 $f10, 4($v0)
|
||||
/* 0194DC 800188DC C4B00000 */ lwc1 $f16, ($a1)
|
||||
/* 0194E0 800188E0 E4500008 */ swc1 $f16, 8($v0)
|
||||
/* 0194E4 800188E4 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 0194E8 800188E8 27BD0028 */ addiu $sp, $sp, 0x28
|
||||
/* 0194EC 800188EC 03E00008 */ jr $ra
|
||||
/* 0194F0 800188F0 00000000 */ nop
|
||||
@@ -1,150 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel D_800ED310
|
||||
.double 3000.0
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_80019118
|
||||
/* 019D18 80019118 00044840 */ sll $t1, $a0, 1
|
||||
/* 019D1C 8001911C 3C0A8016 */ lui $t2, %hi(gNearestWaypointByPlayerId) # 0x8016
|
||||
/* 019D20 80019120 01495021 */ addu $t2, $t2, $t1
|
||||
/* 019D24 80019124 44856000 */ mtc1 $a1, $f12
|
||||
/* 019D28 80019128 954A4438 */ lhu $t2, %lo(gNearestWaypointByPlayerId)($t2) # 0x4438($t2)
|
||||
/* 019D2C 8001912C 00067080 */ sll $t6, $a2, 2
|
||||
/* 019D30 80019130 3C018016 */ lui $at, %hi(D_80164688)
|
||||
/* 019D34 80019134 3C198016 */ lui $t9, %hi(gNearestWaypointByCameraId) # $t9, 0x8016
|
||||
/* 019D38 80019138 3C038016 */ lui $v1, %hi(gWaypointCountByPathIndex) # $v1, 0x8016
|
||||
/* 019D3C 8001913C 002E0821 */ addu $at, $at, $t6
|
||||
/* 019D40 80019140 27394668 */ addiu $t9, %lo(gNearestWaypointByCameraId) # addiu $t9, $t9, 0x4668
|
||||
/* 019D44 80019144 0006C040 */ sll $t8, $a2, 1
|
||||
/* 019D48 80019148 946345C8 */ lhu $v1, %lo(gWaypointCountByPathIndex)($v1)
|
||||
/* 019D4C 8001914C 03191021 */ addu $v0, $t8, $t9
|
||||
/* 019D50 80019150 E42C4688 */ swc1 $f12, %lo(D_80164688)($at)
|
||||
/* 019D54 80019154 254B000C */ addiu $t3, $t2, 0xc
|
||||
/* 019D58 80019158 A44B0000 */ sh $t3, ($v0)
|
||||
/* 019D5C 8001915C 844C0000 */ lh $t4, ($v0)
|
||||
/* 019D60 80019160 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 019D64 80019164 AFA7004C */ sw $a3, 0x4c($sp)
|
||||
/* 019D68 80019168 0183001A */ div $zero, $t4, $v1
|
||||
/* 019D6C 8001916C 00006810 */ mfhi $t5
|
||||
/* 019D70 80019170 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 019D74 80019174 AFA40040 */ sw $a0, 0x40($sp)
|
||||
/* 019D78 80019178 AFA60048 */ sw $a2, 0x48($sp)
|
||||
/* 019D7C 8001917C 01C03825 */ move $a3, $t6
|
||||
/* 019D80 80019180 00C07825 */ move $t7, $a2
|
||||
/* 019D84 80019184 00804025 */ move $t0, $a0
|
||||
/* 019D88 80019188 44056000 */ mfc1 $a1, $f12
|
||||
/* 019D8C 8001918C 14600002 */ bnez $v1, .L80019198
|
||||
/* 019D90 80019190 00000000 */ nop
|
||||
/* 019D94 80019194 0007000D */ break 7
|
||||
.L80019198:
|
||||
/* 019D98 80019198 2401FFFF */ li $at, -1
|
||||
/* 019D9C 8001919C 14610004 */ bne $v1, $at, .L800191B0
|
||||
/* 019DA0 800191A0 3C018000 */ lui $at, 0x8000
|
||||
/* 019DA4 800191A4 15810002 */ bne $t4, $at, .L800191B0
|
||||
/* 019DA8 800191A8 00000000 */ nop
|
||||
/* 019DAC 800191AC 0006000D */ break 6
|
||||
.L800191B0:
|
||||
/* 019DB0 800191B0 A44D0000 */ sh $t5, ($v0)
|
||||
/* 019DB4 800191B4 31A4FFFF */ andi $a0, $t5, 0xffff
|
||||
/* 019DB8 800191B8 00003025 */ move $a2, $zero
|
||||
/* 019DBC 800191BC AFA7002C */ sw $a3, 0x2c($sp)
|
||||
/* 019DC0 800191C0 0C002EF6 */ jal func_8000BBD8
|
||||
/* 019DC4 800191C4 AFA20028 */ sw $v0, 0x28($sp)
|
||||
/* 019DC8 800191C8 3C038016 */ lui $v1, %hi(D_80162FA0) # $v1, 0x8016
|
||||
/* 019DCC 800191CC 8FA7002C */ lw $a3, 0x2c($sp)
|
||||
/* 019DD0 800191D0 24632FA0 */ addiu $v1, %lo(D_80162FA0) # addiu $v1, $v1, 0x2fa0
|
||||
/* 019DD4 800191D4 8FA20028 */ lw $v0, 0x28($sp)
|
||||
/* 019DD8 800191D8 C46C0000 */ lwc1 $f12, ($v1)
|
||||
/* 019DDC 800191DC C4600008 */ lwc1 $f0, 8($v1)
|
||||
/* 019DE0 800191E0 3C0E8016 */ lui $t6, %hi(D_801645F8) # $t6, 0x8016
|
||||
/* 019DE4 800191E4 3C0F8016 */ lui $t7, %hi(D_80164638) # $t7, 0x8016
|
||||
/* 019DE8 800191E8 25CE45F8 */ addiu $t6, %lo(D_801645F8) # addiu $t6, $t6, 0x45f8
|
||||
/* 019DEC 800191EC 25EF4638 */ addiu $t7, %lo(D_80164638) # addiu $t7, $t7, 0x4638
|
||||
/* 019DF0 800191F0 00EE2021 */ addu $a0, $a3, $t6
|
||||
/* 019DF4 800191F4 00EF2821 */ addu $a1, $a3, $t7
|
||||
/* 019DF8 800191F8 84590000 */ lh $t9, ($v0)
|
||||
/* 019DFC 800191FC 3C188016 */ lui $t8, %hi(D_80164550) # $t8, 0x8016
|
||||
/* 019E00 80019200 E48C0000 */ swc1 $f12, ($a0)
|
||||
/* 019E04 80019204 E4A00000 */ swc1 $f0, ($a1)
|
||||
/* 019E08 80019208 8F184550 */ lw $t8, %lo(D_80164550)($t8)
|
||||
/* 019E0C 8001920C 001940C0 */ sll $t0, $t9, 3
|
||||
/* 019E10 80019210 3C01403E */ li $at, 0x403E0000 # 2.968750
|
||||
/* 019E14 80019214 03084821 */ addu $t1, $t8, $t0
|
||||
/* 019E18 80019218 852A0002 */ lh $t2, 2($t1)
|
||||
/* 019E1C 8001921C 44813800 */ mtc1 $at, $f7
|
||||
/* 019E20 80019220 44803000 */ mtc1 $zero, $f6
|
||||
/* 019E24 80019224 448A2000 */ mtc1 $t2, $f4
|
||||
/* 019E28 80019228 44060000 */ mfc1 $a2, $f0
|
||||
/* 019E2C 8001922C AFA50020 */ sw $a1, 0x20($sp)
|
||||
/* 019E30 80019230 46802420 */ cvt.s.w $f16, $f4
|
||||
/* 019E34 80019234 AFA40024 */ sw $a0, 0x24($sp)
|
||||
/* 019E38 80019238 460080A1 */ cvt.d.s $f2, $f16
|
||||
/* 019E3C 8001923C 46261200 */ add.d $f8, $f2, $f6
|
||||
/* 019E40 80019240 F7A20018 */ sdc1 $f2, 0x18($sp)
|
||||
/* 019E44 80019244 0C0AB870 */ jal func_802AE1C0
|
||||
/* 019E48 80019248 462043A0 */ cvt.s.d $f14, $f8
|
||||
/* 019E4C 8001924C 3C014034 */ li $at, 0x40340000 # 2.812500
|
||||
/* 019E50 80019250 D7A20018 */ ldc1 $f2, 0x18($sp)
|
||||
/* 019E54 80019254 44815800 */ mtc1 $at, $f11
|
||||
/* 019E58 80019258 44805000 */ mtc1 $zero, $f10
|
||||
/* 019E5C 8001925C 46000321 */ cvt.d.s $f12, $f0
|
||||
/* 019E60 80019260 3C0F8016 */ lui $t7, %hi(cameras) # $t7, 0x8016
|
||||
/* 019E64 80019264 462A1481 */ sub.d $f18, $f2, $f10
|
||||
/* 019E68 80019268 8FA40024 */ lw $a0, 0x24($sp)
|
||||
/* 019E6C 8001926C 8FA50020 */ lw $a1, 0x20($sp)
|
||||
/* 019E70 80019270 8FA7002C */ lw $a3, 0x2c($sp)
|
||||
/* 019E74 80019274 4632603C */ c.lt.d $f12, $f18
|
||||
/* 019E78 80019278 3C01800F */ lui $at, %hi(D_800ED310)
|
||||
/* 019E7C 8001927C 25EF46F0 */ addiu $t7, %lo(cameras) # addiu $t7, $t7, 0x46f0
|
||||
/* 019E80 80019280 45030008 */ bc1tl .L800192A4
|
||||
/* 019E84 80019284 3C014024 */ li $at, 0x40240000 # 2.562500
|
||||
/* 019E88 80019288 D424D310 */ ldc1 $f4, %lo(D_800ED310)($at)
|
||||
/* 019E8C 8001928C 3C014024 */ li $at, 0x40240000 # 2.562500
|
||||
/* 019E90 80019290 462C203E */ c.le.d $f4, $f12
|
||||
/* 019E94 80019294 00000000 */ nop
|
||||
/* 019E98 80019298 4502000C */ bc1fl .L800192CC
|
||||
/* 019E9C 8001929C 44819800 */ mtc1 $at, $f19
|
||||
/* 019EA0 800192A0 3C014024 */ li $at, 0x40240000 # 2.562500
|
||||
.L800192A4:
|
||||
/* 019EA4 800192A4 44813800 */ mtc1 $at, $f7
|
||||
/* 019EA8 800192A8 44803000 */ mtc1 $zero, $f6
|
||||
/* 019EAC 800192AC 3C0B8016 */ lui $t3, %hi(D_80164618) # $t3, 0x8016
|
||||
/* 019EB0 800192B0 256B4618 */ addiu $t3, %lo(D_80164618) # addiu $t3, $t3, 0x4618
|
||||
/* 019EB4 800192B4 46261200 */ add.d $f8, $f2, $f6
|
||||
/* 019EB8 800192B8 00EB1821 */ addu $v1, $a3, $t3
|
||||
/* 019EBC 800192BC 462042A0 */ cvt.s.d $f10, $f8
|
||||
/* 019EC0 800192C0 10000009 */ b .L800192E8
|
||||
/* 019EC4 800192C4 E46A0000 */ swc1 $f10, ($v1)
|
||||
/* 019EC8 800192C8 44819800 */ mtc1 $at, $f19
|
||||
.L800192CC:
|
||||
/* 019ECC 800192CC 44809000 */ mtc1 $zero, $f18
|
||||
/* 019ED0 800192D0 3C0C8016 */ lui $t4, %hi(D_80164618) # $t4, 0x8016
|
||||
/* 019ED4 800192D4 258C4618 */ addiu $t4, %lo(D_80164618) # addiu $t4, $t4, 0x4618
|
||||
/* 019ED8 800192D8 46326100 */ add.d $f4, $f12, $f18
|
||||
/* 019EDC 800192DC 00EC1821 */ addu $v1, $a3, $t4
|
||||
/* 019EE0 800192E0 462021A0 */ cvt.s.d $f6, $f4
|
||||
/* 019EE4 800192E4 E4660000 */ swc1 $f6, ($v1)
|
||||
.L800192E8:
|
||||
/* 019EE8 800192E8 8FAD0048 */ lw $t5, 0x48($sp)
|
||||
/* 019EEC 800192EC 44804000 */ mtc1 $zero, $f8
|
||||
/* 019EF0 800192F0 3C018016 */ lui $at, %hi(D_80164648)
|
||||
/* 019EF4 800192F4 000D7080 */ sll $t6, $t5, 2
|
||||
/* 019EF8 800192F8 00270821 */ addu $at, $at, $a3
|
||||
/* 019EFC 800192FC 01CD7023 */ subu $t6, $t6, $t5
|
||||
/* 019F00 80019300 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 019F04 80019304 E4284648 */ swc1 $f8, %lo(D_80164648)($at)
|
||||
/* 019F08 80019308 C48A0000 */ lwc1 $f10, ($a0)
|
||||
/* 019F0C 8001930C 01CD7023 */ subu $t6, $t6, $t5
|
||||
/* 019F10 80019310 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 019F14 80019314 01CF1021 */ addu $v0, $t6, $t7
|
||||
/* 019F18 80019318 E44A0000 */ swc1 $f10, ($v0)
|
||||
/* 019F1C 8001931C C4720000 */ lwc1 $f18, ($v1)
|
||||
/* 019F20 80019320 E4520004 */ swc1 $f18, 4($v0)
|
||||
/* 019F24 80019324 C4A40000 */ lwc1 $f4, ($a1)
|
||||
/* 019F28 80019328 E4440008 */ swc1 $f4, 8($v0)
|
||||
/* 019F2C 8001932C 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 019F30 80019330 27BD0040 */ addiu $sp, $sp, 0x40
|
||||
/* 019F34 80019334 03E00008 */ jr $ra
|
||||
/* 019F38 80019338 00000000 */ nop
|
||||
@@ -1,50 +0,0 @@
|
||||
glabel func_8001969C
|
||||
/* 01A29C 8001969C 3C0F8016 */ lui $t7, %hi(gWaypointCountByPathIndex) # $t7, 0x8016
|
||||
/* 01A2A0 800196A0 95EF45C8 */ lhu $t7, %lo(gWaypointCountByPathIndex)($t7)
|
||||
/* 01A2A4 800196A4 3C0E8016 */ lui $t6, %hi(gNearestWaypointByCameraId) # $t6, 0x8016
|
||||
/* 01A2A8 800196A8 25CE4668 */ addiu $t6, %lo(gNearestWaypointByCameraId) # addiu $t6, $t6, 0x4668
|
||||
/* 01A2AC 800196AC 00061040 */ sll $v0, $a2, 1
|
||||
/* 01A2B0 800196B0 004E1821 */ addu $v1, $v0, $t6
|
||||
/* 01A2B4 800196B4 25F8FFEE */ addiu $t8, $t7, -0x12
|
||||
/* 01A2B8 800196B8 A4780000 */ sh $t8, ($v1)
|
||||
/* 01A2BC 800196BC 84790000 */ lh $t9, ($v1)
|
||||
/* 01A2C0 800196C0 3C098016 */ lui $t1, %hi(D_80164550) # $t1, 0x8016
|
||||
/* 01A2C4 800196C4 8D294550 */ lw $t1, %lo(D_80164550)($t1)
|
||||
/* 01A2C8 800196C8 AFA40000 */ sw $a0, ($sp)
|
||||
/* 01A2CC 800196CC 001940C0 */ sll $t0, $t9, 3
|
||||
/* 01A2D0 800196D0 AFA50004 */ sw $a1, 4($sp)
|
||||
/* 01A2D4 800196D4 AFA7000C */ sw $a3, 0xc($sp)
|
||||
/* 01A2D8 800196D8 01092021 */ addu $a0, $t0, $t1
|
||||
/* 01A2DC 800196DC 848A0000 */ lh $t2, ($a0)
|
||||
/* 01A2E0 800196E0 00062880 */ sll $a1, $a2, 2
|
||||
/* 01A2E4 800196E4 3C018016 */ lui $at, %hi(D_801645F8)
|
||||
/* 01A2E8 800196E8 448A2000 */ mtc1 $t2, $f4
|
||||
/* 01A2EC 800196EC 00250821 */ addu $at, $at, $a1
|
||||
/* 01A2F0 800196F0 44808000 */ mtc1 $zero, $f16
|
||||
/* 01A2F4 800196F4 468021A0 */ cvt.s.w $f6, $f4
|
||||
/* 01A2F8 800196F8 E42645F8 */ swc1 $f6, %lo(D_801645F8)($at)
|
||||
/* 01A2FC 800196FC 848B0002 */ lh $t3, 2($a0)
|
||||
/* 01A300 80019700 3C014024 */ li $at, 0x40240000 # 2.562500
|
||||
/* 01A304 80019704 44818800 */ mtc1 $at, $f17
|
||||
/* 01A308 80019708 448B4000 */ mtc1 $t3, $f8
|
||||
/* 01A30C 8001970C 3C018016 */ lui $at, %hi(D_80164618)
|
||||
/* 01A310 80019710 00250821 */ addu $at, $at, $a1
|
||||
/* 01A314 80019714 468042A1 */ cvt.d.w $f10, $f8
|
||||
/* 01A318 80019718 46305480 */ add.d $f18, $f10, $f16
|
||||
/* 01A31C 8001971C 44805000 */ mtc1 $zero, $f10
|
||||
/* 01A320 80019720 46209120 */ cvt.s.d $f4, $f18
|
||||
/* 01A324 80019724 E4244618 */ swc1 $f4, %lo(D_80164618)($at)
|
||||
/* 01A328 80019728 848C0004 */ lh $t4, 4($a0)
|
||||
/* 01A32C 8001972C 3C018016 */ lui $at, %hi(D_80164638)
|
||||
/* 01A330 80019730 00250821 */ addu $at, $at, $a1
|
||||
/* 01A334 80019734 448C3000 */ mtc1 $t4, $f6
|
||||
/* 01A338 80019738 00000000 */ nop
|
||||
/* 01A33C 8001973C 46803220 */ cvt.s.w $f8, $f6
|
||||
/* 01A340 80019740 E4284638 */ swc1 $f8, %lo(D_80164638)($at)
|
||||
/* 01A344 80019744 3C018016 */ lui $at, %hi(D_80164648)
|
||||
/* 01A348 80019748 00250821 */ addu $at, $at, $a1
|
||||
/* 01A34C 8001974C E42A4648 */ swc1 $f10, %lo(D_80164648)($at)
|
||||
/* 01A350 80019750 3C018016 */ lui $at, %hi(D_80164678) # 0x8016
|
||||
/* 01A354 80019754 00220821 */ addu $at, $at, $v0
|
||||
/* 01A358 80019758 03E00008 */ jr $ra
|
||||
/* 01A35C 8001975C A4204678 */ sh $zero, %lo(D_80164678)($at) # 0x4678($at)
|
||||
@@ -1,207 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel jpt_800ED328
|
||||
.word L80019928, L80019A08, L8001993C, L80019954
|
||||
.word L800199B4, L800199D4, L8001996C, L80019990
|
||||
.word L80019A48, L800199F4, L80019AE8, L80019AE8
|
||||
.word L80019A68, L80019A88, L80019A28, L80019AA8
|
||||
.word L80019AC8
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_80019890
|
||||
/* 01A490 80019890 3C0E800E */ lui $t6, %hi(camera1)
|
||||
/* 01A494 80019894 0005C080 */ sll $t8, $a1, 2
|
||||
/* 01A498 80019898 8DCEDB40 */ lw $t6, %lo(camera1)($t6)
|
||||
/* 01A49C 8001989C 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||||
/* 01A4A0 800198A0 0305C023 */ subu $t8, $t8, $a1
|
||||
/* 01A4A4 800198A4 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 01A4A8 800198A8 0305C023 */ subu $t8, $t8, $a1
|
||||
/* 01A4AC 800198AC 0018C0C0 */ sll $t8, $t8, 3
|
||||
/* 01A4B0 800198B0 AFAE0028 */ sw $t6, 0x28($sp)
|
||||
/* 01A4B4 800198B4 01D8C821 */ addu $t9, $t6, $t8
|
||||
/* 01A4B8 800198B8 AFBF001C */ sw $ra, 0x1c($sp)
|
||||
/* 01A4BC 800198BC AFB10018 */ sw $s1, 0x18($sp)
|
||||
/* 01A4C0 800198C0 AFB00014 */ sw $s0, 0x14($sp)
|
||||
/* 01A4C4 800198C4 AFB90028 */ sw $t9, 0x28($sp)
|
||||
/* 01A4C8 800198C8 A72400AE */ sh $a0, 0xae($t9)
|
||||
/* 01A4CC 800198CC 00054040 */ sll $t0, $a1, 1
|
||||
/* 01A4D0 800198D0 3C0B8016 */ lui $t3, %hi(D_80164680) # $t3, 0x8016
|
||||
/* 01A4D4 800198D4 3C018016 */ lui $at, %hi(D_801646C0) # 0x8016
|
||||
/* 01A4D8 800198D8 256B4680 */ addiu $t3, %lo(D_80164680) # addiu $t3, $t3, 0x4680
|
||||
/* 01A4DC 800198DC 00280821 */ addu $at, $at, $t0
|
||||
/* 01A4E0 800198E0 010B6021 */ addu $t4, $t0, $t3
|
||||
/* 01A4E4 800198E4 A42046C0 */ sh $zero, %lo(D_801646C0)($at) # 0x46c0($at)
|
||||
/* 01A4E8 800198E8 AFA80024 */ sw $t0, 0x24($sp)
|
||||
/* 01A4EC 800198EC AFAC0020 */ sw $t4, 0x20($sp)
|
||||
/* 01A4F0 800198F0 958D0000 */ lhu $t5, ($t4)
|
||||
/* 01A4F4 800198F4 3C118016 */ lui $s1, %hi(gPathIndexByPlayerId) # 0x8016
|
||||
/* 01A4F8 800198F8 00045040 */ sll $t2, $a0, 1
|
||||
/* 01A4FC 800198FC 022A8821 */ addu $s1, $s1, $t2
|
||||
/* 01A500 80019900 2DA10011 */ sltiu $at, $t5, 0x11
|
||||
/* 01A504 80019904 00A08025 */ move $s0, $a1
|
||||
/* 01A508 80019908 10200077 */ beqz $at, .L80019AE8
|
||||
/* 01A50C 8001990C 963145B0 */ lhu $s1, %lo(gPathIndexByPlayerId)($s1) # 0x45b0($s1)
|
||||
/* 01A510 80019910 000D6880 */ sll $t5, $t5, 2
|
||||
/* 01A514 80019914 3C01800F */ lui $at, %hi(jpt_800ED328)
|
||||
/* 01A518 80019918 002D0821 */ addu $at, $at, $t5
|
||||
/* 01A51C 8001991C 8C2DD328 */ lw $t5, %lo(jpt_800ED328)($at)
|
||||
/* 01A520 80019920 01A00008 */ jr $t5
|
||||
/* 01A524 80019924 00000000 */ nop
|
||||
glabel L80019928
|
||||
/* 01A528 80019928 24050000 */ li $a1, 0
|
||||
/* 01A52C 8001992C 0C0054C5 */ jal func_80015314
|
||||
/* 01A530 80019930 02003025 */ move $a2, $s0
|
||||
/* 01A534 80019934 10000070 */ b .L80019AF8
|
||||
/* 01A538 80019938 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L8001993C
|
||||
/* 01A53C 8001993C 3C05BF80 */ lui $a1, 0xbf80
|
||||
/* 01A540 80019940 02003025 */ move $a2, $s0
|
||||
/* 01A544 80019944 0C005551 */ jal func_80015544
|
||||
/* 01A548 80019948 02203825 */ move $a3, $s1
|
||||
/* 01A54C 8001994C 1000006A */ b .L80019AF8
|
||||
/* 01A550 80019950 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019954
|
||||
/* 01A554 80019954 3C053F80 */ lui $a1, 0x3f80
|
||||
/* 01A558 80019958 02003025 */ move $a2, $s0
|
||||
/* 01A55C 8001995C 0C005551 */ jal func_80015544
|
||||
/* 01A560 80019960 02203825 */ move $a3, $s1
|
||||
/* 01A564 80019964 10000064 */ b .L80019AF8
|
||||
/* 01A568 80019968 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L8001996C
|
||||
/* 01A56C 8001996C 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A570 80019970 00077403 */ sra $t6, $a3, 0x10
|
||||
/* 01A574 80019974 3C05BF19 */ lui $a1, (0xBF19999A >> 16) # lui $a1, 0xbf19
|
||||
/* 01A578 80019978 34A5999A */ ori $a1, (0xBF19999A & 0xFFFF) # ori $a1, $a1, 0x999a
|
||||
/* 01A57C 8001997C 01C03825 */ move $a3, $t6
|
||||
/* 01A580 80019980 0C0056A7 */ jal func_80015A9C
|
||||
/* 01A584 80019984 02003025 */ move $a2, $s0
|
||||
/* 01A588 80019988 1000005B */ b .L80019AF8
|
||||
/* 01A58C 8001998C 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019990
|
||||
/* 01A590 80019990 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A594 80019994 00077C03 */ sra $t7, $a3, 0x10
|
||||
/* 01A598 80019998 3C053F19 */ lui $a1, (0x3F19999A >> 16) # lui $a1, 0x3f19
|
||||
/* 01A59C 8001999C 34A5999A */ ori $a1, (0x3F19999A & 0xFFFF) # ori $a1, $a1, 0x999a
|
||||
/* 01A5A0 800199A0 01E03825 */ move $a3, $t7
|
||||
/* 01A5A4 800199A4 0C0056A7 */ jal func_80015A9C
|
||||
/* 01A5A8 800199A8 02003025 */ move $a2, $s0
|
||||
/* 01A5AC 800199AC 10000052 */ b .L80019AF8
|
||||
/* 01A5B0 800199B0 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L800199B4
|
||||
/* 01A5B4 800199B4 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A5B8 800199B8 0007C403 */ sra $t8, $a3, 0x10
|
||||
/* 01A5BC 800199BC 03003825 */ move $a3, $t8
|
||||
/* 01A5C0 800199C0 3C05BF80 */ lui $a1, 0xbf80
|
||||
/* 01A5C4 800199C4 0C0058B3 */ jal func_800162CC
|
||||
/* 01A5C8 800199C8 02003025 */ move $a2, $s0
|
||||
/* 01A5CC 800199CC 1000004A */ b .L80019AF8
|
||||
/* 01A5D0 800199D0 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L800199D4
|
||||
/* 01A5D4 800199D4 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A5D8 800199D8 0007CC03 */ sra $t9, $a3, 0x10
|
||||
/* 01A5DC 800199DC 03203825 */ move $a3, $t9
|
||||
/* 01A5E0 800199E0 3C053F80 */ lui $a1, 0x3f80
|
||||
/* 01A5E4 800199E4 0C0058B3 */ jal func_800162CC
|
||||
/* 01A5E8 800199E8 02003025 */ move $a2, $s0
|
||||
/* 01A5EC 800199EC 10000042 */ b .L80019AF8
|
||||
/* 01A5F0 800199F0 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L800199F4
|
||||
/* 01A5F4 800199F4 24050000 */ li $a1, 0
|
||||
/* 01A5F8 800199F8 0C005B0F */ jal func_80016C3C
|
||||
/* 01A5FC 800199FC 02003025 */ move $a2, $s0
|
||||
/* 01A600 80019A00 1000003D */ b .L80019AF8
|
||||
/* 01A604 80019A04 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019A08
|
||||
/* 01A608 80019A08 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A60C 80019A0C 00074403 */ sra $t0, $a3, 0x10
|
||||
/* 01A610 80019A10 01003825 */ move $a3, $t0
|
||||
/* 01A614 80019A14 24050000 */ li $a1, 0
|
||||
/* 01A618 80019A18 0C005DC8 */ jal func_80017720
|
||||
/* 01A61C 80019A1C 02003025 */ move $a2, $s0
|
||||
/* 01A620 80019A20 10000035 */ b .L80019AF8
|
||||
/* 01A624 80019A24 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019A28
|
||||
/* 01A628 80019A28 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A62C 80019A2C 00075403 */ sra $t2, $a3, 0x10
|
||||
/* 01A630 80019A30 01403825 */ move $a3, $t2
|
||||
/* 01A634 80019A34 24050000 */ li $a1, 0
|
||||
/* 01A638 80019A38 0C005FC4 */ jal func_80017F10
|
||||
/* 01A63C 80019A3C 02003025 */ move $a2, $s0
|
||||
/* 01A640 80019A40 1000002D */ b .L80019AF8
|
||||
/* 01A644 80019A44 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019A48
|
||||
/* 01A648 80019A48 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A64C 80019A4C 00074C03 */ sra $t1, $a3, 0x10
|
||||
/* 01A650 80019A50 01203825 */ move $a3, $t1
|
||||
/* 01A654 80019A54 24050000 */ li $a1, 0
|
||||
/* 01A658 80019A58 0C0061C6 */ jal func_80018718
|
||||
/* 01A65C 80019A5C 02003025 */ move $a2, $s0
|
||||
/* 01A660 80019A60 10000025 */ b .L80019AF8
|
||||
/* 01A664 80019A64 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019A68
|
||||
/* 01A668 80019A68 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A66C 80019A6C 00075C03 */ sra $t3, $a3, 0x10
|
||||
/* 01A670 80019A70 01603825 */ move $a3, $t3
|
||||
/* 01A674 80019A74 3C05BF80 */ lui $a1, 0xbf80
|
||||
/* 01A678 80019A78 0C006446 */ jal func_80019118
|
||||
/* 01A67C 80019A7C 02003025 */ move $a2, $s0
|
||||
/* 01A680 80019A80 1000001D */ b .L80019AF8
|
||||
/* 01A684 80019A84 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019A88
|
||||
/* 01A688 80019A88 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A68C 80019A8C 00076403 */ sra $t4, $a3, 0x10
|
||||
/* 01A690 80019A90 01803825 */ move $a3, $t4
|
||||
/* 01A694 80019A94 3C053F80 */ lui $a1, 0x3f80
|
||||
/* 01A698 80019A98 0C006446 */ jal func_80019118
|
||||
/* 01A69C 80019A9C 02003025 */ move $a2, $s0
|
||||
/* 01A6A0 80019AA0 10000015 */ b .L80019AF8
|
||||
/* 01A6A4 80019AA4 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019AA8
|
||||
/* 01A6A8 80019AA8 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A6AC 80019AAC 00076C03 */ sra $t5, $a3, 0x10
|
||||
/* 01A6B0 80019AB0 01A03825 */ move $a3, $t5
|
||||
/* 01A6B4 80019AB4 3C05BF80 */ lui $a1, 0xbf80
|
||||
/* 01A6B8 80019AB8 0C0065A7 */ jal func_8001969C
|
||||
/* 01A6BC 80019ABC 02003025 */ move $a2, $s0
|
||||
/* 01A6C0 80019AC0 1000000D */ b .L80019AF8
|
||||
/* 01A6C4 80019AC4 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
glabel L80019AC8
|
||||
/* 01A6C8 80019AC8 00113C00 */ sll $a3, $s1, 0x10
|
||||
/* 01A6CC 80019ACC 00077403 */ sra $t6, $a3, 0x10
|
||||
/* 01A6D0 80019AD0 01C03825 */ move $a3, $t6
|
||||
/* 01A6D4 80019AD4 3C053F80 */ lui $a1, 0x3f80
|
||||
/* 01A6D8 80019AD8 0C0065A7 */ jal func_8001969C
|
||||
/* 01A6DC 80019ADC 02003025 */ move $a2, $s0
|
||||
/* 01A6E0 80019AE0 10000005 */ b .L80019AF8
|
||||
/* 01A6E4 80019AE4 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
.L80019AE8:
|
||||
glabel L80019AE8
|
||||
/* 01A6E8 80019AE8 24050000 */ li $a1, 0
|
||||
/* 01A6EC 80019AEC 0C0054C5 */ jal func_80015314
|
||||
/* 01A6F0 80019AF0 02003025 */ move $a2, $s0
|
||||
/* 01A6F4 80019AF4 8FAF0028 */ lw $t7, 0x28($sp)
|
||||
.L80019AF8:
|
||||
/* 01A6F8 80019AF8 02203825 */ move $a3, $s1
|
||||
/* 01A6FC 80019AFC C5EC0000 */ lwc1 $f12, ($t7)
|
||||
/* 01A700 80019B00 C5EE0004 */ lwc1 $f14, 4($t7)
|
||||
/* 01A704 80019B04 0C002F65 */ jal func_8000BD94
|
||||
/* 01A708 80019B08 8DE60008 */ lw $a2, 8($t7)
|
||||
/* 01A70C 80019B0C 8FB80024 */ lw $t8, 0x24($sp)
|
||||
/* 01A710 80019B10 8FB90020 */ lw $t9, 0x20($sp)
|
||||
/* 01A714 80019B14 3C018016 */ lui $at, %hi(gNearestWaypointByCameraId) # 0x8016
|
||||
/* 01A718 80019B18 00380821 */ addu $at, $at, $t8
|
||||
/* 01A71C 80019B1C A4224668 */ sh $v0, %lo(gNearestWaypointByCameraId)($at) # 0x4668($at)
|
||||
/* 01A720 80019B20 87280000 */ lh $t0, ($t9)
|
||||
/* 01A724 80019B24 24010009 */ li $at, 9
|
||||
/* 01A728 80019B28 00105080 */ sll $t2, $s0, 2
|
||||
/* 01A72C 80019B2C 15010003 */ bne $t0, $at, .L80019B3C
|
||||
/* 01A730 80019B30 3C018016 */ lui $at, %hi(D_80163DD8) # 0x8016
|
||||
/* 01A734 80019B34 002A0821 */ addu $at, $at, $t2
|
||||
/* 01A738 80019B38 AC313DD8 */ sw $s1, %lo(D_80163DD8)($at) # 0x3dd8($at)
|
||||
.L80019B3C:
|
||||
/* 01A73C 80019B3C 8FBF001C */ lw $ra, 0x1c($sp)
|
||||
/* 01A740 80019B40 8FB00014 */ lw $s0, 0x14($sp)
|
||||
/* 01A744 80019B44 8FB10018 */ lw $s1, 0x18($sp)
|
||||
/* 01A748 80019B48 03E00008 */ jr $ra
|
||||
/* 01A74C 80019B4C 27BD0030 */ addiu $sp, $sp, 0x30
|
||||
@@ -1,31 +0,0 @@
|
||||
glabel func_80019E58
|
||||
/* 01AA58 80019E58 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 01AA5C 80019E5C AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 01AA60 80019E60 240E0001 */ li $t6, 1
|
||||
/* 01AA64 80019E64 3C018016 */ lui $at, %hi(D_80164680) # $at, 0x8016
|
||||
/* 01AA68 80019E68 A42E4680 */ sh $t6, %lo(D_80164680)($at)
|
||||
/* 01AA6C 80019E6C 00002025 */ move $a0, $zero
|
||||
/* 01AA70 80019E70 0C006624 */ jal func_80019890
|
||||
/* 01AA74 80019E74 00002825 */ move $a1, $zero
|
||||
/* 01AA78 80019E78 3C028016 */ lui $v0, %hi(D_80164678) # $v0, 0x8016
|
||||
/* 01AA7C 80019E7C 24424678 */ addiu $v0, %lo(D_80164678) # addiu $v0, $v0, 0x4678
|
||||
/* 01AA80 80019E80 844F0000 */ lh $t7, ($v0)
|
||||
/* 01AA84 80019E84 3C018016 */ lui $at, %hi(D_80164670) # $at, 0x8016
|
||||
/* 01AA88 80019E88 24180001 */ li $t8, 1
|
||||
/* 01AA8C 80019E8C A42F4670 */ sh $t7, %lo(D_80164670)($at)
|
||||
/* 01AA90 80019E90 A4580000 */ sh $t8, ($v0)
|
||||
/* 01AA94 80019E94 3C018016 */ lui $at, %hi(D_80164682) # $at, 0x8016
|
||||
/* 01AA98 80019E98 24190009 */ li $t9, 9
|
||||
/* 01AA9C 80019E9C A4394682 */ sh $t9, %lo(D_80164682)($at)
|
||||
/* 01AAA0 80019EA0 00002025 */ move $a0, $zero
|
||||
/* 01AAA4 80019EA4 0C006624 */ jal func_80019890
|
||||
/* 01AAA8 80019EA8 24050001 */ li $a1, 1
|
||||
/* 01AAAC 80019EAC 3C028016 */ lui $v0, %hi(D_80164678) # $v0, 0x8016
|
||||
/* 01AAB0 80019EB0 24424678 */ addiu $v0, %lo(D_80164678) # addiu $v0, $v0, 0x4678
|
||||
/* 01AAB4 80019EB4 84480002 */ lh $t0, 2($v0)
|
||||
/* 01AAB8 80019EB8 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 01AABC 80019EBC 3C018016 */ lui $at, %hi(D_80164672) # $at, 0x8016
|
||||
/* 01AAC0 80019EC0 A4284672 */ sh $t0, %lo(D_80164672)($at)
|
||||
/* 01AAC4 80019EC4 A4400002 */ sh $zero, 2($v0)
|
||||
/* 01AAC8 80019EC8 03E00008 */ jr $ra
|
||||
/* 01AACC 80019ECC 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
@@ -1,60 +0,0 @@
|
||||
glabel func_80019ED0
|
||||
/* 01AAD0 80019ED0 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 01AAD4 80019ED4 AFB0001C */ sw $s0, 0x1c($sp)
|
||||
/* 01AAD8 80019ED8 3C108016 */ lui $s0, %hi(D_80164678) # $s0, 0x8016
|
||||
/* 01AADC 80019EDC 3C028016 */ lui $v0, %hi(D_80164670) # $v0, 0x8016
|
||||
/* 01AAE0 80019EE0 3C038016 */ lui $v1, %hi(D_80164680) # $v1, 0x8016
|
||||
/* 01AAE4 80019EE4 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 01AAE8 80019EE8 AFB50030 */ sw $s5, 0x30($sp)
|
||||
/* 01AAEC 80019EEC AFB4002C */ sw $s4, 0x2c($sp)
|
||||
/* 01AAF0 80019EF0 AFB30028 */ sw $s3, 0x28($sp)
|
||||
/* 01AAF4 80019EF4 AFB20024 */ sw $s2, 0x24($sp)
|
||||
/* 01AAF8 80019EF8 AFB10020 */ sw $s1, 0x20($sp)
|
||||
/* 01AAFC 80019EFC F7B40010 */ sdc1 $f20, 0x10($sp)
|
||||
/* 01AB00 80019F00 24634680 */ addiu $v1, %lo(D_80164680) # addiu $v1, $v1, 0x4680
|
||||
/* 01AB04 80019F04 24424670 */ addiu $v0, %lo(D_80164670) # addiu $v0, $v0, 0x4670
|
||||
/* 01AB08 80019F08 26104678 */ addiu $s0, %lo(D_80164678) # addiu $s0, $s0, 0x4678
|
||||
.L80019F0C:
|
||||
/* 01AB0C 80019F0C 860E0000 */ lh $t6, ($s0)
|
||||
/* 01AB10 80019F10 26100002 */ addiu $s0, $s0, 2
|
||||
/* 01AB14 80019F14 0203082B */ sltu $at, $s0, $v1
|
||||
/* 01AB18 80019F18 24420002 */ addiu $v0, $v0, 2
|
||||
/* 01AB1C 80019F1C 1420FFFB */ bnez $at, .L80019F0C
|
||||
/* 01AB20 80019F20 A44EFFFE */ sh $t6, -2($v0)
|
||||
/* 01AB24 80019F24 3C13800E */ lui $s3, %hi(gPlayerWinningIndex)
|
||||
/* 01AB28 80019F28 2673C5E8 */ addiu $s3, %lo(gPlayerWinningIndex) # addiu $s3, $s3, -0x3a18
|
||||
/* 01AB2C 80019F2C 8E620000 */ lw $v0, ($s3)
|
||||
/* 01AB30 80019F30 3C0F800E */ lui $t7, %hi(camera1)
|
||||
/* 01AB34 80019F34 8DEFDB40 */ lw $t7, %lo(camera1)($t7)
|
||||
/* 01AB38 80019F38 3C018016 */ lui $at, %hi(gGPCurrentRacePlayerIdByRank) # $at, 0x8016
|
||||
/* 01AB3C 80019F3C 3C108016 */ lui $s0, %hi(D_80164678) # $s0, 0x8016
|
||||
/* 01AB40 80019F40 3C128016 */ lui $s2, %hi(D_80164680) # $s2, 0x8016
|
||||
/* 01AB44 80019F44 A4224360 */ sh $v0, %lo(gGPCurrentRacePlayerIdByRank)($at)
|
||||
/* 01AB48 80019F48 4480A000 */ mtc1 $zero, $f20
|
||||
/* 01AB4C 80019F4C 26524680 */ addiu $s2, %lo(D_80164680) # addiu $s2, $s2, 0x4680
|
||||
/* 01AB50 80019F50 26104678 */ addiu $s0, %lo(D_80164678) # addiu $s0, $s0, 0x4678
|
||||
/* 01AB54 80019F54 00008825 */ move $s1, $zero
|
||||
/* 01AB58 80019F58 24150004 */ li $s5, 4
|
||||
/* 01AB5C 80019F5C 24140001 */ li $s4, 1
|
||||
/* 01AB60 80019F60 A5E200AE */ sh $v0, 0xae($t7)
|
||||
.L80019F64:
|
||||
/* 01AB64 80019F64 4405A000 */ mfc1 $a1, $f20
|
||||
/* 01AB68 80019F68 A6400000 */ sh $zero, ($s2)
|
||||
/* 01AB6C 80019F6C 8E640000 */ lw $a0, ($s3)
|
||||
/* 01AB70 80019F70 0C0054C5 */ jal func_80015314
|
||||
/* 01AB74 80019F74 02203025 */ move $a2, $s1
|
||||
/* 01AB78 80019F78 26310001 */ addiu $s1, $s1, 1
|
||||
/* 01AB7C 80019F7C 26100002 */ addiu $s0, $s0, 2
|
||||
/* 01AB80 80019F80 26520002 */ addiu $s2, $s2, 2
|
||||
/* 01AB84 80019F84 1635FFF7 */ bne $s1, $s5, .L80019F64
|
||||
/* 01AB88 80019F88 A614FFFE */ sh $s4, -2($s0)
|
||||
/* 01AB8C 80019F8C 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 01AB90 80019F90 D7B40010 */ ldc1 $f20, 0x10($sp)
|
||||
/* 01AB94 80019F94 8FB0001C */ lw $s0, 0x1c($sp)
|
||||
/* 01AB98 80019F98 8FB10020 */ lw $s1, 0x20($sp)
|
||||
/* 01AB9C 80019F9C 8FB20024 */ lw $s2, 0x24($sp)
|
||||
/* 01ABA0 80019FA0 8FB30028 */ lw $s3, 0x28($sp)
|
||||
/* 01ABA4 80019FA4 8FB4002C */ lw $s4, 0x2c($sp)
|
||||
/* 01ABA8 80019FA8 8FB50030 */ lw $s5, 0x30($sp)
|
||||
/* 01ABAC 80019FAC 03E00008 */ jr $ra
|
||||
/* 01ABB0 80019FB0 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
@@ -1,77 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel jpt_800ED36C
|
||||
.word L8001A25C, L8001A274, L8001A28C
|
||||
.word L8001A2A4, L8001A2BC, L8001A2D4
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_8001A220
|
||||
/* 01AE20 8001A220 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 01AE24 8001A224 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 01AE28 8001A228 AFA40018 */ sw $a0, 0x18($sp)
|
||||
/* 01AE2C 8001A22C 24040006 */ li $a0, 6
|
||||
/* 01AE30 8001A230 0C0ADF8D */ jal random_int
|
||||
/* 01AE34 8001A234 AFA5001C */ sw $a1, 0x1c($sp)
|
||||
/* 01AE38 8001A238 2C410006 */ sltiu $at, $v0, 6
|
||||
/* 01AE3C 8001A23C 1020002B */ beqz $at, .L8001A2EC
|
||||
/* 01AE40 8001A240 8FA5001C */ lw $a1, 0x1c($sp)
|
||||
/* 01AE44 8001A244 00027080 */ sll $t6, $v0, 2
|
||||
/* 01AE48 8001A248 3C01800F */ lui $at, %hi(jpt_800ED36C) # 0x800f
|
||||
/* 01AE4C 8001A24C 002E0821 */ addu $at, $at, $t6
|
||||
/* 01AE50 8001A250 8C2ED36C */ lw $t6, %lo(jpt_800ED36C)($at) # -0x2c94($at)
|
||||
/* 01AE54 8001A254 01C00008 */ jr $t6
|
||||
/* 01AE58 8001A258 00000000 */ nop
|
||||
glabel L8001A25C
|
||||
/* 01AE5C 8001A25C 0005C040 */ sll $t8, $a1, 1
|
||||
/* 01AE60 8001A260 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
|
||||
/* 01AE64 8001A264 00380821 */ addu $at, $at, $t8
|
||||
/* 01AE68 8001A268 240F0004 */ li $t7, 4
|
||||
/* 01AE6C 8001A26C 10000024 */ b .L8001A300
|
||||
/* 01AE70 8001A270 A42F4680 */ sh $t7, %lo(D_80164680)($at) # 0x4680($at)
|
||||
glabel L8001A274
|
||||
/* 01AE74 8001A274 00054040 */ sll $t0, $a1, 1
|
||||
/* 01AE78 8001A278 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
|
||||
/* 01AE7C 8001A27C 00280821 */ addu $at, $at, $t0
|
||||
/* 01AE80 8001A280 24190005 */ li $t9, 5
|
||||
/* 01AE84 8001A284 1000001E */ b .L8001A300
|
||||
/* 01AE88 8001A288 A4394680 */ sh $t9, %lo(D_80164680)($at) # 0x4680($at)
|
||||
glabel L8001A28C
|
||||
/* 01AE8C 8001A28C 00055040 */ sll $t2, $a1, 1
|
||||
/* 01AE90 8001A290 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
|
||||
/* 01AE94 8001A294 002A0821 */ addu $at, $at, $t2
|
||||
/* 01AE98 8001A298 24090006 */ li $t1, 6
|
||||
/* 01AE9C 8001A29C 10000018 */ b .L8001A300
|
||||
/* 01AEA0 8001A2A0 A4294680 */ sh $t1, %lo(D_80164680)($at) # 0x4680($at)
|
||||
glabel L8001A2A4
|
||||
/* 01AEA4 8001A2A4 00056040 */ sll $t4, $a1, 1
|
||||
/* 01AEA8 8001A2A8 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
|
||||
/* 01AEAC 8001A2AC 002C0821 */ addu $at, $at, $t4
|
||||
/* 01AEB0 8001A2B0 240B0007 */ li $t3, 7
|
||||
/* 01AEB4 8001A2B4 10000012 */ b .L8001A300
|
||||
/* 01AEB8 8001A2B8 A42B4680 */ sh $t3, %lo(D_80164680)($at) # 0x4680($at)
|
||||
glabel L8001A2BC
|
||||
/* 01AEBC 8001A2BC 00057040 */ sll $t6, $a1, 1
|
||||
/* 01AEC0 8001A2C0 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
|
||||
/* 01AEC4 8001A2C4 002E0821 */ addu $at, $at, $t6
|
||||
/* 01AEC8 8001A2C8 240D0008 */ li $t5, 8
|
||||
/* 01AECC 8001A2CC 1000000C */ b .L8001A300
|
||||
/* 01AED0 8001A2D0 A42D4680 */ sh $t5, %lo(D_80164680)($at) # 0x4680($at)
|
||||
glabel L8001A2D4
|
||||
/* 01AED4 8001A2D4 0005C040 */ sll $t8, $a1, 1
|
||||
/* 01AED8 8001A2D8 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
|
||||
/* 01AEDC 8001A2DC 00380821 */ addu $at, $at, $t8
|
||||
/* 01AEE0 8001A2E0 240F0001 */ li $t7, 1
|
||||
/* 01AEE4 8001A2E4 10000006 */ b .L8001A300
|
||||
/* 01AEE8 8001A2E8 A42F4680 */ sh $t7, %lo(D_80164680)($at) # 0x4680($at)
|
||||
.L8001A2EC:
|
||||
/* 01AEEC 8001A2EC 00054040 */ sll $t0, $a1, 1
|
||||
/* 01AEF0 8001A2F0 3C018016 */ lui $at, %hi(D_80164680) # 0x8016
|
||||
/* 01AEF4 8001A2F4 00280821 */ addu $at, $at, $t0
|
||||
/* 01AEF8 8001A2F8 24190008 */ li $t9, 8
|
||||
/* 01AEFC 8001A2FC A4394680 */ sh $t9, %lo(D_80164680)($at) # 0x4680($at)
|
||||
.L8001A300:
|
||||
/* 01AF00 8001A300 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 01AF04 8001A304 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
/* 01AF08 8001A308 03E00008 */ jr $ra
|
||||
/* 01AF0C 8001A30C 00000000 */ nop
|
||||
@@ -1,47 +0,0 @@
|
||||
.section .late_rodata
|
||||
|
||||
glabel jpt_800ED3C8
|
||||
.word L8001ABB0, L8001ABCC, L8001ABCC, L8001ABCC
|
||||
.word L8001ABCC, L8001ABCC, L8001ABCC, L8001ABB8
|
||||
.word L8001ABA0, L8001ABC0, L8001ABA8, L8001ABC8
|
||||
.word L8001ABCC, L8001ABCC, L8001ABCC
|
||||
|
||||
.section .text
|
||||
|
||||
glabel func_8001AB74
|
||||
/* 01B774 8001AB74 24CEFFFF */ addiu $t6, $a2, -1
|
||||
/* 01B778 8001AB78 2DC1000F */ sltiu $at, $t6, 0xf
|
||||
/* 01B77C 8001AB7C AFA40000 */ sw $a0, ($sp)
|
||||
/* 01B780 8001AB80 10200012 */ beqz $at, .L8001ABCC
|
||||
/* 01B784 8001AB84 2402FFFF */ li $v0, -1
|
||||
/* 01B788 8001AB88 000E7080 */ sll $t6, $t6, 2
|
||||
/* 01B78C 8001AB8C 3C01800F */ lui $at, %hi(jpt_800ED3C8) # 0x800f
|
||||
/* 01B790 8001AB90 002E0821 */ addu $at, $at, $t6
|
||||
/* 01B794 8001AB94 8C2ED3C8 */ lw $t6, %lo(jpt_800ED3C8)($at) # -0x2c38($at)
|
||||
/* 01B798 8001AB98 01C00008 */ jr $t6
|
||||
/* 01B79C 8001AB9C 00000000 */ nop
|
||||
glabel L8001ABA0
|
||||
/* 01B7A0 8001ABA0 1000000A */ b .L8001ABCC
|
||||
/* 01B7A4 8001ABA4 2402000D */ li $v0, 13
|
||||
glabel L8001ABA8
|
||||
/* 01B7A8 8001ABA8 10000008 */ b .L8001ABCC
|
||||
/* 01B7AC 8001ABAC 2402001B */ li $v0, 27
|
||||
glabel L8001ABB0
|
||||
/* 01B7B0 8001ABB0 10000006 */ b .L8001ABCC
|
||||
/* 01B7B4 8001ABB4 24020001 */ li $v0, 1
|
||||
glabel L8001ABB8
|
||||
/* 01B7B8 8001ABB8 10000004 */ b .L8001ABCC
|
||||
/* 01B7BC 8001ABBC 24020016 */ li $v0, 22
|
||||
glabel L8001ABC0
|
||||
/* 01B7C0 8001ABC0 10000002 */ b .L8001ABCC
|
||||
/* 01B7C4 8001ABC4 24020019 */ li $v0, 25
|
||||
glabel L8001ABC8
|
||||
/* 01B7C8 8001ABC8 2402001D */ li $v0, 29
|
||||
.L8001ABCC:
|
||||
glabel L8001ABCC
|
||||
/* 01B7CC 8001ABCC 04400002 */ bltz $v0, .L8001ABD8
|
||||
/* 01B7D0 8001ABD0 00000000 */ nop
|
||||
/* 01B7D4 8001ABD4 A4A20000 */ sh $v0, ($a1)
|
||||
.L8001ABD8:
|
||||
/* 01B7D8 8001ABD8 03E00008 */ jr $ra
|
||||
/* 01B7DC 8001ABDC 00000000 */ nop
|
||||
@@ -1,122 +0,0 @@
|
||||
glabel func_80075838
|
||||
/* 076438 80075838 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 07643C 8007583C 3C028016 */ lui $v0, %hi(D_8016578C) # $v0, 0x8016
|
||||
/* 076440 80075840 8442578C */ lh $v0, %lo(D_8016578C)($v0)
|
||||
/* 076444 80075844 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 076448 80075848 AFB60030 */ sw $s6, 0x30($sp)
|
||||
/* 07644C 8007584C AFB5002C */ sw $s5, 0x2c($sp)
|
||||
/* 076450 80075850 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 076454 80075854 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* 076458 80075858 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 07645C 8007585C AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 076460 80075860 10400004 */ beqz $v0, .L80075874
|
||||
/* 076464 80075864 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 076468 80075868 244EFFFF */ addiu $t6, $v0, -1
|
||||
/* 07646C 8007586C 3C018016 */ lui $at, %hi(D_8016578C) # $at, 0x8016
|
||||
/* 076470 80075870 A42E578C */ sh $t6, %lo(D_8016578C)($at)
|
||||
.L80075874:
|
||||
/* 076474 80075874 3C028016 */ lui $v0, %hi(D_80165790) # $v0, 0x8016
|
||||
/* 076478 80075878 84425790 */ lh $v0, %lo(D_80165790)($v0)
|
||||
/* 07647C 8007587C 3C018016 */ lui $at, %hi(D_80165790) # $at, 0x8016
|
||||
/* 076480 80075880 3C188016 */ lui $t8, %hi(D_801636A0) # $t8, 0x8016
|
||||
/* 076484 80075884 10400002 */ beqz $v0, .L80075890
|
||||
/* 076488 80075888 244FFFFF */ addiu $t7, $v0, -1
|
||||
/* 07648C 8007588C A42F5790 */ sh $t7, %lo(D_80165790)($at)
|
||||
.L80075890:
|
||||
/* 076490 80075890 8F1836A0 */ lw $t8, %lo(D_801636A0)($t8)
|
||||
/* 076494 80075894 3C198016 */ lui $t9, %hi(D_8016578C) # $t9, 0x8016
|
||||
/* 076498 80075898 00009025 */ move $s2, $zero
|
||||
/* 07649C 8007589C 17000003 */ bnez $t8, .L800758AC
|
||||
/* 0764A0 800758A0 3C118019 */ lui $s1, %hi(D_8018C3F0) # $s1, 0x8019
|
||||
/* 0764A4 800758A4 8739578C */ lh $t9, %lo(D_8016578C)($t9)
|
||||
/* 0764A8 800758A8 1320001F */ beqz $t9, .L80075928
|
||||
.L800758AC:
|
||||
/* 0764AC 800758AC 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016
|
||||
/* 0764B0 800758B0 3C138019 */ lui $s3, %hi(D_8018C5F0) # $s3, 0x8019
|
||||
/* 0764B4 800758B4 2673C5F0 */ addiu $s3, %lo(D_8018C5F0) # addiu $s3, $s3, -0x3a10
|
||||
/* 0764B8 800758B8 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18
|
||||
/* 0764BC 800758BC 2631C3F0 */ addiu $s1, %lo(D_8018C3F0) # addiu $s1, $s1, -0x3c10
|
||||
/* 0764C0 800758C0 241600E0 */ li $s6, 224
|
||||
/* 0764C4 800758C4 2414FFFF */ li $s4, -1
|
||||
/* 0764C8 800758C8 8E240000 */ lw $a0, ($s1)
|
||||
.L800758CC:
|
||||
/* 0764CC 800758CC 50940010 */ beql $a0, $s4, .L80075910
|
||||
/* 0764D0 800758D0 26310004 */ addiu $s1, $s1, 4
|
||||
/* 0764D4 800758D4 00960019 */ multu $a0, $s6
|
||||
/* 0764D8 800758D8 00004012 */ mflo $t0
|
||||
/* 0764DC 800758DC 02A88021 */ addu $s0, $s5, $t0
|
||||
/* 0764E0 800758E0 860900A6 */ lh $t1, 0xa6($s0)
|
||||
/* 0764E4 800758E4 5120000A */ beql $t1, $zero, .L80075910
|
||||
/* 0764E8 800758E8 26310004 */ addiu $s1, $s1, 4
|
||||
/* 0764EC 800758EC 0C01D5C5 */ jal func_80075714
|
||||
/* 0764F0 800758F0 00000000 */ nop
|
||||
/* 0764F4 800758F4 860A00A6 */ lh $t2, 0xa6($s0)
|
||||
/* 0764F8 800758F8 55400004 */ bnel $t2, $zero, .L8007590C
|
||||
/* 0764FC 800758FC 26520001 */ addiu $s2, $s2, 1
|
||||
/* 076500 80075900 0C01C840 */ jal func_80072100
|
||||
/* 076504 80075904 02202025 */ move $a0, $s1
|
||||
/* 076508 80075908 26520001 */ addiu $s2, $s2, 1
|
||||
.L8007590C:
|
||||
/* 07650C 8007590C 26310004 */ addiu $s1, $s1, 4
|
||||
.L80075910:
|
||||
/* 076510 80075910 5633FFEE */ bnel $s1, $s3, .L800758CC
|
||||
/* 076514 80075914 8E240000 */ lw $a0, ($s1)
|
||||
/* 076518 80075918 12400003 */ beqz $s2, .L80075928
|
||||
/* 07651C 8007591C 240B0064 */ li $t3, 100
|
||||
/* 076520 80075920 3C018016 */ lui $at, %hi(D_8016578C) # $at, 0x8016
|
||||
/* 076524 80075924 A42B578C */ sh $t3, %lo(D_8016578C)($at)
|
||||
.L80075928:
|
||||
/* 076528 80075928 3C0C8016 */ lui $t4, %hi(D_801637AC) # $t4, 0x8016
|
||||
/* 07652C 8007592C 8D8C37AC */ lw $t4, %lo(D_801637AC)($t4)
|
||||
/* 076530 80075930 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016
|
||||
/* 076534 80075934 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18
|
||||
/* 076538 80075938 2414FFFF */ li $s4, -1
|
||||
/* 07653C 8007593C 15800004 */ bnez $t4, .L80075950
|
||||
/* 076540 80075940 241600E0 */ li $s6, 224
|
||||
/* 076544 80075944 3C0D8016 */ lui $t5, %hi(D_80165790) # $t5, 0x8016
|
||||
/* 076548 80075948 85AD5790 */ lh $t5, %lo(D_80165790)($t5)
|
||||
/* 07654C 8007594C 11A0001D */ beqz $t5, .L800759C4
|
||||
.L80075950:
|
||||
/* 076550 80075950 3C118019 */ lui $s1, %hi(D_8018C630) # $s1, 0x8019
|
||||
/* 076554 80075954 3C138019 */ lui $s3, %hi(D_8018C830) # $s3, 0x8019
|
||||
/* 076558 80075958 00009025 */ move $s2, $zero
|
||||
/* 07655C 8007595C 2673C830 */ addiu $s3, %lo(D_8018C830) # addiu $s3, $s3, -0x37d0
|
||||
/* 076560 80075960 2631C630 */ addiu $s1, %lo(D_8018C630) # addiu $s1, $s1, -0x39d0
|
||||
/* 076564 80075964 8E240000 */ lw $a0, ($s1)
|
||||
.L80075968:
|
||||
/* 076568 80075968 50940010 */ beql $a0, $s4, .L800759AC
|
||||
/* 07656C 8007596C 26310004 */ addiu $s1, $s1, 4
|
||||
/* 076570 80075970 00960019 */ multu $a0, $s6
|
||||
/* 076574 80075974 00007012 */ mflo $t6
|
||||
/* 076578 80075978 02AE8021 */ addu $s0, $s5, $t6
|
||||
/* 07657C 8007597C 860F00A6 */ lh $t7, 0xa6($s0)
|
||||
/* 076580 80075980 51E0000A */ beql $t7, $zero, .L800759AC
|
||||
/* 076584 80075984 26310004 */ addiu $s1, $s1, 4
|
||||
/* 076588 80075988 0C01D5C5 */ jal func_80075714
|
||||
/* 07658C 8007598C 00000000 */ nop
|
||||
/* 076590 80075990 861800A6 */ lh $t8, 0xa6($s0)
|
||||
/* 076594 80075994 57000004 */ bnel $t8, $zero, .L800759A8
|
||||
/* 076598 80075998 26520001 */ addiu $s2, $s2, 1
|
||||
/* 07659C 8007599C 0C01C840 */ jal func_80072100
|
||||
/* 0765A0 800759A0 02202025 */ move $a0, $s1
|
||||
/* 0765A4 800759A4 26520001 */ addiu $s2, $s2, 1
|
||||
.L800759A8:
|
||||
/* 0765A8 800759A8 26310004 */ addiu $s1, $s1, 4
|
||||
.L800759AC:
|
||||
/* 0765AC 800759AC 5633FFEE */ bnel $s1, $s3, .L80075968
|
||||
/* 0765B0 800759B0 8E240000 */ lw $a0, ($s1)
|
||||
/* 0765B4 800759B4 12400003 */ beqz $s2, .L800759C4
|
||||
/* 0765B8 800759B8 24190064 */ li $t9, 100
|
||||
/* 0765BC 800759BC 3C018016 */ lui $at, %hi(D_80165790) # $at, 0x8016
|
||||
/* 0765C0 800759C0 A4395790 */ sh $t9, %lo(D_80165790)($at)
|
||||
.L800759C4:
|
||||
/* 0765C4 800759C4 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 0765C8 800759C8 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 0765CC 800759CC 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 0765D0 800759D0 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 0765D4 800759D4 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* 0765D8 800759D8 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* 0765DC 800759DC 8FB5002C */ lw $s5, 0x2c($sp)
|
||||
/* 0765E0 800759E0 8FB60030 */ lw $s6, 0x30($sp)
|
||||
/* 0765E4 800759E4 03E00008 */ jr $ra
|
||||
/* 0765E8 800759E8 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
@@ -1,122 +0,0 @@
|
||||
glabel func_80075CA8
|
||||
/* 0768A8 80075CA8 27BDFFC8 */ addiu $sp, $sp, -0x38
|
||||
/* 0768AC 80075CAC 3C028016 */ lui $v0, %hi(D_8016578C) # $v0, 0x8016
|
||||
/* 0768B0 80075CB0 8442578C */ lh $v0, %lo(D_8016578C)($v0)
|
||||
/* 0768B4 80075CB4 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 0768B8 80075CB8 AFB60030 */ sw $s6, 0x30($sp)
|
||||
/* 0768BC 80075CBC AFB5002C */ sw $s5, 0x2c($sp)
|
||||
/* 0768C0 80075CC0 AFB40028 */ sw $s4, 0x28($sp)
|
||||
/* 0768C4 80075CC4 AFB30024 */ sw $s3, 0x24($sp)
|
||||
/* 0768C8 80075CC8 AFB20020 */ sw $s2, 0x20($sp)
|
||||
/* 0768CC 80075CCC AFB1001C */ sw $s1, 0x1c($sp)
|
||||
/* 0768D0 80075CD0 10400004 */ beqz $v0, .L80075CE4
|
||||
/* 0768D4 80075CD4 AFB00018 */ sw $s0, 0x18($sp)
|
||||
/* 0768D8 80075CD8 244EFFFF */ addiu $t6, $v0, -1
|
||||
/* 0768DC 80075CDC 3C018016 */ lui $at, %hi(D_8016578C) # $at, 0x8016
|
||||
/* 0768E0 80075CE0 A42E578C */ sh $t6, %lo(D_8016578C)($at)
|
||||
.L80075CE4:
|
||||
/* 0768E4 80075CE4 3C028016 */ lui $v0, %hi(D_80165790) # $v0, 0x8016
|
||||
/* 0768E8 80075CE8 84425790 */ lh $v0, %lo(D_80165790)($v0)
|
||||
/* 0768EC 80075CEC 3C018016 */ lui $at, %hi(D_80165790) # $at, 0x8016
|
||||
/* 0768F0 80075CF0 3C188016 */ lui $t8, %hi(D_801637E8) # $t8, 0x8016
|
||||
/* 0768F4 80075CF4 10400002 */ beqz $v0, .L80075D00
|
||||
/* 0768F8 80075CF8 244FFFFF */ addiu $t7, $v0, -1
|
||||
/* 0768FC 80075CFC A42F5790 */ sh $t7, %lo(D_80165790)($at)
|
||||
.L80075D00:
|
||||
/* 076900 80075D00 8F1837E8 */ lw $t8, %lo(D_801637E8)($t8)
|
||||
/* 076904 80075D04 3C198016 */ lui $t9, %hi(D_8016578C) # $t9, 0x8016
|
||||
/* 076908 80075D08 00009025 */ move $s2, $zero
|
||||
/* 07690C 80075D0C 17000003 */ bnez $t8, .L80075D1C
|
||||
/* 076910 80075D10 3C118019 */ lui $s1, %hi(D_8018C3F0) # $s1, 0x8019
|
||||
/* 076914 80075D14 8739578C */ lh $t9, %lo(D_8016578C)($t9)
|
||||
/* 076918 80075D18 1320001F */ beqz $t9, .L80075D98
|
||||
.L80075D1C:
|
||||
/* 07691C 80075D1C 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016
|
||||
/* 076920 80075D20 3C138019 */ lui $s3, %hi(D_8018C5F0) # $s3, 0x8019
|
||||
/* 076924 80075D24 2673C5F0 */ addiu $s3, %lo(D_8018C5F0) # addiu $s3, $s3, -0x3a10
|
||||
/* 076928 80075D28 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18
|
||||
/* 07692C 80075D2C 2631C3F0 */ addiu $s1, %lo(D_8018C3F0) # addiu $s1, $s1, -0x3c10
|
||||
/* 076930 80075D30 241600E0 */ li $s6, 224
|
||||
/* 076934 80075D34 2414FFFF */ li $s4, -1
|
||||
/* 076938 80075D38 8E240000 */ lw $a0, ($s1)
|
||||
.L80075D3C:
|
||||
/* 07693C 80075D3C 50940010 */ beql $a0, $s4, .L80075D80
|
||||
/* 076940 80075D40 26310004 */ addiu $s1, $s1, 4
|
||||
/* 076944 80075D44 00960019 */ multu $a0, $s6
|
||||
/* 076948 80075D48 00004012 */ mflo $t0
|
||||
/* 07694C 80075D4C 02A88021 */ addu $s0, $s5, $t0
|
||||
/* 076950 80075D50 860900A6 */ lh $t1, 0xa6($s0)
|
||||
/* 076954 80075D54 5120000A */ beql $t1, $zero, .L80075D80
|
||||
/* 076958 80075D58 26310004 */ addiu $s1, $s1, 4
|
||||
/* 07695C 80075D5C 0C01D6E1 */ jal func_80075B84
|
||||
/* 076960 80075D60 00000000 */ nop
|
||||
/* 076964 80075D64 860A00A6 */ lh $t2, 0xa6($s0)
|
||||
/* 076968 80075D68 55400004 */ bnel $t2, $zero, .L80075D7C
|
||||
/* 07696C 80075D6C 26520001 */ addiu $s2, $s2, 1
|
||||
/* 076970 80075D70 0C01C840 */ jal func_80072100
|
||||
/* 076974 80075D74 02202025 */ move $a0, $s1
|
||||
/* 076978 80075D78 26520001 */ addiu $s2, $s2, 1
|
||||
.L80075D7C:
|
||||
/* 07697C 80075D7C 26310004 */ addiu $s1, $s1, 4
|
||||
.L80075D80:
|
||||
/* 076980 80075D80 5633FFEE */ bnel $s1, $s3, .L80075D3C
|
||||
/* 076984 80075D84 8E240000 */ lw $a0, ($s1)
|
||||
/* 076988 80075D88 12400003 */ beqz $s2, .L80075D98
|
||||
/* 07698C 80075D8C 240B0064 */ li $t3, 100
|
||||
/* 076990 80075D90 3C018016 */ lui $at, %hi(D_8016578C) # $at, 0x8016
|
||||
/* 076994 80075D94 A42B578C */ sh $t3, %lo(D_8016578C)($at)
|
||||
.L80075D98:
|
||||
/* 076998 80075D98 3C0C8016 */ lui $t4, %hi(D_80163814) # $t4, 0x8016
|
||||
/* 07699C 80075D9C 8D8C3814 */ lw $t4, %lo(D_80163814)($t4)
|
||||
/* 0769A0 80075DA0 3C158016 */ lui $s5, %hi(D_80165C18) # $s5, 0x8016
|
||||
/* 0769A4 80075DA4 26B55C18 */ addiu $s5, %lo(D_80165C18) # addiu $s5, $s5, 0x5c18
|
||||
/* 0769A8 80075DA8 2414FFFF */ li $s4, -1
|
||||
/* 0769AC 80075DAC 15800004 */ bnez $t4, .L80075DC0
|
||||
/* 0769B0 80075DB0 241600E0 */ li $s6, 224
|
||||
/* 0769B4 80075DB4 3C0D8016 */ lui $t5, %hi(D_80165790) # $t5, 0x8016
|
||||
/* 0769B8 80075DB8 85AD5790 */ lh $t5, %lo(D_80165790)($t5)
|
||||
/* 0769BC 80075DBC 11A0001D */ beqz $t5, .L80075E34
|
||||
.L80075DC0:
|
||||
/* 0769C0 80075DC0 3C118019 */ lui $s1, %hi(D_8018C630) # $s1, 0x8019
|
||||
/* 0769C4 80075DC4 3C138019 */ lui $s3, %hi(D_8018C830) # $s3, 0x8019
|
||||
/* 0769C8 80075DC8 00009025 */ move $s2, $zero
|
||||
/* 0769CC 80075DCC 2673C830 */ addiu $s3, %lo(D_8018C830) # addiu $s3, $s3, -0x37d0
|
||||
/* 0769D0 80075DD0 2631C630 */ addiu $s1, %lo(D_8018C630) # addiu $s1, $s1, -0x39d0
|
||||
/* 0769D4 80075DD4 8E240000 */ lw $a0, ($s1)
|
||||
.L80075DD8:
|
||||
/* 0769D8 80075DD8 50940010 */ beql $a0, $s4, .L80075E1C
|
||||
/* 0769DC 80075DDC 26310004 */ addiu $s1, $s1, 4
|
||||
/* 0769E0 80075DE0 00960019 */ multu $a0, $s6
|
||||
/* 0769E4 80075DE4 00007012 */ mflo $t6
|
||||
/* 0769E8 80075DE8 02AE8021 */ addu $s0, $s5, $t6
|
||||
/* 0769EC 80075DEC 860F00A6 */ lh $t7, 0xa6($s0)
|
||||
/* 0769F0 80075DF0 51E0000A */ beql $t7, $zero, .L80075E1C
|
||||
/* 0769F4 80075DF4 26310004 */ addiu $s1, $s1, 4
|
||||
/* 0769F8 80075DF8 0C01D6E1 */ jal func_80075B84
|
||||
/* 0769FC 80075DFC 00000000 */ nop
|
||||
/* 076A00 80075E00 861800A6 */ lh $t8, 0xa6($s0)
|
||||
/* 076A04 80075E04 57000004 */ bnel $t8, $zero, .L80075E18
|
||||
/* 076A08 80075E08 26520001 */ addiu $s2, $s2, 1
|
||||
/* 076A0C 80075E0C 0C01C840 */ jal func_80072100
|
||||
/* 076A10 80075E10 02202025 */ move $a0, $s1
|
||||
/* 076A14 80075E14 26520001 */ addiu $s2, $s2, 1
|
||||
.L80075E18:
|
||||
/* 076A18 80075E18 26310004 */ addiu $s1, $s1, 4
|
||||
.L80075E1C:
|
||||
/* 076A1C 80075E1C 5633FFEE */ bnel $s1, $s3, .L80075DD8
|
||||
/* 076A20 80075E20 8E240000 */ lw $a0, ($s1)
|
||||
/* 076A24 80075E24 12400003 */ beqz $s2, .L80075E34
|
||||
/* 076A28 80075E28 24190064 */ li $t9, 100
|
||||
/* 076A2C 80075E2C 3C018016 */ lui $at, %hi(D_80165790) # $at, 0x8016
|
||||
/* 076A30 80075E30 A4395790 */ sh $t9, %lo(D_80165790)($at)
|
||||
.L80075E34:
|
||||
/* 076A34 80075E34 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 076A38 80075E38 8FB00018 */ lw $s0, 0x18($sp)
|
||||
/* 076A3C 80075E3C 8FB1001C */ lw $s1, 0x1c($sp)
|
||||
/* 076A40 80075E40 8FB20020 */ lw $s2, 0x20($sp)
|
||||
/* 076A44 80075E44 8FB30024 */ lw $s3, 0x24($sp)
|
||||
/* 076A48 80075E48 8FB40028 */ lw $s4, 0x28($sp)
|
||||
/* 076A4C 80075E4C 8FB5002C */ lw $s5, 0x2c($sp)
|
||||
/* 076A50 80075E50 8FB60030 */ lw $s6, 0x30($sp)
|
||||
/* 076A54 80075E54 03E00008 */ jr $ra
|
||||
/* 076A58 80075E58 27BD0038 */ addiu $sp, $sp, 0x38
|
||||
@@ -1,95 +0,0 @@
|
||||
glabel func_800541BC
|
||||
/* 054DBC 800541BC 3C078015 */ lui $a3, %hi(gDisplayListHead) # $a3, 0x8015
|
||||
/* 054DC0 800541C0 00047080 */ sll $t6, $a0, 2
|
||||
/* 054DC4 800541C4 24E70298 */ addiu $a3, %lo(gDisplayListHead) # addiu $a3, $a3, 0x298
|
||||
/* 054DC8 800541C8 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* 054DCC 800541CC 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 054DD0 800541D0 3C0F800E */ lui $t7, %hi(camera1) # $t7, 0x800e
|
||||
/* 054DD4 800541D4 8DEFDB40 */ lw $t7, %lo(camera1)($t7)
|
||||
/* 054DD8 800541D8 8CE30000 */ lw $v1, ($a3)
|
||||
/* 054DDC 800541DC 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 054DE0 800541E0 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 054DE4 800541E4 AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 054DE8 800541E8 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 054DEC 800541EC 00809025 */ move $s2, $a0
|
||||
/* 054DF0 800541F0 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 054DF4 800541F4 3C090D00 */ lui $t1, %hi(D_0D007AE0) # $t1, 0xd00
|
||||
/* 054DF8 800541F8 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 054DFC 800541FC 24790008 */ addiu $t9, $v1, 8
|
||||
/* 054E00 80054200 AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 054E04 80054204 AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 054E08 80054208 AFB8003C */ sw $t8, 0x3c($sp)
|
||||
/* 054E0C 8005420C ACF90000 */ sw $t9, ($a3)
|
||||
/* 054E10 80054210 25297AE0 */ addiu $t1, %lo(D_0D007AE0) # addiu $t1, $t1, 0x7ae0
|
||||
/* 054E14 80054214 3C080600 */ lui $t0, 0x600
|
||||
/* 054E18 80054218 3C040D03 */ lui $a0, %hi(D_0D029458) # $a0, 0xd03
|
||||
/* 054E1C 8005421C 24849458 */ addiu $a0, %lo(D_0D029458) # addiu $a0, $a0, -0x6ba8
|
||||
/* 054E20 80054220 24050020 */ li $a1, 32
|
||||
/* 054E24 80054224 24060020 */ li $a2, 32
|
||||
/* 054E28 80054228 AC680000 */ sw $t0, ($v1)
|
||||
/* 054E2C 8005422C 0C0111DF */ jal func_8004477C
|
||||
/* 054E30 80054230 AC690004 */ sw $t1, 4($v1)
|
||||
/* 054E34 80054234 240A00FF */ li $t2, 255
|
||||
/* 054E38 80054238 240B00FF */ li $t3, 255
|
||||
/* 054E3C 8005423C 240C00FF */ li $t4, 255
|
||||
/* 054E40 80054240 AFAC0018 */ sw $t4, 0x18($sp)
|
||||
/* 054E44 80054244 AFAB0014 */ sw $t3, 0x14($sp)
|
||||
/* 054E48 80054248 AFAA0010 */ sw $t2, 0x10($sp)
|
||||
/* 054E4C 8005424C 240400FF */ li $a0, 255
|
||||
/* 054E50 80054250 240500FF */ li $a1, 255
|
||||
/* 054E54 80054254 240600FF */ li $a2, 255
|
||||
/* 054E58 80054258 0C012DCB */ jal func_8004B72C
|
||||
/* 054E5C 8005425C 240700FF */ li $a3, 255
|
||||
/* 054E60 80054260 3C028018 */ lui $v0, %hi(D_80183E80) # $v0, 0x8018
|
||||
/* 054E64 80054264 24423E80 */ addiu $v0, %lo(D_80183E80) # addiu $v0, $v0, 0x3e80
|
||||
/* 054E68 80054268 340D8000 */ li $t5, 32768
|
||||
/* 054E6C 8005426C A4400000 */ sh $zero, ($v0)
|
||||
/* 054E70 80054270 A44D0004 */ sh $t5, 4($v0)
|
||||
/* 054E74 80054274 3C0E8016 */ lui $t6, %hi(D_801636A0) # $t6, 0x8016
|
||||
/* 054E78 80054278 8DCE36A0 */ lw $t6, %lo(D_801636A0)($t6)
|
||||
/* 054E7C 8005427C 3C048016 */ lui $a0, %hi(D_801635A4) # $a0, 0x8016
|
||||
/* 054E80 80054280 248435A4 */ addiu $a0, %lo(D_801635A4) # addiu $a0, $a0, 0x35a4
|
||||
/* 054E84 80054284 11C0000E */ beqz $t6, .L800542C0
|
||||
/* 054E88 80054288 8FA5003C */ lw $a1, 0x3c($sp)
|
||||
/* 054E8C 8005428C 0C010660 */ jal func_80041980
|
||||
/* 054E90 80054290 24064000 */ li $a2, 16384
|
||||
/* 054E94 80054294 1040000A */ beqz $v0, .L800542C0
|
||||
/* 054E98 80054298 3C108019 */ lui $s0, %hi(D_8018C3F0) # $s0, 0x8019
|
||||
/* 054E9C 8005429C 3C118019 */ lui $s1, %hi(D_8018C5F0) # $s1, 0x8019
|
||||
/* 054EA0 800542A0 2631C5F0 */ addiu $s1, %lo(D_8018C5F0) # addiu $s1, $s1, -0x3a10
|
||||
/* 054EA4 800542A4 2610C3F0 */ addiu $s0, %lo(D_8018C3F0) # addiu $s0, $s0, -0x3c10
|
||||
/* 054EA8 800542A8 8E040000 */ lw $a0, ($s0)
|
||||
.L800542AC:
|
||||
/* 054EAC 800542AC 0C015033 */ jal func_800540CC
|
||||
/* 054EB0 800542B0 02402825 */ move $a1, $s2
|
||||
/* 054EB4 800542B4 26100004 */ addiu $s0, $s0, 4
|
||||
/* 054EB8 800542B8 5611FFFC */ bnel $s0, $s1, .L800542AC
|
||||
/* 054EBC 800542BC 8E040000 */ lw $a0, ($s0)
|
||||
.L800542C0:
|
||||
/* 054EC0 800542C0 3C0F8016 */ lui $t7, %hi(D_801637AC) # $t7, 0x8016
|
||||
/* 054EC4 800542C4 8DEF37AC */ lw $t7, %lo(D_801637AC)($t7)
|
||||
/* 054EC8 800542C8 3C048016 */ lui $a0, %hi(D_801636B0) # $a0, 0x8016
|
||||
/* 054ECC 800542CC 248436B0 */ addiu $a0, %lo(D_801636B0) # addiu $a0, $a0, 0x36b0
|
||||
/* 054ED0 800542D0 11E0000E */ beqz $t7, .L8005430C
|
||||
/* 054ED4 800542D4 8FA5003C */ lw $a1, 0x3c($sp)
|
||||
/* 054ED8 800542D8 0C010660 */ jal func_80041980
|
||||
/* 054EDC 800542DC 24064000 */ li $a2, 16384
|
||||
/* 054EE0 800542E0 1040000A */ beqz $v0, .L8005430C
|
||||
/* 054EE4 800542E4 3C108019 */ lui $s0, %hi(D_8018C630) # $s0, 0x8019
|
||||
/* 054EE8 800542E8 3C118019 */ lui $s1, %hi(D_8018C830) # $s1, 0x8019
|
||||
/* 054EEC 800542EC 2631C830 */ addiu $s1, %lo(D_8018C830) # addiu $s1, $s1, -0x37d0
|
||||
/* 054EF0 800542F0 2610C630 */ addiu $s0, %lo(D_8018C630) # addiu $s0, $s0, -0x39d0
|
||||
/* 054EF4 800542F4 8E040000 */ lw $a0, ($s0)
|
||||
.L800542F8:
|
||||
/* 054EF8 800542F8 0C015033 */ jal func_800540CC
|
||||
/* 054EFC 800542FC 02402825 */ move $a1, $s2
|
||||
/* 054F00 80054300 26100004 */ addiu $s0, $s0, 4
|
||||
/* 054F04 80054304 5611FFFC */ bnel $s0, $s1, .L800542F8
|
||||
/* 054F08 80054308 8E040000 */ lw $a0, ($s0)
|
||||
.L8005430C:
|
||||
/* 054F0C 8005430C 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 054F10 80054310 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 054F14 80054314 8FB1002C */ lw $s1, 0x2c($sp)
|
||||
/* 054F18 80054318 8FB20030 */ lw $s2, 0x30($sp)
|
||||
/* 054F1C 8005431C 03E00008 */ jr $ra
|
||||
/* 054F20 80054320 27BD0048 */ addiu $sp, $sp, 0x48
|
||||
@@ -1,95 +0,0 @@
|
||||
glabel func_80054414
|
||||
/* 055014 80054414 3C078015 */ lui $a3, %hi(gDisplayListHead) # $a3, 0x8015
|
||||
/* 055018 80054418 00047080 */ sll $t6, $a0, 2
|
||||
/* 05501C 8005441C 24E70298 */ addiu $a3, %lo(gDisplayListHead) # addiu $a3, $a3, 0x298
|
||||
/* 055020 80054420 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||||
/* 055024 80054424 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 055028 80054428 3C0F800E */ lui $t7, %hi(camera1) # $t7, 0x800e
|
||||
/* 05502C 8005442C 8DEFDB40 */ lw $t7, %lo(camera1)($t7)
|
||||
/* 055030 80054430 8CE30000 */ lw $v1, ($a3)
|
||||
/* 055034 80054434 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 055038 80054438 01C47023 */ subu $t6, $t6, $a0
|
||||
/* 05503C 8005443C AFB20030 */ sw $s2, 0x30($sp)
|
||||
/* 055040 80054440 000E70C0 */ sll $t6, $t6, 3
|
||||
/* 055044 80054444 00809025 */ move $s2, $a0
|
||||
/* 055048 80054448 AFBF0034 */ sw $ra, 0x34($sp)
|
||||
/* 05504C 8005444C 3C090D00 */ lui $t1, %hi(D_0D007AE0) # $t1, 0xd00
|
||||
/* 055050 80054450 01CFC021 */ addu $t8, $t6, $t7
|
||||
/* 055054 80054454 24790008 */ addiu $t9, $v1, 8
|
||||
/* 055058 80054458 AFB1002C */ sw $s1, 0x2c($sp)
|
||||
/* 05505C 8005445C AFB00028 */ sw $s0, 0x28($sp)
|
||||
/* 055060 80054460 AFB8003C */ sw $t8, 0x3c($sp)
|
||||
/* 055064 80054464 ACF90000 */ sw $t9, ($a3)
|
||||
/* 055068 80054468 25297AE0 */ addiu $t1, %lo(D_0D007AE0) # addiu $t1, $t1, 0x7ae0
|
||||
/* 05506C 8005446C 3C080600 */ lui $t0, 0x600
|
||||
/* 055070 80054470 3C040D03 */ lui $a0, %hi(D_0D029458) # $a0, 0xd03
|
||||
/* 055074 80054474 24849458 */ addiu $a0, %lo(D_0D029458) # addiu $a0, $a0, -0x6ba8
|
||||
/* 055078 80054478 24050020 */ li $a1, 32
|
||||
/* 05507C 8005447C 24060020 */ li $a2, 32
|
||||
/* 055080 80054480 AC680000 */ sw $t0, ($v1)
|
||||
/* 055084 80054484 0C0111DF */ jal func_8004477C
|
||||
/* 055088 80054488 AC690004 */ sw $t1, 4($v1)
|
||||
/* 05508C 8005448C 240A00FF */ li $t2, 255
|
||||
/* 055090 80054490 240B00FF */ li $t3, 255
|
||||
/* 055094 80054494 240C00FF */ li $t4, 255
|
||||
/* 055098 80054498 AFAC0018 */ sw $t4, 0x18($sp)
|
||||
/* 05509C 8005449C AFAB0014 */ sw $t3, 0x14($sp)
|
||||
/* 0550A0 800544A0 AFAA0010 */ sw $t2, 0x10($sp)
|
||||
/* 0550A4 800544A4 240400FF */ li $a0, 255
|
||||
/* 0550A8 800544A8 240500FF */ li $a1, 255
|
||||
/* 0550AC 800544AC 240600FF */ li $a2, 255
|
||||
/* 0550B0 800544B0 0C012DCB */ jal func_8004B72C
|
||||
/* 0550B4 800544B4 240700FF */ li $a3, 255
|
||||
/* 0550B8 800544B8 3C028018 */ lui $v0, %hi(D_80183E80) # $v0, 0x8018
|
||||
/* 0550BC 800544BC 24423E80 */ addiu $v0, %lo(D_80183E80) # addiu $v0, $v0, 0x3e80
|
||||
/* 0550C0 800544C0 340D8000 */ li $t5, 32768
|
||||
/* 0550C4 800544C4 A4400000 */ sh $zero, ($v0)
|
||||
/* 0550C8 800544C8 A44D0004 */ sh $t5, 4($v0)
|
||||
/* 0550CC 800544CC 3C0E8016 */ lui $t6, %hi(D_801637E8) # $t6, 0x8016
|
||||
/* 0550D0 800544D0 8DCE37E8 */ lw $t6, %lo(D_801637E8)($t6)
|
||||
/* 0550D4 800544D4 3C048016 */ lui $a0, %hi(D_801637C4) # $a0, 0x8016
|
||||
/* 0550D8 800544D8 248437C4 */ addiu $a0, %lo(D_801637C4) # addiu $a0, $a0, 0x37c4
|
||||
/* 0550DC 800544DC 11C0000E */ beqz $t6, .L80054518
|
||||
/* 0550E0 800544E0 8FA5003C */ lw $a1, 0x3c($sp)
|
||||
/* 0550E4 800544E4 0C010660 */ jal func_80041980
|
||||
/* 0550E8 800544E8 24064000 */ li $a2, 16384
|
||||
/* 0550EC 800544EC 1040000A */ beqz $v0, .L80054518
|
||||
/* 0550F0 800544F0 3C108019 */ lui $s0, %hi(D_8018C3F0) # $s0, 0x8019
|
||||
/* 0550F4 800544F4 3C118019 */ lui $s1, %hi(D_8018C5F0) # $s1, 0x8019
|
||||
/* 0550F8 800544F8 2631C5F0 */ addiu $s1, %lo(D_8018C5F0) # addiu $s1, $s1, -0x3a10
|
||||
/* 0550FC 800544FC 2610C3F0 */ addiu $s0, %lo(D_8018C3F0) # addiu $s0, $s0, -0x3c10
|
||||
/* 055100 80054500 8E040000 */ lw $a0, ($s0)
|
||||
.L80054504:
|
||||
/* 055104 80054504 0C0150C9 */ jal func_80054324
|
||||
/* 055108 80054508 02402825 */ move $a1, $s2
|
||||
/* 05510C 8005450C 26100004 */ addiu $s0, $s0, 4
|
||||
/* 055110 80054510 5611FFFC */ bnel $s0, $s1, .L80054504
|
||||
/* 055114 80054514 8E040000 */ lw $a0, ($s0)
|
||||
.L80054518:
|
||||
/* 055118 80054518 3C0F8016 */ lui $t7, %hi(D_80163814) # $t7, 0x8016
|
||||
/* 05511C 8005451C 8DEF3814 */ lw $t7, %lo(D_80163814)($t7)
|
||||
/* 055120 80054520 3C048016 */ lui $a0, %hi(D_801637F0) # $a0, 0x8016
|
||||
/* 055124 80054524 248437F0 */ addiu $a0, %lo(D_801637F0) # addiu $a0, $a0, 0x37f0
|
||||
/* 055128 80054528 11E0000E */ beqz $t7, .L80054564
|
||||
/* 05512C 8005452C 8FA5003C */ lw $a1, 0x3c($sp)
|
||||
/* 055130 80054530 0C010660 */ jal func_80041980
|
||||
/* 055134 80054534 24064000 */ li $a2, 16384
|
||||
/* 055138 80054538 1040000A */ beqz $v0, .L80054564
|
||||
/* 05513C 8005453C 3C108019 */ lui $s0, %hi(D_8018C630) # $s0, 0x8019
|
||||
/* 055140 80054540 3C118019 */ lui $s1, %hi(D_8018C830) # $s1, 0x8019
|
||||
/* 055144 80054544 2631C830 */ addiu $s1, %lo(D_8018C830) # addiu $s1, $s1, -0x37d0
|
||||
/* 055148 80054548 2610C630 */ addiu $s0, %lo(D_8018C630) # addiu $s0, $s0, -0x39d0
|
||||
/* 05514C 8005454C 8E040000 */ lw $a0, ($s0)
|
||||
.L80054550:
|
||||
/* 055150 80054550 0C0150C9 */ jal func_80054324
|
||||
/* 055154 80054554 02402825 */ move $a1, $s2
|
||||
/* 055158 80054558 26100004 */ addiu $s0, $s0, 4
|
||||
/* 05515C 8005455C 5611FFFC */ bnel $s0, $s1, .L80054550
|
||||
/* 055160 80054560 8E040000 */ lw $a0, ($s0)
|
||||
.L80054564:
|
||||
/* 055164 80054564 8FBF0034 */ lw $ra, 0x34($sp)
|
||||
/* 055168 80054568 8FB00028 */ lw $s0, 0x28($sp)
|
||||
/* 05516C 8005456C 8FB1002C */ lw $s1, 0x2c($sp)
|
||||
/* 055170 80054570 8FB20030 */ lw $s2, 0x30($sp)
|
||||
/* 055174 80054574 03E00008 */ jr $ra
|
||||
/* 055178 80054578 27BD0048 */ addiu $sp, $sp, 0x48
|
||||
+1
-1
@@ -18,8 +18,8 @@
|
||||
#include "include/macros.h"
|
||||
#include "include/objects.h"
|
||||
#include "include/save_data.h"
|
||||
#include "include/segment_symbols.h"
|
||||
#include "include/segments.h"
|
||||
#include "include/hardcoded_segments.h"
|
||||
#include "include/sounds.h"
|
||||
#include "include/trig_tables.h"
|
||||
#include "include/types.h"
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#ifndef HARDCODED_SEGMENTS_H
|
||||
#define HARDCODED_SEGMENTS_H
|
||||
|
||||
/**
|
||||
* Only used in the linker.
|
||||
**/
|
||||
|
||||
#define SEG_START 0x80000000
|
||||
#define SEG_MAIN 0x80000400
|
||||
|
||||
#ifdef AVOID_UB
|
||||
// addr need to be manually updated when game is shifted
|
||||
#define SEG_ENDING_SEQUENCES 0x80280000
|
||||
#define SEG_RACING 0x8028DF00
|
||||
#define SEG_802BA370 0x802BA370
|
||||
#else
|
||||
#define SEG_ENDING_SEQUENCES 0x80280000
|
||||
#define SEG_RACING 0x8028DF00
|
||||
#define SEG_FRAMEBUFFERS 0x802BA290
|
||||
#define SEG_802BA370 0x802BA370 // 0x802BA370
|
||||
#define SEG_AUDIO 0x803AF780
|
||||
#endif // AVOID_UB
|
||||
|
||||
|
||||
#endif /* HARDCODED_SEGMENTS_H */
|
||||
+3
-3
@@ -140,7 +140,7 @@ extern s32 D_80183F28[];
|
||||
extern s32 D_8018BFA8[];
|
||||
extern s32 D_8018C030[];
|
||||
|
||||
#define D_8018C1B0_SIZE 0x80
|
||||
#define D_8018C1B0_SIZE 128
|
||||
#define NUM_MOLES 0x1F
|
||||
#define NUM_SNOWFLAKES 0x32
|
||||
/**
|
||||
@@ -156,7 +156,7 @@ extern s32 D_80183E38;
|
||||
// Used for cycling through snowflakes in func_80078790
|
||||
extern s16 D_8018D174;
|
||||
|
||||
#define D_8018C3F0_SIZE 0x80
|
||||
#define D_8018C3F0_SIZE 128
|
||||
/**
|
||||
* List of object list indices used for:
|
||||
* Bats in Banshee's Boardwalk (but only 1 player mode?)
|
||||
@@ -167,7 +167,7 @@ extern s32 D_80183E4C;
|
||||
// Controls number of come object type placed into D_8018C3F0 on Frappe Snowland. So, maybe snowmen/snowflakes?
|
||||
extern s32 D_8018D3BC;
|
||||
|
||||
#define D_8018C630_SIZE 0x80
|
||||
#define D_8018C630_SIZE 128
|
||||
extern s32 D_8018C630[];
|
||||
// Next free spot in D_8018C630?
|
||||
extern s32 D_80183E5C;
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
#ifndef SEGMENT_SYMBOLS_H
|
||||
#define SEGMENT_SYMBOLS_H
|
||||
|
||||
extern u8 _mainSegNoloadEnd[];
|
||||
|
||||
extern u8 _endingSequencesSegmentStart[];
|
||||
extern u8 _endingSequencesSegmentRomStart[];
|
||||
extern u8 _endingSequencesSegmentRomEnd[];
|
||||
|
||||
extern u8 _racingSegmentStart[];
|
||||
extern u8 _racingSegmentRomStart[];
|
||||
extern u8 _racingSegmentRomEnd[];
|
||||
|
||||
#endif
|
||||
+44
-4
@@ -1,12 +1,52 @@
|
||||
#ifndef SEGMENTS_H
|
||||
#define SEGMENTS_H
|
||||
|
||||
extern u8 _mainSegNoloadEnd[];
|
||||
|
||||
extern u8 _endingSequencesSegmentStart[];
|
||||
extern u8 _endingSequencesSegmentRomStart[];
|
||||
extern u8 _endingSequencesSegmentRomEnd[];
|
||||
|
||||
extern u8 _racingSegmentStart[];
|
||||
extern u8 _racingSegmentRomStart[];
|
||||
extern u8 _racingSegmentRomEnd[];
|
||||
|
||||
extern u8 _data_802BA370SegmentStart[];
|
||||
|
||||
|
||||
/**
|
||||
* mk64 has three segments:
|
||||
* main 0x80000400
|
||||
* ending 0x80280000 size 0xDF00
|
||||
* race 0x8028DF00 size 0x2C470
|
||||
**/
|
||||
|
||||
|
||||
#define SEG_START 0x80000000
|
||||
#define SEG_MAIN 0x80000400
|
||||
#define SEG_ENDING_SEQUENCES 0x80280000
|
||||
#define SEG_RACING 0x8028DF00
|
||||
|
||||
|
||||
#define ENDING_SEQUENCE_SIZE 0xDF00
|
||||
#define RACING_SEQUENCE_SIZE 0x2C470
|
||||
|
||||
|
||||
#ifdef AVOID_UB
|
||||
#define MEMORY_POOL_END (&_mainSegNoloadEnd[0] + 0xAB630)
|
||||
#else
|
||||
#define MEMORY_POOL_END 0x80242F00
|
||||
#endif // AVOID_UB
|
||||
|
||||
#ifdef AVOID_UB
|
||||
#define SEG_ENDING_SEQUENCES &_endingSequencesSegmentStart
|
||||
#define SEG_RACING &_racingSegmentStart
|
||||
#define SEG_802BA370 &_data_802BA370SegmentStart
|
||||
#else
|
||||
#define SEG_ENDING_SEQUENCES 0x80280000
|
||||
#define SEG_RACING 0x8028DF00
|
||||
#define SEG_802BA370 0x802BA370 //0x802BA370
|
||||
#endif // AVOID_UB
|
||||
|
||||
#define SEG_FRAMEBUFFERS 0x802BA290
|
||||
#define SEG_802BA370 0x802BA370
|
||||
#define SEG_AUDIO 0x803AF780
|
||||
|
||||
#endif
|
||||
#endif /* SEGMENTS_H */
|
||||
|
||||
+6
-4
@@ -3,10 +3,12 @@
|
||||
|
||||
#include "common_structs.h"
|
||||
|
||||
#define NUM_1P_PASSENGER_CARS 5
|
||||
#define NUM_2P_PASSENGER_CARS 2
|
||||
#define NUM_PASSENGER_CAR_ENTRIES 5
|
||||
#define NUM_1P_PASSENGER_CARS 4
|
||||
#define NUM_2P_PASSENGER_CARS 1
|
||||
#define NUM_PASSENGER_CAR_ENTRIES 5 // Max 16
|
||||
#define NUM_TENDERS 1
|
||||
#define NUM_TRAINS 2
|
||||
#define LOCOMOTIVE_ONLY 0
|
||||
|
||||
#define NUM_PADDLE_WHEEL_BOATS 1
|
||||
|
||||
@@ -62,7 +64,7 @@ typedef struct {
|
||||
/* 0x02 */ // s16 compilerPadding;
|
||||
/* 0x04 */ Vec3f position;
|
||||
/* 0x10 */ Vec3f velocity;
|
||||
/* 0x1C */ s16 wayPointIndex;
|
||||
/* 0x1C */ u16 wayPointIndex;
|
||||
/* 0x1E */ s16 actorIndex;
|
||||
/* 0x20 */ f32 someMultiplier; //
|
||||
/* 0x24 */ f32 someMultiplierTheSequel; //
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
OUTPUT_ARCH (mips)
|
||||
|
||||
#include "include/segments.h"
|
||||
#include "include/hardcoded_segments.h"
|
||||
|
||||
#define BEGIN_SEG(name, addr) \
|
||||
_##name##SegmentStart = ADDR(.name); \
|
||||
@@ -37,7 +37,7 @@ SECTIONS
|
||||
BEGIN_SEG(main, SEG_MAIN) SUBALIGN(16)
|
||||
{
|
||||
BUILD_DIR/asm/entry.o(.text);
|
||||
BUILD_DIR/src/main.o(.text);
|
||||
BUILD_DIR/src/main.o(.text*);
|
||||
BUILD_DIR/src/code_800029B0.o(.text);
|
||||
BUILD_DIR/src/profiler.o(.text);
|
||||
BUILD_DIR/src/crash_screen.o(.text);
|
||||
@@ -76,9 +76,11 @@ SECTIONS
|
||||
BUILD_DIR/src/audio/external.o(.text);
|
||||
BUILD_DIR/src/audio/port_eu.o(.text);
|
||||
#if DEBUG
|
||||
BUILD_DIR/src/os/osCartRomInit.o(.text);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.text);
|
||||
BUILD_DIR/src/debug/debug.o(.text);
|
||||
BUILD_DIR/src/os/sprintf.o(.text);
|
||||
BUILD_DIR/src/os/is_debug.o(.text);
|
||||
#endif
|
||||
BUILD_DIR/src/os/osCreateThread.o(.text);
|
||||
BUILD_DIR/src/os/osInitialize.o(.text);
|
||||
@@ -198,7 +200,7 @@ SECTIONS
|
||||
BUILD_DIR/src/os/_Ldtob.o(.text);
|
||||
BUILD_DIR/src/os/ldiv.o(.text);
|
||||
BUILD_DIR/data/rsp.o(.text);
|
||||
BUILD_DIR/src/main.o(.data);
|
||||
BUILD_DIR/src/main.o(.data*);
|
||||
BUILD_DIR/data/data_0DD0A0.o(.data);
|
||||
BUILD_DIR/src/code_800029B0.o(.data);
|
||||
BUILD_DIR/src/profiler.o(.data);
|
||||
@@ -250,7 +252,7 @@ SECTIONS
|
||||
BUILD_DIR/src/os/_Printf.o(.data);
|
||||
BUILD_DIR/src/os/osViData.o(.data);
|
||||
BUILD_DIR/src/os/_Litob.o(.data);
|
||||
BUILD_DIR/src/main.o(.rodata);
|
||||
BUILD_DIR/src/main.o(.rodata*);
|
||||
BUILD_DIR/src/code_800029B0.o(.rodata);
|
||||
BUILD_DIR/src/code_80005FD0.jp.o(.rodata);
|
||||
BUILD_DIR/src/camera.o(.rodata);
|
||||
@@ -295,7 +297,7 @@ SECTIONS
|
||||
END_SEG(main)
|
||||
|
||||
BEGIN_NOLOAD(main) {
|
||||
BUILD_DIR/src/main.o(.bss);
|
||||
BUILD_DIR/src/main.o(.bss*);
|
||||
BUILD_DIR/src/code_800029B0.o(.bss);
|
||||
BUILD_DIR/src/profiler.o(.bss);
|
||||
BUILD_DIR/src/crash_screen.o(.bss);
|
||||
@@ -310,8 +312,10 @@ SECTIONS
|
||||
BUILD_DIR/src/code_800AF9B0.o(.bss);
|
||||
BUILD_DIR/src/menus.o(.bss);
|
||||
#if DEBUG
|
||||
BUILD_DIR/src/os/osCartRomInit.o(.bss);
|
||||
BUILD_DIR/src/debug/crash_screen_enhancement.o(.bss);
|
||||
BUILD_DIR/src/debug/debug.o(.bss);
|
||||
BUILD_DIR/src/os/is_debug.o(.bss);
|
||||
BUILD_DIR/src/os/sprintf.o(.bss);
|
||||
#endif
|
||||
BUILD_DIR/src/audio/external.o(.bss);
|
||||
@@ -335,42 +339,43 @@ SECTIONS
|
||||
BUILD_DIR/src/os/osLeoDiskInit.o(.bss);
|
||||
}
|
||||
END_NOLOAD(main)
|
||||
|
||||
|
||||
/* 0x8028DF00 0F7510-123640 [2C130] */
|
||||
BEGIN_SEG(racing, SEG_RACING)
|
||||
{
|
||||
BUILD_DIR/src/racing/race_logic.o(.text);
|
||||
BUILD_DIR/src/racing/render_courses.o(.text);
|
||||
BUILD_DIR/src/racing/actors.o(.text);
|
||||
BUILD_DIR/src/racing/race_logic.o(.text*);
|
||||
BUILD_DIR/src/racing/render_courses.o(.text*);
|
||||
BUILD_DIR/src/racing/actors.o(.text*);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.text);
|
||||
BUILD_DIR/src/racing/memory.o(.text);
|
||||
BUILD_DIR/src/racing/collision.o(.text);
|
||||
BUILD_DIR/src/racing/memory.o(.text*);
|
||||
BUILD_DIR/src/racing/collision.o(.text*);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.text);
|
||||
BUILD_DIR/src/racing/math_util.o(.text);
|
||||
BUILD_DIR/src/racing/race_logic.o(.data);
|
||||
BUILD_DIR/src/racing/render_courses.o(.data);
|
||||
BUILD_DIR/src/racing/actors.o(.data);
|
||||
BUILD_DIR/src/racing/math_util.o(.text*);
|
||||
BUILD_DIR/src/racing/race_logic.o(.data*);
|
||||
BUILD_DIR/src/racing/render_courses.o(.data*);
|
||||
BUILD_DIR/src/racing/actors.o(.data*);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.data);
|
||||
BUILD_DIR/src/racing/memory.o(.data);
|
||||
BUILD_DIR/src/racing/memory.o(.data*);
|
||||
BUILD_DIR/courses/courseTable.inc.o(.data);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.data);
|
||||
BUILD_DIR/src/racing/math_util.o(.data);
|
||||
BUILD_DIR/src/racing/race_logic.o(.rodata);
|
||||
BUILD_DIR/src/racing/render_courses.o(.rodata);
|
||||
BUILD_DIR/src/racing/actors.o(.rodata);
|
||||
BUILD_DIR/src/racing/math_util.o(.data*);
|
||||
BUILD_DIR/src/racing/race_logic.o(.rodata*);
|
||||
BUILD_DIR/src/racing/render_courses.o(.rodata*);
|
||||
BUILD_DIR/src/racing/actors.o(.rodata*);
|
||||
BUILD_DIR/src/racing/skybox_and_splitscreen.o(.rodata);
|
||||
BUILD_DIR/src/racing/memory.o(.rodata);
|
||||
BUILD_DIR/src/racing/collision.o(.rodata);
|
||||
BUILD_DIR/src/racing/memory.o(.rodata*);
|
||||
BUILD_DIR/src/racing/collision.o(.rodata*);
|
||||
BUILD_DIR/src/racing/actors_extended.o(.rodata);
|
||||
BUILD_DIR/src/racing/math_util.o(.rodata);
|
||||
BUILD_DIR/src/racing/math_util.o(.rodata*);
|
||||
}
|
||||
END_SEG(racing)
|
||||
|
||||
BEGIN_NOLOAD(racing)
|
||||
{
|
||||
BUILD_DIR/src/racing/race_logic.o(.bss);
|
||||
BUILD_DIR/src/racing/actors.o(.bss);
|
||||
BUILD_DIR/src/racing/memory.o(.bss);
|
||||
BUILD_DIR/src/racing/race_logic.o(.bss*);
|
||||
BUILD_DIR/src/racing/actors.o(.bss*);
|
||||
BUILD_DIR/src/racing/memory.o(.bss*);
|
||||
BUILD_DIR/src/framebuffers.o(.bss*);
|
||||
BUILD_DIR/src/audio/synthesis.o(.bss*);
|
||||
BUILD_DIR/src/audio/heap.o(.bss*);
|
||||
|
||||
+4
-4
@@ -85,11 +85,11 @@ u16 D_8015F702;
|
||||
f32 D_8015F704;
|
||||
Vec3f D_8015F708;
|
||||
UNUSED u32 D_8015F718[3]; // Likely held ptrs to segmented data.
|
||||
u32 gFreeMemorySize;
|
||||
u32 gNextFreeMemoryAddress;
|
||||
u32 gHeapEndPtr;
|
||||
size_t gFreeMemorySize;
|
||||
uintptr_t gNextFreeMemoryAddress;
|
||||
uintptr_t gHeapEndPtr;
|
||||
u32 D_8015F730;
|
||||
u32 gFreeMemoryResetAnchor;
|
||||
uintptr_t gFreeMemoryResetAnchor;
|
||||
Vec3f D_8015F738;
|
||||
Vec3f D_8015F748;
|
||||
Vec3f D_8015F758;
|
||||
|
||||
+4
-4
@@ -49,12 +49,12 @@ extern u16 D_8015F702;
|
||||
extern f32 D_8015F704;
|
||||
extern Vec3f D_8015F708;
|
||||
extern UNUSED u32 D_8015F718[3];
|
||||
extern u32 gFreeMemorySize;
|
||||
extern u32 gNextFreeMemoryAddress;
|
||||
extern u32 gHeapEndPtr;
|
||||
extern size_t gFreeMemorySize;
|
||||
extern uintptr_t gNextFreeMemoryAddress;
|
||||
extern uintptr_t gHeapEndPtr;
|
||||
|
||||
extern u32 D_8015F730;
|
||||
extern u32 gFreeMemoryResetAnchor;
|
||||
extern uintptr_t gFreeMemoryResetAnchor;
|
||||
extern Vec3f D_8015F738;
|
||||
extern Vec3f D_8015F748;
|
||||
extern Vec3f D_8015F758;
|
||||
|
||||
+484
-929
File diff suppressed because it is too large
Load Diff
+19
-4
@@ -25,8 +25,23 @@ struct unexpiredActors {
|
||||
s32 unk18;
|
||||
};
|
||||
|
||||
/* Function Prototypes */
|
||||
typedef struct {
|
||||
f32 unk0;
|
||||
f32 unk4;
|
||||
f32 unk8;
|
||||
f32 unkC;
|
||||
} Test;
|
||||
|
||||
extern Test D_801634F8[];
|
||||
|
||||
/* Function Prototypes */
|
||||
void func_80012190(void);
|
||||
void func_8000BA14(u16, f32, f32, s16);
|
||||
void func_80014BDC(void);
|
||||
void func_80014A88(void);
|
||||
void func_80014934(void);
|
||||
void func_800147E0(void);
|
||||
void func_800132F4(void);
|
||||
s16 func_80005FD0(Vec3f, Vec3f);
|
||||
void func_800100F0(s32);
|
||||
void func_800120C8(void);
|
||||
@@ -125,7 +140,7 @@ void func_80014D30(s32, s32);
|
||||
f32 func_80014EE4(f32 arg0, s32 arg1);
|
||||
|
||||
void func_8001530C(void);
|
||||
void func_80015314(s32, s32, s32);
|
||||
void func_80015314(s32, f32, s32);
|
||||
void func_80015390(Camera*, Player*, s32);
|
||||
|
||||
void func_8001968C(void);
|
||||
@@ -170,7 +185,7 @@ extern struct unexpiredActors gUnexpiredActorsList[];
|
||||
extern s16 D_8016348C;
|
||||
extern s32 D_801643E0[];
|
||||
extern s32 D_80164408[];
|
||||
extern s16 D_80164670;
|
||||
extern s16 D_80164670[];
|
||||
extern s16 D_80164672;
|
||||
extern s16 D_80164674;
|
||||
extern s16 D_80164676;
|
||||
@@ -180,7 +195,7 @@ extern s16 D_8016467C;
|
||||
extern s16 D_8016467E;
|
||||
extern s16 D_801632B8[];
|
||||
extern s16 D_801632D0[];
|
||||
extern s16 D_801632E8[];
|
||||
extern u16 D_801632E8[];
|
||||
extern s16 D_801646CC;
|
||||
extern u16 D_80163E2A;
|
||||
extern Gfx D_0D0076F8[];
|
||||
|
||||
+8
-44
@@ -140,13 +140,10 @@ u16 func_8001FD78(Player *player, f32 posX, UNUSED f32 arg2, f32 posZ) {
|
||||
}
|
||||
|
||||
void func_80020000(Player *player, Camera *camera, s8 arg2, s8 arg3) {
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
s32 stackPadding2;
|
||||
s32 stackPadding3;
|
||||
s32 pad[4];
|
||||
s32 sp4C;
|
||||
s32 sp48;
|
||||
s32 stackPadding4;
|
||||
s32 pad2;
|
||||
s32 temp_v0;
|
||||
s32 temp_v0_2;
|
||||
|
||||
@@ -1315,25 +1312,9 @@ void func_80024374(Player *player, s8 arg1, s8 arg2) {
|
||||
}
|
||||
|
||||
void func_800248D0(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
s32 stackPadding00;
|
||||
s32 pad;
|
||||
Mat4 sp1A4;
|
||||
s32 stackPadding01;
|
||||
s32 stackPadding02;
|
||||
s32 stackPadding03;
|
||||
s32 stackPadding04;
|
||||
s32 stackPadding05;
|
||||
s32 stackPadding06;
|
||||
s32 stackPadding07;
|
||||
s32 stackPadding08;
|
||||
s32 stackPadding09;
|
||||
s32 stackPadding10;
|
||||
s32 stackPadding11;
|
||||
s32 stackPadding12;
|
||||
s32 stackPadding13;
|
||||
s32 stackPadding14;
|
||||
s32 stackPadding15;
|
||||
s32 stackPadding16;
|
||||
s32 stackPadding17;
|
||||
s32 pad2[17];
|
||||
Vec3f sp154;
|
||||
Vec3s sp14C;
|
||||
f32 sp148;
|
||||
@@ -1426,31 +1407,15 @@ void func_800248D0(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
}
|
||||
|
||||
void func_800256F4(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
s32 stackPadding00;
|
||||
s32 pad;
|
||||
Mat4 sp12C;
|
||||
s32 stackPadding01;
|
||||
s32 stackPadding02;
|
||||
s32 stackPadding03;
|
||||
s32 stackPadding04;
|
||||
s32 stackPadding05;
|
||||
s32 stackPadding06;
|
||||
s32 stackPadding07;
|
||||
s32 stackPadding08;
|
||||
s32 stackPadding09;
|
||||
s32 stackPadding10;
|
||||
s32 stackPadding11;
|
||||
s32 stackPadding12;
|
||||
s32 stackPadding13;
|
||||
s32 stackPadding14;
|
||||
s32 stackPadding15;
|
||||
s32 stackPadding16;
|
||||
s32 stackPadding17;
|
||||
s32 pad2[17];
|
||||
Vec3f spDC;
|
||||
Vec3s spD4;
|
||||
f32 spD0;
|
||||
f32 spCC;
|
||||
f32 spC8;
|
||||
s32 stackPadding18;
|
||||
s32 pad3;
|
||||
s16 spC2;
|
||||
s16 thing;
|
||||
|
||||
@@ -1559,8 +1524,7 @@ void func_800262E0(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
}
|
||||
|
||||
void func_800267AC(Player *player, s8 arg1, s8 arg2) {
|
||||
s32 stackPadding0;
|
||||
s32 stackPadding1;
|
||||
s32 pad[2];
|
||||
s32 temp_t1;
|
||||
s32 var_v1;
|
||||
OSMesg *sp34;
|
||||
|
||||
+59
-89
@@ -1625,76 +1625,60 @@ void func_80075714(s32 objectIndex) {
|
||||
func_8008BF18(objectIndex);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-28-2022
|
||||
extern s32 D_801636A0;
|
||||
extern s32 D_801637AC;
|
||||
extern s16 D_8016578C;
|
||||
extern s16 D_80165790;
|
||||
extern ? D_8018C5F0;
|
||||
|
||||
void func_80075838(void) {
|
||||
s32 *var_s1;
|
||||
s32 *var_s1_2;
|
||||
s32 pad[2];
|
||||
s32 count;
|
||||
s32 i;
|
||||
s32 temp_a0;
|
||||
s32 temp_a0_2;
|
||||
s32 var_s2;
|
||||
s32 var_s2_2;
|
||||
struct_80165C18_entry *temp_s0;
|
||||
struct_80165C18_entry *temp_s0_2;
|
||||
|
||||
struct_80165C18_entry *temp;
|
||||
if (D_8016578C != 0) {
|
||||
D_8016578C -= 1;
|
||||
}
|
||||
if (D_80165790 != 0) {
|
||||
D_80165790 -= 1;
|
||||
}
|
||||
var_s2 = 0;
|
||||
if ((D_801636A0 != 0) || (D_8016578C != 0)) {
|
||||
var_s1 = D_8018C3F0;
|
||||
do {
|
||||
temp_a0 = *var_s1;
|
||||
if ((sTrains[0].someFlags != 0) || (D_8016578C != 0)) {
|
||||
count = 0;
|
||||
for (i = 0; i < 128; i++) {
|
||||
temp_a0 = D_8018C3F0[i];
|
||||
if (temp_a0 != -1) {
|
||||
temp_s0 = &D_80165C18[temp_a0];
|
||||
if (temp_s0->unk_0A6 != 0) {
|
||||
temp = &D_80165C18[temp_a0];
|
||||
if (temp->unk_0A6 != 0) {
|
||||
func_80075714(temp_a0);
|
||||
if (temp_s0->unk_0A6 == 0) {
|
||||
func_80072100(var_s1);
|
||||
if (temp->unk_0A6 == 0) {
|
||||
func_80072100(&D_8018C3F0[i]);
|
||||
}
|
||||
var_s2 += 1;
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
var_s1 += 4;
|
||||
} while (var_s1 != &D_8018C5F0);
|
||||
if (var_s2 != 0) {
|
||||
D_8016578C = 0x0064;
|
||||
}
|
||||
if (count != 0) {
|
||||
D_8016578C = 100;
|
||||
}
|
||||
}
|
||||
if ((D_801637AC != 0) || (D_80165790 != 0)) {
|
||||
var_s2_2 = 0;
|
||||
var_s1_2 = D_8018C630;
|
||||
do {
|
||||
temp_a0_2 = *var_s1_2;
|
||||
if (temp_a0_2 != -1) {
|
||||
temp_s0_2 = &D_80165C18[temp_a0_2];
|
||||
if (temp_s0_2->unk_0A6 != 0) {
|
||||
func_80075714(temp_a0_2);
|
||||
if (temp_s0_2->unk_0A6 == 0) {
|
||||
func_80072100(var_s1_2);
|
||||
if ((sTrains[1].someFlags != 0) || (D_80165790 != 0)) {
|
||||
count = 0;
|
||||
for (i = 0; i < 128; i++) {
|
||||
temp_a0 = D_8018C630[i];
|
||||
if (temp_a0 != -1) {
|
||||
temp = &D_80165C18[temp_a0];
|
||||
if (temp->unk_0A6 != 0) {
|
||||
func_80075714(temp_a0);
|
||||
if (temp->unk_0A6 == 0) {
|
||||
func_80072100(&D_8018C630[i]);
|
||||
}
|
||||
var_s2_2 += 1;
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
var_s1_2 += 4;
|
||||
} while (var_s1_2 != &D_8018C830);
|
||||
if (var_s2_2 != 0) {
|
||||
D_80165790 = 0x0064;
|
||||
}
|
||||
if (count != 0) {
|
||||
D_80165790 = 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80075838.s")
|
||||
#endif
|
||||
|
||||
void func_800759EC(s32 objectIndex, Vec3f arg1, f32 arg2) {
|
||||
struct_80165C18_entry *temp_v0;
|
||||
@@ -1765,76 +1749,62 @@ void func_80075B84(s32 arg0) {
|
||||
func_8008BF18(arg0);
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-28-2022
|
||||
extern s32 D_801637E8;
|
||||
extern s32 D_80163814;
|
||||
extern s16 D_8016578C;
|
||||
extern s16 D_80165790;
|
||||
extern ? D_8018C5F0;
|
||||
|
||||
void func_80075CA8(void) {
|
||||
s32 *var_s1;
|
||||
s32 *var_s1_2;
|
||||
s32 pad[2];
|
||||
s32 count;
|
||||
s32 i;
|
||||
s32 temp_a0;
|
||||
s32 temp_a0_2;
|
||||
s32 var_s2;
|
||||
s32 var_s2_2;
|
||||
struct_80165C18_entry *temp_s0;
|
||||
struct_80165C18_entry *temp_s0_2;
|
||||
|
||||
struct_80165C18_entry *temp;
|
||||
if (D_8016578C != 0) {
|
||||
D_8016578C -= 1;
|
||||
}
|
||||
if (D_80165790 != 0) {
|
||||
D_80165790 -= 1;
|
||||
}
|
||||
var_s2 = 0;
|
||||
if ((D_801637E8 != 0) || (D_8016578C != 0)) {
|
||||
var_s1 = D_8018C3F0;
|
||||
do {
|
||||
temp_a0 = *var_s1;
|
||||
count = 0;
|
||||
for (i = 0; i < 128; i++) {
|
||||
temp_a0 = D_8018C3F0[i];
|
||||
if (temp_a0 != -1) {
|
||||
temp_s0 = &D_80165C18[temp_a0];
|
||||
if (temp_s0->unk_0A6 != 0) {
|
||||
temp = &D_80165C18[temp_a0];
|
||||
if (temp->unk_0A6 != 0) {
|
||||
func_80075B84(temp_a0);
|
||||
if (temp_s0->unk_0A6 == 0) {
|
||||
func_80072100(var_s1);
|
||||
if (temp->unk_0A6 == 0) {
|
||||
func_80072100(&D_8018C3F0[i]);
|
||||
}
|
||||
var_s2 += 1;
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
var_s1 += 4;
|
||||
} while (var_s1 != &D_8018C5F0);
|
||||
if (var_s2 != 0) {
|
||||
D_8016578C = 0x0064;
|
||||
}
|
||||
if (count != 0) {
|
||||
D_8016578C = 100;
|
||||
}
|
||||
}
|
||||
if ((D_80163814 != 0) || (D_80165790 != 0)) {
|
||||
var_s2_2 = 0;
|
||||
var_s1_2 = D_8018C630;
|
||||
do {
|
||||
temp_a0_2 = *var_s1_2;
|
||||
if (temp_a0_2 != -1) {
|
||||
temp_s0_2 = &D_80165C18[temp_a0_2];
|
||||
if (temp_s0_2->unk_0A6 != 0) {
|
||||
func_80075B84(temp_a0_2);
|
||||
if (temp_s0_2->unk_0A6 == 0) {
|
||||
func_80072100(var_s1_2);
|
||||
count = 0;
|
||||
for (i = 0; i < 128; i++) {
|
||||
temp_a0 = D_8018C630[i];
|
||||
if (temp_a0 != -1) {
|
||||
temp = &D_80165C18[temp_a0];
|
||||
if (temp->unk_0A6 != 0) {
|
||||
func_80075B84(temp_a0);
|
||||
if (temp->unk_0A6 == 0) {
|
||||
func_80072100(&D_8018C630[i]);
|
||||
}
|
||||
var_s2_2 += 1;
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
var_s1_2 += 4;
|
||||
} while (var_s1_2 != &D_8018C830);
|
||||
if (var_s2_2 != 0) {
|
||||
D_80165790 = 0x0064;
|
||||
}
|
||||
if (count != 0) {
|
||||
D_80165790 = 100;
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80071F00/func_80075CA8.s")
|
||||
#endif
|
||||
|
||||
void func_80075E5C(s32 objectIndex, Vec3f arg1, u16 arg2, f32 arg3, s32 arg4) {
|
||||
struct_80165C18_entry *temp_v0;
|
||||
@@ -2300,7 +2270,7 @@ void func_80076F2C(void) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
extern s16 D_800E6788[1]; // todo: fix this extern
|
||||
void func_80076FEC(s32 objectIndex, s32 flameIndex) {
|
||||
func_800723A4(objectIndex, 3);
|
||||
|
||||
+13
-29
@@ -56,9 +56,8 @@ void crash_screen_draw_glyph(u16 *framebuffer, s32 x, s32 y, s32 glyph) {
|
||||
}
|
||||
}
|
||||
|
||||
// Functionally Equivallent. At least, visually equivallent.
|
||||
// Functionally Equivallent.
|
||||
#ifdef NON_MATCHING
|
||||
//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de
|
||||
|
||||
// 0xRGBA (I think A maybe not).
|
||||
#define WHITE_COLOUR 0xFFFF
|
||||
@@ -75,36 +74,21 @@ void crash_screen_draw_glyph(u16 *framebuffer, s32 x, s32 y, s32 glyph) {
|
||||
**/
|
||||
void crash_screen_draw_square(u16 *framebuffer)
|
||||
{
|
||||
// s32 new_var;
|
||||
s32 s0_end;
|
||||
s32 s2_start;
|
||||
s32 row;
|
||||
s32 column;
|
||||
|
||||
s32 var_s0;
|
||||
s32 var_s2;
|
||||
s32 var_s3;
|
||||
s32 row;
|
||||
s32 column;
|
||||
s32 i;
|
||||
var_s0 = 0x2E;
|
||||
var_s2 = 0x28;
|
||||
var_s3 = 0x2C;
|
||||
// new_var = i;
|
||||
// for (i = 0; i < 2; i++)
|
||||
do // (var_s0 = 0x2E; var_s0 != 0x2C; var_s0--)
|
||||
{
|
||||
row = 0x2E - i;
|
||||
for (row = var_s2; row < var_s0; row++)
|
||||
{
|
||||
for (column = var_s2; column < var_s0; column++)
|
||||
{
|
||||
framebuffer[row * 320 + column] = i == 0 ? 0xF801 : 0xFFFF;
|
||||
}
|
||||
for (s2_start = 0x28, s0_end = s2_start + 6; s0_end != 0x2C; s0_end--, s2_start++) {
|
||||
for (row = s2_start; row < s0_end; row++) {
|
||||
for (column = s2_start; column < s0_end; column++) {
|
||||
framebuffer[row * 320 + column] = s0_end - s2_start == 6 ? 0xF801 : 0xFFFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
var_s0--;
|
||||
var_s2 = 6 + i;
|
||||
|
||||
} while(var_s0 != var_s3);
|
||||
|
||||
osWritebackDCacheAll();
|
||||
osViSwapBuffer(framebuffer);
|
||||
osWritebackDCacheAll();
|
||||
osViSwapBuffer(framebuffer);
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/crash_screen/crash_screen_draw_square.s")
|
||||
|
||||
@@ -62,8 +62,8 @@
|
||||
#include <macros.h>
|
||||
#include <mk64.h>
|
||||
#include <objects.h>
|
||||
#include <hardcoded_segments.h>
|
||||
#include <segments.h>
|
||||
#include <segment_symbols.h>
|
||||
#include <sounds.h>
|
||||
#include <trig_tables.h>
|
||||
#include <types.h>
|
||||
|
||||
+10
-11
@@ -130,17 +130,16 @@ void load_ceremony_cutscene(void) {
|
||||
D_800DC5C8 = (u16)0;
|
||||
gSurfaceMap = (mk64_surface_map_ram *) gNextFreeMemoryAddress;
|
||||
// @bug these segmented addresses need to be symbols for mobility
|
||||
// This syntax is required to match
|
||||
set_vertex_data_with_default_section_id(0x70067E8, -1);
|
||||
set_vertex_data_with_default_section_id(0x700AEF8, -1);
|
||||
set_vertex_data_with_default_section_id(0x700A970, 8);
|
||||
set_vertex_data_with_default_section_id(0x700AC30, 8);
|
||||
set_vertex_data_with_default_section_id(0x7000CE0, 0x10);
|
||||
set_vertex_data_with_default_section_id(0x7000E88, 0x10);
|
||||
set_vertex_data_with_default_section_id(0x700A618, -1);
|
||||
set_vertex_data_with_default_section_id(0x700A618, -1);
|
||||
set_vertex_data_with_default_section_id(0x70023F8, 1);
|
||||
set_vertex_data_with_default_section_id(0x7002478, 1);
|
||||
set_vertex_data_with_default_section_id(0x070067E8, -1);
|
||||
set_vertex_data_with_default_section_id(0x0700AEF8, -1);
|
||||
set_vertex_data_with_default_section_id(0x0700A970, 8);
|
||||
set_vertex_data_with_default_section_id(0x0700AC30, 8);
|
||||
set_vertex_data_with_default_section_id(0x07000CE0, 0x10);
|
||||
set_vertex_data_with_default_section_id(0x07000E88, 0x10);
|
||||
set_vertex_data_with_default_section_id(0x0700A618, -1);
|
||||
set_vertex_data_with_default_section_id(0x0700A618, -1);
|
||||
set_vertex_data_with_default_section_id(0x070023F8, 1);
|
||||
set_vertex_data_with_default_section_id(0x07002478, 1);
|
||||
func_80295C6C();
|
||||
debug_switch_character_ceremony_cutscene();
|
||||
func_802818BC();
|
||||
|
||||
+60
-71
@@ -27,6 +27,7 @@
|
||||
#include "main.h"
|
||||
#include "code_80086E70.h"
|
||||
#include "courses/all_course_data.h"
|
||||
#include <vehicles.h>
|
||||
|
||||
void func_800431B0(Vec3f arg0, Vec3su arg1, f32 arg2, Vtx *vtx) {
|
||||
func_80042E00(arg0, arg1, arg2);
|
||||
@@ -4642,47 +4643,47 @@ void func_800540CC(s32 objectIndex, s32 cameraId) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-28-2022
|
||||
extern f32 D_801635A4;
|
||||
extern s32 D_801636A0;
|
||||
extern f32 D_801636B0;
|
||||
extern s32 D_801637AC;
|
||||
extern ? D_8018C5F0;
|
||||
|
||||
// Train smoke?
|
||||
void func_800541BC(s32 cameraId) {
|
||||
Camera *sp3C;
|
||||
Gfx *temp_v1;
|
||||
s32 *var_s0;
|
||||
s32 *var_s0_2;
|
||||
s32 pad;
|
||||
s32 j;
|
||||
Camera *camera;
|
||||
s32 i;
|
||||
|
||||
temp_v1 = gDisplayListHead;
|
||||
sp3C = &camera1[cameraId];
|
||||
gDisplayListHead = temp_v1 + 8;
|
||||
temp_v1->words.w0 = 0x06000000;
|
||||
temp_v1->words.w1 = (u32) D_0D007AE0;
|
||||
func_8004477C(D_0D029458, 0x00000020, 0x00000020);
|
||||
func_8004B72C(0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF);
|
||||
D_80183E80->unk0 = 0;
|
||||
D_80183E80->unk4 = 0x8000;
|
||||
if ((D_801636A0 != 0) && (func_80041980(&D_801635A4, sp3C, 0x4000U) != 0)) {
|
||||
var_s0 = D_8018C3F0;
|
||||
do {
|
||||
func_800540CC(*var_s0, cameraId);
|
||||
var_s0 += 4;
|
||||
} while (var_s0 != &D_8018C5F0);
|
||||
camera = &camera1[cameraId];
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007AE0)
|
||||
func_8004477C(D_0D029458, 32, 32);
|
||||
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[2] = 0x8000;
|
||||
|
||||
// Render smoke for any number of trains. Don't know enough about these variables yet.
|
||||
#ifdef AVOID_UB_WIP
|
||||
for (j = 0; j < NUM_TRAINS; j++) {
|
||||
if ((sTrains[j].someFlags != 0) && (func_80041980(&sTrains[j].locomotive.position, camera, 0x4000U) != 0)) {
|
||||
|
||||
for (i = 0; i < 128; i++) {
|
||||
// Need to make a way to increase this array for each train.
|
||||
func_800540CC(D_8018C3F0[i], cameraId);
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((D_801637AC != 0) && (func_80041980(&D_801636B0, sp3C, 0x4000U) != 0)) {
|
||||
var_s0_2 = D_8018C630;
|
||||
do {
|
||||
func_800540CC(*var_s0_2, cameraId);
|
||||
var_s0_2 += 4;
|
||||
} while (var_s0_2 != &D_8018C830);
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/hud_renderer/func_800541BC.s")
|
||||
|
||||
if ((sTrains[0].someFlags != 0) && (func_80041980(&sTrains[0].locomotive.position, camera, 0x4000U) != 0)) {
|
||||
|
||||
for (i = 0; i < D_8018C3F0_SIZE; i++) {
|
||||
func_800540CC(D_8018C3F0[i], cameraId);
|
||||
}
|
||||
|
||||
}
|
||||
if ((sTrains[1].someFlags != 0) && (func_80041980(&sTrains[1].locomotive.position, camera, 0x4000U) != 0)) {
|
||||
for (i = 0; i < D_8018C630_SIZE; i++) {
|
||||
func_800540CC(D_8018C630[i], cameraId);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
void func_80054324(s32 objectIndex, s32 cameraId) {
|
||||
Camera *camera;
|
||||
@@ -4697,47 +4698,35 @@ void func_80054324(s32 objectIndex, s32 cameraId) {
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef MIPS_TO_C
|
||||
//generated by m2c commit d9d3d6575355663122de59f6b2882d8f174e2355 on Dec-28-2022
|
||||
extern f32 D_801637C4;
|
||||
extern s32 D_801637E8;
|
||||
extern f32 D_801637F0;
|
||||
extern s32 D_80163814;
|
||||
extern ? D_8018C5F0;
|
||||
|
||||
// Likely smoke related.
|
||||
void func_80054414(s32 cameraId) {
|
||||
Camera *sp3C;
|
||||
Gfx *temp_v1;
|
||||
s32 *var_s0;
|
||||
s32 *var_s0_2;
|
||||
s32 pad[2];
|
||||
Camera *camera;
|
||||
s32 i;
|
||||
|
||||
camera = &camera1[cameraId];
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007AE0);
|
||||
|
||||
temp_v1 = gDisplayListHead;
|
||||
sp3C = &camera1[cameraId];
|
||||
gDisplayListHead = temp_v1 + 8;
|
||||
temp_v1->words.w0 = 0x06000000;
|
||||
temp_v1->words.w1 = (u32) D_0D007AE0;
|
||||
func_8004477C(D_0D029458, 0x00000020, 0x00000020);
|
||||
func_8004B72C(0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF);
|
||||
D_80183E80->unk0 = 0;
|
||||
D_80183E80->unk4 = 0x8000;
|
||||
if ((D_801637E8 != 0) && (func_80041980(&D_801637C4, sp3C, 0x4000U) != 0)) {
|
||||
var_s0 = D_8018C3F0;
|
||||
do {
|
||||
func_80054324(*var_s0, cameraId);
|
||||
var_s0 += 4;
|
||||
} while (var_s0 != &D_8018C5F0);
|
||||
func_8004477C(D_0D029458, 32, 32);
|
||||
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[2] = 0x8000;
|
||||
if ((D_801637E8 != 0) && (func_80041980(&D_801637C4, camera, 0x4000U) != 0)) {
|
||||
for (i = 0; i < D_8018C3F0_SIZE; i++) {
|
||||
func_80054324(D_8018C3F0[i], cameraId);
|
||||
}
|
||||
}
|
||||
if ((D_80163814 != 0) && (func_80041980(&D_801637F0, sp3C, 0x4000U) != 0)) {
|
||||
var_s0_2 = D_8018C630;
|
||||
do {
|
||||
func_80054324(*var_s0_2, cameraId);
|
||||
var_s0_2 += 4;
|
||||
} while (var_s0_2 != &D_8018C830);
|
||||
if ((D_80163814 != 0) && (func_80041980(&D_801637F0, camera, 0x4000U) != 0)) {
|
||||
for (i = 0; i < D_8018C630_SIZE; i++) {
|
||||
func_80054324(D_8018C630[i], cameraId);
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/hud_renderer/func_80054414.s")
|
||||
#endif
|
||||
|
||||
void func_8005457C(s32 objectIndex, s32 cameraId) {
|
||||
Camera *camera;
|
||||
@@ -4747,9 +4736,9 @@ void func_8005457C(s32 objectIndex, s32 cameraId) {
|
||||
if (gMatrixHudCount <= MTX_HUD_POOL_SIZE_MAX) {
|
||||
temp_s0 = &D_80165C18[objectIndex];
|
||||
if (temp_s0->unk_0D5 == 9) {
|
||||
func_8004B72C(0x000000FF, (s32) temp_s0->unk_0A4, 0, (s32) temp_s0->unk_0A2, 0, 0, (s32) temp_s0->unk_0A0);
|
||||
func_8004B72C(255, (s32) temp_s0->unk_0A4, 0, (s32) temp_s0->unk_0A2, 0, 0, (s32) temp_s0->unk_0A0);
|
||||
} else {
|
||||
func_8004B138(0x000000FF, (s32) temp_s0->unk_0A4, 0, (s32) temp_s0->unk_0A0);
|
||||
func_8004B138(255, (s32) temp_s0->unk_0A4, 0, (s32) temp_s0->unk_0A0);
|
||||
}
|
||||
D_80183E80[1] = func_800418AC(temp_s0->pos[0], temp_s0->pos[2], camera->pos);
|
||||
func_800431B0(temp_s0->pos, D_80183E80, temp_s0->sizeScaling, D_0D005AE0);
|
||||
@@ -4805,8 +4794,8 @@ void func_80054938(s32 cameraId) {
|
||||
|
||||
sp54 = &camera1[cameraId];
|
||||
gSPDisplayList(gDisplayListHead++, D_0D007AE0);
|
||||
func_8004477C(D_0D02BC58[D_80165598], 0x00000020, 0x00000020);
|
||||
func_8004B72C(0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF, 0x000000FF);
|
||||
func_8004477C(D_0D02BC58[D_80165598], 32, 32);
|
||||
func_8004B72C(255, 255, 255, 255, 255, 255, 255);
|
||||
D_80183E80[0] = 0;
|
||||
D_80183E80[2] = 0x8000;
|
||||
for (var_s0 = 0; var_s0 < D_8018C870_SIZE; var_s0++) {
|
||||
|
||||
+3
-5
@@ -1707,8 +1707,7 @@ void func_80027040(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
|
||||
}
|
||||
} else if (((temp & 0x400) == 0x400) || ((temp & 0x01000000) == 0x01000000) || ((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000)) {
|
||||
osInvalDCache(&D_802DFB80[arg4][arg3][arg1], 0x780U);
|
||||
// I think there's something off with the "player->unk_0A8 >> 8"
|
||||
// I don't like that right-shift
|
||||
// player->unk_0A8 >> 8 converts an 8.8 fixed-point animation frame to a whole number.
|
||||
osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8])], &D_802DFB80[arg4][arg3][arg1], 0x900, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
} else {
|
||||
@@ -1734,8 +1733,7 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
|
||||
((temp & 0x02000000) == 0x02000000) || ((temp & 0x10000) == 0x10000))
|
||||
{
|
||||
osInvalDCache(&D_802DFB80[arg4][arg3][arg1], 0x780);
|
||||
// I think there's something off with the "player->unk_0A8 >> 8"
|
||||
// I don't like that right-shift
|
||||
// player->unk_0A8 >> 8 converts an 8.8 fixed-point animation frame to a whole number.
|
||||
osPiStartDma(&gDmaIoMesg, OS_MESG_PRI_NORMAL, OS_READ, (uintptr_t) &_kart_texturesSegmentRomStart[SEGMENT_OFFSET(gKartTextureTumbles[player->characterId][player->unk_0A8 >> 8])], &D_802DFB80[arg4][arg3][arg1], 0x900, &gDmaMesgQueue);
|
||||
} else {
|
||||
osInvalDCache(&D_802DFB80[arg4][arg3][arg1], D_800DDEB0[player->characterId]);
|
||||
@@ -1746,7 +1744,7 @@ void func_80027560(Player *player, s8 arg1, s8 arg2, s8 arg3, s8 arg4) {
|
||||
void func_80027A20(Player *player, s8 arg1, s8 arg2, s8 arg3) {
|
||||
// Weird typecasting is being done here. We define D_802F1F80 as a 3-dimensional u32 array,
|
||||
// but its better to understand it as a 3-dimensional struct_D_802F1F80 array.
|
||||
struct_D_802F1F80 *temp_s0 = (struct_D_802F1F80 *) &D_802F1F80[arg3][arg2][arg1 << 7];
|
||||
struct_D_802F1F80 *temp_s0 = (struct_D_802F1F80 *) &D_802F1F80[arg3][arg2][arg1 * 0x80];
|
||||
switch(gActiveScreenMode) {
|
||||
case SCREEN_MODE_1P:
|
||||
case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL:
|
||||
|
||||
+41
-33
@@ -3,15 +3,14 @@
|
||||
#include <PR/os.h>
|
||||
#include <macros.h>
|
||||
#include <functions.h>
|
||||
#include "types.h"
|
||||
#include "config.h"
|
||||
#include <types.h>
|
||||
#include <config.h>
|
||||
#include "profiler.h"
|
||||
#include "main.h"
|
||||
#include "racing/memory.h"
|
||||
#include "menus.h"
|
||||
#include "segments.h"
|
||||
#include "segment_symbols.h"
|
||||
#include "common_structs.h"
|
||||
#include <segments.h>
|
||||
#include <common_structs.h>
|
||||
#include <defines.h>
|
||||
#include "framebuffers.h"
|
||||
#include "camera.h"
|
||||
@@ -203,9 +202,12 @@ void create_thread(OSThread *thread, OSId id, void (*entry)(void *), void *arg,
|
||||
thread->queue = NULL;
|
||||
osCreateThread(thread, id, entry, arg, sp, pri);
|
||||
}
|
||||
|
||||
void isPrintfInit(void);
|
||||
void main_func(void) {
|
||||
osInitialize();
|
||||
#ifdef DEBUG
|
||||
isPrintfInit(); // init osSyncPrintf
|
||||
#endif
|
||||
create_thread(&gIdleThread, 1, &thread1_idle, NULL, gIdleThreadStack + ARRAY_COUNT(gIdleThreadStack), 100);
|
||||
osStartThread(&gIdleThread);
|
||||
}
|
||||
@@ -462,19 +464,19 @@ void display_and_vsync(void) {
|
||||
}
|
||||
|
||||
void init_segment_ending_sequences(void) {
|
||||
bzero((void *) SEG_ENDING_SEQUENCES, 0xDF00);
|
||||
bzero((void *) SEG_ENDING_SEQUENCES, ENDING_SEQUENCE_SIZE);
|
||||
osWritebackDCacheAll();
|
||||
dma_copy((u8 *) SEG_ENDING_SEQUENCES, (u8 *) &_endingSequencesSegmentRomStart, ALIGN16((u32)&_endingSequencesSegmentRomEnd - (u32)&_endingSequencesSegmentRomStart));
|
||||
osInvalICache((void *) SEG_ENDING_SEQUENCES, 0xDF00);
|
||||
osInvalDCache((void *) SEG_ENDING_SEQUENCES, 0xDF00);
|
||||
osInvalICache((void *) SEG_ENDING_SEQUENCES, ENDING_SEQUENCE_SIZE);
|
||||
osInvalDCache((void *) SEG_ENDING_SEQUENCES, ENDING_SEQUENCE_SIZE);
|
||||
}
|
||||
|
||||
void init_segment_racing(void) {
|
||||
bzero((void *) SEG_RACING, 0x2C470);
|
||||
bzero((void *) SEG_RACING, RACING_SEQUENCE_SIZE);
|
||||
osWritebackDCacheAll();
|
||||
dma_copy((u8 *) SEG_RACING, (u8 *) &_racingSegmentRomStart, ALIGN16((u32)&_racingSegmentRomEnd - (u32)&_racingSegmentRomStart));
|
||||
osInvalICache((void *) SEG_RACING, 0x2C470);
|
||||
osInvalDCache((void *) SEG_RACING, 0x2C470);
|
||||
osInvalICache((void *) SEG_RACING, RACING_SEQUENCE_SIZE);
|
||||
osInvalDCache((void *) SEG_RACING, RACING_SEQUENCE_SIZE);
|
||||
}
|
||||
|
||||
void dma_copy(u8 *dest, u8 *romAddr, u32 size) {
|
||||
@@ -498,40 +500,46 @@ void dma_copy(u8 *dest, u8 *romAddr, u32 size) {
|
||||
*/
|
||||
void setup_game_memory(void) {
|
||||
UNUSED u32 pad[2];
|
||||
u32 sp2C;
|
||||
u32 sp40;
|
||||
uintptr_t texture_seg;
|
||||
u32 sp38;
|
||||
ptrdiff_t commonCourseDataSize; // Compressed mio0 size
|
||||
uintptr_t textureSegSize;
|
||||
ptrdiff_t textureSegStart;
|
||||
uintptr_t allocatedMemory;
|
||||
UNUSED s32 unknown_padding;
|
||||
|
||||
init_segment_racing();
|
||||
gHeapEndPtr = SEG_RACING;
|
||||
gHeapEndPtr = (uintptr_t) SEG_RACING;
|
||||
set_segment_base_addr(0, (void *) SEG_START);
|
||||
|
||||
// Memory pool size of 0xAB630
|
||||
// todo: is it possible to shift this value?
|
||||
#ifdef AVOID_UB
|
||||
initialize_memory_pool((uintptr_t) &_mainSegNoloadEnd, (uintptr_t) (&_mainSegNoloadEnd[0] + 0xAB630));
|
||||
#else
|
||||
initialize_memory_pool((uintptr_t) &_mainSegNoloadEnd, (uintptr_t) 0x80242F00);
|
||||
#endif
|
||||
initialize_memory_pool((uintptr_t) &_mainSegNoloadEnd, (uintptr_t) MEMORY_POOL_END);
|
||||
|
||||
func_80000BEC();
|
||||
osInvalDCache((void *) SEG_802BA370, 0x5810);
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t) &_data_802BA370SegmentRomStart, (void *) SEG_802BA370, 0x5810, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
set_segment_base_addr(2, (void *) load_data((uintptr_t) &_data_segment2SegmentRomStart, (uintptr_t) &_data_segment2SegmentRomEnd));
|
||||
sp2C = (u32)&_common_texturesSegmentRomEnd - (u32)&_common_texturesSegmentRomStart;
|
||||
sp2C = ALIGN16(sp2C);
|
||||
texture_seg = SEG_RACING-sp2C;
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t) &_common_texturesSegmentRomStart, (void *) texture_seg, sp2C, &gDmaMesgQueue);
|
||||
|
||||
commonCourseDataSize = (uintptr_t)&_common_texturesSegmentRomEnd - (uintptr_t)&_common_texturesSegmentRomStart;
|
||||
commonCourseDataSize = ALIGN16(commonCourseDataSize);
|
||||
|
||||
#ifdef AVOID_UB
|
||||
textureSegStart = (ptrdiff_t) SEG_RACING[0] - commonCourseDataSize;
|
||||
#else
|
||||
textureSegStart = SEG_RACING - commonCourseDataSize;
|
||||
#endif
|
||||
osPiStartDma(&gDmaIoMesg, 0, 0, (uintptr_t) &_common_texturesSegmentRomStart, (void *) textureSegStart, commonCourseDataSize, &gDmaMesgQueue);
|
||||
osRecvMesg(&gDmaMesgQueue, &gMainReceivedMesg, OS_MESG_BLOCK);
|
||||
|
||||
sp40 = *(u32 *)(texture_seg + 4);
|
||||
sp40 = ALIGN16(sp40);
|
||||
sp38 = gNextFreeMemoryAddress;
|
||||
mio0decode((u8 *) texture_seg, (u8 *) sp38);
|
||||
set_segment_base_addr(0xD, (void *) sp38);
|
||||
textureSegSize = *(uintptr_t *)(textureSegStart + 4);
|
||||
textureSegSize = ALIGN16(textureSegSize);
|
||||
allocatedMemory = gNextFreeMemoryAddress;
|
||||
mio0decode((u8 *) textureSegStart, (u8 *) allocatedMemory);
|
||||
set_segment_base_addr(0xD, (void *) allocatedMemory);
|
||||
|
||||
gNextFreeMemoryAddress += sp40;
|
||||
gNextFreeMemoryAddress += textureSegSize;
|
||||
|
||||
// Common course data does not get reloaded when the race state resets.
|
||||
// Therefore, only reset the memory ptr to after the common course data.
|
||||
gFreeMemoryResetAnchor = gNextFreeMemoryAddress;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "libc/stdarg.h"
|
||||
#include <string.h>
|
||||
#include "printf.h"
|
||||
#include <PR/os.h>
|
||||
#include "hardware.h"
|
||||
|
||||
// Note: This file was very quickly strewn together from oot.
|
||||
// Not great but it works.
|
||||
|
||||
OSPiHandle* sISVHandle; // official name : is_Handle
|
||||
|
||||
typedef struct {
|
||||
/* 0x00 */ u32 magic; // IS64
|
||||
/* 0x04 */ u32 get;
|
||||
/* 0x08 */ u8 unk_08[0x14-0x08];
|
||||
/* 0x14 */ u32 put;
|
||||
/* 0x18 */ u8 unk_18[0x20-0x18];
|
||||
/* 0x20 */ u8 data[0x10000-0x20];
|
||||
} ISVDbg;
|
||||
|
||||
#define gISVDbgPrnAdrs ((ISVDbg*)0xB3FF0000)
|
||||
#define ASCII_TO_U32(a, b, c, d) ((u32)((a << 24) | (b << 16) | (c << 8) | (d << 0)))
|
||||
|
||||
void* is_proutSyncPrintf(void* arg, const char* str, u32 count);
|
||||
|
||||
s32 __osEPiRawReadIo(OSPiHandle *arg0, u32 devAddr, u32 *data) {
|
||||
register s32 stat;
|
||||
while (stat = HW_REG(PI_STATUS_REG, s32), stat & (PI_STATUS_BUSY | PI_STATUS_IOBUSY | PI_STATUS_ERROR)) {
|
||||
;
|
||||
}
|
||||
*data = HW_REG(arg0->baseAddress | devAddr, s32);
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 osEPiReadIo(OSPiHandle* handle, u32 devAddr, u32* data) {
|
||||
register s32 ret;
|
||||
|
||||
__osPiGetAccess();
|
||||
ret = __osEPiRawReadIo(handle, devAddr, data);
|
||||
__osPiRelAccess();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
s32 osEPiWriteIo(OSPiHandle* handle, u32 devAddr, u32 data) {
|
||||
register s32 ret;
|
||||
|
||||
__osPiGetAccess();
|
||||
ret = __osEPiRawWriteIo(handle, devAddr, data);
|
||||
__osPiRelAccess();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void isPrintfInit(void) {
|
||||
sISVHandle = osCartRomInit();
|
||||
osEPiWriteIo(sISVHandle, (u32)&gISVDbgPrnAdrs->put, 0);
|
||||
osEPiWriteIo(sISVHandle, (u32)&gISVDbgPrnAdrs->get, 0);
|
||||
osEPiWriteIo(sISVHandle, (u32)&gISVDbgPrnAdrs->magic, ASCII_TO_U32('I', 'S', '6', '4'));
|
||||
}
|
||||
|
||||
void osSyncPrintfUnused(const char* fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
||||
_Printf(is_proutSyncPrintf, NULL, fmt, args);
|
||||
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void osSyncPrintf(const char* fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
||||
_Printf(is_proutSyncPrintf, NULL, fmt, args);
|
||||
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void print(const char* fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
||||
_Printf(is_proutSyncPrintf, NULL, fmt, args);
|
||||
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
// assumption
|
||||
void rmonPrintf(const char* fmt, ...) {
|
||||
va_list args;
|
||||
va_start(args, fmt);
|
||||
|
||||
_Printf(is_proutSyncPrintf, NULL, fmt, args);
|
||||
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
void* is_proutSyncPrintf(void* arg, const char* str, u32 count) {
|
||||
u32 data;
|
||||
s32 pos;
|
||||
s32 start;
|
||||
s32 end;
|
||||
|
||||
osEPiReadIo(sISVHandle, (u32)&gISVDbgPrnAdrs->magic, &data);
|
||||
if (data != ASCII_TO_U32('I', 'S', '6', '4')) {
|
||||
return (void*)1;
|
||||
}
|
||||
osEPiReadIo(sISVHandle, (u32)&gISVDbgPrnAdrs->get, &data);
|
||||
pos = data;
|
||||
osEPiReadIo(sISVHandle, (u32)&gISVDbgPrnAdrs->put, &data);
|
||||
start = data;
|
||||
end = start + count;
|
||||
if (end >= 0xFFE0) {
|
||||
end -= 0xFFE0;
|
||||
if (pos < end || start < pos) {
|
||||
return (void*)1;
|
||||
}
|
||||
} else {
|
||||
if (start < pos && pos < end) {
|
||||
return (void*)1;
|
||||
}
|
||||
}
|
||||
while (count) {
|
||||
u32 addr = (u32)&gISVDbgPrnAdrs->data + (start & 0xFFFFFFC);
|
||||
s32 shift = ((3 - (start & 3)) * 8);
|
||||
|
||||
if (*str) {
|
||||
osEPiReadIo(sISVHandle, addr, &data);
|
||||
osEPiWriteIo(sISVHandle, addr, (*str << shift) | (data & ~(0xFF << shift)));
|
||||
|
||||
start++;
|
||||
if (start >= 0xFFE0) {
|
||||
start -= 0xFFE0;
|
||||
}
|
||||
}
|
||||
count--;
|
||||
str++;
|
||||
}
|
||||
osEPiWriteIo(sISVHandle, (u32)&gISVDbgPrnAdrs->put, start);
|
||||
|
||||
return (void*)1;
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
#include "libultra_internal.h"
|
||||
#include "libc/stdarg.h"
|
||||
|
||||
// These funcs defined in is_debug.c
|
||||
#ifndef DEBUG
|
||||
|
||||
char *osSyncPrintf(char *arg0, const char *arg1, size_t size) {
|
||||
// ifdef'd formatting code?
|
||||
return (1);
|
||||
@@ -12,3 +15,5 @@ void rmonPrintf(const char *fmt, ...) {
|
||||
_Printf(osSyncPrintf, NULL, fmt, args);
|
||||
va_end(args);
|
||||
}
|
||||
|
||||
#endif // DEBUG
|
||||
|
||||
+2
-2
@@ -1354,9 +1354,9 @@ u8 *load_course(s32 courseId) {
|
||||
unknown1 = gCourseTable[courseId].unknown1;
|
||||
|
||||
if ((gGamestate == ENDING_SEQUENCE) || (gGamestate == CREDITS_SEQUENCE)) {
|
||||
gHeapEndPtr = SEG_ENDING_SEQUENCES;
|
||||
gHeapEndPtr = (uintptr_t) SEG_ENDING_SEQUENCES;
|
||||
} else {
|
||||
gHeapEndPtr = SEG_RACING;
|
||||
gHeapEndPtr = (uintptr_t) SEG_RACING;
|
||||
}
|
||||
set_segment_base_addr(9, load_data((uintptr_t)offsetRomStart, (uintptr_t) offsetRomEnd));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user