diff --git a/asm/non_matchings/unknown_001050/func_80000BE0.s b/asm/non_matchings/unknown_001050/func_80000BE0.s deleted file mode 100644 index e34d86b0..00000000 --- a/asm/non_matchings/unknown_001050/func_80000BE0.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_80000BE0 -/* 0017E0 80000BE0 3C0E800E */ lui $t6, %hi(D_800DC670) # $t6, 0x800e -/* 0017E4 80000BE4 91CEC670 */ lbu $t6, %lo(D_800DC670)($t6) -/* 0017E8 80000BE8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0017EC 80000BEC AFBF0014 */ sw $ra, 0x14($sp) -/* 0017F0 80000BF0 AFA40018 */ sw $a0, 0x18($sp) -/* 0017F4 80000BF4 15C00005 */ bnez $t6, .L80000C0C -/* 0017F8 80000BF8 308500FF */ andi $a1, $a0, 0xff -/* 0017FC 80000BFC 3C04800E */ lui $a0, %hi(D_800DC630) # $a0, 0x800e -/* 001800 80000C00 8C84C630 */ lw $a0, %lo(D_800DC630)($a0) -/* 001804 80000C04 0C002C04 */ jal func_8000B010 -/* 001808 80000C08 00000000 */ nop -.L80000C0C: -/* 00180C 80000C0C 8FBF0014 */ lw $ra, 0x14($sp) -/* 001810 80000C10 27BD0018 */ addiu $sp, $sp, 0x18 -/* 001814 80000C14 03E00008 */ jr $ra -/* 001818 80000C18 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80000C98.s b/asm/non_matchings/unknown_001050/func_80000C98.s deleted file mode 100644 index 1d2f0b54..00000000 --- a/asm/non_matchings/unknown_001050/func_80000C98.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_80000C98 -/* 001898 80000C98 00047100 */ sll $t6, $a0, 4 -/* 00189C 80000C9C 3C018011 */ lui $at, %hi(D_80115D38) # $at, 0x8011 -/* 0018A0 80000CA0 01C47023 */ subu $t6, $t6, $a0 -/* 0018A4 80000CA4 AC205D38 */ sw $zero, %lo(D_80115D38)($at) -/* 0018A8 80000CA8 000E7080 */ sll $t6, $t6, 2 -/* 0018AC 80000CAC 000E7A03 */ sra $t7, $t6, 8 -/* 0018B0 80000CB0 3C018011 */ lui $at, 0x8011 -/* 0018B4 80000CB4 03E00008 */ jr $ra -/* 0018B8 80000CB8 AC2F5D3C */ sw $t7, 0x5d3c($at) - diff --git a/asm/non_matchings/unknown_001050/func_8000105C.s b/asm/non_matchings/unknown_001050/func_8000105C.s deleted file mode 100644 index 8d994c44..00000000 --- a/asm/non_matchings/unknown_001050/func_8000105C.s +++ /dev/null @@ -1,8 +0,0 @@ -glabel func_8000105C -/* 001C5C 8000105C 3C0E800E */ lui $t6, %hi(D_800DC630) # $t6, 0x800e -/* 001C60 80001060 8DCEC630 */ lw $t6, %lo(D_800DC630)($t6) -/* 001C64 80001064 00000000 */ nop -/* 001C68 80001068 95C20030 */ lhu $v0, 0x30($t6) -/* 001C6C 8000106C 03E00008 */ jr $ra -/* 001C70 80001070 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_8000114C.s b/asm/non_matchings/unknown_001050/func_8000114C.s deleted file mode 100644 index cc0333a3..00000000 --- a/asm/non_matchings/unknown_001050/func_8000114C.s +++ /dev/null @@ -1,11 +0,0 @@ -glabel func_8000114C -/* 001D4C 8000114C 3C0E800E */ lui $t6, %hi(D_800DC630) # $t6, 0x800e -/* 001D50 80001150 8DCEC630 */ lw $t6, %lo(D_800DC630)($t6) -/* 001D54 80001154 24180001 */ li $t8, 1 -/* 001D58 80001158 95CF0030 */ lhu $t7, 0x30($t6) -/* 001D5C 8000115C 0098C804 */ sllv $t9, $t8, $a0 -/* 001D60 80001160 01F91024 */ and $v0, $t7, $t9 -/* 001D64 80001164 2C480001 */ sltiu $t0, $v0, 1 -/* 001D68 80001168 03E00008 */ jr $ra -/* 001D6C 8000116C 01001025 */ move $v0, $t0 - diff --git a/asm/non_matchings/unknown_001050/func_800011A8.s b/asm/non_matchings/unknown_001050/func_800011A8.s deleted file mode 100644 index 135b001d..00000000 --- a/asm/non_matchings/unknown_001050/func_800011A8.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_800011A8 -/* 001DA8 800011A8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 001DAC 800011AC 308700FF */ andi $a3, $a0, 0xff -/* 001DB0 800011B0 28E10010 */ slti $at, $a3, 0x10 -/* 001DB4 800011B4 AFBF0014 */ sw $ra, 0x14($sp) -/* 001DB8 800011B8 AFA40018 */ sw $a0, 0x18($sp) -/* 001DBC 800011BC AFA5001C */ sw $a1, 0x1c($sp) -/* 001DC0 800011C0 10200005 */ beqz $at, .L800011D8 -/* 001DC4 800011C4 30A600FF */ andi $a2, $a1, 0xff -/* 001DC8 800011C8 3C04800E */ lui $a0, %hi(D_800DC630) # $a0, 0x800e -/* 001DCC 800011CC 8C84C630 */ lw $a0, %lo(D_800DC630)($a0) -/* 001DD0 800011D0 0C031E38 */ jal func_800C78E0 -/* 001DD4 800011D4 30E500FF */ andi $a1, $a3, 0xff -.L800011D8: -/* 001DD8 800011D8 8FBF0014 */ lw $ra, 0x14($sp) -/* 001DDC 800011DC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 001DE0 800011E0 03E00008 */ jr $ra -/* 001DE4 800011E4 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80001268.s b/asm/non_matchings/unknown_001050/func_80001268.s deleted file mode 100644 index 634770ab..00000000 --- a/asm/non_matchings/unknown_001050/func_80001268.s +++ /dev/null @@ -1,19 +0,0 @@ -glabel func_80001268 -/* 001E68 80001268 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 001E6C 8000126C 308700FF */ andi $a3, $a0, 0xff -/* 001E70 80001270 28E10010 */ slti $at, $a3, 0x10 -/* 001E74 80001274 AFBF0014 */ sw $ra, 0x14($sp) -/* 001E78 80001278 AFA40018 */ sw $a0, 0x18($sp) -/* 001E7C 8000127C AFA5001C */ sw $a1, 0x1c($sp) -/* 001E80 80001280 10200005 */ beqz $at, .L80001298 -/* 001E84 80001284 30A600FF */ andi $a2, $a1, 0xff -/* 001E88 80001288 3C04800E */ lui $a0, %hi(D_800DC630) # $a0, 0x800e -/* 001E8C 8000128C 8C84C630 */ lw $a0, %lo(D_800DC630)($a0) -/* 001E90 80001290 0C018EE8 */ jal func_80063BA0 -/* 001E94 80001294 30E500FF */ andi $a1, $a3, 0xff -.L80001298: -/* 001E98 80001298 8FBF0014 */ lw $ra, 0x14($sp) -/* 001E9C 8000129C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 001EA0 800012A0 03E00008 */ jr $ra -/* 001EA4 800012A4 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_800012A8.s b/asm/non_matchings/unknown_001050/func_800012A8.s deleted file mode 100644 index cd7907e2..00000000 --- a/asm/non_matchings/unknown_001050/func_800012A8.s +++ /dev/null @@ -1,20 +0,0 @@ -glabel func_800012A8 -/* 001EA8 800012A8 308500FF */ andi $a1, $a0, 0xff -/* 001EAC 800012AC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 001EB0 800012B0 28A10010 */ slti $at, $a1, 0x10 -/* 001EB4 800012B4 AFBF0014 */ sw $ra, 0x14($sp) -/* 001EB8 800012B8 14200003 */ bnez $at, .L800012C8 -/* 001EBC 800012BC AFA40018 */ sw $a0, 0x18($sp) -/* 001EC0 800012C0 10000005 */ b .L800012D8 -/* 001EC4 800012C4 00001025 */ move $v0, $zero -.L800012C8: -/* 001EC8 800012C8 3C04800E */ lui $a0, %hi(D_800DC630) # $a0, 0x800e -/* 001ECC 800012CC 8C84C630 */ lw $a0, %lo(D_800DC630)($a0) -/* 001ED0 800012D0 0C018F00 */ jal func_80063C00 -/* 001ED4 800012D4 00000000 */ nop -.L800012D8: -/* 001ED8 800012D8 8FBF0014 */ lw $ra, 0x14($sp) -/* 001EDC 800012DC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 001EE0 800012E0 03E00008 */ jr $ra -/* 001EE4 800012E4 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_800014BC.s b/asm/non_matchings/unknown_001050/func_800014BC.s deleted file mode 100644 index 9c2430a0..00000000 --- a/asm/non_matchings/unknown_001050/func_800014BC.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_800014BC -/* 0020BC 800014BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0020C0 800014C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 0020C4 800014C4 0C00056E */ jal func_800015B8 -/* 0020C8 800014C8 E7AC0018 */ swc1 $f12, 0x18($sp) -/* 0020CC 800014CC 304E00FF */ andi $t6, $v0, 0xff -/* 0020D0 800014D0 448E2000 */ mtc1 $t6, $f4 -/* 0020D4 800014D4 05C10005 */ bgez $t6, .L800014EC -/* 0020D8 800014D8 468021A0 */ cvt.s.w $f6, $f4 -/* 0020DC 800014DC 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0020E0 800014E0 44814000 */ mtc1 $at, $f8 -/* 0020E4 800014E4 00000000 */ nop -/* 0020E8 800014E8 46083180 */ add.s $f6, $f6, $f8 -.L800014EC: -/* 0020EC 800014EC C7AA0018 */ lwc1 $f10, 0x18($sp) -/* 0020F0 800014F0 00000000 */ nop -/* 0020F4 800014F4 460A3402 */ mul.s $f16, $f6, $f10 -/* 0020F8 800014F8 444FF800 */ cfc1 $t7, $31 -/* 0020FC 800014FC 00000000 */ nop -/* 002100 80001500 35E10003 */ ori $at, $t7, 3 -/* 002104 80001504 38210002 */ xori $at, $at, 2 -/* 002108 80001508 44C1F800 */ ctc1 $at, $31 -/* 00210C 8000150C 00000000 */ nop -/* 002110 80001510 460084A4 */ cvt.w.s $f18, $f16 -/* 002114 80001514 44049000 */ mfc1 $a0, $f18 -/* 002118 80001518 44CFF800 */ ctc1 $t7, $31 -/* 00211C 8000151C 0C00054D */ jal func_80001534 -/* 002120 80001520 00000000 */ nop -/* 002124 80001524 8FBF0014 */ lw $ra, 0x14($sp) -/* 002128 80001528 27BD0018 */ addiu $sp, $sp, 0x18 -/* 00212C 8000152C 03E00008 */ jr $ra -/* 002130 80001530 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80001918.s b/asm/non_matchings/unknown_001050/func_80001918.s deleted file mode 100644 index 7babc402..00000000 --- a/asm/non_matchings/unknown_001050/func_80001918.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_80001918 -/* 002518 80001918 3C038011 */ lui $v1, %hi(D_80115D04) # $v1, 0x8011 -/* 00251C 8000191C 90635D04 */ lbu $v1, %lo(D_80115D04)($v1) -/* 002520 80001920 3C0E800E */ lui $t6, %hi(D_800DC630) # $t6, 0x800e -/* 002524 80001924 10600009 */ beqz $v1, .L8000194C -/* 002528 80001928 00001025 */ move $v0, $zero -/* 00252C 8000192C 8DCEC630 */ lw $t6, %lo(D_800DC630)($t6) -/* 002530 80001930 24010001 */ li $at, 1 -/* 002534 80001934 8DCF002C */ lw $t7, 0x2c($t6) -/* 002538 80001938 00000000 */ nop -/* 00253C 8000193C 15E10003 */ bne $t7, $at, .L8000194C -/* 002540 80001940 00000000 */ nop -/* 002544 80001944 03E00008 */ jr $ra -/* 002548 80001948 00601025 */ move $v0, $v1 - -.L8000194C: -/* 00254C 8000194C 03E00008 */ jr $ra -/* 002550 80001950 00000000 */ nop - -/* 002554 80001954 3C03800E */ lui $v1, %hi(D_800DC65C) # $v1, 0x800e -/* 002558 80001958 9063C65C */ lbu $v1, %lo(D_800DC65C)($v1) -/* 00255C 8000195C 3C028011 */ lui $v0, 0x8011 -/* 002560 80001960 10600003 */ beqz $v1, .L80001970 -/* 002564 80001964 00000000 */ nop -/* 002568 80001968 03E00008 */ jr $ra -/* 00256C 8000196C 00601025 */ move $v0, $v1 - -.L80001970: -/* 002570 80001970 90425D04 */ lbu $v0, 0x5d04($v0) -/* 002574 80001974 00000000 */ nop -/* 002578 80001978 03E00008 */ jr $ra -/* 00257C 8000197C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80001CB8.s b/asm/non_matchings/unknown_001050/func_80001CB8.s deleted file mode 100644 index af38f333..00000000 --- a/asm/non_matchings/unknown_001050/func_80001CB8.s +++ /dev/null @@ -1,23 +0,0 @@ -glabel func_80001CB8 -/* 0028B8 80001CB8 3C0F8011 */ lui $t7, %hi(D_80115D20) # $t7, 0x8011 -/* 0028BC 80001CBC 8DEF5D20 */ lw $t7, %lo(D_80115D20)($t7) -/* 0028C0 80001CC0 308EFFFF */ andi $t6, $a0, 0xffff -/* 0028C4 80001CC4 AFA40000 */ sw $a0, ($sp) -/* 0028C8 80001CC8 01EE082A */ slt $at, $t7, $t6 -/* 0028CC 80001CCC 10200003 */ beqz $at, .L80001CDC -/* 0028D0 80001CD0 01C02025 */ move $a0, $t6 -/* 0028D4 80001CD4 03E00008 */ jr $ra -/* 0028D8 80001CD8 00001025 */ move $v0, $zero - -.L80001CDC: -/* 0028DC 80001CDC 3C188011 */ lui $t8, %hi(D_80115D18) # $t8, 0x8011 -/* 0028E0 80001CE0 0004C880 */ sll $t9, $a0, 2 -/* 0028E4 80001CE4 8F185D18 */ lw $t8, %lo(D_80115D18)($t8) -/* 0028E8 80001CE8 0324C821 */ addu $t9, $t9, $a0 -/* 0028EC 80001CEC 0019C840 */ sll $t9, $t9, 1 -/* 0028F0 80001CF0 03194021 */ addu $t0, $t8, $t9 -/* 0028F4 80001CF4 95020006 */ lhu $v0, 6($t0) -/* 0028F8 80001CF8 00000000 */ nop -/* 0028FC 80001CFC 03E00008 */ jr $ra -/* 002900 80001D00 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_800020E8.s b/asm/non_matchings/unknown_001050/func_800020E8.s deleted file mode 100644 index d68674ef..00000000 --- a/asm/non_matchings/unknown_001050/func_800020E8.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_800020E8 -/* 002CE8 800020E8 3C0E8011 */ lui $t6, %hi(D_80115D14) # $t6, 0x8011 -/* 002CEC 800020EC 8DCE5D14 */ lw $t6, %lo(D_80115D14)($t6) -/* 002CF0 800020F0 00000000 */ nop -/* 002CF4 800020F4 8DCF0004 */ lw $t7, 4($t6) -/* 002CF8 800020F8 00000000 */ nop -/* 002CFC 800020FC 8DF8000C */ lw $t8, 0xc($t7) -/* 002D00 80002100 00000000 */ nop -/* 002D04 80002104 9702000E */ lhu $v0, 0xe($t8) -/* 002D08 80002108 03E00008 */ jr $ra -/* 002D0C 8000210C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80002110.s b/asm/non_matchings/unknown_001050/func_80002110.s deleted file mode 100644 index 4fb2a90e..00000000 --- a/asm/non_matchings/unknown_001050/func_80002110.s +++ /dev/null @@ -1,8 +0,0 @@ -glabel func_80002110 -/* 002D10 80002110 3C0E8011 */ lui $t6, %hi(D_80115CF8) # $t6, 0x8011 -/* 002D14 80002114 8DCE5CF8 */ lw $t6, %lo(D_80115CF8)($t6) -/* 002D18 80002118 00000000 */ nop -/* 002D1C 8000211C 91C20003 */ lbu $v0, 3($t6) -/* 002D20 80002120 03E00008 */ jr $ra -/* 002D24 80002124 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_800022BC.s b/asm/non_matchings/unknown_001050/func_800022BC.s deleted file mode 100644 index 634ddc93..00000000 --- a/asm/non_matchings/unknown_001050/func_800022BC.s +++ /dev/null @@ -1,32 +0,0 @@ -glabel func_800022BC -/* 002EBC 800022BC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 002EC0 800022C0 AFBF0014 */ sw $ra, 0x14($sp) -/* 002EC4 800022C4 AFA40018 */ sw $a0, 0x18($sp) -/* 002EC8 800022C8 00803025 */ move $a2, $a0 -/* 002ECC 800022CC AFA5001C */ sw $a1, 0x1c($sp) -/* 002ED0 800022D0 A3A6001B */ sb $a2, 0x1b($sp) -/* 002ED4 800022D4 0C00095C */ jal func_80002570 -/* 002ED8 800022D8 00A02025 */ move $a0, $a1 -/* 002EDC 800022DC 3C0E8011 */ lui $t6, %hi(D_80115CF8) # $t6, 0x8011 -/* 002EE0 800022E0 8DCE5CF8 */ lw $t6, %lo(D_80115CF8)($t6) -/* 002EE4 800022E4 93A6001B */ lbu $a2, 0x1b($sp) -/* 002EE8 800022E8 85CF0002 */ lh $t7, 2($t6) -/* 002EEC 800022EC 8FB8001C */ lw $t8, 0x1c($sp) -/* 002EF0 800022F0 00CF082A */ slt $at, $a2, $t7 -/* 002EF4 800022F4 10200009 */ beqz $at, .L8000231C -/* 002EF8 800022F8 3C19800E */ lui $t9, %hi(D_800DC630) # $t9, 0x800e -/* 002EFC 800022FC 8F39C630 */ lw $t9, %lo(D_800DC630)($t9) -/* 002F00 80002300 3C01800E */ lui $at, 0x800e -/* 002F04 80002304 17190004 */ bne $t8, $t9, .L80002318 -/* 002F08 80002308 00000000 */ nop -/* 002F0C 8000230C 3C01800E */ lui $at, %hi(D_800DC660) # $at, 0x800e -/* 002F10 80002310 10000002 */ b .L8000231C -/* 002F14 80002314 A026C65C */ sb $a2, %lo(D_800DC65C)($at) -.L80002318: -/* 002F18 80002318 A026C660 */ sb $a2, %lo(D_800DC660)($at) -.L8000231C: -/* 002F1C 8000231C 8FBF0014 */ lw $ra, 0x14($sp) -/* 002F20 80002320 27BD0018 */ addiu $sp, $sp, 0x18 -/* 002F24 80002324 03E00008 */ jr $ra -/* 002F28 80002328 00000000 */ nop - diff --git a/asm/non_matchings/unknown_001050/func_80002608.s b/asm/non_matchings/unknown_001050/func_80002608.s deleted file mode 100644 index 7e9f1c99..00000000 --- a/asm/non_matchings/unknown_001050/func_80002608.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel func_80002608 -/* 003208 80002608 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 00320C 8000260C AFBF0014 */ sw $ra, 0x14($sp) -/* 003210 80002610 AFA40018 */ sw $a0, 0x18($sp) -/* 003214 80002614 308E00FF */ andi $t6, $a0, 0xff -/* 003218 80002618 0C01924B */ jal func_8006492C -/* 00321C 8000261C 01C02025 */ move $a0, $t6 -/* 003220 80002620 8FBF0014 */ lw $ra, 0x14($sp) -/* 003224 80002624 27BD0018 */ addiu $sp, $sp, 0x18 -/* 003228 80002628 03E00008 */ jr $ra -/* 00322C 8000262C 00000000 */ nop - -/* 003230 80002630 3C0F8011 */ lui $t7, %hi(D_80115D04) # $t7, 0x8011 -/* 003234 80002634 91EF5D04 */ lbu $t7, %lo(D_80115D04)($t7) -/* 003238 80002638 3C0E8011 */ lui $t6, %hi(D_80115D1C) # $t6, 0x8011 -/* 00323C 8000263C 8DCE5D1C */ lw $t6, %lo(D_80115D1C)($t6) -/* 003240 80002640 000FC080 */ sll $t8, $t7, 2 -/* 003244 80002644 030FC023 */ subu $t8, $t8, $t7 -/* 003248 80002648 01D8C821 */ addu $t9, $t6, $t8 -/* 00324C 8000264C 93220002 */ lbu $v0, 2($t9) -/* 003250 80002650 03E00008 */ jr $ra -/* 003254 80002654 00000000 */ nop - -/* 003258 80002658 00000000 */ nop -/* 00325C 8000265C 00000000 */ nop - diff --git a/src/mips1/unknown_001050.c b/src/mips1/unknown_001050.c index c99fc361..ea8cb1af 100644 --- a/src/mips1/unknown_001050.c +++ b/src/mips1/unknown_001050.c @@ -11,8 +11,16 @@ typedef struct unk80115D48 { /* 0x04 */ s32 unk4; } unk80115D48; -extern s32* D_800DC630; -extern s32* D_800DC634; +/* Unknown size */ +typedef struct unk800DC630 { + u8 pad0[0x2C]; + s32 unk2C; + u16 unk30; +} unk800DC630; + +extern unk800DC630* D_800DC630; +extern unk800DC630* D_800DC634; + extern u8 D_800DC638; extern u8 D_800DC63C; extern u8 D_800DC640; @@ -21,12 +29,55 @@ extern s32 D_800DC64C; extern f32 D_800DC650; extern s32 D_800DC654; extern s32 D_800DC658; -extern s8 D_800DC670; +extern u8 D_800DC660; +extern u8 D_800DC670; + +/* Unknown size */ +typedef struct unk80115CF8 { + u8 pad0[2]; + s16 unk2; +} unk80115CF8; + +extern unk80115CF8 *D_80115CF8; + extern u8 D_80115D04; extern u8 D_80115D05; extern s32 D_80115D08; -extern s32 D_80115D18; -extern s32 D_80115D1C; + +typedef struct unk80115D14_4_C { + u8 pad0[0xE]; + u16 unkE; +} unk80115D14_4_C; + +typedef struct unk80115D14_4 { + u8 pad0[0xC]; + unk80115D14_4_C* unkC; +} unk80115D14_4; + +typedef struct unk80115D14 { + u8 pad0[4]; + unk80115D14_4* unk4; +} unk80115D14; + +extern unk80115D14 *D_80115D14; + +/* Size: 0x0A bytes */ +typedef struct unk80115D18 { + u8 pad0[6]; + u16 unk6; + u8 pad8[2]; +} unk80115D18; + +extern unk80115D18* D_80115D18; + +/* Size: 3 bytes */ +typedef struct unk80115D1C { + u8 unk0; + u8 unk1; + u8 unk2; +} unk80115D1C; + +extern unk80115D1C* D_80115D1C; extern s32 D_80115D20; extern s32 D_80115D24; extern s32 D_80115D28; @@ -85,6 +136,8 @@ void func_80000B28(void) { D_800DC648 = 0; } +void func_800022BC(u8, unk800DC630*); + void func_80000B34(u8 arg0) { if (D_800DC648 == 0 && D_800DC654 != 0) { D_80115D04 = arg0; @@ -99,7 +152,13 @@ void func_80000B34(u8 arg0) { } } -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000BE0.s") +void func_8000B010(unk800DC630* arg0, u8 arg1); + +void func_80000BE0(u8 arg0) { + if (D_800DC670 == 0) { + func_8000B010(D_800DC630, arg0); + } +} void func_80000C1C(void) { D_800DC670 = 1; @@ -118,7 +177,10 @@ void func_80000C68(u8 arg0) { func_80063A90(D_800DC630, arg0); } -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80000C98.s") +void func_80000C98(s32 arg0) { + D_80115D38 = 0; + D_80115D3C = (arg0 * 0x3C) >> 8; +} void func_80000CBC(void) { D_80115D38 = 0; @@ -142,7 +204,10 @@ void func_80001050(void) { D_800DC658 = 0; } -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_8000105C.s") +u16 func_8000105C(void) { + return D_800DC630->unk30; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001074.s") void func_80001114(u8 arg0) { @@ -151,7 +216,9 @@ void func_80001114(u8 arg0) { } } -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_8000114C.s") +s32 func_8000114C(s32 arg0) { + return (D_800DC630->unk30 & (1 << arg0)) == 0; +} void func_80001170(u8 arg0) { if (arg0 < 0x10) { @@ -159,12 +226,41 @@ void func_80001170(u8 arg0) { } } -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800011A8.s") +s32 func_800C78E0(unk800DC630*, u8 arg1, u8 arg2); + +void func_800011A8(u8 arg0, u8 arg1) { + if (arg0 < 0x10) { + func_800C78E0(D_800DC630, arg0, arg1); + } +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800011E8.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001268.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800012A8.s") + +s32 func_80063BA0(unk800DC630*, u8 arg1, u8 arg2); + +void func_80001268(u8 arg0, u8 arg1) { + if (arg0 < 0x10) { + func_80063BA0(D_800DC630, arg0, arg1); + } +} + +s32 func_80063C00(unk800DC630*, u8 arg1); + +s32 func_800012A8(u8 arg0) { + if (arg0 >= 0x10) { + return 0; + } + return func_80063C00(D_800DC630, arg0); +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800012E8.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800014BC.s") + +s16 func_800015B8(void); + +void func_800014BC(f32 arg0) { + func_80001534((s32)((f32)(u32)(func_800015B8() & 0xFF) * arg0)); +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001534.s") s16 func_800015B8(void) { @@ -176,10 +272,13 @@ u8 func_800015C8(void) { } GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800015F8.s") + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001784.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800017D4.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001844.s") +void func_80002570(unk800DC630* arg0); + void func_800018E0(void) { if (func_80001C08() == 0) { D_80115D05 = 0; @@ -187,7 +286,22 @@ void func_800018E0(void) { } } -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001918.s") +u8 func_80001918(void) { + if (D_80115D04 != 0 && D_800DC630->unk2C == 1) { + return D_80115D04; + } + return 0; +} + +extern u8 D_800DC65C; + +// Unused? +u8 func_80001954(void) { + if (D_800DC65C != 0) { + return D_800DC65C; + } + return D_80115D04; +} u8 func_80001980(void) { return D_80115D05; @@ -210,17 +324,32 @@ void func_80001B0C(u8 arg0) { } GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001B58.s") + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001BC0.s") + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001C08.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001CB8.s") + +u16 func_80001CB8(u16 arg0) { + if (D_80115D20 < arg0) { + return 0; + } + return D_80115D18[arg0].unk6; +} + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001D04.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001EA8.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001F14.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80001FB8.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800020E8.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80002110.s") -void func_80002128(s32* arg0, s32* arg1, s32* arg2) { +u16 func_800020E8(void) { + return D_80115D14->unk4->unkC->unkE; +} + +u8 func_80002110(void) { + return D_80115CF8->unk2; +} + +void func_80002128(unk80115D18 **arg0, s32 *arg1, s32 *arg2) { if (arg0 != NULL) { *arg0 = D_80115D18; } @@ -233,7 +362,7 @@ void func_80002128(s32* arg0, s32* arg1, s32* arg2) { } /* Unused? */ -void func_8000216C(s32* arg0, s32* arg1, s32* arg2) { +void func_8000216C(unk80115D1C **arg0, s32 *arg1, s32 *arg2) { if (arg0 != NULL) { *arg0 = D_80115D1C; } @@ -247,7 +376,28 @@ void func_8000216C(s32* arg0, s32* arg1, s32* arg2) { GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800021B0.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80002224.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_800022BC.s") + +void func_800022BC(u8 arg0, unk800DC630* arg1) { + func_80002570(arg1); + if (arg0 < D_80115CF8->unk2) { + if (arg1 == D_800DC630) { + D_800DC65C = arg0; + return; + } + D_800DC660 = arg0; + } +} + + GLOBAL_ASM("asm/non_matchings/unknown_001050/func_8000232C.s") GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80002570.s") -GLOBAL_ASM("asm/non_matchings/unknown_001050/func_80002608.s") + +void func_8006492C(u8 arg0); + +void func_80002608(u8 arg0) { + func_8006492C(arg0); +} + +u8 func_80002630(void) { + return D_80115D1C[D_80115D04].unk2; +}