This commit is contained in:
Donkey Kong 2023-07-28 12:31:35 +09:30
parent 3b1c2bb907
commit bcf7a3745a
21 changed files with 192 additions and 45 deletions

View File

@ -29,6 +29,8 @@ void func_806DF5A0(s16 *arg0, s16 arg1, s16 arg2, s16 arg3);
Actor *func_807270C0(s16 spawn_trigger, u16 arg1);
Actor *func_807271F4(s16 arg0, s16 arg1, s16 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6);
Gfx *func_8068C5A8(Gfx *, u16, s32, s32, s32, s32, s32, s32, f32, f32, s32, f32);
// TODO: What do the params mean?
void playCutscene(Actor*, s16, s32);
void playSong(s32, f32);

View File

@ -944,7 +944,8 @@ typedef struct player_additional_actor_data {
f32 unk1E0; // Used
s32 unk1E4;
s32 unk1E8;
s16 unk1EC;
u8 unk1EC;
u8 unk1ED;
s16 unk1EE; // Used
s32 unk1F0; // Used, bitfield // TODO: Proper bitfield syntax
s32 unk1F4;

View File

@ -42,7 +42,7 @@ us,.code,func_80029E54,444,no
us,.code,func_80026690,688,no
us,.code,func_800254B0,396,no
us,.code,func_8002D6F8,240,yes
us,.code,func_800252A0,324,no
us,.code,func_800252A0,324,yes
us,.code,func_80027F14,1452,no
us,.code,func_8002A010,904,no
us,.code,func_80027548,688,no

1 version section function length matching
42 us .code func_80026690 688 no
43 us .code func_800254B0 396 no
44 us .code func_8002D6F8 240 yes
45 us .code func_800252A0 324 no yes
46 us .code func_80027F14 1452 no
47 us .code func_8002A010 904 no
48 us .code func_80027548 688 no

View File

@ -2485,7 +2485,7 @@ us,.code,func_806BA130,272,yes
us,.code,func_80687CC8,128,yes
us,.code,func_8070CD44,72,yes
us,.code,func_80732420,36,yes
us,.code,func_806B76B0,384,no
us,.code,func_806B76B0,384,yes
us,.code,func_806ED5C0,240,yes
us,.code,func_8067E784,4932,no
us,.code,func_80689710,224,yes
@ -2953,7 +2953,7 @@ us,.code,func_8063643C,12,yes
us,.code,func_80600674,732,no
us,.code,func_806CC970,412,no
us,.code,func_807300BC,844,no
us,.code,func_806FF628,308,no
us,.code,func_806FF628,308,yes
us,.code,func_806960A4,1232,no
us,.code,func_806DD874,572,yes
us,.code,func_80611688,8,yes
@ -2968,7 +2968,7 @@ us,.code,func_80605380,400,no
us,.code,func_8067BA7C,492,no
us,.code,func_80671F54,480,no
us,.code,func_80608DA8,920,no
us,.code,func_8069F904,316,no
us,.code,func_8069F904,316,yes
us,.code,func_807232B8,52,yes
us,.code,func_8073A488,144,no
us,.code,func_8070E548,520,no

1 version section function length matching
2485 us .code func_80687CC8 128 yes
2486 us .code func_8070CD44 72 yes
2487 us .code func_80732420 36 yes
2488 us .code func_806B76B0 384 no yes
2489 us .code func_806ED5C0 240 yes
2490 us .code func_8067E784 4932 no
2491 us .code func_80689710 224 yes
2953 us .code func_80600674 732 no
2954 us .code func_806CC970 412 no
2955 us .code func_807300BC 844 no
2956 us .code func_806FF628 308 no yes
2957 us .code func_806960A4 1232 no
2958 us .code func_806DD874 572 yes
2959 us .code func_80611688 8 yes
2968 us .code func_8067BA7C 492 no
2969 us .code func_80671F54 480 no
2970 us .code func_80608DA8 920 no
2971 us .code func_8069F904 316 no yes
2972 us .code func_807232B8 52 yes
2973 us .code func_8073A488 144 no
2974 us .code func_8070E548 520 no

View File

@ -73,7 +73,7 @@ us,.code,func_8002F36C,180,yes
us,.code,func_8002D0FC,76,yes
us,.code,func_8002B180,920,no
us,.code,func_8002B610,184,yes
us,.code,func_8002C63C,304,no
us,.code,func_8002C63C,304,yes
us,.code,func_80026050,72,yes
us,.code,func_800261E0,372,yes
us,.code,func_8002DCF0,128,yes

1 version section function length matching
73 us .code func_8002D0FC 76 yes
74 us .code func_8002B180 920 no
75 us .code func_8002B610 184 yes
76 us .code func_8002C63C 304 no yes
77 us .code func_80026050 72 yes
78 us .code func_800261E0 372 yes
79 us .code func_8002DCF0 128 yes

View File

@ -2485,7 +2485,7 @@ us,.code,func_806BA130,272,yes
us,.code,func_80687CC8,128,yes
us,.code,func_8070CD44,72,yes
us,.code,func_80732420,36,yes
us,.code,func_806B76B0,384,no
us,.code,func_806B76B0,384,yes
us,.code,func_806ED5C0,240,yes
us,.code,func_8067E784,4932,no
us,.code,func_80689710,224,yes
@ -2953,7 +2953,7 @@ us,.code,func_8063643C,12,yes
us,.code,func_80600674,732,no
us,.code,func_806CC970,412,no
us,.code,func_807300BC,844,no
us,.code,func_806FF628,308,no
us,.code,func_806FF628,308,yes
us,.code,func_806960A4,1232,no
us,.code,func_806DD874,572,yes
us,.code,func_80611688,8,yes
@ -2968,7 +2968,7 @@ us,.code,func_80605380,400,no
us,.code,func_8067BA7C,492,no
us,.code,func_80671F54,480,no
us,.code,func_80608DA8,920,no
us,.code,func_8069F904,316,no
us,.code,func_8069F904,316,yes
us,.code,func_807232B8,52,yes
us,.code,func_8073A488,144,no
us,.code,func_8070E548,520,no
@ -3532,7 +3532,7 @@ us,.code,func_8002F36C,180,yes
us,.code,func_8002D0FC,76,yes
us,.code,func_8002B180,920,no
us,.code,func_8002B610,184,yes
us,.code,func_8002C63C,304,no
us,.code,func_8002C63C,304,yes
us,.code,func_80026050,72,yes
us,.code,func_800261E0,372,yes
us,.code,func_8002DCF0,128,yes
@ -3615,7 +3615,7 @@ us,.code,func_80029E54,444,no
us,.code,func_80026690,688,no
us,.code,func_800254B0,396,no
us,.code,func_8002D6F8,240,yes
us,.code,func_800252A0,324,no
us,.code,func_800252A0,324,yes
us,.code,func_80027F14,1452,no
us,.code,func_8002A010,904,no
us,.code,func_80027548,688,no

1 version section function length matching
2485 us .code func_80687CC8 128 yes
2486 us .code func_8070CD44 72 yes
2487 us .code func_80732420 36 yes
2488 us .code func_806B76B0 384 no yes
2489 us .code func_806ED5C0 240 yes
2490 us .code func_8067E784 4932 no
2491 us .code func_80689710 224 yes
2953 us .code func_80600674 732 no
2954 us .code func_806CC970 412 no
2955 us .code func_807300BC 844 no
2956 us .code func_806FF628 308 no yes
2957 us .code func_806960A4 1232 no
2958 us .code func_806DD874 572 yes
2959 us .code func_80611688 8 yes
2968 us .code func_8067BA7C 492 no
2969 us .code func_80671F54 480 no
2970 us .code func_80608DA8 920 no
2971 us .code func_8069F904 316 no yes
2972 us .code func_807232B8 52 yes
2973 us .code func_8073A488 144 no
2974 us .code func_8070E548 520 no
3532 us .code func_8002D0FC 76 yes
3533 us .code func_8002B180 920 no
3534 us .code func_8002B610 184 yes
3535 us .code func_8002C63C 304 no yes
3536 us .code func_80026050 72 yes
3537 us .code func_800261E0 372 yes
3538 us .code func_8002DCF0 128 yes
3615 us .code func_80026690 688 no
3616 us .code func_800254B0 396 no
3617 us .code func_8002D6F8 240 yes
3618 us .code func_800252A0 324 no yes
3619 us .code func_80027F14 1452 no
3620 us .code func_8002A010 904 no
3621 us .code func_80027548 688 no

View File

@ -9,7 +9,7 @@
</mask>
<g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h45v20H0z"/>
<path fill="#c02f00" d="M45 0h67v20H45z"/>
<path fill="#c03300" 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">12.3257%</text>
<text x="78.5" y="14">12.3257%</text>
<text x="79.5" y="15" fill="#010101" fill-opacity=".3">13.1563%</text>
<text x="78.5" y="14">13.1563%</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 0h77v20H0z"/>
<path fill="#c07a00" d="M77 0h67v20H77z"/>
<path fill="#c07b00" d="M77 0h67v20H77z"/>
<path fill="url(#b)" d="M0 0h144v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@ -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">31.8863%</text>
<text x="110.5" y="14">31.8863%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">31.9682%</text>
<text x="110.5" y="14">31.9682%</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 0h37v20H0z"/>
<path fill="#c05d00" d="M37 0h67v20H37z"/>
<path fill="#c05f00" d="M37 0h67v20H37z"/>
<path fill="url(#b)" d="M0 0h104v20H0z"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@ -17,7 +17,7 @@
<text x="18.5" y="14">race</text>
</g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="71.5" y="15" fill="#010101" fill-opacity=".3">24.1564%</text>
<text x="70.5" y="14">24.1564%</text>
<text x="71.5" y="15" fill="#010101" fill-opacity=".3">24.7912%</text>
<text x="70.5" y="14">24.7912%</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="#c07900" d="M132 0h67v20H132z"/>
<path fill="#c07a00" 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">31.6090%</text>
<text x="165.5" y="14">31.6090%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">31.7083%</text>
<text x="165.5" y="14">31.7083%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -7,8 +7,34 @@ void func_8061C464(s32, Actor*, s32, s32, s32, s32, s32, s32, s32, s32, f32);
extern f32 D_8002DCB8;
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/bonus/code_12A0/func_800252A0.s")
void *func_8068DC54(s32, s32, s32, void *, s32, void *);
s32 func_806FE078(void *, u8, s32, f32, f32, f32, f32); // extern
extern Gfx D_01000118;
extern Mtx D_02000080;
extern Mtx D_02000180;
typedef struct {
u8 unk0[0x14 - 0x0];
u8 unk14;
u8 unk15;
s16 unk16;
u8 unk18;
u8 unk19;
} AAD_800252A0;
void func_800252A0(Gfx *dl, Actor *arg1) {
AAD_800252A0 *aaD;
aaD = arg1->additional_actor_data;
gDPPipeSync(dl++);
gDPSetPrimColor(dl++, 0, 0, 0xC8, 0xC8, 0xC8, 0xFF);
gDPSetCombineMode(dl++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetRenderMode(dl++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gSPDisplayList(dl++, &D_01000118);
gSPMatrix(dl++, &D_02000080, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gSPMatrix(dl++, &D_02000180, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
func_8068DC54(func_806FE078(dl, aaD->unk19, 8, 30.0f, 36.0f, 0.0f, 1.5f), 0x26, 0x32, &aaD->unk14, aaD->unk16, &aaD->unk18);
}
Actor* func_800253E4(s32 arg0, s16 arg1, s16 arg2, s16 arg3) {
BaaD2 *tmp;

View File

@ -140,7 +140,6 @@ void func_806FDF54(f32 *arg0, f32 *arg1) {
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_1025E0/func_806FEDB0.s")
s32 func_8068C5A8(Gfx *, s32, s32, s32, s32, s32, s32, s32, f32, f32, s32, f32);
extern f32 D_8075DE70;
Gfx *func_806FEDB0(s32, u8);
@ -195,8 +194,20 @@ void func_806FF32C(s32 arg0, Actor *arg1) {
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_1025E0/func_806FF358.s")
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_1025E0/func_806FF628.s")
Gfx *func_806FF628(Gfx *dl, s32 arg1) {
PlayerAdditionalActorData *PaaD;
PaaD = character_change_array->player_pointer->additional_actor_data;
dl = func_806FEDB0(dl, PaaD->unk1A4);
if (PaaD->unk1EC == 2) {
gDPSetPrimColor(dl++, 0, 0, 0xFF, 0x00, 0x00, 0x64);
dl = func_8068C5A8(dl, 0x45, 3, 1, 0x40, 0x40, 0xA0, 0x78, 2.0f, 2.0f, 0, 0.0f);
} else if (PaaD->unk1EC == 1) {
gDPSetPrimColor(dl++, 0, 0, 0x00, 0xFF, 0x00, 0x64);
dl = func_8068C5A8(dl, 0x44, 3, 1, 0x40, 0x40, 0xA0, 0x78, 2.0f, 2.0f, 0, 0.0f);
}
return dl;
}
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_1025E0/func_806FF75C.s")

View File

@ -647,9 +647,27 @@ s32 func_8071375C(s32 arg0) {
return arg0;
}
// Displaylist stuff
// Displaylist stuff, close
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_114270/func_80713764.s")
extern s16 D_80744490;
extern s16 D_80744494;
/*
void func_80713764(Gfx *dl, u8 arg1, f32 arg2) {
f32 temp;
f32 temp2;
temp = D_80744490 * 0.5;
temp2 = (D_80744494 * 0.5) + -20.0 + arg2;
gDPSetRenderMode(dl++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
// TODO: Issue here
gDPSetPrimColor(dl++, 0, 0, 0x00, 0x00, arg1, 0x00);
gDPSetCombineLERP(dl++, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0, 0, 0, 0, TEXEL0, TEXEL0, 0, PRIMITIVE, 0);
gDPSetTextureFilter(dl++, G_TF_POINT);
func_8068C5A8(dl, 0x2C, 0, 2, 0xE0, 0x80, temp, temp2, 1.0f, 1.0f, 0, 0.0f);
}
*/
// TODO: This might return a displaylist
void func_807138A4(s32 *arg0) {
func_807135B4(func_807132DC(arg0));

View File

@ -329,8 +329,6 @@ void func_8068C350(void *arg0, Actor *arg1, u8 arg2) {
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F4B0/func_8068D264.s")
void func_8068C5A8(void *, u16, s32, s32, s32, s32, s32, s32, f32, f32, s32, f32); // extern
extern Gfx D_01000118;
extern Mtx D_02000080;

View File

@ -352,8 +352,21 @@ void func_8069F020(void) {
}
*/
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A2F10/func_8069F904.s")
extern Gfx D_01000118;
extern Mtx D_020000C0;
void func_8069F904(Gfx *dl, Actor *arg1) {
f32 temp_f0;
temp_f0 = arg1->unkE0;
gSPDisplayList(dl++, &D_01000118);
gDPSetCombineMode(dl++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetRenderMode(dl++, G_RM_CLD_SURF, G_RM_CLD_SURF2);
gSPMatrix(dl++, &D_020000C0, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
gDPPipeSync(dl++);
gDPSetPrimColor(dl++, 0, 0, 0xFF, 0xFF, 0xFF, arg1->y_rotation);
func_8068C5A8(dl, (arg1->unk15F + 0x61), 0, 2, 0x28, 0x33, arg1->x_position, arg1->y_position, temp_f0, temp_f0, 0, 0.0f);
}
// Jumptable
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A2F10/func_8069FA40.s")
@ -362,7 +375,6 @@ void func_8069F020(void) {
extern s32 D_80744478;
extern u8 D_80750AD4;
void func_8069F904(void);
void func_8069FA40(void);
/*

View File

@ -583,7 +583,6 @@ Gfx *func_806ABB98(Gfx *dl, s16 arg1, s16 arg2, f32 arg3, void *arg4) {
f32 *mtx;
mtx = malloc(0x40);
mtx = mtx;
func_8061134C(mtx);
guScaleF(&sp70[0], arg3, arg3, 1.0f);
guTranslateF(&sp30[0], arg1, arg2, 0.0f);

View File

@ -1,9 +1,40 @@
#include <ultra64.h>
#include "functions.h"
typedef struct {
u8 unk0[0x2C - 0x0];
s16 unk2C;
} AAD_806B76B0;
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_BC3B0/func_806B76B0.s")
typedef struct {
f32 unk0;
f32 unk4;
} A178_806B76B0;
extern Gfx D_01000118;
extern Mtx D_02000080;
void func_806B76B0(Gfx *dl, Actor *arg1) {
A178_806B76B0 *a178;
AAD_806B76B0 *aaD;
aaD = arg1->additional_actor_data;
a178 = arg1->unk178;
gDPPipeSync(dl++);
if (arg1->control_state == 0x11) {
gDPSetPrimColor(dl++, 0, 0, 0xC8, 0x00, 0x00, 0xFF);
} else if (aaD->unk2C != 0) {
gDPSetPrimColor(dl++, 0, 0, 0x00, 0xC8, 0x00, 0xFF);
} else {
gDPSetPrimColor(dl++, 0, 0, 0xDC, 0xB4, 0x00, 0xFF);
}
gDPSetCombineMode(dl++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetRenderMode(dl++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gSPDisplayList(dl++, &D_01000118);
gSPMatrix(dl++, &D_02000080, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
func_8068C5A8(dl, 0x38, 3, 1, 0x40, 0x40, a178->unk0, a178->unk4, 0.5f, 0.5f, 0x2D, 0.0f);
}
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_BC3B0/func_806B7830.s")
@ -97,7 +128,6 @@ void func_806B7C74(GlobalASMStruct90 *arg0, f32 arg1, f32 arg2) {
extern f64 D_8075B898;
extern s32 D_807FBB68;
int func_806B76B0();
int func_806B7830();
typedef struct {

View File

@ -83,7 +83,7 @@ void func_800255D4(Gfx **arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_1460/func_80025700.s")
#ifndef NONMATCHING
// Displaylist stuff
// Displaylist stuff, regalloc, doable
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_1460/func_80025904.s")
#else
void func_80025904(Gfx **arg0) {

View File

@ -136,6 +136,30 @@ void func_8002452C(void) {
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/multiplayer/code_0/func_800245B0.s")
/*
void *func_800245B0(Gfx *arg0, s16 *arg1, s32 arg2, s32 arg3, s32 arg4) {
gDPSetTextureImage(dl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, arg3);
gDPSetTile(dl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOLOD);
gDPLoadSync(dl++);
gDPLoadBlock(dl++, G_TX_LOADTILE, 0, 0, 63, 1024);
gDPPipeSync(dl++);
gDPSetTile(dl++, G_IM_FMT_RGBA, G_IM_SIZ_16b, 2, 0x0000, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 3, G_TX_NOLOD, G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOLOD);
gDPSetTileSize(dl++, G_TX_RENDERTILE, 0, 0, 0x001C, 0x001C);
// TODO: wut?
dl->unk0 = 0xE4000000 | ((((*arg1 + arg4 * 8) * 4) & 0xFFF) << 0xC) | (((arg2 + 8) * 4) & 0xFFF);
dl->unk4 = (((*arg1 * 4) & 0xFFF) << 0xC) | ((arg2 * 4) & 0xFFF);
// TODO: wut?
gsDPHalf1(dl++, 0x00000000);
gsDPHalf2(dl++, 0x04000400);
*arg1 += arg4 * 8;
return dl;
}
*/
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/multiplayer/code_0/func_800246EC.s")

View File

@ -151,8 +151,6 @@ void func_8002BCD4(Actor *arg0) {
// Displaylist stuff, close
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_7BD0/func_8002BDDC.s")
void func_8068C5A8(void *, s32, s32, s32, s32, s32, s32, s32, f32, f32, s32, f32); // extern
typedef struct {
f32 unk0;
f32 unk4;
@ -188,15 +186,41 @@ void func_8002BDDC(Gfx *dl, Actor *arg1, f32 arg2, f32 arg3, u8 arg4, u8 arg5, u
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_7BD0/func_8002C2E8.s")
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_7BD0/func_8002C63C.s")
void func_800085D4(f32*, f32, f32, f32);
Gfx *func_805FD030(Gfx *);
typedef struct {
u8 unk0[0x50 - 0x0];
f32 unk50[1][4][4];
} Struct8002C63C_arg1;
extern Gfx D_01000118;
extern Mtx D_020000C0;
extern Mtx D_02000180;
Gfx *func_8002C63C(Gfx *dl, Struct8002C63C_arg1 *arg1) {
gDPPipeSync(dl++);
gDPSetRenderMode(dl++, G_RM_XLU_SURF, G_RM_XLU_SURF2);
gDPSetCycleType(dl++, G_CYC_1CYCLE);
gDPSetCombineMode(dl++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
dl = func_805FD030(dl);
gSPDisplayList(dl++, &D_01000118);
gSPMatrix(dl++, &D_020000C0, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
func_800085D4(arg1->unk50[D_807444FC], 0.5f, 0.5f, 1.0f);
gSPMatrix(dl++, arg1->unk50[D_807444FC], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_PROJECTION);
gSPMatrix(dl++, &D_02000180, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
return dl;
}
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_7BD0/func_8002C76C.s")
s32 func_8002C14C(s32, void *);
s32 func_8002C2E8(s32, void *);
s32 func_8002C63C(s32, void *);
s32 func_8002C76C(s32, void *);
s32 func_8002CAC8(s32 arg0, Actor *arg1, RaceAdditionalActorData *arg2) {
@ -224,7 +248,7 @@ s32 func_8002CAC8(s32 arg0, Actor *arg1, RaceAdditionalActorData *arg2) {
if (sp24->unk0 & 6) {
arg0 = func_8002C76C(arg0, arg2);
}
return arg0;
}

View File

@ -15,11 +15,13 @@ CPP_FLAGS = [
"-Iinclude",
"-Iinclude/2.0L",
"-Iinclude/2.0L/PR",
"-Iinclude/libc",
"-Isrc",
"-Iver/current/build/include",
"-D_LANGUAGE_C",
"-D_FINALROM",
"-DF3DEX_GBI_2",
"-DTARGET_N64"
"-D_MIPS_SZLONG=32",
# "-DSCRIPT(...)={}",
# "-D__attribute__(...)=",