This commit is contained in:
Donkey Kong 2023-05-20 20:45:38 +09:30
parent 47c96861a7
commit 30222d2ad2
7 changed files with 172 additions and 179 deletions

View File

@ -934,6 +934,103 @@ typedef struct TempAAD {
s8 unk24;
} TempAAD;
typedef struct struct806A57C0_2 Struct806A57C0_2;
typedef struct struct806A57C0_3 Struct806A57C0_3;
struct struct806A57C0_3 {
s16 unk0;
u8 unk2; // Used
u8 unk3;
f32 unk4; // Used
f32 unk8; // Used
s32 unkC;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
s32 unk20;
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
s32 unk34;
s32 unk38;
s32 unk3C;
s32 unk40;
s32 unk44;
s32 unk48;
s32 unk4C;
s32 unk50;
s32 unk54;
s32 unk58;
s32 unk5C;
s32 unk60;
s32 unk64;
s32 unk68;
s32 unk6C;
s32 unk70;
s32 unk74;
s32 unk78;
s32 unk7C;
s32 unk80;
s32 unk84;
s32 unk88;
s32 unk8C;
s32 unk90;
s32 unk94;
s32 unk98;
s32 unk9C;
Struct806A57C0_3 *unkA0; // Used
};
struct struct806A57C0_2 {
u8 unk0; // Used
u8 unk1;
u8 unk2;
u8 unk3;
s32 unk4;
s32 unk8;
Struct806A57C0_3 *unkC;
u16 unk10; // Used
u16 unk12;
s32 unk14;
f32 unk18;
Struct806A57C0_2 *next; // 0x1C
};
typedef struct {
s32 unk0;
s32 unk4;
s32 unk8;
Struct806A57C0_2 *unkC; // Used
u8 unk10;
u8 unk11;
u8 unk12;
u8 unk13;
f32 unk14; // Used
s32 unk18;
u8 unk1C;
u8 unk1D; // Used
u8 unk1E;
u8 unk1F;
f32 unk20; // Used
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
s32 unk34;
s16 unk38;
s16 unk3A;
s32 unk3C;
f32 unk40; // Used
f32 unk44; // Used
f32 unk48; // Used
f32 unk4C; // Used
f32 unk50;
u8 unk54;
u8 unk55; // Used
} AAD_806A4DDC;
// TODO: This appears to be a "texture renderer" according to ScriptHawk, needs a better name though. Linked list at Actor->unk158
typedef struct global_asm_struct_60 GlobalASMStruct60;

View File

@ -1642,7 +1642,7 @@ us,.code,func_806D32C0,108,yes
us,.code,func_8070C590,632,no
us,.code,func_8063D2E4,388,no
us,.code,func_8065919C,280,no
us,.code,func_8070D568,236,no
us,.code,func_8070D568,236,yes
us,.code,func_806C7230,8,yes
us,.code,func_8064EE08,544,no
us,.code,func_80713EA8,8,yes
@ -1924,7 +1924,7 @@ us,.code,func_8069E660,196,yes
us,.code,func_806EA958,92,yes
us,.code,func_80670FA4,316,yes
us,.code,func_806787FC,8,yes
us,.code,func_8070DA28,76,no
us,.code,func_8070DA28,76,yes
us,.code,func_807238D4,964,no
us,.code,func_8067B2C0,28,yes
us,.code,func_8068C3A0,520,no
@ -3218,7 +3218,7 @@ us,.code,func_8071C914,212,no
us,.code,func_806AD54C,608,yes
us,.code,func_8073A2A4,288,no
us,.code,func_806F1A18,200,yes
us,.code,func_8070D9AC,124,no
us,.code,func_8070D9AC,124,yes
us,.code,func_8062A850,244,no
us,.code,func_8062919C,12,yes
us,.code,func_8071B1AC,160,no

1 version section function length matching
1642 us .code func_8070C590 632 no
1643 us .code func_8063D2E4 388 no
1644 us .code func_8065919C 280 no
1645 us .code func_8070D568 236 no yes
1646 us .code func_806C7230 8 yes
1647 us .code func_8064EE08 544 no
1648 us .code func_80713EA8 8 yes
1924 us .code func_806EA958 92 yes
1925 us .code func_80670FA4 316 yes
1926 us .code func_806787FC 8 yes
1927 us .code func_8070DA28 76 no yes
1928 us .code func_807238D4 964 no
1929 us .code func_8067B2C0 28 yes
1930 us .code func_8068C3A0 520 no
3218 us .code func_806AD54C 608 yes
3219 us .code func_8073A2A4 288 no
3220 us .code func_806F1A18 200 yes
3221 us .code func_8070D9AC 124 no yes
3222 us .code func_8062A850 244 no
3223 us .code func_8062919C 12 yes
3224 us .code func_8071B1AC 160 no

View File

@ -1642,7 +1642,7 @@ us,.code,func_806D32C0,108,yes
us,.code,func_8070C590,632,no
us,.code,func_8063D2E4,388,no
us,.code,func_8065919C,280,no
us,.code,func_8070D568,236,no
us,.code,func_8070D568,236,yes
us,.code,func_806C7230,8,yes
us,.code,func_8064EE08,544,no
us,.code,func_80713EA8,8,yes
@ -1924,7 +1924,7 @@ us,.code,func_8069E660,196,yes
us,.code,func_806EA958,92,yes
us,.code,func_80670FA4,316,yes
us,.code,func_806787FC,8,yes
us,.code,func_8070DA28,76,no
us,.code,func_8070DA28,76,yes
us,.code,func_807238D4,964,no
us,.code,func_8067B2C0,28,yes
us,.code,func_8068C3A0,520,no
@ -3218,7 +3218,7 @@ us,.code,func_8071C914,212,no
us,.code,func_806AD54C,608,yes
us,.code,func_8073A2A4,288,no
us,.code,func_806F1A18,200,yes
us,.code,func_8070D9AC,124,no
us,.code,func_8070D9AC,124,yes
us,.code,func_8062A850,244,no
us,.code,func_8062919C,12,yes
us,.code,func_8071B1AC,160,no

1 version section function length matching
1642 us .code func_8070C590 632 no
1643 us .code func_8063D2E4 388 no
1644 us .code func_8065919C 280 no
1645 us .code func_8070D568 236 no yes
1646 us .code func_806C7230 8 yes
1647 us .code func_8064EE08 544 no
1648 us .code func_80713EA8 8 yes
1924 us .code func_806EA958 92 yes
1925 us .code func_80670FA4 316 yes
1926 us .code func_806787FC 8 yes
1927 us .code func_8070DA28 76 no yes
1928 us .code func_807238D4 964 no
1929 us .code func_8067B2C0 28 yes
1930 us .code func_8068C3A0 520 no
3218 us .code func_806AD54C 608 yes
3219 us .code func_8073A2A4 288 no
3220 us .code func_806F1A18 200 yes
3221 us .code func_8070D9AC 124 no yes
3222 us .code func_8062A850 244 no
3223 us .code func_8062919C 12 yes
3224 us .code func_8071B1AC 160 no

View File

@ -17,7 +17,7 @@
<text x="38.5" y="14">global_asm</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">22.5453%</text>
<text x="110.5" y="14">22.5453%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">22.5807%</text>
<text x="110.5" y="14">22.5807%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -17,7 +17,7 @@
<text x="66.0" y="14">Donkey Kong 64 (US)</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">22.1000%</text>
<text x="165.5" y="14">22.1000%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">22.1265%</text>
<text x="165.5" y="14">22.1265%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -2,8 +2,21 @@
#include "functions.h"
typedef struct {
s32 unk0;
u8 unk0; // Used
u8 unk1;
u8 unk2;
u8 unk3;
s32 unk4;
s32 unk8;
s32 unkC;
} Struct8070D568;
typedef struct {
u8 unk0; // Used
u8 unk1;
u8 unk2;
u8 unk3;
Struct8070D568 *unk4;
} Struct8070D654;
typedef struct Temp8070D6D8 {
@ -17,12 +30,6 @@ typedef struct Temp8070D6D8 {
void *unkC; // Next?
} Temp8070D6D8;
// TODO: What the
void func_8070D380(u32 size, Temp8070D6D8 *arg1, u8 **arg2) {
memcpy(arg1, *arg2, size);
*arg2 += size;
}
typedef struct {
u8 unk0;
u8 unk1;
@ -35,6 +42,12 @@ typedef struct {
s32 unk0;
} Struct8070D3CC_arg1;
// TODO: What the
void func_8070D380(u32 size, Temp8070D6D8 *arg1, u8 **arg2) {
memcpy(arg1, *arg2, size);
*arg2 += size;
}
void func_8070D3CC(Struct8070D3CC_arg0 *arg0, Struct8070D3CC_arg1 *arg1) {
s32 i;
Struct8070D3CC_arg0 *var_s0;
@ -50,7 +63,30 @@ void func_8070D3CC(Struct8070D3CC_arg0 *arg0, Struct8070D3CC_arg1 *arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D464.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D568.s")
void func_8070D568(Struct8070D654 *arg0, void *arg1) {
s32 i;
Struct8070D568 *temp_v0;
void *temp_v0_2;
Struct8070D568 *var_s0;
func_8070D380(1, arg0, arg1);
temp_v0 = malloc(arg0->unk0 * sizeof(Struct8070D568));
arg0->unk4 = temp_v0;
var_s0 = temp_v0;
for (i = 0; i < arg0->unk0; i++) {
func_8070D380(1, var_s0, arg1);
if (var_s0->unk0 & 4) {
temp_v0_2 = malloc(4);
var_s0->unk4 = temp_v0_2;
func_8070D380(4, temp_v0_2, arg1);
} else {
var_s0->unk4 = NULL;
}
func_8070D464(var_s0, arg1);
func_8070D380(4, &var_s0->unkC, arg1);
var_s0++;
}
}
void func_8070D654(Temp8070D6D8 *arg0, void *arg1) {
s32 i;
@ -175,53 +211,41 @@ void func_8070D970(u16 arg0) {
}
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D9AC.s")
/*
void func_8070D9AC(void *arg0) {
void func_8070D9AC(Struct806A57C0_2 *arg0) {
s32 temp_a0;
s32 temp_s2;
void *temp_s0;
void *var_s1;
Struct806A57C0_3 *temp_s0;
Struct806A57C0_3 *var_s1;
var_s1 = arg0->unkC;
temp_s2 = arg0->unk0 & 2;
if (var_s1 != NULL) {
do {
temp_s0 = var_s1;
var_s1 = var_s1->unkA0;
if (temp_s2 != 0) {
temp_a0 = temp_s0->unk14;
if (temp_a0 != 0) {
func_80715908(temp_a0);
}
while (var_s1 != NULL) {
temp_s0 = var_s1;
var_s1 = var_s1->unkA0;
if (temp_s2 != 0) {
temp_a0 = temp_s0->unk14;
if (temp_a0 != 0) {
func_80715908(temp_a0);
}
func_8061134C(temp_s0);
} while (var_s1 != NULL);
}
func_8061134C(temp_s0);
}
func_8061134C(arg0);
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070DA28.s")
/*
void func_8070DA28(void *arg0) {
void *temp_a0;
void *var_s0;
void func_8070DA28(AAD_806A4DDC *arg0) {
Struct806A57C0_2 *temp_a0;
Struct806A57C0_2 *var_s0;
var_s0 = arg0->unkC;
if (var_s0 != NULL) {
do {
temp_a0 = var_s0;
var_s0 = var_s0->unk1C;
func_8070D9AC(temp_a0);
} while (var_s0 != NULL);
while (var_s0 != NULL) {
temp_a0 = var_s0;
var_s0 = var_s0->next;
func_8070D9AC(temp_a0);
}
arg0->unkC = NULL;
arg0->unk10 = 0;
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070DA74.s")

View File

@ -54,103 +54,6 @@ extern f32 D_8075A7A0;
extern f32 D_8075A7A4;
extern f64 D_8075A7A8;
typedef struct struct806A57C0_2 Struct806A57C0_2;
typedef struct struct806A57C0_3 Struct806A57C0_3;
struct struct806A57C0_3 {
s16 unk0;
u8 unk2; // Used
u8 unk3;
f32 unk4; // Used
f32 unk8; // Used
s32 unkC;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
s32 unk20;
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
s32 unk34;
s32 unk38;
s32 unk3C;
s32 unk40;
s32 unk44;
s32 unk48;
s32 unk4C;
s32 unk50;
s32 unk54;
s32 unk58;
s32 unk5C;
s32 unk60;
s32 unk64;
s32 unk68;
s32 unk6C;
s32 unk70;
s32 unk74;
s32 unk78;
s32 unk7C;
s32 unk80;
s32 unk84;
s32 unk88;
s32 unk8C;
s32 unk90;
s32 unk94;
s32 unk98;
s32 unk9C;
Struct806A57C0_3 *unkA0; // Used
};
struct struct806A57C0_2 {
u8 unk0; // Used
u8 unk1;
u8 unk2;
u8 unk3;
s32 unk4;
s32 unk8;
Struct806A57C0_3 *unkC;
u16 unk10; // Used
u16 unk12;
s32 unk14;
f32 unk18;
Struct806A57C0_2 *unk1C;
};
typedef struct {
s32 unk0;
s32 unk4;
s32 unk8;
Struct806A57C0_2 *unkC; // Used
u8 unk10;
u8 unk11;
u8 unk12;
u8 unk13;
f32 unk14; // Used
s32 unk18;
u8 unk1C;
u8 unk1D; // Used
u8 unk1E;
u8 unk1F;
f32 unk20; // Used
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
s32 unk34;
s16 unk38;
s16 unk3A;
s32 unk3C;
f32 unk40; // Used
f32 unk44; // Used
f32 unk48; // Used
f32 unk4C; // Used
f32 unk50;
u8 unk54;
u8 unk55; // Used
} AAD_806A4DDC;
void func_806A3B78(s32 *arg0, AAD_806A4DDC *arg1, Struct806A57C0_2 *arg2, u8 arg3, u8 *arg4) {
s32 sp44;
s32 i;
@ -403,7 +306,7 @@ void func_806A57C0(AAD_806A4DDC *arg0) {
if ((var_v1 != NULL) && (var_v1->unkC->unk2 == 0)) {
while (var_v1 != NULL) {
var_v0 += var_v1->unk18;
var_v1 = var_v1->unk1C;
var_v1 = var_v1->next;
}
if (var_v0 < D_8075A978) {
arg0->unk14 = (D_8075A978 - var_v0) * 0.5;
@ -421,37 +324,6 @@ extern f32 D_8075A990;
extern u8 D_807503F0;
int func_806A4284();
typedef struct {
u16 unk0;
u16 unk2;
Actor *unk4;
s32 unk8;
s32 unkC;
s32 unk10;
f32 unk14;
f32 unk18;
u8 unk1C;
u8 unk1D;
u8 unk1E;
u8 unk1F;
f32 unk20;
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
void* unk34;
s16 unk38;
s16 unk3A;
s32 unk3C;
s32 unk40;
s32 unk44;
s32 unk48;
s32 unk4C;
s32 unk50;
u8 unk54;
u8 unk55;
} AAD_806A5868;
void func_806A5174(Actor*, void*, f32);
void func_8070DA74(Actor*);
void func_8070E808(Actor *arg0, Actor *arg1);
@ -461,7 +333,7 @@ void func_806A4DDC(Actor *arg0);
/*
// TODO: Extremely close, one statement left to fix
void func_806A5868(void) {
AAD_806A5868 *var_a3;
AAD_806A4DDC *var_a3;
f32 sp18;
f32 var_f0;
s32 var_v0_2;