This commit is contained in:
Donkey Kong 2024-09-22 17:09:36 +09:30
parent 37d0715196
commit aa6ac4ee12
16 changed files with 253 additions and 168 deletions

View File

@ -11,7 +11,6 @@
// TODO: Assign these to a .c file
f32 func_global_asm_80612790(s16 arg0);
f32 func_global_asm_80612794(s16 arg0);
void func_global_asm_8061C464(Actor *arg0, Actor *arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, f32 arg10);
void func_global_asm_806A36F4(void);
u8 func_global_asm_806E770C(void);
void func_global_asm_8073243C(void);
@ -69,12 +68,12 @@ void func_dk64_boot_80002750(void);
// TODO: func_dk64_boot_800029EC has no documented signature
u8 *strcpy(u8 *dest, u8 const *src);
// TODO: func_dk64_boot_80002A64 has no documented signature
// TODO: func_dk64_boot_80002ABC has no documented signature but has been matched
u8 *func_dk64_boot_80002ABC(u8 *str, u8 *arg1);
// TODO: func_dk64_boot_80002B0C has no documented signature
// TODO: func_dk64_boot_80002BB8 has no documented signature
// TODO: func_dk64_boot_80002C74 has no documented signature but has been matched
s32 func_dk64_boot_80002C74(u8 *str, u8 *arg1);
// TODO: func_dk64_boot_80002CE8 has no documented signature
// TODO: func_dk64_boot_80002D60 has no documented signature but has been matched
u8 *func_dk64_boot_80002D60(u8 *str, u8 *ptr);
// TODO: func_dk64_boot_80002DE4 has no documented signature
void *memset(void *dest, s32 val, u32 len);
u8 *strchr(u8 const *str, s32 c);
@ -99,16 +98,16 @@ s32 func_dk64_boot_80005070(u32 frequency); //s32 osAiSetFrequency(u32 frequency
void func_dk64_boot_800055D0(void);
// dk64_boot/ll.c
// TODO: __ull_rshift has no documented signature but has been matched
// TODO: __ull_rem has no documented signature but has been matched
u64 __ull_rshift(u64 arg0, u64 arg1);
u64 __ull_rem(u64 arg0, u64 arg1);
u64 __ull_div(u64, u64);
// TODO: __ll_lshift has no documented signature but has been matched
// TODO: __ll_rem has no documented signature but has been matched
// TODO: __ll_div has no documented signature but has been matched
s64 __ll_lshift(u64 arg0, u64 arg1);
s64 __ll_rem(u64 arg0, u64 arg1);
s64 __ll_div(s64 arg0, s64 arg1);
u64 __ll_mul(u64, u64);
// TODO: __ull_divremi has no documented signature but has been matched
// TODO: __ll_mod has no documented signature but has been matched
// TODO: __ll_rshift has no documented signature but has been matched
void __ull_divremi(u64 *div, u64 *rem, u64 arg2, u16 arg3);
s64 __ll_mod(s64 arg0, s64 arg1);
s64 __ll_rshift(s64 arg0, s64 arg1);
s32 func_dk64_boot_80005A70(void);
// dk64_boot/io/contreaddata.c
@ -315,7 +314,7 @@ u8 func_global_asm_8060A900(void);
void func_global_asm_8060AA04(void);
// TODO: func_global_asm_8060AA58 has no documented signature
u8 func_global_asm_8060AB38(s32 arg0);
// TODO: func_global_asm_8060AB48 has no documented signature but has been matched
void func_global_asm_8060AB48(OSContPad *arg0);
u8 func_global_asm_8060AC28(void);
// TODO: func_global_asm_8060AC34 has no documented signature
// TODO: func_global_asm_8060AC7C has no documented signature
@ -371,7 +370,7 @@ void func_global_asm_8060DEA8(void);
void func_global_asm_8060DEC8(void); // saveTheGame()
void func_global_asm_8060E128(s32 arg0);
void func_global_asm_8060E1A8(void);
u8* getFlagBlockAddress(u8 flagType); // TODO: Can we use the FlagTypes enum? Needs to be a u8 to match
u8 *getFlagBlockAddress(u8 flagType); // TODO: Can we use the FlagTypes enum? Needs to be a u8 to match
u8 func_global_asm_8060E3B0(u16 arg0, u8 arg1);
void func_global_asm_8060E430(u16 arg0, u8 arg1, u8 arg2);
@ -560,8 +559,8 @@ s32 func_global_asm_80615B84(Actor *arg0);
s32 func_global_asm_80615BDC(Actor *arg0);
s32 func_global_asm_80615C34(Actor *arg0);
s32 func_global_asm_80615CE4(Actor *arg0);
// TODO: func_global_asm_80615DA4 has no documented signature
// TODO: func_global_asm_80615E74 has no documented signature
s32 func_global_asm_80615DA4(Actor *arg0);
s32 func_global_asm_80615E74(Actor *arg0);
s32 func_global_asm_80615FA0(Actor *arg0);
s32 func_global_asm_8061600C(Actor *arg0);
// TODO: func_global_asm_8061607C has no documented signature
@ -675,7 +674,7 @@ void func_global_asm_8061C2D8(Actor *camera, s32 arg1);
void func_global_asm_8061C2F0(Actor *camera, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, u8 arg7);
void func_global_asm_8061C39C(Actor *camera);
void func_global_asm_8061C458(Actor *camera, s32 arg1);
// TODO: func_global_asm_8061C464 has no documented signature
void func_global_asm_8061C464(Actor *arg0, Actor *arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, f32 arg10);
void func_global_asm_8061C518(Actor *arg0, Actor *arg1, u8 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6, s16 arg7, s16 arg8, s16 arg9, f32 argA);
void func_global_asm_8061C600(Actor *arg0, Actor *arg1, u8 arg2, s16 arg3, s16 arg4, s16 arg5, s16 arg6, s16 arg7, s16 arg8, s16 arg9, f32 argA);
void func_global_asm_8061C6A8(Actor *arg0, Actor *arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, f32 arg10);
@ -3618,13 +3617,13 @@ void func_global_asm_8071F8E4(Struct80717D84 *arg0, u8 *arg1);
// global_asm/code_126260.c
// TODO: func_global_asm_80721560 has no documented signature
// TODO: func_global_asm_807215AC has no documented signature but has been matched
// TODO: func_global_asm_807215D0 has no documented signature but has been matched
// TODO: func_global_asm_807215EC has no documented signature but has been matched
void func_global_asm_807215AC(s8 arg0, s8 arg1, s8 arg2);
void func_global_asm_807215D0(s8 arg0, s8 arg1);
void func_global_asm_807215EC(void);
// TODO: func_global_asm_8072167C has no documented signature
void addActorRecolor(Actor *actor, s16 x, s16 y, s16 z, u8 alpha, u8 red, u8 green, u8 blue, u8);
// TODO: func_global_asm_80721814 has no documented signature
// TODO: func_global_asm_80722280 has no documented signature
void func_global_asm_80722280(void);
// TODO: func_global_asm_80722294 has no documented signature
// global_asm/code_127B00.c

View File

@ -141,7 +141,7 @@ us,asm,func_global_asm_8069A7C8,940,no
us,asm,func_global_asm_80714A28,16,yes
us,asm,func_global_asm_80711BD0,960,no
us,asm,func_global_asm_80600340,172,yes
us,asm,func_global_asm_80615E74,300,no
us,asm,func_global_asm_80615E74,300,yes
us,asm,func_global_asm_80653684,384,yes
us,asm,func_global_asm_8060BCA0,520,yes
us,asm,func_global_asm_8060DEA8,32,yes
@ -2200,7 +2200,7 @@ us,asm,func_global_asm_8064216C,152,yes
us,asm,func_global_asm_8067BC88,32,yes
us,asm,func_global_asm_806960A4,1232,yes
us,asm,func_global_asm_80670F04,160,yes
us,asm,func_global_asm_80615DA4,208,no
us,asm,func_global_asm_80615DA4,208,yes
us,asm,func_global_asm_806A8158,4044,no
us,asm,func_global_asm_806A7B04,36,yes
us,asm,func_global_asm_8070943C,40,yes

1 version section function length matching
141 us asm func_global_asm_80714A28 16 yes
142 us asm func_global_asm_80711BD0 960 no
143 us asm func_global_asm_80600340 172 yes
144 us asm func_global_asm_80615E74 300 no yes
145 us asm func_global_asm_80653684 384 yes
146 us asm func_global_asm_8060BCA0 520 yes
147 us asm func_global_asm_8060DEA8 32 yes
2200 us asm func_global_asm_8067BC88 32 yes
2201 us asm func_global_asm_806960A4 1232 yes
2202 us asm func_global_asm_80670F04 160 yes
2203 us asm func_global_asm_80615DA4 208 no yes
2204 us asm func_global_asm_806A8158 4044 no
2205 us asm func_global_asm_806A7B04 36 yes
2206 us asm func_global_asm_8070943C 40 yes

View File

@ -141,7 +141,7 @@ us,asm,func_global_asm_8069A7C8,940,no
us,asm,func_global_asm_80714A28,16,yes
us,asm,func_global_asm_80711BD0,960,no
us,asm,func_global_asm_80600340,172,yes
us,asm,func_global_asm_80615E74,300,no
us,asm,func_global_asm_80615E74,300,yes
us,asm,func_global_asm_80653684,384,yes
us,asm,func_global_asm_8060BCA0,520,yes
us,asm,func_global_asm_8060DEA8,32,yes
@ -2200,7 +2200,7 @@ us,asm,func_global_asm_8064216C,152,yes
us,asm,func_global_asm_8067BC88,32,yes
us,asm,func_global_asm_806960A4,1232,yes
us,asm,func_global_asm_80670F04,160,yes
us,asm,func_global_asm_80615DA4,208,no
us,asm,func_global_asm_80615DA4,208,yes
us,asm,func_global_asm_806A8158,4044,no
us,asm,func_global_asm_806A7B04,36,yes
us,asm,func_global_asm_8070943C,40,yes

1 version section function length matching
141 us asm func_global_asm_80714A28 16 yes
142 us asm func_global_asm_80711BD0 960 no
143 us asm func_global_asm_80600340 172 yes
144 us asm func_global_asm_80615E74 300 no yes
145 us asm func_global_asm_80653684 384 yes
146 us asm func_global_asm_8060BCA0 520 yes
147 us asm func_global_asm_8060DEA8 32 yes
2200 us asm func_global_asm_8067BC88 32 yes
2201 us asm func_global_asm_806960A4 1232 yes
2202 us asm func_global_asm_80670F04 160 yes
2203 us asm func_global_asm_80615DA4 208 no yes
2204 us asm func_global_asm_806A8158 4044 no
2205 us asm func_global_asm_806A7B04 36 yes
2206 us asm func_global_asm_8070943C 40 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">36.3456%</text>
<text x="110.5" y="14">36.3456%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">36.3868%</text>
<text x="110.5" y="14">36.3868%</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">38.6799%</text>
<text x="165.5" y="14">38.6799%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">38.7107%</text>
<text x="165.5" y="14">38.7107%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -28,10 +28,10 @@ void func_dk64_boot_800024E0(u8 **arg0, s32 *arg1, void *arg2) {
}
}
// very close, just missing a few sltu instructions
#pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_30E0/func_dk64_boot_800025A4.s")
/*
// very close, just missing a few sltu instructions
extern s32 D_dk64_boot_8000EEE4;
extern s32 D_dk64_boot_80013ACC;
extern s32 D_dk64_boot_80013AEC;

View File

@ -75,8 +75,6 @@ void func_global_asm_8060B140(s32, s32*, s32*, s32, s32, s32, s32);
void func_global_asm_80712A40(void);
void func_global_asm_80605510(void);
void func_global_asm_807215EC();
void func_global_asm_80650E20(s32* arg0);
void func_global_asm_806886E0(s32* arg0, s32 arg1, s32 arg2);

View File

@ -3,6 +3,7 @@
extern Struct80717D84 *D_minecart_80028C30;
extern s32 D_global_asm_8071FB54;
extern s32 D_global_asm_8071FEF4;
extern s32 D_global_asm_8071FFA0; // TODO: Datatype
@ -11,41 +12,48 @@ extern u8 D_global_asm_8074450C;
extern u8 D_global_asm_80750AB4;
extern s16 D_global_asm_807502D0;
extern f32 D_global_asm_80755674;
extern f32 D_global_asm_80755678;
// .rodata
extern f64 D_global_asm_8075E6D0;
extern f64 D_global_asm_8075E6D8;
extern f64 D_global_asm_8075E6E0;
extern f64 D_global_asm_8075E6E8;
extern f64 D_global_asm_8075E6F0;
extern f64 D_global_asm_8075E6F8;
extern f64 D_global_asm_8075E700;
extern f64 D_global_asm_8075E708;
extern f64 D_global_asm_8075E710;
extern f64 D_global_asm_8075E718;
extern f64 D_global_asm_8075E720;
extern f32 D_global_asm_8075E728;
extern f32 D_global_asm_8075E72C;
extern f32 D_global_asm_8075E730;
extern f64 D_global_asm_8075E738;
extern f64 D_global_asm_8075E740;
extern f64 D_global_asm_8075E888;
extern f64 D_global_asm_8075E890;
extern f64 D_global_asm_8075E898;
extern f32 D_global_asm_8075E8A0;
extern f64 D_global_asm_8075E8A8;
extern f64 D_global_asm_8075EA70;
extern f64 D_global_asm_8075EA78;
extern f32 D_global_asm_8075EA80;
extern f64 D_global_asm_8075EA88;
extern f32 D_global_asm_8075EA90;
extern f64 D_global_asm_8075EA98;
extern f64 D_global_asm_8075EAA0;
extern f64 D_global_asm_8075EAB8;
extern f64 D_global_asm_8075EAC0;
extern f64 D_global_asm_8075EAC8;
extern f64 D_global_asm_8075EAD8;
extern f64 D_global_asm_8075E6D0;
extern f64 D_global_asm_8075E6D8;
extern f64 D_global_asm_8075E708;
extern f64 D_global_asm_8075E710;
extern f64 D_global_asm_8075E718;
extern f64 D_global_asm_8075E720;
extern f64 D_global_asm_8075E748;
extern f64 D_global_asm_8075E750;
extern f64 D_global_asm_8075E770;
extern f64 D_global_asm_8075E778;
extern f64 D_global_asm_8075E780;
extern f32 D_global_asm_8075E840;
extern f32 D_global_asm_8075E844;
extern f64 D_global_asm_8075E848;
extern f64 D_global_asm_8075E850;
extern f64 D_global_asm_8075E858;
extern f64 D_global_asm_8075E860;
extern f64 D_global_asm_8075E868;
extern f64 D_global_asm_8075E870;
extern f64 D_global_asm_8075E878;
extern f64 D_global_asm_8075E880;
extern f64 D_global_asm_8075E888;
extern f64 D_global_asm_8075E890;
extern f64 D_global_asm_8075E898;
extern f32 D_global_asm_8075E8A0;
extern f64 D_global_asm_8075E8A8;
extern f32 D_global_asm_8075E8B0;
extern f32 D_global_asm_8075E8B4;
extern f64 D_global_asm_8075E8B8;
@ -55,19 +63,44 @@ extern f64 D_global_asm_8075E8D0;
extern f32 D_global_asm_8075E8D8;
extern f32 D_global_asm_8075E8DC;
extern f32 D_global_asm_8075E8E0;
extern f64 D_global_asm_8075E8E8;
extern f64 D_global_asm_8075E8F0;
extern f64 D_global_asm_8075E8F8;
extern f64 D_global_asm_8075E900;
extern f64 D_global_asm_8075E908;
extern f64 D_global_asm_8075E910;
extern f64 D_global_asm_8075E930;
extern f64 D_global_asm_8075E938;
extern f64 D_global_asm_8075E940;
extern f64 D_global_asm_8075E948;
extern f32 D_global_asm_8075E950;
extern f32 D_global_asm_8075E954;
extern f32 D_global_asm_8075E958;
extern f32 D_global_asm_8075E95C;
extern f32 D_global_asm_8075E960;
extern f32 D_global_asm_8075E964;
extern f32 D_global_asm_8075E968;
extern f64 D_global_asm_8075E970;
extern f32 D_global_asm_8075E978;
extern f64 D_global_asm_8075E980;
extern f64 D_global_asm_8075E988;
extern f64 D_global_asm_8075E990;
extern f32 D_global_asm_8075E998;
extern f64 D_global_asm_8075E9A0;
extern f64 D_global_asm_8075E9A8;
extern f64 D_global_asm_8075E9B0;
extern f64 D_global_asm_8075E9B8;
extern f64 D_global_asm_8075E9C8;
extern f64 D_global_asm_8075E9D0;
extern f32 D_global_asm_8075E9E8;
extern f64 D_global_asm_8075E9F0;
extern f64 D_global_asm_8075E9F8;
extern f64 D_global_asm_8075EA00;
extern f64 D_global_asm_8075EA08;
extern f32 D_global_asm_8075EA10;
extern f64 D_global_asm_8075EA18;
extern f32 D_global_asm_8075EA20;
extern f32 D_global_asm_8075EA24;
extern f32 D_global_asm_8075EA28;
extern f32 D_global_asm_8075EA2C;
extern f64 D_global_asm_8075EA30;
@ -75,6 +108,28 @@ extern f32 D_global_asm_8075EA38;
extern f64 D_global_asm_8075EA40;
extern f64 D_global_asm_8075EA48;
extern f32 D_global_asm_8075EA50;
extern f64 D_global_asm_8075EA58;
extern f64 D_global_asm_8075EA60;
extern f32 D_global_asm_8075EA68;
extern f32 D_global_asm_8075EA6C;
extern f64 D_global_asm_8075EA70;
extern f64 D_global_asm_8075EA78;
extern f32 D_global_asm_8075EA80;
extern f64 D_global_asm_8075EA88;
extern f32 D_global_asm_8075EA90;
extern f64 D_global_asm_8075EA98;
extern f64 D_global_asm_8075EAA0;
extern f32 D_global_asm_8075EAA8;
extern f64 D_global_asm_8075EAB0;
extern f64 D_global_asm_8075EAB8;
extern f64 D_global_asm_8075EAC0;
extern f64 D_global_asm_8075EAC8;
extern f64 D_global_asm_8075EAD0;
extern f64 D_global_asm_8075EAD8;
extern f32 D_global_asm_8075EAE0;
extern f64 D_global_asm_8075EAE8;
extern f64 D_global_asm_8075EAF0;
extern f64 D_global_asm_8075EAF8;
extern Struct807FDB00 *D_global_asm_807FDB00;
extern Struct807FDB04 *D_global_asm_807FDB04;
@ -558,12 +613,6 @@ void func_global_asm_8071720C(Struct80717D84 *arg0, s32 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_80717404.s")
extern f64 D_global_asm_8075E6E0;
extern f64 D_global_asm_8075E6E8;
extern f64 D_global_asm_8075E6F0;
extern f64 D_global_asm_8075E6F8;
extern f64 D_global_asm_8075E700;
/*
void func_global_asm_80717404(Struct80717D84 *arg0, s32 arg1) {
f64 sp28;
@ -821,8 +870,6 @@ void func_global_asm_80718188(Struct80717D84 *arg0, s8 *arg1) {
// rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071827C.s")
extern f64 D_global_asm_8075E748;
/*
void func_global_asm_8071827C(Struct80717D84 *arg0, s32 arg1) {
f32 sp70[4][4];
@ -879,8 +926,6 @@ void func_global_asm_80718380(Struct80717D84 *arg0, s8 *arg1) {
// rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_807184F4.s")
extern f64 D_global_asm_8075E750;
typedef struct {
f32 unk0;
f32 unk4;
@ -967,10 +1012,6 @@ void func_global_asm_807189BC(Struct80717D84 *arg0, s8 *arg1) {
// rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_807195D4.s")
extern f32 D_global_asm_8075E840;
extern f32 D_global_asm_8075E844;
extern f64 D_global_asm_8075E848;
typedef struct {
f32 unk0;
f32 unk4;
@ -1009,14 +1050,6 @@ void func_global_asm_807195D4(Struct80717D84 *arg0, s32 arg1) {
// rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_807197B4.s")
extern f64 D_global_asm_8075E850;
extern f64 D_global_asm_8075E858;
extern f64 D_global_asm_8075E860;
extern f64 D_global_asm_8075E868;
extern f64 D_global_asm_8075E870;
extern f64 D_global_asm_8075E878;
extern f64 D_global_asm_8075E880;
typedef struct {
s32 unk0;
f32 unk4;
@ -1151,8 +1184,6 @@ void func_global_asm_80719EF4(Struct80717D84 *arg0, s32 arg1) {
arg0->unk344 += 1.0f;
}
extern f64 D_global_asm_8075E8E8;
void func_global_asm_8071A038(Struct80717D84 *arg0, s32 arg1) {
f32 sp78[4][4];
f32 sp38[4][4];
@ -1183,11 +1214,9 @@ void func_global_asm_8071A038(Struct80717D84 *arg0, s32 arg1) {
arg0->unk32C = 3;
}
// regalloc
// regalloc, rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071A1E4.s")
extern f64 D_global_asm_8075E8F0;
typedef struct {
f32 unk0;
f32 unk4;
@ -1261,13 +1290,12 @@ void func_global_asm_8071A440(Struct80717D84 *arg0, s32 arg1) {
}
}
// TODO: Close, rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071A674.s")
extern Struct80717D84 *D_8002FBB0;
extern f64 D_global_asm_8075E900;
/*
// TODO: Close...
void func_global_asm_8071A674(Struct80717D84 *arg0, s32 arg1) {
f32 var_f0;
Struct80717D84 **var_v0;
@ -1288,9 +1316,6 @@ void func_global_asm_8071A674(Struct80717D84 *arg0, s32 arg1) {
}
*/
extern f64 D_global_asm_8075E908;
extern f64 D_global_asm_8075E910;
void func_global_asm_8071A8B0(Struct80717D84 *arg0, s32 arg1) {
f32 var_f0;
f32 var_f16;
@ -1330,11 +1355,6 @@ void func_global_asm_8071AADC(Struct80717D84 *arg0, s32 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071ABDC.s")
extern f64 D_global_asm_8075E930;
extern f64 D_global_asm_8075E938;
extern f64 D_global_asm_8075E940;
extern f64 D_global_asm_8075E948;
void func_global_asm_8071AF30(Struct80717D84 *arg0, s8 *arg1) {
f32 sp78[4][4];
f32 sp38[4][4];
@ -1382,9 +1402,6 @@ void func_global_asm_8071B24C(Struct80717D84 *arg0, s32 arg1) {
arg0->unk348 += (D_global_asm_8075E964 * func_global_asm_80612790(arg0->unk35C));
}
extern f32 D_global_asm_8075E968;
extern f64 D_global_asm_8075E970;
void func_global_asm_8071B2EC(Struct80717D84 *arg0, s32 arg1) {
f32 sp24;
Struct80717D84_unk384_8071B2EC *var_v1;
@ -1422,11 +1439,9 @@ void func_global_asm_8071B44C(Struct80717D84 *arg0, s32 arg1) {
arg0->unk348 += (temp_f6 * func_global_asm_80612790(arg0->unk35C));
}
// Matrix stuff
// Matrix stuff, rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071B520.s")
extern f64 D_global_asm_8075E988;
/*
void func_global_asm_8071B520(Struct80717D84 *arg0, s32 arg1) {
f32 sp80[4][4];
@ -1527,8 +1542,6 @@ void func_global_asm_8071B8EC(Struct80717D84 *arg0, s8 *arg1) {
}
}
extern f64 D_global_asm_8075E9A0;
typedef struct {
f32 unk0;
f32 unk4;
@ -1585,9 +1598,6 @@ void func_global_asm_8071BC80(Struct80717D84 *arg0, s32 arg1) {
arg0->unk348 += var_v0->unk8;
}
extern f64 D_global_asm_8075E9A8;
extern f64 D_global_asm_8075E9B0;
typedef struct {
u8 unk0;
u8 unk1;
@ -1674,9 +1684,6 @@ void func_global_asm_8071C004(Struct80717D84 *arg0, s8 *arg1) {
}
}
extern f64 D_global_asm_8075E9B8;
extern s32 D_global_asm_8071FB54;
void func_global_asm_8071C24C(Struct80717D84 *arg0, u8 *arg1) {
s32 pad;
f32 y;
@ -1753,8 +1760,6 @@ void func_global_asm_8071C620(Struct80717D84 *arg0, s32 arg1) {
// rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071C818.s")
extern f64 D_global_asm_8075E9C8;
void func_global_asm_8071C818(Struct80717D84 *arg0, s8 *arg1);
/*
@ -1777,8 +1782,6 @@ void func_global_asm_8071C818(Struct80717D84 *arg0, s8 *arg1) {
}
*/
extern f64 D_global_asm_8075E9D0;
void func_global_asm_8071C914(Struct80717D84 *arg0, s32 arg1) {
f32 sp70[4][4];
f32 sp30[4][4];
@ -1839,11 +1842,6 @@ void func_global_asm_8071D260(Struct80717D84 *arg0, s8 *arg1) {
}
}
extern f32 D_global_asm_8075E9E8;
extern f64 D_global_asm_8075E9F0;
extern f64 D_global_asm_8075E9F8;
extern f64 D_global_asm_8075EA00;
typedef struct {
f32 unk0;
f32 unk4;
@ -1902,8 +1900,6 @@ void func_global_asm_8071D28C(Struct80717D84 *arg0, s8 *arg1) {
}
}
extern f64 D_global_asm_8075EA08;
void func_global_asm_8071D5BC(Struct80717D84 *arg0, s8 *arg1) {
f32 sp80[4][4];
f32 sp40[4][4];
@ -1933,9 +1929,6 @@ void func_global_asm_8071D5BC(Struct80717D84 *arg0, s8 *arg1) {
arg0->unk32C = 3;
}
extern f32 D_global_asm_80755674;
extern f32 D_global_asm_80755678;
typedef struct {
f32 unk0;
f32 unk4;
@ -1969,14 +1962,9 @@ void func_global_asm_8071D784(Struct80717D84 *arg0, s8 *arg1) {
}
}
// close
// close, rodata
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071D94C.s")
extern f32 D_global_asm_8075EA10;
extern f64 D_global_asm_8075EA18;
extern f32 D_global_asm_8075EA20;
extern f32 D_global_asm_8075EA24;
void func_global_asm_8071D94C(Actor *arg0, Struct80717D84 *arg1, s8 *arg2);
/*
@ -2173,11 +2161,6 @@ void func_global_asm_8071E1C8(Struct80717D84 *arg0, s8 *arg1) {
// rodata, regalloc
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071E3EC.s")
extern f64 D_global_asm_8075EA58;
extern f64 D_global_asm_8075EA60;
extern f32 D_global_asm_8075EA68;
extern f32 D_global_asm_8075EA6C;
/*
void func_global_asm_8071E3EC(Struct80717D84 *arg0, s8 *arg1) {
f32 *var_v1;
@ -2350,9 +2333,6 @@ void func_global_asm_8071EEA4(Struct80717D84 *arg0, s32 arg1) {
arg0->unk364 = (arg0->unk35C / 100.0) + 1.0;
}
extern f32 D_global_asm_8075EAA8;
extern f64 D_global_asm_8075EAB0;
typedef struct {
f32 unk0;
f32 unk4;
@ -2469,8 +2449,6 @@ void func_global_asm_8071F2F8(Struct80717D84 *arg0, s32 arg1) {
// rodata, regalloc
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_119370/func_global_asm_8071F3C0.s")
extern f64 D_global_asm_8075EAD0;
/*
void func_global_asm_8071F3C0(Struct80717D84 *arg0, s32 arg1) {
f32 *var_v1;
@ -2530,11 +2508,6 @@ void func_global_asm_8071F660(Struct80717D84 *arg0, s32 arg1) {
arg0->unk32C = 2;
}
extern f32 D_global_asm_8075EAE0;
extern f64 D_global_asm_8075EAE8;
extern f64 D_global_asm_8075EAF0;
extern f64 D_global_asm_8075EAF8;
typedef struct {
f32 unk0;
f32 unk4;

View File

@ -49,8 +49,6 @@ void func_global_asm_80721560(s16 arg0, s16 arg1, s16 arg2, u8 arg3, u8 arg4, u8
D_807FDB80 = arg5;
}
void func_global_asm_807215AC(s8 arg0, s8 arg1, s8 arg2) {
D_807FDB60.unkB = arg0;
D_807FDB60.unkC = arg1;

View File

@ -1,11 +1,42 @@
#include <ultra64.h>
#include "functions.h"
// close, regalloc
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_16A20/func_global_asm_80611D20.s")
extern u16 D_global_asm_80746A50[];
extern u16 D_global_asm_80746ACC[];
extern u16 D_global_asm_80746B4C[];
s32 func_global_asm_80611D20(s32);
/*
s32 func_global_asm_80611D20(s32 arg0) {
u16 *var_a2;
s32 var_a1;
s32 var_v1;
s32 i;
if (arg0 >= 0x7FE0) {
var_v1 = 7;
var_a1 = 3;
var_a2 = &D_global_asm_80746B4C;
arg0 -= 0x7FE0;
} else if (arg0 >= 0x7800) {
var_v1 = 0x1F;
var_a1 = 5;
var_a2 = &D_global_asm_80746ACC;
arg0 -= 0x7800;
} else {
var_v1 = 0x1FF;
var_a1 = 9;
var_a2 = &D_global_asm_80746A50;
}
i = arg0 >> var_a1;
return var_a2[i] - (((var_a2[i] - var_a2[i + 1]) * (arg0 & var_v1)) >> var_a1);
}
*/
u16 func_global_asm_80611DA0(s16 arg0) {
s32 temp_a1;

View File

@ -1,19 +1,57 @@
#include <ultra64.h>
#include "functions.h"
typedef struct {
f32 x;
f32 y;
f32 z;
f32 temp;
} Vector3F;
// close
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17540/func_global_asm_80612840.s")
/*
void *func_global_asm_80612840(Vector3F *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) {
Vector3F sp4;
sp4.x = arg1 - arg4;
sp4.y = arg2 - arg5;
sp4.z = arg3 - arg6;
*arg0 = sp4;
return arg0;
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17540/func_global_asm_806128A8.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17540/func_global_asm_80612910.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17540/func_global_asm_80612970.s")
// stack
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17540/func_global_asm_80612A14.s")
/*
f32 func_global_asm_80612A14(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) {
return (arg0 * arg3) + (arg1 * arg4) + (arg2 * arg5);
}
*/
// close, stack
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17540/func_global_asm_80612A54.s")
/*
Vector3F *func_global_asm_80612A54(Vector3F *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6) {
Vector3F sp4;
sp4.x = (arg2 * arg6) - (arg3 * arg5);
sp4.y = (arg3 * arg4) - (arg1 * arg6);
sp4.z = (arg1 * arg5) - (arg2 * arg4);
*arg0 = sp4;
return arg0;
}
*/
void func_global_asm_80612AD8(f32 *arg0, f32 arg1, f32 arg2, f32 arg3) {
arg0[0] = arg1;

View File

@ -69,6 +69,7 @@ void func_global_asm_80612CA0(f32 (*arg0)[4], f32 arg1) {
arg0[1][1] = sp20;
}
// TODO: HASM?
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17800/func_global_asm_80612D10.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17800/func_global_asm_80612D1C.s")

View File

@ -1,6 +1,14 @@
#include <ultra64.h>
#include "functions.h"
void func_global_asm_80613BA0(Actor *, s16, f32, f32);
void func_global_asm_80613CA8(Actor *, s16, f32, f32);
void func_global_asm_80614014(Actor *, u16, f32, u8);
void func_global_asm_80613FB0(Actor *, u16, f32, u8);
void func_global_asm_80614644(Actor *, AnimationStateUnk0 *, f32);
extern u8 *D_807F5AF0;
extern u16 *D_807FBB54;
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17B90/func_global_asm_80612E90.s")
@ -143,8 +151,6 @@ void func_global_asm_80614D48(Actor *arg0, f32 arg1, f32 arg2) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17B90/func_global_asm_80614D90.s")
extern u16 *D_807FBB54;
void playAnimation(Actor *arg0, s32 arg1) {
s32 offset = (arg1 * 7) + (arg0->unk58 - 2);
playActorAnimation(arg0, D_807FBB54[offset]);
@ -152,8 +158,6 @@ void playAnimation(Actor *arg0, s32 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17B90/playActorAnimation.s")
extern u8 *D_807F5AF0;
void func_global_asm_80614F28(u8 *arg0) {
// getAnimationArg8
*arg0 = *D_807F5AF0++;
@ -467,12 +471,6 @@ s32 func_global_asm_8061594C(Actor *arg0) {
return 1;
}
void func_global_asm_80613BA0(Actor *, s16, f32, f32);
void func_global_asm_80613CA8(Actor *, s16, f32, f32);
void func_global_asm_80614014(Actor *, u16, f32, u8);
void func_global_asm_80613FB0(Actor *, u16, f32, u8);
void func_global_asm_80614644(Actor *, AnimationStateUnk0 *, f32);
s32 func_global_asm_8061599C(Actor *arg0) {
s16 sp1E;
@ -535,7 +533,7 @@ s32 func_global_asm_80615B84(Actor *arg0) {
s16 sp1E;
f32 sp18;
D_807F5AF0 += 1;
D_807F5AF0++;
func_global_asm_80614F4C(&sp1E);
func_global_asm_80614FD8(&sp18);
func_global_asm_80613AF8(arg0, sp1E, 0.0f, sp18);
@ -582,7 +580,7 @@ s32 func_global_asm_80615CE4(Actor *arg0) {
} else {
var_a1 = arg0->animation_state->unk0;
}
D_807F5AF0 += 1;
D_807F5AF0++;
func_global_asm_80614F28(&sp27);
func_global_asm_80614644(arg0, var_a1, D_global_asm_80746D5C);
if (D_global_asm_80746D5C != 0) {
@ -593,9 +591,63 @@ s32 func_global_asm_80615CE4(Actor *arg0) {
return 1;
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17B90/func_global_asm_80615DA4.s")
s32 func_global_asm_80615DA4(Actor *arg0) {
u8 sp27;
AnimationStateUnk0 *sp20;
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_17B90/func_global_asm_80615E74.s")
if (arg0->animation_state->unk84 != 0) {
sp20 = arg0->animation_state->unk4;
} else {
sp20 = arg0->animation_state->unk0;
}
D_807F5AF0++;
func_global_asm_80614F28(&sp27);
sp20->unk1E = sp20->unkC;
sp20->unk20 = sp27;
sp20->unk1C |= 8;
if (sp20->unkC < sp20->unk4) {
sp20->unk8 = sp20->unk4 - sp20->unkC;
} else {
sp20->unk8 = -(sp20->unk4 - sp20->unkC);
}
sp20->unkE = sp27;
arg0->animation_state->unk78 |= 0x20;
return 1;
}
s32 func_global_asm_80615E74(Actor *arg0) {
u8 sp2F;
u8 sp2E;
AnimationStateUnk0 *sp28;
ActorAnimationState *aaS;
aaS = arg0->animation_state;
if (aaS->unk84 != 0) {
sp28 = aaS->unk4;
} else {
sp28 = aaS->unk0;
}
D_807F5AF0++;
func_global_asm_80614F28(&sp2F);
func_global_asm_80614F28(&sp2E);
if (sp28->unkC == sp2F) {
sp28->unk1E = sp28->unkC;
sp28->unk20 = sp2E;
sp28->unk1C |= 8;
if (sp28->unkC < sp28->unk4) {
sp28->unk8 = sp28->unk4 - sp28->unkC;
} else {
sp28->unk8 = -(sp28->unk4 - sp28->unkC);
}
sp28->unkE = sp2E;
arg0->animation_state->unk78 |= 0x20;
} else {
sp28->unkC = (sp28->unkC + sp2E) - sp2F;
sp28->unkE = (sp28->unkE + sp2E) - sp2F;
sp28->unk4 = sp28->unk4 + (sp2E - sp2F);
}
return 1;
}
s32 func_global_asm_80615FA0(Actor *arg0) {
s16 sp26;

View File

@ -1363,8 +1363,6 @@ void func_global_asm_8066B4AC(s32 arg0, s32 arg1, s32 arg2) {
// stack
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6AF80/func_global_asm_8066B4D4.s")
s32 __ull_rshift(s32, s32, f32, s32);
/*
// TODO: Pretty close, s16/u16 and stack nonsense
s32 func_global_asm_8066B4D4(s32 arg0, s32 arg1, s32 *arg2, s32 *arg3) {

View File

@ -94,7 +94,7 @@ u8 func_global_asm_8060AB38(s32 arg0) {
return D_global_asm_807ECDFC[arg0];
}
void func_global_asm_8060AB48(OSContPad * arg0) {
void func_global_asm_8060AB48(OSContPad *arg0) {
s32 i, j;
j = 0;
@ -128,8 +128,6 @@ void func_global_asm_8060AC34(OSContPad *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_F600/func_global_asm_8060AC7C.s")
/*
void func_global_asm_806F3E0C(OSContPad *, OSContPad *);
void func_global_asm_80712944(OSContPad *);

View File

@ -2,7 +2,6 @@
orphanFunctionsWithSignatures = [
"func_global_asm_80612790",
"func_global_asm_80612794",
"func_global_asm_8061C464",
"func_global_asm_806A36F4",
"func_global_asm_806E770C",
"func_global_asm_8073243C",