mirror of https://github.com/pmret/papermario.git
1 more
This commit is contained in:
parent
1a1c06109a
commit
dd40bdae0b
|
|
@ -1,48 +0,0 @@
|
|||
.set noat # allow manual use of $at
|
||||
.set noreorder # don't insert nops after branches
|
||||
|
||||
glabel func_8004E3A4
|
||||
/* 297A4 8004E3A4 27BDFFE8 */ addiu $sp, $sp, -0x18
|
||||
/* 297A8 8004E3A8 AFB00010 */ sw $s0, 0x10($sp)
|
||||
/* 297AC 8004E3AC 0080802D */ daddu $s0, $a0, $zero
|
||||
/* 297B0 8004E3B0 AFBF0014 */ sw $ra, 0x14($sp)
|
||||
/* 297B4 8004E3B4 96020036 */ lhu $v0, 0x36($s0)
|
||||
/* 297B8 8004E3B8 2442FFFF */ addiu $v0, $v0, -1
|
||||
/* 297BC 8004E3BC A6020036 */ sh $v0, 0x36($s0)
|
||||
/* 297C0 8004E3C0 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 297C4 8004E3C4 10400006 */ beqz $v0, .L8004E3E0
|
||||
/* 297C8 8004E3C8 00000000 */ nop
|
||||
/* 297CC 8004E3CC 8E02002C */ lw $v0, 0x2c($s0)
|
||||
/* 297D0 8004E3D0 8E030030 */ lw $v1, 0x30($s0)
|
||||
/* 297D4 8004E3D4 00431021 */ addu $v0, $v0, $v1
|
||||
/* 297D8 8004E3D8 0801390B */ j .L8004E42C
|
||||
/* 297DC 8004E3DC AE02002C */ sw $v0, 0x2c($s0)
|
||||
.L8004E3E0:
|
||||
/* 297E0 8004E3E0 86020034 */ lh $v0, 0x34($s0)
|
||||
/* 297E4 8004E3E4 8E030038 */ lw $v1, 0x38($s0)
|
||||
/* 297E8 8004E3E8 00021400 */ sll $v0, $v0, 0x10
|
||||
/* 297EC 8004E3EC 10600003 */ beqz $v1, .L8004E3FC
|
||||
/* 297F0 8004E3F0 AE02002C */ sw $v0, 0x2c($s0)
|
||||
/* 297F4 8004E3F4 0060F809 */ jalr $v1
|
||||
/* 297F8 8004E3F8 00000000 */ nop
|
||||
.L8004E3FC:
|
||||
/* 297FC 8004E3FC 8E040020 */ lw $a0, 0x20($s0)
|
||||
/* 29800 8004E400 10800005 */ beqz $a0, .L8004E418
|
||||
/* 29804 8004E404 00000000 */ nop
|
||||
/* 29808 8004E408 0C013720 */ jal func_8004DC80
|
||||
/* 2980C 8004E40C 00000000 */ nop
|
||||
/* 29810 8004E410 0801390B */ j .L8004E42C
|
||||
/* 29814 8004E414 00000000 */ nop
|
||||
.L8004E418:
|
||||
/* 29818 8004E418 8E02002C */ lw $v0, 0x2c($s0)
|
||||
/* 2981C 8004E41C 14400003 */ bnez $v0, .L8004E42C
|
||||
/* 29820 8004E420 00000000 */ nop
|
||||
/* 29824 8004E424 0C0136AA */ jal func_8004DAA8
|
||||
/* 29828 8004E428 0200202D */ daddu $a0, $s0, $zero
|
||||
.L8004E42C:
|
||||
/* 2982C 8004E42C 0C013911 */ jal func_8004E444
|
||||
/* 29830 8004E430 0200202D */ daddu $a0, $s0, $zero
|
||||
/* 29834 8004E434 8FBF0014 */ lw $ra, 0x14($sp)
|
||||
/* 29838 8004E438 8FB00010 */ lw $s0, 0x10($sp)
|
||||
/* 2983C 8004E43C 03E00008 */ jr $ra
|
||||
/* 29840 8004E440 27BD0018 */ addiu $sp, $sp, 0x18
|
||||
31
src/audio.h
31
src/audio.h
|
|
@ -9,18 +9,30 @@ struct UnkAl19E0;
|
|||
typedef void (*UnkFuncAl)();
|
||||
|
||||
typedef struct UnkAl1 {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x02 */ char unk_02[2];
|
||||
/* 0x00 */ u16 unk_00;
|
||||
/* 0x02 */ char unk_02[0x2];
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ s16 unk_08;
|
||||
/* 0x0A */ s16 unk_0A;
|
||||
/* 0x0C */ s32 unk_0C;
|
||||
/* 0x0C */ UnkFuncAl unk_0C;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
/* 0x18 */ s16 unk_18;
|
||||
/* 0x1A */ s16 unk_1A;
|
||||
} UnkAl1; // size unknown (currently 0x1C)
|
||||
|
||||
typedef struct UnkAl1Alt {
|
||||
/* 0x00 */ s32 unk_00;
|
||||
/* 0x04 */ s32 unk_04;
|
||||
/* 0x08 */ s16 unk_08;
|
||||
/* 0x0A */ s16 unk_0A;
|
||||
/* 0x0C */ UnkFuncAl unk_0C;
|
||||
/* 0x10 */ s32 unk_10;
|
||||
/* 0x14 */ s32 unk_14;
|
||||
/* 0x18 */ s16 unk_18;
|
||||
/* 0x1A */ s16 unk_1A;
|
||||
} UnkAl1Alt; // size unknown (currently 0x1C)
|
||||
|
||||
typedef struct UnkAl2 {
|
||||
/* 0x00 */ s16 unk_00;
|
||||
/* 0x02 */ u8 unk_02;
|
||||
|
|
@ -270,7 +282,7 @@ typedef struct UnkAlA9C {
|
|||
/* 0x01C */ s32 unk_1C;
|
||||
/* 0x020 */ s32 unk_20;
|
||||
/* 0x024 */ char unk_24[0x8];
|
||||
/* 0x02C */ UnkAl1 unk_2C;
|
||||
/* 0x02C */ UnkAl1Alt unk_2C;
|
||||
/* 0x048 */ s32 unk_48;
|
||||
/* 0x04C */ char unk_4C[0xC];
|
||||
/* 0x058 */ s16 unk_58;
|
||||
|
|
@ -369,12 +381,21 @@ void func_8004B62C(UnkAl6CC*);
|
|||
void func_8004B698(UnkAl6CC*);
|
||||
void func_8004B6D8(UnkAl6CC*, s32, s16, s16, u8);
|
||||
void func_8004B748(UnkAl6CC*);
|
||||
//s32 func_8004B9E4(UnkAl6CC*, u8);
|
||||
s32 func_8004B9E4(UnkAl6CC*, s32);
|
||||
void func_8004BA54(UnkAl6CC*, s32);
|
||||
s16 func_8004C444(UnkAl6CC*);
|
||||
|
||||
void func_8004D510(UnkAlA9C*);
|
||||
UnkAlA9C* func_8004D794(s32);
|
||||
s32 func_8004DA0C(UNK_TYPE arg0);
|
||||
void func_8004DAA8(UnkAlA9C*);
|
||||
void func_8004DFD4(UnkAl19E0*);
|
||||
void func_8004E158(UnkAlA9C*, s32, s32, UnkAl19E0*);
|
||||
void func_8004E3A4(UnkAlA9C*);
|
||||
void func_8004E444(UnkAlA9C*);
|
||||
s16 func_8004E4B8(UnkAlA9C*);
|
||||
s32 func_80050C30(u32);
|
||||
void func_800511BC(UnkAl834*);
|
||||
|
||||
void func_80052BF8(UnkAl48* arg0, s32* arg1);
|
||||
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ INCLUDE_ASM(s32, "code_26840_len_20d0", func_8004C358);
|
|||
|
||||
INCLUDE_ASM(s32, "code_26840_len_20d0", func_8004C3D4);
|
||||
|
||||
INCLUDE_ASM(s32, "code_26840_len_20d0", func_8004C444);
|
||||
INCLUDE_ASM(s16, "code_26840_len_20d0", func_8004C444, UnkAl6CC* arg0);
|
||||
|
||||
INCLUDE_ASM(s32, "code_26840_len_20d0", func_8004C578);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,23 @@
|
|||
|
||||
INCLUDE_ASM(void, "code_28910_len_5090", func_8004D510, UnkAlA9C* arg0);
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004D794);
|
||||
// Return values are being pushed into v0 in the wrong place
|
||||
// May depend on data decomp
|
||||
#ifdef NON_MATCHING
|
||||
UnkAlA9C* func_8004D794(s32 arg0) {
|
||||
UnkAl19E0* temp_v1 = D_8009A664->unk_00;
|
||||
|
||||
if (arg0 == temp_v1->unk_5C[2]) {
|
||||
return D_8009A664;
|
||||
}
|
||||
if (arg0 == temp_v1->unk_60[2]) {
|
||||
return D_8009A5FC;
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
#else
|
||||
INCLUDE_ASM(UnkAlA9C*, "code_28910_len_5090", func_8004D794, s32 arg0);
|
||||
#endif
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004D7E0);
|
||||
|
||||
|
|
@ -13,7 +29,7 @@ s32 func_8004DA0C(UNK_TYPE arg0) {
|
|||
UnkAlA9C* unknown;
|
||||
|
||||
do {
|
||||
unknown = func_8004D794();
|
||||
unknown = func_8004D794(arg0);
|
||||
} while (0);
|
||||
|
||||
do {
|
||||
|
|
@ -54,7 +70,7 @@ INCLUDE_ASM(s32, "code_28910_len_5090", func_8004DCB8);
|
|||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004DE2C);
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004DFD4);
|
||||
INCLUDE_ASM(void, "code_28910_len_5090", func_8004DFD4, UnkAl19E0* arg0);
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004E0F4);
|
||||
|
||||
|
|
@ -62,11 +78,30 @@ INCLUDE_ASM(void, "code_28910_len_5090", func_8004E158, UnkAlA9C* arg0, s32 arg1
|
|||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004E344);
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004E3A4);
|
||||
void func_8004E3A4(UnkAlA9C *arg0) {
|
||||
arg0->unk_2C.unk_0A--;
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004E444);
|
||||
if (arg0->unk_2C.unk_0A != 0) {
|
||||
arg0->unk_2C.unk_00 += arg0->unk_2C.unk_04;
|
||||
} else {
|
||||
arg0->unk_2C.unk_00 = arg0->unk_2C.unk_08 << 0x10;
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004E4B8);
|
||||
if (arg0->unk_2C.unk_0C != NULL) {
|
||||
arg0->unk_2C.unk_0C();
|
||||
}
|
||||
|
||||
if (arg0->unk_20 != 0) {
|
||||
func_8004DC80(arg0->unk_20);
|
||||
} else if (arg0->unk_2C.unk_00 == 0) {
|
||||
func_8004DAA8(arg0);
|
||||
}
|
||||
}
|
||||
func_8004E444(arg0);
|
||||
}
|
||||
|
||||
INCLUDE_ASM(void, "code_28910_len_5090", func_8004E444, UnkAlA9C* arg0);
|
||||
|
||||
INCLUDE_ASM(s16, "code_28910_len_5090", func_8004E4B8, UnkAlA9C* arg0);
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_8004E5D8);
|
||||
|
||||
|
|
@ -199,7 +234,7 @@ INCLUDE_ASM(s32, "code_28910_len_5090", func_80051050);
|
|||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_800510A4);
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_800511BC);
|
||||
INCLUDE_ASM(void, "code_28910_len_5090", func_800511BC, UnkAl834* arg0);
|
||||
|
||||
INCLUDE_ASM(s32, "code_28910_len_5090", func_80051334);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue