Skip to content

Commit c0ff344

Browse files
committed
Merge branch 'master' of github.com:pret/pokestadium
2 parents a4e5e01 + 52c8543 commit c0ff344

30 files changed

+6123
-184
lines changed

include/global.h

+9-6
Original file line numberDiff line numberDiff line change
@@ -418,14 +418,17 @@ typedef struct unk_D_86002F34_alt24 {
418418

419419
typedef void* (*func_unk_D_800ABE10)(s32, s32);
420420

421+
#define unk_D_86002F34_018_GFX_TYPE_1 1 // 8-bit per texel
422+
#define unk_D_86002F34_018_GFX_TYPE_2 2 // 16-bit per texel
423+
#define unk_D_86002F34_018_GFX_TYPE_3 3 // 32-bit per texel
424+
421425
typedef struct unk_D_86002F34_018 {
422426
/* 0x00 */ u8 unk_00;
423-
/* 0x01 */ u8 unk_01;
424-
/* 0x02 */ u8 unk_02;
425-
/* 0x03 */ u8 unk_03;
426-
/* 0x04 */ s16 unk_04;
427-
/* 0x06 */ s16 unk_06;
428-
/* 0x08 */ u8* unk_08;
427+
/* 0x01 */ u8 type;
428+
/* 0x02 */ s16 width;
429+
/* 0x04 */ s16 height;
430+
/* 0x06 */ s16 num_texels;
431+
/* 0x08 */ u8* texture;
429432
} unk_D_86002F34_018; // size = 0xC
430433

431434
typedef struct unk_D_86002F34_01C {

include/macros.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434

3535
#define ALIGN4(val) (((val) + 0x3) & ~0x3)
3636
#define ALIGN8(val) (((val) + 0x7) & ~0x7)
37-
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
37+
#define ALIGN16(val) (((val) + 0xFu) & ~0xFu)
3838
#define ALIGN64(val) (((val) + 0x3F) & ~0x3F)
3939

4040
#define DECR(x) ((x) == 0 ? 0 : --(x))

include/sections.h

+14
Original file line numberDiff line numberDiff line change
@@ -137,36 +137,50 @@ extern u8 fragment22_relocs_ROM_END[];
137137
extern u8 fragment23_TEXT_START[];
138138
extern u8 fragment23_ROM_START[];
139139
extern u8 fragment23_ROM_END[];
140+
extern u8 fragment23_relocs_ROM_END[];
140141

141142
// fragment 24
142143
extern u8 fragment24_TEXT_START[];
143144
extern u8 fragment24_ROM_START[];
144145
extern u8 fragment24_ROM_END[];
146+
extern u8 fragment24_relocs_ROM_END[];
145147

146148
// fragment 25
147149
extern u8 fragment25_TEXT_START[];
148150
extern u8 fragment25_ROM_START[];
149151
extern u8 fragment25_ROM_END[];
152+
extern u8 fragment25_relocs_ROM_END[];
150153

151154
// fragment 26
152155
extern u8 fragment26_TEXT_START[];
153156
extern u8 fragment26_ROM_START[];
154157
extern u8 fragment26_ROM_END[];
158+
extern u8 fragment26_relocs_ROM_END[];
155159

156160
// fragment 27
157161
extern u8 fragment27_TEXT_START[];
158162
extern u8 fragment27_ROM_START[];
159163
extern u8 fragment27_ROM_END[];
164+
extern u8 fragment27_relocs_ROM_END[];
160165

161166
// fragment 28
162167
extern u8 fragment28_TEXT_START[];
163168
extern u8 fragment28_ROM_START[];
164169
extern u8 fragment28_ROM_END[];
170+
extern u8 fragment28_relocs_ROM_END[];
165171

166172
// fragment 29
167173
extern u8 fragment29_TEXT_START[];
168174
extern u8 fragment29_ROM_START[];
169175
extern u8 fragment29_ROM_END[];
176+
extern u8 fragment29_relocs_ROM_END[];
177+
178+
extern u8 fragment29_misc_1_ROM_START[];
179+
extern u8 fragment29_misc_1_ROM_END[];
180+
extern u8 fragment29_misc_2_ROM_START[];
181+
extern u8 fragment29_misc_2_ROM_END[];
182+
extern u8 fragment29_misc_3_ROM_START[];
183+
extern u8 fragment29_misc_3_ROM_END[];
170184

171185
// fragment 30
172186
extern u8 fragment30_TEXT_START[];

linker_scripts/us/undefined_syms.ld

+6
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,9 @@ D_03042E00 = 0x03042E00;
2424
D_0303ED80 = 0x0303ED80;
2525
D_0303F580 = 0x0303F580;
2626
D_0303F180 = 0x0303F180;
27+
D_030451A0 = 0x030451A0;
28+
D_03046AA0 = 0x03046AA0;
29+
D_03045E20 = 0x03045E20;
30+
D_03049020 = 0x03049020;
31+
D_030483A0 = 0x030483A0;
32+
D_03047720 = 0x03047720;

src/19840.c

+6-6
Original file line numberDiff line numberDiff line change
@@ -31,18 +31,18 @@ void func_80018C40(unk_D_86002F34* arg0, arg1_func_80010CA8 arg1) {
3131

3232
for (i = 0; i < arg0->unk_24; i++, var_s2++) {
3333
if (var_s2->unk_00 == 0) {
34-
if (var_s2->unk_01 == 2) {
35-
u16* var_s1 = var_s2->unk_08;
34+
if (var_s2->type == unk_D_86002F34_018_GFX_TYPE_2) {
35+
u16* var_s1 = var_s2->texture;
3636

37-
for (j = 0; j < var_s2->unk_06; j++) {
37+
for (j = 0; j < var_s2->num_texels; j++) {
3838
var_s1[j] = func_80010CA8(var_s1[j], arg1);
3939
}
4040
}
4141

42-
if (var_s2->unk_01 == 3) {
43-
u32* var_s1 = var_s2->unk_08;
42+
if (var_s2->type == unk_D_86002F34_018_GFX_TYPE_3) {
43+
u32* var_s1 = var_s2->texture;
4444

45-
for (j = 0; j < var_s2->unk_06; j++) {
45+
for (j = 0; j < var_s2->num_texels; j++) {
4646
var_s1[j] = func_80010E20(var_s1[j], arg1);
4747
}
4848
}

src/22630.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,12 @@ void func_80023D60(s32);
9090
void func_80023F78(s32 arg0);
9191
void func_80024040(s32 arg0);
9292
s32 func_800240A0(void);
93+
s32 func_80024A48(s32, s32, s32);
94+
s32 func_80024EF4(void);
95+
s32 func_80024F00(s32);
9396
s32 func_80024FB0(s32 arg0);
9497
void func_800251B0(s32, s8*);
95-
98+
s32 func_80025370(s32);
99+
s32 func_8002539C(s32);
96100

97101
#endif // _6BC0_H_

src/26820.h

+37-11
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#define _26820_H_
33

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

78
typedef struct unk_func_8002A728 {
@@ -29,19 +30,44 @@ typedef struct unk_func_800281D4 {
2930
/* 0x10 */ char unk_10[16];
3031
} unk_func_800281D4; // size >= 0x20
3132

32-
void func_80026684(s32, s32);
33+
void func_80025C20(UNUSED MainPoolBlock* arg0, u32 arg1);
34+
u16 func_80025C80(u8* arg0, s32 arg1);
35+
s32 func_80025CBC(u8* arg0, s32 arg1);
36+
void func_80025D30(u8* arg0, s32 arg1, s32 arg2);
37+
void func_80025DA0(u8* arg0, u8* arg1, s32 arg2, s32 arg3);
38+
void func_80025DE4(u8* arg0, s32 arg1, s32 arg2);
39+
void func_80025E44(u8* arg0, s32 arg1, s32 arg2);
40+
void func_80025EA0(u8* arg0, s32 arg1, s32 arg2);
41+
void func_80025EF8(u8* arg0, s32 arg1, s32 arg2);
42+
void func_80025F50(s32 arg0, s32 arg1);
43+
void func_80026268(unk_func_80026268_arg0* arg0, unk_D_800AE4E8_004_1_000_010* arg1);
44+
void func_800262DC(unk_func_80026268_arg0* arg0, unk_D_800AE4E8_004_1_000_010* arg1);
45+
s32 func_80026338(s32 arg0, s32 arg1, s16 arg2);
46+
void func_800264DC(s32 arg0, s32 arg1, s16 arg2);
47+
void func_8002667C(void);
48+
void func_80026684(s32 arg0, s32 arg1);
49+
void func_8002685C(s32 arg0, s32 arg1);
50+
void func_80026A34(s32 arg0, s32 arg1);
51+
void func_80026C0C(s32 arg0, s32 arg1);
3352
void func_8002707C(s32 arg0, s32 arg1);
34-
void func_80027F24(unk_func_8002A728*);
35-
void func_80027F40(unk_func_8002A728*);
36-
void func_80027FA0(unk_func_80027FA0*, s16);
37-
void func_80028070(u16*);
38-
void func_800280D4(u8);
39-
void func_80028128(s32);
53+
s32 func_800270AC(s32 arg0);
54+
s32 func_80027108(s32 arg0);
55+
s16 func_800275E0(s32 arg0, s32 arg1);
56+
s32 func_8002797C(s32 arg0, s32 arg1, s32 arg2, void* arg3);
57+
s32 func_80027C24(s32 arg0, s32 arg1, s32 arg2, void* arg3);
58+
void func_80027F24(unk_func_8002A728* arg0);
59+
void func_80027F40(unk_func_8002A728* arg0);
60+
void func_80027FA0(unk_func_80027FA0* arg0, s16 arg1);
61+
void func_80028070(u16* arg0);
62+
void func_800280D4(u8 arg0);
4063
s32 func_8002816C(void);
4164
void func_8002817C(u8, u8);
42-
void func_800281D4(unk_func_800281D4*, unk_func_80026268_arg0*, u8);
43-
s32 func_80028320(unk_func_800281D4*, unk_func_80026268_arg0*);
44-
s32 func_800284B4(s16);
45-
s32 func_80028AFC(s16);
65+
s32 func_800284B4(s16 arg0);
66+
s32 func_8002873C(s16 arg0, u32 arg1);
67+
void func_80028840(void);
68+
void func_800288F4(void);
69+
void func_800289AC(void);
70+
void func_80028A74(void);
71+
s32 func_80028AFC(s16 arg0);
4672

4773
#endif // _26820_H_

src/29BA0.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ unk_D_800AE540_0004* func_80029074(void) {
7575
return D_800AE540.unk_0004;
7676
}
7777

78-
s16 func_80029080(void) {
78+
s32 func_80029080(void) {
7979
return D_80075674;
8080
}
8181

src/29BA0.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ s32 Game_DoCopyProtection(s32 state);
122122
s32 func_80029008(s32 arg0, u8* romStart, u8* romEnd, u32 arg3, u32 arg4);
123123
void func_80029048(s32 arg0, u8* arg1, u8* arg2, s32 arg3, s32 arg4);
124124
unk_D_800AE540_0004* func_80029074(void);
125-
s16 func_80029080(void);
125+
s32 func_80029080(void);
126126
void func_8002908C(s32 arg0);
127127
void func_800290B4(void);
128128
s32 func_800290E4(s16 arg0);

src/2E460.h

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

44
#include "global.h"
5+
#include "src/fragments/26/fragment26.h"
56

7+
void func_8002EE78(void);
8+
void func_8002EEA8(unk_func_88001300_034*);
9+
void func_8002EF18(s32*);
610
void func_8002EF44(void);
711

812
#endif // _2E460_H_

src/30640.c

+16-1
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,22 @@ void func_8002FA40(void) {
218218

219219
#pragma GLOBAL_ASM("asm/us/nonmatchings/30640/func_8003107C.s")
220220

221-
#pragma GLOBAL_ASM("asm/us/nonmatchings/30640/func_80031140.s")
221+
void func_80031140(unk_func_80026268_arg0* arg0, unk_D_83407AC8* arg1) {
222+
s32 i;
223+
224+
bzero(arg0, sizeof(unk_func_80026268_arg0));
225+
226+
arg0->unk_0E = arg1->unk_00;
227+
arg0->unk_00 = arg1->unk_02;
228+
229+
for (i = 0; i < 11; i++) {
230+
arg0->unk_30[i] = arg1->unk_03[i];
231+
}
232+
233+
for (i = 0; i < 11; i++) {
234+
arg0->unk_3B[i] = arg1->unk_0E[i];
235+
}
236+
}
222237

223238
#pragma GLOBAL_ASM("asm/us/nonmatchings/30640/func_80031204.s")
224239

src/30640.h

+3-5
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@
77
typedef struct unk_D_83407AC8 {
88
/* 0x00 */ u16 unk_00;
99
/* 0x02 */ u8 unk_02;
10-
/* 0x03 */ u8 unk_03[11];
11-
/* 0x0E */ u8 unk_0E;
12-
/* 0x0F */ u8 unk_0F;
13-
/* 0x10 */ u8 unk_10;
14-
} unk_D_83407AC8; // size >= 0x12
10+
/* 0x03 */ s8 unk_03[11];
11+
/* 0x0E */ s8 unk_0E[11];
12+
} unk_D_83407AC8; // size >= 0x1A
1513

1614
typedef struct unk_D_83402EE0_070 {
1715
/* 0x00 */ char unk00[0x1A];

src/3FB0.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -472,10 +472,10 @@ void func_80004200(u32 block_addr, u32 addr) {
472472
}
473473
}
474474

475-
s32 func_80004258(s32 id, u8* rom_start, u8* rom_end, s32 arg3) {
476-
s32 vaddr = func_80003DC4(rom_start, rom_end, arg3, 0);
475+
u8* func_80004258(s32 id, u8* rom_start, u8* rom_end, s32 arg3) {
476+
u8* vaddr = func_80003DC4(rom_start, rom_end, arg3, 0);
477477

478-
if ((vaddr != 0) && (id > 0)) {
478+
if ((vaddr != NULL) && (id > 0)) {
479479
Memmap_SetSegmentMap(id, vaddr, main_pool_get_block_dist(vaddr));
480480
main_pool_set_func(vaddr, id + 0x82000000, &func_80004200);
481481
}

src/3FB0.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ unk_func_800041C0* func_80004098(unk_func_800041C0* arg0, s32 arg1, s32 arg2);
101101
unk_func_800041C0* func_800040EC(unk_func_800041C0* arg0, u32 arg1, u32 offset, u32 size);
102102
void func_800041C0(s32 arg0, s32 arg1, s32 arg2);
103103
void func_80004200(u32 block_addr, u32 addr);
104-
s32 func_80004258(s32 id, u8* rom_start, u8* rom_end, s32 arg3);
104+
u8* func_80004258(s32 id, u8* rom_start, u8* rom_end, s32 arg3);
105105
MainPoolBlock* func_800042E0(s32 arg0, s32 arg1, s32 arg2, s32 arg3);
106106
void func_80004364(u32 base_addr, u32 addr);
107107
void func_800043BC(s32 arg0, Fragment* addr);

src/fragments/17/fragment17_161E60.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ static u32 D_86B0C4E0[] = {
385385
};
386386

387387
static unk_D_86002F34_018 D_86B0CCE0 = {
388-
0x03, 0x02, 0x00, 0x20, 0x0020, 0x0400, D_86B0C4E0,
388+
0x03, unk_D_86002F34_018_GFX_TYPE_2, 32, 32, 0x0400, D_86B0C4E0,
389389
};
390390

391391
static Gfx D_86B0CCF0[] = {
@@ -534,7 +534,7 @@ static u32 D_86B0CFE0[] = {
534534
0x29EB3A71, 0x4B357439, 0x6BF7532F, 0x532B4AA9, 0x3A273229, 0x326F3AB3, 0x2A2B195D, 0x1919299D,
535535
};
536536
static unk_D_86002F34_018 D_86B0D7E0 = {
537-
0x00, 0x02, 0x00, 0x20, 0x0020, 0x0400, D_86B0CFE0,
537+
0x00, unk_D_86002F34_018_GFX_TYPE_2, 32, 32, 0x0400, D_86B0CFE0,
538538
};
539539
static Gfx D_86B0D7F0[] = {
540540
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 0, 0x0000, G_TX_LOADTILE, 0, G_TX_MIRROR | G_TX_WRAP, 5, G_TX_NOLOD,

0 commit comments

Comments
 (0)