From dc1525c157e26cb384756a983b19f975c5d6b36b Mon Sep 17 00:00:00 2001 From: CoderStig <79828759+CoderStig@users.noreply.github.com> Date: Fri, 29 Oct 2021 23:26:43 -0600 Subject: [PATCH] main.c full match (#46) * main.c full match --- asm/{bss_main.s => bss_800029B0.s} | 197 ----- asm/code_8001C4D0.s | 12 +- asm/code_80091750.s | 4 +- asm/code_80290C20.s | 48 +- asm/code_802B0210.s | 4 +- asm/non_matchings/main/func_80000934.s | 68 -- asm/non_matchings/main/func_80000CE8.s | 22 - asm/non_matchings/main/func_80000D3C.s | 50 -- asm/non_matchings/main/func_8000105C.s | 29 - asm/non_matchings/main/func_800010CC.s | 36 - asm/non_matchings/main/func_8000142C.s | 738 ----------------- asm/non_matchings/main/func_80001ECC.s | 50 -- asm/non_matchings/main/func_80001FAC.s | 81 -- asm/non_matchings/main/func_80002168.s | 77 -- asm/non_matchings/main/func_800022DC.s | 73 -- asm/non_matchings/main/func_80002684.s | 73 -- asm/non_matchings/main/thread3_video.s | 131 --- asm/non_matchings/main/thread5_game_logic.s | 94 --- data/data_0DD0A0_1.s | 8 +- data/rodata_main.s | 68 +- include/PR/gbi.h | 1 + include/common_structs.h | 11 +- include/types.h | 18 + mk64.ld | 2 +- src/code_800029B0.c | 2 +- src/main.c | 856 +++++++++----------- src/main.h | 3 +- undefined_syms.txt | 1 - 28 files changed, 491 insertions(+), 2266 deletions(-) rename asm/{bss_main.s => bss_800029B0.s} (55%) delete mode 100644 asm/non_matchings/main/func_80000934.s delete mode 100644 asm/non_matchings/main/func_80000CE8.s delete mode 100644 asm/non_matchings/main/func_80000D3C.s delete mode 100644 asm/non_matchings/main/func_8000105C.s delete mode 100644 asm/non_matchings/main/func_800010CC.s delete mode 100644 asm/non_matchings/main/func_8000142C.s delete mode 100644 asm/non_matchings/main/func_80001ECC.s delete mode 100644 asm/non_matchings/main/func_80001FAC.s delete mode 100644 asm/non_matchings/main/func_80002168.s delete mode 100644 asm/non_matchings/main/func_800022DC.s delete mode 100644 asm/non_matchings/main/func_80002684.s delete mode 100644 asm/non_matchings/main/thread3_video.s delete mode 100644 asm/non_matchings/main/thread5_game_logic.s diff --git a/asm/bss_main.s b/asm/bss_800029B0.s similarity index 55% rename from asm/bss_main.s rename to asm/bss_800029B0.s index 16763478f..e6948f923 100644 --- a/asm/bss_main.s +++ b/asm/bss_800029B0.s @@ -1,203 +1,6 @@ .include "macros.inc" .section .bss -glabel gGfxPools -.skip 10616 - -glabel D_801001D8 -.skip 322920 - -glabel gGfxPool # 0x8014EF40 -.skip 8 - -glabel D_8014EF48 -.skip 8 - -glabel sSoundVblankHandler # 0x8014EF50 -.skip 8 - -glabel D_8014EF58 -.skip 24 - -glabel D_8014EF70 -.skip 24 - -glabel D_8014EF88 -.skip 48 - -glabel gIntrMesgQueue -.skip 24 - -glabel D_8014EFD0 -.skip 24 - -glabel sSoundMesgQueue # 0x8014EFE8 -.skip 24 - -glabel sSoundMesgBuf # 0x8014F000 -.skip 4 -glabel D_8014F004 -.skip 4 - -glabel D_8014F008 -.skip 4 - -glabel D_8014F00C -.skip 12 - -glabel D_8014F018 -.skip 64 - -glabel D_8014F058 -.skip 64 - -glabel D_8014F098 -.skip 8 - -glabel D_8014F0A0 -.skip 24 - -glabel gSIEventMesgQueue -.skip 24 - -glabel gSIEventMesgBuf -.skip 16 - -glabel gControllerStatuses -.skip 2 - -glabel D_8014F0E2 -.skip 14 - -glabel gControllerPads -.skip 24 - -glabel gControllerBits -.skip 8 - -glabel D_8014F110 -.skip 4096 - -glabel D_80150110 -.skip 2 - -glabel D_80150112 -.skip 2 - -glabel D_80150114 -.skip 4 - -glabel D_80150118 -.skip 4 - -glabel D_8015011C -.skip 2 - -glabel D_8015011E -.skip 2 - -glabel D_80150120 -.skip 4 - -glabel D_80150124 -.skip 12 - -glabel D_80150130 -.skip 4 - -glabel D_80150134 -.skip 4 - -glabel D_80150138 -.skip 4 - -glabel D_8015013C -.skip 12 - -glabel D_80150148 -.skip 4 - -glabel D_8015014C -.skip 4 - -glabel D_80150150 -.skip 8 - -glabel D_80150158 -.skip 256 - -glabel gSegmentTable # 0x80150258 -.skip 20 - -glabel D_8015026C -.skip 44 - -glabel gDisplayListHead # 0x80150298 -.word 0x00000000 - -glabel gGfxSPTask -.word 0x00000000 - -glabel D_801502A0 -.skip 8 - -glabel gPhysicalFramebuffers -.skip 12 - -glabel D_801502B4 -.skip 12 - -glabel D_801502C0 -.skip 8256 - -glabel D_80152300 -.skip 2 - -glabel D_80152302 -.skip 2 - -glabel D_80152304 -.skip 2 - -glabel D_80152306 -.skip 2 - -glabel D_80152308 -.skip 440 - -glabel gIdleThread -.skip 8624 - -glabel gVideoThread -.skip 8624 - -glabel D_80156820 -.skip 8624 - -glabel D_801589D0 -.skip 8624 - -glabel D_8015AB80 -.skip 5248 - -glabel D_8015C000 -.skip 3376 - -glabel D_8015CD30 -.skip 4528 - -glabel gGfxSPTaskYieldBuffer # 0x8015DEE0 -.skip 4352 - -glabel gGfxSPTaskStack # 0x8015EFE0 -.skip 1024 - -glabel D_8015F3E0 -.skip 128 - -glabel D_8015F460 -.skip 32 - glabel D_8015F480 .skip 44 diff --git a/asm/code_8001C4D0.s b/asm/code_8001C4D0.s index b9a3a7c88..6071aab77 100644 --- a/asm/code_8001C4D0.s +++ b/asm/code_8001C4D0.s @@ -3020,13 +3020,13 @@ glabel func_8001EE98 .L8001F10C: /* 01FD0C 8001F10C 3C018015 */ lui $at, %hi(D_80152300) # $at, 0x8015 /* 01FD10 8001F110 A4222300 */ sh $v0, %lo(D_80152300)($at) -/* 01FD14 8001F114 3C018015 */ lui $at, %hi(D_80152302) # $at, 0x8015 -/* 01FD18 8001F118 A4222302 */ sh $v0, %lo(D_80152302)($at) -/* 01FD1C 8001F11C 3C018015 */ lui $at, %hi(D_80152304) # $at, 0x8015 -/* 01FD20 8001F120 A4222304 */ sh $v0, %lo(D_80152304)($at) -/* 01FD24 8001F124 3C018015 */ lui $at, %hi(D_80152306) # $at, 0x8015 +/* 01FD14 8001F114 3C018015 */ lui $at, %hi(D_80152300+0x2) # $at, 0x8015 +/* 01FD18 8001F118 A4222302 */ sh $v0, %lo(D_80152300+0x2)($at) +/* 01FD1C 8001F11C 3C018015 */ lui $at, %hi(D_80152300+0x4) # $at, 0x8015 +/* 01FD20 8001F120 A4222304 */ sh $v0, %lo(D_80152300+0x4)($at) +/* 01FD24 8001F124 3C018015 */ lui $at, %hi(D_80152300+0x6) # $at, 0x8015 /* 01FD28 8001F128 10000050 */ b .L8001F26C -/* 01FD2C 8001F12C A4222306 */ sh $v0, %lo(D_80152306)($at) +/* 01FD2C 8001F12C A4222306 */ sh $v0, %lo(D_80152300+0x6)($at) .L8001F130: /* 01FD30 8001F130 9718C5FC */ lhu $t8, %lo(D_800DC5FC)($t8) /* 01FD34 8001F134 3C0A8015 */ lui $t2, %hi(D_80152300) # $t2, 0x8015 diff --git a/asm/code_80091750.s b/asm/code_80091750.s index 0553b5882..25053ab29 100644 --- a/asm/code_80091750.s +++ b/asm/code_80091750.s @@ -464,8 +464,8 @@ glabel func_80091D74 /* 09299C 80091D9C 10000049 */ b .L80091EC4 /* 0929A0 80091DA0 00001025 */ move $v0, $zero .L80091DA4: -/* 0929A4 80091DA4 3C028015 */ lui $v0, %hi(D_8014F0E2) # $v0, 0x8015 -/* 0929A8 80091DA8 9042F0E2 */ lbu $v0, %lo(D_8014F0E2)($v0) +/* 0929A4 80091DA4 3C028015 */ lui $v0, %hi(gControllerStatuses+0x2) # $v0, 0x8015 +/* 0929A8 80091DA8 9042F0E2 */ lbu $v0, %lo(gControllerStatuses+0x2)($v0) /* 0929AC 80091DAC 3C19800E */ lui $t9, %hi(D_800DC4BC) # $t9, 0x800e /* 0929B0 80091DB0 2C4F0001 */ sltiu $t7, $v0, 1 /* 0929B4 80091DB4 31F80001 */ andi $t8, $t7, 1 diff --git a/asm/code_80290C20.s b/asm/code_80290C20.s index a4fa914d1..6bd149ec3 100644 --- a/asm/code_80290C20.s +++ b/asm/code_80290C20.s @@ -3310,8 +3310,8 @@ glabel render_luigi_raceway glabel L80293D24 /* 0FD334 80293D24 0002C880 */ sll $t9, $v0, 2 /* 0FD338 80293D28 3C0B8015 */ lui $t3, %hi(gPhysicalFramebuffers) # 0x8015 -/* 0FD33C 80293D2C 3C0D8015 */ lui $t5, %hi(D_8015026C) # $t5, 0x8015 -/* 0FD340 80293D30 8DAD026C */ lw $t5, %lo(D_8015026C)($t5) +/* 0FD33C 80293D2C 3C0D8015 */ lui $t5, %hi(gSegmentTable+0x14) # $t5, 0x8015 +/* 0FD340 80293D30 8DAD026C */ lw $t5, %lo(gSegmentTable+0x14)($t5) /* 0FD344 80293D34 01795821 */ addu $t3, $t3, $t9 /* 0FD348 80293D38 8D6B02A8 */ lw $t3, %lo(gPhysicalFramebuffers)($t3) # 0x2a8($t3) /* 0FD34C 80293D3C 3C038000 */ lui $v1, 0x8000 @@ -3331,8 +3331,8 @@ glabel L80293D24 glabel L80293D74 /* 0FD384 80293D74 0002C080 */ sll $t8, $v0, 2 /* 0FD388 80293D78 3C198015 */ lui $t9, %hi(gPhysicalFramebuffers) # 0x8015 -/* 0FD38C 80293D7C 3C0C8015 */ lui $t4, %hi(D_8015026C) # $t4, 0x8015 -/* 0FD390 80293D80 8D8C026C */ lw $t4, %lo(D_8015026C)($t4) +/* 0FD38C 80293D7C 3C0C8015 */ lui $t4, %hi(gSegmentTable+0x14) # $t4, 0x8015 +/* 0FD390 80293D80 8D8C026C */ lw $t4, %lo(gSegmentTable+0x14)($t4) /* 0FD394 80293D84 0338C821 */ addu $t9, $t9, $t8 /* 0FD398 80293D88 8F3902A8 */ lw $t9, %lo(gPhysicalFramebuffers)($t9) # 0x2a8($t9) /* 0FD39C 80293D8C 3C010001 */ lui $at, (0x00010800 >> 16) # lui $at, 1 @@ -3354,8 +3354,8 @@ glabel L80293D74 glabel L80293DCC /* 0FD3DC 80293DCC 00027880 */ sll $t7, $v0, 2 /* 0FD3E0 80293DD0 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015 -/* 0FD3E4 80293DD4 3C0B8015 */ lui $t3, %hi(D_8015026C) # $t3, 0x8015 -/* 0FD3E8 80293DD8 8D6B026C */ lw $t3, %lo(D_8015026C)($t3) +/* 0FD3E4 80293DD4 3C0B8015 */ lui $t3, %hi(gSegmentTable+0x14) # $t3, 0x8015 +/* 0FD3E8 80293DD8 8D6B026C */ lw $t3, %lo(gSegmentTable+0x14)($t3) /* 0FD3EC 80293DDC 030FC021 */ addu $t8, $t8, $t7 /* 0FD3F0 80293DE0 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8) /* 0FD3F4 80293DE4 3C010001 */ lui $at, (0x00011800 >> 16) # lui $at, 1 @@ -3377,8 +3377,8 @@ glabel L80293DCC glabel L80293E24 /* 0FD434 80293E24 00027080 */ sll $t6, $v0, 2 /* 0FD438 80293E28 3C0F8015 */ lui $t7, %hi(gPhysicalFramebuffers) # 0x8015 -/* 0FD43C 80293E2C 3C198015 */ lui $t9, %hi(D_8015026C) # $t9, 0x8015 -/* 0FD440 80293E30 8F39026C */ lw $t9, %lo(D_8015026C)($t9) +/* 0FD43C 80293E2C 3C198015 */ lui $t9, %hi(gSegmentTable+0x14) # $t9, 0x8015 +/* 0FD440 80293E30 8F39026C */ lw $t9, %lo(gSegmentTable+0x14)($t9) /* 0FD444 80293E34 01EE7821 */ addu $t7, $t7, $t6 /* 0FD448 80293E38 8DEF02A8 */ lw $t7, %lo(gPhysicalFramebuffers)($t7) # 0x2a8($t7) /* 0FD44C 80293E3C 3C010001 */ lui $at, (0x00012800 >> 16) # lui $at, 1 @@ -3401,8 +3401,8 @@ glabel L80293E24 glabel L80293E80 /* 0FD490 80293E80 00026880 */ sll $t5, $v0, 2 /* 0FD494 80293E84 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015 -/* 0FD498 80293E88 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015 -/* 0FD49C 80293E8C 8F18026C */ lw $t8, %lo(D_8015026C)($t8) +/* 0FD498 80293E88 3C188015 */ lui $t8, %hi(gSegmentTable+0x14) # $t8, 0x8015 +/* 0FD49C 80293E8C 8F18026C */ lw $t8, %lo(gSegmentTable+0x14)($t8) /* 0FD4A0 80293E90 01CD7021 */ addu $t6, $t6, $t5 /* 0FD4A4 80293E94 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6) /* 0FD4A8 80293E98 3C010001 */ lui $at, (0x00013800 >> 16) # lui $at, 1 @@ -3424,8 +3424,8 @@ glabel L80293E80 glabel L80293ED8 /* 0FD4E8 80293ED8 00026080 */ sll $t4, $v0, 2 /* 0FD4EC 80293EDC 3C0D8015 */ lui $t5, %hi(gPhysicalFramebuffers) # 0x8015 -/* 0FD4F0 80293EE0 3C0F8015 */ lui $t7, %hi(D_8015026C) # $t7, 0x8015 -/* 0FD4F4 80293EE4 8DEF026C */ lw $t7, %lo(D_8015026C)($t7) +/* 0FD4F0 80293EE0 3C0F8015 */ lui $t7, %hi(gSegmentTable+0x14) # $t7, 0x8015 +/* 0FD4F4 80293EE4 8DEF026C */ lw $t7, %lo(gSegmentTable+0x14)($t7) /* 0FD4F8 80293EE8 01AC6821 */ addu $t5, $t5, $t4 /* 0FD4FC 80293EEC 8DAD02A8 */ lw $t5, %lo(gPhysicalFramebuffers)($t5) # 0x2a8($t5) /* 0FD500 80293EF0 3C010001 */ lui $at, (0x00014800 >> 16) # lui $at, 1 @@ -4431,8 +4431,8 @@ glabel L80294DD8 /* 0FE3E8 80294DD8 0002C880 */ sll $t9, $v0, 2 /* 0FE3EC 80294DDC 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015 /* 0FE3F0 80294DE0 01D97021 */ addu $t6, $t6, $t9 -/* 0FE3F4 80294DE4 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015 -/* 0FE3F8 80294DE8 8F18026C */ lw $t8, %lo(D_8015026C)($t8) +/* 0FE3F4 80294DE4 3C188015 */ lui $t8, %hi(gSegmentTable+0x14) # $t8, 0x8015 +/* 0FE3F8 80294DE8 8F18026C */ lw $t8, %lo(gSegmentTable+0x14)($t8) /* 0FE3FC 80294DEC 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6) /* 0FE400 80294DF0 3C038000 */ lui $v1, 0x8000 /* 0FE404 80294DF4 34018800 */ li $at, 34816 @@ -4452,8 +4452,8 @@ glabel L80294E28 /* 0FE438 80294E28 00027880 */ sll $t7, $v0, 2 /* 0FE43C 80294E2C 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015 /* 0FE440 80294E30 030FC021 */ addu $t8, $t8, $t7 -/* 0FE444 80294E34 3C0E8015 */ lui $t6, %hi(D_8015026C) # $t6, 0x8015 -/* 0FE448 80294E38 8DCE026C */ lw $t6, %lo(D_8015026C)($t6) +/* 0FE444 80294E34 3C0E8015 */ lui $t6, %hi(gSegmentTable+0x14) # $t6, 0x8015 +/* 0FE448 80294E38 8DCE026C */ lw $t6, %lo(gSegmentTable+0x14)($t6) /* 0FE44C 80294E3C 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8) /* 0FE450 80294E40 3C038000 */ lui $v1, 0x8000 /* 0FE454 80294E44 34019800 */ li $at, 38912 @@ -4474,8 +4474,8 @@ glabel L80294E7C /* 0FE48C 80294E7C 0002C880 */ sll $t9, $v0, 2 /* 0FE490 80294E80 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015 /* 0FE494 80294E84 01D97021 */ addu $t6, $t6, $t9 -/* 0FE498 80294E88 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015 -/* 0FE49C 80294E8C 8F18026C */ lw $t8, %lo(D_8015026C)($t8) +/* 0FE498 80294E88 3C188015 */ lui $t8, %hi(gSegmentTable+0x14) # $t8, 0x8015 +/* 0FE49C 80294E8C 8F18026C */ lw $t8, %lo(gSegmentTable+0x14)($t8) /* 0FE4A0 80294E90 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6) /* 0FE4A4 80294E94 3C038000 */ lui $v1, 0x8000 /* 0FE4A8 80294E98 3401A800 */ li $at, 43008 @@ -4496,8 +4496,8 @@ glabel L80294ED0 /* 0FE4E0 80294ED0 00027880 */ sll $t7, $v0, 2 /* 0FE4E4 80294ED4 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015 /* 0FE4E8 80294ED8 030FC021 */ addu $t8, $t8, $t7 -/* 0FE4EC 80294EDC 3C0E8015 */ lui $t6, %hi(D_8015026C) # $t6, 0x8015 -/* 0FE4F0 80294EE0 8DCE026C */ lw $t6, %lo(D_8015026C)($t6) +/* 0FE4EC 80294EDC 3C0E8015 */ lui $t6, %hi(gSegmentTable+0x14) # $t6, 0x8015 +/* 0FE4F0 80294EE0 8DCE026C */ lw $t6, %lo(gSegmentTable+0x14)($t6) /* 0FE4F4 80294EE4 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8) /* 0FE4F8 80294EE8 3C038000 */ lui $v1, 0x8000 /* 0FE4FC 80294EEC 3401B800 */ li $at, 47104 @@ -4519,8 +4519,8 @@ glabel L80294F28 /* 0FE538 80294F28 0002C880 */ sll $t9, $v0, 2 /* 0FE53C 80294F2C 3C0E8015 */ lui $t6, %hi(gPhysicalFramebuffers) # 0x8015 /* 0FE540 80294F30 01D97021 */ addu $t6, $t6, $t9 -/* 0FE544 80294F34 3C188015 */ lui $t8, %hi(D_8015026C) # $t8, 0x8015 -/* 0FE548 80294F38 8F18026C */ lw $t8, %lo(D_8015026C)($t8) +/* 0FE544 80294F34 3C188015 */ lui $t8, %hi(gSegmentTable+0x14) # $t8, 0x8015 +/* 0FE548 80294F38 8F18026C */ lw $t8, %lo(gSegmentTable+0x14)($t8) /* 0FE54C 80294F3C 8DCE02A8 */ lw $t6, %lo(gPhysicalFramebuffers)($t6) # 0x2a8($t6) /* 0FE550 80294F40 3C038000 */ lui $v1, 0x8000 /* 0FE554 80294F44 3401C800 */ li $at, 51200 @@ -4541,8 +4541,8 @@ glabel L80294F7C /* 0FE58C 80294F7C 00027880 */ sll $t7, $v0, 2 /* 0FE590 80294F80 3C188015 */ lui $t8, %hi(gPhysicalFramebuffers) # 0x8015 /* 0FE594 80294F84 030FC021 */ addu $t8, $t8, $t7 -/* 0FE598 80294F88 3C0E8015 */ lui $t6, %hi(D_8015026C) # $t6, 0x8015 -/* 0FE59C 80294F8C 8DCE026C */ lw $t6, %lo(D_8015026C)($t6) +/* 0FE598 80294F88 3C0E8015 */ lui $t6, %hi(gSegmentTable+0x14) # $t6, 0x8015 +/* 0FE59C 80294F8C 8DCE026C */ lw $t6, %lo(gSegmentTable+0x14)($t6) /* 0FE5A0 80294F90 8F1802A8 */ lw $t8, %lo(gPhysicalFramebuffers)($t8) # 0x2a8($t8) /* 0FE5A4 80294F94 3C038000 */ lui $v1, 0x8000 /* 0FE5A8 80294F98 3401D800 */ li $at, 55296 diff --git a/asm/code_802B0210.s b/asm/code_802B0210.s index 210d2d029..a565ac0ac 100644 --- a/asm/code_802B0210.s +++ b/asm/code_802B0210.s @@ -3094,8 +3094,8 @@ glabel func_802B2EBC /* 11C520 802B2F10 3C04800F */ lui $a0, %hi(gPlayers+0xDD8) # $a0, 0x800f /* 11C524 802B2F14 3C058010 */ lui $a1, %hi(gPlayers+0x1BB0) # $a1, 0x8010 /* 11C528 802B2F18 3C028010 */ lui $v0, %hi(gPlayers+0x2988) # $v0, 0x8010 -/* 11C52C 802B2F1C 3C078010 */ lui $a3, %hi(D_801001D8) # $a3, 0x8010 -/* 11C530 802B2F20 24E701D8 */ addiu $a3, %lo(D_801001D8) # addiu $a3, $a3, 0x1d8 +/* 11C52C 802B2F1C 3C078010 */ lui $a3, %hi(gGfxPools+0x2978) # $a3, 0x8010 +/* 11C530 802B2F20 24E701D8 */ addiu $a3, %lo(gGfxPools+0x2978) # addiu $a3, $a3, 0x1d8 /* 11C534 802B2F24 24429318 */ addiu $v0, %lo(gPlayers+0x2988) # addiu $v0, $v0, -0x6ce8 /* 11C538 802B2F28 24A58540 */ addiu $a1, %lo(gPlayers+0x1BB0) # addiu $a1, $a1, -0x7ac0 /* 11C53C 802B2F2C 24847768 */ addiu $a0, %lo(gPlayers+0xDD8) # addiu $a0, $a0, 0x7768 diff --git a/asm/non_matchings/main/func_80000934.s b/asm/non_matchings/main/func_80000934.s deleted file mode 100644 index 4dc4ea5a8..000000000 --- a/asm/non_matchings/main/func_80000934.s +++ /dev/null @@ -1,68 +0,0 @@ -glabel func_80000934 -/* 001534 80000934 3C0E8016 */ lui $t6, %hi(sController1Unplugged) # $t6, 0x8016 -/* 001538 80000938 85CE25EA */ lh $t6, %lo(sController1Unplugged)($t6) -/* 00153C 8000093C 00047900 */ sll $t7, $a0, 4 -/* 001540 80000940 3C18800F */ lui $t8, %hi(gControllers) # $t8, 0x800f -/* 001544 80000944 15C00036 */ bnez $t6, .L80000A20 -/* 001548 80000948 0004C880 */ sll $t9, $a0, 2 -/* 00154C 8000094C 0324C823 */ subu $t9, $t9, $a0 -/* 001550 80000950 3C088015 */ lui $t0, %hi(gControllerPads) # $t0, 0x8015 -/* 001554 80000954 2508F0F0 */ addiu $t0, %lo(gControllerPads) # addiu $t0, $t0, -0xf10 -/* 001558 80000958 0019C840 */ sll $t9, $t9, 1 -/* 00155C 8000095C 03281821 */ addu $v1, $t9, $t0 -/* 001560 80000960 80690002 */ lb $t1, 2($v1) -/* 001564 80000964 27186910 */ addiu $t8, %lo(gControllers) # addiu $t8, $t8, 0x6910 -/* 001568 80000968 01F81021 */ addu $v0, $t7, $t8 -/* 00156C 8000096C A4490000 */ sh $t1, ($v0) -/* 001570 80000970 806A0003 */ lb $t2, 3($v1) -/* 001574 80000974 A44A0002 */ sh $t2, 2($v0) -/* 001578 80000978 94650000 */ lhu $a1, ($v1) -/* 00157C 8000097C 30AB0004 */ andi $t3, $a1, 4 -/* 001580 80000980 11600003 */ beqz $t3, .L80000990 -/* 001584 80000984 34AC2000 */ ori $t4, $a1, 0x2000 -/* 001588 80000988 A46C0000 */ sh $t4, ($v1) -/* 00158C 8000098C 3185FFFF */ andi $a1, $t4, 0xffff -.L80000990: -/* 001590 80000990 94470004 */ lhu $a3, 4($v0) -/* 001594 80000994 84460000 */ lh $a2, ($v0) -/* 001598 80000998 00002025 */ move $a0, $zero -/* 00159C 8000099C 00A76826 */ xor $t5, $a1, $a3 -/* 0015A0 800009A0 01A57024 */ and $t6, $t5, $a1 -/* 0015A4 800009A4 A44E0006 */ sh $t6, 6($v0) -/* 0015A8 800009A8 946F0000 */ lhu $t7, ($v1) -/* 0015AC 800009AC 28C1FFCE */ slti $at, $a2, -0x32 -/* 0015B0 800009B0 01E7C026 */ xor $t8, $t7, $a3 -/* 0015B4 800009B4 0307C824 */ and $t9, $t8, $a3 -/* 0015B8 800009B8 A4590008 */ sh $t9, 8($v0) -/* 0015BC 800009BC 94680000 */ lhu $t0, ($v1) -/* 0015C0 800009C0 10200002 */ beqz $at, .L800009CC -/* 0015C4 800009C4 A4480004 */ sh $t0, 4($v0) -/* 0015C8 800009C8 24040200 */ li $a0, 512 -.L800009CC: -/* 0015CC 800009CC 28C10033 */ slti $at, $a2, 0x33 -/* 0015D0 800009D0 14200002 */ bnez $at, .L800009DC -/* 0015D4 800009D4 34890100 */ ori $t1, $a0, 0x100 -/* 0015D8 800009D8 3124FFFF */ andi $a0, $t1, 0xffff -.L800009DC: -/* 0015DC 800009DC 84430002 */ lh $v1, 2($v0) -/* 0015E0 800009E0 348B0400 */ ori $t3, $a0, 0x400 -/* 0015E4 800009E4 2861FFCE */ slti $at, $v1, -0x32 -/* 0015E8 800009E8 50200003 */ beql $at, $zero, .L800009F8 -/* 0015EC 800009EC 28610033 */ slti $at, $v1, 0x33 -/* 0015F0 800009F0 3164FFFF */ andi $a0, $t3, 0xffff -/* 0015F4 800009F4 28610033 */ slti $at, $v1, 0x33 -.L800009F8: -/* 0015F8 800009F8 14200002 */ bnez $at, .L80000A04 -/* 0015FC 800009FC 348D0800 */ ori $t5, $a0, 0x800 -/* 001600 80000A00 31A4FFFF */ andi $a0, $t5, 0xffff -.L80000A04: -/* 001604 80000A04 9445000A */ lhu $a1, 0xa($v0) -/* 001608 80000A08 A444000A */ sh $a0, 0xa($v0) -/* 00160C 80000A0C 00853026 */ xor $a2, $a0, $a1 -/* 001610 80000A10 00867824 */ and $t7, $a0, $a2 -/* 001614 80000A14 00A6C024 */ and $t8, $a1, $a2 -/* 001618 80000A18 A44F000C */ sh $t7, 0xc($v0) -/* 00161C 80000A1C A458000E */ sh $t8, 0xe($v0) -.L80000A20: -/* 001620 80000A20 03E00008 */ jr $ra -/* 001624 80000A24 00000000 */ nop diff --git a/asm/non_matchings/main/func_80000CE8.s b/asm/non_matchings/main/func_80000CE8.s deleted file mode 100644 index c7268d148..000000000 --- a/asm/non_matchings/main/func_80000CE8.s +++ /dev/null @@ -1,22 +0,0 @@ -glabel func_80000CE8 -/* 0018E8 80000CE8 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015 -/* 0018EC 80000CEC 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298 -/* 0018F0 80000CF0 8CA20000 */ lw $v0, ($a1) -/* 0018F4 80000CF4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0018F8 80000CF8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0018FC 80000CFC 244E0008 */ addiu $t6, $v0, 8 -/* 001900 80000D00 ACAE0000 */ sw $t6, ($a1) -/* 001904 80000D04 3C0FE900 */ lui $t7, 0xe900 -/* 001908 80000D08 AC4F0000 */ sw $t7, ($v0) -/* 00190C 80000D0C AC400004 */ sw $zero, 4($v0) -/* 001910 80000D10 8CA20000 */ lw $v0, ($a1) -/* 001914 80000D14 3C19B800 */ lui $t9, 0xb800 -/* 001918 80000D18 24580008 */ addiu $t8, $v0, 8 -/* 00191C 80000D1C ACB80000 */ sw $t8, ($a1) -/* 001920 80000D20 AC400004 */ sw $zero, 4($v0) -/* 001924 80000D24 0C0001BA */ jal func_800006E8 -/* 001928 80000D28 AC590000 */ sw $t9, ($v0) -/* 00192C 80000D2C 8FBF0014 */ lw $ra, 0x14($sp) -/* 001930 80000D30 27BD0018 */ addiu $sp, $sp, 0x18 -/* 001934 80000D34 03E00008 */ jr $ra -/* 001938 80000D38 00000000 */ nop diff --git a/asm/non_matchings/main/func_80000D3C.s b/asm/non_matchings/main/func_80000D3C.s deleted file mode 100644 index 4840bb8db..000000000 --- a/asm/non_matchings/main/func_80000D3C.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel func_80000D3C -/* 00193C 80000D3C 3C0B8015 */ lui $t3, %hi(gDisplayListHead) # $t3, 0x8015 -/* 001940 80000D40 256B0298 */ addiu $t3, %lo(gDisplayListHead) # addiu $t3, $t3, 0x298 -/* 001944 80000D44 8D620000 */ lw $v0, ($t3) -/* 001948 80000D48 3C0CE700 */ lui $t4, 0xe700 -/* 00194C 80000D4C 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900 -/* 001950 80000D50 244E0008 */ addiu $t6, $v0, 8 -/* 001954 80000D54 AD6E0000 */ sw $t6, ($t3) -/* 001958 80000D58 AC400004 */ sw $zero, 4($v0) -/* 00195C 80000D5C AC4C0000 */ sw $t4, ($v0) -/* 001960 80000D60 8D630000 */ lw $v1, ($t3) -/* 001964 80000D64 3C190F0A */ lui $t9, (0x0F0A4000 >> 16) # lui $t9, 0xf0a -/* 001968 80000D68 37394000 */ ori $t9, (0x0F0A4000 & 0xFFFF) # ori $t9, $t9, 0x4000 -/* 00196C 80000D6C 246F0008 */ addiu $t7, $v1, 8 -/* 001970 80000D70 AD6F0000 */ sw $t7, ($t3) -/* 001974 80000D74 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d -/* 001978 80000D78 AC780000 */ sw $t8, ($v1) -/* 00197C 80000D7C AC790004 */ sw $t9, 4($v1) -/* 001980 80000D80 8D630000 */ lw $v1, ($t3) -/* 001984 80000D84 3C0DBA00 */ lui $t5, (0xBA001402 >> 16) # lui $t5, 0xba00 -/* 001988 80000D88 35AD1402 */ ori $t5, (0xBA001402 & 0xFFFF) # ori $t5, $t5, 0x1402 -/* 00198C 80000D8C 246E0008 */ addiu $t6, $v1, 8 -/* 001990 80000D90 AD6E0000 */ sw $t6, ($t3) -/* 001994 80000D94 3C0F0030 */ lui $t7, 0x30 -/* 001998 80000D98 AC6F0004 */ sw $t7, 4($v1) -/* 00199C 80000D9C AC6D0000 */ sw $t5, ($v1) -/* 0019A0 80000DA0 8D630000 */ lw $v1, ($t3) -/* 0019A4 80000DA4 3C19F700 */ lui $t9, 0xf700 -/* 0019A8 80000DA8 3C0FF64F */ lui $t7, (0xF64FC3BC >> 16) # lui $t7, 0xf64f -/* 0019AC 80000DAC 24780008 */ addiu $t8, $v1, 8 -/* 0019B0 80000DB0 AD780000 */ sw $t8, ($t3) -/* 0019B4 80000DB4 AC640004 */ sw $a0, 4($v1) -/* 0019B8 80000DB8 AC790000 */ sw $t9, ($v1) -/* 0019BC 80000DBC 8D630000 */ lw $v1, ($t3) -/* 0019C0 80000DC0 35EFC3BC */ ori $t7, (0xF64FC3BC & 0xFFFF) # ori $t7, $t7, 0xc3bc -/* 0019C4 80000DC4 246E0008 */ addiu $t6, $v1, 8 -/* 0019C8 80000DC8 AD6E0000 */ sw $t6, ($t3) -/* 0019CC 80000DCC AC600004 */ sw $zero, 4($v1) -/* 0019D0 80000DD0 AC6F0000 */ sw $t7, ($v1) -/* 0019D4 80000DD4 8D630000 */ lw $v1, ($t3) -/* 0019D8 80000DD8 24780008 */ addiu $t8, $v1, 8 -/* 0019DC 80000DDC AD780000 */ sw $t8, ($t3) -/* 0019E0 80000DE0 AC600004 */ sw $zero, 4($v1) -/* 0019E4 80000DE4 AC6C0000 */ sw $t4, ($v1) -/* 0019E8 80000DE8 8D630000 */ lw $v1, ($t3) -/* 0019EC 80000DEC 24790008 */ addiu $t9, $v1, 8 -/* 0019F0 80000DF0 AD790000 */ sw $t9, ($t3) -/* 0019F4 80000DF4 AC600004 */ sw $zero, 4($v1) -/* 0019F8 80000DF8 03E00008 */ jr $ra -/* 0019FC 80000DFC AC6D0000 */ sw $t5, ($v1) diff --git a/asm/non_matchings/main/func_8000105C.s b/asm/non_matchings/main/func_8000105C.s deleted file mode 100644 index 3bb6b83d2..000000000 --- a/asm/non_matchings/main/func_8000105C.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel func_8000105C -/* 001C5C 8000105C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 001C60 80001060 AFBF0014 */ sw $ra, 0x14($sp) -/* 001C64 80001064 3C048028 */ lui $a0, 0x8028 -/* 001C68 80001068 0C033698 */ jal bzero -/* 001C6C 8000106C 3405DF00 */ li $a1, 57088 -/* 001C70 80001070 0C033624 */ jal osWritebackDCacheAll -/* 001C74 80001074 00000000 */ nop -/* 001C78 80001078 3C050012 */ lui $a1, %hi(_code_80280000SegmentRomStart) # $a1, 0x12 -/* 001C7C 8000107C 3C0E0013 */ lui $t6, %hi(_code_80280000SegmentRomEnd) # $t6, 0x13 -/* 001C80 80001080 24A53640 */ addiu $a1, %lo(_code_80280000SegmentRomStart) # addiu $a1, $a1, 0x3640 -/* 001C84 80001084 25CEAAE0 */ addiu $t6, %lo(_code_80280000SegmentRomEnd) # addiu $t6, $t6, -0x5520 -/* 001C88 80001088 01C53023 */ subu $a2, $t6, $a1 -/* 001C8C 8000108C 24C6000F */ addiu $a2, $a2, 0xf -/* 001C90 80001090 2401FFF0 */ li $at, -16 -/* 001C94 80001094 00C17824 */ and $t7, $a2, $at -/* 001C98 80001098 01E03025 */ move $a2, $t7 -/* 001C9C 8000109C 0C000456 */ jal dma_copy -/* 001CA0 800010A0 3C048028 */ lui $a0, 0x8028 -/* 001CA4 800010A4 3C048028 */ lui $a0, 0x8028 -/* 001CA8 800010A8 0C0336C0 */ jal osInvalICache -/* 001CAC 800010AC 3405DF00 */ li $a1, 57088 -/* 001CB0 800010B0 3C048028 */ lui $a0, 0x8028 -/* 001CB4 800010B4 0C0336E0 */ jal osInvalDCache -/* 001CB8 800010B8 3405DF00 */ li $a1, 57088 -/* 001CBC 800010BC 8FBF0014 */ lw $ra, 0x14($sp) -/* 001CC0 800010C0 27BD0018 */ addiu $sp, $sp, 0x18 -/* 001CC4 800010C4 03E00008 */ jr $ra -/* 001CC8 800010C8 00000000 */ nop diff --git a/asm/non_matchings/main/func_800010CC.s b/asm/non_matchings/main/func_800010CC.s deleted file mode 100644 index f147e2fd0..000000000 --- a/asm/non_matchings/main/func_800010CC.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_800010CC -/* 001CCC 800010CC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 001CD0 800010D0 AFBF0014 */ sw $ra, 0x14($sp) -/* 001CD4 800010D4 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028 -/* 001CD8 800010D8 3C050002 */ lui $a1, (0x0002C470 >> 16) # lui $a1, 2 -/* 001CDC 800010DC 34A5C470 */ ori $a1, (0x0002C470 & 0xFFFF) # ori $a1, $a1, 0xc470 -/* 001CE0 800010E0 0C033698 */ jal bzero -/* 001CE4 800010E4 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00 -/* 001CE8 800010E8 0C033624 */ jal osWritebackDCacheAll -/* 001CEC 800010EC 00000000 */ nop -/* 001CF0 800010F0 3C05000F */ lui $a1, %hi(_code_8028DF00SegmentRomStart) # $a1, 0xf -/* 001CF4 800010F4 3C0E0012 */ lui $t6, %hi(_code_8028DF00SegmentRomEnd) # $t6, 0x12 -/* 001CF8 800010F8 24A57510 */ addiu $a1, %lo(_code_8028DF00SegmentRomStart) # addiu $a1, $a1, 0x7510 -/* 001CFC 800010FC 25CE3640 */ addiu $t6, %lo(_code_8028DF00SegmentRomEnd) # addiu $t6, $t6, 0x3640 -/* 001D00 80001100 01C53023 */ subu $a2, $t6, $a1 -/* 001D04 80001104 24C6000F */ addiu $a2, $a2, 0xf -/* 001D08 80001108 2401FFF0 */ li $at, -16 -/* 001D0C 8000110C 00C17824 */ and $t7, $a2, $at -/* 001D10 80001110 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028 -/* 001D14 80001114 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00 -/* 001D18 80001118 0C000456 */ jal dma_copy -/* 001D1C 8000111C 01E03025 */ move $a2, $t7 -/* 001D20 80001120 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028 -/* 001D24 80001124 3C050002 */ lui $a1, (0x0002C470 >> 16) # lui $a1, 2 -/* 001D28 80001128 34A5C470 */ ori $a1, (0x0002C470 & 0xFFFF) # ori $a1, $a1, 0xc470 -/* 001D2C 8000112C 0C0336C0 */ jal osInvalICache -/* 001D30 80001130 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00 -/* 001D34 80001134 3C048028 */ lui $a0, (0x8028DF00 >> 16) # lui $a0, 0x8028 -/* 001D38 80001138 3C050002 */ lui $a1, (0x0002C470 >> 16) # lui $a1, 2 -/* 001D3C 8000113C 34A5C470 */ ori $a1, (0x0002C470 & 0xFFFF) # ori $a1, $a1, 0xc470 -/* 001D40 80001140 0C0336E0 */ jal osInvalDCache -/* 001D44 80001144 3484DF00 */ ori $a0, (0x8028DF00 & 0xFFFF) # ori $a0, $a0, 0xdf00 -/* 001D48 80001148 8FBF0014 */ lw $ra, 0x14($sp) -/* 001D4C 8000114C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 001D50 80001150 03E00008 */ jr $ra -/* 001D54 80001154 00000000 */ nop diff --git a/asm/non_matchings/main/func_8000142C.s b/asm/non_matchings/main/func_8000142C.s deleted file mode 100644 index 796330caa..000000000 --- a/asm/non_matchings/main/func_8000142C.s +++ /dev/null @@ -1,738 +0,0 @@ -glabel func_8000142C -/* 00202C 8000142C 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 002030 80001430 3C018015 */ lui $at, %hi(D_80150112) # $at, 0x8015 -/* 002034 80001434 AFB0001C */ sw $s0, 0x1c($sp) -/* 002038 80001438 A4200112 */ sh $zero, %lo(D_80150112)($at) -/* 00203C 8000143C 3C10800E */ lui $s0, %hi(D_800DC5FC) # $s0, 0x800e -/* 002040 80001440 3C018016 */ lui $at, %hi(D_80164AF0) # $at, 0x8016 -/* 002044 80001444 2610C5FC */ addiu $s0, %lo(D_800DC5FC) # addiu $s0, $s0, -0x3a04 -/* 002048 80001448 A4204AF0 */ sh $zero, %lo(D_80164AF0)($at) -/* 00204C 8000144C 960E0000 */ lhu $t6, ($s0) -/* 002050 80001450 AFBF0024 */ sw $ra, 0x24($sp) -/* 002054 80001454 AFB10020 */ sw $s1, 0x20($sp) -/* 002058 80001458 11C00003 */ beqz $t6, .L80001468 -/* 00205C 8000145C F7B40010 */ sdc1 $f20, 0x10($sp) -/* 002060 80001460 0C0A42C5 */ jal func_80290B14 -/* 002064 80001464 00000000 */ nop -.L80001468: -/* 002068 80001468 3C0F800E */ lui $t7, %hi(D_800DC5C0) # $t7, 0x800e -/* 00206C 8000146C 95EFC5C0 */ lhu $t7, %lo(D_800DC5C0)($t7) -/* 002070 80001470 3C03800E */ lui $v1, %hi(sNumVBlanks) # $v1, 0x800e -/* 002074 80001474 2463C58C */ addiu $v1, %lo(sNumVBlanks) # addiu $v1, $v1, -0x3a74 -/* 002078 80001478 51E00006 */ beql $t7, $zero, .L80001494 -/* 00207C 8000147C 84620000 */ lh $v0, ($v1) -/* 002080 80001480 0C0A8E2D */ jal func_802A38B4 -/* 002084 80001484 00000000 */ nop -/* 002088 80001488 1000028B */ b .L80001EB8 -/* 00208C 8000148C 8FBF0024 */ lw $ra, 0x24($sp) -/* 002090 80001490 84620000 */ lh $v0, ($v1) -.L80001494: -/* 002094 80001494 24180005 */ li $t8, 5 -/* 002098 80001498 24190001 */ li $t9, 1 -/* 00209C 8000149C 28410006 */ slti $at, $v0, 6 -/* 0020A0 800014A0 14200003 */ bnez $at, .L800014B0 -/* 0020A4 800014A4 00000000 */ nop -/* 0020A8 800014A8 A4780000 */ sh $t8, ($v1) -/* 0020AC 800014AC 84620000 */ lh $v0, ($v1) -.L800014B0: -/* 0020B0 800014B0 04410002 */ bgez $v0, .L800014BC -/* 0020B4 800014B4 00000000 */ nop -/* 0020B8 800014B8 A4790000 */ sh $t9, ($v1) -.L800014BC: -/* 0020BC 800014BC 0C0A93BD */ jal func_802A4EF4 -/* 0020C0 800014C0 00000000 */ nop -/* 0020C4 800014C4 3C02800E */ lui $v0, %hi(D_800DC52C) # $v0, 0x800e -/* 0020C8 800014C8 8C42C52C */ lw $v0, %lo(D_800DC52C)($v0) -/* 0020CC 800014CC 24090002 */ li $t1, 2 -/* 0020D0 800014D0 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 0020D4 800014D4 1040000D */ beqz $v0, .L8000150C -/* 0020D8 800014D8 00000000 */ nop -/* 0020DC 800014DC 24010001 */ li $at, 1 -/* 0020E0 800014E0 10410117 */ beq $v0, $at, .L80001940 -/* 0020E4 800014E4 3C0B800E */ lui $t3, %hi(gCurrentCourseId) # 0x800e -/* 0020E8 800014E8 24040002 */ li $a0, 2 -/* 0020EC 800014EC 104400AB */ beq $v0, $a0, .L8000179C -/* 0020F0 800014F0 3C0B800E */ lui $t3, %hi(gCurrentCourseId) # 0x800e -/* 0020F4 800014F4 24030003 */ li $v1, 3 -/* 0020F8 800014F8 1043017B */ beq $v0, $v1, .L80001AE8 -/* 0020FC 800014FC 3C0C800E */ lui $t4, %hi(gPlayerCountSelection1) # 0x800e -/* 002100 80001500 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e -/* 002104 80001504 1000022F */ b .L80001DC4 -/* 002108 80001508 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0) -.L8000150C: -/* 00210C 8000150C 0C0017D1 */ jal func_80005F44 -/* 002110 80001510 AC290114 */ sw $t1, %lo(D_80150114)($at) -/* 002114 80001514 960A0000 */ lhu $t2, ($s0) -/* 002118 80001518 3C0B8015 */ lui $t3, %hi(D_80150114) # $t3, 0x8015 -/* 00211C 8000151C 15400033 */ bnez $t2, .L800015EC -/* 002120 80001520 00000000 */ nop -/* 002124 80001524 8D6B0114 */ lw $t3, %lo(D_80150114)($t3) -/* 002128 80001528 00008025 */ move $s0, $zero -/* 00212C 8000152C 3C01800F */ lui $at, %hi(D_800EB5F8) -/* 002130 80001530 1960002C */ blez $t3, .L800015E4 -/* 002134 80001534 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e -/* 002138 80001538 D434B5F8 */ ldc1 $f20, %lo(D_800EB5F8)($at) -/* 00213C 8000153C 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68 -.L80001540: -/* 002140 80001540 3C0C8015 */ lui $t4, %hi(D_8015011E) # $t4, 0x8015 -/* 002144 80001544 958C011E */ lhu $t4, %lo(D_8015011E)($t4) -/* 002148 80001548 11800006 */ beqz $t4, .L80001564 -/* 00214C 8000154C 00000000 */ nop -/* 002150 80001550 C6240000 */ lwc1 $f4, ($s1) -/* 002154 80001554 460021A1 */ cvt.d.s $f6, $f4 -/* 002158 80001558 46343200 */ add.d $f8, $f6, $f20 -/* 00215C 8000155C 462042A0 */ cvt.s.d $f10, $f8 -/* 002160 80001560 E62A0000 */ swc1 $f10, ($s1) -.L80001564: -/* 002164 80001564 0C0A427C */ jal func_802909F0 -/* 002168 80001568 00000000 */ nop -/* 00216C 8000156C 0C0A8355 */ jal func_802A0D54 -/* 002170 80001570 00000000 */ nop -/* 002174 80001574 0C00E0B7 */ jal func_800382DC -/* 002178 80001578 00000000 */ nop -/* 00217C 8000157C 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e -/* 002180 80001580 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e -/* 002184 80001584 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1) -/* 002188 80001588 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0) -/* 00218C 8000158C 0C007BA6 */ jal func_8001EE98 -/* 002190 80001590 00003025 */ move $a2, $zero -/* 002194 80001594 0C00A3DC */ jal func_80028F70 -/* 002198 80001598 00000000 */ nop -/* 00219C 8000159C 0C0A3D1D */ jal func_8028F474 -/* 0021A0 800015A0 00000000 */ nop -/* 0021A4 800015A4 0C0166B2 */ jal func_80059AC8 -/* 0021A8 800015A8 00000000 */ nop -/* 0021AC 800015AC 0C0A8D52 */ jal update_simple_objects -/* 0021B0 800015B0 00000000 */ nop -/* 0021B4 800015B4 0C0A59A8 */ jal func_802966A0 -/* 0021B8 800015B8 00000000 */ nop -/* 0021BC 800015BC 0C0A3F2F */ jal func_8028FCBC -/* 0021C0 800015C0 00000000 */ nop -/* 0021C4 800015C4 3C0F8015 */ lui $t7, %hi(D_80150114) # $t7, 0x8015 -/* 0021C8 800015C8 8DEF0114 */ lw $t7, %lo(D_80150114)($t7) -/* 0021CC 800015CC 26100001 */ addiu $s0, $s0, 1 -/* 0021D0 800015D0 00106C00 */ sll $t5, $s0, 0x10 -/* 0021D4 800015D4 000D8403 */ sra $s0, $t5, 0x10 -/* 0021D8 800015D8 020F082A */ slt $at, $s0, $t7 -/* 0021DC 800015DC 1420FFD8 */ bnez $at, .L80001540 -/* 0021E0 800015E0 00000000 */ nop -.L800015E4: -/* 0021E4 800015E4 0C0089D1 */ jal func_80022744 -/* 0021E8 800015E8 00000000 */ nop -.L800015EC: -/* 0021EC 800015EC 0C01681C */ jal func_8005A070 -/* 0021F0 800015F0 00000000 */ nop -/* 0021F4 800015F4 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e -/* 0021F8 800015F8 A420C58C */ sh $zero, %lo(sNumVBlanks)($at) -/* 0021FC 800015FC 0C000D54 */ jal profiler_log_thread5_time -/* 002200 80001600 24040001 */ li $a0, 1 -/* 002204 80001604 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016 -/* 002208 80001608 0C0A9669 */ jal func_802A59A4 -/* 00220C 8000160C AC20F788 */ sw $zero, %lo(D_8015F788)($at) -/* 002210 80001610 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e -/* 002214 80001614 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0) -/* 002218 80001618 3C05800E */ lui $a1, %hi(D_800DC514) # $a1, 0x800e -/* 00221C 8000161C 24A5C514 */ addiu $a1, %lo(D_800DC514) # addiu $a1, $a1, -0x3aec -/* 002220 80001620 54800006 */ bnel $a0, $zero, .L8000163C -/* 002224 80001624 94B80000 */ lhu $t8, ($a1) -/* 002228 80001628 3C05800E */ lui $a1, %hi(D_800DC514) # $a1, 0x800e -/* 00222C 8000162C 24A5C514 */ addiu $a1, %lo(D_800DC514) # addiu $a1, $a1, -0x3aec -/* 002230 80001630 100001E4 */ b .L80001DC4 -/* 002234 80001634 A4A00000 */ sh $zero, ($a1) -/* 002238 80001638 94B80000 */ lhu $t8, ($a1) -.L8000163C: -/* 00223C 8000163C 3C088016 */ lui $t0, %hi(D_801625E8) # $t0, 0x8016 -/* 002240 80001640 3C0C800E */ lui $t4, %hi(D_800DDB40) # $t4, 0x800e -/* 002244 80001644 13000048 */ beqz $t8, .L80001768 -/* 002248 80001648 3C03800E */ lui $v1, %hi(D_800DC4BC) # 0x800e -/* 00224C 8000164C 3C03800E */ lui $v1, %hi(D_800DC4BC) # $v1, 0x800e -/* 002250 80001650 8C63C4BC */ lw $v1, %lo(D_800DC4BC)($v1) -/* 002254 80001654 3C06800F */ lui $a2, %hi(D_800EB5D0) # $a2, 0x800f -/* 002258 80001658 24C6B5D0 */ addiu $a2, %lo(D_800EB5D0) # addiu $a2, $a2, -0x4a30 -/* 00225C 8000165C 94790006 */ lhu $t9, 6($v1) -/* 002260 80001660 24040028 */ li $a0, 40 -/* 002264 80001664 33290010 */ andi $t1, $t9, 0x10 -/* 002268 80001668 11200008 */ beqz $t1, .L8000168C -/* 00226C 8000166C 00000000 */ nop -/* 002270 80001670 94620004 */ lhu $v0, 4($v1) -/* 002274 80001674 304A8000 */ andi $t2, $v0, 0x8000 -/* 002278 80001678 11400004 */ beqz $t2, .L8000168C -/* 00227C 8000167C 304B4000 */ andi $t3, $v0, 0x4000 -/* 002280 80001680 11600002 */ beqz $t3, .L8000168C -/* 002284 80001684 00000000 */ nop -/* 002288 80001688 A4A00000 */ sh $zero, ($a1) -.L8000168C: -/* 00228C 8000168C 8D8CDB40 */ lw $t4, %lo(D_800DDB40)($t4) -/* 002290 80001690 3C0D800E */ lui $t5, %hi(D_800DC5EC) # $t5, 0x800e -/* 002294 80001694 8DADC5EC */ lw $t5, %lo(D_800DC5EC)($t5) -/* 002298 80001698 95820026 */ lhu $v0, 0x26($t4) -/* 00229C 8000169C 250825E8 */ addiu $t0, %lo(D_801625E8) # addiu $t0, $t0, 0x25e8 -/* 0022A0 800016A0 85AE0038 */ lh $t6, 0x38($t5) -/* 0022A4 800016A4 28412000 */ slti $at, $v0, 0x2000 -/* 0022A8 800016A8 10200006 */ beqz $at, .L800016C4 -/* 0022AC 800016AC A50E0000 */ sh $t6, ($t0) -/* 0022B0 800016B0 24050064 */ li $a1, 100 -/* 0022B4 800016B4 0C015E94 */ jal func_80057A50 -/* 0022B8 800016B8 85070000 */ lh $a3, ($t0) -/* 0022BC 800016BC 10000027 */ b .L8000175C -/* 0022C0 800016C0 00000000 */ nop -.L800016C4: -/* 0022C4 800016C4 28416000 */ slti $at, $v0, 0x6000 -/* 0022C8 800016C8 10200008 */ beqz $at, .L800016EC -/* 0022CC 800016CC 24040028 */ li $a0, 40 -/* 0022D0 800016D0 3C06800F */ lui $a2, %hi(D_800EB5D8) # $a2, 0x800f -/* 0022D4 800016D4 24C6B5D8 */ addiu $a2, %lo(D_800EB5D8) # addiu $a2, $a2, -0x4a28 -/* 0022D8 800016D8 24050064 */ li $a1, 100 -/* 0022DC 800016DC 0C015E94 */ jal func_80057A50 -/* 0022E0 800016E0 85070000 */ lh $a3, ($t0) -/* 0022E4 800016E4 1000001D */ b .L8000175C -/* 0022E8 800016E8 00000000 */ nop -.L800016EC: -/* 0022EC 800016EC 3401A000 */ li $at, 40960 -/* 0022F0 800016F0 0041082A */ slt $at, $v0, $at -/* 0022F4 800016F4 10200008 */ beqz $at, .L80001718 -/* 0022F8 800016F8 24040028 */ li $a0, 40 -/* 0022FC 800016FC 3C06800F */ lui $a2, %hi(D_800EB5E0) # $a2, 0x800f -/* 002300 80001700 24C6B5E0 */ addiu $a2, %lo(D_800EB5E0) # addiu $a2, $a2, -0x4a20 -/* 002304 80001704 24050064 */ li $a1, 100 -/* 002308 80001708 0C015E94 */ jal func_80057A50 -/* 00230C 8000170C 85070000 */ lh $a3, ($t0) -/* 002310 80001710 10000012 */ b .L8000175C -/* 002314 80001714 00000000 */ nop -.L80001718: -/* 002318 80001718 3401E000 */ li $at, 57344 -/* 00231C 8000171C 0041082A */ slt $at, $v0, $at -/* 002320 80001720 10200009 */ beqz $at, .L80001748 -/* 002324 80001724 24040028 */ li $a0, 40 -/* 002328 80001728 3C06800F */ lui $a2, %hi(D_800EB5E8) # $a2, 0x800f -/* 00232C 8000172C 24C6B5E8 */ addiu $a2, %lo(D_800EB5E8) # addiu $a2, $a2, -0x4a18 -/* 002330 80001730 24040028 */ li $a0, 40 -/* 002334 80001734 24050064 */ li $a1, 100 -/* 002338 80001738 0C015E94 */ jal func_80057A50 -/* 00233C 8000173C 85070000 */ lh $a3, ($t0) -/* 002340 80001740 10000006 */ b .L8000175C -/* 002344 80001744 00000000 */ nop -.L80001748: -/* 002348 80001748 3C06800F */ lui $a2, %hi(D_800EB5F0) # $a2, 0x800f -/* 00234C 8000174C 24C6B5F0 */ addiu $a2, %lo(D_800EB5F0) # addiu $a2, $a2, -0x4a10 -/* 002350 80001750 24050064 */ li $a1, 100 -/* 002354 80001754 0C015E94 */ jal func_80057A50 -/* 002358 80001758 85070000 */ lh $a3, ($t0) -.L8000175C: -/* 00235C 8000175C 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e -/* 002360 80001760 10000198 */ b .L80001DC4 -/* 002364 80001764 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0) -.L80001768: -/* 002368 80001768 8C63C4BC */ lw $v1, %lo(D_800DC4BC)($v1) # -0x3b44($v1) -/* 00236C 8000176C 946F0006 */ lhu $t7, 6($v1) -/* 002370 80001770 31F80020 */ andi $t8, $t7, 0x20 -/* 002374 80001774 13000193 */ beqz $t8, .L80001DC4 -/* 002378 80001778 00000000 */ nop -/* 00237C 8000177C 94620004 */ lhu $v0, 4($v1) -/* 002380 80001780 30598000 */ andi $t9, $v0, 0x8000 -/* 002384 80001784 1320018F */ beqz $t9, .L80001DC4 -/* 002388 80001788 30494000 */ andi $t1, $v0, 0x4000 -/* 00238C 8000178C 1120018D */ beqz $t1, .L80001DC4 -/* 002390 80001790 240A0001 */ li $t2, 1 -/* 002394 80001794 1000018B */ b .L80001DC4 -/* 002398 80001798 A4AA0000 */ sh $t2, ($a1) -.L8000179C: -/* 00239C 8000179C 856BC5A0 */ lh $t3, %lo(gCurrentCourseId)($t3) # -0x3a60($t3) -/* 0023A0 800017A0 24010012 */ li $at, 18 -/* 0023A4 800017A4 24030003 */ li $v1, 3 -/* 0023A8 800017A8 15610004 */ bne $t3, $at, .L800017BC -/* 0023AC 800017AC 3C0D8015 */ lui $t5, %hi(D_80150114) # $t5, 0x8015 -/* 0023B0 800017B0 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 0023B4 800017B4 10000003 */ b .L800017C4 -/* 0023B8 800017B8 AC230114 */ sw $v1, %lo(D_80150114)($at) -.L800017BC: -/* 0023BC 800017BC 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 0023C0 800017C0 AC240114 */ sw $a0, %lo(D_80150114)($at) -.L800017C4: -/* 0023C4 800017C4 960C0000 */ lhu $t4, ($s0) -/* 0023C8 800017C8 1580003B */ bnez $t4, .L800018B8 -/* 0023CC 800017CC 00000000 */ nop -/* 0023D0 800017D0 8DAD0114 */ lw $t5, %lo(D_80150114)($t5) -/* 0023D4 800017D4 00008025 */ move $s0, $zero -/* 0023D8 800017D8 3C01800F */ lui $at, %hi(D_800EB600) -/* 0023DC 800017DC 19A00034 */ blez $t5, .L800018B0 -/* 0023E0 800017E0 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e -/* 0023E4 800017E4 D434B600 */ ldc1 $f20, %lo(D_800EB600)($at) -/* 0023E8 800017E8 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68 -.L800017EC: -/* 0023EC 800017EC 3C0E8015 */ lui $t6, %hi(D_8015011E) # $t6, 0x8015 -/* 0023F0 800017F0 95CE011E */ lhu $t6, %lo(D_8015011E)($t6) -/* 0023F4 800017F4 11C00006 */ beqz $t6, .L80001810 -/* 0023F8 800017F8 00000000 */ nop -/* 0023FC 800017FC C6300000 */ lwc1 $f16, ($s1) -/* 002400 80001800 460084A1 */ cvt.d.s $f18, $f16 -/* 002404 80001804 46349100 */ add.d $f4, $f18, $f20 -/* 002408 80001808 462021A0 */ cvt.s.d $f6, $f4 -/* 00240C 8000180C E6260000 */ swc1 $f6, ($s1) -.L80001810: -/* 002410 80001810 0C0A427C */ jal func_802909F0 -/* 002414 80001814 00000000 */ nop -/* 002418 80001818 0C0A8355 */ jal func_802A0D54 -/* 00241C 8000181C 00000000 */ nop -/* 002420 80001820 0C00E0B7 */ jal func_800382DC -/* 002424 80001824 00000000 */ nop -/* 002428 80001828 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e -/* 00242C 8000182C 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e -/* 002430 80001830 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1) -/* 002434 80001834 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0) -/* 002438 80001838 0C007BA6 */ jal func_8001EE98 -/* 00243C 8000183C 00003025 */ move $a2, $zero -/* 002440 80001840 0C00A418 */ jal func_80029060 -/* 002444 80001844 00000000 */ nop -/* 002448 80001848 3C04800E */ lui $a0, %hi(D_800DC500) # $a0, 0x800e -/* 00244C 8000184C 3C05800E */ lui $a1, %hi(D_800DDB44) # $a1, 0x800e -/* 002450 80001850 8CA5DB44 */ lw $a1, %lo(D_800DDB44)($a1) -/* 002454 80001854 8C84C500 */ lw $a0, %lo(D_800DC500)($a0) -/* 002458 80001858 0C007BA6 */ jal func_8001EE98 -/* 00245C 8000185C 24060001 */ li $a2, 1 -/* 002460 80001860 0C00A454 */ jal func_80029150 -/* 002464 80001864 00000000 */ nop -/* 002468 80001868 0C0A3D1D */ jal func_8028F474 -/* 00246C 8000186C 00000000 */ nop -/* 002470 80001870 0C0166B2 */ jal func_80059AC8 -/* 002474 80001874 00000000 */ nop -/* 002478 80001878 0C0A8D52 */ jal update_simple_objects -/* 00247C 8000187C 00000000 */ nop -/* 002480 80001880 0C0A59A8 */ jal func_802966A0 -/* 002484 80001884 00000000 */ nop -/* 002488 80001888 0C0A3F2F */ jal func_8028FCBC -/* 00248C 8000188C 00000000 */ nop -/* 002490 80001890 3C198015 */ lui $t9, %hi(D_80150114) # $t9, 0x8015 -/* 002494 80001894 8F390114 */ lw $t9, %lo(D_80150114)($t9) -/* 002498 80001898 26100001 */ addiu $s0, $s0, 1 -/* 00249C 8000189C 00107C00 */ sll $t7, $s0, 0x10 -/* 0024A0 800018A0 000F8403 */ sra $s0, $t7, 0x10 -/* 0024A4 800018A4 0219082A */ slt $at, $s0, $t9 -/* 0024A8 800018A8 1420FFD0 */ bnez $at, .L800017EC -/* 0024AC 800018AC 00000000 */ nop -.L800018B0: -/* 0024B0 800018B0 0C0089D1 */ jal func_80022744 -/* 0024B4 800018B4 00000000 */ nop -.L800018B8: -/* 0024B8 800018B8 0C01681C */ jal func_8005A070 -/* 0024BC 800018BC 00000000 */ nop -/* 0024C0 800018C0 0C000D54 */ jal profiler_log_thread5_time -/* 0024C4 800018C4 24040001 */ li $a0, 1 -/* 0024C8 800018C8 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e -/* 0024CC 800018CC 0C0A9F02 */ jal func_802A7C08 -/* 0024D0 800018D0 A420C58C */ sh $zero, %lo(sNumVBlanks)($at) -/* 0024D4 800018D4 0C0A8F8F */ jal func_802A3E3C -/* 0024D8 800018D8 00000000 */ nop -/* 0024DC 800018DC 3C09800E */ lui $t1, %hi(D_800DC5B0) # $t1, 0x800e -/* 0024E0 800018E0 9529C5B0 */ lhu $t1, %lo(D_800DC5B0)($t1) -/* 0024E4 800018E4 11200003 */ beqz $t1, .L800018F4 -/* 0024E8 800018E8 00000000 */ nop -/* 0024EC 800018EC 0C0A9075 */ jal func_802A41D4 -/* 0024F0 800018F0 00000000 */ nop -.L800018F4: -/* 0024F4 800018F4 3C0A800E */ lui $t2, %hi(D_800DC5E8) # $t2, 0x800e -/* 0024F8 800018F8 8D4AC5E8 */ lw $t2, %lo(D_800DC5E8)($t2) -/* 0024FC 800018FC 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016 -/* 002500 80001900 AC20F788 */ sw $zero, %lo(D_8015F788)($at) -/* 002504 80001904 15400007 */ bnez $t2, .L80001924 -/* 002508 80001908 00000000 */ nop -/* 00250C 8000190C 0C0A97EB */ jal func_802A5FAC -/* 002510 80001910 00000000 */ nop -/* 002514 80001914 0C0A972D */ jal func_802A5CB4 -/* 002518 80001918 00000000 */ nop -/* 00251C 8000191C 10000005 */ b .L80001934 -/* 002520 80001920 00000000 */ nop -.L80001924: -/* 002524 80001924 0C0A972D */ jal func_802A5CB4 -/* 002528 80001928 00000000 */ nop -/* 00252C 8000192C 0C0A97EB */ jal func_802A5FAC -/* 002530 80001930 00000000 */ nop -.L80001934: -/* 002534 80001934 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e -/* 002538 80001938 10000122 */ b .L80001DC4 -/* 00253C 8000193C 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0) -.L80001940: -/* 002540 80001940 856BC5A0 */ lh $t3, %lo(gCurrentCourseId)($t3) # -0x3a60($t3) -/* 002544 80001944 24010012 */ li $at, 18 -/* 002548 80001948 24030003 */ li $v1, 3 -/* 00254C 8000194C 15610004 */ bne $t3, $at, .L80001960 -/* 002550 80001950 240C0002 */ li $t4, 2 -/* 002554 80001954 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 002558 80001958 10000003 */ b .L80001968 -/* 00255C 8000195C AC230114 */ sw $v1, %lo(D_80150114)($at) -.L80001960: -/* 002560 80001960 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 002564 80001964 AC2C0114 */ sw $t4, %lo(D_80150114)($at) -.L80001968: -/* 002568 80001968 960D0000 */ lhu $t5, ($s0) -/* 00256C 8000196C 3C0E8015 */ lui $t6, %hi(D_80150114) # $t6, 0x8015 -/* 002570 80001970 15A0003B */ bnez $t5, .L80001A60 -/* 002574 80001974 00000000 */ nop -/* 002578 80001978 8DCE0114 */ lw $t6, %lo(D_80150114)($t6) -/* 00257C 8000197C 00008025 */ move $s0, $zero -/* 002580 80001980 3C01800F */ lui $at, %hi(D_800EB608) -/* 002584 80001984 19C00034 */ blez $t6, .L80001A58 -/* 002588 80001988 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e -/* 00258C 8000198C D434B608 */ ldc1 $f20, %lo(D_800EB608)($at) -/* 002590 80001990 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68 -.L80001994: -/* 002594 80001994 3C0F8015 */ lui $t7, %hi(D_8015011E) # $t7, 0x8015 -/* 002598 80001998 95EF011E */ lhu $t7, %lo(D_8015011E)($t7) -/* 00259C 8000199C 11E00006 */ beqz $t7, .L800019B8 -/* 0025A0 800019A0 00000000 */ nop -/* 0025A4 800019A4 C6280000 */ lwc1 $f8, ($s1) -/* 0025A8 800019A8 460042A1 */ cvt.d.s $f10, $f8 -/* 0025AC 800019AC 46345400 */ add.d $f16, $f10, $f20 -/* 0025B0 800019B0 462084A0 */ cvt.s.d $f18, $f16 -/* 0025B4 800019B4 E6320000 */ swc1 $f18, ($s1) -.L800019B8: -/* 0025B8 800019B8 0C0A427C */ jal func_802909F0 -/* 0025BC 800019BC 00000000 */ nop -/* 0025C0 800019C0 0C0A8355 */ jal func_802A0D54 -/* 0025C4 800019C4 00000000 */ nop -/* 0025C8 800019C8 0C00E0B7 */ jal func_800382DC -/* 0025CC 800019CC 00000000 */ nop -/* 0025D0 800019D0 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e -/* 0025D4 800019D4 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e -/* 0025D8 800019D8 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1) -/* 0025DC 800019DC 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0) -/* 0025E0 800019E0 0C007BA6 */ jal func_8001EE98 -/* 0025E4 800019E4 00003025 */ move $a2, $zero -/* 0025E8 800019E8 0C00A418 */ jal func_80029060 -/* 0025EC 800019EC 00000000 */ nop -/* 0025F0 800019F0 3C04800E */ lui $a0, %hi(D_800DC500) # $a0, 0x800e -/* 0025F4 800019F4 3C05800E */ lui $a1, %hi(D_800DDB44) # $a1, 0x800e -/* 0025F8 800019F8 8CA5DB44 */ lw $a1, %lo(D_800DDB44)($a1) -/* 0025FC 800019FC 8C84C500 */ lw $a0, %lo(D_800DC500)($a0) -/* 002600 80001A00 0C007BA6 */ jal func_8001EE98 -/* 002604 80001A04 24060001 */ li $a2, 1 -/* 002608 80001A08 0C00A454 */ jal func_80029150 -/* 00260C 80001A0C 00000000 */ nop -/* 002610 80001A10 0C0A3D1D */ jal func_8028F474 -/* 002614 80001A14 00000000 */ nop -/* 002618 80001A18 0C0166B2 */ jal func_80059AC8 -/* 00261C 80001A1C 00000000 */ nop -/* 002620 80001A20 0C0A8D52 */ jal update_simple_objects -/* 002624 80001A24 00000000 */ nop -/* 002628 80001A28 0C0A59A8 */ jal func_802966A0 -/* 00262C 80001A2C 00000000 */ nop -/* 002630 80001A30 0C0A3F2F */ jal func_8028FCBC -/* 002634 80001A34 00000000 */ nop -/* 002638 80001A38 3C098015 */ lui $t1, %hi(D_80150114) # $t1, 0x8015 -/* 00263C 80001A3C 8D290114 */ lw $t1, %lo(D_80150114)($t1) -/* 002640 80001A40 26100001 */ addiu $s0, $s0, 1 -/* 002644 80001A44 0010C400 */ sll $t8, $s0, 0x10 -/* 002648 80001A48 00188403 */ sra $s0, $t8, 0x10 -/* 00264C 80001A4C 0209082A */ slt $at, $s0, $t1 -/* 002650 80001A50 1420FFD0 */ bnez $at, .L80001994 -/* 002654 80001A54 00000000 */ nop -.L80001A58: -/* 002658 80001A58 0C0089D1 */ jal func_80022744 -/* 00265C 80001A5C 00000000 */ nop -.L80001A60: -/* 002660 80001A60 0C000D54 */ jal profiler_log_thread5_time -/* 002664 80001A64 24040001 */ li $a0, 1 -/* 002668 80001A68 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e -/* 00266C 80001A6C 0C01681C */ jal func_8005A070 -/* 002670 80001A70 A420C58C */ sh $zero, %lo(sNumVBlanks)($at) -/* 002674 80001A74 0C0A9F02 */ jal func_802A7C08 -/* 002678 80001A78 00000000 */ nop -/* 00267C 80001A7C 0C0A8F8F */ jal func_802A3E3C -/* 002680 80001A80 00000000 */ nop -/* 002684 80001A84 3C0A800E */ lui $t2, %hi(D_800DC5B0) # $t2, 0x800e -/* 002688 80001A88 954AC5B0 */ lhu $t2, %lo(D_800DC5B0)($t2) -/* 00268C 80001A8C 11400003 */ beqz $t2, .L80001A9C -/* 002690 80001A90 00000000 */ nop -/* 002694 80001A94 0C0A9075 */ jal func_802A41D4 -/* 002698 80001A98 00000000 */ nop -.L80001A9C: -/* 00269C 80001A9C 3C0B800E */ lui $t3, %hi(D_800DC5E8) # $t3, 0x800e -/* 0026A0 80001AA0 8D6BC5E8 */ lw $t3, %lo(D_800DC5E8)($t3) -/* 0026A4 80001AA4 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016 -/* 0026A8 80001AA8 AC20F788 */ sw $zero, %lo(D_8015F788)($at) -/* 0026AC 80001AAC 15600007 */ bnez $t3, .L80001ACC -/* 0026B0 80001AB0 00000000 */ nop -/* 0026B4 80001AB4 0C0A996E */ jal func_802A65B8 -/* 0026B8 80001AB8 00000000 */ nop -/* 0026BC 80001ABC 0C0A98A9 */ jal func_802A62A4 -/* 0026C0 80001AC0 00000000 */ nop -/* 0026C4 80001AC4 10000005 */ b .L80001ADC -/* 0026C8 80001AC8 00000000 */ nop -.L80001ACC: -/* 0026CC 80001ACC 0C0A98A9 */ jal func_802A62A4 -/* 0026D0 80001AD0 00000000 */ nop -/* 0026D4 80001AD4 0C0A996E */ jal func_802A65B8 -/* 0026D8 80001AD8 00000000 */ nop -.L80001ADC: -/* 0026DC 80001ADC 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e -/* 0026E0 80001AE0 100000B8 */ b .L80001DC4 -/* 0026E4 80001AE4 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0) -.L80001AE8: -/* 0026E8 80001AE8 8D8CC538 */ lw $t4, %lo(gPlayerCountSelection1)($t4) # -0x3ac8($t4) -/* 0026EC 80001AEC 3C02800E */ lui $v0, %hi(gCurrentCourseId) # 0x800e -/* 0026F0 80001AF0 3C0F8015 */ lui $t7, %hi(D_80150114) # $t7, 0x8015 -/* 0026F4 80001AF4 146C0011 */ bne $v1, $t4, .L80001B3C -/* 0026F8 80001AF8 00000000 */ nop -/* 0026FC 80001AFC 3C02800E */ lui $v0, %hi(gCurrentCourseId) # $v0, 0x800e -/* 002700 80001B00 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0) -/* 002704 80001B04 24010009 */ li $at, 9 -/* 002708 80001B08 10440009 */ beq $v0, $a0, .L80001B30 -/* 00270C 80001B0C 00000000 */ nop -/* 002710 80001B10 10410007 */ beq $v0, $at, .L80001B30 -/* 002714 80001B14 24010010 */ li $at, 16 -/* 002718 80001B18 10410005 */ beq $v0, $at, .L80001B30 -/* 00271C 80001B1C 24010012 */ li $at, 18 -/* 002720 80001B20 10410003 */ beq $v0, $at, .L80001B30 -/* 002724 80001B24 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 002728 80001B28 10000016 */ b .L80001B84 -/* 00272C 80001B2C AC240114 */ sw $a0, %lo(D_80150114)($at) -.L80001B30: -/* 002730 80001B30 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 002734 80001B34 10000013 */ b .L80001B84 -/* 002738 80001B38 AC230114 */ sw $v1, %lo(D_80150114)($at) -.L80001B3C: -/* 00273C 80001B3C 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0) -/* 002740 80001B40 2401000F */ li $at, 15 -/* 002744 80001B44 1041000A */ beq $v0, $at, .L80001B70 -/* 002748 80001B48 24010011 */ li $at, 17 -/* 00274C 80001B4C 10410008 */ beq $v0, $at, .L80001B70 -/* 002750 80001B50 24010012 */ li $at, 18 -/* 002754 80001B54 10410009 */ beq $v0, $at, .L80001B7C -/* 002758 80001B58 240D0004 */ li $t5, 4 -/* 00275C 80001B5C 24010013 */ li $at, 19 -/* 002760 80001B60 10410003 */ beq $v0, $at, .L80001B70 -/* 002764 80001B64 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 002768 80001B68 10000006 */ b .L80001B84 -/* 00276C 80001B6C AC230114 */ sw $v1, %lo(D_80150114)($at) -.L80001B70: -/* 002770 80001B70 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 002774 80001B74 10000003 */ b .L80001B84 -/* 002778 80001B78 AC240114 */ sw $a0, %lo(D_80150114)($at) -.L80001B7C: -/* 00277C 80001B7C 3C018015 */ lui $at, %hi(D_80150114) # $at, 0x8015 -/* 002780 80001B80 AC2D0114 */ sw $t5, %lo(D_80150114)($at) -.L80001B84: -/* 002784 80001B84 960E0000 */ lhu $t6, ($s0) -/* 002788 80001B88 15C0004B */ bnez $t6, .L80001CB8 -/* 00278C 80001B8C 00000000 */ nop -/* 002790 80001B90 8DEF0114 */ lw $t7, %lo(D_80150114)($t7) -/* 002794 80001B94 00008025 */ move $s0, $zero -/* 002798 80001B98 3C01800F */ lui $at, %hi(D_800EB610) -/* 00279C 80001B9C 19E00044 */ blez $t7, .L80001CB0 -/* 0027A0 80001BA0 3C11800E */ lui $s1, %hi(gCourseTimer) # $s1, 0x800e -/* 0027A4 80001BA4 D434B610 */ ldc1 $f20, %lo(D_800EB610)($at) -/* 0027A8 80001BA8 2631C598 */ addiu $s1, %lo(gCourseTimer) # addiu $s1, $s1, -0x3a68 -.L80001BAC: -/* 0027AC 80001BAC 3C188015 */ lui $t8, %hi(D_8015011E) # $t8, 0x8015 -/* 0027B0 80001BB0 9718011E */ lhu $t8, %lo(D_8015011E)($t8) -/* 0027B4 80001BB4 13000006 */ beqz $t8, .L80001BD0 -/* 0027B8 80001BB8 00000000 */ nop -/* 0027BC 80001BBC C6240000 */ lwc1 $f4, ($s1) -/* 0027C0 80001BC0 460021A1 */ cvt.d.s $f6, $f4 -/* 0027C4 80001BC4 46343200 */ add.d $f8, $f6, $f20 -/* 0027C8 80001BC8 462042A0 */ cvt.s.d $f10, $f8 -/* 0027CC 80001BCC E62A0000 */ swc1 $f10, ($s1) -.L80001BD0: -/* 0027D0 80001BD0 0C0A427C */ jal func_802909F0 -/* 0027D4 80001BD4 00000000 */ nop -/* 0027D8 80001BD8 0C0A8355 */ jal func_802A0D54 -/* 0027DC 80001BDC 00000000 */ nop -/* 0027E0 80001BE0 0C00E0B7 */ jal func_800382DC -/* 0027E4 80001BE4 00000000 */ nop -/* 0027E8 80001BE8 3C04800E */ lui $a0, %hi(D_800DC4FC) # $a0, 0x800e -/* 0027EC 80001BEC 3C05800E */ lui $a1, %hi(D_800DDB40) # $a1, 0x800e -/* 0027F0 80001BF0 8CA5DB40 */ lw $a1, %lo(D_800DDB40)($a1) -/* 0027F4 80001BF4 8C84C4FC */ lw $a0, %lo(D_800DC4FC)($a0) -/* 0027F8 80001BF8 0C007BA6 */ jal func_8001EE98 -/* 0027FC 80001BFC 00003025 */ move $a2, $zero -/* 002800 80001C00 0C00A456 */ jal func_80029158 -/* 002804 80001C04 00000000 */ nop -/* 002808 80001C08 3C04800E */ lui $a0, %hi(D_800DC4E0) # $a0, 0x800e -/* 00280C 80001C0C 3C05800E */ lui $a1, %hi(D_800DDB44) # $a1, 0x800e -/* 002810 80001C10 8CA5DB44 */ lw $a1, %lo(D_800DDB44)($a1) -/* 002814 80001C14 8C84C4E0 */ lw $a0, %lo(D_800DC4E0)($a0) -/* 002818 80001C18 0C007BA6 */ jal func_8001EE98 -/* 00281C 80001C1C 24060001 */ li $a2, 1 -/* 002820 80001C20 0C00A47A */ jal func_800291E8 -/* 002824 80001C24 00000000 */ nop -/* 002828 80001C28 3C04800E */ lui $a0, %hi(D_800DC4E4) # $a0, 0x800e -/* 00282C 80001C2C 3C05800E */ lui $a1, %hi(D_800DDB48) # $a1, 0x800e -/* 002830 80001C30 8CA5DB48 */ lw $a1, %lo(D_800DDB48)($a1) -/* 002834 80001C34 8C84C4E4 */ lw $a0, %lo(D_800DC4E4)($a0) -/* 002838 80001C38 0C007BA6 */ jal func_8001EE98 -/* 00283C 80001C3C 24060002 */ li $a2, 2 -/* 002840 80001C40 0C00A47C */ jal func_800291F0 -/* 002844 80001C44 00000000 */ nop -/* 002848 80001C48 3C04800E */ lui $a0, %hi(D_800DC4E8) # $a0, 0x800e -/* 00284C 80001C4C 3C05800E */ lui $a1, %hi(D_800DDB4C) # $a1, 0x800e -/* 002850 80001C50 8CA5DB4C */ lw $a1, %lo(D_800DDB4C)($a1) -/* 002854 80001C54 8C84C4E8 */ lw $a0, %lo(D_800DC4E8)($a0) -/* 002858 80001C58 0C007BA6 */ jal func_8001EE98 -/* 00285C 80001C5C 24060003 */ li $a2, 3 -/* 002860 80001C60 0C00A47E */ jal func_800291F8 -/* 002864 80001C64 00000000 */ nop -/* 002868 80001C68 0C0A3D1D */ jal func_8028F474 -/* 00286C 80001C6C 00000000 */ nop -/* 002870 80001C70 0C0166B2 */ jal func_80059AC8 -/* 002874 80001C74 00000000 */ nop -/* 002878 80001C78 0C0A8D52 */ jal update_simple_objects -/* 00287C 80001C7C 00000000 */ nop -/* 002880 80001C80 0C0A59A8 */ jal func_802966A0 -/* 002884 80001C84 00000000 */ nop -/* 002888 80001C88 0C0A3F2F */ jal func_8028FCBC -/* 00288C 80001C8C 00000000 */ nop -/* 002890 80001C90 3C0A8015 */ lui $t2, %hi(D_80150114) # $t2, 0x8015 -/* 002894 80001C94 8D4A0114 */ lw $t2, %lo(D_80150114)($t2) -/* 002898 80001C98 26100001 */ addiu $s0, $s0, 1 -/* 00289C 80001C9C 0010CC00 */ sll $t9, $s0, 0x10 -/* 0028A0 80001CA0 00198403 */ sra $s0, $t9, 0x10 -/* 0028A4 80001CA4 020A082A */ slt $at, $s0, $t2 -/* 0028A8 80001CA8 1420FFC0 */ bnez $at, .L80001BAC -/* 0028AC 80001CAC 00000000 */ nop -.L80001CB0: -/* 0028B0 80001CB0 0C0089D1 */ jal func_80022744 -/* 0028B4 80001CB4 00000000 */ nop -.L80001CB8: -/* 0028B8 80001CB8 0C01681C */ jal func_8005A070 -/* 0028BC 80001CBC 00000000 */ nop -/* 0028C0 80001CC0 3C01800E */ lui $at, %hi(sNumVBlanks) # $at, 0x800e -/* 0028C4 80001CC4 A420C58C */ sh $zero, %lo(sNumVBlanks)($at) -/* 0028C8 80001CC8 0C000D54 */ jal profiler_log_thread5_time -/* 0028CC 80001CCC 24040001 */ li $a0, 1 -/* 0028D0 80001CD0 0C0A9F02 */ jal func_802A7C08 -/* 0028D4 80001CD4 00000000 */ nop -/* 0028D8 80001CD8 0C0A8F8F */ jal func_802A3E3C -/* 0028DC 80001CDC 00000000 */ nop -/* 0028E0 80001CE0 3C0B800E */ lui $t3, %hi(D_800DC5B0) # $t3, 0x800e -/* 0028E4 80001CE4 956BC5B0 */ lhu $t3, %lo(D_800DC5B0)($t3) -/* 0028E8 80001CE8 11600003 */ beqz $t3, .L80001CF8 -/* 0028EC 80001CEC 00000000 */ nop -/* 0028F0 80001CF0 0C0A9075 */ jal func_802A41D4 -/* 0028F4 80001CF4 00000000 */ nop -.L80001CF8: -/* 0028F8 80001CF8 3C02800E */ lui $v0, %hi(D_800DC5E8) # $v0, 0x800e -/* 0028FC 80001CFC 8C42C5E8 */ lw $v0, %lo(D_800DC5E8)($v0) -/* 002900 80001D00 3C018016 */ lui $at, %hi(D_8015F788) # $at, 0x8016 -/* 002904 80001D04 AC20F788 */ sw $zero, %lo(D_8015F788)($at) -/* 002908 80001D08 1440000B */ bnez $v0, .L80001D38 -/* 00290C 80001D0C 24010001 */ li $at, 1 -/* 002910 80001D10 0C0A9AEC */ jal func_802A6BB0 -/* 002914 80001D14 00000000 */ nop -/* 002918 80001D18 0C0A9BA5 */ jal func_802A6E94 -/* 00291C 80001D1C 00000000 */ nop -/* 002920 80001D20 0C0A9C5E */ jal func_802A7178 -/* 002924 80001D24 00000000 */ nop -/* 002928 80001D28 0C0A9A33 */ jal func_802A68CC -/* 00292C 80001D2C 00000000 */ nop -/* 002930 80001D30 10000022 */ b .L80001DBC -/* 002934 80001D34 00000000 */ nop -.L80001D38: -/* 002938 80001D38 5441000C */ bnel $v0, $at, .L80001D6C -/* 00293C 80001D3C 24010002 */ li $at, 2 -/* 002940 80001D40 0C0A9A33 */ jal func_802A68CC -/* 002944 80001D44 00000000 */ nop -/* 002948 80001D48 0C0A9BA5 */ jal func_802A6E94 -/* 00294C 80001D4C 00000000 */ nop -/* 002950 80001D50 0C0A9C5E */ jal func_802A7178 -/* 002954 80001D54 00000000 */ nop -/* 002958 80001D58 0C0A9AEC */ jal func_802A6BB0 -/* 00295C 80001D5C 00000000 */ nop -/* 002960 80001D60 10000016 */ b .L80001DBC -/* 002964 80001D64 00000000 */ nop -/* 002968 80001D68 24010002 */ li $at, 2 -.L80001D6C: -/* 00296C 80001D6C 1441000B */ bne $v0, $at, .L80001D9C -/* 002970 80001D70 00000000 */ nop -/* 002974 80001D74 0C0A9A33 */ jal func_802A68CC -/* 002978 80001D78 00000000 */ nop -/* 00297C 80001D7C 0C0A9AEC */ jal func_802A6BB0 -/* 002980 80001D80 00000000 */ nop -/* 002984 80001D84 0C0A9C5E */ jal func_802A7178 -/* 002988 80001D88 00000000 */ nop -/* 00298C 80001D8C 0C0A9BA5 */ jal func_802A6E94 -/* 002990 80001D90 00000000 */ nop -/* 002994 80001D94 10000009 */ b .L80001DBC -/* 002998 80001D98 00000000 */ nop -.L80001D9C: -/* 00299C 80001D9C 0C0A9A33 */ jal func_802A68CC -/* 0029A0 80001DA0 00000000 */ nop -/* 0029A4 80001DA4 0C0A9AEC */ jal func_802A6BB0 -/* 0029A8 80001DA8 00000000 */ nop -/* 0029AC 80001DAC 0C0A9BA5 */ jal func_802A6E94 -/* 0029B0 80001DB0 00000000 */ nop -/* 0029B4 80001DB4 0C0A9C5E */ jal func_802A7178 -/* 0029B8 80001DB8 00000000 */ nop -.L80001DBC: -/* 0029BC 80001DBC 3C04800E */ lui $a0, %hi(gEnableDebugMode) # $a0, 0x800e -/* 0029C0 80001DC0 9484C520 */ lhu $a0, %lo(gEnableDebugMode)($a0) -.L80001DC4: -/* 0029C4 80001DC4 14800005 */ bnez $a0, .L80001DDC -/* 0029C8 80001DC8 3C10800E */ lui $s0, %hi(gEnableResourceMeters) -/* 0029CC 80001DCC 3C10800E */ lui $s0, %hi(gEnableResourceMeters) # $s0, 0x800e -/* 0029D0 80001DD0 2610C660 */ addiu $s0, %lo(gEnableResourceMeters) # addiu $s0, $s0, -0x39a0 -/* 0029D4 80001DD4 10000023 */ b .L80001E64 -/* 0029D8 80001DD8 AE000000 */ sw $zero, ($s0) -.L80001DDC: -/* 0029DC 80001DDC 2610C660 */ addiu $s0, $s0, %lo(gEnableResourceMeters) -/* 0029E0 80001DE0 8E0C0000 */ lw $t4, ($s0) -/* 0029E4 80001DE4 3C03800E */ lui $v1, %hi(D_800DC4BC) -/* 0029E8 80001DE8 11800011 */ beqz $t4, .L80001E30 -/* 0029EC 80001DEC 00000000 */ nop -/* 0029F0 80001DF0 0C000FF5 */ jal resource_display -/* 0029F4 80001DF4 00000000 */ nop -/* 0029F8 80001DF8 3C03800E */ lui $v1, %hi(D_800DC4BC) # $v1, 0x800e -/* 0029FC 80001DFC 8C63C4BC */ lw $v1, %lo(D_800DC4BC)($v1) -/* 002A00 80001E00 94620004 */ lhu $v0, 4($v1) -/* 002A04 80001E04 304D0020 */ andi $t5, $v0, 0x20 -/* 002A08 80001E08 15A00016 */ bnez $t5, .L80001E64 -/* 002A0C 80001E0C 304E0010 */ andi $t6, $v0, 0x10 -/* 002A10 80001E10 11C00014 */ beqz $t6, .L80001E64 -/* 002A14 80001E14 00000000 */ nop -/* 002A18 80001E18 946F0006 */ lhu $t7, 6($v1) -/* 002A1C 80001E1C 31F84000 */ andi $t8, $t7, 0x4000 -/* 002A20 80001E20 13000010 */ beqz $t8, .L80001E64 -/* 002A24 80001E24 00000000 */ nop -/* 002A28 80001E28 1000000E */ b .L80001E64 -/* 002A2C 80001E2C AE000000 */ sw $zero, ($s0) -.L80001E30: -/* 002A30 80001E30 8C63C4BC */ lw $v1, %lo(D_800DC4BC)($v1) -/* 002A34 80001E34 94620004 */ lhu $v0, 4($v1) -/* 002A38 80001E38 30590020 */ andi $t9, $v0, 0x20 -/* 002A3C 80001E3C 17200009 */ bnez $t9, .L80001E64 -/* 002A40 80001E40 30490010 */ andi $t1, $v0, 0x10 -/* 002A44 80001E44 11200007 */ beqz $t1, .L80001E64 -/* 002A48 80001E48 00000000 */ nop -/* 002A4C 80001E4C 946A0006 */ lhu $t2, 6($v1) -/* 002A50 80001E50 240C0001 */ li $t4, 1 -/* 002A54 80001E54 314B4000 */ andi $t3, $t2, 0x4000 -/* 002A58 80001E58 11600002 */ beqz $t3, .L80001E64 -/* 002A5C 80001E5C 00000000 */ nop -/* 002A60 80001E60 AE0C0000 */ sw $t4, ($s0) -.L80001E64: -/* 002A64 80001E64 0C0A90C0 */ jal func_802A4300 -/* 002A68 80001E68 00000000 */ nop -/* 002A6C 80001E6C 0C01646D */ jal func_800591B4 -/* 002A70 80001E70 00000000 */ nop -/* 002A74 80001E74 0C024F88 */ jal func_80093E20 -/* 002A78 80001E78 00000000 */ nop -/* 002A7C 80001E7C 3C058015 */ lui $a1, %hi(gDisplayListHead) # $a1, 0x8015 -/* 002A80 80001E80 24A50298 */ addiu $a1, %lo(gDisplayListHead) # addiu $a1, $a1, 0x298 -/* 002A84 80001E84 8CA20000 */ lw $v0, ($a1) -/* 002A88 80001E88 3C0EE900 */ lui $t6, 0xe900 -/* 002A8C 80001E8C 3C18B800 */ lui $t8, 0xb800 -/* 002A90 80001E90 244D0008 */ addiu $t5, $v0, 8 -/* 002A94 80001E94 ACAD0000 */ sw $t5, ($a1) -/* 002A98 80001E98 AC400004 */ sw $zero, 4($v0) -/* 002A9C 80001E9C AC4E0000 */ sw $t6, ($v0) -/* 002AA0 80001EA0 8CA20000 */ lw $v0, ($a1) -/* 002AA4 80001EA4 244F0008 */ addiu $t7, $v0, 8 -/* 002AA8 80001EA8 ACAF0000 */ sw $t7, ($a1) -/* 002AAC 80001EAC AC400004 */ sw $zero, 4($v0) -/* 002AB0 80001EB0 AC580000 */ sw $t8, ($v0) -/* 002AB4 80001EB4 8FBF0024 */ lw $ra, 0x24($sp) -.L80001EB8: -/* 002AB8 80001EB8 D7B40010 */ ldc1 $f20, 0x10($sp) -/* 002ABC 80001EBC 8FB0001C */ lw $s0, 0x1c($sp) -/* 002AC0 80001EC0 8FB10020 */ lw $s1, 0x20($sp) -/* 002AC4 80001EC4 03E00008 */ jr $ra -/* 002AC8 80001EC8 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/non_matchings/main/func_80001ECC.s b/asm/non_matchings/main/func_80001ECC.s deleted file mode 100644 index 31808e610..000000000 --- a/asm/non_matchings/main/func_80001ECC.s +++ /dev/null @@ -1,50 +0,0 @@ -glabel func_80001ECC -/* 002ACC 80001ECC 3C0E800E */ lui $t6, %hi(D_800DC50C) # $t6, 0x800e -/* 002AD0 80001ED0 8DCEC50C */ lw $t6, %lo(D_800DC50C)($t6) -/* 002AD4 80001ED4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 002AD8 80001ED8 AFBF0014 */ sw $ra, 0x14($sp) -/* 002ADC 80001EDC 2DC1000A */ sltiu $at, $t6, 0xa -/* 002AE0 80001EE0 1020001F */ beqz $at, .L80001F60 -/* 002AE4 80001EE4 000E7080 */ sll $t6, $t6, 2 -/* 002AE8 80001EE8 3C01800F */ lui $at, %hi(D_800EB618) -/* 002AEC 80001EEC 002E0821 */ addu $at, $at, $t6 -/* 002AF0 80001EF0 8C2EB618 */ lw $t6, %lo(D_800EB618)($at) -/* 002AF4 80001EF4 01C00008 */ jr $t6 -/* 002AF8 80001EF8 00000000 */ nop -glabel L80001EFC -/* 002AFC 80001EFC 0C000501 */ jal func_80001404 -/* 002B00 80001F00 00000000 */ nop -/* 002B04 80001F04 10000017 */ b .L80001F64 -/* 002B08 80001F08 8FBF0014 */ lw $ra, 0x14($sp) -glabel L80001F0C -/* 002B0C 80001F0C 0C033230 */ jal osViBlack -/* 002B10 80001F10 00002025 */ move $a0, $zero -/* 002B14 80001F14 0C02C0D4 */ jal func_800B0350 -/* 002B18 80001F18 00000000 */ nop -/* 002B1C 80001F1C 0C00032A */ jal func_80000CA8 -/* 002B20 80001F20 00000000 */ nop -/* 002B24 80001F24 3C048015 */ lui $a0, %hi(gGfxPool) # $a0, 0x8015 -/* 002B28 80001F28 0C025299 */ jal func_80094A64 -/* 002B2C 80001F2C 8C84EF40 */ lw $a0, %lo(gGfxPool)($a0) -/* 002B30 80001F30 1000000C */ b .L80001F64 -/* 002B34 80001F34 8FBF0014 */ lw $ra, 0x14($sp) -glabel L80001F38 -/* 002B38 80001F38 0C00050B */ jal func_8000142C -/* 002B3C 80001F3C 00000000 */ nop -/* 002B40 80001F40 10000008 */ b .L80001F64 -/* 002B44 80001F44 8FBF0014 */ lw $ra, 0x14($sp) -glabel L80001F48 -/* 002B48 80001F48 0C0A0552 */ jal func_80281548 -/* 002B4C 80001F4C 00000000 */ nop -/* 002B50 80001F50 10000004 */ b .L80001F64 -/* 002B54 80001F54 8FBF0014 */ lw $ra, 0x14($sp) -glabel L80001F58 -/* 002B58 80001F58 0C0A00AB */ jal func_802802AC -/* 002B5C 80001F5C 00000000 */ nop -.L80001F60: -glabel L80001F60 -/* 002B60 80001F60 8FBF0014 */ lw $ra, 0x14($sp) -.L80001F64: -/* 002B64 80001F64 27BD0018 */ addiu $sp, $sp, 0x18 -/* 002B68 80001F68 03E00008 */ jr $ra -/* 002B6C 80001F6C 00000000 */ nop diff --git a/asm/non_matchings/main/func_80001FAC.s b/asm/non_matchings/main/func_80001FAC.s deleted file mode 100644 index 56e4de4dd..000000000 --- a/asm/non_matchings/main/func_80001FAC.s +++ /dev/null @@ -1,81 +0,0 @@ -glabel func_80001FAC -/* 002BAC 80001FAC 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 002BB0 80001FB0 AFB40028 */ sw $s4, 0x28($sp) -/* 002BB4 80001FB4 3C148015 */ lui $s4, %hi(D_8014EFD0) # $s4, 0x8015 -/* 002BB8 80001FB8 AFB5002C */ sw $s5, 0x2c($sp) -/* 002BBC 80001FBC 27B50040 */ addiu $s5, $sp, 0x40 -/* 002BC0 80001FC0 2694EFD0 */ addiu $s4, %lo(D_8014EFD0) # addiu $s4, $s4, -0x1030 -/* 002BC4 80001FC4 AFBF0034 */ sw $ra, 0x34($sp) -/* 002BC8 80001FC8 AFB60030 */ sw $s6, 0x30($sp) -/* 002BCC 80001FCC AFB30024 */ sw $s3, 0x24($sp) -/* 002BD0 80001FD0 AFB20020 */ sw $s2, 0x20($sp) -/* 002BD4 80001FD4 AFB1001C */ sw $s1, 0x1c($sp) -/* 002BD8 80001FD8 AFB00018 */ sw $s0, 0x18($sp) -/* 002BDC 80001FDC 02802025 */ move $a0, $s4 -/* 002BE0 80001FE0 02A02825 */ move $a1, $s5 -/* 002BE4 80001FE4 0C0335D4 */ jal osRecvMesg -/* 002BE8 80001FE8 00003025 */ move $a2, $zero -/* 002BEC 80001FEC 2410FFFF */ li $s0, -1 -/* 002BF0 80001FF0 10500018 */ beq $v0, $s0, .L80002054 -/* 002BF4 80001FF4 3C16800E */ lui $s6, %hi(sNextDisplaySPTask) # $s6, 0x800e -/* 002BF8 80001FF8 3C13800E */ lui $s3, %hi(D_800DC4B4) # $s3, 0x800e -/* 002BFC 80001FFC 2673C4B4 */ addiu $s3, %lo(D_800DC4B4) # addiu $s3, $s3, -0x3b4c -/* 002C00 80002000 26D6C4B8 */ addiu $s6, %lo(sNextDisplaySPTask) # addiu $s6, $s6, -0x3b48 -/* 002C04 80002004 24120002 */ li $s2, 2 -/* 002C08 80002008 24110001 */ li $s1, 1 -/* 002C0C 8000200C 8FAE0040 */ lw $t6, 0x40($sp) -.L80002010: -/* 002C10 80002010 02802025 */ move $a0, $s4 -/* 002C14 80002014 02A02825 */ move $a1, $s5 -/* 002C18 80002018 ADC00048 */ sw $zero, 0x48($t6) -/* 002C1C 8000201C 8FAF0040 */ lw $t7, 0x40($sp) -/* 002C20 80002020 8FB90040 */ lw $t9, 0x40($sp) -/* 002C24 80002024 8DE20000 */ lw $v0, ($t7) -/* 002C28 80002028 50510006 */ beql $v0, $s1, .L80002044 -/* 002C2C 8000202C AED90000 */ sw $t9, ($s6) -/* 002C30 80002030 14520004 */ bne $v0, $s2, .L80002044 -/* 002C34 80002034 8FB80040 */ lw $t8, 0x40($sp) -/* 002C38 80002038 10000002 */ b .L80002044 -/* 002C3C 8000203C AE780000 */ sw $t8, ($s3) -/* 002C40 80002040 AED90000 */ sw $t9, ($s6) -.L80002044: -/* 002C44 80002044 0C0335D4 */ jal osRecvMesg -/* 002C48 80002048 00003025 */ move $a2, $zero -/* 002C4C 8000204C 5450FFF0 */ bnel $v0, $s0, .L80002010 -/* 002C50 80002050 8FAE0040 */ lw $t6, 0x40($sp) -.L80002054: -/* 002C54 80002054 3C03800E */ lui $v1, %hi(sCurrentAudioSPTask) # $v1, 0x800e -/* 002C58 80002058 2463C4AC */ addiu $v1, %lo(sCurrentAudioSPTask) # addiu $v1, $v1, -0x3b54 -/* 002C5C 8000205C 8C680000 */ lw $t0, ($v1) -/* 002C60 80002060 3C13800E */ lui $s3, %hi(D_800DC4B4) # $s3, 0x800e -/* 002C64 80002064 3C16800E */ lui $s6, %hi(sNextDisplaySPTask) # $s6, 0x800e -/* 002C68 80002068 26D6C4B8 */ addiu $s6, %lo(sNextDisplaySPTask) # addiu $s6, $s6, -0x3b48 -/* 002C6C 8000206C 15000006 */ bnez $t0, .L80002088 -/* 002C70 80002070 2673C4B4 */ addiu $s3, %lo(D_800DC4B4) # addiu $s3, $s3, -0x3b4c -/* 002C74 80002074 8E620000 */ lw $v0, ($s3) -/* 002C78 80002078 10400003 */ beqz $v0, .L80002088 -/* 002C7C 8000207C 00000000 */ nop -/* 002C80 80002080 AC620000 */ sw $v0, ($v1) -/* 002C84 80002084 AE600000 */ sw $zero, ($s3) -.L80002088: -/* 002C88 80002088 3C03800E */ lui $v1, %hi(sCurrentDisplaySPTask) # $v1, 0x800e -/* 002C8C 8000208C 2463C4B0 */ addiu $v1, %lo(sCurrentDisplaySPTask) # addiu $v1, $v1, -0x3b50 -/* 002C90 80002090 8C690000 */ lw $t1, ($v1) -/* 002C94 80002094 55200007 */ bnel $t1, $zero, .L800020B4 -/* 002C98 80002098 8FBF0034 */ lw $ra, 0x34($sp) -/* 002C9C 8000209C 8EC20000 */ lw $v0, ($s6) -/* 002CA0 800020A0 50400004 */ beql $v0, $zero, .L800020B4 -/* 002CA4 800020A4 8FBF0034 */ lw $ra, 0x34($sp) -/* 002CA8 800020A8 AC620000 */ sw $v0, ($v1) -/* 002CAC 800020AC AEC00000 */ sw $zero, ($s6) -/* 002CB0 800020B0 8FBF0034 */ lw $ra, 0x34($sp) -.L800020B4: -/* 002CB4 800020B4 8FB00018 */ lw $s0, 0x18($sp) -/* 002CB8 800020B8 8FB1001C */ lw $s1, 0x1c($sp) -/* 002CBC 800020BC 8FB20020 */ lw $s2, 0x20($sp) -/* 002CC0 800020C0 8FB30024 */ lw $s3, 0x24($sp) -/* 002CC4 800020C4 8FB40028 */ lw $s4, 0x28($sp) -/* 002CC8 800020C8 8FB5002C */ lw $s5, 0x2c($sp) -/* 002CCC 800020CC 8FB60030 */ lw $s6, 0x30($sp) -/* 002CD0 800020D0 03E00008 */ jr $ra -/* 002CD4 800020D4 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/non_matchings/main/func_80002168.s b/asm/non_matchings/main/func_80002168.s deleted file mode 100644 index 10d673f16..000000000 --- a/asm/non_matchings/main/func_80002168.s +++ /dev/null @@ -1,77 +0,0 @@ -glabel func_80002168 -/* 002D68 80002168 3C02800E */ lui $v0, %hi(D_800DC594) # $v0, 0x800e -/* 002D6C 8000216C 2442C594 */ addiu $v0, %lo(D_800DC594) # addiu $v0, $v0, -0x3a6c -/* 002D70 80002170 C4440000 */ lwc1 $f4, ($v0) -/* 002D74 80002174 3C01800F */ lui $at, %hi(D_800EB640) -/* 002D78 80002178 D428B640 */ ldc1 $f8, %lo(D_800EB640)($at) -/* 002D7C 8000217C 460021A1 */ cvt.d.s $f6, $f4 -/* 002D80 80002180 3C03800E */ lui $v1, %hi(sNumVBlanks) # $v1, 0x800e -/* 002D84 80002184 46283280 */ add.d $f10, $f6, $f8 -/* 002D88 80002188 2463C58C */ addiu $v1, %lo(sNumVBlanks) # addiu $v1, $v1, -0x3a74 -/* 002D8C 8000218C 846E0000 */ lh $t6, ($v1) -/* 002D90 80002190 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 002D94 80002194 46205420 */ cvt.s.d $f16, $f10 -/* 002D98 80002198 AFBF0014 */ sw $ra, 0x14($sp) -/* 002D9C 8000219C 25CF0001 */ addiu $t7, $t6, 1 -/* 002DA0 800021A0 A46F0000 */ sh $t7, ($v1) -/* 002DA4 800021A4 0C0007EB */ jal func_80001FAC -/* 002DA8 800021A8 E4500000 */ swc1 $f16, ($v0) -/* 002DAC 800021AC 3C18800E */ lui $t8, %hi(sCurrentAudioSPTask) # $t8, 0x800e -/* 002DB0 800021B0 8F18C4AC */ lw $t8, %lo(sCurrentAudioSPTask)($t8) -/* 002DB4 800021B4 3C19800E */ lui $t9, %hi(gActiveSPTask) # $t9, 0x800e -/* 002DB8 800021B8 3C08800E */ lui $t0, %hi(gActiveSPTask) # $t0, 0x800e -/* 002DBC 800021BC 1300000E */ beqz $t8, .L800021F8 -/* 002DC0 800021C0 00000000 */ nop -/* 002DC4 800021C4 8F39C4A8 */ lw $t9, %lo(gActiveSPTask)($t9) -/* 002DC8 800021C8 13200005 */ beqz $t9, .L800021E0 -/* 002DCC 800021CC 00000000 */ nop -/* 002DD0 800021D0 0C0007DC */ jal interrupt_gfx_sptask -/* 002DD4 800021D4 00000000 */ nop -/* 002DD8 800021D8 10000016 */ b .L80002234 -/* 002DDC 800021DC 00000000 */ nop -.L800021E0: -/* 002DE0 800021E0 0C000DBB */ jal profiler_log_vblank_time -/* 002DE4 800021E4 00000000 */ nop -/* 002DE8 800021E8 0C00019F */ jal start_sptask -/* 002DEC 800021EC 24040002 */ li $a0, 2 -/* 002DF0 800021F0 10000010 */ b .L80002234 -/* 002DF4 800021F4 00000000 */ nop -.L800021F8: -/* 002DF8 800021F8 8D08C4A8 */ lw $t0, %lo(gActiveSPTask)($t0) -/* 002DFC 800021FC 3C02800E */ lui $v0, %hi(sCurrentDisplaySPTask) # $v0, 0x800e -/* 002E00 80002200 1500000C */ bnez $t0, .L80002234 -/* 002E04 80002204 00000000 */ nop -/* 002E08 80002208 8C42C4B0 */ lw $v0, %lo(sCurrentDisplaySPTask)($v0) -/* 002E0C 8000220C 10400009 */ beqz $v0, .L80002234 -/* 002E10 80002210 00000000 */ nop -/* 002E14 80002214 8C490048 */ lw $t1, 0x48($v0) -/* 002E18 80002218 24010003 */ li $at, 3 -/* 002E1C 8000221C 11210005 */ beq $t1, $at, .L80002234 -/* 002E20 80002220 00000000 */ nop -/* 002E24 80002224 0C000D97 */ jal profiler_log_gfx_time -/* 002E28 80002228 00002025 */ move $a0, $zero -/* 002E2C 8000222C 0C00019F */ jal start_sptask -/* 002E30 80002230 24040001 */ li $a0, 1 -.L80002234: -/* 002E34 80002234 3C02800E */ lui $v0, %hi(gVblankHandler1) # $v0, 0x800e -/* 002E38 80002238 8C42C4A0 */ lw $v0, %lo(gVblankHandler1)($v0) -/* 002E3C 8000223C 00003025 */ move $a2, $zero -/* 002E40 80002240 10400004 */ beqz $v0, .L80002254 -/* 002E44 80002244 00000000 */ nop -/* 002E48 80002248 8C440000 */ lw $a0, ($v0) -/* 002E4C 8000224C 0C033630 */ jal osSendMesg -/* 002E50 80002250 8C450004 */ lw $a1, 4($v0) -.L80002254: -/* 002E54 80002254 3C02800E */ lui $v0, %hi(gVblankHandler2) # $v0, 0x800e -/* 002E58 80002258 8C42C4A4 */ lw $v0, %lo(gVblankHandler2)($v0) -/* 002E5C 8000225C 00003025 */ move $a2, $zero -/* 002E60 80002260 50400005 */ beql $v0, $zero, .L80002278 -/* 002E64 80002264 8FBF0014 */ lw $ra, 0x14($sp) -/* 002E68 80002268 8C440000 */ lw $a0, ($v0) -/* 002E6C 8000226C 0C033630 */ jal osSendMesg -/* 002E70 80002270 8C450004 */ lw $a1, 4($v0) -/* 002E74 80002274 8FBF0014 */ lw $ra, 0x14($sp) -.L80002278: -/* 002E78 80002278 27BD0018 */ addiu $sp, $sp, 0x18 -/* 002E7C 8000227C 03E00008 */ jr $ra -/* 002E80 80002280 00000000 */ nop diff --git a/asm/non_matchings/main/func_800022DC.s b/asm/non_matchings/main/func_800022DC.s deleted file mode 100644 index 4d72956e8..000000000 --- a/asm/non_matchings/main/func_800022DC.s +++ /dev/null @@ -1,73 +0,0 @@ -glabel func_800022DC -/* 002EDC 800022DC 3C02800E */ lui $v0, %hi(gActiveSPTask) # $v0, 0x800e -/* 002EE0 800022E0 2442C4A8 */ addiu $v0, %lo(gActiveSPTask) # addiu $v0, $v0, -0x3b58 -/* 002EE4 800022E4 8C470000 */ lw $a3, ($v0) -/* 002EE8 800022E8 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 002EEC 800022EC AFBF0014 */ sw $ra, 0x14($sp) -/* 002EF0 800022F0 AC400000 */ sw $zero, ($v0) -/* 002EF4 800022F4 8CEE0048 */ lw $t6, 0x48($a3) -/* 002EF8 800022F8 24010002 */ li $at, 2 -/* 002EFC 800022FC 00E02025 */ move $a0, $a3 -/* 002F00 80002300 55C10010 */ bnel $t6, $at, .L80002344 -/* 002F04 80002304 8CF90000 */ lw $t9, ($a3) -/* 002F08 80002308 0C033758 */ jal osSpTaskYielded -/* 002F0C 8000230C AFA7001C */ sw $a3, 0x1c($sp) -/* 002F10 80002310 14400005 */ bnez $v0, .L80002328 -/* 002F14 80002314 8FA7001C */ lw $a3, 0x1c($sp) -/* 002F18 80002318 240F0003 */ li $t7, 3 -/* 002F1C 8000231C ACEF0048 */ sw $t7, 0x48($a3) -/* 002F20 80002320 0C000D97 */ jal profiler_log_gfx_time -/* 002F24 80002324 24040001 */ li $a0, 1 -.L80002328: -/* 002F28 80002328 0C000DBB */ jal profiler_log_vblank_time -/* 002F2C 8000232C 00000000 */ nop -/* 002F30 80002330 0C00019F */ jal start_sptask -/* 002F34 80002334 24040002 */ li $a0, 2 -/* 002F38 80002338 10000027 */ b .L800023D8 -/* 002F3C 8000233C 8FBF0014 */ lw $ra, 0x14($sp) -/* 002F40 80002340 8CF90000 */ lw $t9, ($a3) -.L80002344: -/* 002F44 80002344 24180003 */ li $t8, 3 -/* 002F48 80002348 24010002 */ li $at, 2 -/* 002F4C 8000234C 1721001F */ bne $t9, $at, .L800023CC -/* 002F50 80002350 ACF80048 */ sw $t8, 0x48($a3) -/* 002F54 80002354 0C000DBB */ jal profiler_log_vblank_time -/* 002F58 80002358 AFA7001C */ sw $a3, 0x1c($sp) -/* 002F5C 8000235C 3C02800E */ lui $v0, %hi(sCurrentDisplaySPTask) # $v0, 0x800e -/* 002F60 80002360 8C42C4B0 */ lw $v0, %lo(sCurrentDisplaySPTask)($v0) -/* 002F64 80002364 8FA7001C */ lw $a3, 0x1c($sp) -/* 002F68 80002368 1040000E */ beqz $v0, .L800023A4 -/* 002F6C 8000236C 00000000 */ nop -/* 002F70 80002370 8C430048 */ lw $v1, 0x48($v0) -/* 002F74 80002374 24010003 */ li $at, 3 -/* 002F78 80002378 1061000A */ beq $v1, $at, .L800023A4 -/* 002F7C 8000237C 24010002 */ li $at, 2 -/* 002F80 80002380 10610004 */ beq $v1, $at, .L80002394 -/* 002F84 80002384 00002025 */ move $a0, $zero -/* 002F88 80002388 0C000D97 */ jal profiler_log_gfx_time -/* 002F8C 8000238C AFA7001C */ sw $a3, 0x1c($sp) -/* 002F90 80002390 8FA7001C */ lw $a3, 0x1c($sp) -.L80002394: -/* 002F94 80002394 24040001 */ li $a0, 1 -/* 002F98 80002398 0C00019F */ jal start_sptask -/* 002F9C 8000239C AFA7001C */ sw $a3, 0x1c($sp) -/* 002FA0 800023A0 8FA7001C */ lw $a3, 0x1c($sp) -.L800023A4: -/* 002FA4 800023A4 3C01800E */ lui $at, %hi(sCurrentAudioSPTask) # $at, 0x800e -/* 002FA8 800023A8 AC20C4AC */ sw $zero, %lo(sCurrentAudioSPTask)($at) -/* 002FAC 800023AC 8CE40040 */ lw $a0, 0x40($a3) -/* 002FB0 800023B0 00003025 */ move $a2, $zero -/* 002FB4 800023B4 50800008 */ beql $a0, $zero, .L800023D8 -/* 002FB8 800023B8 8FBF0014 */ lw $ra, 0x14($sp) -/* 002FBC 800023BC 0C033630 */ jal osSendMesg -/* 002FC0 800023C0 8CE50044 */ lw $a1, 0x44($a3) -/* 002FC4 800023C4 10000004 */ b .L800023D8 -/* 002FC8 800023C8 8FBF0014 */ lw $ra, 0x14($sp) -.L800023CC: -/* 002FCC 800023CC 0C000D97 */ jal profiler_log_gfx_time -/* 002FD0 800023D0 24040001 */ li $a0, 1 -/* 002FD4 800023D4 8FBF0014 */ lw $ra, 0x14($sp) -.L800023D8: -/* 002FD8 800023D8 27BD0020 */ addiu $sp, $sp, 0x20 -/* 002FDC 800023DC 03E00008 */ jr $ra -/* 002FE0 800023E0 00000000 */ nop diff --git a/asm/non_matchings/main/func_80002684.s b/asm/non_matchings/main/func_80002684.s deleted file mode 100644 index 25842aa18..000000000 --- a/asm/non_matchings/main/func_80002684.s +++ /dev/null @@ -1,73 +0,0 @@ -glabel func_80002684 -/* 003284 80002684 3C0E800E */ lui $t6, %hi(D_800DC50C) # $t6, 0x800e -/* 003288 80002688 8DCEC50C */ lw $t6, %lo(D_800DC50C)($t6) -/* 00328C 8000268C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 003290 80002690 AFBF0014 */ sw $ra, 0x14($sp) -/* 003294 80002694 2DC1000A */ sltiu $at, $t6, 0xa -/* 003298 80002698 10200034 */ beqz $at, .L8000276C -/* 00329C 8000269C 000E7080 */ sll $t6, $t6, 2 -/* 0032A0 800026A0 3C01800F */ lui $at, %hi(D_800EB648) -/* 0032A4 800026A4 002E0821 */ addu $at, $at, $t6 -/* 0032A8 800026A8 8C2EB648 */ lw $t6, %lo(D_800EB648)($at) -/* 0032AC 800026AC 01C00008 */ jr $t6 -/* 0032B0 800026B0 00000000 */ nop -glabel L800026B4 -/* 0032B4 800026B4 0C000996 */ jal func_80002658 -/* 0032B8 800026B8 00000000 */ nop -/* 0032BC 800026BC 240F00FF */ li $t7, 255 -/* 0032C0 800026C0 3C01800E */ lui $at, %hi(gCurrentlyLoadedCourseId) # $at, 0x800e -/* 0032C4 800026C4 10000029 */ b .L8000276C -/* 0032C8 800026C8 A42FC5A4 */ sh $t7, %lo(gCurrentlyLoadedCourseId)($at) -glabel L800026CC -/* 0032CC 800026CC 0C000975 */ jal func_800025D4 -/* 0032D0 800026D0 00000000 */ nop -/* 0032D4 800026D4 241800FF */ li $t8, 255 -/* 0032D8 800026D8 3C01800E */ lui $at, %hi(gCurrentlyLoadedCourseId) # $at, 0x800e -/* 0032DC 800026DC 10000023 */ b .L8000276C -/* 0032E0 800026E0 A438C5A4 */ sh $t8, %lo(gCurrentlyLoadedCourseId)($at) -glabel L800026E4 -/* 0032E4 800026E4 0C000980 */ jal func_80002600 -/* 0032E8 800026E8 00000000 */ nop -/* 0032EC 800026EC 241900FF */ li $t9, 255 -/* 0032F0 800026F0 3C01800E */ lui $at, %hi(gCurrentlyLoadedCourseId) # $at, 0x800e -/* 0032F4 800026F4 1000001D */ b .L8000276C -/* 0032F8 800026F8 A439C5A4 */ sh $t9, %lo(gCurrentlyLoadedCourseId)($at) -glabel L800026FC -/* 0032FC 800026FC 0C00098B */ jal func_8000262C -/* 003300 80002700 00000000 */ nop -/* 003304 80002704 240800FF */ li $t0, 255 -/* 003308 80002708 3C01800E */ lui $at, %hi(gCurrentlyLoadedCourseId) # $at, 0x800e -/* 00330C 8000270C 10000017 */ b .L8000276C -/* 003310 80002710 A428C5A4 */ sh $t0, %lo(gCurrentlyLoadedCourseId)($at) -glabel L80002714 -/* 003314 80002714 0C000433 */ jal func_800010CC -/* 003318 80002718 00000000 */ nop -/* 00331C 8000271C 0C000A86 */ jal func_80002A18 -/* 003320 80002720 00000000 */ nop -/* 003324 80002724 10000012 */ b .L80002770 -/* 003328 80002728 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8000272C -/* 00332C 8000272C 240900FF */ li $t1, 255 -/* 003330 80002730 3C01800E */ lui $at, %hi(gCurrentlyLoadedCourseId) # $at, 0x800e -/* 003334 80002734 0C000417 */ jal func_8000105C -/* 003338 80002738 A429C5A4 */ sh $t1, %lo(gCurrentlyLoadedCourseId)($at) -/* 00333C 8000273C 0C0A065A */ jal load_ending_sequence_royalraceway -/* 003340 80002740 00000000 */ nop -/* 003344 80002744 1000000A */ b .L80002770 -/* 003348 80002748 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8000274C -/* 00334C 8000274C 240A00FF */ li $t2, 255 -/* 003350 80002750 3C01800E */ lui $at, %hi(gCurrentlyLoadedCourseId) # $at, 0x800e -/* 003354 80002754 0C000433 */ jal func_800010CC -/* 003358 80002758 A42AC5A4 */ sh $t2, %lo(gCurrentlyLoadedCourseId)($at) -/* 00335C 8000275C 0C000417 */ jal func_8000105C -/* 003360 80002760 00000000 */ nop -/* 003364 80002764 0C0A0108 */ jal func_80280420 -/* 003368 80002768 00000000 */ nop -.L8000276C: -glabel L8000276C -/* 00336C 8000276C 8FBF0014 */ lw $ra, 0x14($sp) -.L80002770: -/* 003370 80002770 27BD0018 */ addiu $sp, $sp, 0x18 -/* 003374 80002774 03E00008 */ jr $ra -/* 003378 80002778 00000000 */ nop diff --git a/asm/non_matchings/main/thread3_video.s b/asm/non_matchings/main/thread3_video.s deleted file mode 100644 index 6e3c34373..000000000 --- a/asm/non_matchings/main/thread3_video.s +++ /dev/null @@ -1,131 +0,0 @@ -glabel thread3_video -/* 002FE4 800023E4 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* 002FE8 800023E8 3C038015 */ lui $v1, %hi(gPhysicalFramebuffers) # $v1, 0x8015 -/* 002FEC 800023EC 246302A8 */ addiu $v1, %lo(gPhysicalFramebuffers) # addiu $v1, $v1, 0x2a8 -/* 002FF0 800023F0 3C0E8032 */ lui $t6, %hi(gFramebuffer0) # $t6, 0x8032 -/* 002FF4 800023F4 3C0F8034 */ lui $t7, %hi(gFramebuffer1) # $t7, 0x8034 -/* 002FF8 800023F8 3C188037 */ lui $t8, %hi(gFramebuffer2) # $t8, 0x8037 -/* 002FFC 800023FC 25CEF780 */ addiu $t6, %lo(gFramebuffer0) # addiu $t6, $t6, -0x880 -/* 003000 80002400 25EF4F80 */ addiu $t7, %lo(gFramebuffer1) # addiu $t7, $t7, 0x4f80 -/* 003004 80002404 2718A780 */ addiu $t8, %lo(gFramebuffer2) # addiu $t8, $t8, -0x5880 -/* 003008 80002408 AC6E0000 */ sw $t6, ($v1) -/* 00300C 8000240C AC6F0004 */ sw $t7, 4($v1) -/* 003010 80002410 AC780008 */ sw $t8, 8($v1) -/* 003014 80002414 3C038037 */ lui $v1, %hi(gFramebuffer2) # $v1, 0x8037 -/* 003018 80002418 3C028034 */ lui $v0, %hi(gFramebuffer1) # $v0, 0x8034 -/* 00301C 8000241C AFBF0034 */ sw $ra, 0x34($sp) -/* 003020 80002420 AFB50030 */ sw $s5, 0x30($sp) -/* 003024 80002424 AFB4002C */ sw $s4, 0x2c($sp) -/* 003028 80002428 AFB30028 */ sw $s3, 0x28($sp) -/* 00302C 8000242C AFB20024 */ sw $s2, 0x24($sp) -/* 003030 80002430 AFB10020 */ sw $s1, 0x20($sp) -/* 003034 80002434 AFB0001C */ sw $s0, 0x1c($sp) -/* 003038 80002438 AFA40060 */ sw $a0, 0x60($sp) -/* 00303C 8000243C 24424F80 */ addiu $v0, %lo(gFramebuffer1) # addiu $v0, $v0, 0x4f80 -/* 003040 80002440 2463A780 */ addiu $v1, %lo(gFramebuffer2) # addiu $v1, $v1, -0x5880 -.L80002444: -/* 003044 80002444 240A0000 */ li $t2, 0 -/* 003048 80002448 240B0000 */ li $t3, 0 -/* 00304C 8000244C 240C0000 */ li $t4, 0 -/* 003050 80002450 240D0000 */ li $t5, 0 -/* 003054 80002454 240E0000 */ li $t6, 0 -/* 003058 80002458 240F0000 */ li $t7, 0 -/* 00305C 8000245C 24420020 */ addiu $v0, $v0, 0x20 -/* 003060 80002460 24080000 */ li $t0, 0 -/* 003064 80002464 24090000 */ li $t1, 0 -/* 003068 80002468 AC4FFFFC */ sw $t7, -4($v0) -/* 00306C 8000246C AC4EFFF8 */ sw $t6, -8($v0) -/* 003070 80002470 AC4DFFF4 */ sw $t5, -0xc($v0) -/* 003074 80002474 AC4CFFF0 */ sw $t4, -0x10($v0) -/* 003078 80002478 AC4BFFEC */ sw $t3, -0x14($v0) -/* 00307C 8000247C AC4AFFE8 */ sw $t2, -0x18($v0) -/* 003080 80002480 AC49FFE4 */ sw $t1, -0x1c($v0) -/* 003084 80002484 1443FFEF */ bne $v0, $v1, .L80002444 -/* 003088 80002488 AC48FFE0 */ sw $t0, -0x20($v0) -/* 00308C 8000248C 0C000178 */ jal setup_mesg_queues -/* 003090 80002490 00000000 */ nop -/* 003094 80002494 0C000499 */ jal init_game -/* 003098 80002498 00000000 */ nop -/* 00309C 8000249C 3C108016 */ lui $s0, %hi(D_8015AB80) # $s0, 0x8016 -/* 0030A0 800024A0 3C198016 */ lui $t9, %hi(D_8015CD30) # $t9, 0x8016 -/* 0030A4 800024A4 2610AB80 */ addiu $s0, %lo(D_8015AB80) # addiu $s0, $s0, -0x5480 -/* 0030A8 800024A8 2739CD30 */ addiu $t9, %lo(D_8015CD30) # addiu $t9, $t9, -0x32d0 -/* 0030AC 800024AC 3C068000 */ lui $a2, %hi(thread4_audio) # $a2, 0x8000 -/* 0030B0 800024B0 24180014 */ li $t8, 20 -/* 0030B4 800024B4 AFB80014 */ sw $t8, 0x14($sp) -/* 0030B8 800024B8 24C628E4 */ addiu $a2, %lo(thread4_audio) # addiu $a2, $a2, 0x28e4 -/* 0030BC 800024BC AFB90010 */ sw $t9, 0x10($sp) -/* 0030C0 800024C0 02002025 */ move $a0, $s0 -/* 0030C4 800024C4 24050004 */ li $a1, 4 -/* 0030C8 800024C8 0C000114 */ jal create_thread -/* 0030CC 800024CC 00003825 */ move $a3, $zero -/* 0030D0 800024D0 0C0330D8 */ jal osStartThread -/* 0030D4 800024D4 02002025 */ move $a0, $s0 -/* 0030D8 800024D8 3C108016 */ lui $s0, %hi(D_801589D0) # $s0, 0x8016 -/* 0030DC 800024DC 3C088016 */ lui $t0, %hi(D_8015AB80) # $t0, 0x8016 -/* 0030E0 800024E0 261089D0 */ addiu $s0, %lo(D_801589D0) # addiu $s0, $s0, -0x7630 -/* 0030E4 800024E4 2508AB80 */ addiu $t0, %lo(D_8015AB80) # addiu $t0, $t0, -0x5480 -/* 0030E8 800024E8 3C068000 */ lui $a2, %hi(thread5_game_logic) # $a2, 0x8000 -/* 0030EC 800024EC 2409000A */ li $t1, 10 -/* 0030F0 800024F0 AFA90014 */ sw $t1, 0x14($sp) -/* 0030F4 800024F4 24C6277C */ addiu $a2, %lo(thread5_game_logic) # addiu $a2, $a2, 0x277c -/* 0030F8 800024F8 AFA80010 */ sw $t0, 0x10($sp) -/* 0030FC 800024FC 02002025 */ move $a0, $s0 -/* 003100 80002500 24050005 */ li $a1, 5 -/* 003104 80002504 0C000114 */ jal create_thread -/* 003108 80002508 00003825 */ move $a3, $zero -/* 00310C 8000250C 0C0330D8 */ jal osStartThread -/* 003110 80002510 02002025 */ move $a0, $s0 -/* 003114 80002514 3C108015 */ lui $s0, %hi(gIntrMesgQueue) # $s0, 0x8015 -/* 003118 80002518 2610EFB8 */ addiu $s0, %lo(gIntrMesgQueue) # addiu $s0, $s0, -0x1048 -/* 00311C 8000251C 24150067 */ li $s5, 103 -/* 003120 80002520 24140066 */ li $s4, 102 -/* 003124 80002524 24130065 */ li $s3, 101 -/* 003128 80002528 24120064 */ li $s2, 100 -/* 00312C 8000252C 27B10054 */ addiu $s1, $sp, 0x54 -/* 003130 80002530 02002025 */ move $a0, $s0 -.L80002534: -/* 003134 80002534 02202825 */ move $a1, $s1 -/* 003138 80002538 0C0335D4 */ jal osRecvMesg -/* 00313C 8000253C 24060001 */ li $a2, 1 -/* 003140 80002540 8FA20054 */ lw $v0, 0x54($sp) -/* 003144 80002544 1052000D */ beq $v0, $s2, .L8000257C -/* 003148 80002548 00000000 */ nop -/* 00314C 8000254C 1053000F */ beq $v0, $s3, .L8000258C -/* 003150 80002550 00000000 */ nop -/* 003154 80002554 10540005 */ beq $v0, $s4, .L8000256C -/* 003158 80002558 00000000 */ nop -/* 00315C 8000255C 1055000F */ beq $v0, $s5, .L8000259C -/* 003160 80002560 00000000 */ nop -/* 003164 80002564 1000FFF3 */ b .L80002534 -/* 003168 80002568 02002025 */ move $a0, $s0 -.L8000256C: -/* 00316C 8000256C 0C00085A */ jal func_80002168 -/* 003170 80002570 00000000 */ nop -/* 003174 80002574 1000FFEF */ b .L80002534 -/* 003178 80002578 02002025 */ move $a0, $s0 -.L8000257C: -/* 00317C 8000257C 0C0008B7 */ jal func_800022DC -/* 003180 80002580 00000000 */ nop -/* 003184 80002584 1000FFEB */ b .L80002534 -/* 003188 80002588 02002025 */ move $a0, $s0 -.L8000258C: -/* 00318C 8000258C 0C0008A1 */ jal func_80002284 -/* 003190 80002590 00000000 */ nop -/* 003194 80002594 1000FFE7 */ b .L80002534 -/* 003198 80002598 02002025 */ move $a0, $s0 -.L8000259C: -/* 00319C 8000259C 0C000846 */ jal start_gfx_sptask -/* 0031A0 800025A0 00000000 */ nop -/* 0031A4 800025A4 1000FFE3 */ b .L80002534 -/* 0031A8 800025A8 02002025 */ move $a0, $s0 -/* 0031AC 800025AC 00000000 */ nop -/* 0031B0 800025B0 8FBF0034 */ lw $ra, 0x34($sp) -/* 0031B4 800025B4 8FB0001C */ lw $s0, 0x1c($sp) -/* 0031B8 800025B8 8FB10020 */ lw $s1, 0x20($sp) -/* 0031BC 800025BC 8FB20024 */ lw $s2, 0x24($sp) -/* 0031C0 800025C0 8FB30028 */ lw $s3, 0x28($sp) -/* 0031C4 800025C4 8FB4002C */ lw $s4, 0x2c($sp) -/* 0031C8 800025C8 8FB50030 */ lw $s5, 0x30($sp) -/* 0031CC 800025CC 03E00008 */ jr $ra -/* 0031D0 800025D0 27BD0060 */ addiu $sp, $sp, 0x60 diff --git a/asm/non_matchings/main/thread5_game_logic.s b/asm/non_matchings/main/thread5_game_logic.s deleted file mode 100644 index ab4c2355c..000000000 --- a/asm/non_matchings/main/thread5_game_logic.s +++ /dev/null @@ -1,94 +0,0 @@ -glabel thread5_game_logic -/* 00337C 8000277C 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 003380 80002780 AFA40020 */ sw $a0, 0x20($sp) -/* 003384 80002784 AFBF001C */ sw $ra, 0x1c($sp) -/* 003388 80002788 3C048015 */ lui $a0, %hi(D_8014EF88) # $a0, 0x8015 -/* 00338C 8000278C 3C058015 */ lui $a1, %hi(D_8014F00C) # $a1, 0x8015 -/* 003390 80002790 AFB10018 */ sw $s1, 0x18($sp) -/* 003394 80002794 AFB00014 */ sw $s0, 0x14($sp) -/* 003398 80002798 24A5F00C */ addiu $a1, %lo(D_8014F00C) # addiu $a1, $a1, -0xff4 -/* 00339C 8000279C 2484EF88 */ addiu $a0, %lo(D_8014EF88) # addiu $a0, $a0, -0x1078 -/* 0033A0 800027A0 0C033358 */ jal osCreateMesgQueue -/* 0033A4 800027A4 24060001 */ li $a2, 1 -/* 0033A8 800027A8 3C108015 */ lui $s0, %hi(D_8014EF70) # $s0, 0x8015 -/* 0033AC 800027AC 2610EF70 */ addiu $s0, %lo(D_8014EF70) # addiu $s0, $s0, -0x1090 -/* 0033B0 800027B0 3C058015 */ lui $a1, %hi(D_8014F008) # $a1, 0x8015 -/* 0033B4 800027B4 24A5F008 */ addiu $a1, %lo(D_8014F008) # addiu $a1, $a1, -0xff8 -/* 0033B8 800027B8 02002025 */ move $a0, $s0 -/* 0033BC 800027BC 0C033358 */ jal osCreateMesgQueue -/* 0033C0 800027C0 24060001 */ li $a2, 1 -/* 0033C4 800027C4 0C000229 */ jal init_controllers -/* 0033C8 800027C8 00000000 */ nop -/* 0033CC 800027CC 3C0E8015 */ lui $t6, %hi(D_8015011C) # $t6, 0x8015 -/* 0033D0 800027D0 95CE011C */ lhu $t6, %lo(D_8015011C)($t6) -/* 0033D4 800027D4 15C00003 */ bnez $t6, .L800027E4 -/* 0033D8 800027D8 00000000 */ nop -/* 0033DC 800027DC 0C000C04 */ jal func_80003010 -/* 0033E0 800027E0 00000000 */ nop -.L800027E4: -/* 0033E4 800027E4 3C058015 */ lui $a1, %hi(D_8014EF48) # $a1, 0x8015 -/* 0033E8 800027E8 24A5EF48 */ addiu $a1, %lo(D_8014EF48) # addiu $a1, $a1, -0x10b8 -/* 0033EC 800027EC 24040002 */ li $a0, 2 -/* 0033F0 800027F0 02003025 */ move $a2, $s0 -/* 0033F4 800027F4 0C000836 */ jal func_800020D8 -/* 0033F8 800027F8 24070001 */ li $a3, 1 -/* 0033FC 800027FC 3C02800E */ lui $v0, %hi(D_800DC600) # $v0, 0x800e -/* 003400 80002800 8C42C600 */ lw $v0, %lo(D_800DC600)($v0) -/* 003404 80002804 3C018016 */ lui $at, %hi(D_8015F8B8) # $at, 0x8016 -/* 003408 80002808 AC22F8B8 */ sw $v0, %lo(D_8015F8B8)($at) -/* 00340C 8000280C 3C018016 */ lui $at, %hi(D_8015F8BC) # $at, 0x8016 -/* 003410 80002810 244F0002 */ addiu $t7, $v0, 2 -/* 003414 80002814 AC2FF8BC */ sw $t7, %lo(D_8015F8BC)($at) -/* 003418 80002818 3C018016 */ lui $at, %hi(D_8015F8C0) # $at, 0x8016 -/* 00341C 8000281C 2458000B */ addiu $t8, $v0, 0xb -/* 003420 80002820 AC38F8C0 */ sw $t8, %lo(D_8015F8C0)($at) -/* 003424 80002824 3C018016 */ lui $at, %hi(D_8015F8C4) # $at, 0x8016 -/* 003428 80002828 24590017 */ addiu $t9, $v0, 0x17 -/* 00342C 8000282C AC39F8C4 */ sw $t9, %lo(D_8015F8C4)($at) -/* 003430 80002830 3C018016 */ lui $at, %hi(D_8015F8C8) # $at, 0x8016 -/* 003434 80002834 24480019 */ addiu $t0, $v0, 0x19 -/* 003438 80002838 AC28F8C8 */ sw $t0, %lo(D_8015F8C8)($at) -/* 00343C 8000283C 3C018016 */ lui $at, %hi(D_8015F8CC) # $at, 0x8016 -/* 003440 80002840 2449001C */ addiu $t1, $v0, 0x1c -/* 003444 80002844 0C000380 */ jal rendering_init -/* 003448 80002848 AC29F8CC */ sw $t1, %lo(D_8015F8CC)($at) -/* 00344C 8000284C 0C00028A */ jal read_controllers -/* 003450 80002850 00000000 */ nop -/* 003454 80002854 0C03172E */ jal func_800C5CB8 -/* 003458 80002858 00000000 */ nop -/* 00345C 8000285C 3C11800E */ lui $s1, %hi(D_800DC524) # $s1, 0x800e -/* 003460 80002860 3C10800E */ lui $s0, %hi(D_800DC50C) # $s0, 0x800e -/* 003464 80002864 2610C50C */ addiu $s0, %lo(D_800DC50C) # addiu $s0, $s0, -0x3af4 -/* 003468 80002868 2631C524 */ addiu $s1, %lo(D_800DC524) # addiu $s1, $s1, -0x3adc -.L8000286C: -/* 00346C 8000286C 0C032CB1 */ jal func_800CB2C4 -/* 003470 80002870 00000000 */ nop -/* 003474 80002874 8E220000 */ lw $v0, ($s1) -/* 003478 80002878 8E0A0000 */ lw $t2, ($s0) -/* 00347C 8000287C 11420003 */ beq $t2, $v0, .L8000288C -/* 003480 80002880 00000000 */ nop -/* 003484 80002884 0C0009A1 */ jal func_80002684 -/* 003488 80002888 AE020000 */ sw $v0, ($s0) -.L8000288C: -/* 00348C 8000288C 0C000D54 */ jal profiler_log_thread5_time -/* 003490 80002890 00002025 */ move $a0, $zero -/* 003494 80002894 0C0003AD */ jal config_gfx_pool -/* 003498 80002898 00000000 */ nop -/* 00349C 8000289C 0C00028A */ jal read_controllers -/* 0034A0 800028A0 00000000 */ nop -/* 0034A4 800028A4 0C0007B3 */ jal func_80001ECC -/* 0034A8 800028A8 00000000 */ nop -/* 0034AC 800028AC 0C00033A */ jal func_80000CE8 -/* 0034B0 800028B0 00000000 */ nop -/* 0034B4 800028B4 0C0003CD */ jal display_and_vsync -/* 0034B8 800028B8 00000000 */ nop -/* 0034BC 800028BC 1000FFEB */ b .L8000286C -/* 0034C0 800028C0 00000000 */ nop -/* 0034C4 800028C4 00000000 */ nop -/* 0034C8 800028C8 00000000 */ nop -/* 0034CC 800028CC 00000000 */ nop -/* 0034D0 800028D0 8FBF001C */ lw $ra, 0x1c($sp) -/* 0034D4 800028D4 8FB00014 */ lw $s0, 0x14($sp) -/* 0034D8 800028D8 8FB10018 */ lw $s1, 0x18($sp) -/* 0034DC 800028DC 03E00008 */ jr $ra -/* 0034E0 800028E0 27BD0020 */ addiu $sp, $sp, 0x20 diff --git a/data/data_0DD0A0_1.s b/data/data_0DD0A0_1.s index 657df1c1a..0ce73d009 100644 --- a/data/data_0DD0A0_1.s +++ b/data/data_0DD0A0_1.s @@ -309,16 +309,16 @@ glabel D_800DDB24 glabel D_800DDB30 .float 0.4, 0.6, 0.275, 0.3 -glabel D_800DDB40 +glabel D_800DDB40 # p1 camera struct pointer .word D_801646F0 -glabel D_800DDB44 +glabel D_800DDB44 # p2 camera struct pointer .word D_801647A8 -glabel D_800DDB48 +glabel D_800DDB48 # p3 camera struct pointer .word D_80164860 -glabel D_800DDB4C +glabel D_800DDB4C # p4 camera struct pointer .word D_80164918 glabel D_800DDB50 diff --git a/data/rodata_main.s b/data/rodata_main.s index 027ee0b2f..14237da87 100644 --- a/data/rodata_main.s +++ b/data/rodata_main.s @@ -2,49 +2,49 @@ .section .rodata -.balign 4 -glabel D_800EB5D0 -.asciiz "SOUTH " +#.balign 4 +#glabel D_800EB5D0 +#.asciiz "SOUTH " -.balign 4 -glabel D_800EB5D8 -.asciiz "EAST " +#.balign 4 +#glabel D_800EB5D8 +#.asciiz "EAST " -.balign 4 -glabel D_800EB5E0 -.asciiz "NORTH " -.balign 4 +#.balign 4 +#glabel D_800EB5E0 +#.asciiz "NORTH " +#.balign 4 -glabel D_800EB5E8 -.asciiz "WEST " +#glabel D_800EB5E8 +#.asciiz "WEST " -.balign 4 -glabel D_800EB5F0 -.asciiz "SOUTH " +#.balign 4 +#glabel D_800EB5F0 +#.asciiz "SOUTH " -.balign 4 -glabel D_800EB5F8 -.double 0.01666666 +#.balign 4 +#glabel D_800EB5F8 +#.double 0.01666666 -glabel D_800EB600 -.double 0.01666666 +#glabel D_800EB600 +#.double 0.01666666 -glabel D_800EB608 -.double 0.01666666 +#glabel D_800EB608 +#.double 0.01666666 -glabel D_800EB610 -.double 0.01666666 +#glabel D_800EB610 +#.double 0.01666666 -glabel D_800EB618 -.word L80001F0C, L80001F0C, L80001F0C, L80001F0C -.word L80001F38, L80001F48, L80001F60, L80001EFC -.word L80001F60, L80001F58 +#glabel D_800EB618 +#.word L80001F0C, L80001F0C, L80001F0C, L80001F0C +#.word L80001F38, L80001F48, L80001F60, L80001EFC +#.word L80001F60, L80001F58 -glabel D_800EB640 -.double 0.01666666 +#glabel D_800EB640 +#.double 0.01666666 -glabel D_800EB648 -.word L800026B4, L800026CC, L800026E4, L800026FC -.word L80002714, L8000272C, L8000276C, L8000276C -.word L8000276C, L8000274C +#glabel D_800EB648 +#.word L800026B4, L800026CC, L800026E4, L800026FC +#.word L80002714, L8000272C, L8000276C, L8000276C +#.word L8000276C, L8000274C glabel D_800EB670 diff --git a/include/PR/gbi.h b/include/PR/gbi.h index e8b6b63c8..18679e9e3 100644 --- a/include/PR/gbi.h +++ b/include/PR/gbi.h @@ -1718,6 +1718,7 @@ typedef struct { * 64-bit systems, only the 'words' member may be accessed; the rest of the * structs don't have matching layouts for now.) */ + typedef union { Gwords words; #if !defined(F3D_OLD) && IS_BIG_ENDIAN && !IS_64_BIT diff --git a/include/common_structs.h b/include/common_structs.h index 83be35daf..2d8289c9f 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -32,6 +32,8 @@ typedef enum { /* 0x15 */ NUM_COURSES } COURSES; +// This was added as a silly idea: +// In the data to use "A, B, Z, R" instead of hex numbers. typedef enum { A = 0x80, B = 0x40, @@ -66,9 +68,9 @@ typedef struct { f32 angleX; f32 angleY; f32 angleZ; - f32 rotX; - f32 rotY; - f32 rotZ; + s32 rotX; + s32 rotY; // unused? + s16 rotZ; s32 unk3; // zero s32 unk4; // 0x4119999A s32 unk5; // 0xC20C bit flag? @@ -100,8 +102,9 @@ typedef struct { s32 unk24; // zero s32 unk25; // zero s32 unk26; // zero + // need another s16 here? s32 unk27; // 8 - s32 unk28; // zero + s16 unk28; // zero s32 unk29; // 422 } Camera; diff --git a/include/types.h b/include/types.h index dfefe947d..9a43a2ef4 100644 --- a/include/types.h +++ b/include/types.h @@ -52,7 +52,25 @@ struct UnkStruct_800DC5EC { u16 unk2E; u16 unk30; u16 unk32; + u16 unk34; + u16 unk36; + s16 unk38; }; + +struct UnkStruct_800DDB40 { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + u32 unk10; + u32 unk14; + u32 unk18; + u32 unk1C; + u32 unk20; + u16 unk24; + u16 unk26; +}; + // math util structs struct UnkStruct_802B51E8 { f32 unk0; diff --git a/mk64.ld b/mk64.ld index d509144c7..8e7d00277 100644 --- a/mk64.ld +++ b/mk64.ld @@ -252,7 +252,7 @@ SECTIONS BEGIN_NOLOAD(main) { BUILD_DIR/src/main.o(.bss); - BUILD_DIR/asm/bss_main.o(.bss); + BUILD_DIR/asm/bss_800029B0.o(.bss); BUILD_DIR/src/profiler.o(.bss); BUILD_DIR/src/crash_screen.o(.bss); diff --git a/src/code_800029B0.c b/src/code_800029B0.c index b9a501de5..4032f2221 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -27,7 +27,7 @@ extern struct Controller (*D_800DC4BC)[]; extern s32 D_800DC510; extern s16 D_8015F6FE; extern s16 D_800DC5B8; -extern s16 D_80152308; +extern u16 D_80152308; extern s32 D_802BA038; extern s16 D_802BA048; diff --git a/src/main.c b/src/main.c index 77a9895b1..8771ee79a 100644 --- a/src/main.c +++ b/src/main.c @@ -26,6 +26,9 @@ void create_thread(OSThread *thread, OSId id, void (*entry)(void *), void *arg, void create_debug_thread(void); void start_debug_thread(void); +extern void func_80290B14(); +extern void func_80057A50(s32 arg0, s32 arg1, char arg2[8], s16 arg3); + struct SPTask *create_next_audio_frame_task(void); @@ -35,13 +38,8 @@ extern void func_802A7CF0(u32 arg0, u32 arg1); extern s32 D_800DC524; extern s32 D_800DC52C; -extern OSThread gIdleThread; -extern OSThread gVideoThread; -extern u16 D_8015011C; -extern OSMesgQueue D_8015F460; -extern OSMesg D_8015F3E0; -extern s32 D_80156820; + extern f32 D_800DC594; struct VblankHandler *gVblankHandler1 = NULL; @@ -79,6 +77,88 @@ Player *D_800DC500 = &gPlayers[1]; Player *D_800DC504 = &gPlayers[2]; Player *D_800DC508 = &gPlayers[3]; +s32 D_800FD850[3]; +struct GfxPool gGfxPools[2]; +struct GfxPool *gGfxPool; + +s32 gfxPool_padding; // is this necessary? +struct VblankHandler D_8014EF48; +struct VblankHandler sSoundVblankHandler; +OSMesgQueue D_8014EF58, D_8014EF70, D_8014EF88, unused_gMsgQueue, gIntrMesgQueue, D_8014EFD0; +OSMesgQueue sSoundMesgQueue; +OSMesg sSoundMesgBuf; +OSMesg D_8014F004, D_8014F008; +OSMesg D_8014F00C[1]; +UNUSED OSMesg D_8014F010, D_8014F014; +OSMesg D_8014F018[16], D_8014F058[16]; +OSMesg D_8014F098; +OSIoMesg D_8014F0A0; +OSMesgQueue gSIEventMesgQueue; +OSMesg gSIEventMesgBuf[3]; + +OSContStatus gControllerStatuses[4]; + +OSContPad gControllerPads[4]; +u8 gControllerBits; + +u8 D_8014F110[4096]; +u16 D_80150110; +u16 D_80150112; +s32 D_80150114; +s32 D_80150118; +u16 D_8015011C; +u16 D_8015011E; + +s32 D_80150120; +s32 D_80150124; +UNUSED s32 D_80150128; +UNUSED s32 D_8015012C; +s32 D_80150130; +s32 D_80150134; +s32 D_80150138; +s32 D_8015013C; +UNUSED s32 D_80150140; +UNUSED s32 D_80150144; +f32 D_80150148; +f32 D_8015014C; +f32 D_80150150; +UNUSED f32 D_80150154; + +s32 D_80150158[63]; +uintptr_t gSegmentTable[16]; +Gfx *gDisplayListHead; +struct SPTask *gGfxSPTask; +s32 D_801502A0[2]; +uintptr_t gPhysicalFramebuffers[3]; +u32 D_801502B4; +UNUSED u32 D_801502B8; +UNUSED u32 D_801502BC; +s32 D_801502C0[2064]; + +u16 D_80152300[4]; +u16 D_80152308; + +UNUSED OSThread paddingThread; +OSThread gIdleThread; +ALIGNED8 u8 gIdleThreadStack[0x2000]; // Based on sm64 and padding between bss symbols. +OSThread gVideoThread; +ALIGNED8 u8 gVideoThreadStack[0x2000]; +OSThread D_80156820; +ALIGNED8 u8 D_8015680_Stack[0x2000]; +OSThread D_801589D0; +ALIGNED8 u8 D_801589D0_Stack[0x2000]; +OSThread D_8015AB80; +ALIGNED8 u8 D_8015AB80_Stack[0x2000]; +OSThread D_8015CD30; +ALIGNED8 u8 D_8015CD30_Stack[0x1000]; + +u8 gGfxSPTaskYieldBuffer[4352]; +u32 gGfxSPTaskStack[256]; +OSMesg D_8015F3E0[32]; +OSMesgQueue D_8015F460; + +extern s16 sController1Unplugged; + s32 D_800DC50C = 0xffff; u16 D_800DC510 = 0; u16 D_800DC514 = 0; @@ -110,20 +190,6 @@ UNUSED s16 D_800DC590 = 0; float D_800DC594 = 0.0f; float gCourseTimer = 0.0f; -extern u8 gControllerBits; -extern OSContStatus gControllerStatuses; -extern u16 sController1Unplugged; - - -extern uintptr_t gPhysicalFramebuffers[3]; -extern const f64 D_800EB640; -extern struct VblankHandler sSoundVblankHandler; -extern struct SPTask *gGfxSPTask; -extern OSMesgQueue D_8014EF58, D_8014EF70, D_8014EF88, D_8014EFD0, gIntrMesgQueue; -extern OSMesgQueue sSoundMesgQueue; -extern OSMesg sSoundMesgBuf; -extern OSMesg D_8014F004, D_8014F058, D_8014F018; -extern Gfx *gDisplayListHead; extern u64 rspbootTextStart[], rspbootTextEnd[]; extern u64 gspF3DEXTextStart[], gspF3DEXTextEnd[]; @@ -131,10 +197,8 @@ extern u64 gspF3DLXTextStart[], gspF3DLXTextEnd[]; extern u64 gspF3DEXDataStart[]; extern u64 gspF3DLXDataStart[]; -extern u32 gGfxSPTaskStack; extern u64 gGfxSPTaskOutputBuffer[]; extern u32 gGfxSPTaskOutputBufferSize; -extern u8 gGfxSPTaskYieldBuffer[]; extern u32 gPrevLoadedAddress; extern u32 D_8015F734; @@ -143,35 +207,42 @@ extern u8 _data_segment2SegmentRomEnd[]; extern u8 _common_texturesSegmentRomStart[]; extern u8 _common_texturesSegmentRomEnd[]; extern u8 _data_802BA370SegmentRomStart[]; -extern OSMesg D_8014F098; -extern OSIoMesg D_8014F0A0; extern u32 gHeapEndPtr; extern u32 *D_801978D0; -extern OSContPad *gControllerPads[4]; - -extern OSMesgQueue gSIEventMesgQueue; -extern OSMesg gSIEventMesgBuf[3]; - -extern u32 D_801502B4; extern u32 gZBuffer; -extern s32 gFramebuffer0; -extern s32 gFramebuffer1; -extern s32 gFramebuffer2; +extern u16 gFramebuffer0; +extern u16 gFramebuffer1; +extern u16 gFramebuffer2; -extern s32 D_8015AB80; -extern s32 D_801589D0; extern void thread5_game_logic(); extern void thread4_audio(); -extern s32 D_8015CD30; -extern f64 D_800EB610; extern s16 gCurrentlyLoadedCourseId; +extern s16 gCurrentCourseId; -s32 D_800FD850[4]; -extern struct GfxPool gGfxPools[2]; +extern u16 D_80164AF0; +extern u16 D_800DC5FC; +extern u16 D_800DC5C0; + + +extern s32 D_8015F788; +extern s16 D_801625E8; +extern struct UnkStruct_800DC5EC *D_800DC5EC; +//extern struct UnkStruct_800DDB40 *D_800DDB40; + + +extern Camera *D_800DDB40; +extern Camera *D_800DDB44; +extern Camera *D_800DDB48; +extern Camera *D_800DDB4C; + +extern u16 D_800DC5B0; +extern s32 D_800DC5E8; + +extern s32 gEnableResourceMeters; // Declarations (in this file) void thread1_idle(void *arg0); @@ -280,7 +351,6 @@ void init_controllers(void) { sController1Unplugged = FALSE; } -#ifdef MIPS_TO_C void func_80000934(s32 arg0) { struct Controller *controller = &gControllers[arg0]; u16 phi_a0; @@ -289,16 +359,15 @@ void func_80000934(s32 arg0) { return; } - controller->rawStickX = gControllerPads[arg0]->stick_x; - controller->rawStickY = gControllerPads[arg0]->stick_y; + controller->rawStickX = gControllerPads[arg0].stick_x; + controller->rawStickY = gControllerPads[arg0].stick_y; - if ((gControllerPads[arg0]->button & 4) != 0) { - gControllerPads[arg0]->button |= Z_TRIG; - gControllerPads[arg0]->button |= Z_TRIG; + if ((gControllerPads[arg0].button & 4) != 0) { + gControllerPads[arg0].button |= Z_TRIG; } - controller->buttonPressed = ((gControllerPads[arg0]->button ^ controller->button) & gControllerPads[arg0]->button); - controller->buttonDepressed = ((gControllerPads[arg0]->button ^ controller->button) & controller->button); - controller->button = &gControllerPads[arg0]->button; + controller->buttonPressed = gControllerPads[arg0].button & (gControllerPads[arg0].button ^ controller->button); + controller->buttonDepressed = controller->button & (gControllerPads[arg0].button ^ controller->button); + controller->button = gControllerPads[arg0].button; phi_a0 = 0; if (controller->rawStickX < -50) { @@ -317,9 +386,6 @@ void func_80000934(s32 arg0) { controller->stickDepressed = controller->stickDirection & (phi_a0 ^ controller->stickDirection); controller->stickDirection = phi_a0; } -#else -GLOBAL_ASM("asm/non_matchings/main/func_80000934.s") -#endif void read_controllers(void) { OSMesg sp1C; @@ -506,159 +572,103 @@ void func_80001404(void) { clear_framebuffer(0); } -#ifdef MIPS_TO_C -// generated by mips_to_c commit cae1414eb1bf34873a831a523692fe29870a6f3b -void *func_8000142C(void) { - s32 temp_s0; - s32 temp_s0_2; - s32 temp_s0_3; - s32 temp_s0_4; - void *temp_v0; - void *temp_v0_2; - s32 phi_s0; - s32 phi_s0_2; - s32 phi_s0_3; - s32 phi_s0_4; - u16 phi_a0; +void func_8000142C(void) { + s16 i; + s32 pad0; + u16 temp_v0; + f32 pad = 0; - D_80150112 = (u16)0; - D_80164AF0 = (u16)0; + D_80150112 = 0; + D_80164AF0 = 0; if (D_800DC5FC != 0) { func_80290B14(); } if (D_800DC5C0 != 0) { - return func_802A38B4(); + func_802A38B4(); return; } - if ((s32) sNumVBlanks >= 6) { - sNumVBlanks = (u16)5; + + if (sNumVBlanks >= 6) { + sNumVBlanks = 5; } - if ((s32) sNumVBlanks < 0) { - sNumVBlanks = (u16)1; + if (sNumVBlanks < 0) { + sNumVBlanks = 1; } func_802A4EF4(); - if (D_800DC52C != 0) { - if (D_800DC52C != 1) { - if (D_800DC52C != 2) { - if (D_800DC52C != 3) { - } else { - if (3 == *(void *)0x800DC538) { - if (gCurrentCourseId != 2) { - if (gCurrentCourseId != 9) { - if (gCurrentCourseId != 0x10) { - if (gCurrentCourseId != 0x12) { - D_80150114 = 2; - } else { -block_79: - D_80150114 = 3; - } - } else { - goto block_79; - } - } else { - goto block_79; - } - } else { - goto block_79; - } - } else { - if (*(void *)0x800E0000 != 0xF) { - if (*(void *)0x800E0000 != 0x11) { - if (*(void *)0x800E0000 != 0x12) { - if (*(void *)0x800E0000 != 0x13) { - D_80150114 = 3; - } else { -block_85: - D_80150114 = 2; - } - } else { - D_80150114 = 4; - } - } else { - goto block_85; - } - } else { - goto block_85; - } - } - if (D_800DC5FC == 0) { - if (D_80150114 > 0) { - phi_s0 = 0; -loop_90: - if (D_8015011E != 0) { - gCourseTimer = (f32) ((f64) gCourseTimer + D_800EB610); - } - func_802909F0(); - func_802A0D54(); - func_800382DC(); - func_8001EE98(D_800DC4FC, D_800DDB40, 0); - func_80029158(); - func_8001EE98(D_800DC4E0, D_800DDB44, 1); - func_800291E8(); - func_8001EE98(D_800DC4E4, D_800DDB48, 2); - func_800291F0(); - func_8001EE98(D_800DC4E8, D_800DDB4C, 3); - func_800291F8(); - func_8028F474(); - func_80059AC8(); - update_simple_objects(); - func_802966A0(); - func_8028FCBC(); - temp_s0 = (s32) ((phi_s0 + 1) << 0x10) >> 0x10; - phi_s0 = temp_s0; - if (temp_s0 < D_80150114) { - goto loop_90; - } - } - func_80022744(); - } - func_8005A070(); - sNumVBlanks = (u16)0; - profiler_log_thread5_time(1); - func_802A7C08(); - func_802A3E3C(); - if (D_800DC5B0 != 0) { - func_802A41D4(); - } - D_8015F788 = 0; - if (D_800DC5E8 == 0) { - func_802A6BB0(); - func_802A6E94(); - func_802A7178(); - func_802A68CC(); - } else { - if (D_800DC5E8 == 1) { - func_802A68CC(); - func_802A6E94(); - func_802A7178(); - func_802A6BB0(); - } else { - if (D_800DC5E8 == 2) { - func_802A68CC(); - func_802A6BB0(); - func_802A7178(); - func_802A6E94(); - } else { - func_802A68CC(); - func_802A6BB0(); - func_802A6E94(); - func_802A7178(); - } - } + switch(D_800DC52C) { + case 0: + D_80150114 = 2; + func_80005F44(); + if (D_800DC5FC == 0) { + + for (i = 0; i < D_80150114; i++) { + if (D_8015011E) { + gCourseTimer += 0.01666666; } + func_802909F0(); + func_802A0D54(); + func_800382DC(); + func_8001EE98(D_800DC4FC, D_800DDB40, 0); + func_80028F70(); + func_8028F474(); + func_80059AC8(); + update_simple_objects(); + func_802966A0(); + func_8028FCBC(); + } + func_80022744(); + } + func_8005A070(); + sNumVBlanks = 0; + profiler_log_thread5_time(1); + D_8015F788 = 0; + func_802A59A4(); + if (gEnableDebugMode == 0) { + D_800DC514 = 0; } else { - if (*(void *)0x800DC5A0 == 0x12) { - D_80150114 = 3; + if (D_800DC514 != 0) { + + if ((D_800DC4BC->buttonPressed & R_TRIG) && + (D_800DC4BC->button & A_BUTTON) && + (D_800DC4BC->button & B_BUTTON)) { + D_800DC514 = 0; + } + + temp_v0 = D_800DDB40->rotX; + D_801625E8 = D_800DC5EC->unk38; + if (temp_v0 < 0x2000) { + func_80057A50(40, 100, "SOUTH ", D_801625E8); + } else if (temp_v0 < 0x6000) { + func_80057A50(40, 100, "EAST ", D_801625E8); + } else if (temp_v0 < 0xA000) { + func_80057A50(40, 100, "NORTH ", D_801625E8); + } else if (temp_v0 < 0xE000) { + func_80057A50(40, 100, "WEST ", D_801625E8); + } else { + func_80057A50(40, 100, "SOUTH ", D_801625E8); + } + } else { - D_80150114 = 2; + if ((D_800DC4BC->buttonPressed & L_TRIG) && + (D_800DC4BC->button & A_BUTTON) && + (D_800DC4BC->button & B_BUTTON)) { + D_800DC514 = 1; + } } - if (D_800DC5FC == 0) { - if (D_80150114 > 0) { - phi_s0_2 = 0; -loop_47: + } + break; + + case 2: + if (gCurrentCourseId == COURSE_DK_JUNGLE) { + D_80150114 = 3; + } else { + D_80150114 = 2; + } + if (D_800DC5FC == 0) { + for (i = 0; i < D_80150114; i++) { if (D_8015011E != 0) { - gCourseTimer = (f32) ((f64) gCourseTimer + D_800EB600); + gCourseTimer += 0.01666666; } func_802909F0(); func_802A0D54(); @@ -672,17 +682,12 @@ loop_47: update_simple_objects(); func_802966A0(); func_8028FCBC(); - temp_s0_2 = (s32) ((phi_s0_2 + 1) << 0x10) >> 0x10; - phi_s0_2 = temp_s0_2; - if (temp_s0_2 < D_80150114) { - goto loop_47; - } } func_80022744(); } func_8005A070(); profiler_log_thread5_time(1); - sNumVBlanks = (u16)0; + sNumVBlanks = 0; func_802A7C08(); func_802A3E3C(); if (D_800DC5B0 != 0) { @@ -696,38 +701,34 @@ loop_47: func_802A5CB4(); func_802A5FAC(); } - } - } else { - if (*(void *)0x800DC5A0 == 0x12) { + break; + + case 1: + + if (gCurrentCourseId == COURSE_DK_JUNGLE) { D_80150114 = 3; } else { D_80150114 = 2; } + if (D_800DC5FC == 0) { - if (D_80150114 > 0) { - phi_s0_3 = 0; -loop_63: - if (D_8015011E != 0) { - gCourseTimer = (f32) ((f64) gCourseTimer + D_800EB608); + for (i = 0; i < D_80150114; i++) { + if (D_8015011E != 0) { + gCourseTimer += 0.01666666; + } + func_802909F0(); + func_802A0D54(); + func_800382DC(); + func_8001EE98(D_800DC4FC, D_800DDB40, 0); + func_80029060(); + func_8001EE98(D_800DC500, D_800DDB44, 1); + func_80029150(); + func_8028F474(); + func_80059AC8(); + update_simple_objects(); + func_802966A0(); + func_8028FCBC(); } - func_802909F0(); - func_802A0D54(); - func_800382DC(); - func_8001EE98(D_800DC4FC, D_800DDB40, 0); - func_80029060(); - func_8001EE98(D_800DC500, D_800DDB44, 1); - func_80029150(); - func_8028F474(); - func_80059AC8(); - update_simple_objects(); - func_802966A0(); - func_8028FCBC(); - temp_s0_3 = (s32) ((phi_s0_3 + 1) << 0x10) >> 0x10; - phi_s0_3 = temp_s0_3; - if (temp_s0_3 < D_80150114) { - goto loop_63; - } - } func_80022744(); } profiler_log_thread5_time(1); @@ -746,129 +747,119 @@ loop_63: func_802A62A4(); func_802A65B8(); } - } -block_104: - phi_a0 = gEnableDebugMode; - } else { - D_80150114 = 2; - func_80005F44(); - if (D_800DC5FC == 0) { - if (D_80150114 > 0) { - phi_s0_4 = 0; -loop_16: - if (D_8015011E != 0) { - gCourseTimer = (f32) ((f64) gCourseTimer + D_800EB5F8); + + break; + + case 3: + if (gPlayerCountSelection1 == 3) { + switch(gCurrentCourseId) { + case COURSE_BOWSER_CASTLE: + case COURSE_MOO_MOO_FARM: + case COURSE_SKYSCRAPER: + case COURSE_DK_JUNGLE: + D_80150114 = 3; + break; + default: + D_80150114 = 2; + break; } - func_802909F0(); - func_802A0D54(); - func_800382DC(); - func_8001EE98(D_800DC4FC, D_800DDB40, 0); - func_80028F70(); - func_8028F474(); - func_80059AC8(); - update_simple_objects(); - func_802966A0(); - func_8028FCBC(); - temp_s0_4 = (s32) ((phi_s0_4 + 1) << 0x10) >> 0x10; - phi_s0_4 = temp_s0_4; - if (temp_s0_4 < D_80150114) { - goto loop_16; - } - } - func_80022744(); - } - func_8005A070(); - sNumVBlanks = (u16)0; - profiler_log_thread5_time(1); - D_8015F788 = 0; - func_802A59A4(); - if (gEnableDebugMode == 0) { - D_800DC514 = (u16)0; - phi_a0 = gEnableDebugMode; - } else { - if (D_800DC514 != 0) { - if ((D_800DC4BC->unk6 & 0x10) != 0) { - if ((D_800DC4BC->unk4 & 0x8000) != 0) { - if ((D_800DC4BC->unk4 & 0x4000) != 0) { - D_800DC514 = (u16)0U; - } - } - } - D_801625E8 = (s16) D_800DC5EC->unk38; - if ((s32) D_800DDB40->unk26 < 0x2000) { - func_80057A50(0x28, 0x64, &D_800EB5D0, D_801625E8); - } else { - if ((s32) D_800DDB40->unk26 < 0x6000) { - func_80057A50(0x28, 0x64, &D_800EB5D8, D_801625E8); - } else { - if ((s32) D_800DDB40->unk26 < 0xA000) { - func_80057A50(0x28, 0x64, &D_800EB5E0, D_801625E8); - } else { - if ((s32) D_800DDB40->unk26 < 0xE000) { - func_80057A50(0x28, 0x64, &D_800EB5E8, D_801625E8); - } else { - func_80057A50(0x28, 0x64, &D_800EB5F0, D_801625E8); - } - } - } - } - goto block_104; } else { - phi_a0 = gEnableDebugMode; - if (((*(void *)0x800DC4BC)->unk6 & 0x20) != 0) { - phi_a0 = gEnableDebugMode; - if (((*(void *)0x800DC4BC)->unk4 & 0x8000) != 0) { - phi_a0 = gEnableDebugMode; - if (((*(void *)0x800DC4BC)->unk4 & 0x4000) != 0) { - D_800DC514 = (u16)1U; - phi_a0 = gEnableDebugMode; - } - } + switch(gCurrentCourseId) { + case COURSE_BLOCK_FORT: + case COURSE_DOUBLE_DECK: + case COURSE_BIG_DONUT: + D_80150114 = 2; + break; + case COURSE_DK_JUNGLE: + D_80150114 = 4; + break; + default: + D_80150114 = 3; + break; } } + if (D_800DC5FC == 0) { + for (i = 0; i < D_80150114; i++) { + if (D_8015011E != 0) { + gCourseTimer += 0.01666666; + } + func_802909F0(); + func_802A0D54(); + func_800382DC(); + func_8001EE98(D_800DC4FC, D_800DDB40, 0); + func_80029158(); + func_8001EE98(D_800DC4E0, D_800DDB44, 1); + func_800291E8(); + func_8001EE98(D_800DC4E4, D_800DDB48, 2); + func_800291F0(); + func_8001EE98(D_800DC4E8, D_800DDB4C, 3); + func_800291F8(); + func_8028F474(); + func_80059AC8(); + update_simple_objects(); + func_802966A0(); + func_8028FCBC(); + } + func_80022744(); + } + func_8005A070(); + sNumVBlanks = 0; + profiler_log_thread5_time(1); + func_802A7C08(); + func_802A3E3C(); + if (D_800DC5B0 != 0) { + func_802A41D4(); } + D_8015F788 = 0; + if (D_800DC5E8 == 0) { + func_802A6BB0(); + func_802A6E94(); + func_802A7178(); + func_802A68CC(); + } else if (D_800DC5E8 == 1) { + func_802A68CC(); + func_802A6E94(); + func_802A7178(); + func_802A6BB0(); + } else if (D_800DC5E8 == 2) { + func_802A68CC(); + func_802A6BB0(); + func_802A7178(); + func_802A6E94(); + } else { + func_802A68CC(); + func_802A6BB0(); + func_802A6E94(); + func_802A7178(); + } + break; } - if (phi_a0 == 0) { + + if (gEnableDebugMode == 0) { gEnableResourceMeters = 0; } else { if (gEnableResourceMeters != 0) { - resource_display(phi_a0); - if ((D_800DC4BC->unk4 & 0x20) == 0) { - if ((D_800DC4BC->unk4 & 0x10) != 0) { - if ((D_800DC4BC->unk6 & 0x4000) != 0) { - gEnableResourceMeters = 0; - } - } + resource_display(); + if ((!(D_800DC4BC->button & L_TRIG)) && + (D_800DC4BC->button & R_TRIG) && + (D_800DC4BC->buttonPressed & B_BUTTON)) { + gEnableResourceMeters = 0; } } else { - if ((D_800DC4BC->unk4 & 0x20) == 0) { - if ((D_800DC4BC->unk4 & 0x10) != 0) { - if ((D_800DC4BC->unk6 & 0x4000) != 0) { + if ((!(D_800DC4BC->button & L_TRIG)) && + (D_800DC4BC->button & R_TRIG) && + (D_800DC4BC->buttonPressed & B_BUTTON)) { gEnableResourceMeters = 1; - } - } } } } func_802A4300(); func_800591B4(); func_80093E20(); - temp_v0 = gDisplayListHead; - gDisplayListHead = (void *) (temp_v0 + 8); - temp_v0->unk4 = 0; - temp_v0->unk0 = 0xE9000000; - temp_v0_2 = gDisplayListHead; - gDisplayListHead = (void *) (temp_v0_2 + 8); - temp_v0_2->unk4 = 0; - temp_v0_2->unk0 = 0xB8000000; - return temp_v0_2; + gDPFullSync(gDisplayListHead++); + gSPEndDisplayList(gDisplayListHead++); } -#else -GLOBAL_ASM("asm/non_matchings/main/func_8000142C.s") -#endif -#ifdef MIPS_TO_C -// Cannot match until data compilable void func_80001ECC(void) { switch (D_800DC50C) { @@ -892,13 +883,9 @@ void func_80001ECC(void) { break; case 9: func_802802AC(); - // Duplicate return node #7. Try simplifying control flow for better match break; } } -#else -GLOBAL_ASM("asm/non_matchings/main/func_80001ECC.s") -#endif void interrupt_gfx_sptask(void) { if (gActiveSPTask->task.t.type == M_GFXTASK) { @@ -907,61 +894,31 @@ void interrupt_gfx_sptask(void) { } } -// likely receive_new_tasks from SM64 -#ifdef MIPS_TO_C -// generated by mips_to_c commit cae1414eb1bf34873a831a523692fe29870a6f3b -s32 func_80001FAC(void) { - void *sp40; - s32 temp_ret; - s32 temp_ret_2; - s32 temp_v0; - s32 temp_v0_2; - s32 phi_return; +void func_80001FAC(void) { + s32 pad; + struct SPTask *sp40; - temp_ret = osRecvMesg(&D_8014EFD0, &sp40, 0); - phi_return = temp_ret; - if (temp_ret != -1) { -loop_2: - sp40->unk48 = 0; - if (sp40->unk0 != 1) { - if (sp40->unk0 == 2) { + while(osRecvMesg(&D_8014EFD0, &sp40, 0) != -1) { + sp40->state = 0; + switch(sp40->task.t.type) { + case 2: D_800DC4B4 = sp40; - } - } else { - sNextDisplaySPTask = sp40; - } - temp_ret_2 = osRecvMesg(&D_8014EFD0, &sp40, 0); - phi_return = temp_ret_2; - if (temp_ret_2 != -1) { - goto loop_2; + break; + case 1: + sNextDisplaySPTask = sp40; + break; } } - if (sCurrentAudioSPTask == 0) { - temp_v0 = D_800DC4B4; - phi_return = temp_v0; - if (temp_v0 != 0) { - sCurrentAudioSPTask = temp_v0; - D_800DC4B4 = 0; - phi_return = temp_v0; - } - } - if (sCurrentDisplaySPTask == 0) { - temp_v0_2 = sNextDisplaySPTask; - phi_return = temp_v0_2; - if (temp_v0_2 != 0) { - sCurrentDisplaySPTask = temp_v0_2; - sNextDisplaySPTask = 0; - phi_return = temp_v0_2; - } - } - return phi_return; -} -#else -// suppress warning until matching -s32 func_80001FAC(void); -GLOBAL_ASM("asm/non_matchings/main/func_80001FAC.s") -#endif + if (sCurrentAudioSPTask == 0 && D_800DC4B4 != 0) { + sCurrentAudioSPTask = D_800DC4B4; + D_800DC4B4 = 0; + } + if (sCurrentDisplaySPTask == 0 && sNextDisplaySPTask != 0) { + sCurrentDisplaySPTask = sNextDisplaySPTask; + sNextDisplaySPTask = 0; + } +} // likely set_vblank_handler from SM64 void func_800020D8(s32 arg0, struct VblankHandler *arg1, OSMesgQueue *arg2, OSMesg *arg3) { @@ -987,7 +944,7 @@ void start_gfx_sptask(void) { // Similar to handle_vblank from SM64 void func_80002168(void) { - D_800DC594 += D_800EB640; + D_800DC594 += 0.01666666; sNumVBlanks++; func_80001FAC(); @@ -1024,110 +981,83 @@ void func_80002284(void) { sCurrentDisplaySPTask = NULL; } -#ifdef MIPS_TO_C -//generated by mips_to_c commit ffee479fae41a1cdc3e454e9b9d75bbd226a160f void *func_800022DC(void) { - void *sp1C; - s32 temp_a0; - void *temp_a3; - void *phi_a3; - void *phi_return; + struct SPTask *temp_a3 = gActiveSPTask; - temp_a3 = gActiveSPTask; gActiveSPTask = NULL; - if (temp_a3->unk48 == 2) { - sp1C = temp_a3; - if (osSpTaskYielded(temp_a3, temp_a3) == 0) { - temp_a3->unk48 = 3; - profiler_log_gfx_time(1, temp_a3); + if (temp_a3->state == 2) { + + if (osSpTaskYielded(temp_a3) == 0) { + temp_a3->state = 3; + profiler_log_gfx_time(1); } profiler_log_vblank_time(); - return start_sptask(2); - } - temp_a3->unk48 = 3; - if (temp_a3->unk0 == 2) { - sp1C = temp_a3; - profiler_log_vblank_time(temp_a3, temp_a3); - phi_a3 = temp_a3; - phi_return = sCurrentDisplaySPTask; - if (sCurrentDisplaySPTask != 0) { - phi_a3 = temp_a3; - phi_return = sCurrentDisplaySPTask; - if (sCurrentDisplaySPTask->unk48 != 3) { - if (sCurrentDisplaySPTask->unk48 != 2) { - sp1C = temp_a3; - profiler_log_gfx_time(0, temp_a3); - } - sp1C = temp_a3; - phi_a3 = temp_a3; - phi_return = start_sptask(1, temp_a3); - } - } - sCurrentAudioSPTask = 0; - temp_a0 = phi_a3->unk40; - if (temp_a0 != 0) { - return osSendMesg(temp_a0, phi_a3->unk44, 0, phi_a3); - } + start_sptask(2); } else { - phi_return = profiler_log_gfx_time(1, temp_a3); - } - return phi_return; -} -#else -GLOBAL_ASM("asm/non_matchings/main/func_800022DC.s") -#endif + temp_a3->state = 3; + if (temp_a3->task.t.type == 2) { -#ifdef MIPS_TO_C -// generated by mips_to_c commit cae1414eb1bf34873a831a523692fe29870a6f3b -/* -void thread3_video(void *arg0) { + profiler_log_vblank_time(); + + if (sCurrentDisplaySPTask != 0) { + if (sCurrentDisplaySPTask->state != 3) { + if (sCurrentDisplaySPTask->state != 2) { + profiler_log_gfx_time(0); + } + start_sptask(1); + } + } + sCurrentAudioSPTask = 0; + if (temp_a3->msgqueue != 0) { + osSendMesg(temp_a3->msgqueue, temp_a3->msg, 0); + } + } else { + profiler_log_gfx_time(1); + } + }; +} + +void thread3_video(UNUSED void *arg0) { + s32 pad[2]; + OSMesg msg; u64 *temp_v0; s32 i; + s32 pad2[2]; + gPhysicalFramebuffers[0] = (uintptr_t *) &gFramebuffer0; gPhysicalFramebuffers[1] = (uintptr_t *) &gFramebuffer1; gPhysicalFramebuffers[2] = (uintptr_t *) &gFramebuffer2; - //phi_v0 = &gFramebuffer1; -//loop_1: - // potential unrolled loop? + temp_v0 = &gFramebuffer1; - for (i = 0; i < gFramebuffer2; i++) { + for (i = 0; i < 19200; i++) { temp_v0[i] = 0; } - //if (gFramebuffer1 != &gFramebuffer2) { - // goto loop_1; - //} setup_mesg_queues(); init_game(); - create_thread(&D_8015AB80, 4, &thread4_audio, 0, &D_8015CD30, 0x14); + create_thread(&D_8015AB80, 4, &thread4_audio, 0, &D_8015AB80_Stack[8192], 0x14); osStartThread(&D_8015AB80); - create_thread(&D_801589D0, 5, &thread5_game_logic, 0, &D_8015AB80, 0xA); + create_thread(&D_801589D0, 5, &thread5_game_logic, 0, &D_801589D0_Stack[8192], 0xA); osStartThread(&D_801589D0); - // manual work while (1) { - OSMesg msg; osRecvMesg(&gIntrMesgQueue, &msg, OS_MESG_BLOCK); switch ((u32) msg) { + case MESG_VI_VBLANK: + func_80002168(); + break; case MESG_SP_COMPLETE: func_800022DC(); break; case MESG_DP_COMPLETE: func_80002284(); break; - case MESG_VI_VBLANK: - func_80002168(); - break; case MESG_START_GFX_SPTASK: start_gfx_sptask(); break; } } } -*/ -#else -GLOBAL_ASM("asm/non_matchings/main/thread3_video.s") -#endif void func_800025D4(void) { func_80091B78(); @@ -1153,7 +1083,6 @@ void func_80002658(void) { func_802A4D18(); } -#ifdef MIPS_TO_C void func_80002684(void) { switch (D_800DC50C) { case 0: @@ -1186,18 +1115,10 @@ void func_80002684(void) { func_800010CC(); func_8000105C(); func_80280420(); - // Duplicate return node #9. Try simplifying control flow for better match break; } } -#else -GLOBAL_ASM("asm/non_matchings/main/func_80002684.s") -#endif - -extern OSMesg* D_8014F008; -extern OSMesg* D_8014F00C; -extern s32 D_8014EF48; extern s32 D_800DC600; extern s32 D_8015F8B8, D_8015F8BC, D_8015F8C0, D_8015F8C4, D_8015F8C8, D_8015F8CC; @@ -1218,19 +1139,20 @@ void thread5_game_logic(s32 arg0) { rendering_init(); read_controllers(); func_800C5CB8(); -loop_3: - func_800CB2C4(); - if (D_800DC524 != D_800DC50C) { - D_800DC50C = (s32) D_800DC524; - func_80002684(); + + while(1) { + func_800CB2C4(); + if (D_800DC524 != D_800DC50C) { + D_800DC50C = (s32) D_800DC524; + func_80002684(); + } + profiler_log_thread5_time(0); + config_gfx_pool(); + read_controllers(); + func_80001ECC(); + func_80000CE8(); + display_and_vsync(); } - profiler_log_thread5_time(0); - config_gfx_pool(); - read_controllers(); - func_80001ECC(); - func_80000CE8(); - display_and_vsync(); - goto loop_3; } void thread4_audio(UNUSED s32 arg0) { diff --git a/src/main.h b/src/main.h index c21216ddb..1cd29a46b 100644 --- a/src/main.h +++ b/src/main.h @@ -2,7 +2,8 @@ #define MAIN_H #include "types.h" - +// 20836 +// 655 #define GFX_POOL_SIZE 20836 struct GfxPool { Gfx buffer[GFX_POOL_SIZE]; diff --git a/undefined_syms.txt b/undefined_syms.txt index fb937243d..033c5fdc4 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -635,7 +635,6 @@ d_course_skyscraper_vertex = 0x0F000000; osTvType = 0x80000300; -D_8015C000 = 0x8015C000; osRomBase = 0x80000308; osResetType = 0x8000030C; osAppNmiBuffer = 0x8000031C;