From 2b74bbbcefe396564a55357eda094fc8c8baf36a Mon Sep 17 00:00:00 2001 From: MegaMech Date: Fri, 6 Oct 2023 00:19:09 -0600 Subject: [PATCH] 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 --- asm/bss_80005FD0.s | 17 +- asm/bss_8001C4D0.s | 2 +- asm/bss_MainSeg.s | 10 +- .../code_80005FD0/func_80011E38.s | 39 - .../code_80005FD0/func_80012190.s | 39 - .../code_80005FD0/func_800132F4.s | 64 - .../code_80005FD0/func_800139E4.s | 184 --- .../code_80005FD0/func_800147E0.s | 54 - .../code_80005FD0/func_80014934.s | 54 - .../code_80005FD0/func_80014A88.s | 54 - .../code_80005FD0/func_80014BDC.s | 54 - .../code_80005FD0/func_80015544.s | 155 -- .../code_80005FD0/func_80015A9C.s | 130 -- .../code_80005FD0/func_800162CC.s | 117 -- .../code_80005FD0/func_80017720.s | 120 -- .../code_80005FD0/func_80017F10.s | 123 -- .../code_80005FD0/func_80018718.s | 122 -- .../code_80005FD0/func_80019118.s | 150 -- .../code_80005FD0/func_8001969C.s | 50 - .../code_80005FD0/func_80019890.s | 207 --- .../code_80005FD0/func_80019E58.s | 31 - .../code_80005FD0/func_80019ED0.s | 60 - .../code_80005FD0/func_8001A220.s | 77 - .../code_80005FD0/func_8001AB74.s | 47 - .../code_80071F00/func_80075838.s | 122 -- .../code_80071F00/func_80075CA8.s | 122 -- .../hud_renderer/func_800541BC.s | 95 -- .../hud_renderer/func_80054414.s | 95 -- ctx_includes.c | 2 +- include/hardcoded_segments.h | 25 + include/objects.h | 6 +- include/segment_symbols.h | 14 - include/segments.h | 48 +- include/vehicles.h | 10 +- mk64.ld | 55 +- src/code_800029B0.c | 8 +- src/code_800029B0.h | 8 +- src/code_80005FD0.c | 1413 ++++++----------- src/code_80005FD0.h | 23 +- src/code_8001F980.c | 52 +- src/code_80071F00.c | 148 +- src/crash_screen.c | 42 +- src/debug/all_variables.h | 2 +- src/ending/code_80281780.c | 21 +- src/hud_renderer.c | 131 +- src/kart_dma.c | 8 +- src/main.c | 74 +- src/os/is_debug.c | 145 ++ src/os/osSyncPrintf.c | 5 + src/racing/memory.c | 4 +- 50 files changed, 971 insertions(+), 3667 deletions(-) delete mode 100644 asm/non_matchings/code_80005FD0/func_80011E38.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80012190.s delete mode 100644 asm/non_matchings/code_80005FD0/func_800132F4.s delete mode 100644 asm/non_matchings/code_80005FD0/func_800139E4.s delete mode 100644 asm/non_matchings/code_80005FD0/func_800147E0.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80014934.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80014A88.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80014BDC.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80015544.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80015A9C.s delete mode 100644 asm/non_matchings/code_80005FD0/func_800162CC.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80017720.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80017F10.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80018718.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80019118.s delete mode 100644 asm/non_matchings/code_80005FD0/func_8001969C.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80019890.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80019E58.s delete mode 100644 asm/non_matchings/code_80005FD0/func_80019ED0.s delete mode 100644 asm/non_matchings/code_80005FD0/func_8001A220.s delete mode 100644 asm/non_matchings/code_80005FD0/func_8001AB74.s delete mode 100644 asm/non_matchings/code_80071F00/func_80075838.s delete mode 100644 asm/non_matchings/code_80071F00/func_80075CA8.s delete mode 100644 asm/non_matchings/hud_renderer/func_800541BC.s delete mode 100644 asm/non_matchings/hud_renderer/func_80054414.s create mode 100644 include/hardcoded_segments.h delete mode 100644 include/segment_symbols.h create mode 100644 src/os/is_debug.c diff --git a/asm/bss_80005FD0.s b/asm/bss_80005FD0.s index b0131ef02..049c545e7 100644 --- a/asm/bss_80005FD0.s +++ b/asm/bss_80005FD0.s @@ -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 diff --git a/asm/bss_8001C4D0.s b/asm/bss_8001C4D0.s index f5d583cba..639d414b9 100644 --- a/asm/bss_8001C4D0.s +++ b/asm/bss_8001C4D0.s @@ -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 diff --git a/asm/bss_MainSeg.s b/asm/bss_MainSeg.s index 1ba0a0cc1..8efd7f165 100644 --- a/asm/bss_MainSeg.s +++ b/asm/bss_MainSeg.s @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80011E38.s b/asm/non_matchings/code_80005FD0/func_80011E38.s deleted file mode 100644 index 66707b9e2..000000000 --- a/asm/non_matchings/code_80005FD0/func_80011E38.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80012190.s b/asm/non_matchings/code_80005FD0/func_80012190.s deleted file mode 100644 index bc41b52de..000000000 --- a/asm/non_matchings/code_80005FD0/func_80012190.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_800132F4.s b/asm/non_matchings/code_80005FD0/func_800132F4.s deleted file mode 100644 index 9024b10c4..000000000 --- a/asm/non_matchings/code_80005FD0/func_800132F4.s +++ /dev/null @@ -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) diff --git a/asm/non_matchings/code_80005FD0/func_800139E4.s b/asm/non_matchings/code_80005FD0/func_800139E4.s deleted file mode 100644 index 663f71488..000000000 --- a/asm/non_matchings/code_80005FD0/func_800139E4.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_800147E0.s b/asm/non_matchings/code_80005FD0/func_800147E0.s deleted file mode 100644 index cadb2da91..000000000 --- a/asm/non_matchings/code_80005FD0/func_800147E0.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80014934.s b/asm/non_matchings/code_80005FD0/func_80014934.s deleted file mode 100644 index f9935a9f8..000000000 --- a/asm/non_matchings/code_80005FD0/func_80014934.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80014A88.s b/asm/non_matchings/code_80005FD0/func_80014A88.s deleted file mode 100644 index 0f21a45e6..000000000 --- a/asm/non_matchings/code_80005FD0/func_80014A88.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80014BDC.s b/asm/non_matchings/code_80005FD0/func_80014BDC.s deleted file mode 100644 index 5c861caa9..000000000 --- a/asm/non_matchings/code_80005FD0/func_80014BDC.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80015544.s b/asm/non_matchings/code_80005FD0/func_80015544.s deleted file mode 100644 index 3e781ae35..000000000 --- a/asm/non_matchings/code_80005FD0/func_80015544.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80015A9C.s b/asm/non_matchings/code_80005FD0/func_80015A9C.s deleted file mode 100644 index e66b20648..000000000 --- a/asm/non_matchings/code_80005FD0/func_80015A9C.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_800162CC.s b/asm/non_matchings/code_80005FD0/func_800162CC.s deleted file mode 100644 index 2ff746af2..000000000 --- a/asm/non_matchings/code_80005FD0/func_800162CC.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80017720.s b/asm/non_matchings/code_80005FD0/func_80017720.s deleted file mode 100644 index 633a0afa7..000000000 --- a/asm/non_matchings/code_80005FD0/func_80017720.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80017F10.s b/asm/non_matchings/code_80005FD0/func_80017F10.s deleted file mode 100644 index 8a60ee6d3..000000000 --- a/asm/non_matchings/code_80005FD0/func_80017F10.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80018718.s b/asm/non_matchings/code_80005FD0/func_80018718.s deleted file mode 100644 index 38b19e3d4..000000000 --- a/asm/non_matchings/code_80005FD0/func_80018718.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80019118.s b/asm/non_matchings/code_80005FD0/func_80019118.s deleted file mode 100644 index a885eaf0e..000000000 --- a/asm/non_matchings/code_80005FD0/func_80019118.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_8001969C.s b/asm/non_matchings/code_80005FD0/func_8001969C.s deleted file mode 100644 index bc7fbf970..000000000 --- a/asm/non_matchings/code_80005FD0/func_8001969C.s +++ /dev/null @@ -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) diff --git a/asm/non_matchings/code_80005FD0/func_80019890.s b/asm/non_matchings/code_80005FD0/func_80019890.s deleted file mode 100644 index e55cb6df2..000000000 --- a/asm/non_matchings/code_80005FD0/func_80019890.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80019E58.s b/asm/non_matchings/code_80005FD0/func_80019E58.s deleted file mode 100644 index 48f13b898..000000000 --- a/asm/non_matchings/code_80005FD0/func_80019E58.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_80019ED0.s b/asm/non_matchings/code_80005FD0/func_80019ED0.s deleted file mode 100644 index a83d061df..000000000 --- a/asm/non_matchings/code_80005FD0/func_80019ED0.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_8001A220.s b/asm/non_matchings/code_80005FD0/func_8001A220.s deleted file mode 100644 index e3620b81c..000000000 --- a/asm/non_matchings/code_80005FD0/func_8001A220.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80005FD0/func_8001AB74.s b/asm/non_matchings/code_80005FD0/func_8001AB74.s deleted file mode 100644 index 5d3e0001f..000000000 --- a/asm/non_matchings/code_80005FD0/func_8001AB74.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80071F00/func_80075838.s b/asm/non_matchings/code_80071F00/func_80075838.s deleted file mode 100644 index 0569ed995..000000000 --- a/asm/non_matchings/code_80071F00/func_80075838.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/code_80071F00/func_80075CA8.s b/asm/non_matchings/code_80071F00/func_80075CA8.s deleted file mode 100644 index 9d19f4497..000000000 --- a/asm/non_matchings/code_80071F00/func_80075CA8.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/hud_renderer/func_800541BC.s b/asm/non_matchings/hud_renderer/func_800541BC.s deleted file mode 100644 index c5f0f40a4..000000000 --- a/asm/non_matchings/hud_renderer/func_800541BC.s +++ /dev/null @@ -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 diff --git a/asm/non_matchings/hud_renderer/func_80054414.s b/asm/non_matchings/hud_renderer/func_80054414.s deleted file mode 100644 index 557967a6d..000000000 --- a/asm/non_matchings/hud_renderer/func_80054414.s +++ /dev/null @@ -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 diff --git a/ctx_includes.c b/ctx_includes.c index 62dfdc927..678e4fe60 100644 --- a/ctx_includes.c +++ b/ctx_includes.c @@ -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" diff --git a/include/hardcoded_segments.h b/include/hardcoded_segments.h new file mode 100644 index 000000000..e1442fa30 --- /dev/null +++ b/include/hardcoded_segments.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 */ diff --git a/include/objects.h b/include/objects.h index 4316d6a54..1b5481ba0 100644 --- a/include/objects.h +++ b/include/objects.h @@ -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; diff --git a/include/segment_symbols.h b/include/segment_symbols.h deleted file mode 100644 index 372f16ef6..000000000 --- a/include/segment_symbols.h +++ /dev/null @@ -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 diff --git a/include/segments.h b/include/segments.h index f33243006..226b52af7 100644 --- a/include/segments.h +++ b/include/segments.h @@ -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 */ diff --git a/include/vehicles.h b/include/vehicles.h index 65b71a4e2..a45a8cef4 100644 --- a/include/vehicles.h +++ b/include/vehicles.h @@ -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; // diff --git a/mk64.ld b/mk64.ld index f95f7037e..70f4820a5 100644 --- a/mk64.ld +++ b/mk64.ld @@ -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*); diff --git a/src/code_800029B0.c b/src/code_800029B0.c index cbc1e1cf4..a9179a604 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -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; diff --git a/src/code_800029B0.h b/src/code_800029B0.h index eb8e9e940..e5e3946b2 100644 --- a/src/code_800029B0.h +++ b/src/code_800029B0.h @@ -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; diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index 96452781b..c37e2282f 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -24,6 +24,7 @@ #include "common_structs.h" #include "main.h" #include "menus.h" +#include extern UnkCommonTextureStruct0 *D_800DC720[]; @@ -2588,7 +2589,7 @@ extern f32 D_80162FA0; extern f32 D_80162FA8; extern u16 D_80164430; -void func_8000BA14(s32 arg0, f32 arg1, f32 arg2, s16 arg3) { +void func_8000BA14(u16 arg0, f32 arg1, f32 arg2, s16 arg3) { f32 sp54; f32 sp50; f32 sp4C; @@ -3993,7 +3994,7 @@ void func_8000EF20(void) { } void func_8000F0E0(void) { - D_80164670 = 0; + D_80164670[0] = 0; D_80164678[0] = 0; D_80164672 = 0; D_8016467A = 0; @@ -5465,38 +5466,35 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011B14.s") #ifdef MIPS_TO_C //generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 -extern ? D_80162EB8; -extern s16 D_801630E8; -extern s16 D_801632D0; -extern s16 D_801632E8; -//extern ? D_801634F8; -extern u16 gNearestWaypointByPlayerId; -s16 gCurrentCourseId; /* unable to generate initializer */ +//extern ? D_80162EB8; +extern s16 D_801630E8[]; +extern s32 D_801632B0; -void func_80011D48(s32 arg0, void *arg1) { - s32 temp_a2; - s32 temp_v0; - void *temp_t3; - void *temp_v1; +void func_80011D48(s32 playerIndex, Player *player) { + //s32 temp_a2; + //s32 temp_v0; + //s32 temp_t3; + //void *temp_v1; - temp_v0 = arg0 * 2; - temp_t3 = (*(&D_801632D0 + temp_v0) * 8) + *(&D_80162EB8 + (gCurrentCourseId * 4)); - D_801632B0 = temp_t3; - temp_a2 = temp_t3->unk4; - if (*(&gNearestWaypointByPlayerId + temp_v0) >= temp_t3->unk2) { - switch (temp_a2) { + // temp_v0 = playerIndex * 2; + // * 8) ? + //temp_t3 = D_801632D0[playerIndex] + D_80162EB8[gCurrentCourseId]; + D_801632B0 = D_801632D0[playerIndex] + D_80162EB8[gCurrentCourseId]; + // temp_a2 = temp_t3; + if (gNearestWaypointByPlayerId[playerIndex] >= D_801632B0) { + switch (D_801632B0) { case 1: - arg1->unkBC = arg1->unkBC & ~0x10; - *(&D_801630E8 + temp_v0) = 0; - *(&D_801632E8 + temp_v0) = 1; - return; + player->unk_0BC &= ~0x10; + D_801630E8[playerIndex] = 0; + D_801632E8[playerIndex] = 1; + break; case 3: case 4: case 5: - temp_v1 = (arg0 * 0x10) + &D_801634F8; - temp_v1->unk4 = temp_v1->unkC; - *(&D_801632E8 + temp_v0) = 1; - return; + //temp_v1 = D_801634F8[playerIndex]; + D_801634F8[playerIndex].unk4 = D_801634F8[playerIndex].unkC; + D_801632E8[playerIndex] = 1; + break; case 2: case 6: case 7: @@ -5504,45 +5502,30 @@ void func_80011D48(s32 arg0, void *arg1) { case 9: case 10: case 11: - *(&D_801632E8 + temp_v0) = 1; + D_801632E8[playerIndex] = 1; /* Duplicate return node #6. Try simplifying control flow for better match */ - return; + break; } - } else { - default: } } #else GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011D48.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80011B14(Player *); // extern -void func_80011D48(Player *); // extern -extern s16 D_801632E8; +void func_80011E38(s32 playerIndex) { + Player *player = gPlayerOne + playerIndex; -void func_80011E38(s32 arg0) { - Player *temp_a1; - u16 temp_v0; - - temp_v0 = *(&D_801632E8 + (arg0 * 2)); - temp_a1 = &gPlayerOne[arg0]; - if (temp_v0 != 0) { - if (temp_v0 != 1) { - if (temp_v0 != 2) { - return; - } - func_80011D48(temp_a1); - // Duplicate return node #6. Try simplifying control flow for better match - return; - } - func_80011B14(temp_a1); + switch(D_801632E8[playerIndex]) { + case 0: + break; + case 1: + func_80011B14(playerIndex, player); + break; + case 2: + func_80011D48(playerIndex, player); + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80011E38.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 @@ -5604,7 +5587,7 @@ extern s16 D_80162EB0; extern s32 D_8016359C; f32 func_802AE1C0(f32, f32, f32); -s32 func_8001168C(void *, struct TrackWayPoint *, s32); +s32 func_8001168C(void *, void *, s32); void func_800120C8(void) { @@ -5621,39 +5604,24 @@ void func_800120C8(void) { } temp = (s16 *)D_80163598; - D_8016359C = func_8001168C(temp , waypoint, i - 1); + D_8016359C = func_8001168C(temp, waypoint, i - 1); D_80162EB0 = func_802AE1C0(temp[0], 2000.0f, temp[1]); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -s32 func_8001168C(s32, u16 *, s32); // extern -extern ? d_frappe_snowland_tree; -extern s16 D_80162EB2; -extern s32 D_80163598; -extern s32 D_8016359C; -extern uintptr_t gSegmentTable; - void func_80012190(void) { - u16 *temp_a1; - u16 *phi_v0; - s32 phi_v1; + struct TrackWayPoint *tree; + s32 i = 0; - temp_a1 = *(&gSegmentTable + ((&d_frappe_snowland_tree >> 0x18) * 4)) + (&d_frappe_snowland_tree & 0xFFFFFF) + 0x80000000; - phi_v0 = temp_a1; - phi_v1 = 0; -loop_1: - phi_v0 += 8; - if (*phi_v0 != 0x8000) { - phi_v1 += 1; - goto loop_1; + tree = (struct TrackWayPoint *) VIRTUAL_TO_PHYSICAL2(gSegmentTable[SEGMENT_NUMBER2(d_frappe_snowland_tree)] + (SEGMENT_OFFSET(d_frappe_snowland_tree))); + + for (i = 0; ; i++) { + if ((u16)tree[i].wayPointX == 0x8000) { + break; + } } - D_8016359C = func_8001168C(D_80163598, temp_a1, phi_v1 - 1); - D_80162EB2 = -0x28; + D_8016359C = func_8001168C(D_80163598, tree, i - 1); + D_80162EB2 = -40; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80012190.s") -#endif void func_80012220(VehicleStuff *vehicle) { f32 origXPos; @@ -5791,7 +5759,6 @@ void func_80012780(TrainCarStuff *trainCar, s16 *arg1, u16 arg2) { extern s16 D_80162FCC; //extern s32 D_80163598 extern s32 D_8016359C; -//extern TrainStuff D_801635C4; // This is really Vec2s D_80163598[465] but that does not match. // Likely because this is a shared pointer between courses. @@ -5808,13 +5775,14 @@ void func_800127E0(void) { s32 i; s32 j; - for (i = 0; i < 2; i++) { - // outputs 160 or 392 depending on the train + for (i = 0; i < NUM_TRAINS; i++) { + // outputs 160 or 392 depending on the train. // Wraps the value around to always output a valid waypoint. - waypointOffset = (((i * D_8016359C) / 2) + 160) % D_8016359C; + waypointOffset = (((i * D_8016359C) / NUM_TRAINS) + 160) % D_8016359C; + // 120.0f is about the maximum usable value sTrains[i].someMultiplier = 5.0f; - for (j = 0; j < 5; j++) { + for (j = 0; j < NUM_PASSENGER_CAR_ENTRIES; j++) { waypointOffset += 4; ptr1 = &sTrains[i].passengerCars[j]; ptr2 = &D_80163598[waypointOffset]; @@ -5831,30 +5799,31 @@ void func_800127E0(void) { ptr2 = &D_80163598[waypointOffset]; func_80012780(&sTrains[i].locomotive, ptr2, waypointOffset); - sTrains[i].numCars = 0; + // Only use locomotive unless overwritten below. + sTrains[i].numCars = LOCOMOTIVE_ONLY; } // Spawn all rolling stock in single player mode. switch (gScreenModeSelection) { - case 0: // single player - for (i = 0; i < 2; i++) { + case SCREEN_MODE_1P: // single player + for (i = 0; i < NUM_TRAINS; i++) { sTrains[i].tender.isActive = 1; // Same line required for matching... - for (j = 0; j < 5; j++) { sTrains[i].passengerCars[j].isActive = 1; } + for (j = 0; j < NUM_PASSENGER_CAR_ENTRIES; j++) { sTrains[i].passengerCars[j].isActive = 1; } - sTrains[i].numCars = 6; + sTrains[i].numCars = NUM_TENDERS + NUM_PASSENGER_CAR_ENTRIES; } break; // Spawn locomotive, tender, and one passenger car in versus 2/3 player mode. - case 1: // multiplayer fall-through - case 2: - if (gModeSelection != 0) { - for (i = 0; i < 2; i++) { + case SCREEN_MODE_2P_SPLITSCREEN_HORIZONTAL: // multiplayer fall-through + case SCREEN_MODE_2P_SPLITSCREEN_VERTICAL: + if (gModeSelection != GRAND_PRIX) { + for (i = 0; i < NUM_TRAINS; i++) { sTrains[i].tender.isActive = 1; sTrains[i].passengerCars[4].isActive = 1; - sTrains[i].numCars = 2; + sTrains[i].numCars = NUM_TENDERS + NUM_2P_PASSENGER_CARS; } } break; @@ -5880,13 +5849,9 @@ void func_80012A48(TrainCarStuff *trainCar, s16 arg1) { trainCarActor->velocity[2] = trainCar->velocity[2]; } -//#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -s32 func_800755FC(s32, Vec3f, f32); /* extern */ +s32 func_800755FC(s32, Vec3f, f32); s16 func_800DBAC(Vec3f, Vec3s, f32); extern s16 D_80162FCC; -extern Vec3f D_801635A4; -extern Vec3s D_801635BC; void func_80012AC0(void) { @@ -5902,7 +5867,7 @@ void func_80012AC0(void) { D_80162FCC += 1; - for (i = 0; i < 2; i++) { + for (i = 0; i < NUM_TRAINS; i++) { temp_s0 = (u16) sTrains[i].locomotive.wayPointIndex; temp_f20 = sTrains[i].locomotive.position[0]; @@ -5914,16 +5879,15 @@ void func_80012AC0(void) { sTrains[i].locomotive.velocity[2] = sTrains[i].locomotive.position[2] - temp_f22; func_80012A48(&sTrains[i].locomotive, temp_v0); - //temp_v0_2 = (u16) sTrains[i].locomotive.wayPointIndex; + if ((temp_s0 != sTrains[i].locomotive.wayPointIndex) && ((sTrains[i].locomotive.wayPointIndex == 0x00BE) || (sTrains[i].locomotive.wayPointIndex == 0x0140))) { func_800C98B8(sTrains[i].locomotive.position, sTrains[i].locomotive.velocity, 0x1901800E); } else if (random_int(100) == 0) { func_800C98B8(sTrains[i].locomotive.position, sTrains[i].locomotive.velocity, 0x1901800D); - //if ((sTrains && sTrains) && sTrains) {} } - // temp_v0_3 = func_800061DC(&D_801635A4, 2000.0f, sTrains[i].someFlags); + sTrains[i].someFlags = func_800061DC(sTrains[i].locomotive.position, 2000.0f, sTrains[i].someFlags); if ((((s16) D_80162FCC % 5) == 0) && (sTrains[i].someFlags != 0)) { sp90[0] = sTrains[i].locomotive.position[0]; @@ -5944,7 +5908,7 @@ void func_80012AC0(void) { func_80012A48(car, temp_v0); } - for (j = 0; j < 5; j++) { + for (j = 0; j < NUM_PASSENGER_CAR_ENTRIES; j++) { car = &sTrains[i].passengerCars[j]; if (car->isActive == 1) { temp_f20 = car->position[0]; @@ -5959,10 +5923,6 @@ void func_80012AC0(void) { } } -//#else -//GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80012AC0.s") -//#endif - void func_80012DC0(s32 playerId, Player *player) { TrainCarStuff *trainCar; f32 playerPosX; @@ -6028,7 +5988,7 @@ void func_80013054(void) { isCrossingTriggeredByIndex[0] = 0; isCrossingTriggeredByIndex[1] = 0; - for (i = 0; i < 2; i++) { + for (i = 0; i < NUM_TRAINS; i++) { temp_f16 = sTrains[i].locomotive.wayPointIndex / ((f32) D_8016359C); temp_f18 = 0.72017354f; temp_f12 = 0.42299348f; @@ -6045,7 +6005,7 @@ void func_80013054(void) { } } - for (i = 0; i < 2; i++) { + for (i = 0; i < NUM_TRAINS; i++) { if (isCrossingTriggeredByIndex[i] == 1) { D_801637BC[i] += 1; } else { @@ -6079,48 +6039,41 @@ void func_800131DC(s32 playerId) { } } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s16 D_80162EB2; extern s16 D_801630FC; -extern s32 D_80163598; -extern ? D_801637EC; extern s8 D_8018EDF3; - void func_800132F4(void) { - PaddleWheelBoatStuff *temp_a0; PaddleWheelBoatStuff *var_a1; - s16 var_v1; - void *temp_a2; - - var_a1 = D_801637C0; - var_v1 = 0; - do { - temp_a2 = ((var_v1 & 0xFFFF) * 4) + D_80163598; - temp_a0 = var_a1; - var_a1->position[0] = (f32) temp_a2->unk0; + s32 i; + struct TrackWayPoint *temp_a2; + u16 temp; + for (i = 0; i < 1; i++) { + temp = i * 0xB4; + var_a1 = &D_801637C0[i]; + temp_a2 = &D_80163598[temp]; + var_a1->position[0] = (f32) temp_a2->wayPointX; var_a1->position[1] = (f32) D_80162EB2; - var_a1->wayPointIndex = var_v1; - var_v1 += 0xB4; + // Shouldn't this be wayPointZ? Something doesn't seem right here. + // Unless temp_a2 has been converted to X,Z with no Y. In-that case our + // struct is wrong or the member name is wrong. + var_a1->position[2] = (f32) temp_a2->wayPointY; + var_a1->wayPointIndex = i * 0xB4; var_a1->actorIndex = -1; - var_a1->position[2] = (f32) temp_a2->unk2; + if (D_8018EDF3 >= 3) { var_a1->isActive = 0; } else { var_a1->isActive = 1; } - var_a1 += 0x2C; - temp_a0->velocity[0] = 0.0f; - temp_a0->velocity[1] = 0.0f; - temp_a0->velocity[2] = 0.0f; - temp_a0->someMultiplier = 1.6666666f; - temp_a0->yRotation = 0; - } while (var_a1 != &D_801637EC); + var_a1->velocity[0] = 0.0f; + var_a1->velocity[1] = 0.0f; + var_a1->velocity[2] = 0.0f; + // fakematch + temp_a2 = &D_80163598[temp]; + var_a1->someMultiplier = 1.6666666f; + var_a1->yRotation = 0; + } D_801630FC = 0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800132F4.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc @@ -6282,96 +6235,71 @@ void func_80013854(Player *player) { } } -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc extern s16 D_801631C8; extern s16 D_8016347A; void func_800139E4(f32 arg0, f32 arg1, s32 arg2, s32 arg3, VehicleStuff *vehicle, struct TrackWayPoint *wayPointList) { - VehicleStuff *var_s0; - f32 *var_s1; - s16 *var_s2; - s16 temp_v0_2; - s16 var_v0; - s32 temp_hi; - s32 var_s3; - s32 var_s4; + VehicleStuff *veh; struct TrackWayPoint *temp_v0; - u16 temp_s7; - - temp_s7 = *gWaypointCountByPathIndex; - var_s3 = 0; - if (arg2 > 0) { - var_s0 = vehicle; - var_s4 = 0; - var_s1 = var_s0->position; - var_s2 = &var_s0->wayPointIndex; - do { - temp_hi = (s32) ((var_s4 / arg2) + arg3) % (s32) temp_s7; - temp_v0 = &wayPointList[temp_hi & 0xFFFF]; - var_s0->position[0] = (f32) temp_v0->wayPointX; - var_s0->position[1] = (f32) temp_v0->wayPointY; - var_s0->actorIndex = -1; - var_s0->wayPointIndex = (s16) temp_hi; - var_s0->unused = 0; - var_s0->velocity[0] = 0.0f; - var_s0->velocity[1] = 0.0f; - var_s0->velocity[2] = 0.0f; - var_s0->someFlags = 0; - var_s0->someFlagsTheSequel = 0; - var_s0->position[2] = (f32) temp_v0->wayPointZ; - if (gModeSelection == TIME_TRIALS) { - var_s0->someType = (s16) (var_s3 % 3); + s32 i; + u16 waypointOffset; + s32 numWaypoints = gWaypointCountByPathIndex[0]; + for (i = 0; i < arg2; i++) { + waypointOffset = (((i * numWaypoints) / arg2) + arg3) % numWaypoints; + veh = &vehicle[i]; + temp_v0 = &wayPointList[waypointOffset]; + veh->position[0] = (f32) temp_v0->wayPointX; + veh->position[1] = (f32) temp_v0->wayPointY; + veh->position[2] = (f32) temp_v0->wayPointZ; + veh->actorIndex = -1; + veh->wayPointIndex = waypointOffset; + veh->unused = 0; + veh->velocity[0] = 0.0f; + veh->velocity[1] = 0.0f; + veh->velocity[2] = 0.0f; + veh->someFlags = 0; + veh->someFlagsTheSequel = 0; + if (gModeSelection == 1) { + veh->someType = (i % 3); } else { - var_s0->someType = random_int(3U); + veh->someType = random_int(3); } - temp_v0_2 = var_s0->someType; - var_s0->someMultiplierTheSequel = (f32) ((f64) (f32) (temp_v0_2 - 1) * 0.6); - if (((gCCSelection > 0) || (gModeSelection == TIME_TRIALS)) && (temp_v0_2 == 2)) { - var_s0->someMultiplier = arg0; + veh->someMultiplierTheSequel = (f32) ((f64) (f32) (veh->someType - 1) * 0.6); + if (((gCCSelection > 0) || (gModeSelection == 1)) && (veh->someType == 2)) { + veh->someMultiplier = arg0; } else { - var_s0->someMultiplier = arg1; + veh->someMultiplier = arg1; } - var_s0->rotation[0] = 0; - var_s0->rotation[2] = 0; + veh->rotation[0] = 0; + veh->rotation[2] = 0; if (D_8016347A == 0) { - var_v0 = func_8000D6D0(var_s1, var_s2, var_s0->someMultiplier, var_s0->someMultiplierTheSequel, 0, 3); + veh->rotation[1] = func_8000D6D0(veh->position, &veh->wayPointIndex, veh->someMultiplier, veh->someMultiplierTheSequel, 0, 3); } else { - var_v0 = func_8000D940(var_s1, var_s2, var_s0->someMultiplier, var_s0->someMultiplierTheSequel, 0); + veh->rotation[1] = func_8000D940(veh->position, &veh->wayPointIndex, veh->someMultiplier, veh->someMultiplierTheSequel, 0); } - var_s0->rotation[1] = var_v0; - var_s3 += 1; - var_s4 += temp_s7; - var_s0 += 0x34; - var_s1 += 0x34; - var_s2 += 0x34; - } while (var_s3 != arg2); - } - D_801631C8 = 0x000A; + } + D_801631C8 = 10; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800139E4.s") -#endif f32 func_80013C74(s16 arg0, s16 arg1) { f32 var_f2; var_f2 = 0.0f; if (arg1 < 0x28A) { - switch (arg0) { /* switch 1; irregular */ - case 0: /* switch 1 */ + switch (arg0) { + case 0: var_f2 = -0.7f; break; - case 1: /* switch 1 */ + case 1: break; - case 2: /* switch 1 */ + case 2: var_f2 = 0.7f; break; - default: /* switch 1 */ + default: break; } } else { - switch (arg0) { /* irregular */ + switch (arg0) { case 0: case 1: var_f2 = -0.5f; @@ -6625,29 +6553,29 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80013F7C.s") f32 func_800145A8(s16 arg0, f32 arg1, s16 arg2) { if (arg2 < 0x28A) { - switch (arg0) { /* switch 1; irregular */ - case 0: /* switch 1 */ + switch (arg0) { + case 0: if (arg1 < 0.0) { arg1 = 0.0f; } break; - case 1: /* switch 1 */ + case 1: if (arg1 < 0.0) { arg1 = -0.8f; } else { arg1 = 0.8f; } break; - case 2: /* switch 1 */ + case 2: if (arg1 >= 0.0) { arg1 = 0.0f; } break; - default: /* switch 1 */ + default: break; } } else { - switch (arg0) { /* irregular */ + switch (arg0) { case 0: case 1: arg1 = 0.5f; @@ -6703,25 +6631,15 @@ loop_4: GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800146B8.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800139E4(f32 arg0, f32 arg1, s32 arg2, f32 arg3, VehicleStuff *arg4, struct TrackWayPoint *arg5); -extern f64 D_800ED1B8; -extern f64 D_800ED1C0; -extern f64 D_800ED1C8; -extern s32 gBoxTruckList; void func_800147E0(void) { - f64 temp_f0 = (gCCSelection * D_800ED1B8) / 216.0; - s32 phi_a2 = NUM_RACE_BOX_TRUCKS; - + f32 a = ((gCCSelection * 90.0) / 216.0f) + 4.583333333333333; + f32 b = ((gCCSelection * 90.0) / 216.0f) + 2.9166666666666665; + s32 numTrucks = NUM_RACE_BOX_TRUCKS; if (gModeSelection == TIME_TRIALS) { - phi_a2 = NUM_TIME_TRIAL_BOX_TRUCKS; + numTrucks = NUM_TIME_TRIAL_BOX_TRUCKS; } - func_800139E4(temp_f0 + D_800ED1C0, temp_f0 + D_800ED1C8, phi_a2, 0, &gBoxTruckList, D_80164550); + func_800139E4(a, b, numTrucks, 0, &gBoxTruckList, &D_80164550[0][0]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800147E0.s") -#endif void func_8001487C(void) { s32 loopIndex; @@ -6738,28 +6656,17 @@ void func_8001490C(s32 playerId) { func_800146B8(playerId, NUM_RACE_BOX_TRUCKS, gBoxTruckList); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800139E4(f32, f32, ?, ?, ? *, s16 *); // extern -extern f64 D_800ED1D0; -extern f64 D_800ED1D8; -extern f64 D_800ED1E0; -extern VehicleStuff gSchoolBusList; - void func_80014934(void) { - f64 temp_f0; - ? phi_a2; + s32 numBusses; + f32 a = ((gCCSelection * 90.0) / 216.0f) + 4.583333333333333; + f32 b = ((gCCSelection * 90.0) / 216.0f) + 2.9166666666666665; - temp_f0 = (gCCSelection * D_800ED1D0) / 216.0; - phi_a2 = NUM_RACE_SCHOOL_BUSES; + numBusses = NUM_RACE_SCHOOL_BUSES; if (gModeSelection == TIME_TRIALS) { - phi_a2 = NUM_TIME_TRIAL_SCHOOL_BUSES; + numBusses = NUM_TIME_TRIAL_SCHOOL_BUSES; } - func_800139E4(temp_f0 + D_800ED1D8, temp_f0 + D_800ED1E0, phi_a2, 0x4B, &gSchoolBusList, D_80164550); + func_800139E4(a, b, numBusses, 0x4B, &gSchoolBusList, &D_80164550[0][0]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014934.s") -#endif void func_800149D0(void) { s32 loopIndex; @@ -6776,28 +6683,17 @@ void func_80014A60(s32 playerId) { func_800146B8(playerId, NUM_RACE_SCHOOL_BUSES, gSchoolBusList); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800139E4(f32, f32, ?, ?, ? *, s16 *); // extern -extern f64 D_800ED1E8; -extern f64 D_800ED1F0; -extern f64 D_800ED1F8; -extern VehicleStuff gTankerTruckList; - void func_80014A88(void) { - f64 temp_f0; - ? phi_a2; + s32 numTrucks; + f32 a = ((gCCSelection * 90.0) / 216.0f) + 4.583333333333333; + f32 b = ((gCCSelection * 90.0) / 216.0f) + 2.9166666666666665; - temp_f0 = (gCCSelection * D_800ED1E8) / 216.0; - phi_a2 = NUM_RACE_TANKER_TRUCKS; + numTrucks = NUM_RACE_TANKER_TRUCKS; if (gModeSelection == TIME_TRIALS) { - phi_a2 = NUM_TIME_TRIAL_TANKER_TRUCKS; + numTrucks = NUM_TIME_TRIAL_TANKER_TRUCKS; } - func_800139E4(temp_f0 + D_800ED1F0, temp_f0 + D_800ED1F8, phi_a2, 0x32, &gTankerTruckList, D_80164550); + func_800139E4(a, b, numTrucks, 50, &gTankerTruckList, &D_80164550[0][0]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014A88.s") -#endif void func_80014B24(void) { s32 loopIndex; @@ -6814,28 +6710,17 @@ void func_80014BB4(s32 playerId) { func_800146B8(playerId, NUM_RACE_TANKER_TRUCKS, gTankerTruckList); } -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_800139E4(f32, f32, ?, ?, ? *, s16 *); // extern -extern f64 D_800ED200; -extern f64 D_800ED208; -extern f64 D_800ED210; -extern VehicleStuff gCarList; - void func_80014BDC(void) { - f64 temp_f0; - ? phi_a2; + s32 numCars; + f32 a = ((gCCSelection * 90.0) / 216.0f) + 4.583333333333333; + f32 b = ((gCCSelection * 90.0) / 216.0f) + 2.9166666666666665; - temp_f0 = (gCCSelection * D_800ED200) / 216.0; - phi_a2 = NUM_RACE_CARS; + numCars = NUM_RACE_CARS; if (gModeSelection == TIME_TRIALS) { - phi_a2 = NUM_TIME_TRIAL_CARS; + numCars = NUM_TIME_TRIAL_CARS; } - func_800139E4(temp_f0 + D_800ED208, temp_f0 + D_800ED210, phi_a2, 0x19, &gCarList, D_80164550); + func_800139E4(a, b, numCars, 25, &gCarList, &D_80164550[0][0]); } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014BDC.s") -#endif void func_80014C78(void) { s32 loopIndex; @@ -6866,7 +6751,7 @@ void func_80014D30(s32 cameraId, s32 pathIndex) { extern s32 D_80163238; extern s16 gNearestWaypointByCameraId; extern s16 D_80164670[]; -//extern s16 D_80164678; + extern s16 D_80164680; extern ? D_801646C0; extern s32 D_801646C8; @@ -6917,7 +6802,6 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80014DE4.s") #ifdef MIPS_TO_C //generated by m2c commit bece1d6db17040749f77dbbd090363cc6fb926f9 extern ? D_80164498; -extern s16 D_80164678; f32 func_80014EE4(f32 arg0, s32 arg1) { f32 temp_f0; @@ -7073,7 +6957,7 @@ UNUSED void func_8001530C(void) { } -void func_80015314(s32 playerId, UNUSED s32 arg1, s32 cameraId) { +void func_80015314(s32 playerId, UNUSED f32 arg1, s32 cameraId) { Camera *temp_a0; Player *temp_a1; @@ -7134,69 +7018,46 @@ void func_80015390(Camera *camera, UNUSED Player *player, UNUSED s32 arg2) { camera->rot[2] = 0; } -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8000BBD8(f32, s32, f32, s16); /* extern */ -extern f32 D_80162FA0; -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern ? D_80164688; +void func_8000BBD8(u16, f32, s16); /* extern */ +f32 func_802AE1C0(f32,f32,f32); +extern f32 D_80162FA0[]; +extern f32 D_801645F8[]; +extern f32 D_80164618[]; +extern f32 D_80164638[]; +extern f32 D_80164648[]; +extern f32 D_80164688[]; +void func_80015544(s32 playerId, f32 arg1, s32 cameraId, s32 pathIndex) { + Camera* camera; -void func_80015544(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { - s32 sp2C; - s16 *sp28; - f32 *sp24; - f32 *sp20; - f64 sp18; - Camera *temp_v0; - f32 *temp_a0; - f32 *temp_a1; - f32 *var_v1; - f32 temp_f0; f32 temp_f12; - f64 temp_f12_2; - f64 temp_f2; - s16 *temp_v1; - s32 temp_hi; - s32 temp_t7; + f32 temp_f2; + s32 test = gWaypointCountByPathIndex[pathIndex]; - temp_t7 = cameraId * 4; - temp_hi = (s32) (gNearestWaypointByPlayerId[playerId] + 0xA) % (s32) gWaypointCountByPathIndex[pathIndex]; - *(&D_80164688 + temp_t7) = arg1; - temp_v1 = &gNearestWaypointByCameraId[cameraId]; - *temp_v1 = (s16) temp_hi; - sp28 = temp_v1; - sp2C = temp_t7; - func_8000BBD8(arg1, temp_hi & 0xFFFF, arg1, pathIndex); - temp_f12 = D_80162FA0.unk0; - temp_f0 = D_80162FA0.unk8; - temp_a0 = temp_t7 + &D_801645F8; - temp_a1 = temp_t7 + &D_80164638; - *temp_a0 = temp_f12; - *temp_a1 = temp_f0; - sp20 = temp_a1; - sp24 = temp_a0; - temp_f2 = (f64) (f32) D_80164550[(s32) pathIndex][*temp_v1].wayPointY; - sp18 = temp_f2; - temp_f12_2 = (f64) func_802AE1C0(temp_f12, (f32) (temp_f2 + 30.0), temp_f0); - if ((temp_f12_2 < (temp_f2 - 20.0)) || (temp_f12_2 >= 3000.0)) { - var_v1 = temp_t7 + &D_80164618; - *var_v1 = (f32) (temp_f2 + 10.0); + + D_80164688[cameraId] = arg1; + camera = cameras + cameraId; + gNearestWaypointByCameraId[cameraId] = (gNearestWaypointByPlayerId[playerId] + 10) % test; + + func_8000BBD8(gNearestWaypointByCameraId[cameraId], arg1, pathIndex); + + D_801645F8[cameraId] = D_80162FA0[0]; + D_80164638[cameraId] = D_80162FA0[2]; + + temp_f2 = (f32) D_80164550[pathIndex][gNearestWaypointByCameraId[cameraId]].wayPointY; + + temp_f12 = func_802AE1C0(D_80162FA0[0], (f32) (temp_f2 + 30.0), D_80162FA0[2]); + if ((temp_f12 < (temp_f2 - 20.0)) || (temp_f12 >= 3000.0)) { + D_80164618[cameraId] = (f32) (temp_f2 + 10.0); } else { - var_v1 = temp_t7 + &D_80164618; - *var_v1 = (f32) (temp_f12_2 + 10.0); + D_80164618[cameraId] = (f32) (temp_f12 + 10.0); } - *(&D_80164648 + temp_t7) = 0.0f; - temp_v0 = &cameras[cameraId]; - temp_v0->pos[0] = *temp_a0; - temp_v0->pos[1] = *var_v1; - temp_v0->pos[2] = *temp_a1; + D_80164648[cameraId] = 0.0f; + camera->pos[0] = D_801645F8[cameraId]; + camera->pos[1] = D_80164618[cameraId]; + camera->pos[2] = D_80164638[cameraId]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80015544.s") -#endif + + #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -7294,63 +7155,28 @@ block_10: GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001577C.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8000BBD8(f32, s32, f32, s16, s16); /* extern */ -extern f32 D_80162FA0; -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern ? D_80164688; - void func_80015A9C(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { - s32 sp20; - s16 *sp1C; - Camera *temp_v0; - f32 *temp_a0; - f32 *temp_a1; - f32 *temp_a2_2; - f32 *temp_t0; - f32 temp_f0; - s16 *temp_v1; - s16 temp_a2; - s16 temp_a3; - s32 temp_t3; - s32 temp_t8; + Camera* camera = cameras + cameraId; - temp_a3 = pathIndex; - temp_t8 = cameraId * 4; - temp_v1 = &gNearestWaypointByCameraId[cameraId]; - *(&D_80164688 + temp_t8) = arg1; - *temp_v1 = gNearestWaypointByPlayerId[playerId] + 0xA; - temp_t3 = (s16) *temp_v1 % (s32) gWaypointCountByPathIndex[temp_a3]; - *temp_v1 = (s16) temp_t3; - temp_a2 = temp_a3; - sp20 = temp_t8; - sp1C = temp_v1; - pathIndex = temp_a3; - func_8000BBD8(arg1, temp_t3 & 0xFFFF, arg1, temp_a2, temp_a3); - temp_a0 = temp_t8 + &D_801645F8; - *temp_a0 = D_80162FA0.unk0; - temp_a1 = temp_t8 + &D_80164618; - temp_a2_2 = temp_t8 + &D_80164638; - *temp_a1 = (f32) D_80164550[pathIndex][*temp_v1].wayPointY; - *temp_a2_2 = D_80162FA0.unk8; - temp_f0 = *(&gPlayers->unk_094 + (playerId * 0xDD8)) / 5.0f; - temp_t0 = temp_t8 + &D_80164648; - *temp_t0 = temp_f0; - if ((f64) temp_f0 < 0.0) { - *temp_t0 = 0.0f; + D_80164688[cameraId] = arg1; + gNearestWaypointByCameraId[cameraId] = gNearestWaypointByPlayerId[playerId] + 10; + gNearestWaypointByCameraId[cameraId] = (gNearestWaypointByCameraId[cameraId]) % gWaypointCountByPathIndex[pathIndex]; + + func_8000BBD8(gNearestWaypointByCameraId[cameraId], arg1, pathIndex); + + D_801645F8[cameraId] = D_80162FA0[0]; + D_80164618[cameraId] = (f32) D_80164550[pathIndex][gNearestWaypointByCameraId[cameraId]].wayPointY; + D_80164638[cameraId] = D_80162FA0[2]; + + D_80164648[cameraId] = gPlayers[playerId].unk_094 / 5.0f; + if ((f64) D_80164648[cameraId] < 0.0) { + D_80164648[cameraId] = 0.0f; } - temp_v0 = &cameras[cameraId]; - temp_v0->pos[0] = *temp_a0; - temp_v0->pos[1] = *temp_a1; - temp_v0->pos[2] = *temp_a2_2; + + camera->pos[0] = D_801645F8[cameraId]; + camera->pos[1] = D_80164618[cameraId]; + camera->pos[2] = D_80164638[cameraId]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80015A9C.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -7528,60 +7354,28 @@ block_8: GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80015C94.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8000BBD8(f32, s32, f32, s16, s16); /* extern */ -extern f32 D_80162FA0; -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern ? D_80164658; -extern ? D_80164688; +extern f32 D_80164658[]; void func_800162CC(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { - s32 sp20; - s16 *sp1C; - Camera *temp_v0; - f32 *temp_a0; - f32 *temp_a1; - f32 temp_f0; - f32 temp_f2; - s16 *temp_t0; - s16 temp_a2; - s16 temp_a3; - s32 temp_t8; - s32 temp_t9; + Camera* camera = cameras + cameraId; - temp_t8 = cameraId * 4; - temp_a3 = pathIndex; - temp_t0 = &gNearestWaypointByCameraId[cameraId]; - *(&D_80164688 + temp_t8) = arg1; - *temp_t0 = (s16) gNearestWaypointByPlayerId[playerId]; - temp_t9 = (s16) *temp_t0 % (s32) gWaypointCountByPathIndex[pathIndex]; - *temp_t0 = (s16) temp_t9; - temp_a2 = temp_a3; - sp1C = temp_t0; - sp20 = temp_t8; - pathIndex = temp_a3; - func_8000BBD8(arg1, temp_t9 & 0xFFFF, arg1, temp_a2, temp_a3); - temp_f0 = D_80162FA0.unk0; - *(&D_801645F8 + temp_t8) = temp_f0; - temp_a0 = temp_t8 + &D_80164618; - temp_a1 = temp_t8 + &D_80164638; - *temp_a0 = (f32) D_80164550[pathIndex][*temp_t0].wayPointY; - *temp_a1 = D_80162FA0.unk8; - temp_f2 = *(&gPlayers->unk_094 + (playerId * 0xDD8)); - *(&D_80164658 + temp_t8) = temp_f2; - temp_v0 = &cameras[cameraId]; - *(&D_80164648 + temp_t8) = temp_f2; - temp_v0->pos[0] = temp_f0; - temp_v0->pos[1] = *temp_a0; - temp_v0->pos[2] = *temp_a1; + D_80164688[cameraId] = arg1; + gNearestWaypointByCameraId[cameraId] = gNearestWaypointByPlayerId[playerId]; + gNearestWaypointByCameraId[cameraId] = (gNearestWaypointByCameraId[cameraId]) % gWaypointCountByPathIndex[pathIndex]; + + func_8000BBD8(gNearestWaypointByCameraId[cameraId], arg1, pathIndex); + + D_801645F8[cameraId] = D_80162FA0[0]; + D_80164618[cameraId] = (f32) D_80164550[pathIndex][gNearestWaypointByCameraId[cameraId]].wayPointY; + D_80164638[cameraId] = D_80162FA0[2]; + + D_80164658[cameraId] = gPlayers[playerId].unk_094; + D_80164648[cameraId] = gPlayers[playerId].unk_094; + + camera->pos[0] = D_801645F8[cameraId]; + camera->pos[1] = D_80164618[cameraId]; + camera->pos[2] = D_80164638[cameraId]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800162CC.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -8085,62 +7879,27 @@ void func_80017054(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80017054.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8000BBD8(s32, f32, s16, s16); /* extern */ -extern f32 D_80162FA0; -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern ? D_80164658; -extern ? D_80164688; +void func_80017720(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { + Camera* camera = cameras + cameraId; + s32 pad; -void func_80017720(s32 playerId, s32 arg1, s32 cameraId, s16 pathIndex) { - s32 sp1C; - s16 *sp18; - Camera *temp_v0; - f32 *temp_a0; - f32 *temp_a1; - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f2; - s16 *temp_t0; - s16 temp_a2; - s16 temp_a3; - s32 temp_t3; - s32 temp_t8; + D_80164688[cameraId] = D_80163068[playerId]; + gNearestWaypointByCameraId[cameraId] = gNearestWaypointByPlayerId[playerId] + 3; + gNearestWaypointByCameraId[cameraId] = gNearestWaypointByCameraId[cameraId] % gWaypointCountByPathIndex[pathIndex]; - temp_a3 = pathIndex; - temp_f0 = D_80163068[playerId]; - temp_t8 = cameraId * 4; - temp_t0 = &gNearestWaypointByCameraId[cameraId]; - *(&D_80164688 + temp_t8) = temp_f0; - *temp_t0 = gNearestWaypointByPlayerId[playerId] + 3; - temp_t3 = (s16) *temp_t0 % (s32) gWaypointCountByPathIndex[temp_a3]; - *temp_t0 = (s16) temp_t3; - temp_a2 = temp_a3; - sp18 = temp_t0; - sp1C = temp_t8; - pathIndex = temp_a3; - func_8000BBD8(temp_t3 & 0xFFFF, temp_f0, temp_a2, temp_a3); - temp_f0_2 = D_80162FA0.unk0; - *(&D_801645F8 + temp_t8) = temp_f0_2; - temp_a0 = temp_t8 + &D_80164618; - temp_a1 = temp_t8 + &D_80164638; - *temp_a0 = (f32) D_80164550[pathIndex][*temp_t0].wayPointY; - *temp_a1 = D_80162FA0.unk8; - temp_f2 = *(&gPlayers->unk_094 + (playerId * 0xDD8)); - *(&D_80164658 + temp_t8) = temp_f2; - temp_v0 = &cameras[cameraId]; - *(&D_80164648 + temp_t8) = temp_f2; - temp_v0->pos[0] = temp_f0_2; - temp_v0->pos[1] = *temp_a0; - temp_v0->pos[2] = *temp_a1; + func_8000BBD8(gNearestWaypointByCameraId[cameraId], D_80163068[playerId], pathIndex); + + D_801645F8[cameraId] = D_80162FA0[0]; + D_80164618[cameraId] = (f32) D_80164550[pathIndex][gNearestWaypointByCameraId[cameraId]].wayPointY; + D_80164638[cameraId] = D_80162FA0[2]; + + D_80164658[cameraId] = gPlayers[playerId].unk_094; + D_80164648[cameraId] = gPlayers[playerId].unk_094; + + camera->pos[0] = D_801645F8[cameraId]; + camera->pos[1] = D_80164618[cameraId]; + camera->pos[2] = D_80164638[cameraId]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80017720.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -8314,64 +8073,27 @@ void func_800178F4(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800178F4.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8000BBD8(s32, f32, s16, s16); /* extern */ -extern f32 D_80162FA0; -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern ? D_80164658; -extern ? D_80164688; +void func_80017F10(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { + Camera* camera = cameras + cameraId; + s32 test = gWaypointCountByPathIndex[pathIndex]; -void func_80017F10(s32 playerId, s32 arg1, s32 cameraId, s16 pathIndex) { - s32 sp1C; - s16 *sp18; - Camera *temp_v0_2; - f32 *temp_a0; - f32 *temp_a1; - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f2; - s16 *temp_t0; - s16 temp_a2; - s16 temp_a3; - s32 temp_t3; - s32 temp_t9; - u16 temp_v0; + D_80164688[cameraId] = D_80163068[playerId]; + gNearestWaypointByCameraId[cameraId] = (gNearestWaypointByPlayerId[playerId] + test) - 2; + gNearestWaypointByCameraId[cameraId] = gNearestWaypointByCameraId[cameraId] % test; - temp_a3 = pathIndex; - temp_v0 = gWaypointCountByPathIndex[pathIndex]; - temp_f0 = D_80163068[playerId]; - temp_t9 = cameraId * 4; - temp_t0 = &gNearestWaypointByCameraId[cameraId]; - *(&D_80164688 + temp_t9) = temp_f0; - *temp_t0 = (gNearestWaypointByPlayerId[playerId] + temp_v0) - 2; - temp_t3 = (s16) *temp_t0 % (s32) temp_v0; - *temp_t0 = (s16) temp_t3; - temp_a2 = temp_a3; - sp18 = temp_t0; - sp1C = temp_t9; - pathIndex = temp_a3; - func_8000BBD8(temp_t3 & 0xFFFF, temp_f0, temp_a2, temp_a3); - temp_f0_2 = D_80162FA0.unk0; - *(&D_801645F8 + temp_t9) = temp_f0_2; - temp_a0 = temp_t9 + &D_80164618; - temp_a1 = temp_t9 + &D_80164638; - *temp_a0 = (f32) D_80164550[pathIndex][*temp_t0].wayPointY; - *temp_a1 = D_80162FA0.unk8; - temp_f2 = *(&gPlayers->unk_094 + (playerId * 0xDD8)); - *(&D_80164658 + temp_t9) = temp_f2; - temp_v0_2 = &cameras[cameraId]; - *(&D_80164648 + temp_t9) = temp_f2; - temp_v0_2->pos[0] = temp_f0_2; - temp_v0_2->pos[1] = *temp_a0; - temp_v0_2->pos[2] = *temp_a1; + func_8000BBD8(gNearestWaypointByCameraId[cameraId], D_80163068[playerId], pathIndex); + + D_801645F8[cameraId] = D_80162FA0[0]; + D_80164618[cameraId] = (f32) D_80164550[pathIndex][gNearestWaypointByCameraId[cameraId]].wayPointY; + D_80164638[cameraId] = D_80162FA0[2]; + + D_80164658[cameraId] = gPlayers[playerId].unk_094; + D_80164648[cameraId] = gPlayers[playerId].unk_094; + + camera->pos[0] = D_801645F8[cameraId]; + camera->pos[1] = D_80164618[cameraId]; + camera->pos[2] = D_80164638[cameraId]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80017F10.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -8548,63 +8270,28 @@ void func_800180F0(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800180F0.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8000BA14(s32, f32, ?, s16); /* extern */ -extern f32 D_80162FA0; extern s32 D_8016448C; -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern ? D_80164658; -extern ? D_80164688; -void func_80018718(s32 playerId, s32 arg1, s32 cameraId, s16 pathIndex) { - s32 sp1C; - s16 *sp18; - Camera *temp_v0_2; - f32 *temp_a0; - f32 *temp_a1; - f32 temp_f0; - f32 temp_f0_2; - f32 temp_f2; - s16 *temp_t0; - s16 temp_a3; - s32 temp_hi; - s32 temp_t9; - u16 temp_v0; +void func_80018718(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { + Camera* camera = cameras + cameraId; + s32 test = gWaypointCountByPathIndex[pathIndex]; - temp_a3 = pathIndex; - temp_v0 = gWaypointCountByPathIndex[pathIndex]; - temp_f0 = D_80163068[playerId]; - temp_t9 = cameraId * 4; - temp_hi = (s32) ((gNearestWaypointByPlayerId[playerId] + temp_v0) - 5) % (s32) temp_v0; - *(&D_80164688 + temp_t9) = temp_f0; - temp_t0 = &gNearestWaypointByCameraId[cameraId]; - *temp_t0 = (s16) temp_hi; - sp18 = temp_t0; - sp1C = temp_t9; - pathIndex = temp_a3; - func_8000BA14(temp_hi & 0xFFFF, temp_f0, 0x42700000, temp_a3); - temp_f0_2 = D_80162FA0.unk0; - *(&D_801645F8 + temp_t9) = temp_f0_2; - temp_a0 = temp_t9 + &D_80164618; - temp_a1 = temp_t9 + &D_80164638; - *temp_a0 = (f32) D_80164550[pathIndex][*temp_t0].wayPointY; - *temp_a1 = D_80162FA0.unk8; - temp_f2 = *(&gPlayers->unk_094 + (playerId * 0xDD8)); - *(&D_80164658 + temp_t9) = temp_f2; - *(&D_80164648 + temp_t9) = temp_f2; + D_80164688[cameraId] = D_80163068[playerId]; + gNearestWaypointByCameraId[cameraId] = ((gNearestWaypointByPlayerId[playerId] + test) - 5) % test; + + func_8000BA14(gNearestWaypointByCameraId[cameraId], D_80163068[playerId], 60.0f, pathIndex); + + D_801645F8[cameraId] = D_80162FA0[0]; + D_80164618[cameraId] = (f32) D_80164550[pathIndex][gNearestWaypointByCameraId[cameraId]].wayPointY; + D_80164638[cameraId] = D_80162FA0[2]; + + D_80164658[cameraId] = gPlayers[playerId].unk_094; + D_80164648[cameraId] = gPlayers[playerId].unk_094; D_8016448C = 1; - temp_v0_2 = &cameras[cameraId]; - temp_v0_2->pos[0] = temp_f0_2; - temp_v0_2->pos[1] = *temp_a0; - temp_v0_2->pos[2] = *temp_a1; + camera->pos[0] = D_801645F8[cameraId]; + camera->pos[1] = D_80164618[cameraId]; + camera->pos[2] = D_80164638[cameraId]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80018718.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -8833,70 +8520,34 @@ void func_800188F4(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_800188F4.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_8000BBD8(f32, s32, f32, ?, s32); /* extern */ -extern f32 D_80162FA0; -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern ? D_80164688; - -void func_80019118(s32 playerId, f32 arg1, s32 cameraId, s32 arg3) { - s32 sp2C; - s16 *sp28; - f32 *sp24; - f32 *sp20; - f64 sp18; - Camera *temp_v0_2; - f32 *temp_a0; - f32 *temp_a1; - f32 *var_v1; - f32 temp_f0; +void func_80019118(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { + Camera* camera = cameras + cameraId; + s32 test = gWaypointCountByPathIndex[0]; f32 temp_f12; - f64 temp_f12_2; - f64 temp_f2; - s16 *temp_v0; - s32 temp_t5; - s32 temp_t6; + f32 temp_f2; - temp_t6 = cameraId * 4; - temp_v0 = &gNearestWaypointByCameraId[cameraId]; - *(&D_80164688 + temp_t6) = arg1; - *temp_v0 = gNearestWaypointByPlayerId[playerId] + 0xC; - temp_t5 = (s16) *temp_v0 % (s32) *gWaypointCountByPathIndex; - *temp_v0 = (s16) temp_t5; - sp2C = temp_t6; - sp28 = temp_v0; - func_8000BBD8(arg1, temp_t5 & 0xFFFF, arg1, 0, temp_t6); - temp_f12 = D_80162FA0.unk0; - temp_f0 = D_80162FA0.unk8; - temp_a0 = temp_t6 + &D_801645F8; - temp_a1 = temp_t6 + &D_80164638; - *temp_a0 = temp_f12; - *temp_a1 = temp_f0; - sp20 = temp_a1; - sp24 = temp_a0; - temp_f2 = (f64) (f32) (*D_80164550)[*temp_v0].wayPointY; - sp18 = temp_f2; - temp_f12_2 = (f64) func_802AE1C0(temp_f12, (f32) (temp_f2 + 30.0), temp_f0); - if ((temp_f12_2 < (temp_f2 - 20.0)) || (temp_f12_2 >= 3000.0)) { - var_v1 = temp_t6 + &D_80164618; - *var_v1 = (f32) (temp_f2 + 10.0); + D_80164688[cameraId] = arg1; + gNearestWaypointByCameraId[cameraId] = gNearestWaypointByPlayerId[playerId] + 12; + gNearestWaypointByCameraId[cameraId] = gNearestWaypointByCameraId[cameraId] % test; + + + func_8000BBD8(gNearestWaypointByCameraId[cameraId], arg1, 0); + D_801645F8[cameraId] = D_80162FA0[0]; + D_80164638[cameraId] = D_80162FA0[2]; + temp_f2 = (f32) D_80164550[0][gNearestWaypointByCameraId[cameraId]].wayPointY; + + temp_f12 = func_802AE1C0(D_80162FA0[0], (f32) (temp_f2 + 30.0), D_80162FA0[2]); + + if ((temp_f12 < (temp_f2 - 20.0)) || (temp_f12 >= 3000.0)) { + D_80164618[cameraId] = (f32) (temp_f2 + 10.0); } else { - var_v1 = temp_t6 + &D_80164618; - *var_v1 = (f32) (temp_f12_2 + 10.0); + D_80164618[cameraId] = (f32) (temp_f12 + 10.0); } - *(&D_80164648 + temp_t6) = 0.0f; - temp_v0_2 = &cameras[cameraId]; - temp_v0_2->pos[0] = *temp_a0; - temp_v0_2->pos[1] = *var_v1; - temp_v0_2->pos[2] = *temp_a1; + D_80164648[cameraId] = 0.0f; + camera->pos[0] = D_801645F8[cameraId]; + camera->pos[1] = D_80164618[cameraId]; + camera->pos[2] = D_80164638[cameraId]; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019118.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -8990,32 +8641,20 @@ void func_8001968C(void) { D_80164678[0] = 3; } -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -extern ? D_801645F8; -extern ? D_80164618; -extern ? D_80164638; -extern ? D_80164648; -extern s16 D_80164678; +void func_8001969C(s32 playerId, f32 arg1, s32 cameraId, s16 pathIndex) { + struct TrackWayPoint *waypoint; -void func_8001969C(s32 arg0, s32 arg1, s32 cameraId, s32 arg3) { - s16 *temp_v1; - s32 temp_a1; - struct TrackWayPoint *temp_a0; + gNearestWaypointByCameraId[cameraId] = gWaypointCountByPathIndex[0] - 18; - temp_v1 = &gNearestWaypointByCameraId[cameraId]; - *temp_v1 = *gWaypointCountByPathIndex - 0x12; - temp_a0 = &(*D_80164550)[*temp_v1]; - temp_a1 = cameraId * 4; - *(&D_801645F8 + temp_a1) = (f32) temp_a0->wayPointX; - *(&D_80164618 + temp_a1) = (f32) ((f64) temp_a0->wayPointY + 10.0); - *(&D_80164638 + temp_a1) = (f32) temp_a0->wayPointZ; - *(&D_80164648 + temp_a1) = 0.0f; - *(&D_80164678 + (cameraId * 2)) = 0; + waypoint = &D_80164550[0][gNearestWaypointByCameraId[cameraId]]; + + D_801645F8[cameraId] = waypoint->wayPointX; + // @bug Adding an (f32) cast changes asm, why? + D_80164618[cameraId] = waypoint->wayPointY + 10.0; + D_80164638[cameraId] = waypoint->wayPointZ; + D_80164648[cameraId] = 0.0f; + D_80164678[cameraId] = 0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001969C.s") -#endif #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de @@ -9055,103 +8694,83 @@ void func_80019760(Camera *camera, s32 arg1, s32 arg2, s32 cameraId) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019760.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_80015314(?, s32); /* extern */ -void func_80015544(?, s32, u16); /* extern */ -void func_80015A9C(?, s32, s16); /* extern */ -void func_800162CC(?, s32, s16); /* extern */ -void func_80016C3C(?, s32); /* extern */ -void func_80017720(?, s32, s16); /* extern */ -void func_80017F10(?, s32, s16); /* extern */ -void func_80018718(?, s32, s16); /* extern */ -void func_80019118(?, s32, s16); /* extern */ -void func_8001969C(?, s32, s16); /* extern */ -extern ? D_80163DD8; -extern s16 D_80164680; -extern ? D_801646C0; +void func_80016C3C(s32, f32, s32); +void func_80015314(s32, f32, s32); +void func_80017720(s32, f32, s32, s16); +void func_80017F10(s32, f32, s32, s16); +void func_80018718(s32, f32, s32, s16); +void func_80015544(s32, f32, s32, s32); +void func_80019118(s32, f32, s32, s16); +void func_800162CC(s32, f32, s32, s16); +void func_80015A9C(s32, f32, s32, s16); +extern s32 D_80163DD8[]; +extern s16 D_80164680[]; +extern s16 D_801646C0[]; -void func_80019890(s16 playerId, s32 cameraId) { - Camera *sp28; - s32 sp24; - u16 *sp20; - Camera *temp_t6; - Camera *temp_t9; - s32 temp_t0; - u16 *temp_t4; - u16 temp_s1; - u16 temp_t5; +void func_80019890(s32 playerId, s32 cameraId) { + s32 pathIndex; + Camera *camera = camera1; + camera += cameraId; + camera->playerId = playerId; + + D_801646C0[cameraId] = 0; + pathIndex = gPathIndexByPlayerId[playerId]; - temp_t6 = camera1; - sp28 = temp_t6; - temp_t9 = &temp_t6[cameraId]; - sp28 = temp_t9; - temp_t9->playerId = playerId; - temp_t0 = cameraId * 2; - temp_t4 = temp_t0 + &D_80164680; - *(&D_801646C0 + temp_t0) = 0; - sp24 = temp_t0; - sp20 = temp_t4; - temp_t5 = *temp_t4; - temp_s1 = gPathIndexByPlayerId[playerId]; - switch (temp_t5) { - case 0: - func_80015314(0, cameraId); - break; - case 2: - func_80015544(0xBF800000, cameraId, temp_s1); - break; - case 3: - func_80015544(0x3F800000, cameraId, temp_s1); - break; - case 6: - func_80015A9C(0xBF19999A, cameraId, (s16) temp_s1); - break; - case 7: - func_80015A9C(0x3F19999A, cameraId, (s16) temp_s1); - break; - case 4: - func_800162CC(0xBF800000, cameraId, (s16) temp_s1); - break; - case 5: - func_800162CC(0x3F800000, cameraId, (s16) temp_s1); - break; - case 9: - func_80016C3C(0, cameraId); - break; - case 1: - func_80017720(0, cameraId, (s16) temp_s1); - break; - case 14: - func_80017F10(0, cameraId, (s16) temp_s1); - break; - case 8: - func_80018718(0, cameraId, (s16) temp_s1); - break; - case 12: - func_80019118(0xBF800000, cameraId, (s16) temp_s1); - break; - case 13: - func_80019118(0x3F800000, cameraId, (s16) temp_s1); - break; - case 15: - func_8001969C(0xBF800000, cameraId, (s16) temp_s1); - break; - case 16: - func_8001969C(0x3F800000, cameraId, (s16) temp_s1); - break; - default: - func_80015314(0, cameraId); - break; + switch (D_80164680[cameraId]) { + case 0: + func_80015314(playerId, 0.0f, cameraId); + break; + case 2: + func_80015544(playerId, -1.0f, cameraId, pathIndex); + break; + case 3: + func_80015544(playerId, 1.0f, cameraId, pathIndex); + break; + case 6: + func_80015A9C(playerId, -0.6f, cameraId, (s16) pathIndex); + break; + case 7: + func_80015A9C(playerId, 0.6f, cameraId, (s16) pathIndex); + break; + case 4: + func_800162CC(playerId, -1.0f, cameraId, (s16) pathIndex); + break; + case 5: + func_800162CC(playerId, 1.0f, cameraId, (s16) pathIndex); + break; + case 9: + func_80016C3C(playerId, 0.0f, cameraId); + break; + case 1: + func_80017720(playerId, 0.0f, cameraId, (s16) pathIndex); + break; + case 14: + func_80017F10(playerId, 0.0f, cameraId, (s16) pathIndex); + break; + case 8: + func_80018718(playerId, 0.0f, cameraId, (s16) pathIndex); + break; + case 12: + func_80019118(playerId, -1.0f, cameraId, (s16) pathIndex); + break; + case 13: + func_80019118(playerId, 1.0f, cameraId, (s16) pathIndex); + break; + case 15: + func_8001969C(playerId, -1.0f, cameraId, (s16) pathIndex); + break; + case 16: + func_8001969C(playerId, 1.0f, cameraId, (s16) pathIndex); + break; + default: + func_80015314(playerId, 0.0f, cameraId); + break; } - *(gNearestWaypointByCameraId + sp24) = func_8000BD94(sp28->pos[0], sp28->pos[1], sp28->pos[2], (s32) temp_s1); - if ((s16) *sp20 == 9) { - *(&D_80163DD8 + (cameraId * 4)) = (s32) temp_s1; + gNearestWaypointByCameraId[cameraId] = func_8000BD94(camera->pos[0], camera->pos[1], camera->pos[2], (s32) pathIndex); + if ((s16) D_80164680[cameraId] == 9) { + D_80163DD8[cameraId] = (s32) pathIndex; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019890.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -9221,7 +8840,6 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019B50.s") void func_800C9060(s32, ?, s32, s32); // extern extern ? D_80164608; extern s16 D_80164670; -extern s16 D_80164678; void func_80019C50(s32 arg0) { s32 sp20; @@ -9294,92 +8912,56 @@ void func_80019DE4(void) { #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -extern s16 D_80164670; -extern s16 D_80164678; -extern s16 D_8016467A; -extern s16 D_8016467C; -extern s16 D_8016467E; -extern s16 D_801646CC; +//extern s16 D_80164670; +//extern s16 D_8016467A; +//extern s16 D_8016467C; +//extern s16 D_8016467E; +//extern s16 D_801646CC; void func_80019DF4(void) { - D_80164670 = D_8016467E; - D_80164670 = D_8016467C; - D_80164670 = D_8016467A; - D_80164670 = D_80164678; + // unrolled loop? + D_80164670 = D_80164678[3]; + D_80164670 = D_80164678[2]; + D_80164670 = D_80164678[1]; + D_80164670 = D_80164678[0]; camera1->playerId = *gGPCurrentRacePlayerIdByRank; - D_80164678 = 1; + D_80164678[0] = 1; D_801646CC = 2; } #else GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019DF4.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 -void func_80019890(?, ?); // extern -extern s16 D_80164670; -extern s16 D_80164672; -extern s16 D_80164678; -extern s16 D_80164680; extern s16 D_80164682; void func_80019E58(void) { - D_80164680 = 1; + D_80164680[0] = 1; func_80019890(0, 0); - D_80164670 = D_80164678.unk0; - D_80164678.unk0 = 1; + D_80164670[0] = D_80164678[0]; + D_80164678[0] = 1; D_80164682 = 9; func_80019890(0, 1); - D_80164672 = D_80164678.unk2; - D_80164678.unk2 = 0; + D_80164670[1] = D_80164678[1]; + D_80164678[1] = 0; } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019E58.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_80015314(s32, ?, s32); /* extern */ -extern s16 D_80164670; -extern s16 D_80164678; -extern s16 D_80164680; -extern s32 gPlayerWinningIndex; void func_80019ED0(void) { - ? *var_v0; - s16 *var_s0; - s16 *var_s0_2; - s16 *var_s2; - s16 temp_t6; - s32 temp_v0; - s32 var_s1; + s32 i; - var_v0 = &D_80164670; - var_s0 = &D_80164678; - do { - temp_t6 = *var_s0; - var_s0 += 2; - var_v0 += 2; - var_v0->unk-2 = temp_t6; - } while ((u32) var_s0 < (u32) &D_80164680); - temp_v0 = gPlayerWinningIndex; - *gGPCurrentRacePlayerIdByRank = (s16) temp_v0; - var_s2 = &D_80164680; - var_s0_2 = &D_80164678; - var_s1 = 0; - camera1->playerId = (s16) temp_v0; - do { - *var_s2 = 0; - func_80015314(gPlayerWinningIndex, 0, var_s1); - var_s1 += 1; - var_s0_2 += 2; - var_s2 += 2; - var_s0_2->unk-2 = 1; - } while (var_s1 != 4); + for (i = 0; i < 4; i++) { + D_80164670[i] = D_80164678[i]; + } + + gGPCurrentRacePlayerIdByRank[0] = (s16) gPlayerWinningIndex; + + camera1->playerId = (s16) gPlayerWinningIndex; + + for (i = 0; i < 4; i++) { + D_80164680[i] = 0; + func_80015314(gPlayerWinningIndex, 0, i); + D_80164678[i] = 1; + } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80019ED0.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307 @@ -9478,47 +9060,33 @@ void func_8001A124(s32 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001A124.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit 8267401fa4ef7a38942dcca43353cc1bcc6efabc -extern s16 D_80164680; +extern s16 D_80164680[]; void func_8001A220(s32 arg0, s32 arg1) { - s16 *var_at; - s16 var_t9; - u16 temp_v0; - - temp_v0 = random_int(6U); - switch (temp_v0) { - case 0: - *(&D_80164680 + (arg1 * 2)) = 4; - return; - case 1: - var_at = &D_80164680 + (arg1 * 2); - var_t9 = 5; -block_9: - *var_at = var_t9; - return; - case 2: - *(&D_80164680 + (arg1 * 2)) = 6; - return; - case 3: - *(&D_80164680 + (arg1 * 2)) = 7; - return; - case 4: - *(&D_80164680 + (arg1 * 2)) = 8; - return; - case 5: - *(&D_80164680 + (arg1 * 2)) = 1; - return; - default: - var_at = &D_80164680 + (arg1 * 2); - var_t9 = 8; - goto block_9; + switch (random_int(6)) { + case 0: + D_80164680[arg1] = 4; + break; + case 1: + D_80164680[arg1] = 5; + break; + case 2: + D_80164680[arg1] = 6; + break; + case 3: + D_80164680[arg1] = 7; + break; + case 4: + D_80164680[arg1] = 8; + break; + case 5: + D_80164680[arg1] = 1; + break; + default: + D_80164680[arg1] = 8; + break; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001A220.s") -#endif s32 func_8001A310(s32 arg0, s32 arg1) { if ((gCurrentCourseId == 2) && (arg1 != 0) && (arg0 >= 0xE7) && (arg0 < 0x1C2)) { @@ -9529,22 +9097,19 @@ s32 func_8001A310(s32 arg0, s32 arg1) { #ifdef MIPS_TO_C //generated by m2c commit 3b40ab93768f52ac241c5ae84ef58ef6bc4cb1de -void func_80019890(s32, s32); /* extern */ -s16 func_8001A310(f32, s16, s32, s32); /* extern */ -extern s16 D_80164680; -extern ? D_80164688; +//extern f32 D_80164688[]; void func_8001A348(s32 cameraId, f32 arg1, s32 arg2) { - s32 sp20; - s32 sp1C; - s32 temp_v1; + //s32 sp20; + //s32 sp1C; + //s32 temp_v1; - temp_v1 = cameraId * 2; - sp1C = temp_v1; - sp20 = (s32) *(&cameras->playerId + (cameraId * 0xB8)); - *(&D_80164688 + (cameraId * 4)) = arg1; - *(&D_80164680 + temp_v1) = func_8001A310(arg1, gNearestWaypointByCameraId[cameraId], arg2, cameraId); - func_80019890(sp20, cameraId); + //temp_v1 = cameraId * 2; + //sp1C = temp_v1; + //sp20 = (s32) cameras[1].playerId; // + (cameraId * 0xB8)); + D_80164688[cameraId] = arg1; + D_80164680[cameraId] = func_8001A310(arg1, gNearestWaypointByCameraId[cameraId]); + func_80019890(cameras[0].playerId, cameraId); } #else GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001A348.s") @@ -9853,39 +9418,38 @@ void func_8001AB00(void) { GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001AB00.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909 void func_8001AB74(s32 arg0, s16 *arg1, s32 arg2) { - s32 phi_v0; - - phi_v0 = -1; + s32 value = -1; switch (arg2) { - case 9: - phi_v0 = 0xD; - break; - case 11: - phi_v0 = 0x1B; - break; - case 1: - phi_v0 = 1; - break; - case 8: - phi_v0 = 0x16; - break; - case 10: - phi_v0 = 0x19; - break; - case 12: - phi_v0 = 0x1D; - break; + case 9: + value = 0xD; + break; + case 11: + value = 0x1B; + break; + case 1: + value = 1; + break; + case 8: + value = 0x16; + break; + case 10: + value = 0x19; + break; + case 12: + value = 0x1D; + break; + case 13: + break; + case 14: + break; + case 15: + break; } - if (phi_v0 >= 0) { - *arg1 = phi_v0; + if (value >= 0) { + *arg1 = value; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001AB74.s") -#endif void func_8001ABE0(UNUSED s32 arg0, UNUSED s32 arg1) { @@ -10375,15 +9939,6 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_8001AC10.s") extern u16 D_80163410[]; // One per player? -typedef struct { - f32 unk0; - f32 unk4; - f32 unk8; - f32 unkC; -} Test; - -extern Test D_801634F8[]; - void func_8001BE78(void) { Player* temp_s1; struct TrackWayPoint* temp_s0; diff --git a/src/code_80005FD0.h b/src/code_80005FD0.h index d0ea147e4..0e4d844aa 100644 --- a/src/code_80005FD0.h +++ b/src/code_80005FD0.h @@ -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[]; diff --git a/src/code_8001F980.c b/src/code_8001F980.c index 1ea615eb9..0019cc632 100644 --- a/src/code_8001F980.c +++ b/src/code_8001F980.c @@ -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; diff --git a/src/code_80071F00.c b/src/code_80071F00.c index c88538152..2bcedc2d4 100644 --- a/src/code_80071F00.c +++ b/src/code_80071F00.c @@ -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); diff --git a/src/crash_screen.c b/src/crash_screen.c index ca06220e9..89164af80 100644 --- a/src/crash_screen.c +++ b/src/crash_screen.c @@ -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") diff --git a/src/debug/all_variables.h b/src/debug/all_variables.h index 49cfa444b..531bd8d5c 100644 --- a/src/debug/all_variables.h +++ b/src/debug/all_variables.h @@ -62,8 +62,8 @@ #include #include #include +#include #include -#include #include #include #include diff --git a/src/ending/code_80281780.c b/src/ending/code_80281780.c index 2b3dfe219..57aae09e3 100644 --- a/src/ending/code_80281780.c +++ b/src/ending/code_80281780.c @@ -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(); diff --git a/src/hud_renderer.c b/src/hud_renderer.c index ed790546c..f5bd3aadc 100644 --- a/src/hud_renderer.c +++ b/src/hud_renderer.c @@ -27,6 +27,7 @@ #include "main.h" #include "code_80086E70.h" #include "courses/all_course_data.h" +#include 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++) { diff --git a/src/kart_dma.c b/src/kart_dma.c index f8cc54993..1015be175 100644 --- a/src/kart_dma.c +++ b/src/kart_dma.c @@ -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: diff --git a/src/main.c b/src/main.c index 171529754..1a12a4852 100644 --- a/src/main.c +++ b/src/main.c @@ -3,15 +3,14 @@ #include #include #include -#include "types.h" -#include "config.h" +#include +#include #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 +#include #include #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; } diff --git a/src/os/is_debug.c b/src/os/is_debug.c new file mode 100644 index 000000000..0e4fcddda --- /dev/null +++ b/src/os/is_debug.c @@ -0,0 +1,145 @@ +#include "libultra_internal.h" +#include "libc/stdarg.h" +#include +#include "printf.h" +#include +#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; +} diff --git a/src/os/osSyncPrintf.c b/src/os/osSyncPrintf.c index 41377d13a..26bfc999d 100644 --- a/src/os/osSyncPrintf.c +++ b/src/os/osSyncPrintf.c @@ -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 diff --git a/src/racing/memory.c b/src/racing/memory.c index 4d1cf39dd..f6540e016 100644 --- a/src/racing/memory.c +++ b/src/racing/memory.c @@ -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));