diff --git a/asm/non_matchings/unknown_032760/func_80031B60.s b/asm/non_matchings/unknown_032760/func_80031B60.s deleted file mode 100644 index cd026180..00000000 --- a/asm/non_matchings/unknown_032760/func_80031B60.s +++ /dev/null @@ -1,25 +0,0 @@ -glabel func_80031B60 -/* 032760 80031B60 3C04800E */ lui $a0, %hi(D_800DC950) # $a0, 0x800e -/* 032764 80031B64 8C84C950 */ lw $a0, %lo(D_800DC950)($a0) -/* 032768 80031B68 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03276C 80031B6C 1080000B */ beqz $a0, .L80031B9C -/* 032770 80031B70 AFBF0014 */ sw $ra, 0x14($sp) -/* 032774 80031B74 0C01C450 */ jal func_80071140 -/* 032778 80031B78 00000000 */ nop -/* 03277C 80031B7C 3C01800E */ lui $at, %hi(D_800DC950) # $at, 0x800e -/* 032780 80031B80 AC20C950 */ sw $zero, %lo(D_800DC950)($at) -/* 032784 80031B84 3C01800E */ lui $at, %hi(D_800DC954) # $at, 0x800e -/* 032788 80031B88 AC20C954 */ sw $zero, %lo(D_800DC954)($at) -/* 03278C 80031B8C 3C01800E */ lui $at, %hi(D_800DC960) # $at, 0x800e -/* 032790 80031B90 AC20C960 */ sw $zero, %lo(D_800DC960)($at) -/* 032794 80031B94 3C01800E */ lui $at, %hi(D_800DC964) # $at, 0x800e -/* 032798 80031B98 AC20C964 */ sw $zero, %lo(D_800DC964)($at) -.L80031B9C: -/* 03279C 80031B9C 3C01800E */ lui $at, %hi(D_800DC95C) # $at, 0x800e -/* 0327A0 80031BA0 8FBF0014 */ lw $ra, 0x14($sp) -/* 0327A4 80031BA4 AC20C95C */ sw $zero, %lo(D_800DC95C)($at) -/* 0327A8 80031BA8 3C01800E */ lui $at, %hi(D_800DC958) # $at, 0x800e -/* 0327AC 80031BAC AC20C958 */ sw $zero, %lo(D_800DC958)($at) -/* 0327B0 80031BB0 03E00008 */ jr $ra -/* 0327B4 80031BB4 27BD0018 */ addiu $sp, $sp, 0x18 - diff --git a/asm/non_matchings/unknown_032760/func_80034530.s b/asm/non_matchings/unknown_032760/func_80034530.s deleted file mode 100644 index ef804f0d..00000000 --- a/asm/non_matchings/unknown_032760/func_80034530.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_80034530 -/* 035130 80034530 8C8F004C */ lw $t7, 0x4c($a0) -/* 035134 80034534 240E0022 */ li $t6, 34 -/* 035138 80034538 A5EE0014 */ sh $t6, 0x14($t7) -/* 03513C 8003453C 8C98004C */ lw $t8, 0x4c($a0) -/* 035140 80034540 00000000 */ nop -/* 035144 80034544 A3000011 */ sb $zero, 0x11($t8) -/* 035148 80034548 8C820064 */ lw $v0, 0x64($a0) -/* 03514C 8003454C 80B9000A */ lb $t9, 0xa($a1) -/* 035150 80034550 00000000 */ nop -/* 035154 80034554 A059000E */ sb $t9, 0xe($v0) -/* 035158 80034558 80A8000B */ lb $t0, 0xb($a1) -/* 03515C 8003455C 00000000 */ nop -/* 035160 80034560 A048000F */ sb $t0, 0xf($v0) -/* 035164 80034564 90A9000C */ lbu $t1, 0xc($a1) -/* 035168 80034568 804B000F */ lb $t3, 0xf($v0) -/* 03516C 8003456C A0490010 */ sb $t1, 0x10($v0) -/* 035170 80034570 90AA000D */ lbu $t2, 0xd($a1) -/* 035174 80034574 A44B000C */ sh $t3, 0xc($v0) -/* 035178 80034578 A04A0011 */ sb $t2, 0x11($v0) -/* 03517C 8003457C 90AD0008 */ lbu $t5, 8($a1) -/* 035180 80034580 00000000 */ nop -/* 035184 80034584 000D7200 */ sll $t6, $t5, 8 -/* 035188 80034588 A48E0000 */ sh $t6, ($a0) -/* 03518C 8003458C 90B80009 */ lbu $t8, 9($a1) -/* 035190 80034590 00000000 */ nop -/* 035194 80034594 0018CA00 */ sll $t9, $t8, 8 -/* 035198 80034598 03E00008 */ jr $ra -/* 03519C 8003459C A4990002 */ sh $t9, 2($a0) - diff --git a/asm/non_matchings/unknown_032760/func_80034E70.s b/asm/non_matchings/unknown_032760/func_80034E70.s deleted file mode 100644 index e5486199..00000000 --- a/asm/non_matchings/unknown_032760/func_80034E70.s +++ /dev/null @@ -1,13 +0,0 @@ -glabel func_80034E70 -/* 035A70 80034E70 8C8F004C */ lw $t7, 0x4c($a0) -/* 035A74 80034E74 240E0001 */ li $t6, 1 -/* 035A78 80034E78 A5EE0014 */ sh $t6, 0x14($t7) -/* 035A7C 80034E7C 8C99004C */ lw $t9, 0x4c($a0) -/* 035A80 80034E80 24180002 */ li $t8, 2 -/* 035A84 80034E84 A3380011 */ sb $t8, 0x11($t9) -/* 035A88 80034E88 90A90008 */ lbu $t1, 8($a1) -/* 035A8C 80034E8C 00000000 */ nop -/* 035A90 80034E90 00095280 */ sll $t2, $t1, 0xa -/* 035A94 80034E94 03E00008 */ jr $ra -/* 035A98 80034E98 A48A0000 */ sh $t2, ($a0) - diff --git a/asm/non_matchings/unknown_032760/func_80036BCC.s b/asm/non_matchings/unknown_032760/func_80036BCC.s deleted file mode 100644 index 98f684a1..00000000 --- a/asm/non_matchings/unknown_032760/func_80036BCC.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel func_80036BCC -/* 0377CC 80036BCC 3C078012 */ lui $a3, %hi(D_8011D4D8) # $a3, 0x8012 -/* 0377D0 80036BD0 24E7D4D8 */ addiu $a3, %lo(D_8011D4D8) # addiu $a3, $a3, -0x2b28 -/* 0377D4 80036BD4 8CE60000 */ lw $a2, ($a3) -/* 0377D8 80036BD8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0377DC 80036BDC AFBF0014 */ sw $ra, 0x14($sp) -/* 0377E0 80036BE0 10C0000A */ beqz $a2, .L80036C0C -/* 0377E4 80036BE4 AFA40018 */ sw $a0, 0x18($sp) -/* 0377E8 80036BE8 30AE0001 */ andi $t6, $a1, 1 -/* 0377EC 80036BEC 11C00007 */ beqz $t6, .L80036C0C -/* 0377F0 80036BF0 00000000 */ nop -/* 0377F4 80036BF4 0C001223 */ jal func_8000488C -/* 0377F8 80036BF8 00C02025 */ move $a0, $a2 -/* 0377FC 80036BFC 3C078012 */ lui $a3, %hi(D_8011D4D8) # $a3, 0x8012 -/* 037800 80036C00 24E7D4D8 */ addiu $a3, %lo(D_8011D4D8) # addiu $a3, $a3, -0x2b28 -/* 037804 80036C04 ACE00000 */ sw $zero, ($a3) -/* 037808 80036C08 00003025 */ move $a2, $zero -.L80036C0C: -/* 03780C 80036C0C 14C00005 */ bnez $a2, .L80036C24 -/* 037810 80036C10 8FBF0014 */ lw $ra, 0x14($sp) -/* 037814 80036C14 97A4001A */ lhu $a0, 0x1a($sp) -/* 037818 80036C18 0C000741 */ jal func_80001D04 -/* 03781C 80036C1C 00E02825 */ move $a1, $a3 -/* 037820 80036C20 8FBF0014 */ lw $ra, 0x14($sp) -.L80036C24: -/* 037824 80036C24 27BD0018 */ addiu $sp, $sp, 0x18 -/* 037828 80036C28 03E00008 */ jr $ra -/* 03782C 80036C2C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_80038854.s b/asm/non_matchings/unknown_032760/func_80038854.s deleted file mode 100644 index e45bb357..00000000 --- a/asm/non_matchings/unknown_032760/func_80038854.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_80038854 -/* 039454 80038854 90AE0009 */ lbu $t6, 9($a1) -/* 039458 80038858 240F0021 */ li $t7, 33 -/* 03945C 8003885C 11C00004 */ beqz $t6, .L80038870 -/* 039460 80038860 00000000 */ nop -/* 039464 80038864 8C98004C */ lw $t8, 0x4c($a0) -/* 039468 80038868 10000004 */ b .L8003887C -/* 03946C 8003886C A70F0014 */ sh $t7, 0x14($t8) -.L80038870: -/* 039470 80038870 8C88004C */ lw $t0, 0x4c($a0) -/* 039474 80038874 24190022 */ li $t9, 34 -/* 039478 80038878 A5190014 */ sh $t9, 0x14($t0) -.L8003887C: -/* 03947C 8003887C 8C89004C */ lw $t1, 0x4c($a0) -/* 039480 80038880 240A000F */ li $t2, 15 -/* 039484 80038884 A1200011 */ sb $zero, 0x11($t1) -/* 039488 80038888 8C8B004C */ lw $t3, 0x4c($a0) -/* 03948C 8003888C 00000000 */ nop -/* 039490 80038890 A16A0010 */ sb $t2, 0x10($t3) -/* 039494 80038894 8C8C004C */ lw $t4, 0x4c($a0) -/* 039498 80038898 00000000 */ nop -/* 03949C 8003889C A1800012 */ sb $zero, 0x12($t4) -/* 0394A0 800388A0 90AE000A */ lbu $t6, 0xa($a1) -/* 0394A4 800388A4 90AD0008 */ lbu $t5, 8($a1) -/* 0394A8 800388A8 000E7C00 */ sll $t7, $t6, 0x10 -/* 0394AC 800388AC 01AFC025 */ or $t8, $t5, $t7 -/* 0394B0 800388B0 AC980078 */ sw $t8, 0x78($a0) -/* 0394B4 800388B4 90B90009 */ lbu $t9, 9($a1) -/* 0394B8 800388B8 00000000 */ nop -/* 0394BC 800388BC AC99007C */ sw $t9, 0x7c($a0) -/* 0394C0 800388C0 90A8000B */ lbu $t0, 0xb($a1) -/* 0394C4 800388C4 00000000 */ nop -/* 0394C8 800388C8 00084A80 */ sll $t1, $t0, 0xa -/* 0394CC 800388CC 03E00008 */ jr $ra -/* 0394D0 800388D0 A4890000 */ sh $t1, ($a0) - diff --git a/asm/non_matchings/unknown_032760/func_80038D58.s b/asm/non_matchings/unknown_032760/func_80038D58.s deleted file mode 100644 index c481e78b..00000000 --- a/asm/non_matchings/unknown_032760/func_80038D58.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_80038D58 -/* 039958 80038D58 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03995C 80038D5C AFBF0014 */ sw $ra, 0x14($sp) -/* 039960 80038D60 AFA5001C */ sw $a1, 0x1c($sp) -/* 039964 80038D64 8C8F004C */ lw $t7, 0x4c($a0) -/* 039968 80038D68 240E0002 */ li $t6, 2 -/* 03996C 80038D6C A5EE0014 */ sh $t6, 0x14($t7) -/* 039970 80038D70 8C98004C */ lw $t8, 0x4c($a0) -/* 039974 80038D74 2419000F */ li $t9, 15 -/* 039978 80038D78 A3000011 */ sb $zero, 0x11($t8) -/* 03997C 80038D7C 8C88004C */ lw $t0, 0x4c($a0) -/* 039980 80038D80 00000000 */ nop -/* 039984 80038D84 A1190010 */ sb $t9, 0x10($t0) -/* 039988 80038D88 8C89004C */ lw $t1, 0x4c($a0) -/* 03998C 80038D8C 00000000 */ nop -/* 039990 80038D90 A1200012 */ sb $zero, 0x12($t1) -/* 039994 80038D94 0C01BAA4 */ jal get_settings -/* 039998 80038D98 AFA40018 */ sw $a0, 0x18($sp) -/* 03999C 80038D9C 8C4A0010 */ lw $t2, 0x10($v0) -/* 0399A0 80038DA0 8FA40018 */ lw $a0, 0x18($sp) -/* 0399A4 80038DA4 314B0001 */ andi $t3, $t2, 1 -/* 0399A8 80038DA8 11600002 */ beqz $t3, .L80038DB4 -/* 0399AC 80038DAC 240C0001 */ li $t4, 1 -/* 0399B0 80038DB0 AC8C0078 */ sw $t4, 0x78($a0) -.L80038DB4: -/* 0399B4 80038DB4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0399B8 80038DB8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0399BC 80038DBC 03E00008 */ jr $ra -/* 0399C0 80038DC0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_80038DC4.s b/asm/non_matchings/unknown_032760/func_80038DC4.s deleted file mode 100644 index 1826a037..00000000 --- a/asm/non_matchings/unknown_032760/func_80038DC4.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_80038DC4 -/* 0399C4 80038DC4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0399C8 80038DC8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0399CC 80038DCC AFA5001C */ sw $a1, 0x1c($sp) -/* 0399D0 80038DD0 8C8E0078 */ lw $t6, 0x78($a0) -/* 0399D4 80038DD4 00803025 */ move $a2, $a0 -/* 0399D8 80038DD8 11C00015 */ beqz $t6, .L80038E30 -/* 0399DC 80038DDC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0399E0 80038DE0 8C8F004C */ lw $t7, 0x4c($a0) -/* 0399E4 80038DE4 8C82003C */ lw $v0, 0x3c($a0) -/* 0399E8 80038DE8 91F80013 */ lbu $t8, 0x13($t7) -/* 0399EC 80038DEC 00000000 */ nop -/* 0399F0 80038DF0 2B010078 */ slti $at, $t8, 0x78 -/* 0399F4 80038DF4 1020000E */ beqz $at, .L80038E30 -/* 0399F8 80038DF8 8FBF0014 */ lw $ra, 0x14($sp) -/* 0399FC 80038DFC 80440008 */ lb $a0, 8($v0) -/* 039A00 80038E00 0C01BCCE */ jal func_8006F338 -/* 039A04 80038E04 AFA60018 */ sw $a2, 0x18($sp) -/* 039A08 80038E08 8FA60018 */ lw $a2, 0x18($sp) -/* 039A0C 80038E0C 24040030 */ li $a0, 48 -/* 039A10 80038E10 00002825 */ move $a1, $zero -/* 039A14 80038E14 0C000741 */ jal func_80001D04 -/* 039A18 80038E18 ACC00078 */ sw $zero, 0x78($a2) -/* 039A1C 80038E1C 2404012A */ li $a0, 298 -/* 039A20 80038E20 00002825 */ move $a1, $zero -/* 039A24 80038E24 0C0003F7 */ jal func_80000FDC -/* 039A28 80038E28 3C063F80 */ lui $a2, 0x3f80 -/* 039A2C 80038E2C 8FBF0014 */ lw $ra, 0x14($sp) -.L80038E30: -/* 039A30 80038E30 27BD0018 */ addiu $sp, $sp, 0x18 -/* 039A34 80038E34 03E00008 */ jr $ra -/* 039A38 80038E38 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_80039190.s b/asm/non_matchings/unknown_032760/func_80039190.s deleted file mode 100644 index 000805e0..00000000 --- a/asm/non_matchings/unknown_032760/func_80039190.s +++ /dev/null @@ -1,13 +0,0 @@ -glabel func_80039190 -/* 039D90 80039190 90AE0008 */ lbu $t6, 8($a1) -/* 039D94 80039194 00000000 */ nop -/* 039D98 80039198 AC8E0078 */ sw $t6, 0x78($a0) -/* 039D9C 8003919C 90AF0009 */ lbu $t7, 9($a1) -/* 039DA0 800391A0 00000000 */ nop -/* 039DA4 800391A4 AC8F007C */ sw $t7, 0x7c($a0) -/* 039DA8 800391A8 90B9000A */ lbu $t9, 0xa($a1) -/* 039DAC 800391AC 00000000 */ nop -/* 039DB0 800391B0 00194280 */ sll $t0, $t9, 0xa -/* 039DB4 800391B4 03E00008 */ jr $ra -/* 039DB8 800391B8 A4880000 */ sh $t0, ($a0) - diff --git a/asm/non_matchings/unknown_032760/func_800392B8.s b/asm/non_matchings/unknown_032760/func_800392B8.s deleted file mode 100644 index e1310ac1..00000000 --- a/asm/non_matchings/unknown_032760/func_800392B8.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_800392B8 -/* 039EB8 800392B8 AFA50004 */ sw $a1, 4($sp) -/* 039EBC 800392BC 8C8F004C */ lw $t7, 0x4c($a0) -/* 039EC0 800392C0 240E0001 */ li $t6, 1 -/* 039EC4 800392C4 A5EE0014 */ sh $t6, 0x14($t7) -/* 039EC8 800392C8 8C98004C */ lw $t8, 0x4c($a0) -/* 039ECC 800392CC 2419001E */ li $t9, 30 -/* 039ED0 800392D0 A3000011 */ sb $zero, 0x11($t8) -/* 039ED4 800392D4 8C88004C */ lw $t0, 0x4c($a0) -/* 039ED8 800392D8 44802000 */ mtc1 $zero, $f4 -/* 039EDC 800392DC A1190010 */ sb $t9, 0x10($t0) -/* 039EE0 800392E0 8C89004C */ lw $t1, 0x4c($a0) -/* 039EE4 800392E4 240A00FF */ li $t2, 255 -/* 039EE8 800392E8 A1200012 */ sb $zero, 0x12($t1) -/* 039EEC 800392EC 8C820064 */ lw $v0, 0x64($a0) -/* 039EF0 800392F0 3C018012 */ lui $at, %hi(D_8011D4D4) # $at, 0x8012 -/* 039EF4 800392F4 A04A000D */ sb $t2, 0xd($v0) -/* 039EF8 800392F8 E4440000 */ swc1 $f4, ($v0) -/* 039EFC 800392FC A4400028 */ sh $zero, 0x28($v0) -/* 039F00 80039300 AC40002C */ sw $zero, 0x2c($v0) -/* 039F04 80039304 A4400034 */ sh $zero, 0x34($v0) -/* 039F08 80039308 A0400036 */ sb $zero, 0x36($v0) -/* 039F0C 8003930C AC20D4D4 */ sw $zero, %lo(D_8011D4D4)($at) -/* 039F10 80039310 3C018012 */ lui $at, 0x8012 -/* 039F14 80039314 240B010F */ li $t3, 271 -/* 039F18 80039318 03E00008 */ jr $ra -/* 039F1C 8003931C A42BD4E2 */ sh $t3, -0x2b1e($at) - diff --git a/asm/non_matchings/unknown_032760/func_8003AC3C.s b/asm/non_matchings/unknown_032760/func_8003AC3C.s deleted file mode 100644 index 0baa22dd..00000000 --- a/asm/non_matchings/unknown_032760/func_8003AC3C.s +++ /dev/null @@ -1,29 +0,0 @@ -glabel func_8003AC3C -/* 03B83C 8003AC3C 3C078012 */ lui $a3, %hi(D_8011D4D4) # $a3, 0x8012 -/* 03B840 8003AC40 24E7D4D4 */ addiu $a3, %lo(D_8011D4D4) # addiu $a3, $a3, -0x2b2c -/* 03B844 8003AC44 8CE60000 */ lw $a2, ($a3) -/* 03B848 8003AC48 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03B84C 8003AC4C AFBF0014 */ sw $ra, 0x14($sp) -/* 03B850 8003AC50 10C0000A */ beqz $a2, .L8003AC7C -/* 03B854 8003AC54 AFA40018 */ sw $a0, 0x18($sp) -/* 03B858 8003AC58 30AE0001 */ andi $t6, $a1, 1 -/* 03B85C 8003AC5C 11C00007 */ beqz $t6, .L8003AC7C -/* 03B860 8003AC60 00000000 */ nop -/* 03B864 8003AC64 0C001223 */ jal func_8000488C -/* 03B868 8003AC68 00C02025 */ move $a0, $a2 -/* 03B86C 8003AC6C 3C078012 */ lui $a3, %hi(D_8011D4D4) # $a3, 0x8012 -/* 03B870 8003AC70 24E7D4D4 */ addiu $a3, %lo(D_8011D4D4) # addiu $a3, $a3, -0x2b2c -/* 03B874 8003AC74 ACE00000 */ sw $zero, ($a3) -/* 03B878 8003AC78 00003025 */ move $a2, $zero -.L8003AC7C: -/* 03B87C 8003AC7C 14C00005 */ bnez $a2, .L8003AC94 -/* 03B880 8003AC80 8FBF0014 */ lw $ra, 0x14($sp) -/* 03B884 8003AC84 97A4001A */ lhu $a0, 0x1a($sp) -/* 03B888 8003AC88 0C000741 */ jal func_80001D04 -/* 03B88C 8003AC8C 00E02825 */ move $a1, $a3 -/* 03B890 8003AC90 8FBF0014 */ lw $ra, 0x14($sp) -.L8003AC94: -/* 03B894 8003AC94 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03B898 8003AC98 03E00008 */ jr $ra -/* 03B89C 8003AC9C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_8003C9EC.s b/asm/non_matchings/unknown_032760/func_8003C9EC.s deleted file mode 100644 index 8d2e83b0..00000000 --- a/asm/non_matchings/unknown_032760/func_8003C9EC.s +++ /dev/null @@ -1,34 +0,0 @@ -glabel func_8003C9EC -/* 03D5EC 8003C9EC 90AE0008 */ lbu $t6, 8($a1) -/* 03D5F0 8003C9F0 8C820064 */ lw $v0, 0x64($a0) -/* 03D5F4 8003C9F4 A08E003A */ sb $t6, 0x3a($a0) -/* 03D5F8 8003C9F8 90B80009 */ lbu $t8, 9($a1) -/* 03D5FC 8003C9FC C4840010 */ lwc1 $f4, 0x10($a0) -/* 03D600 8003CA00 0018CA80 */ sll $t9, $t8, 0xa -/* 03D604 8003CA04 A4990000 */ sh $t9, ($a0) -/* 03D608 8003CA08 E4440000 */ swc1 $f4, ($v0) -/* 03D60C 8003CA0C 8C89004C */ lw $t1, 0x4c($a0) -/* 03D610 8003CA10 24080021 */ li $t0, 33 -/* 03D614 8003CA14 A5280014 */ sh $t0, 0x14($t1) -/* 03D618 8003CA18 8C8B004C */ lw $t3, 0x4c($a0) -/* 03D61C 8003CA1C 240A0002 */ li $t2, 2 -/* 03D620 8003CA20 A16A0011 */ sb $t2, 0x11($t3) -/* 03D624 8003CA24 8C8D004C */ lw $t5, 0x4c($a0) -/* 03D628 8003CA28 240C0014 */ li $t4, 20 -/* 03D62C 8003CA2C A1AC0010 */ sb $t4, 0x10($t5) -/* 03D630 8003CA30 8C8E004C */ lw $t6, 0x4c($a0) -/* 03D634 8003CA34 00000000 */ nop -/* 03D638 8003CA38 A1C00012 */ sb $zero, 0x12($t6) -/* 03D63C 8003CA3C AC400004 */ sw $zero, 4($v0) -/* 03D640 8003CA40 8C980040 */ lw $t8, 0x40($a0) -/* 03D644 8003CA44 808F003A */ lb $t7, 0x3a($a0) -/* 03D648 8003CA48 83190055 */ lb $t9, 0x55($t8) -/* 03D64C 8003CA4C 00000000 */ nop -/* 03D650 8003CA50 01F9082A */ slt $at, $t7, $t9 -/* 03D654 8003CA54 14200002 */ bnez $at, .L8003CA60 -/* 03D658 8003CA58 00000000 */ nop -/* 03D65C 8003CA5C A080003A */ sb $zero, 0x3a($a0) -.L8003CA60: -/* 03D660 8003CA60 03E00008 */ jr $ra -/* 03D664 8003CA64 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_8003CEA0.s b/asm/non_matchings/unknown_032760/func_8003CEA0.s deleted file mode 100644 index 0eefded9..00000000 --- a/asm/non_matchings/unknown_032760/func_8003CEA0.s +++ /dev/null @@ -1,27 +0,0 @@ -glabel func_8003CEA0 -/* 03DAA0 8003CEA0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03DAA4 8003CEA4 AFBF0014 */ sw $ra, 0x14($sp) -/* 03DAA8 8003CEA8 AFA40018 */ sw $a0, 0x18($sp) -/* 03DAAC 8003CEAC AFA5001C */ sw $a1, 0x1c($sp) -/* 03DAB0 8003CEB0 8C82004C */ lw $v0, 0x4c($a0) -/* 03DAB4 8003CEB4 00802825 */ move $a1, $a0 -/* 03DAB8 8003CEB8 904E0013 */ lbu $t6, 0x13($v0) -/* 03DABC 8003CEBC 00000000 */ nop -/* 03DAC0 8003CEC0 29C1002D */ slti $at, $t6, 0x2d -/* 03DAC4 8003CEC4 10200009 */ beqz $at, .L8003CEEC -/* 03DAC8 8003CEC8 240F00FF */ li $t7, 255 -/* 03DACC 8003CECC 8C840078 */ lw $a0, 0x78($a0) -/* 03DAD0 8003CED0 0C0078D1 */ jal func_8001E344 -/* 03DAD4 8003CED4 AFA50018 */ sw $a1, 0x18($sp) -/* 03DAD8 8003CED8 8FA50018 */ lw $a1, 0x18($sp) -/* 03DADC 8003CEDC 00000000 */ nop -/* 03DAE0 8003CEE0 8CA2004C */ lw $v0, 0x4c($a1) -/* 03DAE4 8003CEE4 00000000 */ nop -/* 03DAE8 8003CEE8 240F00FF */ li $t7, 255 -.L8003CEEC: -/* 03DAEC 8003CEEC A04F0013 */ sb $t7, 0x13($v0) -/* 03DAF0 8003CEF0 8FBF0014 */ lw $ra, 0x14($sp) -/* 03DAF4 8003CEF4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03DAF8 8003CEF8 03E00008 */ jr $ra -/* 03DAFC 8003CEFC 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_8003D534.s b/asm/non_matchings/unknown_032760/func_8003D534.s deleted file mode 100644 index e73aacdb..00000000 --- a/asm/non_matchings/unknown_032760/func_8003D534.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_8003D534 -/* 03E134 8003D534 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03E138 8003D538 AFBF0014 */ sw $ra, 0x14($sp) -/* 03E13C 8003D53C AFA5001C */ sw $a1, 0x1c($sp) -/* 03E140 8003D540 8C8F004C */ lw $t7, 0x4c($a0) -/* 03E144 8003D544 240E0002 */ li $t6, 2 -/* 03E148 8003D548 A5EE0014 */ sh $t6, 0x14($t7) -/* 03E14C 8003D54C 8C98004C */ lw $t8, 0x4c($a0) -/* 03E150 8003D550 2419001E */ li $t9, 30 -/* 03E154 8003D554 A3000011 */ sb $zero, 0x11($t8) -/* 03E158 8003D558 8C88004C */ lw $t0, 0x4c($a0) -/* 03E15C 8003D55C 24090014 */ li $t1, 20 -/* 03E160 8003D560 A1190010 */ sb $t9, 0x10($t0) -/* 03E164 8003D564 240A0010 */ li $t2, 16 -/* 03E168 8003D568 A489007C */ sh $t1, 0x7c($a0) -/* 03E16C 8003D56C A48A007E */ sh $t2, 0x7e($a0) -/* 03E170 8003D570 0C0270C3 */ jal func_8009C30C -/* 03E174 8003D574 AFA40018 */ sw $a0, 0x18($sp) -/* 03E178 8003D578 8FA40018 */ lw $a0, 0x18($sp) -/* 03E17C 8003D57C 304B1000 */ andi $t3, $v0, 0x1000 -/* 03E180 8003D580 11600004 */ beqz $t3, .L8003D594 -/* 03E184 8003D584 8FBF0014 */ lw $ra, 0x14($sp) -/* 03E188 8003D588 0C003FEE */ jal func_8000FFB8 -/* 03E18C 8003D58C 00000000 */ nop -/* 03E190 8003D590 8FBF0014 */ lw $ra, 0x14($sp) -.L8003D594: -/* 03E194 8003D594 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03E198 8003D598 03E00008 */ jr $ra -/* 03E19C 8003D59C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_8003E5C8.s b/asm/non_matchings/unknown_032760/func_8003E5C8.s deleted file mode 100644 index ff52fed9..00000000 --- a/asm/non_matchings/unknown_032760/func_8003E5C8.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_8003E5C8 -/* 03F1C8 8003E5C8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 03F1CC 8003E5CC AFBF0014 */ sw $ra, 0x14($sp) -/* 03F1D0 8003E5D0 AFA40018 */ sw $a0, 0x18($sp) -/* 03F1D4 8003E5D4 AFA5001C */ sw $a1, 0x1c($sp) -/* 03F1D8 8003E5D8 8C8F004C */ lw $t7, 0x4c($a0) -/* 03F1DC 8003E5DC 240E0002 */ li $t6, 2 -/* 03F1E0 8003E5E0 A5EE0014 */ sh $t6, 0x14($t7) -/* 03F1E4 8003E5E4 8C98004C */ lw $t8, 0x4c($a0) -/* 03F1E8 8003E5E8 24190018 */ li $t9, 24 -/* 03F1EC 8003E5EC A3000011 */ sb $zero, 0x11($t8) -/* 03F1F0 8003E5F0 8C88004C */ lw $t0, 0x4c($a0) -/* 03F1F4 8003E5F4 00802825 */ move $a1, $a0 -/* 03F1F8 8003E5F8 A1190010 */ sb $t9, 0x10($t0) -/* 03F1FC 8003E5FC 8C89004C */ lw $t1, 0x4c($a0) -/* 03F200 8003E600 240401E0 */ li $a0, 480 -/* 03F204 8003E604 A1200012 */ sb $zero, 0x12($t1) -/* 03F208 8003E608 0C00322D */ jal func_8000C8B4 -/* 03F20C 8003E60C AFA50018 */ sw $a1, 0x18($sp) -/* 03F210 8003E610 8FA50018 */ lw $a1, 0x18($sp) -/* 03F214 8003E614 00000000 */ nop -/* 03F218 8003E618 ACA20078 */ sw $v0, 0x78($a1) -/* 03F21C 8003E61C ACA0007C */ sw $zero, 0x7c($a1) -/* 03F220 8003E620 8FBF0014 */ lw $ra, 0x14($sp) -/* 03F224 8003E624 27BD0018 */ addiu $sp, $sp, 0x18 -/* 03F228 8003E628 03E00008 */ jr $ra -/* 03F22C 8003E62C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_800403D8.s b/asm/non_matchings/unknown_032760/func_800403D8.s deleted file mode 100644 index b9c47767..00000000 --- a/asm/non_matchings/unknown_032760/func_800403D8.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_800403D8 -/* 040FD8 800403D8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 040FDC 800403DC AFBF0014 */ sw $ra, 0x14($sp) -/* 040FE0 800403E0 AFA5001C */ sw $a1, 0x1c($sp) -/* 040FE4 800403E4 AFA60020 */ sw $a2, 0x20($sp) -/* 040FE8 800403E8 00803825 */ move $a3, $a0 -/* 040FEC 800403EC 8CE5000C */ lw $a1, 0xc($a3) -/* 040FF0 800403F0 8CE60014 */ lw $a2, 0x14($a3) -/* 040FF4 800403F4 8484002E */ lh $a0, 0x2e($a0) -/* 040FF8 800403F8 0C02F995 */ jal func_800BE654 -/* 040FFC 800403FC AFA70018 */ sw $a3, 0x18($sp) -/* 041000 80040400 8FA70018 */ lw $a3, 0x18($sp) -/* 041004 80040404 240E0001 */ li $t6, 1 -/* 041008 80040408 8CEF004C */ lw $t7, 0x4c($a3) -/* 04100C 8004040C ACE20064 */ sw $v0, 0x64($a3) -/* 041010 80040410 A5EE0014 */ sh $t6, 0x14($t7) -/* 041014 80040414 8CF8004C */ lw $t8, 0x4c($a3) -/* 041018 80040418 2419001E */ li $t9, 30 -/* 04101C 8004041C A3000011 */ sb $zero, 0x11($t8) -/* 041020 80040420 8CE8004C */ lw $t0, 0x4c($a3) -/* 041024 80040424 00000000 */ nop -/* 041028 80040428 A1190010 */ sb $t9, 0x10($t0) -/* 04102C 8004042C 8CE9004C */ lw $t1, 0x4c($a3) -/* 041030 80040430 00000000 */ nop -/* 041034 80040434 A1200012 */ sb $zero, 0x12($t1) -/* 041038 80040438 8FBF0014 */ lw $ra, 0x14($sp) -/* 04103C 8004043C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 041040 80040440 03E00008 */ jr $ra -/* 041044 80040444 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_80042090.s b/asm/non_matchings/unknown_032760/func_80042090.s deleted file mode 100644 index bd3c4103..00000000 --- a/asm/non_matchings/unknown_032760/func_80042090.s +++ /dev/null @@ -1,36 +0,0 @@ -glabel func_80042090 -/* 042C90 80042090 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 042C94 80042094 AFBF0014 */ sw $ra, 0x14($sp) -/* 042C98 80042098 AFA5001C */ sw $a1, 0x1c($sp) -/* 042C9C 8004209C 00803025 */ move $a2, $a0 -/* 042CA0 800420A0 AFA60018 */ sw $a2, 0x18($sp) -/* 042CA4 800420A4 00002025 */ move $a0, $zero -/* 042CA8 800420A8 0C01BE53 */ jal func_8006F94C -/* 042CAC 800420AC 24050400 */ li $a1, 1024 -/* 042CB0 800420B0 8FA60018 */ lw $a2, 0x18($sp) -/* 042CB4 800420B4 240F0001 */ li $t7, 1 -/* 042CB8 800420B8 8CCE0078 */ lw $t6, 0x78($a2) -/* 042CBC 800420BC 00000000 */ nop -/* 042CC0 800420C0 01C2082A */ slt $at, $t6, $v0 -/* 042CC4 800420C4 14200003 */ bnez $at, .L800420D4 -/* 042CC8 800420C8 00000000 */ nop -/* 042CCC 800420CC 10000002 */ b .L800420D8 -/* 042CD0 800420D0 ACCF0074 */ sw $t7, 0x74($a2) -.L800420D4: -/* 042CD4 800420D4 ACC00074 */ sw $zero, 0x74($a2) -.L800420D8: -/* 042CD8 800420D8 0C0270F2 */ jal func_8009C3C8 -/* 042CDC 800420DC AFA60018 */ sw $a2, 0x18($sp) -/* 042CE0 800420E0 8FA60018 */ lw $a2, 0x18($sp) -/* 042CE4 800420E4 28410002 */ slti $at, $v0, 2 -/* 042CE8 800420E8 10200005 */ beqz $at, .L80042100 -/* 042CEC 800420EC 8FBF0014 */ lw $ra, 0x14($sp) -/* 042CF0 800420F0 8FA5001C */ lw $a1, 0x1c($sp) -/* 042CF4 800420F4 0C02BF0F */ jal func_800AFC3C -/* 042CF8 800420F8 00C02025 */ move $a0, $a2 -/* 042CFC 800420FC 8FBF0014 */ lw $ra, 0x14($sp) -.L80042100: -/* 042D00 80042100 27BD0018 */ addiu $sp, $sp, 0x18 -/* 042D04 80042104 03E00008 */ jr $ra -/* 042D08 80042108 00000000 */ nop - diff --git a/asm/non_matchings/unknown_032760/func_80042A1C.s b/asm/non_matchings/unknown_032760/func_80042A1C.s deleted file mode 100644 index 4fa1f3be..00000000 --- a/asm/non_matchings/unknown_032760/func_80042A1C.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_80042A1C -/* 04361C 80042A1C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 043620 80042A20 AFBF0014 */ sw $ra, 0x14($sp) -/* 043624 80042A24 80AE0009 */ lb $t6, 9($a1) -/* 043628 80042A28 3C014100 */ li $at, 0x41000000 # 8.000000 -/* 04362C 80042A2C 448E2000 */ mtc1 $t6, $f4 -/* 043630 80042A30 44814000 */ mtc1 $at, $f8 -/* 043634 80042A34 468021A0 */ cvt.s.w $f6, $f4 -/* 043638 80042A38 46083282 */ mul.s $f10, $f6, $f8 -/* 04363C 80042A3C E48A0078 */ swc1 $f10, 0x78($a0) -/* 043640 80042A40 C4800078 */ lwc1 $f0, 0x78($a0) -/* 043644 80042A44 00000000 */ nop -/* 043648 80042A48 46000402 */ mul.s $f16, $f0, $f0 -/* 04364C 80042A4C E4900078 */ swc1 $f16, 0x78($a0) -/* 043650 80042A50 80AF0008 */ lb $t7, 8($a1) -/* 043654 80042A54 A480007E */ sh $zero, 0x7e($a0) -/* 043658 80042A58 A48F007C */ sh $t7, 0x7c($a0) -/* 04365C 80042A5C 0C0270B4 */ jal is_in_tracks_mode -/* 043660 80042A60 AFA40018 */ sw $a0, 0x18($sp) -/* 043664 80042A64 8FA40018 */ lw $a0, 0x18($sp) -/* 043668 80042A68 10400003 */ beqz $v0, .L80042A78 -/* 04366C 80042A6C 00000000 */ nop -/* 043670 80042A70 0C003FEE */ jal func_8000FFB8 -/* 043674 80042A74 00000000 */ nop -.L80042A78: -/* 043678 80042A78 0C0315B4 */ jal func_800C56D0 -/* 04367C 80042A7C 24040004 */ li $a0, 4 -/* 043680 80042A80 8FBF0014 */ lw $ra, 0x14($sp) -/* 043684 80042A84 27BD0018 */ addiu $sp, $sp, 0x18 -/* 043688 80042A88 03E00008 */ jr $ra -/* 04368C 80042A8C 00000000 */ nop - diff --git a/data/dkr.data.s b/data/dkr.data.s index 23de8dae..e0e0375c 100644 --- a/data/dkr.data.s +++ b/data/dkr.data.s @@ -10998,6 +10998,7 @@ glabel D_800E61B8 glabel D_800E61BC .word 0x9999999A + .word 0x8003E66C .word 0x8003E66C .word 0x8003E67C diff --git a/include/structs.h b/include/structs.h index 01c39951..2053af0d 100644 --- a/include/structs.h +++ b/include/structs.h @@ -164,9 +164,16 @@ typedef struct { /* 0x4C */ u32 unk4C; } dkr_wave_t; +typedef struct Player_3C { + u8 pad0[0x8]; + s8 unk8; +} Player_3C; + typedef struct Player_40 { u8 pad0[0xC]; f32 unkC; + u8 pad10[0x45]; + s8 unk55; } Player_40; typedef struct Player_4C { @@ -180,10 +187,27 @@ typedef struct Player_4C { typedef struct Player_64 { f32 unk0; - u8 pad4[9]; - u8 unkD; + s32 unk4; + u8 pad8[4]; + union { + struct { + u8 byteC; + u8 byteD; + } bytes; + s16 half; + } unkCD; + u8 unkE; + s8 unkF; + u8 unk10; + u8 unk11; + u8 pad12[0x16]; + s16 unk28; + s16 unk2A; + s32 unk2C; + s32 unk30; + s16 unk34; + s8 unk36; } Player_64; - /* Size: 0x0630 bytes */ typedef struct Player { @@ -204,19 +228,15 @@ typedef struct Player { /* 0x002C */ u16 unk2C; - /* 0x002E */ u16 unk2E; + /* 0x002E */ s16 unk2E; /* 0x0030 */ f32 unk30; /* 0x0034 */ f32 unk34; /* 0x0038 */ u8 unk38; /* 0x0039 */ u8 unk39; - /* 0x003A */ u8 unk3A; + /* 0x003A */ s8 unk3A; /* 0x003B */ u8 unk3B; - /* 0x003C */ u8 unk3C; - - /* 0x003D */ u8 unk3D; - /* 0x003E */ u8 unk3E; - /* 0x003F */ u8 unk3F; + /* 0x003C */ Player_3C* unk3C; /* 0x0040 */ Player_40 *descriptor_ptr; /* 0x0044 */ void *unk44; @@ -235,8 +255,15 @@ typedef struct Player { /* 0x0070 */ u32 unk70; /* 0x0074 */ u32 unk74; - /* 0x0078 */ u32 unk78; - /* 0x007C */ s32 unk7C; + /* 0x0078 */ s32 unk78; + + union { + struct { + s16 upper; + s16 lower; + } half; + s32 word; + } unk7C; /* 0x0080 */ void *unk80; /* 0x0084 */ u32 unk84; diff --git a/src/mips1/unknown_032760.c b/src/mips1/unknown_032760.c index fca6ec6d..22b107b2 100644 --- a/src/mips1/unknown_032760.c +++ b/src/mips1/unknown_032760.c @@ -5,14 +5,35 @@ #include "macros.h" #include "structs.h" +extern s32 D_800DC950; +extern s32 D_800DC954; +extern s32 D_800DC958; extern s32 D_800DC95C; +extern s32 D_800DC960; +extern s32 D_800DC964; extern f32 D_8011D4D0; +extern s32 D_8011D4D4; extern s32 D_8011D4D8; extern s32 D_8011D4DC; extern s16 D_8011D4E2; -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80031B60.s") +Settings* get_settings(); +Player_64 *func_800BE654(s16, f32, f32); +void func_80000FDC(s32, s32, f32); + +void func_80031B60(void) { + if (D_800DC950 != 0) { + func_80071140(D_800DC950); + D_800DC950 = 0; + D_800DC954 = 0; + D_800DC960 = 0; + D_800DC964 = 0; + } + D_800DC95C = 0; + D_800DC958 = 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80031BB8.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80031CAC.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80031F88.s") @@ -37,7 +58,31 @@ void func_80033F44(Player *arg0, s32 arg1) { } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80033F60.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80034530.s") + +typedef struct unk80034530 { + u8 pad0[0x8]; + u8 unk8; + u8 unk9; + s8 unkA; + s8 unkB; + u8 unkC; + u8 unkD; +} unk80034530; + +void func_80034530(Player *arg0, unk80034530 *arg1) { + Player_64* temp; + arg0->unk4C->unk14 = 0x22; + arg0->unk4C->unk11 = 0; + temp = arg0->unk64; + temp->unkE = arg1->unkA; + temp->unkF = arg1->unkB; + temp->unk10 = arg1->unkC; + temp->unk11 = arg1->unkD; + temp->unkCD.half = temp->unkF; + arg0->y_rotation = arg1->unk8 << 4 << 4; // Not sure about the shift amounts here, but it + arg0->x_rotation = arg1->unk9 << 4 << 4; // just needs to be 2 left shifts that add up to 8. +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800345A0.s") // Literally the same function as func_80033F44() @@ -80,16 +125,11 @@ void func_80034B68(s32 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80034B74.s") -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80034E70.s") -#else void func_80034E70(Player *arg0, u8 *arg1) { arg0->unk4C->unk14 = 1; arg0->unk4C->unk11 = 2; - // Regalloc issue here. - arg0->unk0 = arg1[8] << 10; + arg0->y_rotation = arg1[8] << 6 << 4; // Not sure about the values here. } -#endif GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80034E9C.s") @@ -128,7 +168,27 @@ void func_80035E20(unk80035E20 *arg0, s32 arg1) { } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80035E34.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80035EF8.s") + +typedef struct unk80035EF8 { + u8 pad0[0xA]; + s16 unkA; + s16 unkC; + s16 unkE; +} unk80035EF8; + +void func_80035EF8(Player *arg0, unk80035EF8 *arg1) { + f32 phi_f0; + arg0->unk78 = (s32) arg1->unkE; + arg0->unk7C.word = -1; + arg0->y_rotation = arg1->unkC << 6 << 4; // Not sure about the values here. + phi_f0 = (f32) (arg1->unkA & 0xFF); + if (phi_f0 < 10.0f) { + phi_f0 = 10.0f; + } + phi_f0 /= 64; + arg0->scale = (f32) (arg0->descriptor_ptr->unkC * phi_f0); +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80035F6C.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80036040.s") @@ -139,13 +199,23 @@ void func_80036194(Player *arg0, s32 arg1) { arg0->unk4C->unk10 = 0x1E; arg0->unk4C->unk12 = 0; temp = arg0->unk64; - temp->unkD = 0xFF; + temp->unkCD.bytes.byteD = 0xFF; temp->unk0 = 0.0f; D_8011D4D8 = 0; } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800361E0.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80036BCC.s") + +void func_80036BCC(u16 arg0, s32 arg1) { + if ((D_8011D4D8 != 0) && (arg1 & 1)) { + func_8000488C(D_8011D4D8); + D_8011D4D8 = 0; + } + if (D_8011D4D8 == 0) { + func_80001D04(arg0, &D_8011D4D8); + } +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80036C30.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800370D4.s") @@ -257,7 +327,21 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003827C.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003833C.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038710.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800387CC.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038854.s") + +void func_80038854(Player *arg0, u8 *arg1) { + if (arg1[9] != 0) { + arg0->unk4C->unk14 = 0x21; + } else { + arg0->unk4C->unk14 = 0x22; + } + arg0->unk4C->unk11 = 0; + arg0->unk4C->unk10 = 0xF; + arg0->unk4C->unk12 = 0; + arg0->unk78 = (arg1[10] << 16) | arg1[8]; // Not sure about the values here. + arg0->unk7C.word = arg1[9]; + arg0->y_rotation = arg1[11] << 10; // Not sure about the values here. +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800388D4.s") void func_800389AC(s32 arg0, s32 arg1) { @@ -290,8 +374,29 @@ void func_80038AC8(s32 arg0, s32 arg1) { GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038AD4.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038B74.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038BF4.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038D58.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038DC4.s") + +void func_80038D58(Player *arg0, s32 arg1) { + arg0->unk4C->unk14 = 2; + arg0->unk4C->unk11 = 0; + arg0->unk4C->unk10 = 0xF; + arg0->unk4C->unk12 = 0; + if (get_settings()->cutsceneFlags & 1) { + arg0->unk78 = 1; + } +} + +void func_80038DC4(Player *arg0, s32 arg1) { + if (arg0->unk78 != 0) { + Player_3C* temp = arg0->unk3C; + if(arg0->unk4C->unk13 < 0x78) { + func_8006F338(temp->unk8); + arg0->unk78 = 0; + func_80001D04(0x30, 0, arg0); + func_80000FDC(0x12A, 0, 1.0f); + } + } +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038E3C.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80038F58.s") @@ -309,10 +414,6 @@ void func_80039184(s32 arg0, s32 arg1) { } -#if 1 -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80039190.s") -#else - typedef struct unk80039190 { u16 unk0; u8 pad2[0x76]; @@ -324,11 +425,8 @@ void func_80039190(unk80039190 *arg0, u8 *arg1) { s32 temp; arg0->unk78 = arg1[8]; arg0->unk7C = arg1[9]; - - // Regalloc issues here - arg0->unk0 = arg1[10] * 0x400; + arg0->unk0 = arg1[10] << 6 << 4; // Not sure about the values here. } -#endif void func_800391BC(s32 arg0, s32 arg1) { @@ -342,14 +440,39 @@ void func_800391C8(Player *arg0, s32 arg1) { } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800391FC.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800392B8.s") + +void func_800392B8(Player *arg0, s32 arg1) { + Player_64* temp; + arg0->unk4C->unk14 = (u16)1; + arg0->unk4C->unk11 = (u8)0; + arg0->unk4C->unk10 = (u8)0x1E; + arg0->unk4C->unk12 = (u8)0; + temp = arg0->unk64; + temp->unkCD.bytes.byteD = 0xFF; + temp->unk0 = 0.0f; + temp->unk28 = 0; + temp->unk2C = 0; + temp->unk34 = 0; + temp->unk36 = 0; + D_8011D4D4 = 0; + D_8011D4E2 = 0x10F; +} void func_80039320(s16 arg0) { D_8011D4E2 = arg0; } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80039330.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003AC3C.s") + +void func_8003AC3C(u16 arg0, s32 arg1) { + if ((D_8011D4D4 != 0) && (arg1 & 1)) { + func_8000488C(D_8011D4D4); + D_8011D4D4 = 0; + } + if (D_8011D4D4 == 0) { + func_80001D04(arg0, &D_8011D4D4); + } +} void func_8003ACA0(s32 arg0, s32 arg1) { @@ -359,7 +482,21 @@ f32 func_8003ACAC(void) { return D_8011D4D0; } +#if 1 GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003ACBC.s") +#else + +void func_8003ACBC(Player *arg0, u8 *arg1, s32 arg2) { + f32 phi_f0 = (s32)arg1[8]; // Regalloc issue here + if (phi_f0 < 5.0f) { + phi_f0 = 5.0f; + } + phi_f0 /= 64; + arg0->scale = phi_f0; + arg0->y_rotation = arg1[10] << 6 << 4; // Not sure about the values here. + func_80011390(); +} +#endif void func_8003AD28(s32 arg0, s32 arg1) { @@ -377,7 +514,22 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003C1E0.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003C2E4.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003C644.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003C7A4.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003C9EC.s") + +void func_8003C9EC(Player *arg0, u8 *arg1) { + Player_64 *temp = arg0->unk64; + arg0->unk3A = arg1[8]; + arg0->y_rotation = arg1[9] << 6 << 4; + temp->unk0 = arg0->y_position; + arg0->unk4C->unk14 = 0x21; + arg0->unk4C->unk11 = 2; + arg0->unk4C->unk10 = 0x14; + arg0->unk4C->unk12 = 0; + temp->unk4 = 0; + if (arg0->unk3A >= arg0->descriptor_ptr->unk55) { + arg0->unk3A = 0; + } +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003CA68.s") void func_8003CE64(Player *arg0, u8 *arg1) { @@ -388,7 +540,12 @@ void func_8003CE64(Player *arg0, u8 *arg1) { arg0->unk78 = arg1[8]; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003CEA0.s") +void func_8003CEA0(Player *arg0, s32 arg1) { + if (arg0->unk4C->unk13 < 0x2D) { + func_8001E344(arg0->unk78, arg0); + } + arg0->unk4C->unk13 = (u8)0xFF; +} void func_8003CF00(s32 arg0, s32 arg1) { @@ -415,11 +572,11 @@ void func_8003CF58(Player *arg0, u8 *arg1) { arg0->unk4C->unk11 = 0; arg0->unk4C->unk10 = arg1[9]; arg0->unk78 = arg1[8]; - arg0->unk7C = arg1[9]; + arg0->unk7C.word = arg1[9]; } void func_8003CF98(Player *arg0, s32 arg1) { - if (arg0->unk4C->unk13 < arg0->unk7C) { + if (arg0->unk4C->unk13 < arg0->unk7C.word) { func_80028044(arg0->unk78); } } @@ -466,7 +623,18 @@ void func_8003D3EC(unk8003D3EC *arg0, s32 arg1) { } GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003D3FC.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003D534.s") + +void func_8003D534(Player *arg0, s32 arg1) { + arg0->unk4C->unk14 = 2; + arg0->unk4C->unk11 = 0; + arg0->unk4C->unk10 = 0x1E; + arg0->unk7C.half.upper = 0x14; + arg0->unk7C.half.lower = 0x10; + if (func_8009C30C() & 0x1000) { + func_8000FFB8(arg0); + } +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003D5A0.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003DBA0.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003DC5C.s") @@ -484,7 +652,15 @@ void func_8003E5BC(s32 arg0, s32 arg1) { } -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003E5C8.s") +void func_8003E5C8(Player *arg0, s32 arg1) { + arg0->unk4C->unk14 = 2; + arg0->unk4C->unk11 = 0; + arg0->unk4C->unk10 = 0x18; + arg0->unk4C->unk12 = 0; + arg0->unk78 = func_8000C8B4(0x1E0, arg0); + arg0->unk7C.word = 0; +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003E630.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003E694.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_8003EC14.s") @@ -516,7 +692,13 @@ void func_800403A8(unk800403A8 *arg0, s32 arg1, s32 arg2) { arg0->unk64 = func_80031CAC(arg0, arg1); } -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800403D8.s") +void func_800403D8(Player *arg0, s32 arg1, s32 arg2) { + arg0->unk64 = func_800BE654(arg0->unk2E, arg0->x_position, arg0->z_position); + arg0->unk4C->unk14 = 1; + arg0->unk4C->unk11 = 0; + arg0->unk4C->unk10 = 0x1E; + arg0->unk4C->unk12 = 0; +} f32 func_800BEEB4(Player_64*); @@ -599,7 +781,16 @@ void func_8004203C(Player *arg0, unk8004203C_arg1 *arg1) { arg0->unk78 = arg1->unkA; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80042090.s") +void func_80042090(Player *arg0, s32 arg1) { + if (arg0->unk78 >= func_8006F94C(0, 0x400)) { + arg0->unk74 = 1; + } else { + arg0->unk74 = 0; + } + if (func_8009C3C8() < 2) { + func_800AFC3C(arg0, arg1); + } +} typedef struct unk8004210C { u8 pad0[0x3C]; @@ -629,7 +820,25 @@ GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80042178.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80042210.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_800422F0.s") GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80042998.s") -GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80042A1C.s") + +typedef struct unk80042A1C { + u8 pad0[0x78]; + f32 unk78; + s16 unk7C; + s16 unk7E; +} unk80042A1C; + +void func_80042A1C(unk80042A1C *arg0, s8 *arg1) { + arg0->unk78 = arg1[9] * 8.0f; + arg0->unk78 *= arg0->unk78; + arg0->unk7C = arg1[8]; + arg0->unk7E = 0; + if (is_in_tracks_mode()) { + func_8000FFB8(arg0); + } + func_800C56D0(4); +} + GLOBAL_ASM("asm/non_matchings/unknown_032760/func_80042A90.s") typedef struct unk80042CD0 {