This commit is contained in:
Donkey Kong 2023-07-29 23:03:47 +09:30
parent c956e53398
commit a4f061146c
13 changed files with 228 additions and 46 deletions

View File

@ -21,6 +21,10 @@ u64 func_80005818(u64, u64);
u64 func_80005918(u64, u64);
u64 func_80007688(f32);
f32 func_8000773C(s64);
void func_80005D80(f32*, f32, f32, f32);
void func_80008580(f32*, f32, f32, f32);
void func_800088B0(void*, void*, void*);
void func_8000A6C0(s32 *, void *);
f32 func_80611BB4(f32, f32);

View File

@ -1516,7 +1516,7 @@ us,.code,func_806B75F4,40,yes
us,.code,func_80639CD0,588,no
us,.code,func_8064B574,48,yes
us,.code,func_806886E0,608,no
us,.code,func_80713438,380,no
us,.code,func_80713438,380,yes
us,.code,func_80631C3C,336,yes
us,.code,func_80660520,784,no
us,.code,func_80714A08,32,yes
@ -2628,7 +2628,7 @@ us,.code,func_806C71F8,8,yes
us,.code,func_8066635C,156,yes
us,.code,func_8067B238,72,yes
us,.code,func_806AA304,4584,no
us,.code,func_806A3C6C,308,no
us,.code,func_806A3C6C,308,yes
us,.code,func_807317FC,176,yes
us,.code,func_8071E1C8,548,yes
us,.code,func_80714638,40,yes
@ -3098,7 +3098,7 @@ us,.code,func_806E6FF0,96,yes
us,.code,func_8062F998,560,no
us,.code,func_8071496C,16,yes
us,.code,func_8069E774,2012,no
us,.code,func_80699128,348,no
us,.code,func_80699128,348,yes
us,.code,func_806FC530,1880,no
us,.code,func_806DFFDC,116,yes
us,.code,func_80678014,60,yes

1 version section function length matching
1516 us .code func_80639CD0 588 no
1517 us .code func_8064B574 48 yes
1518 us .code func_806886E0 608 no
1519 us .code func_80713438 380 no yes
1520 us .code func_80631C3C 336 yes
1521 us .code func_80660520 784 no
1522 us .code func_80714A08 32 yes
2628 us .code func_8066635C 156 yes
2629 us .code func_8067B238 72 yes
2630 us .code func_806AA304 4584 no
2631 us .code func_806A3C6C 308 no yes
2632 us .code func_807317FC 176 yes
2633 us .code func_8071E1C8 548 yes
2634 us .code func_80714638 40 yes
3098 us .code func_8062F998 560 no
3099 us .code func_8071496C 16 yes
3100 us .code func_8069E774 2012 no
3101 us .code func_80699128 348 no yes
3102 us .code func_806FC530 1880 no
3103 us .code func_806DFFDC 116 yes
3104 us .code func_80678014 60 yes

View File

@ -66,7 +66,7 @@ us,.code,func_80030A90,388,yes
us,.code,func_80025AE0,8,yes
us,.code,func_8002ADC8,2368,no
us,.code,func_8002F284,1092,no
us,.code,func_80028D3C,364,no
us,.code,func_80028D3C,364,yes
us,.code,func_800252AC,2100,no
us,.code,func_80030340,1364,no
us,.code,func_80027738,208,yes

1 version section function length matching
66 us .code func_80025AE0 8 yes
67 us .code func_8002ADC8 2368 no
68 us .code func_8002F284 1092 no
69 us .code func_80028D3C 364 no yes
70 us .code func_800252AC 2100 no
71 us .code func_80030340 1364 no
72 us .code func_80027738 208 yes

View File

@ -1516,7 +1516,7 @@ us,.code,func_806B75F4,40,yes
us,.code,func_80639CD0,588,no
us,.code,func_8064B574,48,yes
us,.code,func_806886E0,608,no
us,.code,func_80713438,380,no
us,.code,func_80713438,380,yes
us,.code,func_80631C3C,336,yes
us,.code,func_80660520,784,no
us,.code,func_80714A08,32,yes
@ -2628,7 +2628,7 @@ us,.code,func_806C71F8,8,yes
us,.code,func_8066635C,156,yes
us,.code,func_8067B238,72,yes
us,.code,func_806AA304,4584,no
us,.code,func_806A3C6C,308,no
us,.code,func_806A3C6C,308,yes
us,.code,func_807317FC,176,yes
us,.code,func_8071E1C8,548,yes
us,.code,func_80714638,40,yes
@ -3098,7 +3098,7 @@ us,.code,func_806E6FF0,96,yes
us,.code,func_8062F998,560,no
us,.code,func_8071496C,16,yes
us,.code,func_8069E774,2012,no
us,.code,func_80699128,348,no
us,.code,func_80699128,348,yes
us,.code,func_806FC530,1880,no
us,.code,func_806DFFDC,116,yes
us,.code,func_80678014,60,yes
@ -3352,7 +3352,7 @@ us,.code,func_80030A90,388,yes
us,.code,func_80025AE0,8,yes
us,.code,func_8002ADC8,2368,no
us,.code,func_8002F284,1092,no
us,.code,func_80028D3C,364,no
us,.code,func_80028D3C,364,yes
us,.code,func_800252AC,2100,no
us,.code,func_80030340,1364,no
us,.code,func_80027738,208,yes

1 version section function length matching
1516 us .code func_80639CD0 588 no
1517 us .code func_8064B574 48 yes
1518 us .code func_806886E0 608 no
1519 us .code func_80713438 380 no yes
1520 us .code func_80631C3C 336 yes
1521 us .code func_80660520 784 no
1522 us .code func_80714A08 32 yes
2628 us .code func_8066635C 156 yes
2629 us .code func_8067B238 72 yes
2630 us .code func_806AA304 4584 no
2631 us .code func_806A3C6C 308 no yes
2632 us .code func_807317FC 176 yes
2633 us .code func_8071E1C8 548 yes
2634 us .code func_80714638 40 yes
3098 us .code func_8062F998 560 no
3099 us .code func_8071496C 16 yes
3100 us .code func_8069E774 2012 no
3101 us .code func_80699128 348 no yes
3102 us .code func_806FC530 1880 no
3103 us .code func_806DFFDC 116 yes
3104 us .code func_80678014 60 yes
3352 us .code func_80025AE0 8 yes
3353 us .code func_8002ADC8 2368 no
3354 us .code func_8002F284 1092 no
3355 us .code func_80028D3C 364 no yes
3356 us .code func_800252AC 2100 no
3357 us .code func_80030340 1364 no
3358 us .code func_80027738 208 yes

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">32.0770%</text>
<text x="110.5" y="14">32.0770%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">32.1612%</text>
<text x="110.5" y="14">32.1612%</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 0h41v20H0z"/>
<path fill="#c04f00" d="M41 0h67v20H41z"/>
<path fill="#c05100" d="M41 0h67v20H41z"/>
<path fill="url(#b)" d="M0 0h108v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@ -17,7 +17,7 @@
<text x="20.5" y="14">menu</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="75.5" y="15" fill="#010101" fill-opacity=".3">20.5667%</text>
<text x="74.5" y="14">20.5667%</text>
<text x="75.5" y="15" fill="#010101" fill-opacity=".3">21.1609%</text>
<text x="74.5" y="14">21.1609%</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">31.8142%</text>
<text x="165.5" y="14">31.8142%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">31.8992%</text>
<text x="165.5" y="14">31.8992%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -126,9 +126,37 @@ void func_80028680() {
func_806A2B08(current_actor_pointer->unk11C);
}
// Displaylist stuff
// Displaylist stuff, stack, close
#pragma GLOBAL_ASM("asm/nonmatchings/boss/code_3840/func_800286B8.s")
extern s32 D_80035F90;
extern f32 D_80036054;
extern u8 D_80750AD4;
extern Gfx D_01000118;
/*
void func_800286B8(Gfx *dl, s32 arg1) {
f32 sp90[4][4];
f32 sp50[4][4];
HeapHeader *sp4C;
s32 sp3C;
sp4C = malloc(0x40);
func_8061134C(sp4C);
func_80008580(&sp90, D_80036054, D_80036054, 1.0f);
func_80005D80(&sp50, 100.0f, (character_change_array->unk276 * 4) - 0x3C, 0);
func_800088B0(&sp90, &sp50, &sp90);
func_8000A6C0(&sp90, sp4C);
gSPMatrix(dl++, sp4C, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
func_800031E0(&sp3C, &D_80035F90, D_80750AD4);
gSPDisplayList(dl++, &D_01000118);
gDPPipeSync(dl++);
gDPSetCombineMode(dl++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor(dl++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
func_806FC530(func_8070068C(dl), 1, 0, 0, &sp3C, 0);
}
*/
void func_80028818() {
}

View File

@ -637,8 +637,33 @@ Gfx *func_807132DC(Gfx *arg0) {
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_114270/func_8071338C.s")
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_114270/func_80713438.s")
extern s16 D_80744490;
extern char D_8075E5D4[];
void *func_806FC530(void *arg0, s16 arg1, s16 arg2, s16 arg3, u8 *arg4, u8 arg5);
s32 func_806FBD5C(s16, void*);
void func_80713438(Gfx *dl, u8 arg1) {
void *sp34;
s32 sp30;
s32 pad2C;
f32 sp28;
f32 temp_f16;
s32 size;
sp30 = func_8070E750(0xC, 1, 1);
size = func_80002F18(sp30) + 2;
sp28 = D_80744490 * 0.5 * 2;
temp_f16 = 418.0f;
sp34 = malloc(size);
func_8061134C(sp34);
func_800031E0(sp34, &D_8075E5D4, 0x63, sp30);
sp28 -= 0.5 * func_806FBD5C(1, sp34);
gDPSetRenderMode(dl++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetPrimColor(dl++, 0, 0, 0x00, 0x00, 0x00, arg1);
gDPSetCombineLERP(dl++, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0);
func_806FC530(dl, 1, sp28 * 4.0f, temp_f16 * 4.0f, sp34, 4);
}
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_114270/func_807135B4.s")

View File

@ -17,8 +17,22 @@ void func_80699070(s16 *arg0, s16 *arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5,
*arg0 = (func_80611BB4(arg6 - arg3, sqrtf((temp_f0 * temp_f0) + (temp_f2 * temp_f2))) * 2048.0) / D_8075A2D0;
}
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_9DD70/func_80699128.s")
extern Mtx D_02000180;
typedef struct {
u8 unk0[0x128 - 0x0];
s16 unk128;
} Struct80699128_arg1;
void func_80699128(Gfx *dl, Struct80699128_arg1 *arg1) {
gSPMatrix(dl++, osVirtualToPhysical(&character_change_array[cc_player_index].unk88[D_807444FC]), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(dl++, osVirtualToPhysical(&character_change_array[cc_player_index].unk8[D_807444FC]), G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(dl++, &D_02000180, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPPipeSync(dl++);
gSPClearGeometryMode(dl++, G_LIGHTING);
gDPSetPrimColor(dl++, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF);
func_80614B34(func_8065D008(dl, arg1->unk128, 1), arg1);
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_9DD70/func_80699284.s")

View File

@ -73,8 +73,20 @@ void func_806A3B78(s32 *arg0, AAD_806A4DDC *arg1, Struct806A57C0_2 *arg2, u8 arg
*arg0 = sp44;
}
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A8400/func_806A3C6C.s")
void *func_8068C12C(u16 textureIndex);
Gfx *func_806A3C6C(Gfx *dl, s32 arg1, u8 arg2, s32 arg3) {
void *texture;
texture = func_8068C12C(arg3 + 0x52);
gDPPipeSync(dl++);
gDPSetPrimColor(dl++, 0, 0, 0xFF, 0xFF, 0xFF, arg2);
gSPMatrix(dl++, arg1, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
func_80702464(&dl, texture, 3, 0x60, 0x40, 0x20, 0x20, 0.0f, 0.0f, 96.0f, 64.0f, 0.0f, 0.0f, 1, 8);
gSPPopMatrix(dl++, G_MTX_MODELVIEW);
gDPPipeSync(dl++);
return dl;
}
// stack, close
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A8400/func_806A3DA0.s")

View File

@ -663,7 +663,7 @@ void func_806AC048(s32 arg0, s32 arg1) {
// Jumptable
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_ACDC0/func_806AC07C.s")
// Displaylist stuff
// Displaylist stuff, doable
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_ACDC0/func_806ACA88.s")
void func_806ACC00(u8 arg0) {

View File

@ -105,9 +105,55 @@ void func_80027F40(Actor *arg0, s32 arg1) {
// Large, doable, struct on the stack?
#pragma GLOBAL_ASM("asm/nonmatchings/menu/code_3E10/func_80027FAC.s")
// Displaylist stuff, text labels
// Displaylist stuff, stack
#pragma GLOBAL_ASM("asm/nonmatchings/menu/code_3E10/func_800286C8.s")
s32 *label_string_pointer_array;
extern f32 text_label_scale;
extern f32 text_transition_speed;
typedef struct {
f32 unk0;
f32 unk4;
s32 unk8;
s16 unkC;
s16 unkE;
s32 unk10;
u8 unk14;
u8 unk15;
u8 unk16;
s8 unk17;
} Struct800317E8;
s32 func_800317E8(Struct800317E8 *arg0, f32 arg1, f32 arg2, f32 *arg3, f32 *arg4, s32 arg5, s8 arg6, f32 arg7);
Gfx *func_806FC530(Gfx*, s16, s16, s16, void *, s32);
/*
Gfx *func_800286C8(Actor *arg0, Gfx *dl) {
s32 pad2;
s32 spD0;
s32 pad;
void *aaD = arg0->additional_actor_data;
f32 spC4;
f32 spC0;
HeapHeader *sp38; // BC, needs to be 38
f32 sp7C[4][4];
f32 sp3C[4][4];
global_properties_bitfield |= 0x10;
gDPSetPrimColor(dl++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
spD0 = func_800317E8(aaD, 160.0f, 20.0f, &spC4, &spC0, 5, 1, text_transition_speed);
sp38 = malloc(0x40);
func_8061134C(sp38);
func_80008580(&sp7C, text_label_scale, text_label_scale, 1.0f);
func_80005D80(&sp3C, spC4 * 4.0, spC0 * 4.0, 0);
func_800088B0(&sp7C, &sp3C, &sp7C);
func_8000A6C0(&sp7C, sp38);
gSPMatrix(dl++, sp38, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
return func_806FC530(dl, 1, 0, 0, label_string_pointer_array[spD0], 0x80);
}
*/
s8 current_menu_selection;
// TODO: Might be a fake match since func_80030894 probably takes a void* as an arg instead of s32
@ -199,10 +245,43 @@ void func_80028C20(Actor *arg0, s32 arg1) {
func_8002FC1C(arg0, MaaD, 1);
}
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/menu/code_3E10/func_80028D3C.s")
extern char *D_80033B30;
extern char *D_80033B34;
extern char *D_80033B38;
extern f32 D_80033C90;
s32 func_800322D0(s32);
s32 func_800322D0(s8);
Gfx *func_806ABB98(Gfx*, s16, s16, f32, void*);
Gfx *func_80028D3C(Actor *arg0, Gfx *dl) {
s32 pad;
s32 sp100;
f32 spFC;
f32 spF8;
f32 temp3[4][4];
f32 temp2[4][4];
f32 temp[4][4];
void *aaD = arg0->additional_actor_data;
s32 pad2;
s32 sp2C;
global_properties_bitfield &= ~0x10;
gDPSetPrimColor(dl++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
sp100 = func_800317E8(aaD, 160.0f, 15.0f, &spFC, &spF8, 4, 1, D_80033C90);
if (sp100 == 2) {
func_800031E0(&sp2C, &D_80033B30, label_string_pointer_array[5]);
} else {
if (sp100 == 3) {
sp100 = 2;
}
if (func_800322D0(sp100) != 0) {
func_800031E0(&sp2C, &D_80033B34, label_string_pointer_array[6]);
} else {
func_800031E0(&sp2C, &D_80033B38, label_string_pointer_array[7], sp100 + 1);
}
}
return func_806ABB98(dl, spFC * 4.0f, spF8 * 4.0f, 0.600000023842f, &sp2C);
}
void func_80028EA8(Actor *arg0, s32 arg1) {
PlayerAdditionalActorData* PaaD;
@ -306,9 +385,46 @@ void func_80029AAC(Actor *arg0, s32 arg1) {
func_8002FC1C(arg0, MaaD, 1);
}
// Displaylist stuff
// Displaylist stuff, close
#pragma GLOBAL_ASM("asm/nonmatchings/menu/code_3E10/func_80029BB4.s")
extern s32 D_80033B64;
extern s32 D_80033B68;
extern f32 D_80033CB0;
/*
Gfx *func_80029BB4(Actor *arg0, Gfx *dl) {
s32 sp120;
s32 pad118;
s32 pad114;
f32 sp110;
f32 sp10C;
s32 pad108;
s32 pad104;
s32 pad100;
s16 spFE;
s16 temp_f4;
s32 padF8;
f32 temp3[4][4];
f32 temp2[4][4];
f32 temp[4][4];
s32 sp34;
void *aaD = arg0->additional_actor_data;
gDPSetPrimColor(dl++, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF);
sp120 = func_800317E8(aaD, 160.0f, 25.0f, &sp110, &sp10C, 3, 1, D_80033CB0);
temp_f4 = sp10C * 4.0f;
spFE = sp110 * 4.0f;
if (func_800322D0(sp120) != 0) {
func_800031E0(&sp34, &D_80033B64, label_string_pointer_array[6]);
} else {
func_800031E0(&sp34, &D_80033B68, label_string_pointer_array[7], sp120 + 1);
}
dl = func_806ABB98(dl, spFE, temp_f4, 0.6f, &sp34);
return func_806ABB98(dl, sp110 * 4.0f, temp_f4 - 0x3C, 0.6f, label_string_pointer_array[8]);
}
*/
// TODO: Might be a fake match since func_80030894 probably takes a void* as an arg instead of s32
// We'll see when .rodata and .data shake out I guess...
void func_80029D30(Actor *arg0, s32 arg1) {
@ -916,21 +1032,6 @@ void func_8002F8EC() {
#pragma GLOBAL_ASM("asm/nonmatchings/menu/code_3E10/func_8002F980.s")
typedef struct {
f32 unk0;
f32 unk4;
s32 unk8;
s16 unkC;
s16 unkE;
s32 unk10;
u8 unk14;
u8 unk15;
u8 unk16;
s8 unk17;
} Struct800317E8;
s32 func_800317E8(Struct800317E8 *arg0, f32 arg1, f32 arg2, f32 *arg3, f32 *arg4, s32 arg5, s8 arg6, f32 arg7);
Gfx *func_806FC530(Gfx*, s16, s16, s16, void *, s32);
extern s32 D_800339C4; // TODO: Datatype
extern f32 D_80033F44;
@ -1297,7 +1398,7 @@ void func_80032024(void) {
}
*/
s32 func_800322D0(s8 arg0) {
s32 func_800322D0(s32 arg0) {
return !func_8060C6B8(0xD, 0, 0, arg0);
}
@ -1337,8 +1438,6 @@ s32 func_80032304(void) {
}
*/
s32 *label_string_pointer_array;
void func_800324CC(void) {
s32 temp_v0;
s32 i;