Decompiled 8 functions in unknown_043920

This commit is contained in:
David Benepe
2020-07-06 19:58:16 -05:00
parent 9441f7768d
commit 1b115e53e7
9 changed files with 85 additions and 194 deletions
@@ -1,5 +0,0 @@
glabel func_800521B8
/* 052DB8 800521B8 3C018012 */ lui $at, 0x8012
/* 052DBC 800521BC 03E00008 */ jr $ra
/* 052DC0 800521C0 A024D582 */ sb $a0, -0x2a7e($at)
@@ -1,31 +0,0 @@
glabel func_800598D0
/* 05A4D0 800598D0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 05A4D4 800598D4 AFBF0014 */ sw $ra, 0x14($sp)
/* 05A4D8 800598D8 3C05FF00 */ lui $a1, (0xFF0000FF >> 16) # lui $a1, 0xff00
/* 05A4DC 800598DC 34A500FF */ ori $a1, (0xFF0000FF & 0xFFFF) # ori $a1, $a1, 0xff
/* 05A4E0 800598E0 0C01C327 */ jal func_80070C9C
/* 05A4E4 800598E4 240421C0 */ li $a0, 8640
/* 05A4E8 800598E8 3C038012 */ lui $v1, %hi(D_8011D590) # $v1, 0x8012
/* 05A4EC 800598EC 3C048012 */ lui $a0, %hi(D_8011D5A0) # $a0, 0x8012
/* 05A4F0 800598F0 2484D5A0 */ addiu $a0, %lo(D_8011D5A0) # addiu $a0, $a0, -0x2a60
/* 05A4F4 800598F4 2463D590 */ addiu $v1, %lo(D_8011D590) # addiu $v1, $v1, -0x2a70
/* 05A4F8 800598F8 3C058012 */ lui $a1, %hi(D_8011D5A8) # $a1, 0x8012
/* 05A4FC 800598FC 24A5D5A8 */ addiu $a1, %lo(D_8011D5A8) # addiu $a1, $a1, -0x2a58
/* 05A500 80059900 244F10E0 */ addiu $t7, $v0, 0x10e0
/* 05A504 80059904 AC620000 */ sw $v0, ($v1)
/* 05A508 80059908 AC6F0004 */ sw $t7, 4($v1)
/* 05A50C 8005990C AC600008 */ sw $zero, 8($v1)
/* 05A510 80059910 A4800000 */ sh $zero, ($a0)
/* 05A514 80059914 A4800002 */ sh $zero, 2($a0)
/* 05A518 80059918 A4800004 */ sh $zero, 4($a0)
/* 05A51C 8005991C A4A00000 */ sh $zero, ($a1)
/* 05A520 80059920 A4A00002 */ sh $zero, 2($a1)
/* 05A524 80059924 3C018012 */ lui $at, %hi(D_8011D59D) # $at, 0x8012
/* 05A528 80059928 8FBF0014 */ lw $ra, 0x14($sp)
/* 05A52C 8005992C A020D59D */ sb $zero, %lo(D_8011D59D)($at)
/* 05A530 80059930 3C018012 */ lui $at, %hi(D_8011D5AC) # $at, 0x8012
/* 05A534 80059934 2418FFFF */ li $t8, -1
/* 05A538 80059938 A438D5AC */ sh $t8, %lo(D_8011D5AC)($at)
/* 05A53C 8005993C 03E00008 */ jr $ra
/* 05A540 80059940 27BD0018 */ addiu $sp, $sp, 0x18
@@ -1,18 +0,0 @@
glabel func_80059944
/* 05A544 80059944 3C0E8012 */ lui $t6, %hi(D_8011D59D) # $t6, 0x8012
/* 05A548 80059948 81CED59D */ lb $t6, %lo(D_8011D59D)($t6)
/* 05A54C 8005994C 3C038012 */ lui $v1, %hi(D_8011D59C) # $v1, 0x8012
/* 05A550 80059950 2463D59C */ addiu $v1, %lo(D_8011D59C) # addiu $v1, $v1, -0x2a64
/* 05A554 80059954 A06E0000 */ sb $t6, ($v1)
/* 05A558 80059958 80620000 */ lb $v0, ($v1)
/* 05A55C 8005995C 3C018012 */ lui $at, 0x8012
/* 05A560 80059960 00027840 */ sll $t7, $v0, 1
/* 05A564 80059964 002F0821 */ addu $at, $at, $t7
/* 05A568 80059968 A420D5A0 */ sh $zero, -0x2a60($at)
/* 05A56C 8005996C 3C018012 */ lui $at, 0x8012
/* 05A570 80059970 002F0821 */ addu $at, $at, $t7
/* 05A574 80059974 A420D5A8 */ sh $zero, -0x2a58($at)
/* 05A578 80059978 3C018012 */ lui $at, 0x8012
/* 05A57C 8005997C 03E00008 */ jr $ra
/* 05A580 80059980 A420D59E */ sh $zero, -0x2a62($at)
@@ -1,11 +0,0 @@
glabel func_80059984
/* 05A584 80059984 3C0E8012 */ lui $t6, %hi(D_8011D59C) # $t6, 0x8012
/* 05A588 80059988 81CED59C */ lb $t6, %lo(D_8011D59C)($t6)
/* 05A58C 8005998C 3C018012 */ lui $at, %hi(D_8011D59D) # $at, 0x8012
/* 05A590 80059990 25CF0001 */ addiu $t7, $t6, 1
/* 05A594 80059994 31F80001 */ andi $t8, $t7, 1
/* 05A598 80059998 A038D59D */ sb $t8, %lo(D_8011D59D)($at)
/* 05A59C 8005999C 3C018012 */ lui $at, 0x8012
/* 05A5A0 800599A0 03E00008 */ jr $ra
/* 05A5A4 800599A4 A424D5AC */ sh $a0, -0x2a54($at)
@@ -1,48 +0,0 @@
glabel func_800599B8
/* 05A5B8 800599B8 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 05A5BC 800599BC 3C038012 */ lui $v1, %hi(D_80120001) # $v1, 0x8012
/* 05A5C0 800599C0 8063D59C */ lb $v1, %lo(D_8011D59C)($v1)
/* 05A5C4 800599C4 3C0A8012 */ lui $t2, 0x8012
/* 05A5C8 800599C8 24630001 */ addiu $v1, %lo(D_80120001) # addiu $v1, $v1, 1
/* 05A5CC 800599CC 30780001 */ andi $t8, $v1, 1
/* 05A5D0 800599D0 00184880 */ sll $t1, $t8, 2
/* 05A5D4 800599D4 01495021 */ addu $t2, $t2, $t1
/* 05A5D8 800599D8 8D4AD590 */ lw $t2, -0x2a70($t2)
/* 05A5DC 800599DC 8FB90048 */ lw $t9, 0x48($sp)
/* 05A5E0 800599E0 AFA5003C */ sw $a1, 0x3c($sp)
/* 05A5E4 800599E4 AFBF0024 */ sw $ra, 0x24($sp)
/* 05A5E8 800599E8 AFA60040 */ sw $a2, 0x40($sp)
/* 05A5EC 800599EC 00067400 */ sll $t6, $a2, 0x10
/* 05A5F0 800599F0 87A5003E */ lh $a1, 0x3e($sp)
/* 05A5F4 800599F4 27A8002E */ addiu $t0, $sp, 0x2e
/* 05A5F8 800599F8 000E3403 */ sra $a2, $t6, 0x10
/* 05A5FC 800599FC AFA70044 */ sw $a3, 0x44($sp)
/* 05A600 80059A00 AFA80014 */ sw $t0, 0x14($sp)
/* 05A604 80059A04 AFB80030 */ sw $t8, 0x30($sp)
/* 05A608 80059A08 AFAA0018 */ sw $t2, 0x18($sp)
/* 05A60C 80059A0C 0C01D2CD */ jal func_80074B34
/* 05A610 80059A10 AFB90010 */ sw $t9, 0x10($sp)
/* 05A614 80059A14 8FAB0044 */ lw $t3, 0x44($sp)
/* 05A618 80059A18 8FA30030 */ lw $v1, 0x30($sp)
/* 05A61C 80059A1C 1160000E */ beqz $t3, .L80059A58
/* 05A620 80059A20 00402025 */ move $a0, $v0
/* 05A624 80059A24 1440000A */ bnez $v0, .L80059A50
/* 05A628 80059A28 240FFFFF */ li $t7, -1
/* 05A62C 80059A2C 87AC002E */ lh $t4, 0x2e($sp)
/* 05A630 80059A30 00036840 */ sll $t5, $v1, 1
/* 05A634 80059A34 3C018012 */ lui $at, 0x8012
/* 05A638 80059A38 002D0821 */ addu $at, $at, $t5
/* 05A63C 80059A3C 8FAE003C */ lw $t6, 0x3c($sp)
/* 05A640 80059A40 A42CD5A0 */ sh $t4, -0x2a60($at)
/* 05A644 80059A44 3C018012 */ lui $at, %hi(D_8011D5AC) # $at, 0x8012
/* 05A648 80059A48 10000003 */ b .L80059A58
/* 05A64C 80059A4C A42ED5AC */ sh $t6, %lo(D_8011D5AC)($at)
.L80059A50:
/* 05A650 80059A50 3C018012 */ lui $at, %hi(D_8011D5AC) # $at, 0x8012
/* 05A654 80059A54 A42FD5AC */ sh $t7, %lo(D_8011D5AC)($at)
.L80059A58:
/* 05A658 80059A58 8FBF0024 */ lw $ra, 0x24($sp)
/* 05A65C 80059A5C 27BD0038 */ addiu $sp, $sp, 0x38
/* 05A660 80059A60 03E00008 */ jr $ra
/* 05A664 80059A64 00801025 */ move $v0, $a0
@@ -1,31 +0,0 @@
glabel func_80059B7C
/* 05A77C 80059B7C 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 05A780 80059B80 3C028012 */ lui $v0, %hi(D_8011D59C) # $v0, 0x8012
/* 05A784 80059B84 8042D59C */ lb $v0, %lo(D_8011D59C)($v0)
/* 05A788 80059B88 3C0A8012 */ lui $t2, 0x8012
/* 05A78C 80059B8C 3C0C8012 */ lui $t4, 0x8012
/* 05A790 80059B90 00024840 */ sll $t1, $v0, 1
/* 05A794 80059B94 00025880 */ sll $t3, $v0, 2
/* 05A798 80059B98 018B6021 */ addu $t4, $t4, $t3
/* 05A79C 80059B9C 01495021 */ addu $t2, $t2, $t1
/* 05A7A0 80059BA0 854AD5A0 */ lh $t2, -0x2a60($t2)
/* 05A7A4 80059BA4 8D8CD590 */ lw $t4, -0x2a70($t4)
/* 05A7A8 80059BA8 87A8003A */ lh $t0, 0x3a($sp)
/* 05A7AC 80059BAC AFA5002C */ sw $a1, 0x2c($sp)
/* 05A7B0 80059BB0 AFBF0024 */ sw $ra, 0x24($sp)
/* 05A7B4 80059BB4 AFA60030 */ sw $a2, 0x30($sp)
/* 05A7B8 80059BB8 AFA70034 */ sw $a3, 0x34($sp)
/* 05A7BC 80059BBC 00067400 */ sll $t6, $a2, 0x10
/* 05A7C0 80059BC0 0007C400 */ sll $t8, $a3, 0x10
/* 05A7C4 80059BC4 87A5002E */ lh $a1, 0x2e($sp)
/* 05A7C8 80059BC8 00183C03 */ sra $a3, $t8, 0x10
/* 05A7CC 80059BCC 000E3403 */ sra $a2, $t6, 0x10
/* 05A7D0 80059BD0 AFAA0014 */ sw $t2, 0x14($sp)
/* 05A7D4 80059BD4 AFAC0018 */ sw $t4, 0x18($sp)
/* 05A7D8 80059BD8 0C01D400 */ jal func_80075000
/* 05A7DC 80059BDC AFA80010 */ sw $t0, 0x10($sp)
/* 05A7E0 80059BE0 8FBF0024 */ lw $ra, 0x24($sp)
/* 05A7E4 80059BE4 27BD0028 */ addiu $sp, $sp, 0x28
/* 05A7E8 80059BE8 03E00008 */ jr $ra
/* 05A7EC 80059BEC 00000000 */ nop
@@ -1,10 +0,0 @@
glabel func_80059E20
/* 05AA20 80059E20 3C0E8012 */ lui $t6, %hi(D_8011D59C) # $t6, 0x8012
/* 05AA24 80059E24 81CED59C */ lb $t6, %lo(D_8011D59C)($t6)
/* 05AA28 80059E28 3C028012 */ lui $v0, 0x8012
/* 05AA2C 80059E2C 000E7840 */ sll $t7, $t6, 1
/* 05AA30 80059E30 004F1021 */ addu $v0, $v0, $t7
/* 05AA34 80059E34 8442D5A8 */ lh $v0, -0x2a58($v0)
/* 05AA38 80059E38 03E00008 */ jr $ra
/* 05AA3C 80059E3C 00000000 */ nop
@@ -1,26 +0,0 @@
glabel func_8005A3D0
/* 05AFD0 8005A3D0 3C05800E */ lui $a1, %hi(D_800DCB50) # $a1, 0x800e
/* 05AFD4 8005A3D4 8CA5CB50 */ lw $a1, %lo(D_800DCB50)($a1)
/* 05AFD8 8005A3D8 00001025 */ move $v0, $zero
/* 05AFDC 8005A3DC 18A00009 */ blez $a1, .L8005A404
/* 05AFE0 8005A3E0 00002025 */ move $a0, $zero
/* 05AFE4 8005A3E4 3C038004 */ lui $v1, %hi(func_8003B4BC) # $v1, 0x8004
/* 05AFE8 8005A3E8 2463B4BC */ addiu $v1, %lo(func_8003B4BC) # addiu $v1, $v1, -0x4b44
.L8005A3EC:
/* 05AFEC 8005A3EC 00647021 */ addu $t6, $v1, $a0
/* 05AFF0 8005A3F0 91CF0000 */ lbu $t7, ($t6)
/* 05AFF4 8005A3F4 24840001 */ addiu $a0, $a0, 1
/* 05AFF8 8005A3F8 0085082A */ slt $at, $a0, $a1
/* 05AFFC 8005A3FC 1420FFFB */ bnez $at, .L8005A3EC
/* 05B000 8005A400 004F1021 */ addu $v0, $v0, $t7
.L8005A404:
/* 05B004 8005A404 3C18800E */ lui $t8, %hi(D_800DCDD0) # $t8, 0x800e
/* 05B008 8005A408 8F18CDD0 */ lw $t8, %lo(D_800DCDD0)($t8)
/* 05B00C 8005A40C 24190800 */ li $t9, 2048
/* 05B010 8005A410 10580002 */ beq $v0, $t8, .L8005A41C
/* 05B014 8005A414 3C01800E */ lui $at, %hi(D_800DCB54) # $at, 0x800e
/* 05B018 8005A418 A439CB54 */ sh $t9, %lo(D_800DCB54)($at)
.L8005A41C:
/* 05B01C 8005A41C 03E00008 */ jr $ra
/* 05B020 8005A420 00000000 */ nop
+85 -14
View File
@@ -4,16 +4,22 @@
#include "types.h"
#include "macros.h"
extern s32 D_800DCB50;
extern s16 D_800DCB54;
extern f32 D_800DCB9C;
extern s32 D_800DCDD0;
extern f32 D_800E6A00;
extern s8 D_8011D582;
extern s8 D_8011D583;
extern s8 D_8011D584;
extern s16 D_8011D5AC;
extern s32 D_8011D598;
extern f32 D_800DCB9C;
extern f32 D_800E6A00;
extern s8 D_8011D59C;
extern s8 D_8011D59D;
extern s16 D_8011D59E;
extern u32 D_8011D590[];
extern s16 D_8011D5A0[];
extern s16 D_8011D5A8[];
extern s16 D_8011D5AC;
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80042D20.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80043ECC.s")
@@ -54,7 +60,10 @@ s32 func_80052188(void) {
return 0;
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800521B8.s")
void func_800521B8(s32 arg0) {
D_8011D582 = arg0;
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800521C4.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005234C.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80052388.s")
@@ -91,15 +100,55 @@ GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80058F44.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059080.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059208.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059790.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800598D0.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059944.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059984.s")
void func_800598D0(void) {
D_8011D590[0] = func_80070C9C(0x21C0, 0xFF0000FF);
D_8011D590[1] = D_8011D590[0] + 0x10E0;
D_8011D590[2] = 0;
D_8011D5A0[0] = 0;
D_8011D5A0[1] = 0;
D_8011D5A0[2] = 0;
D_8011D5A8[0] = 0;
D_8011D5A8[1] = 0;
D_8011D59D = 0;
D_8011D5AC = -1;
}
void func_80059944(void) {
D_8011D59C = D_8011D59D;
D_8011D5A0[D_8011D59C] = 0;
D_8011D5A8[D_8011D59C] = 0;
D_8011D59E = 0;
}
void func_80059984(s32 arg0) {
D_8011D59D = (s8) ((D_8011D59C + 1) & 1);
D_8011D5AC = arg0;
}
s16 func_800599A8(void) {
return D_8011D5AC;
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_800599B8.s")
s32 func_800599B8(s32 arg0, s32 arg1, s16 arg2, s32 arg3, s32 arg4) {
s32 temp_v0;
s32 temp_t8;
s16 sp2E;
temp_t8 = (D_8011D59C + 1) & 1;
temp_v0 = func_80074B34(arg0, (s16)arg1, arg2, arg3, arg4, &sp2E, D_8011D590[temp_t8]);
if (arg3 != 0) {
if (temp_v0 == 0) {
D_8011D5A0[temp_t8] = sp2E;
D_8011D5AC = arg1;
} else {
D_8011D5AC = -1;
}
}
return temp_v0;
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059A68.s")
void func_80059B4C(void) {
@@ -109,9 +158,16 @@ void func_80059B4C(void) {
D_8011D598 = 0;
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059B7C.s")
void func_80059B7C(s32 arg0, s32 arg1, s16 arg2, s16 arg3, s16 arg4) {
func_80075000(arg0, (s16)arg1, arg2, arg3, arg4, D_8011D5A0[D_8011D59C], D_8011D590[D_8011D59C]);
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059BF0.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059E20.s")
s16 func_80059E20(void) {
return D_8011D5A8[D_8011D59C];
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_80059E40.s")
void func_8005A3B0(void) {
@@ -122,7 +178,22 @@ void func_8005A3C0(void) {
D_8011D583 = 1;
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005A3D0.s")
void func_8003B4BC(s32 arg0);
void func_8005A3D0(void) {
s32 i;
s32 count = 0;
u8* temp = (u8*)&func_8003B4BC;
for(i = 0; i < D_800DCB50; i++) {
count += temp[i];
}
if (count != D_800DCDD0) {
D_800DCB54 = 0x800;
}
}
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005A424.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005A6F0.s")
GLOBAL_ASM("asm/non_matchings/unknown_043920/func_8005B818.s")