This commit is contained in:
Donkey Kong 2023-06-07 03:19:47 +09:30
parent 1a60a1f08a
commit 77bf6db83d
8 changed files with 163 additions and 90 deletions

View File

@ -1509,55 +1509,71 @@ typedef struct {
typedef struct {
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
u32 unk4;
f32 unk8;
f32 unkC;
s16 unk10;
s16 unk12;
s32 unk14;
s32 unk18;
s32 unk1C;
s32 unk20;
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
s32 unk34;
f32 unk14;
f32 unk18;
f32 unk1C;
f32 unk20;
f32 unk24;
f32 unk28;
f32 unk2C;
f32 unk30;
f32 unk34;
s32 unk38;
s32 unk3C;
s32 unk40;
s32 unk44;
s8 unk48[1]; // TODO: How many elements?
s8 unk49;
s8 unk4A;
s8 unk4B;
s32 unk4C;
s32 unk50;
f32 unk3C;
s16 unk40;
s16 unk42;
s16 unk44[2];
u8 unk48[3];
s8 unk4B[3];
s8 unk4E;
s8 unk4F;
s8 unk50;
s8 unk51;
s8 unk52;
s8 unk53;
s8 unk54;
s8 unk55;
s8 unk56;
s8 unk57;
s32 unk58;
s32 unk5C;
u8 unk5C;
u8 unk5D;
u8 unk5E;
u8 unk5F;
u8 unk60;
u8 unk61;
u8 unk62;
u8 unk63;
s16 unk62;
s16 unk64;
s16 unk66;
u8 unk66;
u8 unk67;
s32 unk68;
s32 unk6C;
s32 unk70;
s32 unk74;
s32 unk78;
s32 unk7C;
s32 unk80;
s32 unk84;
s32 unk88;
s32 unk8C;
s32 unk90;
s16 unk6C;
s8 unk6E;
s8 unk6F;
s8 unk70;
s8 unk71;
u8 unk72;
u8 unk73;
f32 unk74;
f32 unk78;
f32 unk7C;
s16 unk80;
s16 unk82;
u16 unk84;
u16 unk86;
s16 unk88;
u16 unk8A;
f32 unk8C;
f32 unk90;
s32 unk94;
s32 unk98;
s16 unk98;
s8 unk9A;
s8 unk9B;
s32 unk9C;
s32 unkA0;
} OM2_unk7C;

View File

@ -549,7 +549,7 @@ us,.code,func_806F142C,112,yes
us,.code,func_8063CE64,168,yes
us,.code,func_80728300,1308,no
us,.code,func_8066ACA4,252,no
us,.code,func_806419F8,128,no
us,.code,func_806419F8,128,yes
us,.code,func_8060A9BC,72,no
us,.code,func_806A4DDC,920,no
us,.code,func_8069E040,72,yes
@ -2523,7 +2523,7 @@ us,.code,func_8067E704,32,yes
us,.code,func_8071DB74,284,yes
us,.code,func_806C8EE8,164,yes
us,.code,func_806F0238,68,yes
us,.code,func_8063DED0,284,no
us,.code,func_8063DED0,284,yes
us,.code,func_805FE398,316,no
us,.code,func_807131BC,96,yes
us,.code,func_8062D2F0,244,no
@ -2990,7 +2990,7 @@ us,.code,func_806D2954,192,yes
us,.code,func_8068BA2C,460,yes
us,.code,func_80689FEC,136,yes
us,.code,func_806FACE8,764,no
us,.code,func_8063E078,92,no
us,.code,func_8063E078,92,yes
us,.code,func_80738080,76,no
us,.code,func_806E6E7C,100,yes
us,.code,func_8067680C,412,no

1 version section function length matching
549 us .code func_8063CE64 168 yes
550 us .code func_80728300 1308 no
551 us .code func_8066ACA4 252 no
552 us .code func_806419F8 128 no yes
553 us .code func_8060A9BC 72 no
554 us .code func_806A4DDC 920 no
555 us .code func_8069E040 72 yes
2523 us .code func_8071DB74 284 yes
2524 us .code func_806C8EE8 164 yes
2525 us .code func_806F0238 68 yes
2526 us .code func_8063DED0 284 no yes
2527 us .code func_805FE398 316 no
2528 us .code func_807131BC 96 yes
2529 us .code func_8062D2F0 244 no
2990 us .code func_8068BA2C 460 yes
2991 us .code func_80689FEC 136 yes
2992 us .code func_806FACE8 764 no
2993 us .code func_8063E078 92 no yes
2994 us .code func_80738080 76 no
2995 us .code func_806E6E7C 100 yes
2996 us .code func_8067680C 412 no

View File

@ -549,7 +549,7 @@ us,.code,func_806F142C,112,yes
us,.code,func_8063CE64,168,yes
us,.code,func_80728300,1308,no
us,.code,func_8066ACA4,252,no
us,.code,func_806419F8,128,no
us,.code,func_806419F8,128,yes
us,.code,func_8060A9BC,72,no
us,.code,func_806A4DDC,920,no
us,.code,func_8069E040,72,yes
@ -2523,7 +2523,7 @@ us,.code,func_8067E704,32,yes
us,.code,func_8071DB74,284,yes
us,.code,func_806C8EE8,164,yes
us,.code,func_806F0238,68,yes
us,.code,func_8063DED0,284,no
us,.code,func_8063DED0,284,yes
us,.code,func_805FE398,316,no
us,.code,func_807131BC,96,yes
us,.code,func_8062D2F0,244,no
@ -2990,7 +2990,7 @@ us,.code,func_806D2954,192,yes
us,.code,func_8068BA2C,460,yes
us,.code,func_80689FEC,136,yes
us,.code,func_806FACE8,764,no
us,.code,func_8063E078,92,no
us,.code,func_8063E078,92,yes
us,.code,func_80738080,76,no
us,.code,func_806E6E7C,100,yes
us,.code,func_8067680C,412,no

1 version section function length matching
549 us .code func_8063CE64 168 yes
550 us .code func_80728300 1308 no
551 us .code func_8066ACA4 252 no
552 us .code func_806419F8 128 no yes
553 us .code func_8060A9BC 72 no
554 us .code func_806A4DDC 920 no
555 us .code func_8069E040 72 yes
2523 us .code func_8071DB74 284 yes
2524 us .code func_806C8EE8 164 yes
2525 us .code func_806F0238 68 yes
2526 us .code func_8063DED0 284 no yes
2527 us .code func_805FE398 316 no
2528 us .code func_807131BC 96 yes
2529 us .code func_8062D2F0 244 no
2990 us .code func_8068BA2C 460 yes
2991 us .code func_80689FEC 136 yes
2992 us .code func_806FACE8 764 no
2993 us .code func_8063E078 92 no yes
2994 us .code func_80738080 76 no
2995 us .code func_806E6E7C 100 yes
2996 us .code func_8067680C 412 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">26.4889%</text>
<text x="110.5" y="14">26.4889%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">26.5298%</text>
<text x="110.5" y="14">26.5298%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -9,7 +9,7 @@
</mask>
<g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h132v20H0z"/>
<path fill="#c06500" d="M132 0h67v20H132z"/>
<path fill="#c06600" d="M132 0h67v20H132z"/>
<path fill="url(#b)" d="M0 0h199v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@ -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">26.4228%</text>
<text x="165.5" y="14">26.4228%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">26.4534%</text>
<text x="165.5" y="14">26.4534%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -170,8 +170,71 @@ void func_8063DE68(Struct8063DE68_arg0 *arg0) {
func_8061130C(arg0); // Heap Something
}
// Probably initting a struct, easy way to figure out the shape
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8063DED0.s")
void func_8063DED0(OM2_unk7C *arg0) {
s32 i = 0;
f32 *temp = arg0;
// TODO: Hmm...
while (i < 8) {
temp[6] = 1.0f;
temp[7] = 1.0f;
temp[8] = 1.0f;
temp += 4;
temp[1] = 1.0f;
i += 4;
}
arg0->unk10 = -1;
arg0->unk12 = -1;
arg0->unk38 = -1;
arg0->unk0 = 0;
arg0->unk40 = 0;
arg0->unk42 = 0;
arg0->unk44[0] = 0;
arg0->unk44[1] = 0;
arg0->unk48[0] = 0;
arg0->unk48[1] = 0;
arg0->unk48[2] = 0;
arg0->unk4B[0] = 0;
arg0->unk4B[1] = 0;
arg0->unk4B[2] = 0;
arg0->unk4E = 0;
arg0->unk4F = 0;
arg0->unk50 = 0;
arg0->unk51 = 0;
arg0->unk52 = 0;
arg0->unk53 = 0;
arg0->unk80 = 0;
arg0->unk82 = 0;
arg0->unk84 = 0x7FFF;
arg0->unk86 = 0x7FFF;
arg0->unk88 = 0;
arg0->unk8A = 0xFFF;
arg0->unk94 = 0;
arg0->unk54 = 0;
arg0->unk5C = 0;
arg0->unk67 = 0;
arg0->unk6E = 1;
arg0->unk6F = 0;
arg0->unk62 = 0;
arg0->unk64 = 0;
arg0->unk60 = 0;
arg0->unk66 = 0xFF;
arg0->unk70 = 1;
arg0->unk71 = 1;
arg0->unk9A = 0;
arg0->unk9B = 0;
arg0->unk98 = 0;
arg0->unk4 = -1;
arg0->unk8 = 0.0f;
arg0->unkC = 0.0f;
arg0->unk34 = 0.0f;
arg0->unk3C = 0.0f;
arg0->unk74 = 0.0f;
arg0->unk78 = 0.0f;
arg0->unk7C = 0.0f;
arg0->unk8C = 0.0f;
arg0->unk90 = 0.0f;
}
void func_8063DFEC(s32 arg0, void *arg1) {
s16 temp_v0;
@ -183,7 +246,19 @@ void func_8063DFEC(s32 arg0, void *arg1) {
}
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8063E078.s")
void func_8063E078(OM2_unk7C *arg0) {
u8 i;
for (i = 0; i < 2; i++) {
if (arg0->unk44[i] != 0) {
arg0->unk44[i]--;
}
}
for (i = 0; i < 3; i++) {
arg0->unk4B[i] = arg0->unk48[i];
}
arg0->unk4E = 0;
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8063E0D4.s")
@ -265,55 +340,39 @@ void func_8064199C(Struct8064199C_arg0 *arg0, s8 arg1, s16 arg2) {
}
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_806419F8.s")
/*
// TODO: Likely needs to be split into switch cases
// TODO: Get rid of GOTOs
s32 func_806419F8(void) {
CharacterChange *temp_v1;
s16 temp_a1;
temp_v1 = &character_change_array[0];
PlayerAdditionalActorData *PaaD = character_change_array->player_pointer->PaaD;
if (
((player_pointer->control_state == 0x42) && ((temp_a1 = temp_v1->player_pointer->PaaD->unkBC, (temp_a1 == 0x62)) || (temp_a1 == 0x88) || (temp_a1 == 0x17)))
|| (player_pointer->control_state == 0x52)
|| (player_pointer->control_state == 0x67)
|| ((temp_v1->action_initiated == 0x1C)) || (temp_v1->action_initiated == 0x53)) {
return 0;
if (player_pointer->control_state == 0x42) {
if (PaaD->unkBC == 0x62 || PaaD->unkBC == 0x88 || PaaD->unkBC == 0x17) {
goto block_8;
}
}
if (player_pointer->control_state == 0x52 || player_pointer->control_state == 0x67) {
goto block_8;
}
if (character_change_array->action_initiated == 0x1C) {
goto block_8;
}
if (character_change_array->action_initiated != 0x53) {
goto block_9;
}
block_8:
return 0;
block_9:
return 1;
// TODO: aaa
// switch (player_pointer->control_state) {
// case 0x42:
// switch (character_change_array[0].player_pointer->PaaD->unkBC) {
// case 0x62:
// case 0x88:
// case 0x17:
// return 0;
// }
// break;
// case 0x52:
// case 0x67:
// return 0;
// }
// switch (character_change_array[0].action_initiated) {
// case 0x1C:
// case 0x53:
// return 0;
// }
}
*/
extern u8 D_807F6938;
extern s16 D_807F6918[];
// TODO: This does match but the types on the externs are sus
void func_80641A78(void) {
s32 phi_s0;
s32 i;
for (phi_s0 = 0; phi_s0 < D_807F6938; phi_s0++) {
func_806355DC(D_807F6240[D_807F6918[phi_s0]], 1);
for (i = 0; i < D_807F6938; i++) {
func_806355DC(D_807F6240[D_807F6918[i]], 1);
}
}

View File

@ -7850,8 +7850,7 @@ void func_806E9B3C(void) {
/*
// TODO: Regalloc
void func_806E9BA8(s32 arg0) {
s32 temp = cc_player_index;
if ((D_807FD610[temp].unk2C & B_BUTTON) && !(extra_player_info_pointer->unk1F0 & 0x8000) && func_806F8AD4(6, temp) > 0) {
if ((D_807FD610[cc_player_index].unk2C & B_BUTTON) && !(extra_player_info_pointer->unk1F0 & 0x8000) && func_806F8AD4(6, cc_player_index) > 0) {
playSound(0x263, 0x7FFF, 63.0f, 1.0f, 0xA, 0);
current_actor_pointer->control_state = arg0;
current_actor_pointer->control_state_progress = 0;

View File

@ -274,7 +274,6 @@ void func_800268C0(u8 arg0) {
}
void func_806F0C18(Actor*);
void func_806F91B4(s32, u8, s16);
extern s32 D_807552E8;
void func_800268DC(Actor *arg0, PlayerAdditionalActorData *arg1, PlayerProgress *arg2) {