diff --git a/asm/nonmatchings/code_2d9a0_len_890/func_800525A0.s b/asm/nonmatchings/code_2d9a0_len_890/func_800525A0.s deleted file mode 100644 index b532f9b647..0000000000 --- a/asm/nonmatchings/code_2d9a0_len_890/func_800525A0.s +++ /dev/null @@ -1,35 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800525A0 -/* 2D9A0 800525A0 27BDFFD8 */ addiu $sp, $sp, -0x28 -/* 2D9A4 800525A4 AFB3001C */ sw $s3, 0x1c($sp) -/* 2D9A8 800525A8 0080982D */ daddu $s3, $a0, $zero -/* 2D9AC 800525AC AFB10014 */ sw $s1, 0x14($sp) -/* 2D9B0 800525B0 0000882D */ daddu $s1, $zero, $zero -/* 2D9B4 800525B4 AFB20018 */ sw $s2, 0x18($sp) -/* 2D9B8 800525B8 24121320 */ addiu $s2, $zero, 0x1320 -/* 2D9BC 800525BC AFBF0020 */ sw $ra, 0x20($sp) -/* 2D9C0 800525C0 AFB00010 */ sw $s0, 0x10($sp) -.L800525C4: -/* 2D9C4 800525C4 02728021 */ addu $s0, $s3, $s2 -/* 2D9C8 800525C8 92020042 */ lbu $v0, 0x42($s0) -/* 2D9CC 800525CC 50400007 */ beql $v0, $zero, .L800525EC -/* 2D9D0 800525D0 26310001 */ addiu $s1, $s1, 1 -/* 2D9D4 800525D4 0C015BBA */ jal func_80056EE8 -/* 2D9D8 800525D8 322400FF */ andi $a0, $s1, 0xff -/* 2D9DC 800525DC A2000042 */ sb $zero, 0x42($s0) -/* 2D9E0 800525E0 AE00001C */ sw $zero, 0x1c($s0) -/* 2D9E4 800525E4 A2000045 */ sb $zero, 0x45($s0) -/* 2D9E8 800525E8 26310001 */ addiu $s1, $s1, 1 -.L800525EC: -/* 2D9EC 800525EC 2A220018 */ slti $v0, $s1, 0x18 -/* 2D9F0 800525F0 1440FFF4 */ bnez $v0, .L800525C4 -/* 2D9F4 800525F4 26520048 */ addiu $s2, $s2, 0x48 -/* 2D9F8 800525F8 8FBF0020 */ lw $ra, 0x20($sp) -/* 2D9FC 800525FC 8FB3001C */ lw $s3, 0x1c($sp) -/* 2DA00 80052600 8FB20018 */ lw $s2, 0x18($sp) -/* 2DA04 80052604 8FB10014 */ lw $s1, 0x14($sp) -/* 2DA08 80052608 8FB00010 */ lw $s0, 0x10($sp) -/* 2DA0C 8005260C 03E00008 */ jr $ra -/* 2DA10 80052610 27BD0028 */ addiu $sp, $sp, 0x28 diff --git a/asm/nonmatchings/code_2d9a0_len_890/func_80052614.s b/asm/nonmatchings/code_2d9a0_len_890/func_80052614.s deleted file mode 100644 index a29039f348..0000000000 --- a/asm/nonmatchings/code_2d9a0_len_890/func_80052614.s +++ /dev/null @@ -1,24 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_80052614 -/* 2DA14 80052614 0000282D */ daddu $a1, $zero, $zero -/* 2DA18 80052618 24060080 */ addiu $a2, $zero, 0x80 -/* 2DA1C 8005261C 24031320 */ addiu $v1, $zero, 0x1320 -.L80052620: -/* 2DA20 80052620 00831021 */ addu $v0, $a0, $v1 -/* 2DA24 80052624 24A50001 */ addiu $a1, $a1, 1 -/* 2DA28 80052628 AC40001C */ sw $zero, 0x1c($v0) -/* 2DA2C 8005262C AC400020 */ sw $zero, 0x20($v0) -/* 2DA30 80052630 AC400024 */ sw $zero, 0x24($v0) -/* 2DA34 80052634 AC400028 */ sw $zero, 0x28($v0) -/* 2DA38 80052638 A040003B */ sb $zero, 0x3b($v0) -/* 2DA3C 8005263C A040003C */ sb $zero, 0x3c($v0) -/* 2DA40 80052640 A040003D */ sb $zero, 0x3d($v0) -/* 2DA44 80052644 A040003E */ sb $zero, 0x3e($v0) -/* 2DA48 80052648 A046003F */ sb $a2, 0x3f($v0) -/* 2DA4C 8005264C 28A20018 */ slti $v0, $a1, 0x18 -/* 2DA50 80052650 1440FFF3 */ bnez $v0, .L80052620 -/* 2DA54 80052654 24630048 */ addiu $v1, $v1, 0x48 -/* 2DA58 80052658 03E00008 */ jr $ra -/* 2DA5C 8005265C 00000000 */ nop diff --git a/src/audio.h b/src/audio.h index d82450c21b..6499839616 100644 --- a/src/audio.h +++ b/src/audio.h @@ -162,7 +162,7 @@ typedef struct UnkAl48 { /* 0x14 */ s32 unk_14; /* 0x18 */ s32 unk_18; /* 0x1C */ s32* unk_1C; - /* 0x20 */ char unk_20[0x4]; + /* 0x20 */ s32 unk_20; /* 0x24 */ s32 unk_24; /* 0x28 */ s32 unk_28; /* 0x2C */ f32 unk_2C; @@ -172,7 +172,7 @@ typedef struct UnkAl48 { /* 0x39 */ u8 unk_39; /* 0x3A */ u8 unk_3A; /* 0x3B */ u8 unk_3B; - /* 0x3C */ char unk_3C[0x1]; + /* 0x3C */ u8 unk_3C; /* 0x3D */ u8 unk_3D; /* 0x3E */ u8 unk_3E; /* 0x3F */ u8 unk_3F; @@ -387,7 +387,7 @@ s16 func_8004C444(UnkAl6CC*); void func_8004D510(UnkAlA9C*); UnkAlA9C* func_8004D794(s32); -s32 func_8004DA0C(UNK_TYPE arg0); +s32 func_8004DA0C(UNK_TYPE); void func_8004DAA8(UnkAlA9C*); void func_8004DFD4(UnkAl19E0*); void func_8004E158(UnkAlA9C*, s32, s32, UnkAl19E0*); @@ -397,7 +397,8 @@ s16 func_8004E4B8(UnkAlA9C*); s32 func_80050C30(u32); void func_800511BC(UnkAl834*); -void func_80052BF8(UnkAl48* arg0, s32* arg1); +void func_800525A0(UnkAl19E0*); +void func_80052BF8(UnkAl48*, s32*); void func_800532F4(UnkAl30*); void func_80053370(UnkAl12*); diff --git a/src/code_2d9a0_len_890.c b/src/code_2d9a0_len_890.c index 406c13b003..4250ec1ba7 100644 --- a/src/code_2d9a0_len_890.c +++ b/src/code_2d9a0_len_890.c @@ -1,9 +1,38 @@ #include "common.h" #include "audio.h" -INCLUDE_ASM(s32, "code_2d9a0_len_890", func_800525A0); +void func_800525A0(UnkAl19E0* arg0) { + s32 i; -INCLUDE_ASM(s32, "code_2d9a0_len_890", func_80052614); + for (i = 0; i < ARRAY_COUNT(arg0->unk_1320); i++) { + UnkAl48* temp = &arg0->unk_1320[i]; + + if (temp->unk_42 != 0) { + func_80056EE8(i); + temp->unk_42 = 0; + temp->unk_1C = NULL; + temp->unk_45 = 0; + } + } +} + +void func_80052614(UnkAl19E0* arg0) { + s32 i; + + for (i = 0; i < ARRAY_COUNT(arg0->unk_1320); i++) { + UnkAl48* temp = &arg0->unk_1320[i]; + + temp->unk_1C = 0; + temp->unk_20 = 0; + temp->unk_24 = 0; + temp->unk_28 = 0; + temp->unk_3B = 0; + temp->unk_3C = 0; + temp->unk_3D = 0; + temp->unk_3E = 0; + temp->unk_3F = 0x80; + } +} INCLUDE_ASM(s32, "code_2d9a0_len_890", func_80052660);