diff --git a/asm/non_matchings/unknown_07AF10/func_8007A4C0.s b/asm/non_matchings/unknown_07AF10/func_8007A4C0.s deleted file mode 100644 index 6c005c1e..00000000 --- a/asm/non_matchings/unknown_07AF10/func_8007A4C0.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_8007A4C0 -/* 07B0C0 8007A4C0 3C018012 */ lui $at, 0x8012 -/* 07B0C4 8007A4C4 03E00008 */ jr $ra -/* 07B0C8 8007A4C8 AC2462CC */ sw $a0, 0x62cc($at) - -/* 07B0CC 8007A4CC 3C028012 */ lui $v0, %hi(D_801262CC) # $v0, 0x8012 -/* 07B0D0 8007A4D0 8C4262CC */ lw $v0, %lo(D_801262CC)($v0) -/* 07B0D4 8007A4D4 03E00008 */ jr $ra -/* 07B0D8 8007A4D8 00000000 */ nop - -/* 07B0DC 8007A4DC 3C0E8012 */ lui $t6, %hi(D_801262CC) # $t6, 0x8012 -/* 07B0E0 8007A4E0 8DCE62CC */ lw $t6, %lo(D_801262CC)($t6) -/* 07B0E4 8007A4E4 3C19800E */ lui $t9, %hi(D_800DE77C) # $t9, 0x800e -/* 07B0E8 8007A4E8 31CF0007 */ andi $t7, $t6, 7 -/* 07B0EC 8007A4EC 000FC0C0 */ sll $t8, $t7, 3 -/* 07B0F0 8007A4F0 2739E77C */ addiu $t9, %lo(D_800DE77C) # addiu $t9, $t9, -0x1884 -/* 07B0F4 8007A4F4 03191821 */ addu $v1, $t8, $t9 -/* 07B0F8 8007A4F8 8C680000 */ lw $t0, ($v1) -/* 07B0FC 8007A4FC 00041080 */ sll $v0, $a0, 2 -/* 07B100 8007A500 3C018012 */ lui $at, 0x8012 -/* 07B104 8007A504 00220821 */ addu $at, $at, $v0 -/* 07B108 8007A508 AC2862B0 */ sw $t0, 0x62b0($at) -/* 07B10C 8007A50C 8C690004 */ lw $t1, 4($v1) -/* 07B110 8007A510 3C018012 */ lui $at, 0x8012 -/* 07B114 8007A514 00220821 */ addu $at, $at, $v0 -/* 07B118 8007A518 03E00008 */ jr $ra -/* 07B11C 8007A51C AC2962B8 */ sw $t1, 0x62b8($at) - diff --git a/asm/non_matchings/unknown_07AF10/func_8007A520.s b/asm/non_matchings/unknown_07AF10/func_8007A520.s deleted file mode 100644 index af4aa8a2..00000000 --- a/asm/non_matchings/unknown_07AF10/func_8007A520.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel func_8007A520 -/* 07B120 8007A520 3C038012 */ lui $v1, %hi(D_801262C8) # $v1, 0x8012 -/* 07B124 8007A524 8C6362C8 */ lw $v1, %lo(D_801262C8)($v1) -/* 07B128 8007A528 3C188012 */ lui $t8, 0x8012 -/* 07B12C 8007A52C 00037080 */ sll $t6, $v1, 2 -/* 07B130 8007A530 030EC021 */ addu $t8, $t8, $t6 -/* 07B134 8007A534 3C0F8012 */ lui $t7, 0x8012 -/* 07B138 8007A538 8F1862B8 */ lw $t8, 0x62b8($t8) -/* 07B13C 8007A53C 01EE7821 */ addu $t7, $t7, $t6 -/* 07B140 8007A540 8DEF62B0 */ lw $t7, 0x62b0($t7) -/* 07B144 8007A544 0018CC00 */ sll $t9, $t8, 0x10 -/* 07B148 8007A548 03E00008 */ jr $ra -/* 07B14C 8007A54C 01F91025 */ or $v0, $t7, $t9 - diff --git a/asm/non_matchings/unknown_07AF10/func_8007A974.s b/asm/non_matchings/unknown_07AF10/func_8007A974.s deleted file mode 100644 index decd5004..00000000 --- a/asm/non_matchings/unknown_07AF10/func_8007A974.s +++ /dev/null @@ -1,8 +0,0 @@ -glabel func_8007A974 -/* 07B574 8007A974 3C018012 */ lui $at, %hi(D_80126308) # $at, 0x8012 -/* 07B578 8007A978 A0206308 */ sb $zero, %lo(D_80126308)($at) -/* 07B57C 8007A97C 3C018012 */ lui $at, 0x8012 -/* 07B580 8007A980 240E0002 */ li $t6, 2 -/* 07B584 8007A984 03E00008 */ jr $ra -/* 07B588 8007A988 A02E6309 */ sb $t6, 0x6309($at) - diff --git a/src/mips1/unknown_07AF10.c b/src/mips1/unknown_07AF10.c index d6250047..67ffcfc9 100644 --- a/src/mips1/unknown_07AF10.c +++ b/src/mips1/unknown_07AF10.c @@ -4,12 +4,49 @@ #include "types.h" #include "macros.h" +/* Size: 0x08 bytes */ +typedef struct unk800DE77C { + /* 0x00 */ s32 unk0; + /* 0x04 */ s32 unk4; +} unk800DE77C; + +extern unk800DE77C D_800DE77C[8]; +extern s32 D_801262B0[2]; +extern s32 D_801262B8[2]; +extern s32 D_801262C8; +extern s32 D_801262CC; +extern s8 D_80126308; +extern s8 D_80126309; + GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007A310.s") -GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007A4C0.s") -GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007A520.s") + +void func_8007A4C0(s32 arg0) { + D_801262CC = arg0; +} + +/* Unused? */ +s32 func_8007A4CC(void) { + return D_801262CC; +} + +/* Unused? */ +void func_8007A4DC(s32 arg0) { + D_801262B0[arg0] = D_800DE77C[D_801262CC & 0x07].unk0; + D_801262B8[arg0] = D_800DE77C[D_801262CC & 0x07].unk4; +} + +s32 func_8007A520(void) { + return (D_801262B8[D_801262C8] << 16) | D_801262B0[D_801262C8]; +} + GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007A550.s") GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007A7E8.s") -GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007A974.s") + +void func_8007A974(void) { + D_80126308 = 0; + D_80126309 = 2; +} + GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007A98C.s") GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007AB24.s") GLOBAL_ASM("asm/non_matchings/unknown_07AF10/func_8007AB9C.s")