Skip to content

Commit 0afcaf3

Browse files
authored
fragment27 (#167)
1 parent 3739c85 commit 0afcaf3

15 files changed

+6681
-88
lines changed

include/variables.h

+4
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,10 @@ extern u8 D_4007AD0[];
162162
extern u8 D_4007B18[];
163163
extern u8 D_4007B60[];
164164
extern u8 D_4007BA8[];
165+
extern u8 D_4004448[];
166+
extern u8 D_4004FB8[];
167+
168+
165169

166170
extern u8 D_800818E0[0x20];
167171

linker_scripts/us/symbol_addrs.txt

+2
Original file line numberDiff line numberDiff line change
@@ -386,3 +386,5 @@ D_04005C48 = 0x04005C48;
386386
D_04005F70 = 0x04005F70;
387387
D_04006298 = 0x04006298;
388388
D_040065C0 = 0x040065C0;
389+
D_4004448 = 0x4004448;
390+
D_4004FB8 = 0x4004FB8;

linker_scripts/us/undefined_syms.ld

+2
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,5 @@ D_04005C48 = 0x04005C48;
3434
D_04005F70 = 0x04005F70;
3535
D_04006298 = 0x04006298;
3636
D_040065C0 = 0x040065C0;
37+
D_4004448 = 0x4004448;
38+
D_4004FB8 = 0x4004FB8;

src/1AB70.h

+22-1
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,34 @@
22
#define _1AB70_H_
33

44
#include "global.h"
5+
#include "6BC0.h"
6+
#include "29BA0.h"
57

68
typedef struct unk_func_88201DA0_034_008 {
79
/* 0x00 */ char unk00[0x4];
810
} unk_func_88201DA0_034_008; // size >= 0x4
911

12+
typedef struct unk_func_8001B1FC {
13+
/* 0x00 */ s16 unk_00;
14+
/* 0x02 */ char unk02[0x2];
15+
/* 0x04 */ s16 unk_04;
16+
/* 0x06 */ s16 unk_06;
17+
/* 0x08 */ s16 unk_08;
18+
/* 0x0A */ s16 unk_0A;
19+
/* 0x0C */ s16 unk_0C;
20+
/* 0x0E */ char unk0E[0x6];
21+
/* 0x14 */ s32 unk_14;
22+
/* 0x18 */ char unk18[0x4];
23+
/* 0x1C */ unk_D_86002F58_004_000_010* unk_1C;
24+
/* 0x20 */ char unk20[0x8];
25+
/* 0x28 */ unk_D_80068BB0* unk_28;
26+
/* 0x2C */ unk_D_80068BB0* unk_2C;
27+
} unk_func_8001B1FC; // size = 0x30
28+
1029
void func_8001B058(void);
1130
void func_8001B0DC(unk_func_88201DA0_034_008*, s32, s32);
12-
31+
unk_func_8001B1FC* func_8001B1FC(unk_D_86002F58_004_000_010*, s32, s32, s32, s32, s32, s32, u8*);
32+
void func_8001B2D8(unk_func_8001B1FC* arg0, unk_func_80026268_arg0* arg1, s32 arg2);
33+
u8* func_8001B9D4(void*);
1334

1435
#endif // _1AB70_H_

src/20470.h

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ extern Gfx D_8006F798[];
1919

2020
void func_80020460(s32, s32, s32, s32, u16);
2121
void func_8002053C(s32 arg0, s32 arg1, s32 arg2, s32 arg3, Color_RGB8*, Color_RGB8*);
22+
void func_80020B88(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4);
2223
void func_80021920(void);
2324

2425

src/2E460.h

+7-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define _2E460_H_
33

44
#include "global.h"
5+
#include "29BA0.h"
56

67
typedef struct unk_func_8002D860 {
78
/* 0x00 */ char unk00[0x8];
@@ -21,7 +22,10 @@ typedef struct unk_func_8820E99C_030_030 {
2122
} unk_func_8820E99C_030_030; // size = 0x14
2223

2324
typedef struct unk_D_80072B00 {
24-
/* 0x00 */ char unk00[5];
25+
/* 0x00 */ char unk00[2];
26+
/* 0x02 */ u8 unk_02;
27+
/* 0x03 */ u8 unk_03;
28+
/* 0x04 */ char unk04[1];
2529
/* 0x05 */ u8 unk_05;
2630
} unk_D_80072B00; // size = 0x6
2731

@@ -37,7 +41,7 @@ void func_8002D860(unk_func_8002D860*, s32);
3741
void func_8002D8C8(unk_func_88500020*, s32, s32);
3842
s32 func_8002DF68(unk_func_8830867C_044_038_030*, s32);
3943
s32 func_8002EC08(s32);
40-
s32 func_8002ECDC(s32);
44+
s32 func_8002ECDC(unk_func_80026268_arg0*);
4145
s32 func_8002E0F4(unk_func_8820E99C_030_030*);
4246
void func_8002E5A0(s32, s32, s32, s32);
4347
void func_8002E8E4(s32, s32, s32, s32);
@@ -46,7 +50,7 @@ s32 func_8002EE1C(s32, s32, s32);
4650
void func_8002EE78(void);
4751
void func_8002EEA8(OSMesg);
4852
ret_func_8002ED08* func_8002ED08(s32);
49-
s32 func_8002ED78(u8*, s32);
53+
s32 func_8002ED78(unk_func_80026268_arg0*, s32);
5054
s32 func_8002EDEC(s32);
5155
void func_8002EF18(s32*);
5256
void func_8002EF44(void);

src/fragments/24/fragment24.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,8 @@ typedef struct unk_func_8830867C_054 {
383383
/* 0x08 */ unk_func_88001300_000* unk_08;
384384
/* 0x0C */ s32 unk_0C;
385385
/* 0x10 */ s32 unk_10;
386-
} unk_func_8830867C_054; // size >= 0x14
386+
/* 0x14 */ unk_func_88001300_000* unk_14;
387+
} unk_func_8830867C_054; // size = 0x18
387388

388389
typedef struct unk_func_8830867C_02C_0E4 {
389390
/* 0x00 */ s32 unk_00;
@@ -482,7 +483,6 @@ typedef struct unk_func_8830867C {
482483
/* 0x4C */ unk_func_8830867C_04C* unk_4C;
483484
/* 0x50 */ unk_func_889000C4* unk_50;
484485
/* 0x54 */ unk_func_8830867C_054 unk_54;
485-
/* 0x68 */ unk_func_88001300_000* unk_68;
486486
/* 0x6C */ s32 unk_6C;
487487
/* 0x70 */ char** unk_70;
488488
/* 0x74 */ char** unk_74;

src/fragments/24/fragment24_1CEA00.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3068,7 +3068,7 @@ void func_8830867C(unk_func_8830867C* arg0, s32 arg1, s32 arg2, MemoryPool* arg3
30683068
// clang-format off
30693069
arg0->unk_54.unk_00 = 0x38; arg0->unk_54.unk_02 = 0x4E;
30703070
// clang-format on
3071-
arg0->unk_68 = sp88;
3071+
arg0->unk_54.unk_14 = sp88;
30723072
arg0->unk_6C = 0;
30733073
arg0->unk_70 = arg6;
30743074
arg0->unk_74 = D_8831A4D0;

src/fragments/25/fragment25.c

+10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
#include "fragment25.h"
22
#include "src/2E460.h"
33

4+
extern unk_D_88400138 D_88400138[];
5+
/*
6+
static unk_D_88400138 D_88400138[] = {
7+
{ 0x00000000, { 0xFF, 0xFF, 0xFF, 0xFF } }, { 0x00000001, { 0x4D, 0x4D, 0x4D, 0xFF } },
8+
{ 0x00000002, { 0x9F, 0x91, 0xE8, 0xFF } }, { 0x00000003, { 0x96, 0x50, 0xFF, 0xFF } },
9+
{ 0x00000004, { 0xF0, 0x5A, 0x46, 0xFF } }, { 0x00000005, { 0x85, 0xD5, 0xF1, 0xFF } },
10+
{ 0x00000006, { 0xFF, 0xFF, 0x00, 0xFF } },
11+
};
12+
*/
13+
414
extern unk_D_88400138 D_88400138[];
515
/*
616
static unk_D_88400138 D_88400138[] = {

src/fragments/25/fragment25.h

+8
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,23 @@
22
#define _FRAGMENT25_H_
33

44
#include "global.h"
5+
#include "29BA0.h"
6+
7+
typedef struct unk_D_88400100 {
8+
/* 0x00 */ s32 unk_00;
9+
/* 0x04 */ Color_RGBA8 unk_04;
10+
} unk_D_88400100; // size = 0x8
511

612
typedef struct unk_D_88400138 {
713
/* 0x00 */ s32 unk_00;
814
/* 0x04 */ Color_RGBA8 unk_04;
915
/* 0x08 */ Color_RGBA8 unk_08;
1016
} unk_D_88400138; // size = 0xC
1117

18+
typedef unk_D_88400100* (*func8840007C)(unk_func_80026268_arg0*);
1219
typedef unk_D_88400138* (*func884000C4)(s32);
1320

21+
unk_D_88400100* func_8840007C(unk_func_80026268_arg0*);
1422
unk_D_88400138* func_884000C4(s32);
1523

1624
#endif // _FRAGMENT25_H_

src/fragments/26/fragment26.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -3306,7 +3306,7 @@ void func_8850CE80(unk_func_8850CD44* arg0, s32 arg1) {
33063306
}
33073307
}
33083308

3309-
void func_8850CF00(unk_func_8850CD44* arg0, s32 arg1) {
3309+
void func_8850CF00(unk_func_8850CD44* arg0, Controller* arg1) {
33103310
s32 temp_v0;
33113311
s32 var_s0 = 0;
33123312

src/fragments/26/fragment26.h

+113-15
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,18 @@
1212

1313
struct unk_func_88001300;
1414
struct unk_func_88001300_000;
15+
struct unk_func_88001300_000_000;
1516
struct unk_func_88001300_03C;
1617
struct unk_func_88203ED8;
1718
struct unk_func_88203ED8_064;
1819
struct unk_func_882025E0;
20+
struct unk_func_8850CD44;
21+
struct unk_func_8830867C_02C_048_000;
22+
struct unk_func_8850BD40;
1923

2024
typedef s32 (*unk_func_88001300_018)(struct unk_func_88001300_000*, s32, s32);
2125
typedef s32 (*unk_func_88001300_01C)(struct unk_func_88001300_000*);
22-
typedef s32 (*unk_func_88001300_020)(struct unk_func_88001300*, Controller*);
26+
typedef s32 (*unk_func_88001300_020)(struct unk_func_88001300_000*, Controller*);
2327
typedef void (*unk_func_88001300_024)(struct unk_func_88001300_000*, s32);
2428
typedef void (*unk_func_88001300_000_000_0C)(struct unk_func_88001300_000_000*, MemoryPool*);
2529

@@ -379,27 +383,121 @@ typedef struct unk_func_882025E0_1A9780 {
379383
/* 0x3C */ unk_func_882025E0_03C unk_3C[5];
380384
} unk_func_882025E0_1A9780; // size = 0x78
381385

386+
typedef struct unk_func_88205880_0098_008_040_02C {
387+
/* 0x00 */ unk_func_88001300_000 unk_00;
388+
/* 0x2C */ s32 unk_2C;
389+
} unk_func_88205880_0098_008_040_02C; // size = 0x30
390+
391+
typedef struct unk_func_88205880_0098_008_040_03C {
392+
/* 0x00 */ unk_func_88001300_000 unk_00;
393+
/* 0x2C */ s32 unk_2C;
394+
} unk_func_88205880_0098_008_040_03C; // size = 0x30
395+
396+
typedef struct unk_func_88205880_0098_008_040_05C {
397+
/* 0x00 */ unk_func_88001300_000 unk_00;
398+
/* 0x2C */ s32 unk_2C;
399+
/* 0x30 */ s32 unk_30;
400+
} unk_func_88205880_0098_008_040_05C; // size = 0x34
401+
402+
typedef struct unk_func_88205880_0098_008_040_06C {
403+
/* 0x00 */ unk_func_88001300_000 unk_00;
404+
/* 0x2C */ s32 unk_2C;
405+
/* 0x30 */ unk_func_88001300_000_010 unk_30;
406+
/* 0x34 */ unk_func_88001300_000_010 unk_34;
407+
} unk_func_88205880_0098_008_040_06C; // size = 0x38
408+
409+
typedef struct unk_func_88205880_0098_008_040 {
410+
/* 0x00 */ unk_func_88001300_000 unk_00;
411+
/* 0x2C */ unk_func_88205880_0098_008_040_02C* unk_2C[4];
412+
/* 0x3C */ unk_func_88205880_0098_008_040_03C* unk_3C[4];
413+
/* 0x4C */ unk_func_88205880_0098_008_040_06C* unk_4C[4];
414+
/* 0x5C */ unk_func_88205880_0098_008_040_05C* unk_5C[4];
415+
/* 0x6C */ unk_func_88205880_0098_008_040_06C* unk_6C[4];
416+
/* 0x7C */ unk_func_885012A4* unk_7C[4];
417+
} unk_func_88205880_0098_008_040; // size = 0x8C
418+
419+
typedef struct unk_func_88205880_0098_008_044 {
420+
/* 0x00 */ unk_func_88001300_000 unk_00;
421+
/* 0x2C */ unk_func_80026268_arg0* unk_2C;
422+
} unk_func_88205880_0098_008_044; // size = 0x30
423+
424+
typedef struct unk_func_88205880_0098_008_048 {
425+
/* 0x00 */ unk_func_88001300_000 unk_00;
426+
/* 0x2C */ unk_func_80026268_arg0* unk_2C;
427+
} unk_func_88205880_0098_008_048; // size = 0x30
428+
429+
typedef struct unk_func_88205880_0098_008_04C {
430+
/* 0x00 */ unk_func_88001300_000 unk_00;
431+
/* 0x2C */ unk_func_80026268_arg0* unk_2C;
432+
} unk_func_88205880_0098_008_04C; // size = 0x30
433+
434+
typedef struct unk_func_88205880_0098_008_050 {
435+
/* 0x00 */ unk_func_88001300_000 unk_00;
436+
/* 0x2C */ s32 unk_2C;
437+
/* 0x30 */ unk_func_80026268_arg0* unk_30;
438+
/* 0x34 */ unk_func_8001B1FC* unk_34;
439+
} unk_func_88205880_0098_008_050; // size = 0x38
440+
441+
typedef struct unk_func_88205880_0098_008_054 {
442+
/* 0x00 */ unk_func_88001300_000 unk_00;
443+
/* 0x2C */ unk_func_80026268_arg0* unk_2C;
444+
} unk_func_88205880_0098_008_054; // size = 0x30
445+
446+
typedef struct unk_func_88205880_0098_008_058 {
447+
/* 0x00 */ unk_func_88001300_000 unk_00;
448+
/* 0x2C */ s32 unk_2C;
449+
} unk_func_88205880_0098_008_058; // size = 0x30
450+
451+
typedef struct unk_func_88205880_0098_008_070 {
452+
/* 0x00 */ unk_func_88001300_03C unk_00;
453+
/* 0x40 */ s32 unk_40;
454+
} unk_func_88205880_0098_008_070; // size = 0x44
455+
382456
typedef struct unk_func_88205880_0098_008 {
383457
/* 0x00 */ unk_func_88001300_000 unk_00;
384-
/* 0x2C */ char unk2C[0x64];
458+
/* 0x2C */ unk_func_88001300_038* unk_2C;
459+
/* 0x30 */ unk_func_88001300_02C* unk_30;
460+
/* 0x34 */ unk_func_88001300_02C* unk_34;
461+
/* 0x38 */ unk_func_88001300_02C* unk_38;
462+
/* 0x3C */ unk_func_88001300_02C* unk_3C;
463+
/* 0x40 */ unk_func_88205880_0098_008_040* unk_40;
464+
/* 0x44 */ unk_func_88205880_0098_008_044* unk_44;
465+
/* 0x48 */ unk_func_88205880_0098_008_048* unk_48;
466+
/* 0x4C */ unk_func_88205880_0098_008_04C* unk_4C;
467+
/* 0x50 */ unk_func_88205880_0098_008_050* unk_50;
468+
/* 0x54 */ unk_func_88205880_0098_008_054* unk_54;
469+
/* 0x58 */ unk_func_88205880_0098_008_058* unk_58;
470+
/* 0x5C */ unk_func_88500994* unk_5C;
471+
/* 0x60 */ unk_func_88500994* unk_60;
472+
/* 0x64 */ unk_func_88500994* unk_64;
473+
/* 0x68 */ unk_func_8850182C* unk_68;
474+
/* 0x6C */ unk_func_88001300_03C* unk_6C;
475+
/* 0x70 */ unk_func_88205880_0098_008_070* unk_70;
476+
/* 0x74 */ unk_func_8850CD44* unk_74;
477+
/* 0x78 */ unk_func_80026268_arg0* unk_78;
478+
/* 0x7C */ s32 unk_7C;
479+
/* 0x80 */ s32 unk_80;
480+
/* 0x84 */ s32 unk_84;
481+
/* 0x88 */ s32 unk_88;
482+
/* 0x8C */ s32 unk_8C;
385483
} unk_func_88205880_0098_008; // size = 0x90
386484

387485
typedef struct unk_func_88205880_0098 {
388486
/* 0x00 */ s16 unk_00;
389487
/* 0x02 */ s16 unk_02;
390488
/* 0x04 */ MemoryPool* unk_04;
391489
/* 0x08 */ unk_func_88205880_0098_008* unk_08;
392-
/* 0x0C */ s32 unk_0C;
490+
/* 0x0C */ unk_func_80026268_arg0* unk_0C;
393491
/* 0x10 */ s32 unk_10;
394-
/* 0x14 */ char* unk_14;
395-
/* 0x18 */ char* unk_18;
396-
/* 0x1C */ char* unk_1C;
397-
/* 0x20 */ char* unk_20;
398-
/* 0x24 */ char* unk_24;
399-
/* 0x28 */ char* unk_28;
400-
/* 0x2C */ char* unk_2C;
401-
/* 0x30 */ char* unk_30;
402-
/* 0x34 */ char* unk_34;
492+
/* 0x14 */ unk_func_88001300_000* unk_14;
493+
/* 0x18 */ s32 unk_18;
494+
/* 0x1C */ char** unk_1C;
495+
/* 0x20 */ char** unk_20;
496+
/* 0x24 */ char** unk_24;
497+
/* 0x28 */ char** unk_28;
498+
/* 0x2C */ char** unk_2C;
499+
/* 0x30 */ char** unk_30;
500+
/* 0x34 */ char** unk_34;
403501
} unk_func_88205880_0098; // size = 0x38
404502

405503
typedef struct unk_func_88201DA0 {
@@ -608,7 +706,7 @@ typedef void (*func88500828)(unk_func_88001300*, s32, s32);
608706
typedef void (*func885008C4)(unk_func_88001300*);
609707
typedef void (*func8850093C)(s32, s32);
610708
typedef void (*func88500994)(unk_func_88500994*, s32, s32);
611-
typedef void (*func88500A3C)(unk_func_88500994*, unk_func_8850878C*);
709+
typedef void (*func88500A3C)(unk_func_88500994*, unk_func_88001300_000*);
612710
typedef void (*func88500A6C)(unk_func_88500994*, s32);
613711
typedef void (*func88500E34)(unk_func_88500E34*, s32, s32, s32, s32, u8*);
614712
typedef void (*func88500EE4)(unk_func_88500EE4*, s32, s32, s32, s32, u8*, Color_RGBA8, Color_RGBA8);
@@ -674,7 +772,7 @@ typedef void (*func8850CBA8)(unk_func_8830867C_02C_048*);
674772
typedef void (*func8850CC74)(unk_func_88001300_000*, unk_func_88001300_000*);
675773
typedef void (*func8850CD24)(unk_func_8830867C_02C_048*, s32);
676774
typedef void (*func8850CD44)(unk_func_8850CD44*, s32, MemoryPool*);
677-
typedef void (*func8850CF00)(unk_func_8850CD44*, s32);
775+
typedef void (*func8850CF00)(unk_func_8850CD44*, Controller*);
678776

679777
void func_88500020(unk_func_88500020*, s32, s32);
680778
void func_88500668(unk_func_88001300_000_000*, s32);
@@ -811,6 +909,6 @@ void func_8850CD24(unk_func_8830867C_02C_048*, s32);
811909
void func_8850CD44(unk_func_8850CD44*, s32, MemoryPool*);
812910
s32 func_8850CE30(unk_func_8850CD44* arg0, Controller* arg1);
813911
void func_8850CE80(unk_func_8850CD44* arg0, s32 arg1);
814-
void func_8850CF00(unk_func_8850CD44*, s32);
912+
void func_8850CF00(unk_func_8850CD44*, Controller* arg1);
815913

816914
#endif // _FRAGMENT26_H_

0 commit comments

Comments
 (0)