This commit is contained in:
Donkey Kong 2023-02-24 23:09:28 +10:30
parent 6e565d4352
commit 4724bff684
21 changed files with 452 additions and 82 deletions

View File

@ -267,6 +267,40 @@ typedef struct actor_animation_state {
f32 animation_timer_4; // at 0x108 f32 animation_timer_4; // at 0x108
} ActorAnimationState; } ActorAnimationState;
typedef struct {
f32 unk0; // Used
f32 unk4; // Used
union {
f32 unk8; // Used
s32 unk8_s32; // Used // TODO: We might have another aaD situation here...
};
s32 unkC;
s32 unk10;
s32 unk14;
s32 unk18;
s32 unk1C;
s32 unk20;
s32 unk24;
s32 unk28;
s32 unk2C;
s32 unk30;
s32 unk34;
s32 unk38;
s32 unk3C;
s32 unk40;
s32 unk44;
s32 unk48;
s32 unk4C;
s32 unk50;
s32 unk54;
s32 unk58;
s32 unk5C;
s32 unk60;
s32 unk64;
s32 unk68;
s32 unk6C;
} Actor124;
typedef struct actor_178 { typedef struct actor_178 {
s16 unk0; // Used s16 unk0; // Used
s16 unk2; s16 unk2;
@ -382,7 +416,9 @@ typedef struct {
struct actor_collision { struct actor_collision {
u32 unk0; // Collision type? u32 unk0; // Collision type?
u32 unk4; u8 unk4;
u8 unk5;
u16 unk6;
Actor *collisionSource; Actor *collisionSource;
u32 unkC; u32 unkC;
u32 unk10; u32 unk10;
@ -478,7 +514,6 @@ typedef struct yaad5 {
s8 unk1E; // Used s8 unk1E; // Used
} YetAnotherAdditionalActorData5; } YetAnotherAdditionalActorData5;
typedef struct yet_another_additional_actor_data { typedef struct yet_another_additional_actor_data {
Actor *unk0; Actor *unk0;
u16 unk4; u16 unk4;
@ -893,7 +928,7 @@ struct actor {
u32 unk118; u32 unk118;
Actor *unk11C; Actor *unk11C;
f32 unk120; f32 unk120;
u32 unk124; Actor124 *unk124;
s16 shadow_opacity; // at 0x128, max value 0xFF s16 shadow_opacity; // at 0x128, max value 0xFF
s16 draw_distance; // at 0x12A s16 draw_distance; // at 0x12A
s16 unk12C; // Used s16 unk12C; // Used
@ -908,7 +943,10 @@ struct actor {
LedgeInfo *ledge_info_pointer; // at 0x140 LedgeInfo *ledge_info_pointer; // at 0x140
u8 noclip_byte; // at 0x144 u8 noclip_byte; // at 0x144
u8 unk145; u8 unk145;
u16 unk146; // used (0x147 hand state? 0x146 seems to be u16) union {
u16 unk146; // used (0x147 hand state? 0x146 seems to be u16)
s16 unk146_s16; // used func_8068A764
};
u32 unk148; // Used u32 unk148; // Used
u32 unk14C; // Used u32 unk14C; // Used
void *unk150; // TODO: Floor Triangle Pointer void *unk150; // TODO: Floor Triangle Pointer

View File

@ -200,7 +200,7 @@ us,.code,func_8069FDA0,1004,no
us,.code,func_80652B04,196,yes us,.code,func_80652B04,196,yes
us,.code,func_806E9BA8,308,no us,.code,func_806E9BA8,308,no
us,.code,func_8067E278,108,yes us,.code,func_8067E278,108,yes
us,.code,func_806A018C,356,no us,.code,func_806A018C,356,yes
us,.code,func_80726164,844,no us,.code,func_80726164,844,no
us,.code,func_80684BB0,488,no us,.code,func_80684BB0,488,no
us,.code,func_806E8AF0,56,yes us,.code,func_806E8AF0,56,yes
@ -322,7 +322,7 @@ us,.code,func_806644B0,264,no
us,.code,func_8063D9D0,112,no us,.code,func_8063D9D0,112,no
us,.code,func_806FDB8C,912,no us,.code,func_806FDB8C,912,no
us,.code,func_80665AAC,32,no us,.code,func_80665AAC,32,no
us,.code,func_8068A764,32,no us,.code,func_8068A764,32,yes
us,.code,func_8070B324,1224,no us,.code,func_8070B324,1224,no
us,.code,func_8060BEA8,220,no us,.code,func_8060BEA8,220,no
us,.code,func_806FA1A4,864,no us,.code,func_806FA1A4,864,no
@ -1096,7 +1096,7 @@ us,.code,func_80708BB8,108,yes
us,.code,func_8068F72C,2068,no us,.code,func_8068F72C,2068,no
us,.code,func_80602488,16,yes us,.code,func_80602488,16,yes
us,.code,func_806C9F74,100,yes us,.code,func_806C9F74,100,yes
us,.code,func_80679200,144,no us,.code,func_80679200,144,yes
us,.code,func_806E7658,180,yes us,.code,func_806E7658,180,yes
us,.code,func_807370A4,244,no us,.code,func_807370A4,244,no
us,.code,func_8073A130,372,no us,.code,func_8073A130,372,no
@ -2517,7 +2517,7 @@ us,.code,func_806F4E74,72,yes
us,.code,func_806B24B8,728,no us,.code,func_806B24B8,728,no
us,.code,func_80732534,228,no us,.code,func_80732534,228,no
us,.code,func_806ACA88,376,no us,.code,func_806ACA88,376,no
us,.code,func_80679290,164,no us,.code,func_80679290,164,yes
us,.code,func_8065996C,1092,no us,.code,func_8065996C,1092,no
us,.code,func_80692640,768,no us,.code,func_80692640,768,no
us,.code,func_8067470C,376,no us,.code,func_8067470C,376,no
@ -2545,7 +2545,7 @@ us,.code,func_806319C4,444,no
us,.code,func_806B1F28,32,yes us,.code,func_806B1F28,32,yes
us,.code,func_806B904C,404,no us,.code,func_806B904C,404,no
us,.code,func_80658E58,52,yes us,.code,func_80658E58,52,yes
us,.code,func_8069CF54,196,no us,.code,func_8069CF54,196,yes
us,.code,func_80647508,264,yes us,.code,func_80647508,264,yes
us,.code,func_807127B4,64,yes us,.code,func_807127B4,64,yes
us,.code,func_8065F5F0,36,no us,.code,func_8065F5F0,36,no
@ -2575,7 +2575,7 @@ us,.code,func_80672EBC,216,no
us,.code,func_806C55E0,1600,no us,.code,func_806C55E0,1600,no
us,.code,func_80661054,528,no us,.code,func_80661054,528,no
us,.code,func_80661484,76,yes us,.code,func_80661484,76,yes
us,.code,func_8062C99C,112,no us,.code,func_8062C99C,112,yes
us,.code,func_80600080,244,yes us,.code,func_80600080,244,yes
us,.code,func_8070D020,92,yes us,.code,func_8070D020,92,yes
us,.code,func_806A3700,12,yes us,.code,func_806A3700,12,yes
@ -2683,7 +2683,7 @@ us,.code,func_806C43A8,108,yes
us,.code,func_806BB32C,212,yes us,.code,func_806BB32C,212,yes
us,.code,func_80737EA4,104,no us,.code,func_80737EA4,104,no
us,.code,func_806A6230,132,yes us,.code,func_806A6230,132,yes
us,.code,func_8066F274,396,no us,.code,func_8066F274,396,yes
us,.code,func_80642E34,400,no us,.code,func_80642E34,400,no
us,.code,func_806613E8,88,yes us,.code,func_806613E8,88,yes
us,.code,func_80660D38,788,no us,.code,func_80660D38,788,no
@ -2728,7 +2728,7 @@ us,.code,func_806699C4,168,no
us,.code,func_8066B06C,112,yes us,.code,func_8066B06C,112,yes
us,.code,func_8067BD28,144,yes us,.code,func_8067BD28,144,yes
us,.code,func_806BC148,100,yes us,.code,func_806BC148,100,yes
us,.code,func_8068A784,44,no us,.code,func_8068A784,36,yes
us,.code,func_8065EB10,1248,no us,.code,func_8065EB10,1248,no
us,.code,func_80639F1C,164,no us,.code,func_80639F1C,164,no
us,.code,func_80718188,244,no us,.code,func_80718188,244,no

1 version section function length matching
200 us .code func_80652B04 196 yes
201 us .code func_806E9BA8 308 no
202 us .code func_8067E278 108 yes
203 us .code func_806A018C 356 no yes
204 us .code func_80726164 844 no
205 us .code func_80684BB0 488 no
206 us .code func_806E8AF0 56 yes
322 us .code func_8063D9D0 112 no
323 us .code func_806FDB8C 912 no
324 us .code func_80665AAC 32 no
325 us .code func_8068A764 32 no yes
326 us .code func_8070B324 1224 no
327 us .code func_8060BEA8 220 no
328 us .code func_806FA1A4 864 no
1096 us .code func_8068F72C 2068 no
1097 us .code func_80602488 16 yes
1098 us .code func_806C9F74 100 yes
1099 us .code func_80679200 144 no yes
1100 us .code func_806E7658 180 yes
1101 us .code func_807370A4 244 no
1102 us .code func_8073A130 372 no
2517 us .code func_806B24B8 728 no
2518 us .code func_80732534 228 no
2519 us .code func_806ACA88 376 no
2520 us .code func_80679290 164 no yes
2521 us .code func_8065996C 1092 no
2522 us .code func_80692640 768 no
2523 us .code func_8067470C 376 no
2545 us .code func_806B1F28 32 yes
2546 us .code func_806B904C 404 no
2547 us .code func_80658E58 52 yes
2548 us .code func_8069CF54 196 no yes
2549 us .code func_80647508 264 yes
2550 us .code func_807127B4 64 yes
2551 us .code func_8065F5F0 36 no
2575 us .code func_806C55E0 1600 no
2576 us .code func_80661054 528 no
2577 us .code func_80661484 76 yes
2578 us .code func_8062C99C 112 no yes
2579 us .code func_80600080 244 yes
2580 us .code func_8070D020 92 yes
2581 us .code func_806A3700 12 yes
2683 us .code func_806BB32C 212 yes
2684 us .code func_80737EA4 104 no
2685 us .code func_806A6230 132 yes
2686 us .code func_8066F274 396 no yes
2687 us .code func_80642E34 400 no
2688 us .code func_806613E8 88 yes
2689 us .code func_80660D38 788 no
2728 us .code func_8066B06C 112 yes
2729 us .code func_8067BD28 144 yes
2730 us .code func_806BC148 100 yes
2731 us .code func_8068A784 44 36 no yes
2732 us .code func_8065EB10 1248 no
2733 us .code func_80639F1C 164 no
2734 us .code func_80718188 244 no

View File

@ -63,7 +63,7 @@ us,.code,func_80025168,512,no
us,.code,func_800285DC,88,yes us,.code,func_800285DC,88,yes
us,.code,func_8002A67C,68,yes us,.code,func_8002A67C,68,yes
us,.code,func_8002A758,408,no us,.code,func_8002A758,408,no
us,.code,func_8002A2AC,48,no us,.code,func_8002A2AC,48,yes
us,.code,func_80029884,68,no us,.code,func_80029884,68,no
us,.code,func_80024E70,180,no us,.code,func_80024E70,180,no
us,.code,func_800286D0,640,no us,.code,func_800286D0,640,no

1 version section function length matching
63 us .code func_800285DC 88 yes
64 us .code func_8002A67C 68 yes
65 us .code func_8002A758 408 no
66 us .code func_8002A2AC 48 no yes
67 us .code func_80029884 68 no
68 us .code func_80024E70 180 no
69 us .code func_800286D0 640 no

View File

@ -49,7 +49,7 @@ us,.code,func_8002D0B0,76,yes
us,.code,func_80026D2C,440,no us,.code,func_80026D2C,440,no
us,.code,func_800283D4,108,no us,.code,func_800283D4,108,no
us,.code,func_8002F304,104,yes us,.code,func_8002F304,104,yes
us,.code,func_80027B30,160,no us,.code,func_80027B30,160,yes
us,.code,func_8002BDDC,268,no us,.code,func_8002BDDC,268,no
us,.code,func_8002F90C,68,yes us,.code,func_8002F90C,68,yes
us,.code,func_800292B0,32,yes us,.code,func_800292B0,32,yes

1 version section function length matching
49 us .code func_80026D2C 440 no
50 us .code func_800283D4 108 no
51 us .code func_8002F304 104 yes
52 us .code func_80027B30 160 no yes
53 us .code func_8002BDDC 268 no
54 us .code func_8002F90C 68 yes
55 us .code func_800292B0 32 yes

View File

@ -200,7 +200,7 @@ us,.code,func_8069FDA0,1004,no
us,.code,func_80652B04,196,yes us,.code,func_80652B04,196,yes
us,.code,func_806E9BA8,308,no us,.code,func_806E9BA8,308,no
us,.code,func_8067E278,108,yes us,.code,func_8067E278,108,yes
us,.code,func_806A018C,356,no us,.code,func_806A018C,356,yes
us,.code,func_80726164,844,no us,.code,func_80726164,844,no
us,.code,func_80684BB0,488,no us,.code,func_80684BB0,488,no
us,.code,func_806E8AF0,56,yes us,.code,func_806E8AF0,56,yes
@ -322,7 +322,7 @@ us,.code,func_806644B0,264,no
us,.code,func_8063D9D0,112,no us,.code,func_8063D9D0,112,no
us,.code,func_806FDB8C,912,no us,.code,func_806FDB8C,912,no
us,.code,func_80665AAC,32,no us,.code,func_80665AAC,32,no
us,.code,func_8068A764,32,no us,.code,func_8068A764,32,yes
us,.code,func_8070B324,1224,no us,.code,func_8070B324,1224,no
us,.code,func_8060BEA8,220,no us,.code,func_8060BEA8,220,no
us,.code,func_806FA1A4,864,no us,.code,func_806FA1A4,864,no
@ -1096,7 +1096,7 @@ us,.code,func_80708BB8,108,yes
us,.code,func_8068F72C,2068,no us,.code,func_8068F72C,2068,no
us,.code,func_80602488,16,yes us,.code,func_80602488,16,yes
us,.code,func_806C9F74,100,yes us,.code,func_806C9F74,100,yes
us,.code,func_80679200,144,no us,.code,func_80679200,144,yes
us,.code,func_806E7658,180,yes us,.code,func_806E7658,180,yes
us,.code,func_807370A4,244,no us,.code,func_807370A4,244,no
us,.code,func_8073A130,372,no us,.code,func_8073A130,372,no
@ -2517,7 +2517,7 @@ us,.code,func_806F4E74,72,yes
us,.code,func_806B24B8,728,no us,.code,func_806B24B8,728,no
us,.code,func_80732534,228,no us,.code,func_80732534,228,no
us,.code,func_806ACA88,376,no us,.code,func_806ACA88,376,no
us,.code,func_80679290,164,no us,.code,func_80679290,164,yes
us,.code,func_8065996C,1092,no us,.code,func_8065996C,1092,no
us,.code,func_80692640,768,no us,.code,func_80692640,768,no
us,.code,func_8067470C,376,no us,.code,func_8067470C,376,no
@ -2545,7 +2545,7 @@ us,.code,func_806319C4,444,no
us,.code,func_806B1F28,32,yes us,.code,func_806B1F28,32,yes
us,.code,func_806B904C,404,no us,.code,func_806B904C,404,no
us,.code,func_80658E58,52,yes us,.code,func_80658E58,52,yes
us,.code,func_8069CF54,196,no us,.code,func_8069CF54,196,yes
us,.code,func_80647508,264,yes us,.code,func_80647508,264,yes
us,.code,func_807127B4,64,yes us,.code,func_807127B4,64,yes
us,.code,func_8065F5F0,36,no us,.code,func_8065F5F0,36,no
@ -2575,7 +2575,7 @@ us,.code,func_80672EBC,216,no
us,.code,func_806C55E0,1600,no us,.code,func_806C55E0,1600,no
us,.code,func_80661054,528,no us,.code,func_80661054,528,no
us,.code,func_80661484,76,yes us,.code,func_80661484,76,yes
us,.code,func_8062C99C,112,no us,.code,func_8062C99C,112,yes
us,.code,func_80600080,244,yes us,.code,func_80600080,244,yes
us,.code,func_8070D020,92,yes us,.code,func_8070D020,92,yes
us,.code,func_806A3700,12,yes us,.code,func_806A3700,12,yes
@ -2683,7 +2683,7 @@ us,.code,func_806C43A8,108,yes
us,.code,func_806BB32C,212,yes us,.code,func_806BB32C,212,yes
us,.code,func_80737EA4,104,no us,.code,func_80737EA4,104,no
us,.code,func_806A6230,132,yes us,.code,func_806A6230,132,yes
us,.code,func_8066F274,396,no us,.code,func_8066F274,396,yes
us,.code,func_80642E34,400,no us,.code,func_80642E34,400,no
us,.code,func_806613E8,88,yes us,.code,func_806613E8,88,yes
us,.code,func_80660D38,788,no us,.code,func_80660D38,788,no
@ -2728,7 +2728,7 @@ us,.code,func_806699C4,168,no
us,.code,func_8066B06C,112,yes us,.code,func_8066B06C,112,yes
us,.code,func_8067BD28,144,yes us,.code,func_8067BD28,144,yes
us,.code,func_806BC148,100,yes us,.code,func_806BC148,100,yes
us,.code,func_8068A784,44,no us,.code,func_8068A784,36,yes
us,.code,func_8065EB10,1248,no us,.code,func_8065EB10,1248,no
us,.code,func_80639F1C,164,no us,.code,func_80639F1C,164,no
us,.code,func_80718188,244,no us,.code,func_80718188,244,no
@ -3525,7 +3525,7 @@ us,.code,func_8002D0B0,76,yes
us,.code,func_80026D2C,440,no us,.code,func_80026D2C,440,no
us,.code,func_800283D4,108,no us,.code,func_800283D4,108,no
us,.code,func_8002F304,104,yes us,.code,func_8002F304,104,yes
us,.code,func_80027B30,160,no us,.code,func_80027B30,160,yes
us,.code,func_8002BDDC,268,no us,.code,func_8002BDDC,268,no
us,.code,func_8002F90C,68,yes us,.code,func_8002F90C,68,yes
us,.code,func_800292B0,32,yes us,.code,func_800292B0,32,yes
@ -3856,7 +3856,7 @@ us,.code,func_80025168,512,no
us,.code,func_800285DC,88,yes us,.code,func_800285DC,88,yes
us,.code,func_8002A67C,68,yes us,.code,func_8002A67C,68,yes
us,.code,func_8002A758,408,no us,.code,func_8002A758,408,no
us,.code,func_8002A2AC,48,no us,.code,func_8002A2AC,48,yes
us,.code,func_80029884,68,no us,.code,func_80029884,68,no
us,.code,func_80024E70,180,no us,.code,func_80024E70,180,no
us,.code,func_800286D0,640,no us,.code,func_800286D0,640,no

1 version section function length matching
200 us .code func_80652B04 196 yes
201 us .code func_806E9BA8 308 no
202 us .code func_8067E278 108 yes
203 us .code func_806A018C 356 no yes
204 us .code func_80726164 844 no
205 us .code func_80684BB0 488 no
206 us .code func_806E8AF0 56 yes
322 us .code func_8063D9D0 112 no
323 us .code func_806FDB8C 912 no
324 us .code func_80665AAC 32 no
325 us .code func_8068A764 32 no yes
326 us .code func_8070B324 1224 no
327 us .code func_8060BEA8 220 no
328 us .code func_806FA1A4 864 no
1096 us .code func_8068F72C 2068 no
1097 us .code func_80602488 16 yes
1098 us .code func_806C9F74 100 yes
1099 us .code func_80679200 144 no yes
1100 us .code func_806E7658 180 yes
1101 us .code func_807370A4 244 no
1102 us .code func_8073A130 372 no
2517 us .code func_806B24B8 728 no
2518 us .code func_80732534 228 no
2519 us .code func_806ACA88 376 no
2520 us .code func_80679290 164 no yes
2521 us .code func_8065996C 1092 no
2522 us .code func_80692640 768 no
2523 us .code func_8067470C 376 no
2545 us .code func_806B1F28 32 yes
2546 us .code func_806B904C 404 no
2547 us .code func_80658E58 52 yes
2548 us .code func_8069CF54 196 no yes
2549 us .code func_80647508 264 yes
2550 us .code func_807127B4 64 yes
2551 us .code func_8065F5F0 36 no
2575 us .code func_806C55E0 1600 no
2576 us .code func_80661054 528 no
2577 us .code func_80661484 76 yes
2578 us .code func_8062C99C 112 no yes
2579 us .code func_80600080 244 yes
2580 us .code func_8070D020 92 yes
2581 us .code func_806A3700 12 yes
2683 us .code func_806BB32C 212 yes
2684 us .code func_80737EA4 104 no
2685 us .code func_806A6230 132 yes
2686 us .code func_8066F274 396 no yes
2687 us .code func_80642E34 400 no
2688 us .code func_806613E8 88 yes
2689 us .code func_80660D38 788 no
2728 us .code func_8066B06C 112 yes
2729 us .code func_8067BD28 144 yes
2730 us .code func_806BC148 100 yes
2731 us .code func_8068A784 44 36 no yes
2732 us .code func_8065EB10 1248 no
2733 us .code func_80639F1C 164 no
2734 us .code func_80718188 244 no
3525 us .code func_80026D2C 440 no
3526 us .code func_800283D4 108 no
3527 us .code func_8002F304 104 yes
3528 us .code func_80027B30 160 no yes
3529 us .code func_8002BDDC 268 no
3530 us .code func_8002F90C 68 yes
3531 us .code func_800292B0 32 yes
3856 us .code func_800285DC 88 yes
3857 us .code func_8002A67C 68 yes
3858 us .code func_8002A758 408 no
3859 us .code func_8002A2AC 48 no yes
3860 us .code func_80029884 68 no
3861 us .code func_80024E70 180 no
3862 us .code func_800286D0 640 no

View File

@ -17,7 +17,7 @@
<text x="38.5" y="14">global_asm</text> <text x="38.5" y="14">global_asm</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <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">15.5884%</text> <text x="111.5" y="15" fill="#010101" fill-opacity=".3">15.7057%</text>
<text x="110.5" y="14">15.5884%</text> <text x="110.5" y="14">15.7057%</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -9,7 +9,7 @@
</mask> </mask>
<g mask="url(#anybadge_1)"> <g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h47v20H0z"/> <path fill="#555" d="M0 0h47v20H0z"/>
<path fill="#e03e00" d="M47 0h67v20H47z"/> <path fill="#e03f00" d="M47 0h67v20H47z"/>
<path fill="url(#b)" d="M0 0h114v20H0z"/> <path fill="url(#b)" d="M0 0h114v20H0z"/>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
@ -17,7 +17,7 @@
<text x="23.5" y="14">jetpac</text> <text x="23.5" y="14">jetpac</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="81.5" y="15" fill="#010101" fill-opacity=".3">13.8951%</text> <text x="81.5" y="15" fill="#010101" fill-opacity=".3">14.0616%</text>
<text x="80.5" y="14">13.8951%</text> <text x="80.5" y="14">14.0616%</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -9,7 +9,7 @@
</mask> </mask>
<g mask="url(#anybadge_1)"> <g mask="url(#anybadge_1)">
<path fill="#555" d="M0 0h37v20H0z"/> <path fill="#555" d="M0 0h37v20H0z"/>
<path fill="#e01b00" d="M37 0h60v20H37z"/> <path fill="#e01c00" d="M37 0h60v20H37z"/>
<path fill="url(#b)" d="M0 0h97v20H0z"/> <path fill="url(#b)" d="M0 0h97v20H0z"/>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <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> <text x="18.5" y="14">race</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11">
<text x="68.0" y="15" fill="#010101" fill-opacity=".3">5.9472%</text> <text x="68.0" y="15" fill="#010101" fill-opacity=".3">6.2813%</text>
<text x="67.0" y="14">5.9472%</text> <text x="67.0" y="14">6.2813%</text>
</g> </g>
</svg> </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> <text x="66.0" y="14">Donkey Kong 64 (US)</text>
</g> </g>
<g fill="#fff" text-anchor="middle" font-family="DejaVu Sans,Verdana,Geneva,sans-serif" font-size="11"> <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">16.2002%</text> <text x="166.5" y="15" fill="#010101" fill-opacity=".3">16.3004%</text>
<text x="165.5" y="14">16.2002%</text> <text x="165.5" y="14">16.3004%</text>
</g> </g>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -11,6 +11,7 @@
#pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_800029EC.s") #pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_800029EC.s")
// Should be doable, surprisingly hard
#pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_80002A30.s") #pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_80002A30.s")
#pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_80002A64.s") #pragma GLOBAL_ASM("asm/nonmatchings/dk64_boot/dk64_boot_3390/func_80002A64.s")

View File

@ -8,13 +8,12 @@ extern f32 D_80758160;
extern f32 D_80758164; extern f32 D_80758164;
extern f64 D_80758168; extern f64 D_80758168;
extern s32 D_807F5DE4; extern void *D_807F5DE4; // TODO: Actually a pointer to a struct (map model?)
extern s32 D_807F5E60; extern s32 D_807F5E60;
extern s8 D_807F5FEC; extern s8 D_807F5FEC;
extern s32 D_807F5FF4; extern s32 D_807F5FF4;
extern s32 D_807F6C28; extern s32 D_807F6C28;
extern s32 D_807F5DE4;
extern s32 D_807F5E60; extern s32 D_807F5E60;
void func_8062D0CC(s32, s32, s32, u8); void func_8062D0CC(s32, s32, s32, u8);
@ -283,9 +282,31 @@ void func_8062C22C(void) {
func_806364C4(); func_806364C4();
} }
// Displaylist Stuff
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062C29C.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062C29C.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062C99C.s") // TODO: Just a s16*?
typedef struct {
s16 unk0;
s16 unk2;
s16 unk4;
s16 unk6;
s16 unk8;
s16 unkA;
s16 unkC;
s16 unkE;
} GlobalASMStruct_8062C99C;
void func_8062C99C(GlobalASMStruct_8062C99C *arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
arg0->unk0 = (arg3 - arg1) * 2;
arg0->unk2 = (arg4 - arg2) * 2;
arg0->unk4 = 0x1FF;
arg0->unk6 = 0;
arg0->unk8 = ((arg1 + arg3) / 2) * 4;
arg0->unkA = ((arg2 + arg4) / 2) * 4;
arg0->unkC = 0x1FF;
arg0->unkE = 0;
}
// TODO: What is the actual signature? // TODO: What is the actual signature?
void func_80630B70(s32, s32, f32, f32, f32, s32, s32, s32); void func_80630B70(s32, s32, f32, f32, f32, s32, s32, s32);
@ -422,6 +443,8 @@ void func_8062E608(void *arg0, s32 *arg1, s32 arg2) {
f32 func_80612D10(f32); f32 func_80612D10(f32);
void func_80659DB0(f32, f32, s32 *, s32 *, f32, s32); void func_80659DB0(f32, f32, s32 *, s32 *, f32, s32);
void func_8063C390(void);
void func_8065E040(s32);
/* /*
? func_8062B3C4(void *, s32 *); ? func_8062B3C4(void *, s32 *);
? func_8062B478(s32); ? func_8062B478(s32);
@ -430,12 +453,10 @@ s32 func_8062BA74(void *);
? func_8062F328(void *); ? func_8062F328(void *);
? func_8062F3A0(void *, void *); ? func_8062F3A0(void *, void *);
? func_8062F420(void *, void *, void *); ? func_8062F420(void *, void *, void *);
? func_8063C390();
? func_80650ECC(void *); ? func_80650ECC(void *);
? func_80659110(s32); ? func_80659110(s32);
? func_8065996C(?); ? func_8065996C(?);
? func_8065CDA0(s32); ? func_8065CDA0(s32);
? func_8065E040(s32);
? func_8065F1C0(void *); ? func_8065F1C0(void *);
? func_80662B90(void *); ? func_80662B90(void *);
? func_806637C0(void *); ? func_806637C0(void *);
@ -478,7 +499,6 @@ typedef struct {
extern f32 D_80758190; extern f32 D_80758190;
extern MapGeometryHeader *D_807F5DE0; extern MapGeometryHeader *D_807F5DE0;
// extern void *D_807F5DE4;
extern void *D_807F5DE8; extern void *D_807F5DE8;
extern void *D_807F5DEC; extern void *D_807F5DEC;
extern s32 D_807F5E60; extern s32 D_807F5E60;
@ -511,6 +531,8 @@ void func_8062F318(void);
void func_80659110(u8); void func_80659110(u8);
void func_8065CDA0(u8); void func_8065CDA0(u8);
void func_8065996C(s16);
/* /*
void func_8062F050(MapGeometryHeader *arg0) { void func_8062F050(MapGeometryHeader *arg0) {
s32 sp50; s32 sp50;
@ -543,13 +565,13 @@ void func_8062F050(MapGeometryHeader *arg0) {
D_807F5FEA = arg0->unk2C; D_807F5FEA = arg0->unk2C;
temp_v1 = &D_807F5DE0->unk0 + arg0->unk40; temp_v1 = &D_807F5DE0->unk0 + arg0->unk40;
D_807F5FD0 = *temp_v1 + 1; D_807F5FD0 = *temp_v1 + 1;
D_807F5FD4 = temp_v1 + 4; D_807F5FD4 = temp_v1 + 1;
temp_a0 = &D_807F5DE0->unk0 + arg0->unk44; temp_a0 = &D_807F5DE0->unk0 + arg0->unk44;
D_807F5FC8 = *temp_a0; D_807F5FC8 = *temp_a0;
D_807F5FCC = temp_a0 + 4; D_807F5FCC = temp_a0 + 1;
temp_a1 = &D_807F5DE0->unk0 + arg0->unk48; temp_a1 = &D_807F5DE0->unk0 + arg0->unk48;
D_807F5FC1 = *temp_a1; D_807F5FC1 = *temp_a1;
D_807F5FC4 = temp_a1 + 4; D_807F5FC4 = temp_a1 + 1;
D_807F5DE4 = &D_807F5DE0->unk0 + arg0->unk30; D_807F5DE4 = &D_807F5DE0->unk0 + arg0->unk30;
D_807F5DE8 = &D_807F5DE0->unk0 + arg0->unk38; D_807F5DE8 = &D_807F5DE0->unk0 + arg0->unk38;
D_807F5DEC = &D_807F5DE0->unk0 + arg0->unk34; D_807F5DEC = &D_807F5DE0->unk0 + arg0->unk34;
@ -608,6 +630,27 @@ s32 func_8062F388(s32 *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F3A0.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F3A0.s")
typedef struct {
s32 unk0;
union {
void *texturePointer;
s32 textureIndex;
};
} GlobalASMStruct_8062F3A0;
/*
void func_8062F3A0(GlobalASMStruct_8062F3A0 *arg0, GlobalASMStruct_8062F3A0 *arg1) {
while (arg0 != arg1) {
if ((arg0->unk0 >> 0x18) == 0xFD) {
if (((arg0->textureIndex << 4) >> 28) == 0) { // TODO: Bitfield?
arg0->texturePointer = getPointerTableFile(0x19, arg0->textureIndex, 1, 0);
}
}
arg0++;
}
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F420.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F420.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F538.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_2F550/func_8062F538.s")

View File

@ -425,6 +425,7 @@ void func_80636448(s32 arg0, s32 arg1, s32 arg2, s32 arg3, void *arg4) {
new->unk10 = arg4; new->unk10 = arg4;
} }
// Doable, small struct loop
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806364C4.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806364C4.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806365D0.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_36880/func_806365D0.s")

View File

@ -201,6 +201,20 @@ void func_80641A78(void) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641B00.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641B00.s")
/*
// TODO: Doable, just need to figure out object model2 behaviour pointer struct
void func_80641B00(s16 arg0, s16 arg1, s16 arg2) {
s32 sp1C;
arg0 = func_80659470(arg0);
arg1 = func_80659470(arg1);
D_807F6000[arg0].unk7C = malloc(0xA4);
func_8063DED0(D_807F6000[arg0].unk7C, &D_807F6000);
D_807F6000[arg0].unk7C->unk48 = arg2;
D_807F6000[arg0].unk7C->unkA0 = D_807F6000[arg1].unk7C->unkA0;
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641BCC.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641BCC.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641C98.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_80641C98.s")
@ -827,6 +841,7 @@ void func_8064B900(s32 arg0, s32 arg1, s16 arg2, s32 arg3) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8064BAF4.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_42630/func_8064BAF4.s")
// TODO: This probably returns the result of func_805FF0C8, if not, this is cursed
void func_8064BB4C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) { void func_8064BB4C(s32 arg0, s32 arg1, s32 arg2, s32 arg3) {
func_805FF0C8(); func_805FF0C8();
} }

View File

@ -306,6 +306,8 @@ void func_8066EBF4(Actor *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066F06C.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066F06C.s")
u8 func_8066F274(Actor *arg0, s16 *arg1, s16 *arg2, s8 *arg3);
u8 func_8066F1F8(s32 arg0, s16 arg1) { u8 func_8066F1F8(s32 arg0, s16 arg1) {
s16 sp1E; s16 sp1E;
s16 sp1C; s16 sp1C;
@ -319,12 +321,68 @@ u8 func_8066F1F8(s32 arg0, s16 arg1) {
return D_807FB546; return D_807FB546;
} }
void func_8066F250() { void func_8066F250(Actor *arg0, s16 *arg1, s16 *arg2, s8 *arg3) {
D_807FB604 = 0; D_807FB604 = 0;
func_8066F274(); func_8066F274(arg0, arg1, arg2, arg3);
} }
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066F274.s") void func_8066F400(Actor *);
u8 func_8066F4AC(Actor *, s16 *, s16 *);
u8 func_80670FA4(Actor *, s16 *, s16 *);
void func_80672C70(s32);
void func_80672E90(s32, s32, s32);
void func_80674E14(Actor *);
s8 func_80676ED0(Actor *, s16 *, s16 *);
extern u8 D_807FB547;
extern s8 D_807FB605;
extern u8 D_807FB606;
u8 func_8066F274(Actor *arg0, s16 *arg1, s16 *arg2, s8 *arg3) {
LedgeInfo *temp_v0;
u8 sp23;
u8 sp22;
sp23 = 0;
sp22 = 0;
temp_v0 = arg0->ledge_info_pointer;
if (arg0->object_properties_bitfield & 0x10000) {
*arg1 = 0;
*arg2 = 0xFFF;
}
if ((temp_v0 == NULL) || !(arg0->object_properties_bitfield & 0x10)) {
*arg3 = 0;
return 0;
}
func_80672E90(temp_v0->unk0, temp_v0->unk4, temp_v0->unk8);
func_80672C70(arg0->unk58);
D_807FB602 = 0;
D_807FB547 = 0;
D_807FB605 = 0;
D_807FB606 = 0;
if (arg0->noclip_byte & 0x20) {
func_80674E14(arg0);
}
if (arg0->noclip_byte & 8) {
sp23 = func_80670FA4(arg0, arg1, arg2);
sp22 = func_8066F4AC(arg0, arg1, arg2);
*arg3 = func_80676ED0(arg0, arg1, arg2);
} else {
*arg3 = 0;
}
func_8066F400(arg0);
arg0->unkFD = D_807FB547;
if (D_807FB606 != 0) {
arg0->unk64 |= 0x100;
} else {
arg0->unk64 &= ~0x100;
}
return sp23 != 0 || sp22 != 0;
// var_v1 = ;
// if (var_v1 == 0) {
// var_v1 = ;
// }
// return var_v1 & 0xFF;
}
void func_8066F400(Actor *arg0) { void func_8066F400(Actor *arg0) {
if (D_807FB602) { if (D_807FB602) {
@ -348,13 +406,16 @@ void func_8066F400(Actor *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FC0C.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FC0C.s")
// Jumptable
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FD6C.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FD6C.s")
// Scales and rotates a matrix on the stack
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FE08.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_8066FE08.s")
// Jumptable // Jumptable
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_80670548.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_80670548.s")
// Another matrix on the stack
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_80670C5C.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_70FD0/func_80670C5C.s")
void func_80670F04(LedgeInfo *arg0) { void func_80670F04(LedgeInfo *arg0) {

View File

@ -5,8 +5,49 @@
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672E90.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672E90.s")
/*
// TODO: Hmm, 64 bit nonsense?
extern s32 D_807FB5A8;
extern s32 D_807FB5AC;
extern s32 D_807FB5B0;
void func_80672E90(s32 arg0, s32 arg1, s32 arg2) {
D_807FB5A8 = arg0;
D_807FB5AC = arg1;
D_807FB5B0 = arg2;
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672EBC.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672EBC.s")
/*
// TODO: Hmm, 64 bit nonsense?
void func_80672F94(s16, s64);
extern s32 D_807FB5E0;
extern s32 D_807FB5E4;
extern s16 D_807FB5E8;
extern s16 D_807FB5F4;
void func_80672EBC(s64 arg0, s64 arg2) {
s64 sp10;
s64 sp8;
s16 var_a0;
s64 var_a2;
var_a2 = arg2;
sp8 = arg0;
sp10 = var_a2;
if ((arg0 > 0) && (var_a2 > 0)) {
var_a2 = (var_a2 / D_807FB5E4) * D_807FB5E8;
var_a0 = (arg0 / D_807FB5E0) + var_a2;
} else {
var_a0 = 0;
}
D_807FB5F4 = var_a0;
func_80672F94(var_a0, var_a2);
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672F94.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_80672F94.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_806730A4.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_77B90/func_806730A4.s")

View File

@ -35,7 +35,7 @@ void func_806136B4();
void func_8066E21C(LedgeInfo*); void func_8066E21C(LedgeInfo*);
// void func_80679200(s32, Actor *, s32, s32, s32, s32); // void func_80679200(s32, Actor *, s32, s32, s32, s32);
// Note: The pointer can be to any one of the above 10 structs, maybe more // Note: The pointer can be to any one of the above 10 structs, maybe more
void func_80679200(s32, s32, s32, s32, s32, void*); void func_80679200(Actor *arg0, Actor *arg1, s32 arg2, u8 arg3, s32 arg4, s32 arg5);
void func_8067AEFC(Actor*); void func_8067AEFC(Actor*);
void func_8068C2F8(void *); void func_8068C2F8(void *);
void func_8070DA74(void *); void func_8070DA74(void *);
@ -513,34 +513,64 @@ void func_806791EC(Actor *arg0, s32 arg1) {
arg0->unk138 &= ~arg1; arg0->unk138 &= ~arg1;
} }
// Doable ActorCollision *func_80679490(Actor *, s32, u8, s32, s32);
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_7CA80/func_80679200.s") s32 func_8067AF44(Actor* arg0);
// Doable // TODO: Clean this up
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_7CA80/func_80679290.s") void func_80679200(Actor *arg0, Actor *arg1, s32 arg2, u8 arg3, s32 arg4, s32 arg5) {
ActorCollision **sp28;
ActorCollision **var_v1;
ActorCollision *var_t0;
ActorCollision *temp_v0;
ActorCollision *var_v0;
var_t0 = NULL;
if (func_8067AF44(arg0) != 0) {
var_v0 = arg0->collision_queue_pointer;
var_v1 = &arg0->collision_queue_pointer;
if (var_v0 != NULL) {
do {
var_v1 = &var_v0->next;
var_t0 = var_v0;
var_v0 = var_v0->next;
} while (var_v0 != NULL);
}
sp28 = var_v1;
temp_v0 = func_80679490(arg1, arg2, arg3, arg4, arg5);
*var_v1 = temp_v0;
temp_v0->prev = var_t0;
}
}
typedef struct {
ActorCollision *unk0;
Actor *unk4;
s32 unk8;
} Struct807FBF18;
extern Struct807FBF18 D_807FBF18[];
extern s16 D_807FBFD8;
void func_80679290(Actor *arg0, s32 arg1, s32 arg2, u8 arg3, s32 arg4, s32 arg5, s32 arg6) {
if (D_807FBFD8 == 0x10) {
func_80732354(0xF, 0, 0, 0);
}
D_807FBF18[D_807FBFD8].unk0 = func_80679490(arg1, arg2, arg3, arg4, arg5);
D_807FBF18[D_807FBFD8].unk4 = arg0;
D_807FBF18[D_807FBFD8].unk8 = arg6;
D_807FBFD8++;
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_7CA80/func_80679334.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_7CA80/func_80679334.s")
// TODO: What type is this actually? ActorCollision *func_80679490(Actor * arg0, s32 arg1, u8 arg2, s32 arg3, s32 arg4) {
typedef struct { ActorCollision *temp_v0 = malloc(sizeof(ActorCollision));
s32 unk0;
u8 unk4;
u8 unk5;
s16 unk6;
s32 unk8;
s32 unkC;
s32 unk10;
s32 unk14;
} GlobalASMStruct39;
GlobalASMStruct39 *func_80679490(s32 arg0, s32 arg1, u8 arg2, s32 arg3, s32 arg4) {
GlobalASMStruct39 *temp_v0 = malloc(0x1C);
temp_v0->unk0 = arg1; temp_v0->unk0 = arg1;
temp_v0->unk4 = arg2; temp_v0->unk4 = arg2;
temp_v0->unk8 = arg0; temp_v0->collisionSource = arg0;
temp_v0->unkC = arg3; temp_v0->unkC = arg3;
temp_v0->unk10 = arg4; temp_v0->unk10 = arg4;
temp_v0->unk14 = 0; temp_v0->next = NULL;
return temp_v0; return temp_v0;
} }

View File

@ -58,6 +58,10 @@ void func_8068A4C8(s32 arg0, s32 arg1, s32 arg2) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F050/func_8068A508.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F050/func_8068A508.s")
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F050/func_8068A764.s") void func_8068A764(Actor *arg0, u8 arg1) {
arg0->unk146_s16 |= 1 << arg1;
}
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_8F050/func_8068A784.s") void func_8068A784(Actor *arg0, u8 arg1) {
arg0->unk146_s16 &= ~(1 << arg1);
}

View File

@ -112,10 +112,8 @@ void func_8069CD9C(void) {
} }
*/ */
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_9DD70/func_8069CF54.s") void func_80689114(s32, f32, f32, f32, s32, f32, Actor*);
/*
// TODO: Actor->unk124, not sure how it works...
void func_8069CF54(void) { void func_8069CF54(void) {
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) { if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
current_actor_pointer->unk130 = 0x3C; current_actor_pointer->unk130 = 0x3C;
@ -123,11 +121,10 @@ void func_8069CF54(void) {
func_80689114(0x83, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0, 1.0f, current_actor_pointer); func_80689114(0x83, current_actor_pointer->x_position, current_actor_pointer->y_position, current_actor_pointer->z_position, 0, 1.0f, current_actor_pointer);
} }
func_8069B908(); func_8069B908();
if ((!(current_actor_pointer->object_properties_bitfield & 0x10)) && (current_actor_pointer->unk124->unk8 == 1) && isFlagSet(0xFD, FLAG_TYPE_PERMANENT)) { if ((!(current_actor_pointer->object_properties_bitfield & 0x10)) && (current_actor_pointer->unk124->unk8_s32 == 1) && isFlagSet(0xFD, FLAG_TYPE_PERMANENT)) {
current_actor_pointer->unk132 = 4; current_actor_pointer->unk132 = 4;
} }
} }
*/
void func_8069D018(void) { void func_8069D018(void) {
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) { if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {

View File

@ -72,8 +72,39 @@ s32 func_8069EF50(s16 arg0, s16 arg1, s16 arg2, s16 arg3, f32 arg4) {
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A2F10/func_8069FDA0.s") #pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A2F10/func_8069FDA0.s")
// Doable, actor->unk124 pointer stuff extern f32 D_80750394;
#pragma GLOBAL_ASM("asm/nonmatchings/global_asm/code_A2F10/func_806A018C.s")
// TODO: Add to aaD union
typedef struct {
s32 unk0;
s32 unk4;
} AAD_806A018C;
void func_80665564(Actor*, f32);
void func_806A018C(void) {
AAD_806A018C *temp_s1;
temp_s1 = current_actor_pointer->additional_actor_data;
if (!(current_actor_pointer->object_properties_bitfield & 0x10)) {
current_actor_pointer->unkB8 = current_actor_pointer->unk124->unk0;
current_actor_pointer->unkEE = current_actor_pointer->unk124->unk4;
current_actor_pointer->y_velocity = current_actor_pointer->unk124->unk8;
current_actor_pointer->noclip_byte = 1;
temp_s1->unk0 = (rand() >> 0xF) % 70;
temp_s1->unk4 = (rand() >> 0xF) % 200;
}
func_8067ACB4(current_actor_pointer);
func_806651FC(current_actor_pointer);
func_80665564(current_actor_pointer, 0);
current_actor_pointer->y_velocity += D_80750394;
current_actor_pointer->z_rotation += temp_s1->unk4;
current_actor_pointer->x_rotation += temp_s1->unk0;
if ((current_actor_pointer->unkFC != 0) || ((current_actor_pointer->unk6A & 1) && !(current_actor_pointer->unk6C & 1))) {
func_806782C0(current_actor_pointer);
}
func_806319C4(current_actor_pointer, 0);
}
void func_806A02F0(void) { void func_806A02F0(void) {
func_806A018C(); func_806A018C();

View File

@ -147,8 +147,13 @@ void func_8002A254(JetpacStruct *arg0) {
func_8002A374(); func_8002A374();
} }
extern s32 D_8002E890;
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002A2AC.s") void func_8002A2AC(JetpacStruct *arg0) {
arg0->unk28 = 8;
arg0->unk4C = &D_8002E890;
func_8002A254(arg0);
}
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002A2DC.s") #pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002A2DC.s")
@ -246,8 +251,10 @@ void func_8002A944(JetpacStruct *arg0) {
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002ABDC.s") #pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002ABDC.s")
// Pretty doable, small loop over JetpacStruct array, some nonsense going on with the stack/temp vars though
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002AD8C.s") #pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002AD8C.s")
// Displaylist stuff
#pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002AE00.s") #pragma GLOBAL_ASM("asm/nonmatchings/jetpac/code_4FC0/func_8002AE00.s")
extern s8 D_80045BE0; extern s8 D_80045BE0;

View File

@ -65,6 +65,58 @@ s32 func_8002578C(s32 arg0, s32 arg1) {
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80025E9C.s") #pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80025E9C.s")
/*
void func_80025E9C(Actor *arg0) {
RaceAdditionalActorData *sp54;
Actor *sp40;
Actor *sp3C;
Actor *temp_s2;
Actor *temp_v0;
Actor *temp_v1_2;
Actor178 *temp_s0_2;
Actor178 *temp_s1;
Actor17C *temp_s1_2;
RaceAdditionalActorData *temp_s0;
void *temp_v1;
sp54 = arg0->additional_actor_data;
func_8002BBD0(2);
func_80677FA8(0x12E, 0x95);
temp_s2 = D_807FBB44;
temp_s0 = temp_s2->additional_actor_data;
func_8002BC2C(arg0, 1, temp_s2, temp_s0);
temp_s0->unk37 = 0;
temp_s0->unk27 = 0;
temp_s0->unk30 = arg0;
temp_s0->unk36 = 1;
temp_s0->unk28 = 0;
temp_s1 = temp_s2->unk178;
temp_v0 = func_807271F4(1, 0, 0, 0, 0, 0, 0);
sp40 = temp_v0;
temp_s1->unk30 = temp_v0;
temp_v1 = temp_v0->unk184;
temp_v1->unk4 = temp_s0;
temp_v1->unk0 = temp_s2;
func_80677FA8(0x130, 0);
temp_v1_2 = D_807FBB44;
temp_s1->unk34 = temp_v1_2;
temp_s0_2 = sp40->unk178;
sp3C = temp_v1_2;
func_8002BC2C(arg0, 0, sp40, temp_s0_2);
temp_s0_2->unk37 = 0;
temp_s0_2->unk27 = 1;
temp_s0_2->unk30 = arg0;
temp_s0_2->unk36 = 0;
temp_s1_2 = sp40->unk17C;
temp_s1_2->unk30 = temp_s2;
temp_s1_2->unk34 = temp_v1_2;
temp_v1_2->RaaD->unk30 = arg0;
temp_v1_2->unk178->unk30 = temp_s2;
D_80750AC4 = 0;
sp54->unk25 = 1;
}
*/
extern void func_8002CFF0(); extern void func_8002CFF0();
void func_80025FDC() { void func_80025FDC() {
@ -126,6 +178,32 @@ void func_80026050(RaceStruct6 *arg0, RaceStruct6 *arg1, s32 arg2) {
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80026098.s") #pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80026098.s")
/*
f32 func_8000AC60(f32, f32);
f32 func_80612794(s16);
f32 func_80665E48(f32, f32, f32, f32);
extern f64 D_8002FDD8;
extern f64 D_8002FDE0;
extern f64 D_8002FDE8;
void func_80026098(void *arg0, void *arg1) {
s16 sp2E;
f32 sp24;
f32 temp_f14;
f32 temp_f2;
f32 temp_f2_2;
sp2E = (func_80665E48(arg0->unk0, arg0->unk8, arg1->unk0, arg1->unk8) * 2048.0) / D_8002FDD8;
temp_f2 = arg1->unk8 - arg0->unk8;
temp_f14 = arg1->unk0 - arg0->unk0;
sp24 = current_actor_pointer->unkB8 * D_8002FDE0 * func_8000AC60((temp_f2 * temp_f2) + (temp_f14 * temp_f14), temp_f14);
current_actor_pointer->x_position = (func_80612794(sp2E) * sp24) + arg1->unk0;
current_actor_pointer->z_position = (func_80612790(sp2E) * sp24) + arg1->unk8;
temp_f2_2 = current_actor_pointer->y_position;
current_actor_pointer->y_position = ((arg0->unk4 - temp_f2_2) * D_8002FDE8) + temp_f2_2;
}
*/
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_800261E0.s") #pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_800261E0.s")
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80026354.s") #pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80026354.s")
@ -173,7 +251,27 @@ void func_80027AF8(RaceStruct3 *arg0, s8 arg1) {
arg0->unk8 = 0.0f; arg0->unk8 = 0.0f;
} }
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80027B30.s") s32 func_806119A0(void);
void func_80027B30(RaceStruct3 *arg0) {
switch (arg0->unk0) {
case 0:
arg0->unk1++;
break;
case 1:
if ((u8)func_806119A0() >= 0x80U) {
arg0->unk1++;
} else {
arg0->unk1--;
}
break;
case 2:
arg0->unk1--;
break;
}
arg0->unk8 = 0.0f;
}
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80027BD0.s") #pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_80027BD0.s")
@ -527,6 +625,7 @@ void func_8002DC24(void) {
#pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_8002DCF0.s") #pragma GLOBAL_ASM("asm/nonmatchings/race/code_0/func_8002DCF0.s")
typedef struct RaceStruct14 { typedef struct RaceStruct14 {
s32 unk0; s32 unk0;
s32 unk4; s32 unk4;
@ -545,6 +644,8 @@ typedef struct RaceAdditionalActorData3 {
u8 unk8; // Used u8 unk8; // Used
} RaceAdditionalActorData3; } RaceAdditionalActorData3;
void func_8002DCF0(RaceStruct14 *arg0, s32 arg1);
/* /*
// TODO: Doable, pretty close // TODO: Doable, pretty close
void func_8002DCF0(RaceStruct14 *arg0, s32 arg1) { void func_8002DCF0(RaceStruct14 *arg0, s32 arg1) {
@ -759,16 +860,16 @@ typedef struct RaceStruct13 {
u16 unk3C; u16 unk3C;
} RaceStruct13; } RaceStruct13;
s32 func_8002F36C(s32, s32); void func_8002F36C(s32, s32);
s32 func_8002E9AC(u8); s32 func_8002E9AC(s32);
/* /*
// TODO: Regalloc, boo // TODO: Regalloc, boo
void func_8002F420(RaceStruct13 *arg0, RaceStruct13 *arg1) { void func_8002F420(RaceStruct13 *arg0, RaceStruct13 *arg1) {
if (arg1->unk8) { if (arg1->unk8) {
if (arg0->unk3A == arg0->unk3C) { if (arg0->unk3C == arg0->unk3A) {
u8 temp2 = arg1->unk4[arg0->unk3C] & 0xFF; u8 temp2 = arg1->unk4[arg0->unk3C] & 0xFF;
s32 temp = func_8002E9AC(temp2); s32 temp = func_8002E9AC(temp2); // TODO: This might take 2 params
func_8002DCF0(temp, 0); func_8002DCF0(temp, 0);
func_8002F36C(arg0, arg1); func_8002F36C(arg0, arg1);
} }