mirror of
https://gitlab.com/dk64_decomp/dk64.git
synced 2024-11-27 01:00:34 +00:00
16.6013%
This commit is contained in:
parent
d0c49e387f
commit
22f0554732
@ -33,6 +33,8 @@ void func_80729B00(void);
|
||||
|
||||
s16 func_80665DE0(f32, f32, f32, f32);
|
||||
|
||||
void func_80679200(Actor*, Actor*, s32, u8, s32, s32);
|
||||
|
||||
// Heap stuff???
|
||||
void func_8061130C(void *);
|
||||
|
||||
|
@ -1963,7 +1963,7 @@ us,.code,func_806EE6B0,80,yes
|
||||
us,.code,func_8063162C,424,no
|
||||
us,.code,func_806896D0,32,yes
|
||||
us,.code,func_80678BBC,268,yes
|
||||
us,.code,func_806CF42C,140,yes
|
||||
us,.code,func_806CF42C,140,no
|
||||
us,.code,func_806EB4F8,76,yes
|
||||
us,.code,func_80676260,32,yes
|
||||
us,.code,func_806115A8,108,no
|
||||
@ -2489,7 +2489,7 @@ us,.code,func_806DF1A0,224,yes
|
||||
us,.code,func_80712830,276,yes
|
||||
us,.code,func_806E208C,180,yes
|
||||
us,.code,func_8071F8E4,412,no
|
||||
us,.code,func_8064199C,92,no
|
||||
us,.code,func_8064199C,92,yes
|
||||
us,.code,func_80737924,108,no
|
||||
us,.code,func_80661B84,108,yes
|
||||
us,.code,func_806F397C,108,yes
|
||||
@ -2713,7 +2713,7 @@ us,.code,func_806E3C38,180,yes
|
||||
us,.code,func_80688C84,64,no
|
||||
us,.code,func_806F0184,84,yes
|
||||
us,.code,func_80611408,300,no
|
||||
us,.code,func_80644E2C,156,no
|
||||
us,.code,func_80644E2C,156,yes
|
||||
us,.code,func_80656E58,188,no
|
||||
us,.code,func_8066F84C,960,no
|
||||
us,.code,func_80642480,128,yes
|
||||
@ -3202,7 +3202,7 @@ us,.code,func_8073A518,376,no
|
||||
us,.code,func_806EF944,196,yes
|
||||
us,.code,func_8070835C,536,no
|
||||
us,.code,func_8060BA14,260,yes
|
||||
us,.code,func_80641C98,264,no
|
||||
us,.code,func_80641C98,264,yes
|
||||
us,.code,func_806919E0,2044,no
|
||||
us,.code,func_8065E124,20,yes
|
||||
us,.code,func_8062A808,60,yes
|
||||
|
|
@ -1963,7 +1963,7 @@ us,.code,func_806EE6B0,80,yes
|
||||
us,.code,func_8063162C,424,no
|
||||
us,.code,func_806896D0,32,yes
|
||||
us,.code,func_80678BBC,268,yes
|
||||
us,.code,func_806CF42C,140,yes
|
||||
us,.code,func_806CF42C,140,no
|
||||
us,.code,func_806EB4F8,76,yes
|
||||
us,.code,func_80676260,32,yes
|
||||
us,.code,func_806115A8,108,no
|
||||
@ -2489,7 +2489,7 @@ us,.code,func_806DF1A0,224,yes
|
||||
us,.code,func_80712830,276,yes
|
||||
us,.code,func_806E208C,180,yes
|
||||
us,.code,func_8071F8E4,412,no
|
||||
us,.code,func_8064199C,92,no
|
||||
us,.code,func_8064199C,92,yes
|
||||
us,.code,func_80737924,108,no
|
||||
us,.code,func_80661B84,108,yes
|
||||
us,.code,func_806F397C,108,yes
|
||||
@ -2713,7 +2713,7 @@ us,.code,func_806E3C38,180,yes
|
||||
us,.code,func_80688C84,64,no
|
||||
us,.code,func_806F0184,84,yes
|
||||
us,.code,func_80611408,300,no
|
||||
us,.code,func_80644E2C,156,no
|
||||
us,.code,func_80644E2C,156,yes
|
||||
us,.code,func_80656E58,188,no
|
||||
us,.code,func_8066F84C,960,no
|
||||
us,.code,func_80642480,128,yes
|
||||
@ -3202,7 +3202,7 @@ us,.code,func_8073A518,376,no
|
||||
us,.code,func_806EF944,196,yes
|
||||
us,.code,func_8070835C,536,no
|
||||
us,.code,func_8060BA14,260,yes
|
||||
us,.code,func_80641C98,264,no
|
||||
us,.code,func_80641C98,264,yes
|
||||
us,.code,func_806919E0,2044,no
|
||||
us,.code,func_8065E124,20,yes
|
||||
us,.code,func_8062A808,60,yes
|
||||
|
|
@ -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">16.0673%</text>
|
||||
<text x="110.5" y="14">16.0673%</text>
|
||||
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">16.0975%</text>
|
||||
<text x="110.5" y="14">16.0975%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
@ -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">16.5787%</text>
|
||||
<text x="165.5" y="14">16.5787%</text>
|
||||
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">16.6013%</text>
|
||||
<text x="165.5" y="14">16.6013%</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
@ -40,6 +40,38 @@ Temp8070D6D8 *func_8070D6D8(void *arg0) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D754.s")
|
||||
|
||||
/*
|
||||
? *func_8070D754(? *arg0) {
|
||||
? **var_s0;
|
||||
? *temp_v0;
|
||||
? *var_v1;
|
||||
|
||||
var_s0 = &D_807550C4;
|
||||
if ((D_807550C4 != NULL) && (arg0 != *D_807550C4)) {
|
||||
var_v1 = D_807550C4;
|
||||
loop_3:
|
||||
var_s0 = &*(var_v1 + 0xC);
|
||||
var_v1 = *var_s0;
|
||||
if (var_v1 != NULL) {
|
||||
if (arg0 != *var_v1) {
|
||||
goto loop_3;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*var_s0 == NULL) {
|
||||
temp_v0 = malloc(0x10);
|
||||
*var_s0 = temp_v0;
|
||||
func_80611690(temp_v0);
|
||||
(*var_s0)->unk0 = arg0;
|
||||
func_80677FA8(0x12B, 0, arg0);
|
||||
D_807FBB44->control_state = 0;
|
||||
(*var_s0)->unk4 = D_807FBB44;
|
||||
D_807FBB44->additional_actor_data->unk4 = arg0;
|
||||
}
|
||||
return *var_s0;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D82C.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D8C0.s")
|
||||
@ -63,6 +95,28 @@ void func_8070D8C0(Actor *arg0, u16 arg1, u8 arg2) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D928.s")
|
||||
|
||||
/*
|
||||
extern u16 *D_807550C0;
|
||||
|
||||
u16 *func_8070D928(s32 arg0) {
|
||||
s32 temp_t6;
|
||||
u16 *var_v1;
|
||||
|
||||
var_v1 = D_807550C0;
|
||||
temp_t6 = arg0 & 0xFFFF;
|
||||
if ((var_v1 != NULL) && (temp_t6 != *var_v1)) {
|
||||
loop_2:
|
||||
var_v1 = var_v1->unkC;
|
||||
if (var_v1 != NULL) {
|
||||
if (temp_t6 != *var_v1) {
|
||||
goto loop_2;
|
||||
}
|
||||
}
|
||||
}
|
||||
return var_v1;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D970.s")
|
||||
|
||||
/*
|
||||
@ -79,8 +133,52 @@ void func_8070D970(s32 arg0) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070D9AC.s")
|
||||
|
||||
/*
|
||||
void func_8070D9AC(void *arg0) {
|
||||
s32 temp_a0;
|
||||
s32 temp_s2;
|
||||
void *temp_s0;
|
||||
void *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);
|
||||
}
|
||||
}
|
||||
func_8061134C(temp_s0);
|
||||
} while (var_s1 != NULL);
|
||||
}
|
||||
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;
|
||||
|
||||
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);
|
||||
}
|
||||
arg0->unkC = NULL;
|
||||
arg0->unk10 = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070DA74.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070DB7C.s")
|
||||
@ -183,7 +281,7 @@ s32 func_8070DDDC(u16 arg0, s32 arg1) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_112080/func_8070E808.s")
|
||||
|
||||
extern s32 D_807550C0;
|
||||
extern s32 D_807550C0; // TODO: Some kind of struct pointer, possibly Temp8070D6D8
|
||||
extern s32 D_807550C4;
|
||||
extern u8 D_807550CC;
|
||||
|
||||
|
@ -218,7 +218,47 @@ void func_80641874(s16 arg0, s16 arg1) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_806418E8.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8064199C.s")
|
||||
/*
|
||||
s32 func_806418E8(s16 arg0, s16 arg1, s16 arg2) {
|
||||
s16 temp_a3;
|
||||
s16 temp_v0;
|
||||
|
||||
temp_a3 = D_807F6240[arg0];
|
||||
if (temp_a3 != -1) {
|
||||
temp_v0 = func_80659470(temp_a3);
|
||||
if ((temp_v0 != -1) && (D_807F6000[temp_v0].unk7C != NULL)) {
|
||||
(D_807F6000[temp_v0].unk7C + arg2)->unk48 = arg1;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
*/
|
||||
|
||||
// TODO: Which struct is this?
|
||||
typedef struct {
|
||||
s32 unk0[21];
|
||||
s8 unk54; // Used
|
||||
s8 unk55;
|
||||
s8 unk56;
|
||||
s8 unk57;
|
||||
s32 unk58; // Used
|
||||
s32 unk5C;
|
||||
} Struct8064199C_arg0;
|
||||
|
||||
void func_8064199C(Struct8064199C_arg0 *arg0, s8 arg1, s16 arg2) {
|
||||
arg0->unk54 = arg1;
|
||||
switch (arg1 & 0xFF) {
|
||||
case 3:
|
||||
case 4:
|
||||
case 6:
|
||||
arg0->unk58 = arg2 * arg2;
|
||||
break;
|
||||
case 5:
|
||||
arg0->unk58 = arg2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_806419F8.s")
|
||||
|
||||
@ -290,7 +330,50 @@ void func_80641B00(s16 arg0, s16 arg1, s16 arg2) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641BCC.s")
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641C98.s")
|
||||
extern u16 D_807FBB34;
|
||||
|
||||
/*
|
||||
// TODO: Regalloc a0 a1, boo
|
||||
void func_80641BCC(s16 arg0, s16 arg1, s16 arg2) {
|
||||
s32 i;
|
||||
for (i = 0; i < D_807FBB34; i++) {
|
||||
if (!(D_807FB930[i].unk0->object_properties_bitfield & 0x2000)
|
||||
&& (arg0 == D_807FB930[i].unk0->unk58)
|
||||
&& (arg2 == D_807FB930[i].unk0->unk10C)) {
|
||||
if (arg1 != 0) {
|
||||
D_807FB930[i].unk0->unk68 |= 4;
|
||||
} else {
|
||||
D_807FB930[i].unk0->unk68 &= ~4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
void func_80641C98(s16 arg0, s16 arg1, s16 arg2) {
|
||||
s32 var_s2;
|
||||
s32 i;
|
||||
|
||||
switch (arg1) {
|
||||
case 0:
|
||||
var_s2 = 1;
|
||||
break;
|
||||
case 1:
|
||||
var_s2 = 2;
|
||||
break;
|
||||
case 2:
|
||||
var_s2 = 0x3C;
|
||||
break;
|
||||
}
|
||||
|
||||
for (i = 0; i < D_807FBB34; i++) {
|
||||
if (!(D_807FB930[i].unk0->object_properties_bitfield & 0x2000)
|
||||
&& (arg0 == D_807FB930[i].unk0->unk58)
|
||||
&& (arg2 == D_807FB930[i].unk0->unk10C)) {
|
||||
func_80679200(D_807FB930[i].unk0, NULL, 0x800, var_s2, 0, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641DA0.s")
|
||||
|
||||
@ -561,6 +644,28 @@ void func_806449C0(s32 arg0, s16 arg1, s16 arg2, s32 arg3) {
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80644CC0.s")
|
||||
|
||||
void func_80644A18(s32, s32, s32, f32);
|
||||
|
||||
/*
|
||||
void func_80644CC0(void **arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
void *sp1C;
|
||||
void *temp_v0;
|
||||
void *var_v1;
|
||||
|
||||
var_v1 = *arg0;
|
||||
if (var_v1 == NULL) {
|
||||
temp_v0 = malloc(8);
|
||||
*arg0 = temp_v0;
|
||||
temp_v0->unk0 = 0.0f;
|
||||
temp_v0->unk4 = 0.0f;
|
||||
var_v1 = *arg0;
|
||||
}
|
||||
sp1C = var_v1;
|
||||
func_80644A18(var_v1, 2, 0x16, 1.0f);
|
||||
func_80644A18(sp1C + 4, 4, 0x18, 0.8f);
|
||||
}
|
||||
*/
|
||||
|
||||
void func_8065A660(f32, f32);
|
||||
|
||||
void func_80644D50(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
|
||||
@ -577,7 +682,19 @@ void func_80644D50(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
|
||||
func_8065A708(sp48, sp40, sp38, sp4C, sp44, sp3C, 0.0f, 1, D_807480D0, D_807480D4, D_807480D8);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80644E2C.s")
|
||||
extern f32 D_807F621C;
|
||||
extern f32 D_807F6220;
|
||||
extern f32 D_807F6224;
|
||||
|
||||
extern s32 D_8074E880[];
|
||||
extern s32 D_80717760;
|
||||
|
||||
void func_80644E2C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
|
||||
func_807149FC(-1);
|
||||
func_8071498C(&D_80717760);
|
||||
func_80714950(0x50);
|
||||
func_80714CC0(D_8074E880[((rand() >> 0xF) % 1000) % 3], 0.5f, D_807F621C, D_807F6220, D_807F6224);
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80644EC8.s")
|
||||
|
||||
|
@ -32,9 +32,7 @@ void func_8062D26C(Actor*);
|
||||
void func_806783BC();
|
||||
void func_806136B4();
|
||||
void func_8066E21C(LedgeInfo*);
|
||||
// void func_80679200(s32, Actor *, s32, s32, s32, s32);
|
||||
// Note: The pointer can be to any one of the above 10 structs, maybe more
|
||||
void func_80679200(Actor *arg0, Actor *arg1, s32 arg2, u8 arg3, s32 arg4, s32 arg5);
|
||||
void func_8067AEFC(Actor*);
|
||||
void func_8068C2F8(void *);
|
||||
void func_8070DA74(void *);
|
||||
|
@ -19,7 +19,6 @@ extern u8 D_807506C0[];
|
||||
f32 func_80665AE4(s32, s32, s32, s32);
|
||||
void func_80688370(Actor*, s32, f32);
|
||||
void func_806883F4(Actor*, s32, s32, f32);
|
||||
void func_80679200(Actor*, Actor*, s32, u8, s32, s32);
|
||||
|
||||
/*
|
||||
// TODO: Everything matches, but the stack is too big
|
||||
|
@ -475,7 +475,47 @@ void func_806C2A64(u8 arg0, u8 arg1, u8 arg2, f32 arg3, f32 arg4, f32 arg5, s32
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_C2A90/func_806C2B2C.s")
|
||||
|
||||
typedef struct {
|
||||
s8 unk0;
|
||||
s8 unk1;
|
||||
s8 unk2;
|
||||
} Struct80747B00;
|
||||
|
||||
extern Struct80747B00 D_80747B00[];
|
||||
extern f64 D_8075BEE0;
|
||||
|
||||
/*
|
||||
void func_806C2B2C(s32 arg0, s32 arg1, u8 arg2, s32 arg3) {
|
||||
f32 spA8;
|
||||
f32 spA4;
|
||||
f32 spA0;
|
||||
f32 sp9C;
|
||||
f32 sp98;
|
||||
f32 sp94;
|
||||
f32 temp_f20;
|
||||
f32 temp_f24;
|
||||
s16 i;
|
||||
Struct80747B00 *temp_s0;
|
||||
|
||||
temp_f24 = (current_actor_pointer->animation_state->scale_y / D_8075BEE0) / 1.5;
|
||||
while (arg1 >= arg0) {
|
||||
for (i = 0; i < 3.0; i++) {
|
||||
temp_s0 = &D_80747B00[arg2];
|
||||
temp_f20 = i / 3.0;
|
||||
func_80671C0C(current_actor_pointer, arg0, &spA8, &spA4, &spA0);
|
||||
if (arg0 < arg1) {
|
||||
func_80671C0C(current_actor_pointer, arg0 + 1, &sp9C, &sp98, &sp94);
|
||||
} else {
|
||||
func_80671C0C(current_actor_pointer, arg0, &sp9C, &sp98, &sp94);
|
||||
}
|
||||
func_806C2A64(spA0, temp_s0->unk0, temp_s0->unk1, temp_s0->unk2, ((sp9C - spA8) * temp_f20) + spA8, ((sp98 - spA4) * temp_f20) + spA4, ((sp94 - spA0) * temp_f20) + spA0, arg3);
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
extern s32 D_8071FFA0;
|
||||
|
||||
void func_806C2D7C() {
|
||||
func_806C2B2C(1, 0xB, 6, &D_8071FFA0);
|
||||
func_806C2B2C(0x20, 0x30, 6, &D_8071FFA0);
|
||||
|
@ -1080,6 +1080,12 @@ void func_806CF398(Actor *arg0) {
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_CEAE0/func_806CF42C.s")
|
||||
|
||||
/*
|
||||
// TODO: Why doesn't this match anymore?
|
||||
// Ever since I added func_80679200 to functions.h there's a regalloc here
|
||||
// It's possible they forgot to include a header in this file and fell back onto C's default int() overload for this function
|
||||
void func_806CF42C(Actor *arg0) {
|
||||
PlayerAdditionalActorData *PaaD;
|
||||
|
||||
@ -1094,6 +1100,7 @@ void func_806CF42C(Actor *arg0) {
|
||||
PaaD->unk1B0 = 0;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
// Probably doable, character_change loop with cc_number_of_players, PaaD
|
||||
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_CEAE0/func_806CF4B8.s")
|
||||
|
Loading…
Reference in New Issue
Block a user