Skip to content

Commit 1f22b01

Browse files
authored
Merge pull request #142 from Kelebek1/fragment34
Fragment34
2 parents 3a5b0df + 944d476 commit 1f22b01

15 files changed

+5313
-999
lines changed

include/global.h

+19
Original file line numberDiff line numberDiff line change
@@ -394,4 +394,23 @@ typedef struct unk_D_864027C0 {
394394
/* 0x1C */ s16 unk_1C;
395395
} unk_D_864027C0; // size = 0x20
396396

397+
typedef struct arg1_func_81407874_014_000_010 {
398+
/* 0x00 */ u8 unk_00;
399+
/* 0x01 */ u8 unk_01;
400+
/* 0x02 */ u8 unk_02;
401+
/* 0x03 */ u8 unk_03;
402+
/* 0x04 */ u8 unk_04;
403+
/* 0x05 */ u8 unk_05;
404+
/* 0x06 */ u8 unk_06;
405+
/* 0x07 */ u8 unk_07;
406+
/* 0x08 */ u8 unk_08;
407+
/* 0x09 */ u8 unk_09;
408+
/* 0x0A */ u8 unk_0A;
409+
/* 0x0B */ u8 unk_0B;
410+
/* 0x0C */ u8 unk_0C;
411+
/* 0x0D */ u8 unk_0D;
412+
/* 0x0E */ u8 unk_0E;
413+
/* 0x0F */ u8 unk_0F;
414+
} arg1_func_81407874_014_000_010; // size >= 0x10
415+
397416
#endif

include/math.h

+5
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ typedef struct Vec3s {
4444
/* 0x4 */ s16 z;
4545
} Vec3s; // size = 0x6
4646

47+
typedef struct Vec2s {
48+
/* 0x0 */ s16 x;
49+
/* 0x2 */ s16 y;
50+
} Vec2s; // size = 0x4
51+
4752
typedef union Vec2s_s32 {
4853
struct {
4954
/* 0x0 */ s16 x;

linker_scripts/us/symbol_addrs.txt

+1
Original file line numberDiff line numberDiff line change
@@ -307,3 +307,4 @@ pad_D_879060B4 = 0x879060B4; // size:0x8
307307
D_879060E0 = 0x879060E0; // size:0xC
308308
D_87906100 = 0x87906100; // size:0xC
309309
D_87906110 = 0x87906110; // size:0xC
310+
D_8140E628 = 0x8140E628; // size:0x90

src/12D80.c

+6-34
Original file line numberDiff line numberDiff line change
@@ -1114,41 +1114,13 @@ Vec3f* func_80015390(unk_D_86002F58_004_000* arg0, s16 arg1, Vec3f* arg2) {
11141114
return NULL;
11151115
}
11161116

1117-
#ifdef NON_MATCHING
1118-
void func_80015400(Gfx* arg0, u8* arg1) {
1119-
/*
1120-
gDPSetCombineLERP(arg0++,
1121-
arg1[0], arg1[1], arg1[2], arg1[3], arg1[4], arg1[5], arg1[6],
1122-
arg1[7], arg1[8], arg1[9], arg1[10], arg1[11], arg1[12], arg1[13],
1123-
arg1[14], arg1[15]);
1124-
*/
1125-
1126-
gDPSetCombine(arg0++, GCCc0w0(arg1[0], arg1[2], arg1[4], arg1[6]) | GCCc1w0(arg1[8], arg1[10]),
1127-
GCCc0w1(arg1[1], arg1[3], arg1[5], arg1[7]) |
1128-
GCCc1w1(arg1[9], arg1[12], arg1[14], arg1[11], arg1[13], arg1[15]));
1129-
1130-
/*
1131-
arg0->words.w0 = ((((arg1->unk_0 & 0xF) << 0x14) |
1132-
((arg1->unk_2 & 0x1F) << 0xF) |
1133-
((arg1->unk_4 & 7) << 0xC) |
1134-
((arg1->unk_6 & 7) << 9) |
1135-
((arg1->unk_8 & 0xF) << 5) | (arg1->unk_A & 0x1F)) & 0xFFFFFF) |
1136-
0xFC000000;
1137-
arg0->words.w1 = (arg1->unk_1 << 0x1C) |
1138-
((arg1->unk_3 & 7) << 0xF) |
1139-
((arg1->unk_5 & 7) << 0xC) |
1140-
((arg1->unk_7 & 7) << 9) |
1141-
((arg1->unk_9 & 0xF) << 0x18) |
1142-
((arg1->unk_C & 7) << 0x15) |
1143-
((arg1->unk_E & 7) << 0x12) |
1144-
((arg1->unk_B & 7) << 6) |
1145-
((arg1->unk_D & 7) * 8) |
1146-
(arg1->unk_F & 7);
1147-
*/
1117+
void func_80015400(Gfx* arg0, arg1_func_81407874_014_000_010* arg1) {
1118+
gDPSetCombine(arg0++,
1119+
GCCc0w0(arg1->unk_00, arg1->unk_02, arg1->unk_04, arg1->unk_06) | GCCc1w0(arg1->unk_08, arg1->unk_0A),
1120+
1121+
GCCc0w1(arg1->unk_01, arg1->unk_03, arg1->unk_05, arg1->unk_07) |
1122+
GCCc1w1(arg1->unk_09, arg1->unk_0C, arg1->unk_0E, arg1->unk_0B, arg1->unk_0D, arg1->unk_0F));
11481123
}
1149-
#else
1150-
#pragma GLOBAL_ASM("asm/us/nonmatchings/12D80/func_80015400.s")
1151-
#endif
11521124

11531125
void func_8001550C(void) {
11541126
if (D_800ABB08 == 0) {

src/12D80.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ void func_8001533C(s32 arg0);
106106
void func_80015348(void);
107107
s32 func_80015360(void);
108108
Vec3f* func_80015390(unk_D_86002F58_004_000* arg0, s16 arg1, Vec3f* arg2);
109-
void func_80015400(Gfx* arg0, u8* arg1);
109+
void func_80015400(Gfx* arg0, arg1_func_81407874_014_000_010* arg1);
110110
void func_8001550C(void);
111111
void func_8001554C(void);
112112
void func_80015684(void);

src/fragments/3/fragment3_119FB0.c

+12-12
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,10 @@ void func_87901A28(unk_D_8140E728* arg0) {
136136
s16 sp2C;
137137
unk_D_8140E728_01C* temp_v0 = arg0->unk_1C;
138138
s16 temp_v1 = arg0->unk_24;
139-
unk_D_8140E728_01C_004* unk_04 = temp_v0->unk_04;
139+
unk_D_8140E728_01C_004_1* unk_04 = temp_v0->unk_04.a;
140140

141141
if ((temp_v0->unk_00 == 1) && (unk_04->unk_00 == 1)) {
142-
func_87901958(func_81407B5C(temp_v1 & 0xFF), arg0, 0);
142+
func_87901958(func_81407B5C(temp_v1), arg0, 0);
143143
} else {
144144
for (i = 0; i < sp2C; i++) {
145145
func_87901958(func_81407B3C(), arg0, i);
@@ -176,9 +176,9 @@ void func_87901B08(void) {
176176
}
177177

178178
void func_87901BB0(unk_D_8140E720* arg0) {
179-
D_8140E628.x = arg0->unk_28;
180-
D_8140E628.y = arg0->unk_28;
181-
D_8140E628.z = arg0->unk_28;
179+
D_8140E628.unk_00.x = arg0->unk_28;
180+
D_8140E628.unk_00.y = arg0->unk_28;
181+
D_8140E628.unk_00.z = arg0->unk_28;
182182
}
183183

184184
void func_87901BD4(unk_D_8140E720* arg0) {
@@ -218,7 +218,7 @@ void func_87901C98(void) {
218218

219219
gSPDisplayList(gDisplayListHead++, D_8140DB30);
220220

221-
func_8140C204(D_87906054, &gDisplayListHead);
221+
func_8140C204(D_87906054);
222222

223223
gSPDisplayList(gDisplayListHead++, D_8140DAE0);
224224
}
@@ -249,7 +249,7 @@ void func_87901F04(unk_D_8140E720* arg0) {
249249
break;
250250

251251
case 2:
252-
if (arg0->unk_30 < 0.0f) {
252+
if (arg0->unk_2C.y < 0.0f) {
253253
func_81408150(arg0);
254254
}
255255
break;
@@ -398,14 +398,14 @@ void func_87902608(unk_D_8140E720* arg0) {
398398
break;
399399

400400
case 2:
401-
if (arg0->unk_54 < 0.0f) {
401+
if (arg0->unk_50.y < 0.0f) {
402402
func_81408150(arg0);
403403
}
404404
break;
405405
}
406406

407407
if (func_8140819C(arg0) != 0) {
408-
if (arg0->unk_30 > 0.0f) {
408+
if (arg0->unk_2C.y > 0.0f) {
409409
func_81408328(arg0);
410410
} else {
411411
func_81408348(arg0);
@@ -469,7 +469,7 @@ void func_879027F0(unk_D_8140E720* arg0) {
469469

470470
if (func_81408368(arg0) != 0) {
471471
func_81409FD8(arg0);
472-
if (arg0->unk_30 < 0.0f) {
472+
if (arg0->unk_2C.y < 0.0f) {
473473
func_81408150(arg0);
474474
}
475475
}
@@ -527,7 +527,7 @@ void func_879029F0(unk_D_8140E720* arg0) {
527527

528528
if (func_81408368(arg0) != 0) {
529529
func_81409FD8(arg0);
530-
if (arg0->unk_30 < 0.0f) {
530+
if (arg0->unk_2C.y < 0.0f) {
531531
func_81408150(arg0);
532532
}
533533
}
@@ -560,7 +560,7 @@ void func_87902C9C(unk_D_8140E720* arg0) {
560560
break;
561561

562562
case 2:
563-
if (arg0->unk_54 < -2.5f) {
563+
if (arg0->unk_50.y < -2.5f) {
564564
func_81408150(arg0);
565565
}
566566
break;

src/fragments/3/fragment3_11BF90.c

-18
Original file line numberDiff line numberDiff line change
@@ -80,24 +80,6 @@ void func_879038AC(f32 arg0, f32 arg1, f32 arg2, f32 arg3, s16 arg4, s16 arg5, s
8080
sp34->unk_000.unk_000.unk_14 = 2;
8181
}
8282

83-
typedef struct arg1_func_87903D64_014 {
84-
/* 0x00 */ s32 unk_00;
85-
/* 0x04 */ unk_D_86002F34_000_014_004* unk_04;
86-
/* 0x08 */ unk_D_86002F34_000_014_004* unk_08;
87-
/* 0x0C */ unk_D_86002F34_000_014_004* unk_0C;
88-
/* 0x10 */ unk_D_86002F34_000_014_010* unk_10;
89-
/* 0x14 */ unk_D_86002F34_000_014_010* unk_14;
90-
/* 0x18 */ unk_D_86002F34_000_014_010* unk_18;
91-
} arg1_func_87903D64_014;
92-
93-
// Possibly unk_D_86002F34_alt7, unk_D_86002F34_alt8,
94-
// unk_D_86002F34_alt9 or unk_D_86002F34_alt2
95-
typedef struct arg1_func_87903D64 {
96-
/* 0x00 */ char unk00[0x14];
97-
/* 0x00 */ arg1_func_87903D64_014* unk_14;
98-
/* 0x18 */ Gfx* unk_18;
99-
} arg1_func_87903D64; // size >= 0x1C
100-
10183
#ifdef NON_MATCHING
10284
Gfx* func_87903920(Gfx* arg0, arg1_func_87903D64_014* arg1) {
10385
s32 sp38;

0 commit comments

Comments
 (0)