This commit is contained in:
Donkey Kong 2023-07-06 17:55:08 +09:30
parent af6a24e347
commit b103828055
10 changed files with 46 additions and 70 deletions

View File

@ -3,6 +3,19 @@
/* your struct definitions go here */
// Finally!!!
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
} Struct807F5FD4_unk0;
typedef struct {
Struct807F5FD4_unk0 *unk0[2];
s32 unk8;
} Struct807F5FD4;
extern Struct807F5FD4 *D_807F5FD4;
typedef struct HeapHeader HeapHeader;
struct HeapHeader {

View File

@ -30,7 +30,7 @@ us,.code,func_80029B9C,696,no
us,.code,func_80029364,2104,no
us,.code,func_8002733C,356,yes
us,.code,func_80024000,240,no
us,.code,func_8002AD10,456,no
us,.code,func_8002AD10,456,yes
us,.code,func_8002C8EC,796,yes
us,.code,func_800265C0,200,yes
us,.code,func_8002D010,736,no

1 version section function length matching
30 us .code func_80029364 2104 no
31 us .code func_8002733C 356 yes
32 us .code func_80024000 240 no
33 us .code func_8002AD10 456 no yes
34 us .code func_8002C8EC 796 yes
35 us .code func_800265C0 200 yes
36 us .code func_8002D010 736 no

View File

@ -3603,7 +3603,7 @@ us,.code,func_80029B9C,696,no
us,.code,func_80029364,2104,no
us,.code,func_8002733C,356,yes
us,.code,func_80024000,240,no
us,.code,func_8002AD10,456,no
us,.code,func_8002AD10,456,yes
us,.code,func_8002C8EC,796,yes
us,.code,func_800265C0,200,yes
us,.code,func_8002D010,736,no

1 version section function length matching
3603 us .code func_80029364 2104 no
3604 us .code func_8002733C 356 yes
3605 us .code func_80024000 240 no
3606 us .code func_8002AD10 456 no yes
3607 us .code func_8002C8EC 796 yes
3608 us .code func_800265C0 200 yes
3609 us .code func_8002D010 736 no

View File

@ -9,7 +9,7 @@
</mask>
<g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h45v20H0z"/>
<path fill="#c02800" d="M45 0h67v20H45z"/>
<path fill="#c02c00" d="M45 0h67v20H45z"/>
<path fill="url(#b)" d="M0 0h112v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@ -17,7 +17,7 @@
<text x="22.5" y="14">bonus</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="79.5" y="15" fill="#010101" fill-opacity=".3">10.3363%</text>
<text x="78.5" y="14">10.3363%</text>
<text x="79.5" y="15" fill="#010101" fill-opacity=".3">11.5053%</text>
<text x="78.5" y="14">11.5053%</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">29.7086%</text>
<text x="165.5" y="14">29.7086%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">29.7363%</text>
<text x="165.5" y="14">29.7363%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -184,13 +184,6 @@ u8 func_80027548(f32 arg0, f32 arg1, f32 arg2) {
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_800277F8.s")
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
} Struct807F5FD4;
extern Struct807F5FD4 *D_807F5FD4; // TODO: Seems to be a pointer to the struct array
extern f32 D_8002DD40;
extern f32 D_8002DD44;
extern f32 D_8002DD48;
@ -430,6 +423,7 @@ void func_800284C0(void) {
func_806319C4(current_actor_pointer, 0);
}
// doable close regalloc
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_80028648.s")
typedef struct {
@ -458,30 +452,31 @@ typedef struct {
} AAD_80028648_2;
/*
// TODO: Pretty close
void func_80028648(ARG0_80028648 *arg0) {
s32 i;
AAD_80028648 *temp_s2;
AAD_80028648_2 *temp_v0_2;
AAD_80028648 *snakeAAD;
AAD_80028648_2 *turtleAAD;
Struct807F5FD4_unk0 *temp;
for (i = 1; i < 7; i++) {
if (func_80677FA8(ACTOR_SNAKE, 0x15) != 0) {
temp_s2 = D_807FBB44->additional_actor_data;
temp_s2->unk0 = current_actor_pointer;
temp_s2->unk11 = (((rand() >> 0xF) % 32767) % ((arg0->unk1C - arg0->unk1B) + 1)) + arg0->unk1B;
snakeAAD = D_807FBB44->additional_actor_data;
snakeAAD->unk0 = current_actor_pointer;
snakeAAD->unk11 = (((rand() >> 0xF) % 32767) % ((arg0->unk1C - arg0->unk1B) + 1)) + arg0->unk1B;
temp = &D_807F5FD4->unk0[0][i];
func_80614EBC(D_807FBB44, 0x1F5);
D_807FBB44->x_position = D_807F5FD4[i].unk0;
D_807FBB44->y_position = D_807F5FD4[i].unk4;
D_807FBB44->z_position = D_807F5FD4[i].unk8;
D_807FBB44->x_position = temp->unk0;
D_807FBB44->y_position = temp->unk4;
D_807FBB44->z_position = temp->unk8;
D_807FBB44->object_properties_bitfield |= 0x1000;
D_807FBB44->y_rotation = 0x800;
arg0->unk0[i] = D_807FBB44;
arg0->unk0[i - 1] = D_807FBB44;
if (func_80677FA8(ACTOR_TURTLE, 0x16) != 0) {
temp_v0_2 = D_807FBB44->additional_actor_data;
temp_v0_2->unk0 = D_807FBB44;
temp_v0_2->unk6 = i - 1;
temp_s2->unk4 = D_807FBB44;
temp_v0_2->unk8 = -1;
turtleAAD = D_807FBB44->additional_actor_data;
turtleAAD->unk0 = D_807FBB44;
turtleAAD->unk6 = i - 1;
snakeAAD->unk4 = D_807FBB44;
turtleAAD->unk8 = -1;
}
}
}
@ -609,7 +604,6 @@ void func_80028E3C(void) {
extern s16 D_8002D8C8[];
extern ? D_8002D8D4;
extern f32 D_8002DDB8;
extern s32 *D_807F5FD4;
void func_80029E54(Actor *arg0) {
s16 *var_s2;
@ -734,8 +728,6 @@ void func_8002AAA4(void) {
func_806319C4(current_actor_pointer, 0);
}
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_8002AD10.s")
extern f32 D_8002DDEC;
typedef struct {
@ -750,10 +742,8 @@ typedef struct {
s16 unkA;
} a8D_8002AD10;
/*
// TODO: Very close!
void func_8002AD10(void) {
s32 pad1;
Struct807F5FD4_unk0 *pad1;
aaD_8002AD10 *var_t0;
Actor *pad2;
a8D_8002AD10 *temp_a2;
@ -767,8 +757,8 @@ void func_8002AD10(void) {
if (var_t0->unk4 == 0 || var_t0->unk4 >= 5) {
current_actor_pointer->x_position -= 1.5;
}
// TODO: Problem is here
if (current_actor_pointer->x_position < D_807F5FD4[3].unk8 - 50.0) {
pad1 = &D_807F5FD4->unk0[0][3];
if (current_actor_pointer->x_position < pad1->unk0 - 50.0) {
if (temp_a2->unkA > 0) {
temp_a2->unkA--;
}
@ -792,7 +782,6 @@ void func_8002AD10(void) {
}
func_806319C4(current_actor_pointer, 0);
}
*/
// Jumptable
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_2690/func_8002AED8.s")

View File

@ -1180,7 +1180,6 @@ extern void *D_807F5DEC;
extern s32 D_807F5FC8;
extern void *D_807F5FCC;
extern s32 D_807F5FD0;
extern s32 *D_807F5FD4; // TODO: Which struct?
extern f32 D_807F5FDC;
extern s16 D_807F5FE4;
extern s16 D_807F5FE6;
@ -1282,8 +1281,8 @@ void func_8062F328(s32 arg0) {
if (D_807F5FD0 != 0) {
for (i = 0; i <= D_807F5FD0; i++) {
temp = D_807F5FD4[i];
D_807F5FD4[i] = temp + arg0;
temp = D_807F5FD4->unk0[i];
D_807F5FD4->unk0[i] = temp + arg0;
}
}
}

View File

@ -960,20 +960,6 @@ void func_80643274(s32 arg0, s16 arg1, s16 arg2, s16 arg3) {
}
}
// Finally!!!
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
} Struct807F5FD4_unk0;
typedef struct {
Struct807F5FD4_unk0 *unk0;
Struct807F5FD4_unk0 *unk4;
s32 unk8;
} Struct807F5FD4;
extern Struct807F5FD4 *D_807F5FD4;
void func_80643354(s32 arg0, u32 arg1, u32 arg2) {
u32 sp24;
Struct807F5FD4_unk0 *temp_v0;
@ -985,7 +971,7 @@ void func_80643354(s32 arg0, u32 arg1, u32 arg2) {
func_8071498C(&func_80717D4C);
func_807149B8(1);
func_80714998(3);
temp_v0 = &D_807F5FD4->unk0[sp24];
temp_v0 = &D_807F5FD4->unk0[0][sp24];
func_80714CC0(&D_8071FFA0, 1.5f, temp_v0->unk0, temp_v0->unk4, temp_v0->unk8);
}
}
@ -1234,7 +1220,7 @@ void func_80644EC8(s32 arg0, s32 arg1, s16 arg2, s16 arg3) {
func_80714950(0x10064);
func_8071498C(&func_8071AADC);
func_807149C8(0xFF, 0xFF, 0xFF, 0xFF);
func_80714CC0(&D_80720A7C, 1.2f, D_807F5FD4->unk0[sp2C].unk0, D_807F5FD4->unk0[sp2C].unk4, D_807F5FD4->unk0[sp2C].unk8);
func_80714CC0(&D_80720A7C, 1.2f, D_807F5FD4->unk0[0][sp2C].unk0, D_807F5FD4->unk0[0][sp2C].unk4, D_807F5FD4->unk0[0][sp2C].unk8);
}
if (((func_806119A0() / 10000) % arg2) == 0) {
sp2C = (func_806119A0() / 10000) % arg3;
@ -1242,7 +1228,7 @@ void func_80644EC8(s32 arg0, s32 arg1, s16 arg2, s16 arg3) {
func_80714950(0x10064);
func_8071498C(&func_8071AADC);
func_807149C8(0xFF, 0xFF, 0xFF, 0xFF);
func_80714CC0(&D_80720A7C, 1.2f, D_807F5FD4->unk4[sp2C].unk0, D_807F5FD4->unk4[sp2C].unk4, D_807F5FD4->unk4[sp2C].unk8);
func_80714CC0(&D_80720A7C, 1.2f, D_807F5FD4->unk0[1][sp2C].unk0, D_807F5FD4->unk0[1][sp2C].unk4, D_807F5FD4->unk0[1][sp2C].unk8);
}
}
@ -1254,7 +1240,6 @@ u32 func_806119A0();
extern ? D_80718188;
extern f32 D_807480E8;
extern u8 D_807480EF;
extern s32 D_807F5FD4;
// TODO: Needs shape for D_807F5FD4
void func_806450C0(s32 arg0, ? arg1, s16 arg2, s16 arg3) {
@ -1720,7 +1705,7 @@ void func_806493C4(s32 arg0, s32 arg1, s16 arg2, s16 arg3) {
func_807149A8(0x7D0);
func_8071498C(func_8071F660);
func_807149FC(8);
func_80714CC0(&D_80721298, 1.0f, D_807F5FD4->unk0[temp_s1].unk0, D_807F5FD4->unk0[temp_s1].unk4, D_807F5FD4->unk0[temp_s1].unk8);
func_80714CC0(&D_80721298, 1.0f, D_807F5FD4->unk0[0][temp_s1].unk0, D_807F5FD4->unk0[0][temp_s1].unk4, D_807F5FD4->unk0[0][temp_s1].unk8);
}
}

View File

@ -68,14 +68,6 @@ s32 func_800276B0(s32 arg0, RaceStruct15 *arg1, RaceStruct15 *arg2) {
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_36B0/func_80027880.s")
typedef struct {
f32 unk0;
f32 unk4;
f32 unk8;
} Struct80027880;
extern Struct80027880 *D_807F5FD4;
/*
// TODO: Very close
void func_80027880(s32 arg0, u16 arg1, u16 arg2) {

View File

@ -109,8 +109,6 @@ typedef struct {
f32 unk8;
} Struct80027880;
extern Struct80027880 *D_807F5FD4;
/*
void func_8002BCD4(Actor *arg0) {
f32 var_f0;