From 34aaf7808eb754087d51ac6c319ed188d643cf50 Mon Sep 17 00:00:00 2001 From: Tyler McGavran Date: Wed, 10 Jan 2024 18:36:52 -0500 Subject: [PATCH] Some matches in code_80091750 (#535) * Some matches in code_80091750 Found a couple functions that had not been split out properly Signed-off-by: Taggerung * More matches Signed-off-by: Taggerung --------- Signed-off-by: Taggerung Co-authored-by: Taggerung --- .../code_80091750/func_8009186C.s | 74 -- .../code_80091750/func_80099184.s | 212 ---- .../code_80091750/func_80099394.s | 112 ++ .../code_80091750/func_8009952C.s | 100 ++ .../code_80091750/func_8009A9FC.s | 101 -- .../code_80091750/func_8009AB7C.s | 129 -- .../code_80091750/func_8009AD78.s | 208 ---- .../code_80091750/func_8009B0A4.s | 312 ----- .../code_80091750/func_8009B538.s | 233 ---- .../code_80091750/func_8009DAA8.s | 61 - .../code_80091750/func_8009DB8C.s | 236 ---- .../code_80091750/func_8009E0F0.s | 59 - ctx_includes.c | 2 - src/code_80005FD0.c | 6 +- src/code_80091750.c | 1063 +++++++---------- src/code_80091750.h | 12 +- src/textures.h | 2 +- tools/doxygen_syms.md | 5 +- 18 files changed, 682 insertions(+), 2245 deletions(-) delete mode 100644 asm/non_matchings/code_80091750/func_8009186C.s create mode 100644 asm/non_matchings/code_80091750/func_80099394.s create mode 100644 asm/non_matchings/code_80091750/func_8009952C.s delete mode 100644 asm/non_matchings/code_80091750/func_8009A9FC.s delete mode 100644 asm/non_matchings/code_80091750/func_8009AB7C.s delete mode 100644 asm/non_matchings/code_80091750/func_8009AD78.s delete mode 100644 asm/non_matchings/code_80091750/func_8009B0A4.s delete mode 100644 asm/non_matchings/code_80091750/func_8009B538.s delete mode 100644 asm/non_matchings/code_80091750/func_8009DAA8.s delete mode 100644 asm/non_matchings/code_80091750/func_8009DB8C.s delete mode 100644 asm/non_matchings/code_80091750/func_8009E0F0.s diff --git a/asm/non_matchings/code_80091750/func_8009186C.s b/asm/non_matchings/code_80091750/func_8009186C.s deleted file mode 100644 index da2357788..000000000 --- a/asm/non_matchings/code_80091750/func_8009186C.s +++ /dev/null @@ -1,74 +0,0 @@ -.section .late_rodata - -glabel D_800F0CC0 -.double 1.414213562373095 - -glabel D_800F0CC8 -.double 0.6931471805599453 - -.section .text - -glabel func_8009186C -/* 09246C 8009186C 44801800 */ mtc1 $zero, $f3 -/* 092470 80091870 44801000 */ mtc1 $zero, $f2 -/* 092474 80091874 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 092478 80091878 AFBF0014 */ sw $ra, 0x14($sp) -/* 09247C 8009187C 4622603E */ c.le.d $f12, $f2 -/* 092480 80091880 46206386 */ mov.d $f14, $f12 -/* 092484 80091884 27A60038 */ addiu $a2, $sp, 0x38 -/* 092488 80091888 3C01800F */ lui $at, %hi(D_800F0CC0) -/* 09248C 8009188C 45000003 */ bc1f .L8009189C -/* 092490 80091890 00000000 */ nop -/* 092494 80091894 1000002D */ b .L8009194C -/* 092498 80091898 46201006 */ mov.d $f0, $f2 -.L8009189C: -/* 09249C 8009189C D4240CC0 */ ldc1 $f4, %lo(D_800F0CC0)($at) -/* 0924A0 800918A0 F7AE0040 */ sdc1 $f14, 0x40($sp) -/* 0924A4 800918A4 0C0246B0 */ jal func_80091AC0 -/* 0924A8 800918A8 46247303 */ div.d $f12, $f14, $f4 -/* 0924AC 800918AC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 0924B0 800918B0 44816800 */ mtc1 $at, $f13 -/* 0924B4 800918B4 44806000 */ mtc1 $zero, $f12 -/* 0924B8 800918B8 0C02469B */ jal func_80091A6C -/* 0924BC 800918BC 8FA60038 */ lw $a2, 0x38($sp) -/* 0924C0 800918C0 D7AE0040 */ ldc1 $f14, 0x40($sp) -/* 0924C4 800918C4 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 0924C8 800918C8 44818800 */ mtc1 $at, $f17 -/* 0924CC 800918CC 46207383 */ div.d $f14, $f14, $f0 -/* 0924D0 800918D0 44808000 */ mtc1 $zero, $f16 -/* 0924D4 800918D4 8FAE0038 */ lw $t6, 0x38($sp) -/* 0924D8 800918D8 24020001 */ li $v0, 1 -/* 0924DC 800918DC 3C01800F */ lui $at, %hi(D_800F0CC8) -/* 0924E0 800918E0 46307181 */ sub.d $f6, $f14, $f16 -/* 0924E4 800918E4 46307200 */ add.d $f8, $f14, $f16 -/* 0924E8 800918E8 46283383 */ div.d $f14, $f6, $f8 -/* 0924EC 800918EC 448E3000 */ mtc1 $t6, $f6 -/* 0924F0 800918F0 00000000 */ nop -/* 0924F4 800918F4 46803221 */ cvt.d.w $f8, $f6 -/* 0924F8 800918F8 462E7302 */ mul.d $f12, $f14, $f14 -/* 0924FC 800918FC 46207086 */ mov.d $f2, $f14 -/* 092500 80091900 24420002 */ addiu $v0, $v0, 2 -.L80091904: -/* 092504 80091904 462C7382 */ mul.d $f14, $f14, $f12 -/* 092508 80091908 44825000 */ mtc1 $v0, $f10 -/* 09250C 8009190C 46201006 */ mov.d $f0, $f2 -/* 092510 80091910 468054A1 */ cvt.d.w $f18, $f10 -/* 092514 80091914 46327103 */ div.d $f4, $f14, $f18 -/* 092518 80091918 46241080 */ add.d $f2, $f2, $f4 -/* 09251C 8009191C 46220032 */ c.eq.d $f0, $f2 -/* 092520 80091920 00000000 */ nop -/* 092524 80091924 4502FFF7 */ bc1fl .L80091904 -/* 092528 80091928 24420002 */ addiu $v0, $v0, 2 -/* 09252C 8009192C D42A0CC8 */ ldc1 $f10, %lo(D_800F0CC8)($at) -/* 092530 80091930 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 092534 80091934 44812800 */ mtc1 $at, $f5 -/* 092538 80091938 462A4482 */ mul.d $f18, $f8, $f10 -/* 09253C 8009193C 44802000 */ mtc1 $zero, $f4 -/* 092540 80091940 00000000 */ nop -/* 092544 80091944 46222182 */ mul.d $f6, $f4, $f2 -/* 092548 80091948 46269000 */ add.d $f0, $f18, $f6 -.L8009194C: -/* 09254C 8009194C 8FBF0014 */ lw $ra, 0x14($sp) -/* 092550 80091950 27BD0040 */ addiu $sp, $sp, 0x40 -/* 092554 80091954 03E00008 */ jr $ra -/* 092558 80091958 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/func_80099184.s b/asm/non_matchings/code_80091750/func_80099184.s index 2f8e68d79..9df413353 100644 --- a/asm/non_matchings/code_80091750/func_80099184.s +++ b/asm/non_matchings/code_80091750/func_80099184.s @@ -144,215 +144,3 @@ glabel func_80099184 /* 099F88 80099388 8FB60030 */ lw $s6, 0x30($sp) /* 099F8C 8009938C 03E00008 */ jr $ra /* 099F90 80099390 27BD0038 */ addiu $sp, $sp, 0x38 - -/* 099F94 80099394 27BDFFC8 */ addiu $sp, $sp, -0x38 -/* 099F98 80099398 AFBF0034 */ sw $ra, 0x34($sp) -/* 099F9C 8009939C AFB60030 */ sw $s6, 0x30($sp) -/* 099FA0 800993A0 AFB5002C */ sw $s5, 0x2c($sp) -/* 099FA4 800993A4 AFB40028 */ sw $s4, 0x28($sp) -/* 099FA8 800993A8 AFB30024 */ sw $s3, 0x24($sp) -/* 099FAC 800993AC AFB20020 */ sw $s2, 0x20($sp) -/* 099FB0 800993B0 AFB1001C */ sw $s1, 0x1c($sp) -/* 099FB4 800993B4 0C026449 */ jal segmented_to_virtual_dupe -/* 099FB8 800993B8 AFB00018 */ sw $s0, 0x18($sp) -/* 099FBC 800993BC 8C4E0004 */ lw $t6, 4($v0) -/* 099FC0 800993C0 3C168019 */ lui $s6, %hi(D_8018D9B0) # $s6, 0x8019 -/* 099FC4 800993C4 00409025 */ move $s2, $v0 -/* 099FC8 800993C8 11C0004E */ beqz $t6, .L80099504 -/* 099FCC 800993CC 26D6D9B0 */ addiu $s6, %lo(D_8018D9B0) # addiu $s6, $s6, -0x2650 -/* 099FD0 800993D0 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019 -/* 099FD4 800993D4 3C138019 */ lui $s3, %hi(gD_8018E118TotalSize) # $s3, 0x8019 -/* 099FD8 800993D8 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019 -/* 099FDC 800993DC 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8 -/* 099FE0 800993E0 2673E110 */ addiu $s3, %lo(gD_8018E118TotalSize) # addiu $s3, $s3, -0x1ef0 -/* 099FE4 800993E4 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8 -/* 099FE8 800993E8 24150005 */ li $s5, 5 -/* 099FEC 800993EC 8E830000 */ lw $v1, ($s4) -.L800993F0: -/* 099FF0 800993F0 00002025 */ move $a0, $zero -/* 099FF4 800993F4 00001025 */ move $v0, $zero -/* 099FF8 800993F8 1860000D */ blez $v1, .L80099430 -/* 099FFC 800993FC 00000000 */ nop -/* 09A000 80099400 8E500004 */ lw $s0, 4($s2) -/* 09A004 80099404 000278C0 */ sll $t7, $v0, 3 -.L80099408: -/* 09A008 80099408 022FC021 */ addu $t8, $s1, $t7 -/* 09A00C 8009940C 8F190000 */ lw $t9, ($t8) -/* 09A010 80099410 24420001 */ addiu $v0, $v0, 1 -/* 09A014 80099414 0043082A */ slt $at, $v0, $v1 -/* 09A018 80099418 17300003 */ bne $t9, $s0, .L80099428 -/* 09A01C 8009941C 00000000 */ nop -/* 09A020 80099420 10000003 */ b .L80099430 -/* 09A024 80099424 24040001 */ li $a0, 1 -.L80099428: -/* 09A028 80099428 5420FFF7 */ bnel $at, $zero, .L80099408 -/* 09A02C 8009942C 000278C0 */ sll $t7, $v0, 3 -.L80099430: -/* 09A030 80099430 54800031 */ bnel $a0, $zero, .L800994F8 -/* 09A034 80099434 8E4C0018 */ lw $t4, 0x18($s2) -/* 09A038 80099438 86480000 */ lh $t0, ($s2) -/* 09A03C 8009943C 8E500004 */ lw $s0, 4($s2) -/* 09A040 80099440 56A80013 */ bnel $s5, $t0, .L80099490 -/* 09A044 80099444 000378C0 */ sll $t7, $v1, 3 -/* 09A048 80099448 9649000A */ lhu $t1, 0xa($s2) -/* 09A04C 8009944C 964A0008 */ lhu $t2, 8($s2) -/* 09A050 80099450 8E6C0000 */ lw $t4, ($s3) -/* 09A054 80099454 8ECE0000 */ lw $t6, ($s6) -/* 09A058 80099458 012A0019 */ multu $t1, $t2 -/* 09A05C 8009945C 000C6840 */ sll $t5, $t4, 1 -/* 09A060 80099460 02002025 */ move $a0, $s0 -/* 09A064 80099464 01AE3021 */ addu $a2, $t5, $t6 -/* 09A068 80099468 00002812 */ mflo $a1 -/* 09A06C 8009946C 04A10003 */ bgez $a1, .L8009947C -/* 09A070 80099470 00055843 */ sra $t3, $a1, 1 -/* 09A074 80099474 24A10001 */ addiu $at, $a1, 1 -/* 09A078 80099478 00015843 */ sra $t3, $at, 1 -.L8009947C: -/* 09A07C 8009947C 0C026400 */ jal dma_copy_base_729a30 -/* 09A080 80099480 01602825 */ move $a1, $t3 -/* 09A084 80099484 8E830000 */ lw $v1, ($s4) -/* 09A088 80099488 8E500004 */ lw $s0, 4($s2) -/* 09A08C 8009948C 000378C0 */ sll $t7, $v1, 3 -.L80099490: -/* 09A090 80099490 022FC021 */ addu $t8, $s1, $t7 -/* 09A094 80099494 AF100000 */ sw $s0, ($t8) -/* 09A098 80099498 8E880000 */ lw $t0, ($s4) -/* 09A09C 8009949C 8E790000 */ lw $t9, ($s3) -/* 09A0A0 800994A0 000848C0 */ sll $t1, $t0, 3 -/* 09A0A4 800994A4 02295021 */ addu $t2, $s1, $t1 -/* 09A0A8 800994A8 AD590004 */ sw $t9, 4($t2) -/* 09A0AC 800994AC 964C0008 */ lhu $t4, 8($s2) -/* 09A0B0 800994B0 964B000A */ lhu $t3, 0xa($s2) -/* 09A0B4 800994B4 8E6E0000 */ lw $t6, ($s3) -/* 09A0B8 800994B8 8E8A0000 */ lw $t2, ($s4) -/* 09A0BC 800994BC 016C0019 */ multu $t3, $t4 -/* 09A0C0 800994C0 254B0001 */ addiu $t3, $t2, 1 -/* 09A0C4 800994C4 AE8B0000 */ sw $t3, ($s4) -/* 09A0C8 800994C8 00006812 */ mflo $t5 -/* 09A0CC 800994CC 01CD7821 */ addu $t7, $t6, $t5 -/* 09A0D0 800994D0 01E0C025 */ move $t8, $t7 -/* 09A0D4 800994D4 AE6F0000 */ sw $t7, ($s3) -/* 09A0D8 800994D8 07010003 */ bgez $t8, .L800994E8 -/* 09A0DC 800994DC 001840C3 */ sra $t0, $t8, 3 -/* 09A0E0 800994E0 27010007 */ addiu $at, $t8, 7 -/* 09A0E4 800994E4 000140C3 */ sra $t0, $at, 3 -.L800994E8: -/* 09A0E8 800994E8 000848C0 */ sll $t1, $t0, 3 -/* 09A0EC 800994EC 25390008 */ addiu $t9, $t1, 8 -/* 09A0F0 800994F0 AE790000 */ sw $t9, ($s3) -/* 09A0F4 800994F4 8E4C0018 */ lw $t4, 0x18($s2) -.L800994F8: -/* 09A0F8 800994F8 26520014 */ addiu $s2, $s2, 0x14 -/* 09A0FC 800994FC 5580FFBC */ bnel $t4, $zero, .L800993F0 -/* 09A100 80099500 8E830000 */ lw $v1, ($s4) -.L80099504: -/* 09A104 80099504 8FBF0034 */ lw $ra, 0x34($sp) -/* 09A108 80099508 8FB00018 */ lw $s0, 0x18($sp) -/* 09A10C 8009950C 8FB1001C */ lw $s1, 0x1c($sp) -/* 09A110 80099510 8FB20020 */ lw $s2, 0x20($sp) -/* 09A114 80099514 8FB30024 */ lw $s3, 0x24($sp) -/* 09A118 80099518 8FB40028 */ lw $s4, 0x28($sp) -/* 09A11C 8009951C 8FB5002C */ lw $s5, 0x2c($sp) -/* 09A120 80099520 8FB60030 */ lw $s6, 0x30($sp) -/* 09A124 80099524 03E00008 */ jr $ra -/* 09A128 80099528 27BD0038 */ addiu $sp, $sp, 0x38 - -/* 09A12C 8009952C 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09A130 80099530 AFBF002C */ sw $ra, 0x2c($sp) -/* 09A134 80099534 AFB50028 */ sw $s5, 0x28($sp) -/* 09A138 80099538 AFB40024 */ sw $s4, 0x24($sp) -/* 09A13C 8009953C AFB30020 */ sw $s3, 0x20($sp) -/* 09A140 80099540 AFB2001C */ sw $s2, 0x1c($sp) -/* 09A144 80099544 AFB10018 */ sw $s1, 0x18($sp) -/* 09A148 80099548 0C026449 */ jal segmented_to_virtual_dupe -/* 09A14C 8009954C AFB00014 */ sw $s0, 0x14($sp) -/* 09A150 80099550 8C4E0004 */ lw $t6, 4($v0) -/* 09A154 80099554 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019 -/* 09A158 80099558 00408825 */ move $s1, $v0 -/* 09A15C 8009955C 11C00046 */ beqz $t6, .L80099678 -/* 09A160 80099560 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650 -/* 09A164 80099564 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019 -/* 09A168 80099568 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019 -/* 09A16C 8009956C 3C128019 */ lui $s2, %hi(gD_8018E118TotalSize) # $s2, 0x8019 -/* 09A170 80099570 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019 -/* 09A174 80099574 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8 -/* 09A178 80099578 2652E110 */ addiu $s2, %lo(gD_8018E118TotalSize) # addiu $s2, $s2, -0x1ef0 -/* 09A17C 8009957C 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8 -/* 09A180 80099580 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c -/* 09A184 80099584 8E630000 */ lw $v1, ($s3) -.L80099588: -/* 09A188 80099588 00002825 */ move $a1, $zero -/* 09A18C 8009958C 00001025 */ move $v0, $zero -/* 09A190 80099590 1860000D */ blez $v1, .L800995C8 -/* 09A194 80099594 00000000 */ nop -/* 09A198 80099598 8E240004 */ lw $a0, 4($s1) -/* 09A19C 8009959C 000278C0 */ sll $t7, $v0, 3 -.L800995A0: -/* 09A1A0 800995A0 020FC021 */ addu $t8, $s0, $t7 -/* 09A1A4 800995A4 8F190000 */ lw $t9, ($t8) -/* 09A1A8 800995A8 24420001 */ addiu $v0, $v0, 1 -/* 09A1AC 800995AC 0043082A */ slt $at, $v0, $v1 -/* 09A1B0 800995B0 17240003 */ bne $t9, $a0, .L800995C0 -/* 09A1B4 800995B4 00000000 */ nop -/* 09A1B8 800995B8 10000003 */ b .L800995C8 -/* 09A1BC 800995BC 24050001 */ li $a1, 1 -.L800995C0: -/* 09A1C0 800995C0 5420FFF7 */ bnel $at, $zero, .L800995A0 -/* 09A1C4 800995C4 000278C0 */ sll $t7, $v0, 3 -.L800995C8: -/* 09A1C8 800995C8 54A00028 */ bnel $a1, $zero, .L8009966C -/* 09A1CC 800995CC 8E2A0018 */ lw $t2, 0x18($s1) -/* 09A1D0 800995D0 8E240004 */ lw $a0, 4($s1) -/* 09A1D4 800995D4 34058000 */ li $a1, 32768 -/* 09A1D8 800995D8 0C026400 */ jal dma_copy_base_729a30 -/* 09A1DC 800995DC 8E860000 */ lw $a2, ($s4) -/* 09A1E0 800995E0 8E480000 */ lw $t0, ($s2) -/* 09A1E4 800995E4 8EAA0000 */ lw $t2, ($s5) -/* 09A1E8 800995E8 8E840000 */ lw $a0, ($s4) -/* 09A1EC 800995EC 00084840 */ sll $t1, $t0, 1 -/* 09A1F0 800995F0 0C010034 */ jal mio0decode -/* 09A1F4 800995F4 012A2821 */ addu $a1, $t1, $t2 -/* 09A1F8 800995F8 8E6C0000 */ lw $t4, ($s3) -/* 09A1FC 800995FC 8E2B0004 */ lw $t3, 4($s1) -/* 09A200 80099600 000C68C0 */ sll $t5, $t4, 3 -/* 09A204 80099604 020D7021 */ addu $t6, $s0, $t5 -/* 09A208 80099608 ADCB0000 */ sw $t3, ($t6) -/* 09A20C 8009960C 8E780000 */ lw $t8, ($s3) -/* 09A210 80099610 8E4F0000 */ lw $t7, ($s2) -/* 09A214 80099614 0018C8C0 */ sll $t9, $t8, 3 -/* 09A218 80099618 02194021 */ addu $t0, $s0, $t9 -/* 09A21C 8009961C AD0F0004 */ sw $t7, 4($t0) -/* 09A220 80099620 962A0008 */ lhu $t2, 8($s1) -/* 09A224 80099624 9629000A */ lhu $t1, 0xa($s1) -/* 09A228 80099628 8E4D0000 */ lw $t5, ($s2) -/* 09A22C 8009962C 8E680000 */ lw $t0, ($s3) -/* 09A230 80099630 012A0019 */ multu $t1, $t2 -/* 09A234 80099634 25090001 */ addiu $t1, $t0, 1 -/* 09A238 80099638 AE690000 */ sw $t1, ($s3) -/* 09A23C 8009963C 00006012 */ mflo $t4 -/* 09A240 80099640 01AC5821 */ addu $t3, $t5, $t4 -/* 09A244 80099644 01607025 */ move $t6, $t3 -/* 09A248 80099648 AE4B0000 */ sw $t3, ($s2) -/* 09A24C 8009964C 05C10003 */ bgez $t6, .L8009965C -/* 09A250 80099650 000EC0C3 */ sra $t8, $t6, 3 -/* 09A254 80099654 25C10007 */ addiu $at, $t6, 7 -/* 09A258 80099658 0001C0C3 */ sra $t8, $at, 3 -.L8009965C: -/* 09A25C 8009965C 0018C8C0 */ sll $t9, $t8, 3 -/* 09A260 80099660 272F0008 */ addiu $t7, $t9, 8 -/* 09A264 80099664 AE4F0000 */ sw $t7, ($s2) -/* 09A268 80099668 8E2A0018 */ lw $t2, 0x18($s1) -.L8009966C: -/* 09A26C 8009966C 26310014 */ addiu $s1, $s1, 0x14 -/* 09A270 80099670 5540FFC5 */ bnel $t2, $zero, .L80099588 -/* 09A274 80099674 8E630000 */ lw $v1, ($s3) -.L80099678: -/* 09A278 80099678 8FBF002C */ lw $ra, 0x2c($sp) -/* 09A27C 8009967C 8FB00014 */ lw $s0, 0x14($sp) -/* 09A280 80099680 8FB10018 */ lw $s1, 0x18($sp) -/* 09A284 80099684 8FB2001C */ lw $s2, 0x1c($sp) -/* 09A288 80099688 8FB30020 */ lw $s3, 0x20($sp) -/* 09A28C 8009968C 8FB40024 */ lw $s4, 0x24($sp) -/* 09A290 80099690 8FB50028 */ lw $s5, 0x28($sp) -/* 09A294 80099694 03E00008 */ jr $ra -/* 09A298 80099698 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80091750/func_80099394.s b/asm/non_matchings/code_80091750/func_80099394.s new file mode 100644 index 000000000..947f8a697 --- /dev/null +++ b/asm/non_matchings/code_80091750/func_80099394.s @@ -0,0 +1,112 @@ +glabel func_80099394 +/* 099F94 80099394 27BDFFC8 */ addiu $sp, $sp, -0x38 +/* 099F98 80099398 AFBF0034 */ sw $ra, 0x34($sp) +/* 099F9C 8009939C AFB60030 */ sw $s6, 0x30($sp) +/* 099FA0 800993A0 AFB5002C */ sw $s5, 0x2c($sp) +/* 099FA4 800993A4 AFB40028 */ sw $s4, 0x28($sp) +/* 099FA8 800993A8 AFB30024 */ sw $s3, 0x24($sp) +/* 099FAC 800993AC AFB20020 */ sw $s2, 0x20($sp) +/* 099FB0 800993B0 AFB1001C */ sw $s1, 0x1c($sp) +/* 099FB4 800993B4 0C026449 */ jal segmented_to_virtual_dupe +/* 099FB8 800993B8 AFB00018 */ sw $s0, 0x18($sp) +/* 099FBC 800993BC 8C4E0004 */ lw $t6, 4($v0) +/* 099FC0 800993C0 3C168019 */ lui $s6, %hi(D_8018D9B0) # $s6, 0x8019 +/* 099FC4 800993C4 00409025 */ move $s2, $v0 +/* 099FC8 800993C8 11C0004E */ beqz $t6, .L80099504 +/* 099FCC 800993CC 26D6D9B0 */ addiu $s6, %lo(D_8018D9B0) # addiu $s6, $s6, -0x2650 +/* 099FD0 800993D0 3C148019 */ lui $s4, %hi(gNumD_8018E118Entries) # $s4, 0x8019 +/* 099FD4 800993D4 3C138019 */ lui $s3, %hi(gD_8018E118TotalSize) # $s3, 0x8019 +/* 099FD8 800993D8 3C118019 */ lui $s1, %hi(D_8018E118) # $s1, 0x8019 +/* 099FDC 800993DC 2631E118 */ addiu $s1, %lo(D_8018E118) # addiu $s1, $s1, -0x1ee8 +/* 099FE0 800993E0 2673E110 */ addiu $s3, %lo(gD_8018E118TotalSize) # addiu $s3, $s3, -0x1ef0 +/* 099FE4 800993E4 2694E758 */ addiu $s4, %lo(gNumD_8018E118Entries) # addiu $s4, $s4, -0x18a8 +/* 099FE8 800993E8 24150005 */ li $s5, 5 +/* 099FEC 800993EC 8E830000 */ lw $v1, ($s4) +.L800993F0: +/* 099FF0 800993F0 00002025 */ move $a0, $zero +/* 099FF4 800993F4 00001025 */ move $v0, $zero +/* 099FF8 800993F8 1860000D */ blez $v1, .L80099430 +/* 099FFC 800993FC 00000000 */ nop +/* 09A000 80099400 8E500004 */ lw $s0, 4($s2) +/* 09A004 80099404 000278C0 */ sll $t7, $v0, 3 +.L80099408: +/* 09A008 80099408 022FC021 */ addu $t8, $s1, $t7 +/* 09A00C 8009940C 8F190000 */ lw $t9, ($t8) +/* 09A010 80099410 24420001 */ addiu $v0, $v0, 1 +/* 09A014 80099414 0043082A */ slt $at, $v0, $v1 +/* 09A018 80099418 17300003 */ bne $t9, $s0, .L80099428 +/* 09A01C 8009941C 00000000 */ nop +/* 09A020 80099420 10000003 */ b .L80099430 +/* 09A024 80099424 24040001 */ li $a0, 1 +.L80099428: +/* 09A028 80099428 5420FFF7 */ bnel $at, $zero, .L80099408 +/* 09A02C 8009942C 000278C0 */ sll $t7, $v0, 3 +.L80099430: +/* 09A030 80099430 54800031 */ bnel $a0, $zero, .L800994F8 +/* 09A034 80099434 8E4C0018 */ lw $t4, 0x18($s2) +/* 09A038 80099438 86480000 */ lh $t0, ($s2) +/* 09A03C 8009943C 8E500004 */ lw $s0, 4($s2) +/* 09A040 80099440 56A80013 */ bnel $s5, $t0, .L80099490 +/* 09A044 80099444 000378C0 */ sll $t7, $v1, 3 +/* 09A048 80099448 9649000A */ lhu $t1, 0xa($s2) +/* 09A04C 8009944C 964A0008 */ lhu $t2, 8($s2) +/* 09A050 80099450 8E6C0000 */ lw $t4, ($s3) +/* 09A054 80099454 8ECE0000 */ lw $t6, ($s6) +/* 09A058 80099458 012A0019 */ multu $t1, $t2 +/* 09A05C 8009945C 000C6840 */ sll $t5, $t4, 1 +/* 09A060 80099460 02002025 */ move $a0, $s0 +/* 09A064 80099464 01AE3021 */ addu $a2, $t5, $t6 +/* 09A068 80099468 00002812 */ mflo $a1 +/* 09A06C 8009946C 04A10003 */ bgez $a1, .L8009947C +/* 09A070 80099470 00055843 */ sra $t3, $a1, 1 +/* 09A074 80099474 24A10001 */ addiu $at, $a1, 1 +/* 09A078 80099478 00015843 */ sra $t3, $at, 1 +.L8009947C: +/* 09A07C 8009947C 0C026400 */ jal dma_copy_base_729a30 +/* 09A080 80099480 01602825 */ move $a1, $t3 +/* 09A084 80099484 8E830000 */ lw $v1, ($s4) +/* 09A088 80099488 8E500004 */ lw $s0, 4($s2) +/* 09A08C 8009948C 000378C0 */ sll $t7, $v1, 3 +.L80099490: +/* 09A090 80099490 022FC021 */ addu $t8, $s1, $t7 +/* 09A094 80099494 AF100000 */ sw $s0, ($t8) +/* 09A098 80099498 8E880000 */ lw $t0, ($s4) +/* 09A09C 8009949C 8E790000 */ lw $t9, ($s3) +/* 09A0A0 800994A0 000848C0 */ sll $t1, $t0, 3 +/* 09A0A4 800994A4 02295021 */ addu $t2, $s1, $t1 +/* 09A0A8 800994A8 AD590004 */ sw $t9, 4($t2) +/* 09A0AC 800994AC 964C0008 */ lhu $t4, 8($s2) +/* 09A0B0 800994B0 964B000A */ lhu $t3, 0xa($s2) +/* 09A0B4 800994B4 8E6E0000 */ lw $t6, ($s3) +/* 09A0B8 800994B8 8E8A0000 */ lw $t2, ($s4) +/* 09A0BC 800994BC 016C0019 */ multu $t3, $t4 +/* 09A0C0 800994C0 254B0001 */ addiu $t3, $t2, 1 +/* 09A0C4 800994C4 AE8B0000 */ sw $t3, ($s4) +/* 09A0C8 800994C8 00006812 */ mflo $t5 +/* 09A0CC 800994CC 01CD7821 */ addu $t7, $t6, $t5 +/* 09A0D0 800994D0 01E0C025 */ move $t8, $t7 +/* 09A0D4 800994D4 AE6F0000 */ sw $t7, ($s3) +/* 09A0D8 800994D8 07010003 */ bgez $t8, .L800994E8 +/* 09A0DC 800994DC 001840C3 */ sra $t0, $t8, 3 +/* 09A0E0 800994E0 27010007 */ addiu $at, $t8, 7 +/* 09A0E4 800994E4 000140C3 */ sra $t0, $at, 3 +.L800994E8: +/* 09A0E8 800994E8 000848C0 */ sll $t1, $t0, 3 +/* 09A0EC 800994EC 25390008 */ addiu $t9, $t1, 8 +/* 09A0F0 800994F0 AE790000 */ sw $t9, ($s3) +/* 09A0F4 800994F4 8E4C0018 */ lw $t4, 0x18($s2) +.L800994F8: +/* 09A0F8 800994F8 26520014 */ addiu $s2, $s2, 0x14 +/* 09A0FC 800994FC 5580FFBC */ bnel $t4, $zero, .L800993F0 +/* 09A100 80099500 8E830000 */ lw $v1, ($s4) +.L80099504: +/* 09A104 80099504 8FBF0034 */ lw $ra, 0x34($sp) +/* 09A108 80099508 8FB00018 */ lw $s0, 0x18($sp) +/* 09A10C 8009950C 8FB1001C */ lw $s1, 0x1c($sp) +/* 09A110 80099510 8FB20020 */ lw $s2, 0x20($sp) +/* 09A114 80099514 8FB30024 */ lw $s3, 0x24($sp) +/* 09A118 80099518 8FB40028 */ lw $s4, 0x28($sp) +/* 09A11C 8009951C 8FB5002C */ lw $s5, 0x2c($sp) +/* 09A120 80099520 8FB60030 */ lw $s6, 0x30($sp) +/* 09A124 80099524 03E00008 */ jr $ra +/* 09A128 80099528 27BD0038 */ addiu $sp, $sp, 0x38 diff --git a/asm/non_matchings/code_80091750/func_8009952C.s b/asm/non_matchings/code_80091750/func_8009952C.s new file mode 100644 index 000000000..de792ba29 --- /dev/null +++ b/asm/non_matchings/code_80091750/func_8009952C.s @@ -0,0 +1,100 @@ +glabel func_8009952C +/* 09A12C 8009952C 27BDFFD0 */ addiu $sp, $sp, -0x30 +/* 09A130 80099530 AFBF002C */ sw $ra, 0x2c($sp) +/* 09A134 80099534 AFB50028 */ sw $s5, 0x28($sp) +/* 09A138 80099538 AFB40024 */ sw $s4, 0x24($sp) +/* 09A13C 8009953C AFB30020 */ sw $s3, 0x20($sp) +/* 09A140 80099540 AFB2001C */ sw $s2, 0x1c($sp) +/* 09A144 80099544 AFB10018 */ sw $s1, 0x18($sp) +/* 09A148 80099548 0C026449 */ jal segmented_to_virtual_dupe +/* 09A14C 8009954C AFB00014 */ sw $s0, 0x14($sp) +/* 09A150 80099550 8C4E0004 */ lw $t6, 4($v0) +/* 09A154 80099554 3C158019 */ lui $s5, %hi(D_8018D9B0) # $s5, 0x8019 +/* 09A158 80099558 00408825 */ move $s1, $v0 +/* 09A15C 8009955C 11C00046 */ beqz $t6, .L80099678 +/* 09A160 80099560 26B5D9B0 */ addiu $s5, %lo(D_8018D9B0) # addiu $s5, $s5, -0x2650 +/* 09A164 80099564 3C148019 */ lui $s4, %hi(D_8018D9B4) # $s4, 0x8019 +/* 09A168 80099568 3C138019 */ lui $s3, %hi(gNumD_8018E118Entries) # $s3, 0x8019 +/* 09A16C 8009956C 3C128019 */ lui $s2, %hi(gD_8018E118TotalSize) # $s2, 0x8019 +/* 09A170 80099570 3C108019 */ lui $s0, %hi(D_8018E118) # $s0, 0x8019 +/* 09A174 80099574 2610E118 */ addiu $s0, %lo(D_8018E118) # addiu $s0, $s0, -0x1ee8 +/* 09A178 80099578 2652E110 */ addiu $s2, %lo(gD_8018E118TotalSize) # addiu $s2, $s2, -0x1ef0 +/* 09A17C 8009957C 2673E758 */ addiu $s3, %lo(gNumD_8018E118Entries) # addiu $s3, $s3, -0x18a8 +/* 09A180 80099580 2694D9B4 */ addiu $s4, %lo(D_8018D9B4) # addiu $s4, $s4, -0x264c +/* 09A184 80099584 8E630000 */ lw $v1, ($s3) +.L80099588: +/* 09A188 80099588 00002825 */ move $a1, $zero +/* 09A18C 8009958C 00001025 */ move $v0, $zero +/* 09A190 80099590 1860000D */ blez $v1, .L800995C8 +/* 09A194 80099594 00000000 */ nop +/* 09A198 80099598 8E240004 */ lw $a0, 4($s1) +/* 09A19C 8009959C 000278C0 */ sll $t7, $v0, 3 +.L800995A0: +/* 09A1A0 800995A0 020FC021 */ addu $t8, $s0, $t7 +/* 09A1A4 800995A4 8F190000 */ lw $t9, ($t8) +/* 09A1A8 800995A8 24420001 */ addiu $v0, $v0, 1 +/* 09A1AC 800995AC 0043082A */ slt $at, $v0, $v1 +/* 09A1B0 800995B0 17240003 */ bne $t9, $a0, .L800995C0 +/* 09A1B4 800995B4 00000000 */ nop +/* 09A1B8 800995B8 10000003 */ b .L800995C8 +/* 09A1BC 800995BC 24050001 */ li $a1, 1 +.L800995C0: +/* 09A1C0 800995C0 5420FFF7 */ bnel $at, $zero, .L800995A0 +/* 09A1C4 800995C4 000278C0 */ sll $t7, $v0, 3 +.L800995C8: +/* 09A1C8 800995C8 54A00028 */ bnel $a1, $zero, .L8009966C +/* 09A1CC 800995CC 8E2A0018 */ lw $t2, 0x18($s1) +/* 09A1D0 800995D0 8E240004 */ lw $a0, 4($s1) +/* 09A1D4 800995D4 34058000 */ li $a1, 32768 +/* 09A1D8 800995D8 0C026400 */ jal dma_copy_base_729a30 +/* 09A1DC 800995DC 8E860000 */ lw $a2, ($s4) +/* 09A1E0 800995E0 8E480000 */ lw $t0, ($s2) +/* 09A1E4 800995E4 8EAA0000 */ lw $t2, ($s5) +/* 09A1E8 800995E8 8E840000 */ lw $a0, ($s4) +/* 09A1EC 800995EC 00084840 */ sll $t1, $t0, 1 +/* 09A1F0 800995F0 0C010034 */ jal mio0decode +/* 09A1F4 800995F4 012A2821 */ addu $a1, $t1, $t2 +/* 09A1F8 800995F8 8E6C0000 */ lw $t4, ($s3) +/* 09A1FC 800995FC 8E2B0004 */ lw $t3, 4($s1) +/* 09A200 80099600 000C68C0 */ sll $t5, $t4, 3 +/* 09A204 80099604 020D7021 */ addu $t6, $s0, $t5 +/* 09A208 80099608 ADCB0000 */ sw $t3, ($t6) +/* 09A20C 8009960C 8E780000 */ lw $t8, ($s3) +/* 09A210 80099610 8E4F0000 */ lw $t7, ($s2) +/* 09A214 80099614 0018C8C0 */ sll $t9, $t8, 3 +/* 09A218 80099618 02194021 */ addu $t0, $s0, $t9 +/* 09A21C 8009961C AD0F0004 */ sw $t7, 4($t0) +/* 09A220 80099620 962A0008 */ lhu $t2, 8($s1) +/* 09A224 80099624 9629000A */ lhu $t1, 0xa($s1) +/* 09A228 80099628 8E4D0000 */ lw $t5, ($s2) +/* 09A22C 8009962C 8E680000 */ lw $t0, ($s3) +/* 09A230 80099630 012A0019 */ multu $t1, $t2 +/* 09A234 80099634 25090001 */ addiu $t1, $t0, 1 +/* 09A238 80099638 AE690000 */ sw $t1, ($s3) +/* 09A23C 8009963C 00006012 */ mflo $t4 +/* 09A240 80099640 01AC5821 */ addu $t3, $t5, $t4 +/* 09A244 80099644 01607025 */ move $t6, $t3 +/* 09A248 80099648 AE4B0000 */ sw $t3, ($s2) +/* 09A24C 8009964C 05C10003 */ bgez $t6, .L8009965C +/* 09A250 80099650 000EC0C3 */ sra $t8, $t6, 3 +/* 09A254 80099654 25C10007 */ addiu $at, $t6, 7 +/* 09A258 80099658 0001C0C3 */ sra $t8, $at, 3 +.L8009965C: +/* 09A25C 8009965C 0018C8C0 */ sll $t9, $t8, 3 +/* 09A260 80099660 272F0008 */ addiu $t7, $t9, 8 +/* 09A264 80099664 AE4F0000 */ sw $t7, ($s2) +/* 09A268 80099668 8E2A0018 */ lw $t2, 0x18($s1) +.L8009966C: +/* 09A26C 8009966C 26310014 */ addiu $s1, $s1, 0x14 +/* 09A270 80099670 5540FFC5 */ bnel $t2, $zero, .L80099588 +/* 09A274 80099674 8E630000 */ lw $v1, ($s3) +.L80099678: +/* 09A278 80099678 8FBF002C */ lw $ra, 0x2c($sp) +/* 09A27C 8009967C 8FB00014 */ lw $s0, 0x14($sp) +/* 09A280 80099680 8FB10018 */ lw $s1, 0x18($sp) +/* 09A284 80099684 8FB2001C */ lw $s2, 0x1c($sp) +/* 09A288 80099688 8FB30020 */ lw $s3, 0x20($sp) +/* 09A28C 8009968C 8FB40024 */ lw $s4, 0x24($sp) +/* 09A290 80099690 8FB50028 */ lw $s5, 0x28($sp) +/* 09A294 80099694 03E00008 */ jr $ra +/* 09A298 80099698 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80091750/func_8009A9FC.s b/asm/non_matchings/code_80091750/func_8009A9FC.s deleted file mode 100644 index be3e80098..000000000 --- a/asm/non_matchings/code_80091750/func_8009A9FC.s +++ /dev/null @@ -1,101 +0,0 @@ -glabel func_8009A9FC -/* 09B5FC 8009A9FC 3C0A8019 */ lui $t2, %hi(D_8018E118) # $t2, 0x8019 -/* 09B600 8009AA00 254AE118 */ addiu $t2, %lo(D_8018E118) # addiu $t2, $t2, -0x1ee8 -/* 09B604 8009AA04 000470C0 */ sll $t6, $a0, 3 -/* 09B608 8009AA08 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09B60C 8009AA0C 014E7821 */ addu $t7, $t2, $t6 -/* 09B610 8009AA10 8DF80004 */ lw $t8, 4($t7) -/* 09B614 8009AA14 3C038019 */ lui $v1, %hi(D_8018D9B0) # $v1, 0x8019 -/* 09B618 8009AA18 000570C0 */ sll $t6, $a1, 3 -/* 09B61C 8009AA1C 8C63D9B0 */ lw $v1, %lo(D_8018D9B0)($v1) -/* 09B620 8009AA20 AFB30014 */ sw $s3, 0x14($sp) -/* 09B624 8009AA24 AFB20010 */ sw $s2, 0x10($sp) -/* 09B628 8009AA28 AFB1000C */ sw $s1, 0xc($sp) -/* 09B62C 8009AA2C AFB00008 */ sw $s0, 8($sp) -/* 09B630 8009AA30 014E7821 */ addu $t7, $t2, $t6 -/* 09B634 8009AA34 0018C840 */ sll $t9, $t8, 1 -/* 09B638 8009AA38 8DF80004 */ lw $t8, 4($t7) -/* 09B63C 8009AA3C 03231021 */ addu $v0, $t9, $v1 -/* 09B640 8009AA40 00E08025 */ move $s0, $a3 -/* 09B644 8009AA44 0018C840 */ sll $t9, $t8, 1 -/* 09B648 8009AA48 00004825 */ move $t1, $zero -/* 09B64C 8009AA4C 10C00045 */ beqz $a2, .L8009AB64 -/* 09B650 8009AA50 03234021 */ addu $t0, $t9, $v1 -/* 09B654 8009AA54 24130007 */ li $s3, 7 -/* 09B658 8009AA58 24120006 */ li $s2, 6 -/* 09B65C 8009AA5C 2411001D */ li $s1, 29 -/* 09B660 8009AA60 240D0096 */ li $t5, 150 -/* 09B664 8009AA64 240C004D */ li $t4, 77 -.L8009AA68: -/* 09B668 8009AA68 94440000 */ lhu $a0, ($v0) -/* 09B66C 8009AA6C 25290001 */ addiu $t1, $t1, 1 -/* 09B670 8009AA70 24420002 */ addiu $v0, $v0, 2 -/* 09B674 8009AA74 3083F800 */ andi $v1, $a0, 0xf800 -/* 09B678 8009AA78 000372C3 */ sra $t6, $v1, 0xb -/* 09B67C 8009AA7C 01CC0019 */ multu $t6, $t4 -/* 09B680 8009AA80 308507C0 */ andi $a1, $a0, 0x7c0 -/* 09B684 8009AA84 00057983 */ sra $t7, $a1, 6 -/* 09B688 8009AA88 01C01825 */ move $v1, $t6 -/* 09B68C 8009AA8C 3087003E */ andi $a3, $a0, 0x3e -/* 09B690 8009AA90 0007C043 */ sra $t8, $a3, 1 -/* 09B694 8009AA94 03003825 */ move $a3, $t8 -/* 09B698 8009AA98 01E02825 */ move $a1, $t7 -/* 09B69C 8009AA9C 308A0001 */ andi $t2, $a0, 1 -/* 09B6A0 8009AAA0 25080002 */ addiu $t0, $t0, 2 -/* 09B6A4 8009AAA4 0000C812 */ mflo $t9 -/* 09B6A8 8009AAA8 00000000 */ nop -/* 09B6AC 8009AAAC 00000000 */ nop -/* 09B6B0 8009AAB0 01ED0019 */ multu $t7, $t5 -/* 09B6B4 8009AAB4 00007012 */ mflo $t6 -/* 09B6B8 8009AAB8 032E7821 */ addu $t7, $t9, $t6 -/* 09B6BC 8009AABC 00000000 */ nop -/* 09B6C0 8009AAC0 03110019 */ multu $t8, $s1 -/* 09B6C4 8009AAC4 0000C012 */ mflo $t8 -/* 09B6C8 8009AAC8 01F85821 */ addu $t3, $t7, $t8 -/* 09B6CC 8009AACC 000BCA03 */ sra $t9, $t3, 8 -/* 09B6D0 8009AAD0 03320019 */ multu $t9, $s2 -/* 09B6D4 8009AAD4 03205825 */ move $t3, $t9 -/* 09B6D8 8009AAD8 00007012 */ mflo $t6 -/* 09B6DC 8009AADC 05C10003 */ bgez $t6, .L8009AAEC -/* 09B6E0 8009AAE0 000E78C3 */ sra $t7, $t6, 3 -/* 09B6E4 8009AAE4 25C10007 */ addiu $at, $t6, 7 -/* 09B6E8 8009AAE8 000178C3 */ sra $t7, $at, 3 -.L8009AAEC: -/* 09B6EC 8009AAEC 01E7C023 */ subu $t8, $t7, $a3 -/* 09B6F0 8009AAF0 03100019 */ multu $t8, $s0 -/* 09B6F4 8009AAF4 0000C812 */ mflo $t9 -/* 09B6F8 8009AAF8 00197203 */ sra $t6, $t9, 8 -/* 09B6FC 8009AAFC 01C77821 */ addu $t7, $t6, $a3 -/* 09B700 8009AB00 01730019 */ multu $t3, $s3 -/* 09B704 8009AB04 000FC040 */ sll $t8, $t7, 1 -/* 09B708 8009AB08 0000C812 */ mflo $t9 -/* 09B70C 8009AB0C 07210003 */ bgez $t9, .L8009AB1C -/* 09B710 8009AB10 001970C3 */ sra $t6, $t9, 3 -/* 09B714 8009AB14 27210007 */ addiu $at, $t9, 7 -/* 09B718 8009AB18 000170C3 */ sra $t6, $at, 3 -.L8009AB1C: -/* 09B71C 8009AB1C 01C57823 */ subu $t7, $t6, $a1 -/* 09B720 8009AB20 01F00019 */ multu $t7, $s0 -/* 09B724 8009AB24 0126082B */ sltu $at, $t1, $a2 -/* 09B728 8009AB28 0000C812 */ mflo $t9 -/* 09B72C 8009AB2C 00197203 */ sra $t6, $t9, 8 -/* 09B730 8009AB30 01C57821 */ addu $t7, $t6, $a1 -/* 09B734 8009AB34 000FC980 */ sll $t9, $t7, 6 -/* 09B738 8009AB38 01637823 */ subu $t7, $t3, $v1 -/* 09B73C 8009AB3C 01F00019 */ multu $t7, $s0 -/* 09B740 8009AB40 03197021 */ addu $t6, $t8, $t9 -/* 09B744 8009AB44 0000C012 */ mflo $t8 -/* 09B748 8009AB48 0018CA03 */ sra $t9, $t8, 8 -/* 09B74C 8009AB4C 03237821 */ addu $t7, $t9, $v1 -/* 09B750 8009AB50 000FC2C0 */ sll $t8, $t7, 0xb -/* 09B754 8009AB54 01D8C821 */ addu $t9, $t6, $t8 -/* 09B758 8009AB58 032A7821 */ addu $t7, $t9, $t2 -/* 09B75C 8009AB5C 1420FFC2 */ bnez $at, .L8009AA68 -/* 09B760 8009AB60 A50FFFFE */ sh $t7, -2($t0) -.L8009AB64: -/* 09B764 8009AB64 8FB00008 */ lw $s0, 8($sp) -/* 09B768 8009AB68 8FB1000C */ lw $s1, 0xc($sp) -/* 09B76C 8009AB6C 8FB20010 */ lw $s2, 0x10($sp) -/* 09B770 8009AB70 8FB30014 */ lw $s3, 0x14($sp) -/* 09B774 8009AB74 03E00008 */ jr $ra -/* 09B778 8009AB78 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/code_80091750/func_8009AB7C.s b/asm/non_matchings/code_80091750/func_8009AB7C.s deleted file mode 100644 index da0cf8117..000000000 --- a/asm/non_matchings/code_80091750/func_8009AB7C.s +++ /dev/null @@ -1,129 +0,0 @@ -glabel func_8009AB7C -/* 09B77C 8009AB7C 000470C0 */ sll $t6, $a0, 3 -/* 09B780 8009AB80 3C0F8019 */ lui $t7, %hi(D_8018E118+0x4) # 0x8019 -/* 09B784 8009AB84 01EE7821 */ addu $t7, $t7, $t6 -/* 09B788 8009AB88 8DEFE11C */ lw $t7, %lo(D_8018E118+0x4)($t7) # -0x1ee4($t7) -/* 09B78C 8009AB8C 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019 -/* 09B790 8009AB90 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9) -/* 09B794 8009AB94 3C0D0004 */ lui $t5, (0x0004B000 >> 16) # lui $t5, 4 -/* 09B798 8009AB98 000FC040 */ sll $t8, $t7, 1 -/* 09B79C 8009AB9C 35ADB000 */ ori $t5, (0x0004B000 & 0xFFFF) # ori $t5, $t5, 0xb000 -/* 09B7A0 8009ABA0 00001825 */ move $v1, $zero -/* 09B7A4 8009ABA4 240C001D */ li $t4, 29 -/* 09B7A8 8009ABA8 240B0096 */ li $t3, 150 -/* 09B7AC 8009ABAC 240A004D */ li $t2, 77 -/* 09B7B0 8009ABB0 03191021 */ addu $v0, $t8, $t9 -.L8009ABB4: -/* 09B7B4 8009ABB4 94450000 */ lhu $a1, ($v0) -/* 09B7B8 8009ABB8 24630004 */ addiu $v1, $v1, 4 -/* 09B7BC 8009ABBC 24420008 */ addiu $v0, $v0, 8 -/* 09B7C0 8009ABC0 30AEF800 */ andi $t6, $a1, 0xf800 -/* 09B7C4 8009ABC4 000E7AC3 */ sra $t7, $t6, 0xb -/* 09B7C8 8009ABC8 01EA0019 */ multu $t7, $t2 -/* 09B7CC 8009ABCC 30B807C0 */ andi $t8, $a1, 0x7c0 -/* 09B7D0 8009ABD0 0018C983 */ sra $t9, $t8, 6 -/* 09B7D4 8009ABD4 30AE003E */ andi $t6, $a1, 0x3e -/* 09B7D8 8009ABD8 000E7843 */ sra $t7, $t6, 1 -/* 09B7DC 8009ABDC 30A80001 */ andi $t0, $a1, 1 -/* 09B7E0 8009ABE0 9445FFFA */ lhu $a1, -6($v0) -/* 09B7E4 8009ABE4 00002012 */ mflo $a0 -/* 09B7E8 8009ABE8 00000000 */ nop -/* 09B7EC 8009ABEC 00000000 */ nop -/* 09B7F0 8009ABF0 032B0019 */ multu $t9, $t3 -/* 09B7F4 8009ABF4 00003012 */ mflo $a2 -/* 09B7F8 8009ABF8 0086C021 */ addu $t8, $a0, $a2 -/* 09B7FC 8009ABFC 00000000 */ nop -/* 09B800 8009AC00 01EC0019 */ multu $t7, $t4 -/* 09B804 8009AC04 00003812 */ mflo $a3 -/* 09B808 8009AC08 03074821 */ addu $t1, $t8, $a3 -/* 09B80C 8009AC0C 0009CA02 */ srl $t9, $t1, 8 -/* 09B810 8009AC10 00197040 */ sll $t6, $t9, 1 -/* 09B814 8009AC14 00197980 */ sll $t7, $t9, 6 -/* 09B818 8009AC18 01CFC021 */ addu $t8, $t6, $t7 -/* 09B81C 8009AC1C 0019CAC0 */ sll $t9, $t9, 0xb -/* 09B820 8009AC20 03197021 */ addu $t6, $t8, $t9 -/* 09B824 8009AC24 30B8F800 */ andi $t8, $a1, 0xf800 -/* 09B828 8009AC28 0018CAC3 */ sra $t9, $t8, 0xb -/* 09B82C 8009AC2C 032A0019 */ multu $t9, $t2 -/* 09B830 8009AC30 01C87821 */ addu $t7, $t6, $t0 -/* 09B834 8009AC34 A44FFFF8 */ sh $t7, -8($v0) -/* 09B838 8009AC38 30AE07C0 */ andi $t6, $a1, 0x7c0 -/* 09B83C 8009AC3C 000E7983 */ sra $t7, $t6, 6 -/* 09B840 8009AC40 30B8003E */ andi $t8, $a1, 0x3e -/* 09B844 8009AC44 0018C843 */ sra $t9, $t8, 1 -/* 09B848 8009AC48 30A80001 */ andi $t0, $a1, 1 -/* 09B84C 8009AC4C 9445FFFC */ lhu $a1, -4($v0) -/* 09B850 8009AC50 00002012 */ mflo $a0 -/* 09B854 8009AC54 00000000 */ nop -/* 09B858 8009AC58 00000000 */ nop -/* 09B85C 8009AC5C 01EB0019 */ multu $t7, $t3 -/* 09B860 8009AC60 00003012 */ mflo $a2 -/* 09B864 8009AC64 00867021 */ addu $t6, $a0, $a2 -/* 09B868 8009AC68 00000000 */ nop -/* 09B86C 8009AC6C 032C0019 */ multu $t9, $t4 -/* 09B870 8009AC70 00003812 */ mflo $a3 -/* 09B874 8009AC74 01C74821 */ addu $t1, $t6, $a3 -/* 09B878 8009AC78 00097A02 */ srl $t7, $t1, 8 -/* 09B87C 8009AC7C 000FC040 */ sll $t8, $t7, 1 -/* 09B880 8009AC80 000FC980 */ sll $t9, $t7, 6 -/* 09B884 8009AC84 03197021 */ addu $t6, $t8, $t9 -/* 09B888 8009AC88 000F7AC0 */ sll $t7, $t7, 0xb -/* 09B88C 8009AC8C 01CFC021 */ addu $t8, $t6, $t7 -/* 09B890 8009AC90 30AEF800 */ andi $t6, $a1, 0xf800 -/* 09B894 8009AC94 000E7AC3 */ sra $t7, $t6, 0xb -/* 09B898 8009AC98 01EA0019 */ multu $t7, $t2 -/* 09B89C 8009AC9C 0308C821 */ addu $t9, $t8, $t0 -/* 09B8A0 8009ACA0 A459FFFA */ sh $t9, -6($v0) -/* 09B8A4 8009ACA4 30B807C0 */ andi $t8, $a1, 0x7c0 -/* 09B8A8 8009ACA8 0018C983 */ sra $t9, $t8, 6 -/* 09B8AC 8009ACAC 30AE003E */ andi $t6, $a1, 0x3e -/* 09B8B0 8009ACB0 000E7843 */ sra $t7, $t6, 1 -/* 09B8B4 8009ACB4 30A80001 */ andi $t0, $a1, 1 -/* 09B8B8 8009ACB8 9445FFFE */ lhu $a1, -2($v0) -/* 09B8BC 8009ACBC 00002012 */ mflo $a0 -/* 09B8C0 8009ACC0 00000000 */ nop -/* 09B8C4 8009ACC4 00000000 */ nop -/* 09B8C8 8009ACC8 032B0019 */ multu $t9, $t3 -/* 09B8CC 8009ACCC 00003012 */ mflo $a2 -/* 09B8D0 8009ACD0 0086C021 */ addu $t8, $a0, $a2 -/* 09B8D4 8009ACD4 00000000 */ nop -/* 09B8D8 8009ACD8 01EC0019 */ multu $t7, $t4 -/* 09B8DC 8009ACDC 00003812 */ mflo $a3 -/* 09B8E0 8009ACE0 03074821 */ addu $t1, $t8, $a3 -/* 09B8E4 8009ACE4 0009CA02 */ srl $t9, $t1, 8 -/* 09B8E8 8009ACE8 00197040 */ sll $t6, $t9, 1 -/* 09B8EC 8009ACEC 00197980 */ sll $t7, $t9, 6 -/* 09B8F0 8009ACF0 01CFC021 */ addu $t8, $t6, $t7 -/* 09B8F4 8009ACF4 0019CAC0 */ sll $t9, $t9, 0xb -/* 09B8F8 8009ACF8 03197021 */ addu $t6, $t8, $t9 -/* 09B8FC 8009ACFC 30B8F800 */ andi $t8, $a1, 0xf800 -/* 09B900 8009AD00 0018CAC3 */ sra $t9, $t8, 0xb -/* 09B904 8009AD04 032A0019 */ multu $t9, $t2 -/* 09B908 8009AD08 01C87821 */ addu $t7, $t6, $t0 -/* 09B90C 8009AD0C A44FFFFC */ sh $t7, -4($v0) -/* 09B910 8009AD10 30AE07C0 */ andi $t6, $a1, 0x7c0 -/* 09B914 8009AD14 000E7983 */ sra $t7, $t6, 6 -/* 09B918 8009AD18 30B8003E */ andi $t8, $a1, 0x3e -/* 09B91C 8009AD1C 0018C843 */ sra $t9, $t8, 1 -/* 09B920 8009AD20 30A80001 */ andi $t0, $a1, 1 -/* 09B924 8009AD24 00002012 */ mflo $a0 -/* 09B928 8009AD28 00000000 */ nop -/* 09B92C 8009AD2C 00000000 */ nop -/* 09B930 8009AD30 01EB0019 */ multu $t7, $t3 -/* 09B934 8009AD34 00003012 */ mflo $a2 -/* 09B938 8009AD38 00867021 */ addu $t6, $a0, $a2 -/* 09B93C 8009AD3C 00000000 */ nop -/* 09B940 8009AD40 032C0019 */ multu $t9, $t4 -/* 09B944 8009AD44 00003812 */ mflo $a3 -/* 09B948 8009AD48 01C74821 */ addu $t1, $t6, $a3 -/* 09B94C 8009AD4C 00097A02 */ srl $t7, $t1, 8 -/* 09B950 8009AD50 000FC040 */ sll $t8, $t7, 1 -/* 09B954 8009AD54 000FC980 */ sll $t9, $t7, 6 -/* 09B958 8009AD58 03197021 */ addu $t6, $t8, $t9 -/* 09B95C 8009AD5C 000F7AC0 */ sll $t7, $t7, 0xb -/* 09B960 8009AD60 01CFC021 */ addu $t8, $t6, $t7 -/* 09B964 8009AD64 0308C821 */ addu $t9, $t8, $t0 -/* 09B968 8009AD68 146DFF92 */ bne $v1, $t5, .L8009ABB4 -/* 09B96C 8009AD6C A459FFFE */ sh $t9, -2($v0) -/* 09B970 8009AD70 03E00008 */ jr $ra -/* 09B974 8009AD74 00000000 */ nop diff --git a/asm/non_matchings/code_80091750/func_8009AD78.s b/asm/non_matchings/code_80091750/func_8009AD78.s deleted file mode 100644 index 48a820400..000000000 --- a/asm/non_matchings/code_80091750/func_8009AD78.s +++ /dev/null @@ -1,208 +0,0 @@ -glabel func_8009AD78 -/* 09B978 8009AD78 3C0F8019 */ lui $t7, %hi(D_8018E118) # $t7, 0x8019 -/* 09B97C 8009AD7C 25EFE118 */ addiu $t7, %lo(D_8018E118) # addiu $t7, $t7, -0x1ee8 -/* 09B980 8009AD80 000470C0 */ sll $t6, $a0, 3 -/* 09B984 8009AD84 01CF1821 */ addu $v1, $t6, $t7 -/* 09B988 8009AD88 8C660004 */ lw $a2, 4($v1) -/* 09B98C 8009AD8C 8C6E000C */ lw $t6, 0xc($v1) -/* 09B990 8009AD90 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09B994 8009AD94 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019 -/* 09B998 8009AD98 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9) -/* 09B99C 8009AD9C AFB00008 */ sw $s0, 8($sp) -/* 09B9A0 8009ADA0 0006C040 */ sll $t8, $a2, 1 -/* 09B9A4 8009ADA4 01C63823 */ subu $a3, $t6, $a2 -/* 09B9A8 8009ADA8 00A08025 */ move $s0, $a1 -/* 09B9AC 8009ADAC AFB30014 */ sw $s3, 0x14($sp) -/* 09B9B0 8009ADB0 AFB20010 */ sw $s2, 0x10($sp) -/* 09B9B4 8009ADB4 AFB1000C */ sw $s1, 0xc($sp) -/* 09B9B8 8009ADB8 00004025 */ move $t0, $zero -/* 09B9BC 8009ADBC 10E000B3 */ beqz $a3, .L8009B08C -/* 09B9C0 8009ADC0 03191021 */ addu $v0, $t8, $t9 -/* 09B9C4 8009ADC4 30E30003 */ andi $v1, $a3, 3 -/* 09B9C8 8009ADC8 10600029 */ beqz $v1, .L8009AE70 -/* 09B9CC 8009ADCC 00606025 */ move $t4, $v1 -/* 09B9D0 8009ADD0 24130020 */ li $s3, 32 -/* 09B9D4 8009ADD4 2412001D */ li $s2, 29 -/* 09B9D8 8009ADD8 24110096 */ li $s1, 150 -/* 09B9DC 8009ADDC 240D004D */ li $t5, 77 -.L8009ADE0: -/* 09B9E0 8009ADE0 94440000 */ lhu $a0, ($v0) -/* 09B9E4 8009ADE4 25080001 */ addiu $t0, $t0, 1 -/* 09B9E8 8009ADE8 24420002 */ addiu $v0, $v0, 2 -/* 09B9EC 8009ADEC 308FF800 */ andi $t7, $a0, 0xf800 -/* 09B9F0 8009ADF0 000FC2C3 */ sra $t8, $t7, 0xb -/* 09B9F4 8009ADF4 030D0019 */ multu $t8, $t5 -/* 09B9F8 8009ADF8 309907C0 */ andi $t9, $a0, 0x7c0 -/* 09B9FC 8009ADFC 00197183 */ sra $t6, $t9, 6 -/* 09BA00 8009AE00 308F003E */ andi $t7, $a0, 0x3e -/* 09BA04 8009AE04 000FC043 */ sra $t8, $t7, 1 -/* 09BA08 8009AE08 30890001 */ andi $t1, $a0, 1 -/* 09BA0C 8009AE0C 00001812 */ mflo $v1 -/* 09BA10 8009AE10 00000000 */ nop -/* 09BA14 8009AE14 00000000 */ nop -/* 09BA18 8009AE18 01D10019 */ multu $t6, $s1 -/* 09BA1C 8009AE1C 00002812 */ mflo $a1 -/* 09BA20 8009AE20 0065C821 */ addu $t9, $v1, $a1 -/* 09BA24 8009AE24 00000000 */ nop -/* 09BA28 8009AE28 03120019 */ multu $t8, $s2 -/* 09BA2C 8009AE2C 00003012 */ mflo $a2 -/* 09BA30 8009AE30 03265021 */ addu $t2, $t9, $a2 -/* 09BA34 8009AE34 000A7202 */ srl $t6, $t2, 8 -/* 09BA38 8009AE38 026E7823 */ subu $t7, $s3, $t6 -/* 09BA3C 8009AE3C 01F00019 */ multu $t7, $s0 -/* 09BA40 8009AE40 0000C012 */ mflo $t8 -/* 09BA44 8009AE44 0018CA02 */ srl $t9, $t8, 8 -/* 09BA48 8009AE48 01D95821 */ addu $t3, $t6, $t9 -/* 09BA4C 8009AE4C 000B7040 */ sll $t6, $t3, 1 -/* 09BA50 8009AE50 000B7980 */ sll $t7, $t3, 6 -/* 09BA54 8009AE54 01CFC021 */ addu $t8, $t6, $t7 -/* 09BA58 8009AE58 000BCAC0 */ sll $t9, $t3, 0xb -/* 09BA5C 8009AE5C 03197021 */ addu $t6, $t8, $t9 -/* 09BA60 8009AE60 01C97821 */ addu $t7, $t6, $t1 -/* 09BA64 8009AE64 1588FFDE */ bne $t4, $t0, .L8009ADE0 -/* 09BA68 8009AE68 A44FFFFE */ sh $t7, -2($v0) -/* 09BA6C 8009AE6C 11070087 */ beq $t0, $a3, .L8009B08C -.L8009AE70: -/* 09BA70 8009AE70 240D004D */ li $t5, 77 -/* 09BA74 8009AE74 24110096 */ li $s1, 150 -/* 09BA78 8009AE78 2412001D */ li $s2, 29 -/* 09BA7C 8009AE7C 24130020 */ li $s3, 32 -.L8009AE80: -/* 09BA80 8009AE80 94440000 */ lhu $a0, ($v0) -/* 09BA84 8009AE84 25080004 */ addiu $t0, $t0, 4 -/* 09BA88 8009AE88 24420008 */ addiu $v0, $v0, 8 -/* 09BA8C 8009AE8C 3098F800 */ andi $t8, $a0, 0xf800 -/* 09BA90 8009AE90 0018CAC3 */ sra $t9, $t8, 0xb -/* 09BA94 8009AE94 032D0019 */ multu $t9, $t5 -/* 09BA98 8009AE98 308E07C0 */ andi $t6, $a0, 0x7c0 -/* 09BA9C 8009AE9C 000E7983 */ sra $t7, $t6, 6 -/* 09BAA0 8009AEA0 3098003E */ andi $t8, $a0, 0x3e -/* 09BAA4 8009AEA4 0018C843 */ sra $t9, $t8, 1 -/* 09BAA8 8009AEA8 30890001 */ andi $t1, $a0, 1 -/* 09BAAC 8009AEAC 9444FFFA */ lhu $a0, -6($v0) -/* 09BAB0 8009AEB0 00001812 */ mflo $v1 -/* 09BAB4 8009AEB4 00000000 */ nop -/* 09BAB8 8009AEB8 00000000 */ nop -/* 09BABC 8009AEBC 01F10019 */ multu $t7, $s1 -/* 09BAC0 8009AEC0 00002812 */ mflo $a1 -/* 09BAC4 8009AEC4 00657021 */ addu $t6, $v1, $a1 -/* 09BAC8 8009AEC8 00000000 */ nop -/* 09BACC 8009AECC 03320019 */ multu $t9, $s2 -/* 09BAD0 8009AED0 00003012 */ mflo $a2 -/* 09BAD4 8009AED4 01C65021 */ addu $t2, $t6, $a2 -/* 09BAD8 8009AED8 000A7A02 */ srl $t7, $t2, 8 -/* 09BADC 8009AEDC 026FC023 */ subu $t8, $s3, $t7 -/* 09BAE0 8009AEE0 03100019 */ multu $t8, $s0 -/* 09BAE4 8009AEE4 0000C812 */ mflo $t9 -/* 09BAE8 8009AEE8 00197202 */ srl $t6, $t9, 8 -/* 09BAEC 8009AEEC 01EE5821 */ addu $t3, $t7, $t6 -/* 09BAF0 8009AEF0 000B7840 */ sll $t7, $t3, 1 -/* 09BAF4 8009AEF4 000BC180 */ sll $t8, $t3, 6 -/* 09BAF8 8009AEF8 01F8C821 */ addu $t9, $t7, $t8 -/* 09BAFC 8009AEFC 000B72C0 */ sll $t6, $t3, 0xb -/* 09BB00 8009AF00 032E7821 */ addu $t7, $t9, $t6 -/* 09BB04 8009AF04 3099F800 */ andi $t9, $a0, 0xf800 -/* 09BB08 8009AF08 001972C3 */ sra $t6, $t9, 0xb -/* 09BB0C 8009AF0C 01CD0019 */ multu $t6, $t5 -/* 09BB10 8009AF10 01E9C021 */ addu $t8, $t7, $t1 -/* 09BB14 8009AF14 A458FFF8 */ sh $t8, -8($v0) -/* 09BB18 8009AF18 308F07C0 */ andi $t7, $a0, 0x7c0 -/* 09BB1C 8009AF1C 000FC183 */ sra $t8, $t7, 6 -/* 09BB20 8009AF20 3099003E */ andi $t9, $a0, 0x3e -/* 09BB24 8009AF24 00197043 */ sra $t6, $t9, 1 -/* 09BB28 8009AF28 30890001 */ andi $t1, $a0, 1 -/* 09BB2C 8009AF2C 9444FFFC */ lhu $a0, -4($v0) -/* 09BB30 8009AF30 00001812 */ mflo $v1 -/* 09BB34 8009AF34 00000000 */ nop -/* 09BB38 8009AF38 00000000 */ nop -/* 09BB3C 8009AF3C 03110019 */ multu $t8, $s1 -/* 09BB40 8009AF40 00002812 */ mflo $a1 -/* 09BB44 8009AF44 00657821 */ addu $t7, $v1, $a1 -/* 09BB48 8009AF48 00000000 */ nop -/* 09BB4C 8009AF4C 01D20019 */ multu $t6, $s2 -/* 09BB50 8009AF50 00003012 */ mflo $a2 -/* 09BB54 8009AF54 01E65021 */ addu $t2, $t7, $a2 -/* 09BB58 8009AF58 000AC202 */ srl $t8, $t2, 8 -/* 09BB5C 8009AF5C 0278C823 */ subu $t9, $s3, $t8 -/* 09BB60 8009AF60 03300019 */ multu $t9, $s0 -/* 09BB64 8009AF64 00007012 */ mflo $t6 -/* 09BB68 8009AF68 000E7A02 */ srl $t7, $t6, 8 -/* 09BB6C 8009AF6C 030F5821 */ addu $t3, $t8, $t7 -/* 09BB70 8009AF70 000BC040 */ sll $t8, $t3, 1 -/* 09BB74 8009AF74 000BC980 */ sll $t9, $t3, 6 -/* 09BB78 8009AF78 03197021 */ addu $t6, $t8, $t9 -/* 09BB7C 8009AF7C 000B7AC0 */ sll $t7, $t3, 0xb -/* 09BB80 8009AF80 01CFC021 */ addu $t8, $t6, $t7 -/* 09BB84 8009AF84 308EF800 */ andi $t6, $a0, 0xf800 -/* 09BB88 8009AF88 000E7AC3 */ sra $t7, $t6, 0xb -/* 09BB8C 8009AF8C 01ED0019 */ multu $t7, $t5 -/* 09BB90 8009AF90 0309C821 */ addu $t9, $t8, $t1 -/* 09BB94 8009AF94 A459FFFA */ sh $t9, -6($v0) -/* 09BB98 8009AF98 309807C0 */ andi $t8, $a0, 0x7c0 -/* 09BB9C 8009AF9C 0018C983 */ sra $t9, $t8, 6 -/* 09BBA0 8009AFA0 308E003E */ andi $t6, $a0, 0x3e -/* 09BBA4 8009AFA4 000E7843 */ sra $t7, $t6, 1 -/* 09BBA8 8009AFA8 30890001 */ andi $t1, $a0, 1 -/* 09BBAC 8009AFAC 9444FFFE */ lhu $a0, -2($v0) -/* 09BBB0 8009AFB0 00001812 */ mflo $v1 -/* 09BBB4 8009AFB4 00000000 */ nop -/* 09BBB8 8009AFB8 00000000 */ nop -/* 09BBBC 8009AFBC 03310019 */ multu $t9, $s1 -/* 09BBC0 8009AFC0 00002812 */ mflo $a1 -/* 09BBC4 8009AFC4 0065C021 */ addu $t8, $v1, $a1 -/* 09BBC8 8009AFC8 00000000 */ nop -/* 09BBCC 8009AFCC 01F20019 */ multu $t7, $s2 -/* 09BBD0 8009AFD0 00003012 */ mflo $a2 -/* 09BBD4 8009AFD4 03065021 */ addu $t2, $t8, $a2 -/* 09BBD8 8009AFD8 000ACA02 */ srl $t9, $t2, 8 -/* 09BBDC 8009AFDC 02797023 */ subu $t6, $s3, $t9 -/* 09BBE0 8009AFE0 01D00019 */ multu $t6, $s0 -/* 09BBE4 8009AFE4 00007812 */ mflo $t7 -/* 09BBE8 8009AFE8 000FC202 */ srl $t8, $t7, 8 -/* 09BBEC 8009AFEC 03385821 */ addu $t3, $t9, $t8 -/* 09BBF0 8009AFF0 000BC840 */ sll $t9, $t3, 1 -/* 09BBF4 8009AFF4 000B7180 */ sll $t6, $t3, 6 -/* 09BBF8 8009AFF8 032E7821 */ addu $t7, $t9, $t6 -/* 09BBFC 8009AFFC 000BC2C0 */ sll $t8, $t3, 0xb -/* 09BC00 8009B000 01F8C821 */ addu $t9, $t7, $t8 -/* 09BC04 8009B004 308FF800 */ andi $t7, $a0, 0xf800 -/* 09BC08 8009B008 000FC2C3 */ sra $t8, $t7, 0xb -/* 09BC0C 8009B00C 030D0019 */ multu $t8, $t5 -/* 09BC10 8009B010 03297021 */ addu $t6, $t9, $t1 -/* 09BC14 8009B014 A44EFFFC */ sh $t6, -4($v0) -/* 09BC18 8009B018 309907C0 */ andi $t9, $a0, 0x7c0 -/* 09BC1C 8009B01C 00197183 */ sra $t6, $t9, 6 -/* 09BC20 8009B020 308F003E */ andi $t7, $a0, 0x3e -/* 09BC24 8009B024 000FC043 */ sra $t8, $t7, 1 -/* 09BC28 8009B028 30890001 */ andi $t1, $a0, 1 -/* 09BC2C 8009B02C 00001812 */ mflo $v1 -/* 09BC30 8009B030 00000000 */ nop -/* 09BC34 8009B034 00000000 */ nop -/* 09BC38 8009B038 01D10019 */ multu $t6, $s1 -/* 09BC3C 8009B03C 00002812 */ mflo $a1 -/* 09BC40 8009B040 0065C821 */ addu $t9, $v1, $a1 -/* 09BC44 8009B044 00000000 */ nop -/* 09BC48 8009B048 03120019 */ multu $t8, $s2 -/* 09BC4C 8009B04C 00003012 */ mflo $a2 -/* 09BC50 8009B050 03265021 */ addu $t2, $t9, $a2 -/* 09BC54 8009B054 000A7202 */ srl $t6, $t2, 8 -/* 09BC58 8009B058 026E7823 */ subu $t7, $s3, $t6 -/* 09BC5C 8009B05C 01F00019 */ multu $t7, $s0 -/* 09BC60 8009B060 0000C012 */ mflo $t8 -/* 09BC64 8009B064 0018CA02 */ srl $t9, $t8, 8 -/* 09BC68 8009B068 01D95821 */ addu $t3, $t6, $t9 -/* 09BC6C 8009B06C 000B7040 */ sll $t6, $t3, 1 -/* 09BC70 8009B070 000B7980 */ sll $t7, $t3, 6 -/* 09BC74 8009B074 01CFC021 */ addu $t8, $t6, $t7 -/* 09BC78 8009B078 000BCAC0 */ sll $t9, $t3, 0xb -/* 09BC7C 8009B07C 03197021 */ addu $t6, $t8, $t9 -/* 09BC80 8009B080 01C97821 */ addu $t7, $t6, $t1 -/* 09BC84 8009B084 1507FF7E */ bne $t0, $a3, .L8009AE80 -/* 09BC88 8009B088 A44FFFFE */ sh $t7, -2($v0) -.L8009B08C: -/* 09BC8C 8009B08C 8FB00008 */ lw $s0, 8($sp) -/* 09BC90 8009B090 8FB1000C */ lw $s1, 0xc($sp) -/* 09BC94 8009B094 8FB20010 */ lw $s2, 0x10($sp) -/* 09BC98 8009B098 8FB30014 */ lw $s3, 0x14($sp) -/* 09BC9C 8009B09C 03E00008 */ jr $ra -/* 09BCA0 8009B0A0 27BD0018 */ addiu $sp, $sp, 0x18 \ No newline at end of file diff --git a/asm/non_matchings/code_80091750/func_8009B0A4.s b/asm/non_matchings/code_80091750/func_8009B0A4.s deleted file mode 100644 index fb3a38d79..000000000 --- a/asm/non_matchings/code_80091750/func_8009B0A4.s +++ /dev/null @@ -1,312 +0,0 @@ -glabel func_8009B0A4 -/* 09BCA4 8009B0A4 27BDFF18 */ addiu $sp, $sp, -0xe8 -/* 09BCA8 8009B0A8 44852000 */ mtc1 $a1, $f4 -/* 09BCAC 8009B0AC AFB00024 */ sw $s0, 0x24($sp) -/* 09BCB0 8009B0B0 AFBF002C */ sw $ra, 0x2c($sp) -/* 09BCB4 8009B0B4 AFB10028 */ sw $s1, 0x28($sp) -/* 09BCB8 8009B0B8 F7B60018 */ sdc1 $f22, 0x18($sp) -/* 09BCBC 8009B0BC F7B40010 */ sdc1 $f20, 0x10($sp) -/* 09BCC0 8009B0C0 AFA400E8 */ sw $a0, 0xe8($sp) -/* 09BCC4 8009B0C4 00008025 */ move $s0, $zero -/* 09BCC8 8009B0C8 04A10006 */ bgez $a1, .L8009B0E4 -/* 09BCCC 8009B0CC 468021A1 */ cvt.d.w $f6, $f4 -/* 09BCD0 8009B0D0 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 09BCD4 8009B0D4 44814800 */ mtc1 $at, $f9 -/* 09BCD8 8009B0D8 44804000 */ mtc1 $zero, $f8 -/* 09BCDC 8009B0DC 00000000 */ nop -/* 09BCE0 8009B0E0 46283180 */ add.d $f6, $f6, $f8 -.L8009B0E4: -/* 09BCE4 8009B0E4 3C013FF8 */ li $at, 0x3FF80000 # 1.937500 -/* 09BCE8 8009B0E8 44815800 */ mtc1 $at, $f11 -/* 09BCEC 8009B0EC 44805000 */ mtc1 $zero, $f10 -/* 09BCF0 8009B0F0 3C013F70 */ li $at, 0x3F700000 # 0.937500 -/* 09BCF4 8009B0F4 44819800 */ mtc1 $at, $f19 -/* 09BCF8 8009B0F8 462A3402 */ mul.d $f16, $f6, $f10 -/* 09BCFC 8009B0FC 44809000 */ mtc1 $zero, $f18 -/* 09BD00 8009B100 3C013FD0 */ li $at, 0x3FD00000 # 1.625000 -/* 09BD04 8009B104 44814800 */ mtc1 $at, $f9 -/* 09BD08 8009B108 44804000 */ mtc1 $zero, $f8 -/* 09BD0C 8009B10C 3C013FA0 */ li $at, 0x3FA00000 # 1.250000 -/* 09BD10 8009B110 4481B800 */ mtc1 $at, $f23 -/* 09BD14 8009B114 4480B000 */ mtc1 $zero, $f22 -/* 09BD18 8009B118 46328102 */ mul.d $f4, $f16, $f18 -/* 09BD1C 8009B11C 27B10048 */ addiu $s1, $sp, 0x48 -/* 09BD20 8009B120 46282500 */ add.d $f20, $f4, $f8 -.L8009B124: -/* 09BD24 8009B124 44903000 */ mtc1 $s0, $f6 -/* 09BD28 8009B128 3C0141F0 */ li $at, 0x41F00000 # 30.000000 -/* 09BD2C 8009B12C 06010005 */ bgez $s0, .L8009B144 -/* 09BD30 8009B130 468032A1 */ cvt.d.w $f10, $f6 -/* 09BD34 8009B134 44818800 */ mtc1 $at, $f17 -/* 09BD38 8009B138 44808000 */ mtc1 $zero, $f16 -/* 09BD3C 8009B13C 00000000 */ nop -/* 09BD40 8009B140 46305280 */ add.d $f10, $f10, $f16 -.L8009B144: -/* 09BD44 8009B144 46365302 */ mul.d $f12, $f10, $f22 -/* 09BD48 8009B148 0C0245EC */ jal func_800917B0 -/* 09BD4C 8009B14C 4620A386 */ mov.d $f14, $f20 -/* 09BD50 8009B150 462004A0 */ cvt.s.d $f18, $f0 -/* 09BD54 8009B154 26100001 */ addiu $s0, $s0, 1 -/* 09BD58 8009B158 2E010020 */ sltiu $at, $s0, 0x20 -/* 09BD5C 8009B15C 26310004 */ addiu $s1, $s1, 4 -/* 09BD60 8009B160 1420FFF0 */ bnez $at, .L8009B124 -/* 09BD64 8009B164 E632FFFC */ swc1 $f18, -4($s1) -/* 09BD68 8009B168 8FAE00E8 */ lw $t6, 0xe8($sp) -/* 09BD6C 8009B16C 3C188019 */ lui $t8, %hi(D_8018E118) # $t8, 0x8019 -/* 09BD70 8009B170 2718E118 */ addiu $t8, %lo(D_8018E118) # addiu $t8, $t8, -0x1ee8 -/* 09BD74 8009B174 000E78C0 */ sll $t7, $t6, 3 -/* 09BD78 8009B178 01F81021 */ addu $v0, $t7, $t8 -/* 09BD7C 8009B17C 8C430004 */ lw $v1, 4($v0) -/* 09BD80 8009B180 8C4F000C */ lw $t7, 0xc($v0) -/* 09BD84 8009B184 3C0E8019 */ lui $t6, %hi(D_8018D9B0) # $t6, 0x8019 -/* 09BD88 8009B188 8DCED9B0 */ lw $t6, %lo(D_8018D9B0)($t6) -/* 09BD8C 8009B18C 0003C840 */ sll $t9, $v1, 1 -/* 09BD90 8009B190 01E36823 */ subu $t5, $t7, $v1 -/* 09BD94 8009B194 00008025 */ move $s0, $zero -/* 09BD98 8009B198 11A000E0 */ beqz $t5, .L8009B51C -/* 09BD9C 8009B19C 032E3821 */ addu $a3, $t9, $t6 -/* 09BDA0 8009B1A0 31A20001 */ andi $v0, $t5, 1 -/* 09BDA4 8009B1A4 5040004D */ beql $v0, $zero, .L8009B2DC -/* 09BDA8 8009B1A8 3C014200 */ lui $at, 0x4200 -/* 09BDAC 8009B1AC 94E20000 */ lhu $v0, ($a3) -/* 09BDB0 8009B1B0 24090055 */ li $t1, 85 -/* 09BDB4 8009B1B4 240A004B */ li $t2, 75 -/* 09BDB8 8009B1B8 3058F800 */ andi $t8, $v0, 0xf800 -/* 09BDBC 8009B1BC 0018CAC3 */ sra $t9, $t8, 0xb -/* 09BDC0 8009B1C0 03290019 */ multu $t9, $t1 -/* 09BDC4 8009B1C4 304E07C0 */ andi $t6, $v0, 0x7c0 -/* 09BDC8 8009B1C8 000E7983 */ sra $t7, $t6, 6 -/* 09BDCC 8009B1CC 3058003E */ andi $t8, $v0, 0x3e -/* 09BDD0 8009B1D0 0018C843 */ sra $t9, $t8, 1 -/* 09BDD4 8009B1D4 240B005F */ li $t3, 95 -/* 09BDD8 8009B1D8 27AC0048 */ addiu $t4, $sp, 0x48 -/* 09BDDC 8009B1DC 3C014200 */ li $at, 0x42000000 # 32.000000 -/* 09BDE0 8009B1E0 44810000 */ mtc1 $at, $f0 -/* 09BDE4 8009B1E4 24030001 */ li $v1, 1 -/* 09BDE8 8009B1E8 00002012 */ mflo $a0 -/* 09BDEC 8009B1EC 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 09BDF0 8009B1F0 24100001 */ li $s0, 1 -/* 09BDF4 8009B1F4 01EA0019 */ multu $t7, $t2 -/* 09BDF8 8009B1F8 30480001 */ andi $t0, $v0, 1 -/* 09BDFC 8009B1FC 00002812 */ mflo $a1 -/* 09BE00 8009B200 00857021 */ addu $t6, $a0, $a1 -/* 09BE04 8009B204 00000000 */ nop -/* 09BE08 8009B208 032B0019 */ multu $t9, $t3 -/* 09BE0C 8009B20C 00003012 */ mflo $a2 -/* 09BE10 8009B210 01C67821 */ addu $t7, $t6, $a2 -/* 09BE14 8009B214 000FC202 */ srl $t8, $t7, 8 -/* 09BE18 8009B218 0018C880 */ sll $t9, $t8, 2 -/* 09BE1C 8009B21C 01997021 */ addu $t6, $t4, $t9 -/* 09BE20 8009B220 C5C40000 */ lwc1 $f4, ($t6) -/* 09BE24 8009B224 46002202 */ mul.s $f8, $f4, $f0 -/* 09BE28 8009B228 444FF800 */ cfc1 $t7, $31 -/* 09BE2C 8009B22C 44C3F800 */ ctc1 $v1, $31 -/* 09BE30 8009B230 00000000 */ nop -/* 09BE34 8009B234 460041A4 */ cvt.w.s $f6, $f8 -/* 09BE38 8009B238 4443F800 */ cfc1 $v1, $31 -/* 09BE3C 8009B23C 00000000 */ nop -/* 09BE40 8009B240 30630078 */ andi $v1, $v1, 0x78 -/* 09BE44 8009B244 50600013 */ beql $v1, $zero, .L8009B294 -/* 09BE48 8009B248 44033000 */ mfc1 $v1, $f6 -/* 09BE4C 8009B24C 44813000 */ mtc1 $at, $f6 -/* 09BE50 8009B250 24030001 */ li $v1, 1 -/* 09BE54 8009B254 46064181 */ sub.s $f6, $f8, $f6 -/* 09BE58 8009B258 44C3F800 */ ctc1 $v1, $31 -/* 09BE5C 8009B25C 00000000 */ nop -/* 09BE60 8009B260 460031A4 */ cvt.w.s $f6, $f6 -/* 09BE64 8009B264 4443F800 */ cfc1 $v1, $31 -/* 09BE68 8009B268 00000000 */ nop -/* 09BE6C 8009B26C 30630078 */ andi $v1, $v1, 0x78 -/* 09BE70 8009B270 14600005 */ bnez $v1, .L8009B288 -/* 09BE74 8009B274 00000000 */ nop -/* 09BE78 8009B278 44033000 */ mfc1 $v1, $f6 -/* 09BE7C 8009B27C 3C018000 */ lui $at, 0x8000 -/* 09BE80 8009B280 10000007 */ b .L8009B2A0 -/* 09BE84 8009B284 00611825 */ or $v1, $v1, $at -.L8009B288: -/* 09BE88 8009B288 10000005 */ b .L8009B2A0 -/* 09BE8C 8009B28C 2403FFFF */ li $v1, -1 -/* 09BE90 8009B290 44033000 */ mfc1 $v1, $f6 -.L8009B294: -/* 09BE94 8009B294 00000000 */ nop -/* 09BE98 8009B298 0460FFFB */ bltz $v1, .L8009B288 -/* 09BE9C 8009B29C 00000000 */ nop -.L8009B2A0: -/* 09BEA0 8009B2A0 44CFF800 */ ctc1 $t7, $31 -/* 09BEA4 8009B2A4 2C610020 */ sltiu $at, $v1, 0x20 -/* 09BEA8 8009B2A8 54200003 */ bnel $at, $zero, .L8009B2B8 -/* 09BEAC 8009B2AC 0003C040 */ sll $t8, $v1, 1 -/* 09BEB0 8009B2B0 2403001F */ li $v1, 31 -/* 09BEB4 8009B2B4 0003C040 */ sll $t8, $v1, 1 -.L8009B2B8: -/* 09BEB8 8009B2B8 0003C980 */ sll $t9, $v1, 6 -/* 09BEBC 8009B2BC 03197021 */ addu $t6, $t8, $t9 -/* 09BEC0 8009B2C0 00037AC0 */ sll $t7, $v1, 0xb -/* 09BEC4 8009B2C4 01CFC021 */ addu $t8, $t6, $t7 -/* 09BEC8 8009B2C8 0308C821 */ addu $t9, $t8, $t0 -/* 09BECC 8009B2CC A4F90000 */ sh $t9, ($a3) -/* 09BED0 8009B2D0 120D0092 */ beq $s0, $t5, .L8009B51C -/* 09BED4 8009B2D4 24E70002 */ addiu $a3, $a3, 2 -/* 09BED8 8009B2D8 3C014200 */ li $at, 0x42000000 # 32.000000 -.L8009B2DC: -/* 09BEDC 8009B2DC 44810000 */ mtc1 $at, $f0 -/* 09BEE0 8009B2E0 24090055 */ li $t1, 85 -/* 09BEE4 8009B2E4 240A004B */ li $t2, 75 -/* 09BEE8 8009B2E8 240B005F */ li $t3, 95 -/* 09BEEC 8009B2EC 27AC0048 */ addiu $t4, $sp, 0x48 -.L8009B2F0: -/* 09BEF0 8009B2F0 94E20000 */ lhu $v0, ($a3) -/* 09BEF4 8009B2F4 24030001 */ li $v1, 1 -/* 09BEF8 8009B2F8 26100002 */ addiu $s0, $s0, 2 -/* 09BEFC 8009B2FC 304EF800 */ andi $t6, $v0, 0xf800 -/* 09BF00 8009B300 000E7AC3 */ sra $t7, $t6, 0xb -/* 09BF04 8009B304 01E90019 */ multu $t7, $t1 -/* 09BF08 8009B308 305807C0 */ andi $t8, $v0, 0x7c0 -/* 09BF0C 8009B30C 0018C983 */ sra $t9, $t8, 6 -/* 09BF10 8009B310 304E003E */ andi $t6, $v0, 0x3e -/* 09BF14 8009B314 000E7843 */ sra $t7, $t6, 1 -/* 09BF18 8009B318 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 09BF1C 8009B31C 30480001 */ andi $t0, $v0, 1 -/* 09BF20 8009B320 00002012 */ mflo $a0 -/* 09BF24 8009B324 00000000 */ nop -/* 09BF28 8009B328 00000000 */ nop -/* 09BF2C 8009B32C 032A0019 */ multu $t9, $t2 -/* 09BF30 8009B330 00002812 */ mflo $a1 -/* 09BF34 8009B334 0085C021 */ addu $t8, $a0, $a1 -/* 09BF38 8009B338 00000000 */ nop -/* 09BF3C 8009B33C 01EB0019 */ multu $t7, $t3 -/* 09BF40 8009B340 00003012 */ mflo $a2 -/* 09BF44 8009B344 0306C821 */ addu $t9, $t8, $a2 -/* 09BF48 8009B348 00197202 */ srl $t6, $t9, 8 -/* 09BF4C 8009B34C 000E7880 */ sll $t7, $t6, 2 -/* 09BF50 8009B350 018FC021 */ addu $t8, $t4, $t7 -/* 09BF54 8009B354 C7100000 */ lwc1 $f16, ($t8) -/* 09BF58 8009B358 46008282 */ mul.s $f10, $f16, $f0 -/* 09BF5C 8009B35C 4459F800 */ cfc1 $t9, $31 -/* 09BF60 8009B360 44C3F800 */ ctc1 $v1, $31 -/* 09BF64 8009B364 00000000 */ nop -/* 09BF68 8009B368 460054A4 */ cvt.w.s $f18, $f10 -/* 09BF6C 8009B36C 4443F800 */ cfc1 $v1, $31 -/* 09BF70 8009B370 00000000 */ nop -/* 09BF74 8009B374 30630078 */ andi $v1, $v1, 0x78 -/* 09BF78 8009B378 50600013 */ beql $v1, $zero, .L8009B3C8 -/* 09BF7C 8009B37C 44039000 */ mfc1 $v1, $f18 -/* 09BF80 8009B380 44819000 */ mtc1 $at, $f18 -/* 09BF84 8009B384 24030001 */ li $v1, 1 -/* 09BF88 8009B388 46125481 */ sub.s $f18, $f10, $f18 -/* 09BF8C 8009B38C 44C3F800 */ ctc1 $v1, $31 -/* 09BF90 8009B390 00000000 */ nop -/* 09BF94 8009B394 460094A4 */ cvt.w.s $f18, $f18 -/* 09BF98 8009B398 4443F800 */ cfc1 $v1, $31 -/* 09BF9C 8009B39C 00000000 */ nop -/* 09BFA0 8009B3A0 30630078 */ andi $v1, $v1, 0x78 -/* 09BFA4 8009B3A4 14600005 */ bnez $v1, .L8009B3BC -/* 09BFA8 8009B3A8 00000000 */ nop -/* 09BFAC 8009B3AC 44039000 */ mfc1 $v1, $f18 -/* 09BFB0 8009B3B0 3C018000 */ lui $at, 0x8000 -/* 09BFB4 8009B3B4 10000007 */ b .L8009B3D4 -/* 09BFB8 8009B3B8 00611825 */ or $v1, $v1, $at -.L8009B3BC: -/* 09BFBC 8009B3BC 10000005 */ b .L8009B3D4 -/* 09BFC0 8009B3C0 2403FFFF */ li $v1, -1 -/* 09BFC4 8009B3C4 44039000 */ mfc1 $v1, $f18 -.L8009B3C8: -/* 09BFC8 8009B3C8 00000000 */ nop -/* 09BFCC 8009B3CC 0460FFFB */ bltz $v1, .L8009B3BC -/* 09BFD0 8009B3D0 00000000 */ nop -.L8009B3D4: -/* 09BFD4 8009B3D4 44D9F800 */ ctc1 $t9, $31 -/* 09BFD8 8009B3D8 2C610020 */ sltiu $at, $v1, 0x20 -/* 09BFDC 8009B3DC 54200003 */ bnel $at, $zero, .L8009B3EC -/* 09BFE0 8009B3E0 94E20002 */ lhu $v0, 2($a3) -/* 09BFE4 8009B3E4 2403001F */ li $v1, 31 -/* 09BFE8 8009B3E8 94E20002 */ lhu $v0, 2($a3) -.L8009B3EC: -/* 09BFEC 8009B3EC 00037040 */ sll $t6, $v1, 1 -/* 09BFF0 8009B3F0 00037980 */ sll $t7, $v1, 6 -/* 09BFF4 8009B3F4 01CFC021 */ addu $t8, $t6, $t7 -/* 09BFF8 8009B3F8 0003CAC0 */ sll $t9, $v1, 0xb -/* 09BFFC 8009B3FC 03197021 */ addu $t6, $t8, $t9 -/* 09C000 8009B400 3058F800 */ andi $t8, $v0, 0xf800 -/* 09C004 8009B404 0018CAC3 */ sra $t9, $t8, 0xb -/* 09C008 8009B408 03290019 */ multu $t9, $t1 -/* 09C00C 8009B40C 01C87821 */ addu $t7, $t6, $t0 -/* 09C010 8009B410 A4EF0000 */ sh $t7, ($a3) -/* 09C014 8009B414 304E07C0 */ andi $t6, $v0, 0x7c0 -/* 09C018 8009B418 000E7983 */ sra $t7, $t6, 6 -/* 09C01C 8009B41C 3058003E */ andi $t8, $v0, 0x3e -/* 09C020 8009B420 0018C843 */ sra $t9, $t8, 1 -/* 09C024 8009B424 24030001 */ li $v1, 1 -/* 09C028 8009B428 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000 -/* 09C02C 8009B42C 24E70002 */ addiu $a3, $a3, 2 -/* 09C030 8009B430 00002012 */ mflo $a0 -/* 09C034 8009B434 30480001 */ andi $t0, $v0, 1 -/* 09C038 8009B438 00000000 */ nop -/* 09C03C 8009B43C 01EA0019 */ multu $t7, $t2 -/* 09C040 8009B440 00002812 */ mflo $a1 -/* 09C044 8009B444 00857021 */ addu $t6, $a0, $a1 -/* 09C048 8009B448 00000000 */ nop -/* 09C04C 8009B44C 032B0019 */ multu $t9, $t3 -/* 09C050 8009B450 00003012 */ mflo $a2 -/* 09C054 8009B454 01C67821 */ addu $t7, $t6, $a2 -/* 09C058 8009B458 000FC202 */ srl $t8, $t7, 8 -/* 09C05C 8009B45C 0018C880 */ sll $t9, $t8, 2 -/* 09C060 8009B460 01997021 */ addu $t6, $t4, $t9 -/* 09C064 8009B464 C5C40000 */ lwc1 $f4, ($t6) -/* 09C068 8009B468 46002202 */ mul.s $f8, $f4, $f0 -/* 09C06C 8009B46C 444FF800 */ cfc1 $t7, $31 -/* 09C070 8009B470 44C3F800 */ ctc1 $v1, $31 -/* 09C074 8009B474 00000000 */ nop -/* 09C078 8009B478 460041A4 */ cvt.w.s $f6, $f8 -/* 09C07C 8009B47C 4443F800 */ cfc1 $v1, $31 -/* 09C080 8009B480 00000000 */ nop -/* 09C084 8009B484 30630078 */ andi $v1, $v1, 0x78 -/* 09C088 8009B488 50600013 */ beql $v1, $zero, .L8009B4D8 -/* 09C08C 8009B48C 44033000 */ mfc1 $v1, $f6 -/* 09C090 8009B490 44813000 */ mtc1 $at, $f6 -/* 09C094 8009B494 24030001 */ li $v1, 1 -/* 09C098 8009B498 46064181 */ sub.s $f6, $f8, $f6 -/* 09C09C 8009B49C 44C3F800 */ ctc1 $v1, $31 -/* 09C0A0 8009B4A0 00000000 */ nop -/* 09C0A4 8009B4A4 460031A4 */ cvt.w.s $f6, $f6 -/* 09C0A8 8009B4A8 4443F800 */ cfc1 $v1, $31 -/* 09C0AC 8009B4AC 00000000 */ nop -/* 09C0B0 8009B4B0 30630078 */ andi $v1, $v1, 0x78 -/* 09C0B4 8009B4B4 14600005 */ bnez $v1, .L8009B4CC -/* 09C0B8 8009B4B8 00000000 */ nop -/* 09C0BC 8009B4BC 44033000 */ mfc1 $v1, $f6 -/* 09C0C0 8009B4C0 3C018000 */ lui $at, 0x8000 -/* 09C0C4 8009B4C4 10000007 */ b .L8009B4E4 -/* 09C0C8 8009B4C8 00611825 */ or $v1, $v1, $at -.L8009B4CC: -/* 09C0CC 8009B4CC 10000005 */ b .L8009B4E4 -/* 09C0D0 8009B4D0 2403FFFF */ li $v1, -1 -/* 09C0D4 8009B4D4 44033000 */ mfc1 $v1, $f6 -.L8009B4D8: -/* 09C0D8 8009B4D8 00000000 */ nop -/* 09C0DC 8009B4DC 0460FFFB */ bltz $v1, .L8009B4CC -/* 09C0E0 8009B4E0 00000000 */ nop -.L8009B4E4: -/* 09C0E4 8009B4E4 44CFF800 */ ctc1 $t7, $31 -/* 09C0E8 8009B4E8 2C610020 */ sltiu $at, $v1, 0x20 -/* 09C0EC 8009B4EC 54200003 */ bnel $at, $zero, .L8009B4FC -/* 09C0F0 8009B4F0 0003C040 */ sll $t8, $v1, 1 -/* 09C0F4 8009B4F4 2403001F */ li $v1, 31 -/* 09C0F8 8009B4F8 0003C040 */ sll $t8, $v1, 1 -.L8009B4FC: -/* 09C0FC 8009B4FC 0003C980 */ sll $t9, $v1, 6 -/* 09C100 8009B500 03197021 */ addu $t6, $t8, $t9 -/* 09C104 8009B504 00037AC0 */ sll $t7, $v1, 0xb -/* 09C108 8009B508 01CFC021 */ addu $t8, $t6, $t7 -/* 09C10C 8009B50C 0308C821 */ addu $t9, $t8, $t0 -/* 09C110 8009B510 A4F90000 */ sh $t9, ($a3) -/* 09C114 8009B514 160DFF76 */ bne $s0, $t5, .L8009B2F0 -/* 09C118 8009B518 24E70002 */ addiu $a3, $a3, 2 -.L8009B51C: -/* 09C11C 8009B51C 8FBF002C */ lw $ra, 0x2c($sp) -/* 09C120 8009B520 D7B40010 */ ldc1 $f20, 0x10($sp) -/* 09C124 8009B524 D7B60018 */ ldc1 $f22, 0x18($sp) -/* 09C128 8009B528 8FB00024 */ lw $s0, 0x24($sp) -/* 09C12C 8009B52C 8FB10028 */ lw $s1, 0x28($sp) -/* 09C130 8009B530 03E00008 */ jr $ra -/* 09C134 8009B534 27BD00E8 */ addiu $sp, $sp, 0xe8 diff --git a/asm/non_matchings/code_80091750/func_8009B538.s b/asm/non_matchings/code_80091750/func_8009B538.s deleted file mode 100644 index e3292c989..000000000 --- a/asm/non_matchings/code_80091750/func_8009B538.s +++ /dev/null @@ -1,233 +0,0 @@ -glabel func_8009B538 -/* 09C138 8009B538 000470C0 */ sll $t6, $a0, 3 -/* 09C13C 8009B53C 3C0F8019 */ lui $t7, %hi(D_8018E118+0x4) # 0x8019 -/* 09C140 8009B540 01EE7821 */ addu $t7, $t7, $t6 -/* 09C144 8009B544 8DEFE11C */ lw $t7, %lo(D_8018E118+0x4)($t7) # -0x1ee4($t7) -/* 09C148 8009B548 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 09C14C 8009B54C 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019 -/* 09C150 8009B550 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9) -/* 09C154 8009B554 AFB1000C */ sw $s1, 0xc($sp) -/* 09C158 8009B558 AFB00008 */ sw $s0, 8($sp) -/* 09C15C 8009B55C 000FC040 */ sll $t8, $t7, 1 -/* 09C160 8009B560 00C08025 */ move $s0, $a2 -/* 09C164 8009B564 00E08825 */ move $s1, $a3 -/* 09C168 8009B568 AFB30014 */ sw $s3, 0x14($sp) -/* 09C16C 8009B56C AFB20010 */ sw $s2, 0x10($sp) -/* 09C170 8009B570 00001825 */ move $v1, $zero -/* 09C174 8009B574 10A000CD */ beqz $a1, .L8009B8AC -/* 09C178 8009B578 03191021 */ addu $v0, $t8, $t9 -/* 09C17C 8009B57C 30A40003 */ andi $a0, $a1, 3 -/* 09C180 8009B580 1080002F */ beqz $a0, .L8009B640 -/* 09C184 8009B584 00806025 */ move $t4, $a0 -/* 09C188 8009B588 2413001D */ li $s3, 29 -/* 09C18C 8009B58C 24120096 */ li $s2, 150 -/* 09C190 8009B590 240D004D */ li $t5, 77 -/* 09C194 8009B594 8FAB0028 */ lw $t3, 0x28($sp) -.L8009B598: -/* 09C198 8009B598 94460000 */ lhu $a2, ($v0) -/* 09C19C 8009B59C 24630001 */ addiu $v1, $v1, 1 -/* 09C1A0 8009B5A0 24420002 */ addiu $v0, $v0, 2 -/* 09C1A4 8009B5A4 30CEF800 */ andi $t6, $a2, 0xf800 -/* 09C1A8 8009B5A8 000E7AC3 */ sra $t7, $t6, 0xb -/* 09C1AC 8009B5AC 01ED0019 */ multu $t7, $t5 -/* 09C1B0 8009B5B0 30D807C0 */ andi $t8, $a2, 0x7c0 -/* 09C1B4 8009B5B4 0018C983 */ sra $t9, $t8, 6 -/* 09C1B8 8009B5B8 30CE003E */ andi $t6, $a2, 0x3e -/* 09C1BC 8009B5BC 000E7843 */ sra $t7, $t6, 1 -/* 09C1C0 8009B5C0 30C90001 */ andi $t1, $a2, 1 -/* 09C1C4 8009B5C4 00002012 */ mflo $a0 -/* 09C1C8 8009B5C8 00000000 */ nop -/* 09C1CC 8009B5CC 00000000 */ nop -/* 09C1D0 8009B5D0 03320019 */ multu $t9, $s2 -/* 09C1D4 8009B5D4 00003812 */ mflo $a3 -/* 09C1D8 8009B5D8 0087C021 */ addu $t8, $a0, $a3 -/* 09C1DC 8009B5DC 00000000 */ nop -/* 09C1E0 8009B5E0 01F30019 */ multu $t7, $s3 -/* 09C1E4 8009B5E4 00004012 */ mflo $t0 -/* 09C1E8 8009B5E8 03085021 */ addu $t2, $t8, $t0 -/* 09C1EC 8009B5EC 000ACA02 */ srl $t9, $t2, 8 -/* 09C1F0 8009B5F0 02190019 */ multu $s0, $t9 -/* 09C1F4 8009B5F4 03205025 */ move $t2, $t9 -/* 09C1F8 8009B5F8 00007012 */ mflo $t6 -/* 09C1FC 8009B5FC 000E7A02 */ srl $t7, $t6, 8 -/* 09C200 8009B600 000FC2C0 */ sll $t8, $t7, 0xb -/* 09C204 8009B604 02390019 */ multu $s1, $t9 -/* 09C208 8009B608 0000C812 */ mflo $t9 -/* 09C20C 8009B60C 00197202 */ srl $t6, $t9, 8 -/* 09C210 8009B610 000E7980 */ sll $t7, $t6, 6 -/* 09C214 8009B614 016A0019 */ multu $t3, $t2 -/* 09C218 8009B618 030FC821 */ addu $t9, $t8, $t7 -/* 09C21C 8009B61C 00007012 */ mflo $t6 -/* 09C220 8009B620 000EC202 */ srl $t8, $t6, 8 -/* 09C224 8009B624 00187840 */ sll $t7, $t8, 1 -/* 09C228 8009B628 032F7021 */ addu $t6, $t9, $t7 -/* 09C22C 8009B62C 01C9C021 */ addu $t8, $t6, $t1 -/* 09C230 8009B630 1583FFD9 */ bne $t4, $v1, .L8009B598 -/* 09C234 8009B634 A458FFFE */ sh $t8, -2($v0) -/* 09C238 8009B638 5065009D */ beql $v1, $a1, .L8009B8B0 -/* 09C23C 8009B63C 8FB00008 */ lw $s0, 8($sp) -.L8009B640: -/* 09C240 8009B640 8FAB0028 */ lw $t3, 0x28($sp) -/* 09C244 8009B644 240D004D */ li $t5, 77 -/* 09C248 8009B648 24120096 */ li $s2, 150 -/* 09C24C 8009B64C 2413001D */ li $s3, 29 -.L8009B650: -/* 09C250 8009B650 94460000 */ lhu $a2, ($v0) -/* 09C254 8009B654 24630004 */ addiu $v1, $v1, 4 -/* 09C258 8009B658 24420008 */ addiu $v0, $v0, 8 -/* 09C25C 8009B65C 30D9F800 */ andi $t9, $a2, 0xf800 -/* 09C260 8009B660 00197AC3 */ sra $t7, $t9, 0xb -/* 09C264 8009B664 01ED0019 */ multu $t7, $t5 -/* 09C268 8009B668 30CE07C0 */ andi $t6, $a2, 0x7c0 -/* 09C26C 8009B66C 000EC183 */ sra $t8, $t6, 6 -/* 09C270 8009B670 30D9003E */ andi $t9, $a2, 0x3e -/* 09C274 8009B674 00197843 */ sra $t7, $t9, 1 -/* 09C278 8009B678 30C90001 */ andi $t1, $a2, 1 -/* 09C27C 8009B67C 9446FFFA */ lhu $a2, -6($v0) -/* 09C280 8009B680 00002012 */ mflo $a0 -/* 09C284 8009B684 00000000 */ nop -/* 09C288 8009B688 00000000 */ nop -/* 09C28C 8009B68C 03120019 */ multu $t8, $s2 -/* 09C290 8009B690 00003812 */ mflo $a3 -/* 09C294 8009B694 00877021 */ addu $t6, $a0, $a3 -/* 09C298 8009B698 00000000 */ nop -/* 09C29C 8009B69C 01F30019 */ multu $t7, $s3 -/* 09C2A0 8009B6A0 00004012 */ mflo $t0 -/* 09C2A4 8009B6A4 01C85021 */ addu $t2, $t6, $t0 -/* 09C2A8 8009B6A8 000AC202 */ srl $t8, $t2, 8 -/* 09C2AC 8009B6AC 02180019 */ multu $s0, $t8 -/* 09C2B0 8009B6B0 03005025 */ move $t2, $t8 -/* 09C2B4 8009B6B4 0000C812 */ mflo $t9 -/* 09C2B8 8009B6B8 00197A02 */ srl $t7, $t9, 8 -/* 09C2BC 8009B6BC 000F72C0 */ sll $t6, $t7, 0xb -/* 09C2C0 8009B6C0 02380019 */ multu $s1, $t8 -/* 09C2C4 8009B6C4 0000C012 */ mflo $t8 -/* 09C2C8 8009B6C8 0018CA02 */ srl $t9, $t8, 8 -/* 09C2CC 8009B6CC 00197980 */ sll $t7, $t9, 6 -/* 09C2D0 8009B6D0 016A0019 */ multu $t3, $t2 -/* 09C2D4 8009B6D4 01CFC021 */ addu $t8, $t6, $t7 -/* 09C2D8 8009B6D8 0000C812 */ mflo $t9 -/* 09C2DC 8009B6DC 00197202 */ srl $t6, $t9, 8 -/* 09C2E0 8009B6E0 000E7840 */ sll $t7, $t6, 1 -/* 09C2E4 8009B6E4 030FC821 */ addu $t9, $t8, $t7 -/* 09C2E8 8009B6E8 30D8F800 */ andi $t8, $a2, 0xf800 -/* 09C2EC 8009B6EC 00187AC3 */ sra $t7, $t8, 0xb -/* 09C2F0 8009B6F0 01ED0019 */ multu $t7, $t5 -/* 09C2F4 8009B6F4 03297021 */ addu $t6, $t9, $t1 -/* 09C2F8 8009B6F8 A44EFFF8 */ sh $t6, -8($v0) -/* 09C2FC 8009B6FC 30D907C0 */ andi $t9, $a2, 0x7c0 -/* 09C300 8009B700 00197183 */ sra $t6, $t9, 6 -/* 09C304 8009B704 30D8003E */ andi $t8, $a2, 0x3e -/* 09C308 8009B708 00187843 */ sra $t7, $t8, 1 -/* 09C30C 8009B70C 30C90001 */ andi $t1, $a2, 1 -/* 09C310 8009B710 9446FFFC */ lhu $a2, -4($v0) -/* 09C314 8009B714 00002012 */ mflo $a0 -/* 09C318 8009B718 00000000 */ nop -/* 09C31C 8009B71C 00000000 */ nop -/* 09C320 8009B720 01D20019 */ multu $t6, $s2 -/* 09C324 8009B724 00003812 */ mflo $a3 -/* 09C328 8009B728 0087C821 */ addu $t9, $a0, $a3 -/* 09C32C 8009B72C 00000000 */ nop -/* 09C330 8009B730 01F30019 */ multu $t7, $s3 -/* 09C334 8009B734 00004012 */ mflo $t0 -/* 09C338 8009B738 03285021 */ addu $t2, $t9, $t0 -/* 09C33C 8009B73C 000A7202 */ srl $t6, $t2, 8 -/* 09C340 8009B740 020E0019 */ multu $s0, $t6 -/* 09C344 8009B744 01C05025 */ move $t2, $t6 -/* 09C348 8009B748 0000C012 */ mflo $t8 -/* 09C34C 8009B74C 00187A02 */ srl $t7, $t8, 8 -/* 09C350 8009B750 000FCAC0 */ sll $t9, $t7, 0xb -/* 09C354 8009B754 022E0019 */ multu $s1, $t6 -/* 09C358 8009B758 00007012 */ mflo $t6 -/* 09C35C 8009B75C 000EC202 */ srl $t8, $t6, 8 -/* 09C360 8009B760 00187980 */ sll $t7, $t8, 6 -/* 09C364 8009B764 016A0019 */ multu $t3, $t2 -/* 09C368 8009B768 032F7021 */ addu $t6, $t9, $t7 -/* 09C36C 8009B76C 0000C012 */ mflo $t8 -/* 09C370 8009B770 0018CA02 */ srl $t9, $t8, 8 -/* 09C374 8009B774 00197840 */ sll $t7, $t9, 1 -/* 09C378 8009B778 01CFC021 */ addu $t8, $t6, $t7 -/* 09C37C 8009B77C 30CEF800 */ andi $t6, $a2, 0xf800 -/* 09C380 8009B780 000E7AC3 */ sra $t7, $t6, 0xb -/* 09C384 8009B784 01ED0019 */ multu $t7, $t5 -/* 09C388 8009B788 0309C821 */ addu $t9, $t8, $t1 -/* 09C38C 8009B78C A459FFFA */ sh $t9, -6($v0) -/* 09C390 8009B790 30D807C0 */ andi $t8, $a2, 0x7c0 -/* 09C394 8009B794 0018C983 */ sra $t9, $t8, 6 -/* 09C398 8009B798 30CE003E */ andi $t6, $a2, 0x3e -/* 09C39C 8009B79C 000E7843 */ sra $t7, $t6, 1 -/* 09C3A0 8009B7A0 30C90001 */ andi $t1, $a2, 1 -/* 09C3A4 8009B7A4 9446FFFE */ lhu $a2, -2($v0) -/* 09C3A8 8009B7A8 00002012 */ mflo $a0 -/* 09C3AC 8009B7AC 00000000 */ nop -/* 09C3B0 8009B7B0 00000000 */ nop -/* 09C3B4 8009B7B4 03320019 */ multu $t9, $s2 -/* 09C3B8 8009B7B8 00003812 */ mflo $a3 -/* 09C3BC 8009B7BC 0087C021 */ addu $t8, $a0, $a3 -/* 09C3C0 8009B7C0 00000000 */ nop -/* 09C3C4 8009B7C4 01F30019 */ multu $t7, $s3 -/* 09C3C8 8009B7C8 00004012 */ mflo $t0 -/* 09C3CC 8009B7CC 03085021 */ addu $t2, $t8, $t0 -/* 09C3D0 8009B7D0 000ACA02 */ srl $t9, $t2, 8 -/* 09C3D4 8009B7D4 02190019 */ multu $s0, $t9 -/* 09C3D8 8009B7D8 03205025 */ move $t2, $t9 -/* 09C3DC 8009B7DC 00007012 */ mflo $t6 -/* 09C3E0 8009B7E0 000E7A02 */ srl $t7, $t6, 8 -/* 09C3E4 8009B7E4 000FC2C0 */ sll $t8, $t7, 0xb -/* 09C3E8 8009B7E8 02390019 */ multu $s1, $t9 -/* 09C3EC 8009B7EC 0000C812 */ mflo $t9 -/* 09C3F0 8009B7F0 00197202 */ srl $t6, $t9, 8 -/* 09C3F4 8009B7F4 000E7980 */ sll $t7, $t6, 6 -/* 09C3F8 8009B7F8 016A0019 */ multu $t3, $t2 -/* 09C3FC 8009B7FC 030FC821 */ addu $t9, $t8, $t7 -/* 09C400 8009B800 00007012 */ mflo $t6 -/* 09C404 8009B804 000EC202 */ srl $t8, $t6, 8 -/* 09C408 8009B808 00187840 */ sll $t7, $t8, 1 -/* 09C40C 8009B80C 032F7021 */ addu $t6, $t9, $t7 -/* 09C410 8009B810 30D9F800 */ andi $t9, $a2, 0xf800 -/* 09C414 8009B814 00197AC3 */ sra $t7, $t9, 0xb -/* 09C418 8009B818 01ED0019 */ multu $t7, $t5 -/* 09C41C 8009B81C 01C9C021 */ addu $t8, $t6, $t1 -/* 09C420 8009B820 A458FFFC */ sh $t8, -4($v0) -/* 09C424 8009B824 30CE07C0 */ andi $t6, $a2, 0x7c0 -/* 09C428 8009B828 000EC183 */ sra $t8, $t6, 6 -/* 09C42C 8009B82C 30D9003E */ andi $t9, $a2, 0x3e -/* 09C430 8009B830 00197843 */ sra $t7, $t9, 1 -/* 09C434 8009B834 30C90001 */ andi $t1, $a2, 1 -/* 09C438 8009B838 00002012 */ mflo $a0 -/* 09C43C 8009B83C 00000000 */ nop -/* 09C440 8009B840 00000000 */ nop -/* 09C444 8009B844 03120019 */ multu $t8, $s2 -/* 09C448 8009B848 00003812 */ mflo $a3 -/* 09C44C 8009B84C 00877021 */ addu $t6, $a0, $a3 -/* 09C450 8009B850 00000000 */ nop -/* 09C454 8009B854 01F30019 */ multu $t7, $s3 -/* 09C458 8009B858 00004012 */ mflo $t0 -/* 09C45C 8009B85C 01C85021 */ addu $t2, $t6, $t0 -/* 09C460 8009B860 000AC202 */ srl $t8, $t2, 8 -/* 09C464 8009B864 02180019 */ multu $s0, $t8 -/* 09C468 8009B868 03005025 */ move $t2, $t8 -/* 09C46C 8009B86C 0000C812 */ mflo $t9 -/* 09C470 8009B870 00197A02 */ srl $t7, $t9, 8 -/* 09C474 8009B874 000F72C0 */ sll $t6, $t7, 0xb -/* 09C478 8009B878 02380019 */ multu $s1, $t8 -/* 09C47C 8009B87C 0000C012 */ mflo $t8 -/* 09C480 8009B880 0018CA02 */ srl $t9, $t8, 8 -/* 09C484 8009B884 00197980 */ sll $t7, $t9, 6 -/* 09C488 8009B888 016A0019 */ multu $t3, $t2 -/* 09C48C 8009B88C 01CFC021 */ addu $t8, $t6, $t7 -/* 09C490 8009B890 0000C812 */ mflo $t9 -/* 09C494 8009B894 00197202 */ srl $t6, $t9, 8 -/* 09C498 8009B898 000E7840 */ sll $t7, $t6, 1 -/* 09C49C 8009B89C 030FC821 */ addu $t9, $t8, $t7 -/* 09C4A0 8009B8A0 03297021 */ addu $t6, $t9, $t1 -/* 09C4A4 8009B8A4 1465FF6A */ bne $v1, $a1, .L8009B650 -/* 09C4A8 8009B8A8 A44EFFFE */ sh $t6, -2($v0) -.L8009B8AC: -/* 09C4AC 8009B8AC 8FB00008 */ lw $s0, 8($sp) -.L8009B8B0: -/* 09C4B0 8009B8B0 8FB1000C */ lw $s1, 0xc($sp) -/* 09C4B4 8009B8B4 8FB20010 */ lw $s2, 0x10($sp) -/* 09C4B8 8009B8B8 8FB30014 */ lw $s3, 0x14($sp) -/* 09C4BC 8009B8BC 03E00008 */ jr $ra -/* 09C4C0 8009B8C0 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/code_80091750/func_8009DAA8.s b/asm/non_matchings/code_80091750/func_8009DAA8.s deleted file mode 100644 index 1295709cd..000000000 --- a/asm/non_matchings/code_80091750/func_8009DAA8.s +++ /dev/null @@ -1,61 +0,0 @@ -glabel func_8009DAA8 -/* 09E6A8 8009DAA8 3C058019 */ lui $a1, %hi(D_8018E7D0) # $a1, 0x8019 -/* 09E6AC 8009DAAC 24A5E7D0 */ addiu $a1, %lo(D_8018E7D0) # addiu $a1, $a1, -0x1830 -/* 09E6B0 8009DAB0 8CAE0010 */ lw $t6, 0x10($a1) -/* 09E6B4 8009DAB4 3C198019 */ lui $t9, %hi(D_8018E7C8) # $t9, 0x8019 -/* 09E6B8 8009DAB8 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09E6BC 8009DABC 25D80001 */ addiu $t8, $t6, 1 -/* 09E6C0 8009DAC0 ACB80010 */ sw $t8, 0x10($a1) -/* 09E6C4 8009DAC4 8F39E7C8 */ lw $t9, %lo(D_8018E7C8)($t9) -/* 09E6C8 8009DAC8 AFBF002C */ sw $ra, 0x2c($sp) -/* 09E6CC 8009DACC 272A0001 */ addiu $t2, $t9, 1 -/* 09E6D0 8009DAD0 030A082B */ sltu $at, $t8, $t2 -/* 09E6D4 8009DAD4 14200005 */ bnez $at, .L8009DAEC -/* 09E6D8 8009DAD8 00000000 */ nop -/* 09E6DC 8009DADC 0C027399 */ jal func_8009CE64 -/* 09E6E0 8009DAE0 24040004 */ li $a0, 4 -/* 09E6E4 8009DAE4 3C058019 */ lui $a1, %hi(D_8018E7D0) # $a1, 0x8019 -/* 09E6E8 8009DAE8 24A5E7D0 */ addiu $a1, %lo(D_8018E7D0) # addiu $a1, $a1, -0x1830 -.L8009DAEC: -/* 09E6EC 8009DAEC 3C098015 */ lui $t1, %hi(gDisplayListHead) # $t1, 0x8015 -/* 09E6F0 8009DAF0 25290298 */ addiu $t1, %lo(gDisplayListHead) # addiu $t1, $t1, 0x298 -/* 09E6F4 8009DAF4 8D230000 */ lw $v1, ($t1) -/* 09E6F8 8009DAF8 3C0CE700 */ lui $t4, 0xe700 -/* 09E6FC 8009DAFC 3C0F8019 */ lui $t7, %hi(D_8018E7C8) # $t7, 0x8019 -/* 09E700 8009DB00 246B0008 */ addiu $t3, $v1, 8 -/* 09E704 8009DB04 AD2B0000 */ sw $t3, ($t1) -/* 09E708 8009DB08 AC600004 */ sw $zero, 4($v1) -/* 09E70C 8009DB0C AC6C0000 */ sw $t4, ($v1) -/* 09E710 8009DB10 8CAD0010 */ lw $t5, 0x10($a1) -/* 09E714 8009DB14 8DEFE7C8 */ lw $t7, %lo(D_8018E7C8)($t7) -/* 09E718 8009DB18 00601025 */ move $v0, $v1 -/* 09E71C 8009DB1C 000D7200 */ sll $t6, $t5, 8 -/* 09E720 8009DB20 01CD7023 */ subu $t6, $t6, $t5 -/* 09E724 8009DB24 01CF001B */ divu $zero, $t6, $t7 -/* 09E728 8009DB28 00004012 */ mflo $t0 -/* 09E72C 8009DB2C 29010100 */ slti $at, $t0, 0x100 -/* 09E730 8009DB30 15E00002 */ bnez $t7, .L8009DB3C -/* 09E734 8009DB34 00000000 */ nop -/* 09E738 8009DB38 0007000D */ break 7 -.L8009DB3C: -/* 09E73C 8009DB3C 54200003 */ bnel $at, $zero, .L8009DB4C -/* 09E740 8009DB40 241900F0 */ li $t9, 240 -/* 09E744 8009DB44 240800FF */ li $t0, 255 -/* 09E748 8009DB48 241900F0 */ li $t9, 240 -.L8009DB4C: -/* 09E74C 8009DB4C AFB90010 */ sw $t9, 0x10($sp) -/* 09E750 8009DB50 8D240000 */ lw $a0, ($t1) -/* 09E754 8009DB54 00002825 */ move $a1, $zero -/* 09E758 8009DB58 00003025 */ move $a2, $zero -/* 09E75C 8009DB5C 24070140 */ li $a3, 320 -/* 09E760 8009DB60 AFA00014 */ sw $zero, 0x14($sp) -/* 09E764 8009DB64 AFA00018 */ sw $zero, 0x18($sp) -/* 09E768 8009DB68 AFA0001C */ sw $zero, 0x1c($sp) -/* 09E76C 8009DB6C 0C02637E */ jal draw_box -/* 09E770 8009DB70 AFA80020 */ sw $t0, 0x20($sp) -/* 09E774 8009DB74 8FBF002C */ lw $ra, 0x2c($sp) -/* 09E778 8009DB78 3C098015 */ lui $t1, %hi(gDisplayListHead) # $t1, 0x8015 -/* 09E77C 8009DB7C 25290298 */ addiu $t1, %lo(gDisplayListHead) # addiu $t1, $t1, 0x298 -/* 09E780 8009DB80 AD220000 */ sw $v0, ($t1) -/* 09E784 8009DB84 03E00008 */ jr $ra -/* 09E788 8009DB88 27BD0030 */ addiu $sp, $sp, 0x30 diff --git a/asm/non_matchings/code_80091750/func_8009DB8C.s b/asm/non_matchings/code_80091750/func_8009DB8C.s deleted file mode 100644 index 20cc3cf7c..000000000 --- a/asm/non_matchings/code_80091750/func_8009DB8C.s +++ /dev/null @@ -1,236 +0,0 @@ -glabel func_8009DB8C -/* 09E78C 8009DB8C 27BDFFB8 */ addiu $sp, $sp, -0x48 -/* 09E790 8009DB90 AFB50040 */ sw $s5, 0x40($sp) -/* 09E794 8009DB94 3C158019 */ lui $s5, %hi(D_8018E7D0) # $s5, 0x8019 -/* 09E798 8009DB98 26B5E7D0 */ addiu $s5, %lo(D_8018E7D0) # addiu $s5, $s5, -0x1830 -/* 09E79C 8009DB9C 8EAE0010 */ lw $t6, 0x10($s5) -/* 09E7A0 8009DBA0 3C028019 */ lui $v0, %hi(D_8018E7C8) # $v0, 0x8019 -/* 09E7A4 8009DBA4 AFBF0044 */ sw $ra, 0x44($sp) -/* 09E7A8 8009DBA8 25CF0001 */ addiu $t7, $t6, 1 -/* 09E7AC 8009DBAC AEAF0010 */ sw $t7, 0x10($s5) -/* 09E7B0 8009DBB0 8C42E7C8 */ lw $v0, %lo(D_8018E7C8)($v0) -/* 09E7B4 8009DBB4 AFB4003C */ sw $s4, 0x3c($sp) -/* 09E7B8 8009DBB8 AFB30038 */ sw $s3, 0x38($sp) -/* 09E7BC 8009DBBC 01E2082B */ sltu $at, $t7, $v0 -/* 09E7C0 8009DBC0 AFB20034 */ sw $s2, 0x34($sp) -/* 09E7C4 8009DBC4 AFB10030 */ sw $s1, 0x30($sp) -/* 09E7C8 8009DBC8 AFB0002C */ sw $s0, 0x2c($sp) -/* 09E7CC 8009DBCC 1420001B */ bnez $at, .L8009DC3C -/* 09E7D0 8009DBD0 01E01825 */ move $v1, $t7 -/* 09E7D4 8009DBD4 14620015 */ bne $v1, $v0, .L8009DC2C -/* 09E7D8 8009DBD8 00008025 */ move $s0, $zero -/* 09E7DC 8009DBDC 3C128019 */ lui $s2, %hi(D_8018D9B8) # $s2, 0x8019 -/* 09E7E0 8009DBE0 2652D9B8 */ addiu $s2, %lo(D_8018D9B8) # addiu $s2, $s2, -0x2648 -/* 09E7E4 8009DBE4 24110001 */ li $s1, 1 -/* 09E7E8 8009DBE8 240704B0 */ li $a3, 1200 -.L8009DBEC: -/* 09E7EC 8009DBEC 8E580000 */ lw $t8, ($s2) -/* 09E7F0 8009DBF0 0310C821 */ addu $t9, $t8, $s0 -/* 09E7F4 8009DBF4 A3310000 */ sb $s1, ($t9) -/* 09E7F8 8009DBF8 8E4B0000 */ lw $t3, ($s2) -/* 09E7FC 8009DBFC 01706021 */ addu $t4, $t3, $s0 -/* 09E800 8009DC00 A1910001 */ sb $s1, 1($t4) -/* 09E804 8009DC04 8E4D0000 */ lw $t5, ($s2) -/* 09E808 8009DC08 01B07021 */ addu $t6, $t5, $s0 -/* 09E80C 8009DC0C A1D10002 */ sb $s1, 2($t6) -/* 09E810 8009DC10 8E4F0000 */ lw $t7, ($s2) -/* 09E814 8009DC14 01F0C021 */ addu $t8, $t7, $s0 -/* 09E818 8009DC18 26100004 */ addiu $s0, $s0, 4 -/* 09E81C 8009DC1C 1607FFF3 */ bne $s0, $a3, .L8009DBEC -/* 09E820 8009DC20 A3110003 */ sb $s1, 3($t8) -/* 09E824 8009DC24 10000038 */ b .L8009DD08 -/* 09E828 8009DC28 00008025 */ move $s0, $zero -.L8009DC2C: -/* 09E82C 8009DC2C 0C027399 */ jal func_8009CE64 -/* 09E830 8009DC30 24040004 */ li $a0, 4 -/* 09E834 8009DC34 10000034 */ b .L8009DD08 -/* 09E838 8009DC38 00008025 */ move $s0, $zero -.L8009DC3C: -/* 09E83C 8009DC3C 241404B0 */ li $s4, 1200 -/* 09E840 8009DC40 0282001B */ divu $zero, $s4, $v0 -/* 09E844 8009DC44 0000C812 */ mflo $t9 -/* 09E848 8009DC48 00008025 */ move $s0, $zero -/* 09E84C 8009DC4C 00009825 */ move $s3, $zero -/* 09E850 8009DC50 14400002 */ bnez $v0, .L8009DC5C -/* 09E854 8009DC54 00000000 */ nop -/* 09E858 8009DC58 0007000D */ break 7 -.L8009DC5C: -/* 09E85C 8009DC5C 3C128019 */ lui $s2, %hi(D_8018D9B8) # $s2, 0x8019 -/* 09E860 8009DC60 13200029 */ beqz $t9, .L8009DD08 -/* 09E864 8009DC64 24110001 */ li $s1, 1 -/* 09E868 8009DC68 2652D9B8 */ addiu $s2, %lo(D_8018D9B8) # addiu $s2, $s2, -0x2648 -/* 09E86C 8009DC6C 8E4B0000 */ lw $t3, ($s2) -.L8009DC70: -/* 09E870 8009DC70 01706021 */ addu $t4, $t3, $s0 -/* 09E874 8009DC74 918D0000 */ lbu $t5, ($t4) -/* 09E878 8009DC78 15A00012 */ bnez $t5, .L8009DCC4 -/* 09E87C 8009DC7C 00000000 */ nop -/* 09E880 8009DC80 8EAE0010 */ lw $t6, 0x10($s5) -/* 09E884 8009DC84 028E7823 */ subu $t7, $s4, $t6 -/* 09E888 8009DC88 01E2001B */ divu $zero, $t7, $v0 -/* 09E88C 8009DC8C 00002012 */ mflo $a0 -/* 09E890 8009DC90 3098FFFF */ andi $t8, $a0, 0xffff -/* 09E894 8009DC94 14400002 */ bnez $v0, .L8009DCA0 -/* 09E898 8009DC98 00000000 */ nop -/* 09E89C 8009DC9C 0007000D */ break 7 -.L8009DCA0: -/* 09E8A0 8009DCA0 03002025 */ move $a0, $t8 -/* 09E8A4 8009DCA4 0C0ADF8D */ jal random_int -/* 09E8A8 8009DCA8 00000000 */ nop -/* 09E8AC 8009DCAC 14400005 */ bnez $v0, .L8009DCC4 -/* 09E8B0 8009DCB0 00000000 */ nop -/* 09E8B4 8009DCB4 8E590000 */ lw $t9, ($s2) -/* 09E8B8 8009DCB8 26730001 */ addiu $s3, $s3, 1 -/* 09E8BC 8009DCBC 03305821 */ addu $t3, $t9, $s0 -/* 09E8C0 8009DCC0 A1710000 */ sb $s1, ($t3) -.L8009DCC4: -/* 09E8C4 8009DCC4 3C028019 */ lui $v0, %hi(D_8018E7C8) # $v0, 0x8019 -/* 09E8C8 8009DCC8 8C42E7C8 */ lw $v0, %lo(D_8018E7C8)($v0) -/* 09E8CC 8009DCCC 240C04B0 */ li $t4, 1200 -/* 09E8D0 8009DCD0 26100001 */ addiu $s0, $s0, 1 -/* 09E8D4 8009DCD4 0182001B */ divu $zero, $t4, $v0 -/* 09E8D8 8009DCD8 00001812 */ mflo $v1 -/* 09E8DC 8009DCDC 2A0104B0 */ slti $at, $s0, 0x4b0 -/* 09E8E0 8009DCE0 14400002 */ bnez $v0, .L8009DCEC -/* 09E8E4 8009DCE4 00000000 */ nop -/* 09E8E8 8009DCE8 0007000D */ break 7 -.L8009DCEC: -/* 09E8EC 8009DCEC 54200003 */ bnel $at, $zero, .L8009DCFC -/* 09E8F0 8009DCF0 0263082B */ sltu $at, $s3, $v1 -/* 09E8F4 8009DCF4 00008025 */ move $s0, $zero -/* 09E8F8 8009DCF8 0263082B */ sltu $at, $s3, $v1 -.L8009DCFC: -/* 09E8FC 8009DCFC 5420FFDC */ bnel $at, $zero, .L8009DC70 -/* 09E900 8009DD00 8E4B0000 */ lw $t3, ($s2) -/* 09E904 8009DD04 00008025 */ move $s0, $zero -.L8009DD08: -/* 09E908 8009DD08 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015 -/* 09E90C 8009DD0C 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298 -/* 09E910 8009DD10 8E220000 */ lw $v0, ($s1) -/* 09E914 8009DD14 3C09E700 */ lui $t1, 0xe700 -/* 09E918 8009DD18 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900 -/* 09E91C 8009DD1C 244D0008 */ addiu $t5, $v0, 8 -/* 09E920 8009DD20 AE2D0000 */ sw $t5, ($s1) -/* 09E924 8009DD24 AC400004 */ sw $zero, 4($v0) -/* 09E928 8009DD28 AC490000 */ sw $t1, ($v0) -/* 09E92C 8009DD2C 8E230000 */ lw $v1, ($s1) -/* 09E930 8009DD30 3C180050 */ lui $t8, (0x00504240 >> 16) # lui $t8, 0x50 -/* 09E934 8009DD34 37184240 */ ori $t8, (0x00504240 & 0xFFFF) # ori $t8, $t8, 0x4240 -/* 09E938 8009DD38 246E0008 */ addiu $t6, $v1, 8 -/* 09E93C 8009DD3C AE2E0000 */ sw $t6, ($s1) -/* 09E940 8009DD40 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d -/* 09E944 8009DD44 AC6F0000 */ sw $t7, ($v1) -/* 09E948 8009DD48 AC780004 */ sw $t8, 4($v1) -/* 09E94C 8009DD4C 8E240000 */ lw $a0, ($s1) -/* 09E950 8009DD50 240A00FF */ li $t2, 255 -/* 09E954 8009DD54 3C0BFA00 */ lui $t3, 0xfa00 -/* 09E958 8009DD58 24990008 */ addiu $t9, $a0, 8 -/* 09E95C 8009DD5C AE390000 */ sw $t9, ($s1) -/* 09E960 8009DD60 AC8A0004 */ sw $t2, 4($a0) -/* 09E964 8009DD64 AC8B0000 */ sw $t3, ($a0) -/* 09E968 8009DD68 8E250000 */ lw $a1, ($s1) -/* 09E96C 8009DD6C 3C0EFFFD */ lui $t6, (0xFFFDF6FB >> 16) # lui $t6, 0xfffd -/* 09E970 8009DD70 3C0DFCFF */ lui $t5, (0xFCFFFFFF >> 16) # lui $t5, 0xfcff -/* 09E974 8009DD74 24AC0008 */ addiu $t4, $a1, 8 -/* 09E978 8009DD78 AE2C0000 */ sw $t4, ($s1) -/* 09E97C 8009DD7C 3C128019 */ lui $s2, %hi(D_8018D9B8) # $s2, 0x8019 -/* 09E980 8009DD80 35ADFFFF */ ori $t5, (0xFCFFFFFF & 0xFFFF) # ori $t5, $t5, 0xffff -/* 09E984 8009DD84 35CEF6FB */ ori $t6, (0xFFFDF6FB & 0xFFFF) # ori $t6, $t6, 0xf6fb -/* 09E988 8009DD88 2652D9B8 */ addiu $s2, %lo(D_8018D9B8) # addiu $s2, $s2, -0x2648 -/* 09E98C 8009DD8C 240704B0 */ li $a3, 1200 -/* 09E990 8009DD90 3C08F600 */ lui $t0, 0xf600 -/* 09E994 8009DD94 24060028 */ li $a2, 40 -/* 09E998 8009DD98 ACAE0004 */ sw $t6, 4($a1) -/* 09E99C 8009DD9C ACAD0000 */ sw $t5, ($a1) -/* 09E9A0 8009DDA0 8E4F0000 */ lw $t7, ($s2) -.L8009DDA4: -/* 09E9A4 8009DDA4 01F0C021 */ addu $t8, $t7, $s0 -/* 09E9A8 8009DDA8 93190000 */ lbu $t9, ($t8) -/* 09E9AC 8009DDAC 53200025 */ beql $t9, $zero, .L8009DE44 -/* 09E9B0 8009DDB0 26100001 */ addiu $s0, $s0, 1 -/* 09E9B4 8009DDB4 0206001A */ div $zero, $s0, $a2 -/* 09E9B8 8009DDB8 8E250000 */ lw $a1, ($s1) -/* 09E9BC 8009DDBC 00001010 */ mfhi $v0 -/* 09E9C0 8009DDC0 000260C0 */ sll $t4, $v0, 3 -/* 09E9C4 8009DDC4 00001812 */ mflo $v1 -/* 09E9C8 8009DDC8 24AB0008 */ addiu $t3, $a1, 8 -/* 09E9CC 8009DDCC AE2B0000 */ sw $t3, ($s1) -/* 09E9D0 8009DDD0 000368C0 */ sll $t5, $v1, 3 -/* 09E9D4 8009DDD4 258E0008 */ addiu $t6, $t4, 8 -/* 09E9D8 8009DDD8 31CF03FF */ andi $t7, $t6, 0x3ff -/* 09E9DC 8009DDDC 25AB0008 */ addiu $t3, $t5, 8 -/* 09E9E0 8009DDE0 01801025 */ move $v0, $t4 -/* 09E9E4 8009DDE4 316C03FF */ andi $t4, $t3, 0x3ff -/* 09E9E8 8009DDE8 000FC380 */ sll $t8, $t7, 0xe -/* 09E9EC 8009DDEC 01A01825 */ move $v1, $t5 -/* 09E9F0 8009DDF0 000C6880 */ sll $t5, $t4, 2 -/* 09E9F4 8009DDF4 0308C825 */ or $t9, $t8, $t0 -/* 09E9F8 8009DDF8 306B03FF */ andi $t3, $v1, 0x3ff -/* 09E9FC 8009DDFC 304F03FF */ andi $t7, $v0, 0x3ff -/* 09EA00 8009DE00 000FC380 */ sll $t8, $t7, 0xe -/* 09EA04 8009DE04 000B6080 */ sll $t4, $t3, 2 -/* 09EA08 8009DE08 032D7025 */ or $t6, $t9, $t5 -/* 09EA0C 8009DE0C 00A02025 */ move $a0, $a1 -/* 09EA10 8009DE10 030CC825 */ or $t9, $t8, $t4 -/* 09EA14 8009DE14 AC990004 */ sw $t9, 4($a0) -/* 09EA18 8009DE18 AC8E0000 */ sw $t6, ($a0) -/* 09EA1C 8009DE1C 14C00002 */ bnez $a2, .L8009DE28 -/* 09EA20 8009DE20 00000000 */ nop -/* 09EA24 8009DE24 0007000D */ break 7 -.L8009DE28: -/* 09EA28 8009DE28 2401FFFF */ li $at, -1 -/* 09EA2C 8009DE2C 14C10004 */ bne $a2, $at, .L8009DE40 -/* 09EA30 8009DE30 3C018000 */ lui $at, 0x8000 -/* 09EA34 8009DE34 16010002 */ bne $s0, $at, .L8009DE40 -/* 09EA38 8009DE38 00000000 */ nop -/* 09EA3C 8009DE3C 0006000D */ break 6 -.L8009DE40: -/* 09EA40 8009DE40 26100001 */ addiu $s0, $s0, 1 -.L8009DE44: -/* 09EA44 8009DE44 5607FFD7 */ bnel $s0, $a3, .L8009DDA4 -/* 09EA48 8009DE48 8E4F0000 */ lw $t7, ($s2) -/* 09EA4C 8009DE4C 8E250000 */ lw $a1, ($s1) -/* 09EA50 8009DE50 3C0B8019 */ lui $t3, %hi(D_8018E7C8) # $t3, 0x8019 -/* 09EA54 8009DE54 00003025 */ move $a2, $zero -/* 09EA58 8009DE58 24AD0008 */ addiu $t5, $a1, 8 -/* 09EA5C 8009DE5C AE2D0000 */ sw $t5, ($s1) -/* 09EA60 8009DE60 ACA00004 */ sw $zero, 4($a1) -/* 09EA64 8009DE64 ACA90000 */ sw $t1, ($a1) -/* 09EA68 8009DE68 8EAE0010 */ lw $t6, 0x10($s5) -/* 09EA6C 8009DE6C 8D6BE7C8 */ lw $t3, %lo(D_8018E7C8)($t3) -/* 09EA70 8009DE70 00A01025 */ move $v0, $a1 -/* 09EA74 8009DE74 01CA0019 */ multu $t6, $t2 -/* 09EA78 8009DE78 00002825 */ move $a1, $zero -/* 09EA7C 8009DE7C 24070140 */ li $a3, 320 -/* 09EA80 8009DE80 241800F0 */ li $t8, 240 -/* 09EA84 8009DE84 00007812 */ mflo $t7 -/* 09EA88 8009DE88 00000000 */ nop -/* 09EA8C 8009DE8C 00000000 */ nop -/* 09EA90 8009DE90 01EB001B */ divu $zero, $t7, $t3 -/* 09EA94 8009DE94 00001812 */ mflo $v1 -/* 09EA98 8009DE98 28610100 */ slti $at, $v1, 0x100 -/* 09EA9C 8009DE9C 15600002 */ bnez $t3, .L8009DEA8 -/* 09EAA0 8009DEA0 00000000 */ nop -/* 09EAA4 8009DEA4 0007000D */ break 7 -.L8009DEA8: -/* 09EAA8 8009DEA8 54200003 */ bnel $at, $zero, .L8009DEB8 -/* 09EAAC 8009DEAC 8E240000 */ lw $a0, ($s1) -/* 09EAB0 8009DEB0 240300FF */ li $v1, 255 -/* 09EAB4 8009DEB4 8E240000 */ lw $a0, ($s1) -.L8009DEB8: -/* 09EAB8 8009DEB8 AFB80010 */ sw $t8, 0x10($sp) -/* 09EABC 8009DEBC AFA00014 */ sw $zero, 0x14($sp) -/* 09EAC0 8009DEC0 AFA00018 */ sw $zero, 0x18($sp) -/* 09EAC4 8009DEC4 AFA0001C */ sw $zero, 0x1c($sp) -/* 09EAC8 8009DEC8 0C02637E */ jal draw_box -/* 09EACC 8009DECC AFA30020 */ sw $v1, 0x20($sp) -/* 09EAD0 8009DED0 8FBF0044 */ lw $ra, 0x44($sp) -/* 09EAD4 8009DED4 AE220000 */ sw $v0, ($s1) -/* 09EAD8 8009DED8 8FB10030 */ lw $s1, 0x30($sp) -/* 09EADC 8009DEDC 8FB0002C */ lw $s0, 0x2c($sp) -/* 09EAE0 8009DEE0 8FB20034 */ lw $s2, 0x34($sp) -/* 09EAE4 8009DEE4 8FB30038 */ lw $s3, 0x38($sp) -/* 09EAE8 8009DEE8 8FB4003C */ lw $s4, 0x3c($sp) -/* 09EAEC 8009DEEC 8FB50040 */ lw $s5, 0x40($sp) -/* 09EAF0 8009DEF0 03E00008 */ jr $ra -/* 09EAF4 8009DEF4 27BD0048 */ addiu $sp, $sp, 0x48 diff --git a/asm/non_matchings/code_80091750/func_8009E0F0.s b/asm/non_matchings/code_80091750/func_8009E0F0.s deleted file mode 100644 index 00ae2d9d4..000000000 --- a/asm/non_matchings/code_80091750/func_8009E0F0.s +++ /dev/null @@ -1,59 +0,0 @@ -glabel func_8009E0F0 -/* 09ECF0 8009E0F0 3C038019 */ lui $v1, %hi(D_8018E7AC) # $v1, 0x8019 -/* 09ECF4 8009E0F4 2463E7AC */ addiu $v1, %lo(D_8018E7AC) # addiu $v1, $v1, -0x1854 -/* 09ECF8 8009E0F8 806E0004 */ lb $t6, 4($v1) -/* 09ECFC 8009E0FC 24020003 */ li $v0, 3 -/* 09ED00 8009E100 3C058019 */ lui $a1, %hi(D_8018E7B8) # $a1, 0x8019 -/* 09ED04 8009E104 104E001B */ beq $v0, $t6, .L8009E174 -/* 09ED08 8009E108 24A5E7B8 */ addiu $a1, %lo(D_8018E7B8) # addiu $a1, $a1, -0x1848 -/* 09ED0C 8009E10C 2C810100 */ sltiu $at, $a0, 0x100 -/* 09ED10 8009E110 A0620004 */ sb $v0, 4($v1) -/* 09ED14 8009E114 14200003 */ bnez $at, .L8009E124 -/* 09ED18 8009E118 ACA40010 */ sw $a0, 0x10($a1) -/* 09ED1C 8009E11C 241800FF */ li $t8, 255 -/* 09ED20 8009E120 ACB80010 */ sw $t8, 0x10($a1) -.L8009E124: -/* 09ED24 8009E124 3C018019 */ lui $at, %hi(D_8018E7E0) # $at, 0x8019 -/* 09ED28 8009E128 3C038019 */ lui $v1, %hi(D_8018D9B8) # $v1, 0x8019 -/* 09ED2C 8009E12C AC20E7E0 */ sw $zero, %lo(D_8018E7E0)($at) -/* 09ED30 8009E130 2463D9B8 */ addiu $v1, %lo(D_8018D9B8) # addiu $v1, $v1, -0x2648 -/* 09ED34 8009E134 00001025 */ move $v0, $zero -/* 09ED38 8009E138 240404B0 */ li $a0, 1200 -.L8009E13C: -/* 09ED3C 8009E13C 8C790000 */ lw $t9, ($v1) -/* 09ED40 8009E140 03224021 */ addu $t0, $t9, $v0 -/* 09ED44 8009E144 A1000000 */ sb $zero, ($t0) -/* 09ED48 8009E148 8C690000 */ lw $t1, ($v1) -/* 09ED4C 8009E14C 01225021 */ addu $t2, $t1, $v0 -/* 09ED50 8009E150 A1400001 */ sb $zero, 1($t2) -/* 09ED54 8009E154 8C6B0000 */ lw $t3, ($v1) -/* 09ED58 8009E158 01626021 */ addu $t4, $t3, $v0 -/* 09ED5C 8009E15C A1800002 */ sb $zero, 2($t4) -/* 09ED60 8009E160 8C6D0000 */ lw $t5, ($v1) -/* 09ED64 8009E164 01A27021 */ addu $t6, $t5, $v0 -/* 09ED68 8009E168 24420004 */ addiu $v0, $v0, 4 -/* 09ED6C 8009E16C 1444FFF3 */ bne $v0, $a0, .L8009E13C -/* 09ED70 8009E170 A1C00003 */ sb $zero, 3($t6) -.L8009E174: -/* 09ED74 8009E174 03E00008 */ jr $ra -/* 09ED78 8009E178 00000000 */ nop - -/* 09ED7C 8009E17C 3C038019 */ lui $v1, %hi(D_8018E7AC) # $v1, 0x8019 -/* 09ED80 8009E180 2463E7AC */ addiu $v1, %lo(D_8018E7AC) # addiu $v1, $v1, -0x1854 -/* 09ED84 8009E184 806E0004 */ lb $t6, 4($v1) -/* 09ED88 8009E188 24020004 */ li $v0, 4 -/* 09ED8C 8009E18C 3C058019 */ lui $a1, %hi(D_8018E7B8) # $a1, 0x8019 -/* 09ED90 8009E190 104E0009 */ beq $v0, $t6, .L8009E1B8 -/* 09ED94 8009E194 24A5E7B8 */ addiu $a1, %lo(D_8018E7B8) # addiu $a1, $a1, -0x1848 -/* 09ED98 8009E198 2C810100 */ sltiu $at, $a0, 0x100 -/* 09ED9C 8009E19C A0620004 */ sb $v0, 4($v1) -/* 09EDA0 8009E1A0 14200003 */ bnez $at, .L8009E1B0 -/* 09EDA4 8009E1A4 ACA40010 */ sw $a0, 0x10($a1) -/* 09EDA8 8009E1A8 241800FF */ li $t8, 255 -/* 09EDAC 8009E1AC ACB80010 */ sw $t8, 0x10($a1) -.L8009E1B0: -/* 09EDB0 8009E1B0 3C018019 */ lui $at, %hi(D_8018E7E0) # $at, 0x8019 -/* 09EDB4 8009E1B4 AC20E7E0 */ sw $zero, %lo(D_8018E7E0)($at) -.L8009E1B8: -/* 09EDB8 8009E1B8 03E00008 */ jr $ra -/* 09EDBC 8009E1BC 00000000 */ nop diff --git a/ctx_includes.c b/ctx_includes.c index 604ec888a..d9ea14a9d 100644 --- a/ctx_includes.c +++ b/ctx_includes.c @@ -7,7 +7,6 @@ #include "include/course_offsets.h" #include "include/defines.h" #include "include/functions.h" -#include "include/global.h" #include "include/hardcoded_segments.h" #include "include/kart_attributes.h" #include "include/libc/math.h" @@ -52,7 +51,6 @@ #include "include/trig_tables.h" #include "include/types.h" #include "include/ultra64.h" -#include "include/variables.h" #include "include/vehicles.h" #include "include/waypoints.h" #include "src/audio/data.h" diff --git a/src/code_80005FD0.c b/src/code_80005FD0.c index c81a336a0..ff09c4a0f 100644 --- a/src/code_80005FD0.c +++ b/src/code_80005FD0.c @@ -6140,10 +6140,8 @@ GLOBAL_ASM("asm/non_matchings/code_80005FD0/func_80016494.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit 08138748803d75e73e4a94bb0c619a273754ee9c on Oct-11-2023 -s16 gCurrentCourseId; /* unable to generate initializer */ - -void func_80016C3C(s32 arg0, s32 arg1, s32 cameraId) { +//generated by m2c commit a39b70e85329b0bcaeb4350510ddb23dc9840dce on Jan-03-2024 +void func_80016C3C(s32 arg0, f32 arg1, s32 cameraId) { f32 sp5C; f32 sp54; u16 sp44; diff --git a/src/code_80091750.c b/src/code_80091750.c index 3736d9840..be3551884 100644 --- a/src/code_80091750.c +++ b/src/code_80091750.c @@ -34,9 +34,10 @@ //! @todo Move gGfxPool out of main.h // Unfortunately that's not a small effort due to weird import structure in this project #include "main.h" -intptr_t D_8018D9B0; + +u16 *D_8018D9B0; u8 *D_8018D9B4; -uintptr_t *D_8018D9B8; +u8 *D_8018D9B8; u8 *D_8018D9BC; struct_8018EE10_entry_cont *D_8018D9C0; /** @@ -1433,59 +1434,55 @@ f64 func_800917B0(f64 arg0, f64 arg1) { return 0.0; } - -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -f64 func_8009186C(f64 arg0, ? arg0_lo) { +f64 func_8009186C(f64 arg0) { + s32 var_v0; s32 sp38; + f64 var_f2; f64 temp_f0; f64 temp_f12; - f64 temp_f14; - f64 var_f14; - f64 var_f2; - s32 var_v0; if (arg0 <= 0.0) { return 0.0; } func_80091AC0(arg0 / 1.414213562373095, &sp38); - temp_f14 = arg0 / func_80091A6C(0.0, sp38); + arg0 /= func_80091A6C(1.0, sp38); var_v0 = 1; - var_f14 = (temp_f14 - 1.0) / (temp_f14 + 1.0); - temp_f12 = var_f14 * var_f14; - var_f2 = var_f14; + arg0 = (arg0 - 1.0) / (arg0 + 1.0); + temp_f12 = arg0 * arg0; + var_f2 = arg0; do { var_v0 += 2; - var_f14 *= temp_f12; + arg0 *= temp_f12; temp_f0 = var_f2; - var_f2 += var_f14 / (f64) var_v0; + var_f2 += arg0 / (f64) var_v0; } while (temp_f0 != var_f2); - return ((f64) sp38 * 0.6931471805599453) + (2.0 * var_f2); + return ((f64) sp38 * 0.6931471805599453) + (2 * var_f2); } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009186C.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -void func_8009195C(f64 arg0, ? arg0_lo) { - f64 temp_f14; - f64 temp_f2; - f64 temp_f2_2; +#ifdef NON_MATCHING +// Some math reordering issues on the continued fraction line +f64 func_8009195C(f64 arg0) { s32 temp_f10; + s32 six = 6; + s32 ten = 10; + s32 fourteen = 14; + s32 eighteen = 18; + f64 temp_f2; if (arg0 >= 0.0) { - + temp_f2 = 0.5; + } else { + temp_f2 = -0.5; } - temp_f10 = (s32) (0.0 + (arg0 / 0.6931471805599453)); - temp_f14 = arg0 - ((f64) temp_f10 * 0.6931471805599453); - temp_f2 = temp_f14 * temp_f14; + temp_f10 = temp_f2 + (arg0 / 0.6931471805599453); + arg0 -= (temp_f10 * 0.6931471805599453); + temp_f2 = arg0 * arg0; /** - * This is the denominator part a tanh(x/2) continued fraction, where temp_f14 is x + * This is the denominator part a tanh(x/2) continued fraction, where arg0 is x * The best reference to this I can find is: https://math.stackexchange.com/questions/3241906/continued-fraction-02-6-10-14-22n-1-frace-1e1 **/ - temp_f2_2 = 2.0 + (temp_f2 / ((f64) 6 + (temp_f2 / ((f64) 0xA + (temp_f2 / ((f64) 0xE + (temp_f2 / ((f64) 0x12 + (temp_f2 / 22.0))))))))); - func_80091A6C((temp_f2_2 + temp_f14) / (temp_f2_2 - temp_f14), temp_f10); + temp_f2 = 2 + (temp_f2 / (six + (temp_f2 / (ten + (temp_f2 / (fourteen + (temp_f2 / (eighteen + (temp_f2 / 22))))))))); + return func_80091A6C((temp_f2 + arg0) / (temp_f2 - arg0), temp_f10); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009195C.s") @@ -3262,6 +3259,18 @@ block_35: } } } + /* + Looks something like below, with some continue/break conditions thrown in + for (var_s3 = arg5; var_s3 < arg7; var_s3 += var_a2) { + for (var_a1_2 = arg4; var_a1_2 < arg6; var_a1_2 += sp70) { + gDPLoadTextureTile(displayListHead++, argA, arg1, G_IM_SIZ_16b, argB, 0, + var_a1_2, var_s3, var_a1_2 + var_s2, var_s3 + var_s4, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, sp68, sp64, G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(displayListHead++, arg8 * 4, var_ra * 4, (arg8 + var_s2) * 4, (var_ra + var_s4) * 4, 0, + var_a1_2 * 32, var_s3 * 32, arg2, arg3); + } + } + */ } return var_a0; } @@ -4708,151 +4717,205 @@ void *segmented_to_virtual_dupe_2(const void *addr) { return (void *) ((gSegmentTable[segment] + offset) + 0x80000000); } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern u8 *D_8018D9B4; - +#ifdef NON_MATCHING +// Register allocation nonsense void func_80099184(MkTexture *arg0) { - s32 temp_t2; - s32 temp_t3; - s32 var_a1; - s32 var_a1_2; + u16 var_a1_2; s32 var_v0; - u16 temp_v0_2; - u64 *temp_a0; - u64 *temp_t9; - void *temp_v0; - void *var_s1; + s32 var_a1; + s32 temp_s3; + MkTexture *var_s1; + struct_8018E118_entry *thing; - temp_v0 = segmented_to_virtual_dupe(arg0); - var_s1 = temp_v0; - if (temp_v0->unk4 != 0) { - do { - var_a1 = 0; - var_v0 = 0; - if (gNumD_8018E118Entries > 0) { -loop_4: - temp_t9 = D_8018E118[var_v0].textureData; - var_v0 += 1; - if (temp_t9 == var_s1->unk4) { - var_a1 = 1; - } else if (var_v0 < gNumD_8018E118Entries) { - goto loop_4; - } + var_s1 = segmented_to_virtual_dupe(arg0); + while (var_s1->textureData != NULL) { + var_a1 = 0; + for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { + // wtf is going on here? + if (D_8018E118[var_v0^0].textureData == (*var_s1).textureData) { + var_a1 = 1; + break; } - if (var_a1 == 0) { - temp_a0 = var_s1->unk4; - if (var_s1->unk0 == 3) { - temp_v0_2 = var_s1->unk10; - var_a1_2 = 0x1000; - if (temp_v0_2 != 0) { - var_a1_2 = temp_v0_2 & 0xFFFF; - } - if ((var_a1_2 % 8) != 0) { - var_a1_2 = (((var_a1_2 / 8) * 8) + 8) & 0xFFFF; - } - dma_copy_base_729a30(temp_a0, (u32) var_a1_2, D_8018D9B4); - mio0decode(D_8018D9B4, (gD_8018E118TotalSize * 2) + D_8018D9B0); + } + if (var_a1 == 0) { + if (var_s1->type == 3) { + if (var_s1->size != 0) { + var_a1_2 = var_s1->size; } else { - dma_copy_base_729a30(temp_a0, var_s1->unkA * var_s1->unk8 * 2, (gD_8018E118TotalSize * 2) + D_8018D9B0); + var_a1_2 = 0x1000; } - D_8018E118[gNumD_8018E118Entries].textureData = var_s1->unk4; - D_8018E118[gNumD_8018E118Entries].offset = gD_8018E118TotalSize; - gNumD_8018E118Entries += 1; - temp_t3 = gD_8018E118TotalSize + (var_s1->unkA * var_s1->unk8); - gD_8018E118TotalSize = temp_t3; - gD_8018E118TotalSize = ((temp_t3 / 8) * 8) + 8; + if (var_a1_2 % 8) { + var_a1_2 = ((var_a1_2 / 8) * 8) + 8; + } + dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4); + mio0decode(D_8018D9B4, &D_8018D9B0[gD_8018E118TotalSize]); + } else { + dma_copy_base_729a30(var_s1->textureData, var_s1->height * var_s1->width * 2, &D_8018D9B0[gD_8018E118TotalSize]); } - temp_t2 = var_s1->unk18; - var_s1 += 0x14; - } while (temp_t2 != 0); + + D_8018E118[gNumD_8018E118Entries].textureData = var_s1->textureData; + D_8018E118[gNumD_8018E118Entries].offset = gD_8018E118TotalSize; + + gD_8018E118TotalSize += (var_s1->height * var_s1->width); + gNumD_8018E118Entries += 1; + gD_8018E118TotalSize = ((gD_8018E118TotalSize / 8) * 8) + 8; + } + var_s1++; } } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099184.s") #endif +#ifdef NON_MATCHING +// Register allocation nonsense +void func_80099394(MkTexture *arg0) { + u16 var_a1_2; + s32 var_v0; + s32 var_a1; + s32 temp_s3; + MkTexture *var_s1; + struct_8018E118_entry *thing; + + var_s1 = segmented_to_virtual_dupe(arg0); + while (var_s1->textureData != NULL) { + var_a1 = 0; + for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { + // wtf is going on here? + if (D_8018E118[var_v0^0].textureData == (*var_s1).textureData) { + var_a1 = 1; + break; + } + } + if (var_a1 == 0) { + if (var_s1->type == 5) { + dma_copy_base_729a30(var_s1->textureData, (u32) ((s32) (var_s1->height * var_s1->width) / 2), &D_8018D9B0[gD_8018E118TotalSize]); + } + + thing = &D_8018E118[gNumD_8018E118Entries]; + thing->textureData = var_s1->textureData; + thing = &D_8018E118[gNumD_8018E118Entries]; + thing->offset = gD_8018E118TotalSize; + + gD_8018E118TotalSize += (var_s1->height * var_s1->width); + gD_8018E118TotalSize = ((gD_8018E118TotalSize / 8) * 8) + 8; + gNumD_8018E118Entries += 1; + } + var_s1++; + } +} +#else +GLOBAL_ASM("asm/non_matchings/code_80091750/func_80099394.s") +#endif + +#ifdef NON_MATCHING +// Register allocation nonsense +void func_8009952C(MkTexture *arg0) { + u16 var_a1_2; + s32 var_v0; + s32 var_a1; + s32 temp_s3; + MkTexture *var_s1; + struct_8018E118_entry *thing; + + var_s1 = segmented_to_virtual_dupe(arg0); + while (var_s1->textureData != NULL) { + var_a1 = 0; + for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { + // wtf is going on here? + if (D_8018E118[var_v0^0].textureData == (*var_s1).textureData) { + var_a1 = 1; + break; + } + } + if (var_a1 == 0) { + dma_copy_base_729a30(var_s1->textureData, 0x00008000U, D_8018D9B4); + mio0decode(D_8018D9B4, &D_8018D9B0[gD_8018E118TotalSize]); + + thing = &D_8018E118[gNumD_8018E118Entries]; + thing->textureData = var_s1->textureData; + thing = &D_8018E118[gNumD_8018E118Entries]; + thing->offset = gD_8018E118TotalSize; + + gD_8018E118TotalSize += (var_s1->height * var_s1->width); + gD_8018E118TotalSize = ((gD_8018E118TotalSize / 8) * 8) + 8; + gNumD_8018E118Entries += 1; + } + var_s1++; + } +} +#else +GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009952C.s") +#endif + void func_8009969C(MkTexture *arg0) { func_800996BC(arg0, 1); } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -? tkmk00decode(u8 *, s32, s32, ?); /* extern */ -extern u8 *D_8018D9B4; -extern s32 D_8018D9B8; - +#ifdef NON_MATCHING +// Register allocation nonsense void func_800996BC(MkTexture *arg0, s32 arg1) { - ? var_v0_2; - s16 var_a1; - s32 temp_t0; - s32 temp_t7; - s32 var_a1_2; + u16 var_a1_2; s32 var_v0; - u16 temp_v0_2; - u64 *temp_t9; - void *temp_v0; - void *var_s0; + s32 var_a1; + u8 var_v0_2; + MkTexture *var_s1; + struct_8018E118_entry *thing; - temp_v0 = segmented_to_virtual_dupe(arg0); - var_s0 = temp_v0; - if (temp_v0->unk4 != 0) { - do { - var_a1 = 0; - var_v0 = 0; - if (gNumD_8018E118Entries > 0) { -loop_4: - temp_t9 = D_8018E118[var_v0].textureData; - var_v0 += 1; - if (temp_t9 == var_s0->unk4) { - var_a1 = 1; - } else if (var_v0 < gNumD_8018E118Entries) { - goto loop_4; - } + var_s1 = segmented_to_virtual_dupe(arg0); + while (var_s1->textureData != NULL) { + var_a1 = 0; + for (var_v0 = 0; var_v0 < gNumD_8018E118Entries; var_v0++) { + // wtf is going on here? + if (D_8018E118[var_v0^0].textureData == (*var_s1).textureData) { + var_a1 = 1; + break; } - if ((var_a1 == 0) || (arg1 > 0)) { - temp_v0_2 = var_s0->unk10; + } + if ((var_a1 == 0) || (arg1 > 0)) { + if (var_s1->size != 0) { + var_a1_2 = var_s1->size; + } else { var_a1_2 = 0x1000; - if (temp_v0_2 != 0) { - var_a1_2 = temp_v0_2 & 0xFFFF; - } - if ((var_a1_2 % 8) != 0) { - var_a1_2 = (((var_a1_2 / 8) * 8) + 8) & 0xFFFF; - } - switch (arg1) { /* irregular */ - case -1: - case 1: - dma_copy_base_729a30(var_s0->unk4, (u32) var_a1_2, D_8018D9B4); - break; - case 0: - case 2: - dma_copy_base_7fa3c0(var_s0->unk4, (u32) var_a1_2, D_8018D9B4); - break; - } - switch (arg1) { /* switch 1; irregular */ - case -1: /* switch 1 */ - case 1: /* switch 1 */ - mio0decode(D_8018D9B4, (gD_8018E118TotalSize * 2) + D_8018D9B0); - break; - case 0: /* switch 1 */ - case 2: /* switch 1 */ - var_v0_2 = 1; - if (var_s0->unk0 == 1) { - var_v0_2 = 0xBE; - } - tkmk00decode(D_8018D9B4, D_8018D9B8, (gD_8018E118TotalSize * 2) + D_8018D9B0, var_v0_2); - break; - } - D_8018E118[gNumD_8018E118Entries].textureData = var_s0->unk4; - D_8018E118[gNumD_8018E118Entries].offset = gD_8018E118TotalSize; - gNumD_8018E118Entries += 1; - temp_t0 = gD_8018E118TotalSize + (var_s0->unkA * var_s0->unk8); - gD_8018E118TotalSize = temp_t0; - gD_8018E118TotalSize = ((temp_t0 / 8) * 8) + 8; } - temp_t7 = var_s0->unk18; - var_s0 += 0x14; - } while (temp_t7 != 0); + if ((var_a1_2 % 8)) { + var_a1_2 = (((var_a1_2 / 8) * 8) + 8); + } + switch (arg1) { /* irregular */ + case -1: + case 1: + dma_copy_base_729a30(var_s1->textureData, var_a1_2, D_8018D9B4); + break; + case 0: + case 2: + dma_copy_base_7fa3c0(var_s1->textureData, var_a1_2, D_8018D9B4); + break; + } + switch (arg1) { /* switch 1; irregular */ + case -1: /* switch 1 */ + case 1: /* switch 1 */ + mio0decode(D_8018D9B4, &D_8018D9B0[gD_8018E118TotalSize]); + break; + case 0: /* switch 1 */ + case 2: /* switch 1 */ + if (var_s1->type == 1) { + var_v0_2 = 0x000000BE; + } else { + var_v0_2 = 1; + } + if (1) {} + tkmk00decode(D_8018D9B4, D_8018D9B8, &D_8018D9B0[gD_8018E118TotalSize], var_v0_2); + break; + } + thing = &D_8018E118[gNumD_8018E118Entries]; + thing->textureData = var_s1->textureData; + thing = &D_8018E118[gNumD_8018E118Entries]; + thing->offset = gD_8018E118TotalSize; + gD_8018E118TotalSize += var_s1->height * var_s1->width; + gD_8018E118TotalSize = ((gD_8018E118TotalSize / 8) * 8) + 8; + gNumD_8018E118Entries += 1; + } + var_s1++; } } #else @@ -4860,38 +4923,32 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800996BC.s") #endif #ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern u8 *D_8018D9B4; - +// Note that as it stands this function is NOT functionally identical +// However the diff is tiny and there's not really much left to be done +// A potential match found by Vetri: https://decomp.me/scratch/fnW6S +// The only problem with it is that it requires modifying D_802BFB80's dimesnions +// and that seems really really wrong. But a match is a match, so it demands +// more investigation. void func_80099958(MkTexture *arg0, s32 arg1, s32 arg2) { - s32 var_a1; - u16 temp_v0_2; - u64 *temp_t6; - u64 *var_a0; - u8 *temp_s2; - void *temp_v0; - void *var_s0; + u16 var_a1; + u8 *thing; + MkTexture *temp_v0; temp_v0 = segmented_to_virtual_dupe(arg0); - temp_t6 = temp_v0->unk4; - var_s0 = temp_v0; - var_a0 = temp_t6; - if (temp_t6 != NULL) { - temp_s2 = &D_802BFB80[0][0][4].pixel_index_array[(arg2 << 0x10) + ((arg1 / 2) << 0xF) + ((arg1 % 2) << 0xD)]; - do { - temp_v0_2 = var_s0->unk10; + while (temp_v0->textureData != NULL) { + if (temp_v0->size != 0) { + var_a1 = temp_v0->size; + } else { var_a1 = 0x1400; - if (temp_v0_2 != 0) { - var_a1 = temp_v0_2 & 0xFFFF; - } - if ((var_a1 % 8) != 0) { - var_a1 = (((var_a1 / 8) * 8) + 8) & 0xFFFF; - } - dma_copy_base_729a30(var_a0, (u32) var_a1, D_8018D9B4); - mio0decode(D_8018D9B4, temp_s2); - var_a0 = var_s0->unk18; - var_s0 += 0x14; - } while (var_a0 != NULL); + } + if (var_a1 % 8) { + // Round up to the next multiple of eight + var_a1 = ((var_a1 / 8) * 8) + 8; + } + dma_copy_base_729a30(temp_v0->textureData, var_a1, D_8018D9B4); + // `arg1 % 2` needs to be multiplied by 2, but doing that causes a large diff + mio0decode(D_8018D9B4, D_802BFB80[arg2][arg1 / 2][(arg1 % 2) + 4].pixel_index_array); + temp_v0++; } } #else @@ -5328,272 +5385,149 @@ MkTexture *func_8009A944(struct_8018DEE0_entry *arg0, s32 arg1) { return arg0->textureSequence[arg0->sequenceIndex].mk64Texture; } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 void func_8009A9FC(s32 arg0, s32 arg1, u32 arg2, s32 arg3) { - s32 temp_t6; - s32 temp_t7; - s32 temp_t8; + s32 red; + s32 green; + s32 blue; + s32 newred; + s32 newgreen; + s32 newblue; + s32 alpha; s32 temp_t9; - u16 *var_v0; u16 temp_a0; - u32 var_t1; - void *var_t0; + s32 var_t1; + u16 *color0; + u16 *color1; - var_v0 = (D_8018E118[arg0].offset * 2) + D_8018D9B0; - var_t1 = 0; - var_t0 = (D_8018E118[arg1].offset * 2) + D_8018D9B0; - if (arg2 != 0) { - do { - temp_a0 = *var_v0; - var_t1 += 1; - var_v0 += 2; - temp_t6 = (s32) (temp_a0 & 0xF800) >> 0xB; - temp_t7 = (s32) (temp_a0 & 0x7C0) >> 6; - temp_t8 = (s32) (temp_a0 & 0x3E) >> 1; - var_t0 += 2; - temp_t9 = (s32) ((temp_t6 * 0x4D) + (temp_t7 * 0x96) + (temp_t8 * 0x1D)) >> 8; - var_t0->unk-2 = (s16) (((((s32) ((((s32) (temp_t9 * 6) / 8) - temp_t8) * arg3) >> 8) + temp_t8) * 2) + ((((s32) ((((s32) (temp_t9 * 7) / 8) - temp_t7) * arg3) >> 8) + temp_t7) << 6) + ((((s32) ((temp_t9 - temp_t6) * arg3) >> 8) + temp_t6) << 0xB) + (temp_a0 & 1)); - } while (var_t1 < arg2); + color0 = &D_8018D9B0[D_8018E118[arg0].offset]; + color1 = &D_8018D9B0[D_8018E118[arg1].offset]; + for (var_t1 = 0; var_t1 < arg2; var_t1++) { + temp_a0 = *color0++; + red = (temp_a0 & 0xF800) >> 0xB; + green = (temp_a0 & 0x7C0) >> 6; + blue = (temp_a0 & 0x3E) >> 1; + alpha = temp_a0 & 0x1; + if (alpha) {} + temp_t9 = ((red * 0x4D) + (green * 0x96) + (blue * 0x1D)) >> 8; + newred = (((((temp_t9 - red) * arg3) >> 8) + red) << 0xB); + newgreen = (((((((temp_t9 * 7) / 8) - green) * arg3) >> 8) + green) << 6); + newblue = (((((((temp_t9 * 6) / 8) - blue) * arg3) >> 8) + blue) << 1); + *color1++ = newblue + newgreen + newred + alpha; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009A9FC.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern ? D_8018E11C; void func_8009AB7C(s32 arg0) { - s32 var_v1; - u16 *var_v0; - u16 temp_a1; - u16 temp_a1_2; - u16 temp_a1_3; - u16 temp_a1_4; - - var_v1 = 0; - var_v0 = (*(&D_8018E11C + (arg0 * 8)) * 2) + D_8018D9B0; - do { - temp_a1 = *var_v0; - var_v1 += 4; - var_v0 += 8; - temp_a1_2 = var_v0->unk-6; - var_v0->unk-8 = (s16) ((((u32) ((((s32) (temp_a1 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1 & 1)); - temp_a1_3 = var_v0->unk-4; - var_v0->unk-6 = (u16) ((((u32) ((((s32) (temp_a1_2 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1_2 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1_2 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1_2 & 1)); - temp_a1_4 = var_v0->unk-2; - var_v0->unk-4 = (u16) ((((u32) ((((s32) (temp_a1_3 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1_3 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1_3 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1_3 & 1)); - var_v0->unk-2 = (u16) ((((u32) ((((s32) (temp_a1_4 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1_4 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1_4 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1_4 & 1)); - } while (var_v1 != 0x4B000); -} -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009AB7C.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -void func_8009AD78(s32 arg0, s32 arg1) { - s32 temp_a2; - s32 temp_a3; - s32 temp_v1_2; - s32 var_t0; - struct_8018E118_entry *temp_v1; - u16 *var_v0; - u16 temp_a0; - u16 temp_a0_2; - u16 temp_a0_3; - u16 temp_a0_4; - u16 temp_a0_5; - u32 temp_t6; - u32 temp_t6_2; - u32 temp_t7; - u32 temp_t8; + s32 red; + s32 green; + s32 blue; + s32 alpha; + s32 newred; + s32 newgreen; + s32 newblue; u32 temp_t9; + s32 var_v1; + u16 *color; - temp_v1 = &D_8018E118[arg0]; - temp_a2 = temp_v1->offset; - temp_a3 = temp_v1->unkC - temp_a2; - var_t0 = 0; - var_v0 = (temp_a2 * 2) + D_8018D9B0; - if (temp_a3 != 0) { - temp_v1_2 = temp_a3 & 3; - if (temp_v1_2 != 0) { - do { - temp_a0 = *var_v0; - var_t0 += 1; - var_v0 += 2; - temp_t6 = (u32) ((((s32) (temp_a0 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-2 = (s16) (((temp_t6 + ((u32) ((0x20 - temp_t6) * arg1) >> 8)) * 0x842) + (temp_a0 & 1)); - } while (temp_v1_2 != var_t0); - if (var_t0 != temp_a3) { - goto block_5; - } - } else { -block_5: - do { - temp_a0_2 = *var_v0; - var_t0 += 4; - var_v0 += 8; - temp_a0_3 = var_v0->unk-6; - temp_t7 = (u32) ((((s32) (temp_a0_2 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_2 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_2 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-8 = (s16) (((temp_t7 + ((u32) ((0x20 - temp_t7) * arg1) >> 8)) * 0x842) + (temp_a0_2 & 1)); - temp_a0_4 = var_v0->unk-4; - temp_t8 = (u32) ((((s32) (temp_a0_3 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_3 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_3 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-6 = (u16) (((temp_t8 + ((u32) ((0x20 - temp_t8) * arg1) >> 8)) * 0x842) + (temp_a0_3 & 1)); - temp_a0_5 = var_v0->unk-2; - temp_t9 = (u32) ((((s32) (temp_a0_4 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_4 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_4 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-4 = (u16) (((temp_t9 + ((u32) ((0x20 - temp_t9) * arg1) >> 8)) * 0x842) + (temp_a0_4 & 1)); - temp_t6_2 = (u32) ((((s32) (temp_a0_5 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_5 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_5 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-2 = (u16) (((temp_t6_2 + ((u32) ((0x20 - temp_t6_2) * arg1) >> 8)) * 0x842) + (temp_a0_5 & 1)); - } while (var_t0 != temp_a3); - } + color = &D_8018D9B0[D_8018E118[arg0].offset]; + for (var_v1 = 0; var_v1 < 0x4B000; var_v1++) { + red = ((*color & 0xF800) >> 0xB) * 0x4D; + green = ((*color & 0x7C0) >> 6) * 0x96; + blue = ((*color & 0x3E) >> 1) * 0x1D; + alpha = *color & 0x1; + temp_t9 = red + green + blue; + temp_t9 >>= 8; + newred = temp_t9 << 0xB; + newgreen = temp_t9 << 6; + newblue = temp_t9 << 1; + *color++ = newblue + newgreen + newred + alpha; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009AD78.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -f64 func_800917B0(f64, f64); /* extern */ +void func_8009AD78(s32 arg0, s32 arg1) { + s32 red; + s32 green; + s32 blue; + s32 alpha; + s32 newred; + s32 newgreen; + s32 newblue; + u32 temp_t9; + s32 var_v1; + s32 size; + u16 temp_a0; + u16 *color; -void func_8009B0A4(s32 D_8018E118_index, s32 arg1) { - f32 *var_s1; - f64 var_f10; - f64 var_f6; - s16 *temp_a3; - s32 temp_t5; - s32 temp_v1; - s32 var_s0; - s32 var_s0_2; - struct_8018E118_entry *temp_v0; - u16 *var_a3; - u16 temp_v0_2; - u16 temp_v0_3; - u16 temp_v0_4; - u32 var_v1; - u32 var_v1_2; - u32 var_v1_3; - - var_s0 = 0; - var_f6 = (f64) arg1; - if (arg1 < 0) { - var_f6 += 4294967296.0; - } - var_s1 = &sp48[0]; - do { - var_f10 = (f64) var_s0; - if (var_s0 < 0) { - var_f10 += 4294967296.0; - } - var_s0 += 1; - var_s1 += 4; - var_s1->unk-4 = (f32) func_800917B0(var_f10 * 0.03125, (var_f6 * 1.5 * 0.00390625) + 0.25); - } while ((u32) var_s0 < 0x20U); - temp_v0 = &D_8018E118[D_8018E118_index]; - temp_v1 = temp_v0->offset; - temp_t5 = temp_v0->unkC - temp_v1; - var_s0_2 = 0; - var_a3 = (temp_v1 * 2) + D_8018D9B0; - if (temp_t5 != 0) { - if (temp_t5 & 1) { - temp_v0_2 = *var_a3; - var_s0_2 = 1; - var_v1 = (u32) ((&sp48[0])[(u32) ((((s32) (temp_v0_2 & 0xF800) >> 0xB) * 0x55) + (((s32) (temp_v0_2 & 0x7C0) >> 6) * 0x4B) + (((s32) (temp_v0_2 & 0x3E) >> 1) * 0x5F)) >> 8] * 32.0f); - if (var_v1 >= 0x20U) { - var_v1 = 0x0000001F; - } - *var_a3 = (var_v1 * 0x842) + (temp_v0_2 & 1); - var_a3 += 2; - if (temp_t5 != 1) { - goto block_11; - } - } else { -block_11: - do { - temp_v0_3 = var_a3->unk0; - var_s0_2 += 2; - var_v1_2 = (u32) ((&sp48[0])[(u32) ((((s32) (temp_v0_3 & 0xF800) >> 0xB) * 0x55) + (((s32) (temp_v0_3 & 0x7C0) >> 6) * 0x4B) + (((s32) (temp_v0_3 & 0x3E) >> 1) * 0x5F)) >> 8] * 32.0f); - if (var_v1_2 >= 0x20U) { - var_v1_2 = 0x0000001F; - } - temp_v0_4 = var_a3->unk2; - var_a3->unk0 = (var_v1_2 * 0x842) + (temp_v0_3 & 1); - temp_a3 = var_a3 + 2; - var_v1_3 = (u32) ((&sp48[0])[(u32) ((((s32) (temp_v0_4 & 0xF800) >> 0xB) * 0x55) + (((s32) (temp_v0_4 & 0x7C0) >> 6) * 0x4B) + (((s32) (temp_v0_4 & 0x3E) >> 1) * 0x5F)) >> 8] * 32.0f); - if (var_v1_3 >= 0x20U) { - var_v1_3 = 0x0000001F; - } - *temp_a3 = (var_v1_3 * 0x842) + (temp_v0_4 & 1); - var_a3 = temp_a3 + 2; - } while (var_s0_2 != temp_t5); - } + color = &D_8018D9B0[D_8018E118[arg0].offset]; + size = D_8018E118[arg0 + 1].offset - D_8018E118[arg0].offset; + for (var_v1 = 0; var_v1 != size; var_v1++) { + red = ((*color & 0xF800) >> 0xB) * 0x4D; + green = ((*color & 0x7C0) >> 6) * 0x96; + blue = ((*color & 0x3E) >> 1) * 0x1D; + alpha = *color & 0x1; + temp_t9 = red + green + blue; + temp_t9 = temp_t9 >> 8; + temp_t9 += ((0x20 - temp_t9) * arg1) >> 8; + *color++ = (temp_t9 << 1) + (temp_t9 << 6) + (temp_t9 << 0xB) + alpha; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009B0A4.s") -#endif -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -extern ? D_8018E11C; +void func_8009B0A4(s32 arg0, u32 arg1) { + u32 var_s0; + s32 red; + s32 green; + s32 blue; + s32 alpha; + u32 temp_t9; + s32 size; + u16 *color; + f32 sp48[0x20]; + + for (var_s0 = 0; var_s0 < 0x20; var_s0++) { + sp48[var_s0] = func_800917B0(var_s0 * 0.03125, (arg1 * 1.5 * 0.00390625) + 0.25); + } + color = &D_8018D9B0[D_8018E118[arg0].offset]; + size = D_8018E118[arg0 + 1].offset - D_8018E118[arg0].offset; + for (var_s0 = 0; var_s0 < size; var_s0++) { + red = ((*color & 0xF800) >> 0xB) * 0x55; + green = ((*color & 0x7C0) >> 6) * 0x4B; + blue = ((*color & 0x3E) >> 1) * 0x5F; + alpha = *color & 0x1; + temp_t9 = red + green + blue; + temp_t9 >>= 8; + temp_t9 = sp48[temp_t9] * 32.0f; + if (temp_t9 >= 0x20) { + temp_t9 = 0x1F; + } + *color++ = (temp_t9 << 1) + (temp_t9 << 6) + (temp_t9 << 0xB) + alpha; + } +} void func_8009B538(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { - s32 temp_a0; - s32 var_v1; - u16 *var_v0; - u16 temp_a2; - u16 temp_a2_2; - u16 temp_a2_3; - u16 temp_a2_4; - u16 temp_a2_5; - u32 temp_t6; - u32 temp_t8; - u32 temp_t8_2; + s32 red; + s32 green; + s32 blue; + s32 alpha; + s32 newred; + s32 newgreen; + s32 newblue; u32 temp_t9; - u32 temp_t9_2; + s32 var_v1; + u16 *color; - var_v1 = 0; - var_v0 = (*(&D_8018E11C + (arg0 * 8)) * 2) + D_8018D9B0; - if (arg1 != 0) { - temp_a0 = arg1 & 3; - if (temp_a0 != 0) { - do { - temp_a2 = *var_v0; - var_v1 += 1; - var_v0 += 2; - temp_t9 = (u32) ((((s32) (temp_a2 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a2 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a2 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-2 = (s16) ((((u32) (arg2 * temp_t9) >> 8) << 0xB) + (((u32) (arg3 * temp_t9) >> 8) << 6) + (((u32) (arg4 * temp_t9) >> 8) * 2) + (temp_a2 & 1)); - } while (temp_a0 != var_v1); - if (var_v1 != arg1) { - goto block_5; - } - } else { -block_5: - do { - temp_a2_2 = *var_v0; - var_v1 += 4; - var_v0 += 8; - temp_a2_3 = var_v0->unk-6; - temp_t8 = (u32) ((((s32) (temp_a2_2 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a2_2 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a2_2 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-8 = (s16) ((((u32) (arg2 * temp_t8) >> 8) << 0xB) + (((u32) (arg3 * temp_t8) >> 8) << 6) + (((u32) (arg4 * temp_t8) >> 8) * 2) + (temp_a2_2 & 1)); - temp_a2_4 = var_v0->unk-4; - temp_t6 = (u32) ((((s32) (temp_a2_3 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a2_3 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a2_3 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-6 = (u16) ((((u32) (arg2 * temp_t6) >> 8) << 0xB) + (((u32) (arg3 * temp_t6) >> 8) << 6) + (((u32) (arg4 * temp_t6) >> 8) * 2) + (temp_a2_3 & 1)); - temp_a2_5 = var_v0->unk-2; - temp_t9_2 = (u32) ((((s32) (temp_a2_4 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a2_4 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a2_4 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-4 = (u16) ((((u32) (arg2 * temp_t9_2) >> 8) << 0xB) + (((u32) (arg3 * temp_t9_2) >> 8) << 6) + (((u32) (arg4 * temp_t9_2) >> 8) * 2) + (temp_a2_4 & 1)); - temp_t8_2 = (u32) ((((s32) (temp_a2_5 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a2_5 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a2_5 & 0x3E) >> 1) * 0x1D)) >> 8; - var_v0->unk-2 = (u16) ((((u32) (arg2 * temp_t8_2) >> 8) << 0xB) + (((u32) (arg3 * temp_t8_2) >> 8) << 6) + (((u32) (arg4 * temp_t8_2) >> 8) * 2) + (temp_a2_5 & 1)); - } while (var_v1 != arg1); - } + color = &D_8018D9B0[D_8018E118[arg0].offset]; + for (var_v1 = 0; var_v1 != arg1; var_v1++) { + red = ((*color & 0xF800) >> 0xB) * 0x4D; + green = ((*color & 0x7C0) >> 6) * 0x96; + blue = ((*color & 0x3E) >> 1) * 0x1D; + alpha = *color & 0x1; + temp_t9 = red + green + blue; + temp_t9 = temp_t9 >> 8; + newred = ((temp_t9 * arg2) >> 8) << 0xB; + newgreen = ((temp_t9 * arg3) >> 8) << 6; + newblue = ((temp_t9 * arg4) >> 8) << 1; + *color++ = newred + newgreen + newblue + alpha; } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009B538.s") -#endif s32 func_8009B8C4(u64 *arg0) { UNUSED s32 pad[2]; @@ -5611,7 +5545,7 @@ s32 func_8009B8C4(u64 *arg0) { } if (found != 0) { - return D_8018D9B0 + (sp4 * 2); + return &D_8018D9B0[sp4]; } return 0; } @@ -5856,14 +5790,14 @@ Gfx *func_8009C434(Gfx *arg0, struct_8018DEE0_entry *arg1, s32 arg2, s32 arg3, s if (1) { } if (1) { } if (1) { } } if (arg4 >= 0) { - arg0 = func_80097E58(arg0, var_t1, 0, 0U, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, D_8018D9B0 + (var_t0* 2), var_s0->width, var_s0->height, (u32) arg4); + arg0 = func_80097E58(arg0, var_t1, 0, 0U, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, &D_8018D9B0[var_t0], var_s0->width, var_s0->height, (u32) arg4); } else { switch(arg4) { case -1: - arg0 = func_80095E10(arg0, var_t1, 0x00000400, 0x00000400, 0, 0, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, D_8018D9B0 + (var_t0* 2), var_s0->width, var_s0->height); + arg0 = func_80095E10(arg0, var_t1, 0x00000400, 0x00000400, 0, 0, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, &D_8018D9B0[var_t0], var_s0->width, var_s0->height); break; case -2: - arg0 = func_800963F0(arg0, var_t1, 0x00000400, 0x00000400, 0.5f, 0.5f, 0, 0, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, D_8018D9B0 + (var_t0* 2), var_s0->width, var_s0->height); + arg0 = func_800963F0(arg0, var_t1, 0x00000400, 0x00000400, 0.5f, 0.5f, 0, 0, var_s0->width, var_s0->height, var_s0->dX + arg2, var_s0->dY + arg3, &D_8018D9B0[var_t0], var_s0->width, var_s0->height); break; } } @@ -6545,133 +6479,71 @@ void func_8009D998(s32 arg0) { GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009D998.s") #endif -#ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-23-2023 -extern u32 D_8018E7C8; -extern ? D_8018E7D0; - void func_8009DAA8(void) { - Gfx *temp_v1; - u32 temp_t8; u32 var_t0; - temp_t8 = D_8018E7D0.unk10 + 1; - D_8018E7D0.unk10 = temp_t8; - if (temp_t8 >= (u32) (D_8018E7C8 + 1)) { + D_8018E7D0[4]++; + if (D_8018E7D0[4] >= (D_8018E7C8 + 1)) { func_8009CE64(4); } - temp_v1 = gDisplayListHead; - gDisplayListHead = temp_v1 + 8; - temp_v1->words.w1 = 0; - temp_v1->words.w0 = 0xE7000000; - var_t0 = (u32) (D_8018E7D0.unk10 * 0xFF) / (u32) D_8018E7C8; + gDPPipeSync(gDisplayListHead++); + var_t0 = (D_8018E7D0[4] * 255) / D_8018E7C8; if ((s32) var_t0 >= 0x100) { var_t0 = 0x000000FF; } gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x00000140, 0x000000F0, 0, 0, 0, (s32) var_t0); } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009DAA8.s") -#endif - -#ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-23-2023 -extern s32 D_8018D9B8; -extern u32 D_8018E7C8; -extern ? D_8018E7D0; void func_8009DB8C(void) { - Gfx *temp_a0; - Gfx *temp_a1; - Gfx *temp_a1_2; - Gfx *temp_a1_3; - Gfx *temp_v0_2; - Gfx *temp_v1; s32 temp_t4; s32 temp_t5; s32 var_s0; - s32 var_s0_2; - u32 temp_t7; - u32 temp_v0; u32 var_s3; - u32 var_v1; - void *temp_t8; + s32 var_v1; - temp_t7 = D_8018E7D0.unk10 + 1; - D_8018E7D0.unk10 = temp_t7; - temp_v0 = D_8018E7C8; - if (temp_t7 >= temp_v0) { - var_s0 = 0; - if (temp_t7 == temp_v0) { - do { - *(D_8018D9B8 + var_s0) = 1; - (D_8018D9B8 + var_s0)->unk1 = 1; - (D_8018D9B8 + var_s0)->unk2 = 1; - temp_t8 = D_8018D9B8 + var_s0; - var_s0 += 4; - temp_t8->unk3 = 1; - } while (var_s0 != 0x4B0); + D_8018E7D0[4]++; + // why? + var_v1 = D_8018E7D0[4]; + if (var_v1 >= D_8018E7C8) { + if (var_v1 == D_8018E7C8) { + for (var_s0 = 0; var_s0 < 0x4B0; var_s0++) { + D_8018D9B8[var_s0] = 1; + } } else { func_8009CE64(4); } - goto block_14; - } - var_s0_2 = 0; - var_s3 = 0; - if ((0x4B0U / temp_v0) != 0) { - do { - if ((*(D_8018D9B8 + var_s0_2) == 0) && (random_int(((u32) (0x4B0U - D_8018E7D0.unk10) / temp_v0) & 0xFFFF) == 0)) { + } else { + var_s0 = 0; + var_s3 = 0; + while (var_s3 < (0x4B0U / D_8018E7C8)) { + if ((D_8018D9B8[var_s0] == 0) && (random_int((0x4B0U - D_8018E7D0[4]) / D_8018E7C8) == 0)) { var_s3 += 1; - *(D_8018D9B8 + var_s0_2) = 1; + D_8018D9B8[var_s0] = 1; } - var_s0_2 += 1; - if (var_s0_2 >= 0x4B0) { - var_s0_2 = 0; + var_s0 += 1; + if (var_s0 >= 0x4B0) { + var_s0 = 0; } - } while (var_s3 < (u32) (0x4B0U / (u32) D_8018E7C8)); -block_14: - var_s0_2 = 0; - } - temp_v0_2 = gDisplayListHead; - gDisplayListHead = temp_v0_2 + 8; - temp_v0_2->words.w1 = 0; - temp_v0_2->words.w0 = 0xE7000000; - temp_v1 = gDisplayListHead; - gDisplayListHead = temp_v1 + 8; - temp_v1->words.w0 = 0xB900031D; - temp_v1->words.w1 = 0x00504240; - temp_a0 = gDisplayListHead; - gDisplayListHead = temp_a0 + 8; - temp_a0->words.w1 = 0x000000FF; - temp_a0->words.w0 = 0xFA000000; - temp_a1 = gDisplayListHead; - gDisplayListHead = temp_a1 + 8; - temp_a1->words.w1 = 0xFFFDF6FB; - temp_a1->words.w0 = 0xFCFFFFFF; - do { - if (*(D_8018D9B8 + var_s0_2) != 0) { - temp_a1_2 = gDisplayListHead; - temp_t4 = (var_s0_2 % 40) * 8; - gDisplayListHead = temp_a1_2 + 8; - temp_t5 = (var_s0_2 / 40) * 8; - temp_a1_2->words.w1 = ((temp_t4 & 0x3FF) << 0xE) | ((temp_t5 & 0x3FF) * 4); - temp_a1_2->words.w0 = (((temp_t4 + 8) & 0x3FF) << 0xE) | 0xF6000000 | (((temp_t5 + 8) & 0x3FF) * 4); } - var_s0_2 += 1; - } while (var_s0_2 != 0x4B0); - temp_a1_3 = gDisplayListHead; - gDisplayListHead = temp_a1_3 + 8; - temp_a1_3->words.w1 = 0; - temp_a1_3->words.w0 = 0xE7000000; - var_v1 = (u32) (D_8018E7D0.unk10 * 0x000000FFU) / (u32) D_8018E7C8; - if ((s32) var_v1 >= 0x100) { + } + gDPPipeSync(gDisplayListHead++); + gDPSetRenderMode(gDisplayListHead++, G_RM_XLU_SURF, G_RM_XLU_SURF2); + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, 0xFF); + gDPSetCombineMode(gDisplayListHead++, G_CC_PRIMITIVE, G_CC_PRIMITIVE); + for (var_s0 = 0; var_s0 < 0x4B0; var_s0++) { + if (D_8018D9B8[var_s0] != 0) { + temp_t4 = (var_s0 % 40) * 8; + temp_t5 = (var_s0 / 40) * 8; + gDPFillRectangle(gDisplayListHead++, temp_t4, temp_t5, temp_t4 + 8, temp_t5 + 8); + } + } + gDPPipeSync(gDisplayListHead++); + var_v1 = (D_8018E7D0[4] * 255) / D_8018E7C8; + if (var_v1 >= 0x100) { var_v1 = 0x000000FF; } - gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x00000140, 0x000000F0, 0, 0, 0, (s32) var_v1); + gDisplayListHead = draw_box(gDisplayListHead, 0, 0, 0x00000140, 0x000000F0, 0, 0, 0, var_v1); } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009DB8C.s") -#endif void func_8009DEF8(u32 arg0, u32 arg1) { if (arg0 == 0) { @@ -6753,35 +6625,32 @@ void func_8009E088(s32 arg0, s32 arg1) { } } -#ifdef MIPS_TO_C -//generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Dec-23-2023 -extern s32 D_8018D9B8; - void func_8009E0F0(s32 arg0) { s32 var_v0; - void *temp_t6; - if (D_8018E7AC->unk4 != 3) { - D_8018E7AC->unk4 = 3; - D_8018E7B8->unk10 = arg0; - if ((u32) arg0 >= 0x100U) { - D_8018E7B8->unk10 = 0x000000FF; + if (D_8018E7AC[4] != 3) { + D_8018E7AC[4] = 3; + D_8018E7B8[4] = arg0; + if (D_8018E7B8[4] >= 0x100U) { + D_8018E7B8[4] = 0x000000FF; + } + D_8018E7E0 = 0; + for (var_v0 = 0; var_v0 < 0x4B0; var_v0++) { + D_8018D9B8[var_v0] = 0; + } + } +} + +void func_8009E17C(u32 arg0) { + if (D_8018E7AC[4] != 4) { + D_8018E7AC[4] = 4; + D_8018E7B8[4] = arg0; + if (D_8018E7B8[4] >= 0x100U) { + D_8018E7B8[4] = 0x000000FFU; } D_8018E7E0 = 0; - var_v0 = 0; - do { - *(D_8018D9B8 + var_v0) = 0; - (D_8018D9B8 + var_v0)->unk1 = 0; - (D_8018D9B8 + var_v0)->unk2 = 0; - temp_t6 = D_8018D9B8 + var_v0; - var_v0 += 4; - temp_t6->unk3 = 0; - } while (var_v0 != 0x4B0); } } -#else -GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009E0F0.s") -#endif void func_8009E1C0(void) { func_8009DFE0(10); @@ -7927,71 +7796,49 @@ void func_800A0AD0(UNUSED struct_8018D9E0_entry *arg0) { } } -#ifdef MIPS_TO_C -//generated by m2c commit eefca95b040d7ee0c617bc58f9ac6cd1cf7bce87 on Sep-01-2023 -//extern ? D_8018EB34; - +#ifdef NON_MATCHING +// There's something going on with the accessing of D_800E86C4 that's causing lots of issues +// Also, the `(D_800E86C4[var_s5] % 10) + 0x10` stuff is doing something weird with the %, +// lots of instruction ordering issues void func_800A0B80(struct_8018D9E0_entry *arg0) { - ? *temp_s4; - Gfx *temp_v1; - Gfx *temp_v1_2; s32 temp_a2; s32 temp_s1; - s32 temp_s1_2; s32 temp_s2; s32 var_s1; s32 var_s5; - s8 *var_s6; - s8 temp_v0; - s8 temp_v0_2; - u32 var_s0; + s32 var_s0; + OSPfsState *temp_s4; - temp_v1 = gDisplayListHead; - gDisplayListHead = temp_v1 + 8; - var_s6 = D_800E86C4; - var_s5 = 0; - temp_v1->words.w1 = 0x000032FF; - temp_v1->words.w0 = 0xFA000000; - do { - temp_v0 = *var_s6; - if (temp_v0 != 0) { - temp_s1 = var_s5 * 0xA; - temp_a2 = arg0->row + temp_s1 + 1; - if (temp_v0 < 0xA) { - func_800A08D8((temp_v0 + 0x10) & 0xFF, 0x00000032, temp_a2); - } else { - func_800A08D8(((temp_v0 % 10) + 0x10) & 0xFF, 0x00000035, temp_a2); - func_800A08D8(0x11U, 0x0000002F, arg0->row + temp_s1 + 1); - } - temp_v0_2 = *var_s6; - temp_s2 = arg0->row + temp_s1 + 1; - // Note this appears to actually be the very end of pfsState - // Perhaps 8018E938[temp_v0_2].game_name[15]. - // It must be a fake ptr. - if (*(&D_8018EB34 + (temp_v0_2 * 4)) == 0) { + gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x32, 0xFF); + for (var_s5 = 0; var_s5 < 9; var_s5++) { + if (D_800E86C4[var_s5] == 0) continue; - temp_s4 = &pfsState[temp_v0_2].unk-20; - temp_s1_2 = func_800A095C(temp_s4 + 0xE, 0x00000010, 0x0000004F, temp_s2) * 8; - if (temp_s4->unkA != 0) { - func_800A08D8(0x3CU, temp_s1_2 + 0x4F, temp_s2); - func_800A08D8((u8) temp_s4->unkA, temp_s1_2 + 0x57, temp_s2); - } - var_s1 = 0x10; - var_s0 = (u32) (temp_s4->unk0 + 0xFF) >> 8; - do { - func_800A08D8((((s32) var_s0 % 10) + 0x10) & 0xFF, var_s1 + 0xFD, temp_s2); - var_s0 = (u32) ((s32) var_s0 / 10); - var_s1 -= 8; - } while (var_s0 != 0); - } + temp_s1 = var_s5 * 0xA; + if (D_800E86C4[var_s5] < 0xA) { + func_800A08D8((D_800E86C4[var_s5] + 0x10), 0x00000032, arg0->row + temp_s1 + 1); + } else { + func_800A08D8(((D_800E86C4[var_s5] % 10) + 0x10), 0x00000035, arg0->row + temp_s1 + 1); + func_800A08D8(0x11U, 0x0000002F, arg0->row + temp_s1 + 1); } - var_s5 += 1; - var_s6 += 1; - } while (var_s5 != 9); - temp_v1_2 = gDisplayListHead; - gDisplayListHead = temp_v1_2 + 8; - temp_v1_2->words.w0 = 0xED000000; - temp_v1_2->words.w1 = 0x004FC3BC; + temp_s2 = arg0->row + temp_s1 + 1; + if (pfsError[D_800E86C4[var_s5] - 1] == 0) { + temp_s4 = &pfsState[D_800E86C4[var_s5] - 1]; + temp_s1 = func_800A095C(temp_s4->game_name, 0x00000010, 0x0000004F, temp_s2) * 8; + if (temp_s4->ext_name[0] != 0) { + func_800A08D8(0x3CU, temp_s1 + 0x4F, temp_s2); + func_800A08D8(temp_s4->ext_name[0], temp_s1 + 0x57, temp_s2); + } + var_s1 = 0x10; + var_s0 = (temp_s4->file_size + 0xFF) >> 8; + // An actual do-while loop, a rare beast in these parts + do { + func_800A08D8(((var_s0 % 10) + 0x10), var_s1 + 0xFD, temp_s2); + var_s0 /= 10; + var_s1 -= 8; + } while (var_s0 != 0); + } + } + gDPSetScissor(gDisplayListHead++, G_SC_NON_INTERLACE, 0, 0, 319, 239); } #else GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A0B80.s") diff --git a/src/code_80091750.h b/src/code_80091750.h index 3293a7d83..75cd2d37e 100644 --- a/src/code_80091750.h +++ b/src/code_80091750.h @@ -169,7 +169,10 @@ void func_8009A76C(s32, s32, s32, s32); void func_8009A7EC(s32, s32, s32, s32, s32); MkTexture *func_8009A878(struct_8018DEE0_entry*); MkTexture *func_8009A944(struct_8018DEE0_entry*, s32); -void func_8009B0A4(s32, s32); +void func_8009A9FC(s32, s32, u32, s32); +void func_8009AB7C(s32); +void func_8009AD78(s32, s32); +void func_8009B0A4(s32, u32); void func_8009B538(s32, s32, s32, s32, s32); s32 func_8009B8C4(u64*); void func_8009B938(void); @@ -193,6 +196,8 @@ void func_8009CE64(s32); void func_8009D77C(s32,s32,s32); void func_8009D958(s32, s32); void func_8009D978(s32, s32); +void func_8009DAA8(void); +void func_8009DB8C(void); void func_8009DEF8(u32, u32); void func_8009DF4C(s32); void func_8009DF6C(s32); @@ -365,6 +370,7 @@ void func_800AF740(struct_8018D9E0_entry*); // This really, really shouldn't be in this header file, but I don't know where else to put it void rmonPrintf(const char *, ...); +void tkmk00decode(u8*, u8*, u8*, s32); typedef struct struct_8018EE10_entry_cont { struct_8018EE10_entry arr[1]; @@ -385,9 +391,9 @@ extern s32 D_800DDB24; extern s16 D_80164478[]; -extern intptr_t D_8018D9B0; +extern u16 *D_8018D9B0; extern u8 *D_8018D9B4; -extern uintptr_t *D_8018D9B8; +extern u8 *D_8018D9B8; extern u8 *D_8018D9BC; extern struct_8018EE10_entry_cont *D_8018D9C0; extern s8 gGPPointsByCharacterId[8]; diff --git a/src/textures.h b/src/textures.h index f922680f0..079c8703e 100644 --- a/src/textures.h +++ b/src/textures.h @@ -15,7 +15,7 @@ typedef struct { /* 0x0A */ u16 height; /* 0x0C */ u16 dX; /* 0x0E */ u16 dY; - /* 0x10 */ s16 size; // This size is NOT equal to width*height. Its likely the size of the compressed texture + /* 0x10 */ u16 size; // This size is NOT equal to width*height. Its likely the size of the compressed texture /* 0x12 */ s16 unused2; } MkTexture; // size = 0x14 diff --git a/tools/doxygen_syms.md b/tools/doxygen_syms.md index b0395a8d8..e324a1ca8 100644 --- a/tools/doxygen_syms.md +++ b/tools/doxygen_syms.md @@ -2015,6 +2015,8 @@ Variable Name | Memory Address [segmented_to_virtual_dupe](@ref segmented_to_virtual_dupe) | 0x80099124 [segmented_to_virtual_dupe_2](@ref segmented_to_virtual_dupe_2) | 0x80099154 [func_80099184](@ref func_80099184) | 0x80099184 +[func_80099394](@ref func_80099394) | 0x80099394 +[func_8009952C](@ref func_8009952C) | 0x8009952C [func_8009969C](@ref func_8009969C) | 0x8009969C [func_800996BC](@ref func_800996BC) | 0x800996BC [func_80099958](@ref func_80099958) | 0x80099958 @@ -2073,6 +2075,7 @@ Variable Name | Memory Address [func_8009E020](@ref func_8009E020) | 0x8009E020 [func_8009E088](@ref func_8009E088) | 0x8009E088 [func_8009E0F0](@ref func_8009E0F0) | 0x8009E0F0 +[func_8009E17C](@ref func_8009E17C) | 0x8009E17C [func_8009E1C0](@ref func_8009E1C0) | 0x8009E1C0 [func_8009E1E4](@ref func_8009E1E4) | 0x8009E1E4 [func_8009E208](@ref func_8009E208) | 0x8009E208 @@ -3863,8 +3866,6 @@ Variable Name | Memory Address [D_800F0C98](@ref D_800F0C98) | 0x800F0C98 [D_800F0C9C](@ref D_800F0C9C) | 0x800F0C9C [D_800F0CA0](@ref D_800F0CA0) | 0x800F0CA0 -[D_800F0CC0](@ref D_800F0CC0) | 0x800F0CC0 -[D_800F0CC8](@ref D_800F0CC8) | 0x800F0CC8 [D_800F0CD0](@ref D_800F0CD0) | 0x800F0CD0 [D_800F15E0](@ref D_800F15E0) | 0x800F15E0 [D_800F1AC8](@ref D_800F1AC8) | 0x800F1AC8