This commit is contained in:
Donkey Kong 2023-05-29 21:52:03 +09:30
parent 595058cc89
commit 0ce5edcb63
26 changed files with 242 additions and 111 deletions

View File

@ -254,7 +254,7 @@ s16 func_80672A70(s16, s16);
void func_806A2B08(Actor *arg0);
void func_8066EB40(Actor*, f32);
void func_8066E854(Actor *arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4);
void func_8066EA64(s32 arg0, s32 arg1);
void func_8066EA64(Actor *arg0, s32 arg1);
void func_806B83E4(void);
void func_806B86AC(void);
void func_806B88B8(void);
@ -691,14 +691,14 @@ s32 func_806728F0(s16, s16, s16);
void func_8066C8B0(s32 arg0, s32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6, f32 arg7, f32 arg8);
void func_8066CDD0();
void func_8066E21C(LedgeInfo *ledgeInfo);
void func_8066E5CC(s32 arg0, s32 arg1, u16 arg2);
void func_8066E5F8(s32 arg0, s32 arg1, u8 arg2);
void func_8066E62C(s32 arg0, s32 arg1, u8 arg2);
void func_8066E5CC(Actor *arg0, s32 arg1, u16 arg2);
void func_8066E5F8(Actor *arg0, s32 arg1, u8 arg2);
void func_8066E62C(Actor *arg0, s32 arg1, u8 arg2);
void func_8066E664(Actor *arg0, s32 arg1, u8 arg2);
void func_8066E6C8(Actor *arg0, s32 arg1, u8 arg2);
void func_8066E72C(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, s32 arg6, s32 arg7, s32 arg8);
void func_8066E990(Actor *arg0);
void func_8066EA90(s32 arg0, s32 arg1);
void func_8066EA90(Actor *arg0, s32 arg1);
void func_8066EB50(Actor *actor, f32 arg1, f32 arg2, f32 arg3, f32 arg4);
void func_8066EBF4(Actor *arg0);
u8 func_8066F274(Actor *arg0, s16 *arg1, s16 *arg2, s8 *arg3);

View File

@ -1555,7 +1555,7 @@ struct OM2_unk74 {
f32 unk0;
f32 unk4;
f32 unk8;
s32 next;
OM2_unk74 *next;
};
typedef struct {
@ -1572,6 +1572,12 @@ typedef struct {
s16 unk12;
} OM2_unk78;
typedef struct {
u8 unk0[0x24 - 0x0];
u8 unk24;
u8 unk25[2];
} OM2_unk48;
typedef struct object_model2 {
f32 x_position; // at 0x00
f32 y_position; // at 0x04
@ -1591,7 +1597,7 @@ typedef struct object_model2 {
s32 unk3C;
s32 unk40;
s32 unk44;
s32 unk48;
OM2_unk48 *unk48;
s32 unk4C;
s32 unk50;
s32 unk54;

View File

@ -142,8 +142,13 @@ extern GlobalASMStruct53 D_807FB930[];
typedef struct global_asm_struct_58 GlobalASMStruct58;
typedef struct {
u8 unk0[0x64 - 0x0];
u8 unk64;
} GlobalASMStruct58_unk0;
struct global_asm_struct_58 {
void *unk0; // used, at least 0x65 big (func_80661264, func_8065F5F0), not sure what datatype though
GlobalASMStruct58_unk0 *unk0; // used, at least 0x65 big (func_80661264, func_8065F5F0), not sure what datatype though
f32 unk4; // used
f32 unk8; // used
f32 unkC; // used

View File

@ -315,7 +315,7 @@ us,.code,func_806E4740,920,no
us,.code,func_8060E930,40,yes
us,.code,func_80737E38,8,yes
us,.code,func_8063A38C,1212,no
us,.code,func_806338B4,64,no
us,.code,func_806338B4,64,yes
us,.code,func_8063B8D8,728,no
us,.code,func_806644B0,264,yes
us,.code,func_8063D9D0,112,yes
@ -444,7 +444,7 @@ us,.code,func_80665AE4,308,no
us,.code,func_80676C10,84,yes
us,.code,func_8066E6C8,100,yes
us,.code,func_80659190,12,yes
us,.code,func_8066EAEC,84,no
us,.code,func_8066EAEC,84,yes
us,.code,func_8064F404,64,yes
us,.code,func_806EFA3C,272,yes
us,.code,func_8063CA7C,96,yes
@ -514,7 +514,7 @@ us,.code,func_80608528,180,yes
us,.code,func_806877C8,68,yes
us,.code,func_8073CAC0,468,no
us,.code,func_806663F8,36,yes
us,.code,func_8073198C,76,no
us,.code,func_8073198C,76,yes
us,.code,func_806AD9AC,72,yes
us,.code,func_8065756C,100,yes
us,.code,func_806F9B64,364,no
@ -984,7 +984,7 @@ us,.code,func_8064F2F0,24,yes
us,.code,func_8071BE04,512,no
us,.code,func_8060F1D0,56,yes
us,.code,func_8060DEA8,32,yes
us,.code,func_80688CC4,48,no
us,.code,func_80688CC4,48,yes
us,.code,func_805FF4D8,108,yes
us,.code,func_806E9070,284,no
us,.code,func_806526E0,176,yes
@ -1061,7 +1061,7 @@ us,.code,func_806D4C7C,360,no
us,.code,func_806907E0,16,yes
us,.code,func_806FB480,8,yes
us,.code,func_80603340,272,no
us,.code,func_80688CF4,44,no
us,.code,func_80688CF4,44,yes
us,.code,func_8062D1A8,56,yes
us,.code,func_806B7EA0,1348,no
us,.code,func_8068D264,1636,no
@ -1181,7 +1181,7 @@ us,.code,func_80646770,520,no
us,.code,func_80688370,44,yes
us,.code,func_80627EA8,92,yes
us,.code,func_8067E69C,40,yes
us,.code,func_80669650,80,no
us,.code,func_80669650,80,yes
us,.code,func_80688FC0,164,no
us,.code,func_8067A99C,84,yes
us,.code,func_806E3D14,300,yes
@ -1389,7 +1389,7 @@ us,.code,func_806F1C04,684,no
us,.code,func_80643440,612,no
us,.code,func_8066E664,100,yes
us,.code,func_80661658,72,yes
us,.code,func_80602430,44,no
us,.code,func_80602430,44,yes
us,.code,func_806944BC,1164,no
us,.code,func_806CC638,624,no
us,.code,func_8064A258,1452,no
@ -1622,7 +1622,7 @@ us,.code,func_80690930,248,no
us,.code,func_80737638,748,no
us,.code,func_806EAE60,268,yes
us,.code,func_8066B75C,80,yes
us,.code,func_80724874,60,no
us,.code,func_80724874,56,yes
us,.code,func_8062A774,92,yes
us,.code,func_80676730,44,yes
us,.code,func_80646DC4,836,no
@ -1947,7 +1947,7 @@ us,.code,func_8071A1E4,604,no
us,.code,func_80666AE0,12,yes
us,.code,func_80644D50,220,yes
us,.code,func_806E7050,56,yes
us,.code,func_80661264,80,no
us,.code,func_80661264,80,yes
us,.code,func_8063C7C4,696,no
us,.code,func_80704AFC,36,yes
us,.code,func_806C9830,324,yes
@ -2087,7 +2087,7 @@ us,.code,func_806C9ED0,48,yes
us,.code,func_806D69A4,348,yes
us,.code,func_806CA1B4,184,yes
us,.code,func_806DA94C,200,yes
us,.code,func_806338F4,72,no
us,.code,func_806338F4,72,yes
us,.code,func_806ADDD8,520,no
us,.code,func_806E3C14,36,yes
us,.code,func_80688940,300,yes
@ -2514,7 +2514,7 @@ us,.code,func_80692640,768,no
us,.code,func_8067470C,376,no
us,.code,func_80650684,100,yes
us,.code,func_80664834,516,yes
us,.code,func_8066EABC,48,no
us,.code,func_8066EABC,48,yes
us,.code,func_80685D84,244,yes
us,.code,func_806CC920,40,yes
us,.code,func_806B1290,184,yes
@ -2604,7 +2604,7 @@ us,.code,func_8067AAB8,104,yes
us,.code,func_806EBBD0,144,yes
us,.code,func_80665ACC,24,yes
us,.code,func_8067A9F0,104,yes
us,.code,func_8060F928,56,no
us,.code,func_8060F928,56,yes
us,.code,clearGlobalFlags,80,yes
us,.code,func_8072E740,156,yes
us,.code,func_806776A0,1548,no

1 version section function length matching
315 us .code func_8060E930 40 yes
316 us .code func_80737E38 8 yes
317 us .code func_8063A38C 1212 no
318 us .code func_806338B4 64 no yes
319 us .code func_8063B8D8 728 no
320 us .code func_806644B0 264 yes
321 us .code func_8063D9D0 112 yes
444 us .code func_80676C10 84 yes
445 us .code func_8066E6C8 100 yes
446 us .code func_80659190 12 yes
447 us .code func_8066EAEC 84 no yes
448 us .code func_8064F404 64 yes
449 us .code func_806EFA3C 272 yes
450 us .code func_8063CA7C 96 yes
514 us .code func_806877C8 68 yes
515 us .code func_8073CAC0 468 no
516 us .code func_806663F8 36 yes
517 us .code func_8073198C 76 no yes
518 us .code func_806AD9AC 72 yes
519 us .code func_8065756C 100 yes
520 us .code func_806F9B64 364 no
984 us .code func_8071BE04 512 no
985 us .code func_8060F1D0 56 yes
986 us .code func_8060DEA8 32 yes
987 us .code func_80688CC4 48 no yes
988 us .code func_805FF4D8 108 yes
989 us .code func_806E9070 284 no
990 us .code func_806526E0 176 yes
1061 us .code func_806907E0 16 yes
1062 us .code func_806FB480 8 yes
1063 us .code func_80603340 272 no
1064 us .code func_80688CF4 44 no yes
1065 us .code func_8062D1A8 56 yes
1066 us .code func_806B7EA0 1348 no
1067 us .code func_8068D264 1636 no
1181 us .code func_80688370 44 yes
1182 us .code func_80627EA8 92 yes
1183 us .code func_8067E69C 40 yes
1184 us .code func_80669650 80 no yes
1185 us .code func_80688FC0 164 no
1186 us .code func_8067A99C 84 yes
1187 us .code func_806E3D14 300 yes
1389 us .code func_80643440 612 no
1390 us .code func_8066E664 100 yes
1391 us .code func_80661658 72 yes
1392 us .code func_80602430 44 no yes
1393 us .code func_806944BC 1164 no
1394 us .code func_806CC638 624 no
1395 us .code func_8064A258 1452 no
1622 us .code func_80737638 748 no
1623 us .code func_806EAE60 268 yes
1624 us .code func_8066B75C 80 yes
1625 us .code func_80724874 60 56 no yes
1626 us .code func_8062A774 92 yes
1627 us .code func_80676730 44 yes
1628 us .code func_80646DC4 836 no
1947 us .code func_80666AE0 12 yes
1948 us .code func_80644D50 220 yes
1949 us .code func_806E7050 56 yes
1950 us .code func_80661264 80 no yes
1951 us .code func_8063C7C4 696 no
1952 us .code func_80704AFC 36 yes
1953 us .code func_806C9830 324 yes
2087 us .code func_806D69A4 348 yes
2088 us .code func_806CA1B4 184 yes
2089 us .code func_806DA94C 200 yes
2090 us .code func_806338F4 72 no yes
2091 us .code func_806ADDD8 520 no
2092 us .code func_806E3C14 36 yes
2093 us .code func_80688940 300 yes
2514 us .code func_8067470C 376 no
2515 us .code func_80650684 100 yes
2516 us .code func_80664834 516 yes
2517 us .code func_8066EABC 48 no yes
2518 us .code func_80685D84 244 yes
2519 us .code func_806CC920 40 yes
2520 us .code func_806B1290 184 yes
2604 us .code func_806EBBD0 144 yes
2605 us .code func_80665ACC 24 yes
2606 us .code func_8067A9F0 104 yes
2607 us .code func_8060F928 56 no yes
2608 us .code clearGlobalFlags 80 yes
2609 us .code func_8072E740 156 yes
2610 us .code func_806776A0 1548 no

View File

@ -315,7 +315,7 @@ us,.code,func_806E4740,920,no
us,.code,func_8060E930,40,yes
us,.code,func_80737E38,8,yes
us,.code,func_8063A38C,1212,no
us,.code,func_806338B4,64,no
us,.code,func_806338B4,64,yes
us,.code,func_8063B8D8,728,no
us,.code,func_806644B0,264,yes
us,.code,func_8063D9D0,112,yes
@ -444,7 +444,7 @@ us,.code,func_80665AE4,308,no
us,.code,func_80676C10,84,yes
us,.code,func_8066E6C8,100,yes
us,.code,func_80659190,12,yes
us,.code,func_8066EAEC,84,no
us,.code,func_8066EAEC,84,yes
us,.code,func_8064F404,64,yes
us,.code,func_806EFA3C,272,yes
us,.code,func_8063CA7C,96,yes
@ -514,7 +514,7 @@ us,.code,func_80608528,180,yes
us,.code,func_806877C8,68,yes
us,.code,func_8073CAC0,468,no
us,.code,func_806663F8,36,yes
us,.code,func_8073198C,76,no
us,.code,func_8073198C,76,yes
us,.code,func_806AD9AC,72,yes
us,.code,func_8065756C,100,yes
us,.code,func_806F9B64,364,no
@ -984,7 +984,7 @@ us,.code,func_8064F2F0,24,yes
us,.code,func_8071BE04,512,no
us,.code,func_8060F1D0,56,yes
us,.code,func_8060DEA8,32,yes
us,.code,func_80688CC4,48,no
us,.code,func_80688CC4,48,yes
us,.code,func_805FF4D8,108,yes
us,.code,func_806E9070,284,no
us,.code,func_806526E0,176,yes
@ -1061,7 +1061,7 @@ us,.code,func_806D4C7C,360,no
us,.code,func_806907E0,16,yes
us,.code,func_806FB480,8,yes
us,.code,func_80603340,272,no
us,.code,func_80688CF4,44,no
us,.code,func_80688CF4,44,yes
us,.code,func_8062D1A8,56,yes
us,.code,func_806B7EA0,1348,no
us,.code,func_8068D264,1636,no
@ -1181,7 +1181,7 @@ us,.code,func_80646770,520,no
us,.code,func_80688370,44,yes
us,.code,func_80627EA8,92,yes
us,.code,func_8067E69C,40,yes
us,.code,func_80669650,80,no
us,.code,func_80669650,80,yes
us,.code,func_80688FC0,164,no
us,.code,func_8067A99C,84,yes
us,.code,func_806E3D14,300,yes
@ -1389,7 +1389,7 @@ us,.code,func_806F1C04,684,no
us,.code,func_80643440,612,no
us,.code,func_8066E664,100,yes
us,.code,func_80661658,72,yes
us,.code,func_80602430,44,no
us,.code,func_80602430,44,yes
us,.code,func_806944BC,1164,no
us,.code,func_806CC638,624,no
us,.code,func_8064A258,1452,no
@ -1622,7 +1622,7 @@ us,.code,func_80690930,248,no
us,.code,func_80737638,748,no
us,.code,func_806EAE60,268,yes
us,.code,func_8066B75C,80,yes
us,.code,func_80724874,60,no
us,.code,func_80724874,56,yes
us,.code,func_8062A774,92,yes
us,.code,func_80676730,44,yes
us,.code,func_80646DC4,836,no
@ -1947,7 +1947,7 @@ us,.code,func_8071A1E4,604,no
us,.code,func_80666AE0,12,yes
us,.code,func_80644D50,220,yes
us,.code,func_806E7050,56,yes
us,.code,func_80661264,80,no
us,.code,func_80661264,80,yes
us,.code,func_8063C7C4,696,no
us,.code,func_80704AFC,36,yes
us,.code,func_806C9830,324,yes
@ -2087,7 +2087,7 @@ us,.code,func_806C9ED0,48,yes
us,.code,func_806D69A4,348,yes
us,.code,func_806CA1B4,184,yes
us,.code,func_806DA94C,200,yes
us,.code,func_806338F4,72,no
us,.code,func_806338F4,72,yes
us,.code,func_806ADDD8,520,no
us,.code,func_806E3C14,36,yes
us,.code,func_80688940,300,yes
@ -2514,7 +2514,7 @@ us,.code,func_80692640,768,no
us,.code,func_8067470C,376,no
us,.code,func_80650684,100,yes
us,.code,func_80664834,516,yes
us,.code,func_8066EABC,48,no
us,.code,func_8066EABC,48,yes
us,.code,func_80685D84,244,yes
us,.code,func_806CC920,40,yes
us,.code,func_806B1290,184,yes
@ -2604,7 +2604,7 @@ us,.code,func_8067AAB8,104,yes
us,.code,func_806EBBD0,144,yes
us,.code,func_80665ACC,24,yes
us,.code,func_8067A9F0,104,yes
us,.code,func_8060F928,56,no
us,.code,func_8060F928,56,yes
us,.code,clearGlobalFlags,80,yes
us,.code,func_8072E740,156,yes
us,.code,func_806776A0,1548,no

1 version section function length matching
315 us .code func_8060E930 40 yes
316 us .code func_80737E38 8 yes
317 us .code func_8063A38C 1212 no
318 us .code func_806338B4 64 no yes
319 us .code func_8063B8D8 728 no
320 us .code func_806644B0 264 yes
321 us .code func_8063D9D0 112 yes
444 us .code func_80676C10 84 yes
445 us .code func_8066E6C8 100 yes
446 us .code func_80659190 12 yes
447 us .code func_8066EAEC 84 no yes
448 us .code func_8064F404 64 yes
449 us .code func_806EFA3C 272 yes
450 us .code func_8063CA7C 96 yes
514 us .code func_806877C8 68 yes
515 us .code func_8073CAC0 468 no
516 us .code func_806663F8 36 yes
517 us .code func_8073198C 76 no yes
518 us .code func_806AD9AC 72 yes
519 us .code func_8065756C 100 yes
520 us .code func_806F9B64 364 no
984 us .code func_8071BE04 512 no
985 us .code func_8060F1D0 56 yes
986 us .code func_8060DEA8 32 yes
987 us .code func_80688CC4 48 no yes
988 us .code func_805FF4D8 108 yes
989 us .code func_806E9070 284 no
990 us .code func_806526E0 176 yes
1061 us .code func_806907E0 16 yes
1062 us .code func_806FB480 8 yes
1063 us .code func_80603340 272 no
1064 us .code func_80688CF4 44 no yes
1065 us .code func_8062D1A8 56 yes
1066 us .code func_806B7EA0 1348 no
1067 us .code func_8068D264 1636 no
1181 us .code func_80688370 44 yes
1182 us .code func_80627EA8 92 yes
1183 us .code func_8067E69C 40 yes
1184 us .code func_80669650 80 no yes
1185 us .code func_80688FC0 164 no
1186 us .code func_8067A99C 84 yes
1187 us .code func_806E3D14 300 yes
1389 us .code func_80643440 612 no
1390 us .code func_8066E664 100 yes
1391 us .code func_80661658 72 yes
1392 us .code func_80602430 44 no yes
1393 us .code func_806944BC 1164 no
1394 us .code func_806CC638 624 no
1395 us .code func_8064A258 1452 no
1622 us .code func_80737638 748 no
1623 us .code func_806EAE60 268 yes
1624 us .code func_8066B75C 80 yes
1625 us .code func_80724874 60 56 no yes
1626 us .code func_8062A774 92 yes
1627 us .code func_80676730 44 yes
1628 us .code func_80646DC4 836 no
1947 us .code func_80666AE0 12 yes
1948 us .code func_80644D50 220 yes
1949 us .code func_806E7050 56 yes
1950 us .code func_80661264 80 no yes
1951 us .code func_8063C7C4 696 no
1952 us .code func_80704AFC 36 yes
1953 us .code func_806C9830 324 yes
2087 us .code func_806D69A4 348 yes
2088 us .code func_806CA1B4 184 yes
2089 us .code func_806DA94C 200 yes
2090 us .code func_806338F4 72 no yes
2091 us .code func_806ADDD8 520 no
2092 us .code func_806E3C14 36 yes
2093 us .code func_80688940 300 yes
2514 us .code func_8067470C 376 no
2515 us .code func_80650684 100 yes
2516 us .code func_80664834 516 yes
2517 us .code func_8066EABC 48 no yes
2518 us .code func_80685D84 244 yes
2519 us .code func_806CC920 40 yes
2520 us .code func_806B1290 184 yes
2604 us .code func_806EBBD0 144 yes
2605 us .code func_80665ACC 24 yes
2606 us .code func_8067A9F0 104 yes
2607 us .code func_8060F928 56 no yes
2608 us .code clearGlobalFlags 80 yes
2609 us .code func_8072E740 156 yes
2610 us .code func_806776A0 1548 no

View File

@ -9,7 +9,7 @@
</mask>
<g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h77v20H0z"/>
<path fill="#c06000" d="M77 0h67v20H77z"/>
<path fill="#c06100" 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">25.1257%</text>
<text x="110.5" y="14">25.1257%</text>
<text x="111.5" y="15" fill="#010101" fill-opacity=".3">25.1871%</text>
<text x="110.5" y="14">25.1871%</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">24.5579%</text>
<text x="165.5" y="14">24.5579%</text>
<text x="166.5" y="15" fill="#010101" fill-opacity=".3">24.6037%</text>
<text x="165.5" y="14">24.6037%</text>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -115,5 +115,9 @@ s16 func_807245D8(s32 arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_127B00/func_807245F0.s")
// Unknown struct arg0, only function that calls it is a jumptable
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_127B00/func_80724874.s")
void func_80724874(Actor *arg0) {
if (arg0->unk118 != NULL) {
func_8061130C(arg0->unk118);
arg0->unk118 = NULL;
}
}

View File

@ -224,7 +224,7 @@ typedef struct {
s32 unk264;
s32 unk268;
GlobalASMStruct6 *unk26C;
s32 unk270;
GlobalASMStruct6 *unk270;
s32 unk274;
} GlobalASMStruct87;
@ -247,7 +247,7 @@ s32 func_8060EE58(s32 arg0) {
// Jumptable, appears to be the main function of a thread
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_131B0/func_8060EE60.s")
s32 func_8060F928(GlobalASMStruct87*, GlobalASMStruct6*);
void func_8060F928(GlobalASMStruct87*, GlobalASMStruct6*);
void func_8060F1D0(GlobalASMStruct87 *arg0, GlobalASMStruct6 *arg1) {
func_8060F928(arg0, arg1);
@ -279,25 +279,20 @@ void func_8060F208(GlobalASMStruct87 *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_131B0/func_8060F854.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_131B0/func_8060F928.s")
/*
s32 func_8060F928(GlobalASMStruct87 *arg0, GlobalASMStruct6 *arg1) {
void func_8060F928(GlobalASMStruct87 *arg0, GlobalASMStruct6 *arg1) {
s32 temp_v0;
temp_v0 = arg1->unk10;
if (temp_v0 == 2) {
//*arg0->unk26C = arg1;
arg0->unk26C->unk0 = arg1;
arg0->unk26C = arg1;
} else {
//*arg0->unk270 = arg1;
arg0->unk270->unk0 = arg1;
arg0->unk270 = arg1;
}
arg1->unk0 = 0;
arg1->unk4 = 2;
return temp_v0;
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_131B0/func_8060F960.s")

View File

@ -214,17 +214,16 @@ extern Struct80755DA8 D_80755DA8[]; // 0x1F
// TODO: Close
s16 func_80731784(s16 map, s16 spawnerID, s32 *arg2) {
s16 i;
s16 max = 0x1F;
*arg2 = 0;
i = 0;
while (i < 0x1F) {
for (i = 0; i < max; i++) {
if (map == D_80755DA8[i].map) {
if (spawnerID == D_80755DA8[i].spawnerID) {
*arg2 = i;
return D_80755DA8[i].flagIndex;
}
}
i++;
}
return -1;
}
@ -250,8 +249,25 @@ s16 func_8073195C(s16 arg0) {
return D_80755F4C[arg0].unk0;
}
// Doable, unrolled loop, struct array
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_135D30/func_8073198C.s")
typedef struct {
s16 unk0;
u8 unk2;
u8 unk3;
} Struct80755F50;
extern Struct80755F50 D_80755F50[];
u8 func_8073198C(s16 arg0) {
s32 i;
s32 max = 0x35;
for (i = 0; i < max; i++) {
if (arg0 == D_80755F50[i].unk0) {
return D_80755F50[i].unk2;
}
}
return 0;
}
// Returns a permanent flag index
s32 func_807319D8(s32 arg0, s32 arg1, s32 arg2) {

View File

@ -65,6 +65,17 @@ s32 func_8073202C(s32 arg0, s32 *arg1, s32 *arg2) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_136820/func_80732064.s")
/*
// Regalloc
s32 func_80732064(s32 arg0, s32 *arg1) {
if ((arg0 & 0xFFFF0000) == 0x27BD0000) {
*arg1 += (s16)arg0;
return TRUE;
}
return FALSE;
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_136820/func_8073209C.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_136820/func_80732158.s")

View File

@ -96,9 +96,9 @@ void func_80737F40(Struct80737F0C *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_13CB50/func_80737FD8.s")
/*
void func_807382A0(s32, s32, s32, s32, s32);
void func_807382A0(s32, s32, u8, u8, u8);
/*
void func_80737FD8(s32 arg0, s32 arg1) {
func_807382A0(arg0, 0, arg1 | 0xB0, 0xFF, 0);
}
@ -108,6 +108,12 @@ void func_80737FD8(s32 arg0, s32 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_13CB50/func_80738080.s")
/*
void func_80738080(s32 arg0, s32 arg1, u8 arg2) {
func_807382A0(arg0, 0, arg1 | 0xB0, 0xFF, arg2);
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_13CB50/func_807380CC.s")
/*

View File

@ -182,6 +182,7 @@ void *func_806111F8(s32 arg0, u32 arg1) {
}
*/
// free()?
void func_8061130C(HeapHeader *arg0) {
// TODO: Oof, I don't like the second condition there but it does match...
if ((arg0 != D_807F5A64) && ((--arg0)->unkB == 0)) {

View File

@ -361,10 +361,30 @@ void func_806335B0(s32 arg0, u8 arg1, s32 arg2, f32 *arg3, f32 *arg4, f32 *arg5)
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_8063373C.s")
// Loop, struct arg1, doable
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806338B4.s")
void func_806338B4(OM2_unk74 *arg0);
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806338F4.s")
void func_806338B4(OM2_unk74 *current) {
OM2_unk74 *next;
if (current != NULL) {
do {
next = current->next;
func_8061130C(current);
current = next;
} while (next != NULL);
}
}
void func_806338F4(s32 arg0) {
OM2_unk48 *temp_v0;
u8 i;
temp_v0 = &D_807F6000[arg0].unk48;
for (i = 0; i < 2; i++) {
temp_v0->unk25[i] = 0xFF;
}
temp_v0->unk24 = 0;
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_8063393C.s")
@ -617,7 +637,6 @@ void func_8066C904(void *arg0);
Chunk14 *func_80630588(Chunk14 *arg0, s32 arg1, u8 arg2, u8 *arg3);
void func_806338B4(void *arg0);
void func_8064F804(void *arg0);
void func_806593C8(s32 arg0, s32 arg1);

View File

@ -1093,22 +1093,18 @@ void func_8064B118(s32 arg0, s16 arg1, s32 arg2, s32 arg3) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8064B260.s")
/*
typedef struct {
s32 unk0;
s32 unk4;
s32 unk8;
s32 unkC;
s32 unk10;
f32 unk14;
f32 unk18;
f32 unk1C;
f32 unk4;
f32 unk8;
f32 unkC;
} GlobalASMStruct54;
/*
void func_8064B260(GlobalASMStruct54 *arg0, s32 arg1, s16 arg2, s32 arg3) {
arg0[arg2].unk14 = player_pointer->unk100;
arg0[arg2].unk18 = player_pointer->unk104;
arg0[arg2].unk1C = player_pointer->unk108;
arg0[arg2 + 1].unk4 = player_pointer->unk100;
arg0[arg2 + 1].unk8 = player_pointer->unk104;
arg0[arg2 + 1].unkC = player_pointer->unk108;
}
*/

View File

@ -4,6 +4,7 @@
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_54150/func_8064F450.s")
// OM2_unk24 shenanigans
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_54150/func_8064F6C0.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_54150/func_8064F6F8.s")

View File

@ -1,8 +1,6 @@
#include <ultra64.h>
#include "functions.h"
typedef struct global_asm_struct_18 {
void* unk0; // Texture pointer usually
void* unk4;
@ -104,8 +102,17 @@ s32 func_8066104C(s32 arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_63EC0/func_80661054.s")
// Needs definition for D_807F93C0->unk0->unk64
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_63EC0/func_80661264.s")
void func_80661264(s32 arg0, u8 arg1) {
GlobalASMStruct58 *current;
current = D_807F93C0;
while (current != NULL && arg0 != 0) {
current = current->next;
arg0 -= 1;
}
if (current != NULL) {
current->unk0->unk64 = arg1;
}
}
void func_806612B4(s32 arg0, u8 arg1) {
GlobalASMStruct58 *phi_v0 = D_807F93C0;

View File

@ -82,9 +82,12 @@ void *func_806022DC(void *arg0) {
}
*/
// Libultra stuff osRecvMesg, alUnlink, alLink
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_80602314.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_80602430.s")
u8 func_80602430(s16 arg0) {
return ((D_80745658[arg0] & 6) >> 1);
}
u8 func_8060245C(s16 arg0) {
return (D_80745658[arg0] & 0x78) >> 3;
@ -94,6 +97,7 @@ void func_80602488(u8 arg0) {
D_80745654 = arg0;
}
// Doable, kinda annoying
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_6710/func_80602498.s")
void func_806025AC(s32 arg0, s32 arg1, s32 arg2) {

View File

@ -934,7 +934,15 @@ void func_80669588(s32 arg0, f32 arg1) {
}
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_699B0/func_80669650.s")
s32 func_80669650(u8 arg0, u8 *arg1) {
u8 i;
for (i = 0; i < 2; i++) {
if (arg1[i] != 0xFF && arg0 == arg1[i]) {
return 0;
}
}
return 1;
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_699B0/func_806696A0.s")

View File

@ -126,31 +126,24 @@ void func_8066E21C(LedgeInfo *ledgeInfo) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066E2C0.s")
typedef struct {
u8 pad0[0x24];
u16 unk24;
u8 unk26;
u8 unk27;
} GlobalASMStruct0;
LedgeInfo8C *func_8066EAEC(Actor*, s32);
GlobalASMStruct0 *func_8066EAEC(s32, s32);
void func_8066E5CC(s32 arg0, s32 arg1, u16 arg2) {
GlobalASMStruct0 *temp_v0 = func_8066EAEC(arg0, arg1);
void func_8066E5CC(Actor *arg0, s32 arg1, u16 arg2) {
LedgeInfo8C *temp_v0 = func_8066EAEC(arg0, arg1);
if (temp_v0) {
temp_v0->unk24 = arg2;
}
}
void func_8066E5F8(s32 arg0, s32 arg1, u8 arg2) {
GlobalASMStruct0 *temp_v0 = func_8066EAEC(arg0, arg1);
void func_8066E5F8(Actor *arg0, s32 arg1, u8 arg2) {
LedgeInfo8C *temp_v0 = func_8066EAEC(arg0, arg1);
if (temp_v0) {
temp_v0->unk27 |= arg2;
}
}
void func_8066E62C(s32 arg0, s32 arg1, u8 arg2) {
GlobalASMStruct0 *temp_v0 = func_8066EAEC(arg0, arg1);
void func_8066E62C(Actor *arg0, s32 arg1, u8 arg2) {
LedgeInfo8C *temp_v0 = func_8066EAEC(arg0, arg1);
if (temp_v0) {
temp_v0->unk27 &= ~arg2;
}
@ -303,24 +296,53 @@ f32 func_8066E9EC(Actor *arg0, s32 arg1, f32 arg2) {
}
*/
void func_8066EA64(s32 arg0, s32 arg1) {
GlobalASMStruct0 *temp_v0 = func_8066EAEC(arg0, arg1);
void func_8066EA64(Actor *arg0, s32 arg1) {
LedgeInfo8C *temp_v0 = func_8066EAEC(arg0, arg1);
if (temp_v0) {
temp_v0->unk26 = 1;
}
}
void func_8066EA90(s32 arg0, s32 arg1) {
GlobalASMStruct0 *temp_v0 = func_8066EAEC(arg0, arg1);
void func_8066EA90(Actor *arg0, s32 arg1) {
LedgeInfo8C *temp_v0 = func_8066EAEC(arg0, arg1);
if (temp_v0) {
temp_v0->unk26 = 0;
}
}
//related to the struct used above
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066EABC.s")
void func_8066EABC(Actor *arg0) {
LedgeInfo *ledgeInfo;
LedgeInfo8C *current;
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066EAEC.s")
ledgeInfo = arg0->ledge_info_pointer;
if (ledgeInfo != NULL) {
current = ledgeInfo->unk8C;
while (current != NULL) {
current->unk26 = 0;
current = current->next;
}
}
}
LedgeInfo8C *func_8066EAEC(Actor *arg0, s32 arg1) {
LedgeInfo *ledgeInfo;
LedgeInfo8C *current;
ledgeInfo = arg0->ledge_info_pointer;
arg1--;
if (ledgeInfo != NULL) {
current = ledgeInfo->unk8C;
while (arg1 != 0 && current != NULL) {
arg1--;
current = current->next;
}
if (current != NULL) {
return current;
}
return NULL;
}
return NULL;
}
void func_8066EB40(Actor *arg0, f32 arg1) {
LedgeInfo *ledgeInfo = arg0->ledge_info_pointer;

View File

@ -291,11 +291,25 @@ u16 func_80688C84(u16 arg0) {
}
*/
// Something unk124
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8D3E0/func_80688CC4.s")
typedef struct {
f32 unk0[8];
} A124_80688CC4;
// Something unk124
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8D3E0/func_80688CF4.s")
void func_80688CC4(Actor *arg0, s16 arg1, f32 arg2) {
if (arg1 < 8) {
((A124_80688CC4*)arg0->unk124)->unk0[arg1] = arg2;
}
}
typedef struct {
s32 unk0[8];
} A124_80688CF4;
void func_80688CF4(Actor *arg0, s16 arg1, s32 arg2) {
if (arg1 < 8) {
((A124_80688CF4*)arg0->unk124)->unk0[arg1] = arg2;
}
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8D3E0/func_80688D20.s")

View File

@ -73,7 +73,6 @@ void func_8066E8E4(void *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5)
f32 func_8066E9EC(Actor *arg0, s32 arg1, f32 arg2);
void func_8066EB40(Actor *arg0, f32 arg1);
void func_8065A708(f32, f32, f32, f32, f32, f32, f32, s32, s32, s32, s32);
void func_8066E5F8(s32 arg0, s32 arg1, u8 arg2);
/*
// TODO: Doable, great progress made

View File

@ -207,7 +207,6 @@ void func_8066EB40(Actor*, f32);
void func_8066E8E4(void *arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4, s32 arg5);
void func_8066E854(Actor *arg0, f32 arg1, f32 arg2, f32 arg3, s32 arg4);
void func_8065A708(f32, f32, f32, f32, f32, f32, f32, s32, s32, s32, s32);
void func_8066EA64(s32 arg0, s32 arg1);
void func_80608528(void *arg0, s16 arg1, u8 arg2, s16 arg3, u8 arg4);
void func_806B83E4(void) {

View File

@ -149,9 +149,9 @@ typedef struct {
u8 unk2;
u8 unk3;
u8 unk4;
} GlobalASMStruct0;
} Struct807FD568;
extern GlobalASMStruct0 *D_807FD568; // TODO: Unknown struct
extern Struct807FD568 *D_807FD568; // TODO: Unknown struct
extern s16 D_807FD584; // index into a ton of arrays
extern u8 D_807FD586;

View File

@ -99,7 +99,7 @@ void func_8002452C(void) {
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/multiplayer/code_0/func_80025264.s")
// D_80026FA4 struct array? Loop
// D_80026FA4 struct array? Loop, very fiddly
#pragma GLOBAL_ASM("asm/nonmatchings/multiplayer/code_0/func_80025378.s")
s32 func_800253C8(void) {

View File

@ -42,9 +42,18 @@ typedef struct {
s32 unk24;
} RaceStruct2_unkC;
typedef struct RaceStruct2 {
typedef struct {
s32 unk0;
s32 unk4;
s32 unk8;
} RaceStruct2_unk4;
typedef struct RaceStruct2 {
u8 unk0;
u8 unk1;
u8 unk2;
u8 unk3;
RaceStruct2_unk4 *unk4;
u16 unk8;
s16 unkA;
RaceStruct2_unkC *unkC;
@ -53,16 +62,25 @@ extern RaceStruct2 *D_8002FCF0;
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_A960/func_8002E960.s")
/*
// TODO: Regalloc a1 v1
void *func_8002E960(u8 arg0) {
if (D_8002FCF0 == NULL || arg0 >= D_8002FCF0->unk0) {
return NULL;
}
return &D_8002FCF0->unk4[arg0];
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_A960/func_8002E9AC.s")
/*
// TODO: Regalloc a1 v1, if I make it an arg it causes func_8002F36C and func_8002F420 to not match
void *func_8002E9AC(u8 arg0) {
RaceStruct2 *arg1 = D_8002FCF0;
if ((arg1 == 0) || (arg0 >= arg1->unk8)) {
if ((D_8002FCF0 == NULL) || (arg0 >= D_8002FCF0->unk8)) {
return NULL;
}
return &arg1->unkC[arg0];
return &D_8002FCF0->unkC[arg0];
}
*/