Skip to content

Commit 341cb72

Browse files
authored
Merge pull request #145 from Kelebek1/fragment13
Fragment13
2 parents 7f5b82f + 926038b commit 341cb72

File tree

3 files changed

+246
-14
lines changed

3 files changed

+246
-14
lines changed

src/fragments/13/fragment13.c

+226-11
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,236 @@
1-
#include "global.h"
1+
#include "fragment13.h"
2+
#include "src/12D80.h"
3+
#include "src/17300.h"
4+
#include "src/18140.h"
5+
#include "src/18480.h"
6+
#include "src/19840.h"
7+
#include "src/1C720.h"
8+
#include "src/1CF30.h"
9+
#include "src/20330.h"
10+
#include "src/20470.h"
11+
#include "src/3FB0.h"
12+
#include "src/6A40.h"
13+
#include "src/6BC0.h"
14+
#include "src/F420.h"
15+
#include "src/controller.h"
16+
#include "src/memory.h"
17+
#include "src/stage_loader.h"
218

3-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_86700020.s")
19+
static u32 D_86700840[] = {
20+
0x0C00FFFF, 0x05000000, 0x0B00001E, 0x00000000, 0x014000F0, 0x0000000F, 0x00000000, 0x00000000,
21+
0x05000000, 0x0D000000, 0x05000000, 0x0F000002, 0x05000000, 0x1F00FFFF, 0x00000000, 0x00000000,
22+
0x00000000, 0x00640064, 0x00640000, 0x05000000, 0x00000000, 0x8D000020, 0x06000000, 0x06000000,
23+
0x14000000, 0x002B0012, 0xFFFFFF32, 0x16FFFFFF, 0x0F000003, 0x05000000, 0x0A000000, 0x800AC840,
24+
0x06000000, 0x06000000, 0x06000000, 0x06000000, 0x01000000,
25+
};
426

5-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_86700050.s")
27+
static unk_D_86002F30* D_86700930;
28+
static unk_D_86002F34_000* D_86700934;
29+
static unk_D_86002F34_00C* D_86700938;
30+
static unk_D_86002F58_004_000 D_86700940;
631

7-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_867000FC.s")
32+
static s16 D_86700AA8;
33+
static s16 D_86700AAA;
34+
static s16 D_86700AAC;
835

9-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_86700254.s")
36+
void func_86700020(void) {
37+
Cont_StartReadInputs();
38+
Cont_ReadInputs();
39+
func_8001F730();
40+
}
1041

11-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_86700428.s")
42+
void func_86700050(void) {
43+
D_86700938 = D_86700934->unk_0C;
44+
D_86700AA8 = 0x100;
45+
D_86700AAA = 0;
46+
D_86700AAC = 0x78;
1247

13-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_8670047C.s")
48+
D_86700938->unk_24.near = 50.0f;
49+
D_86700938->unk_24.far = 6400.0f;
50+
func_80010354(&D_86700938->unk_60.at, &D_86700938->unk_60.eye, D_86700AAC, D_86700AA8, D_86700AAA);
51+
}
1452

15-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_867004E8.s")
53+
void func_867000FC(void) {
54+
if (gPlayer1Controller->buttonDown & 0x800) {
55+
D_86700AA8 += 256;
56+
}
1657

17-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_867005A8.s")
58+
if (gPlayer1Controller->buttonDown & 0x400) {
59+
D_86700AA8 -= 256;
60+
}
1861

19-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_86700648.s")
62+
if (gPlayer1Controller->buttonDown & 0x200) {
63+
D_86700AAA += 256;
64+
}
2065

21-
#pragma GLOBAL_ASM("asm/us/nonmatchings/fragments/13/fragment13/func_867006FC.s")
66+
if (gPlayer1Controller->buttonDown & 0x100) {
67+
D_86700AAA -= 256;
68+
}
69+
70+
if (gPlayer1Controller->buttonDown & 8) {
71+
D_86700AAC -= 10;
72+
}
73+
74+
if (gPlayer1Controller->buttonDown & 4) {
75+
D_86700AAC += 10;
76+
}
77+
78+
if (D_86700AA8 > 16128) {
79+
D_86700AA8 = 16128;
80+
}
81+
82+
if (D_86700AA8 < 0) {
83+
D_86700AA8 = 0;
84+
}
85+
86+
if (D_86700AAC < 50) {
87+
D_86700AAC = 50;
88+
}
89+
90+
func_80010354(&D_86700938->unk_60.at, &D_86700938->unk_60.eye, D_86700AAC, D_86700AA8, D_86700AAA);
91+
}
92+
93+
void func_86700254(s32 arg0) {
94+
Color_RGB8 sp2C = { 0, 0, 30 };
95+
Color_RGB8 sp28 = { 0, 0, 250 };
96+
97+
func_8002053C(0xC8, 0xBE, 0x5A, 0x20, &sp2C, &sp28);
98+
func_80020460(0x1E, 0xBE, 0xA0, 0x20, 0x141);
99+
func_8001F3F4();
100+
func_8001F470();
101+
func_8001EBE0(4, -2);
102+
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
103+
func_8001F36C(0x50, 0x50, 0xFF, 0xFF);
104+
func_8001F1E8(0x30, 0x14, "MINIGAME8 SAMPLE");
105+
func_8001F4C4();
106+
func_8001EBE0(2, -2);
107+
func_8001F324(0xFF, 0xC8, 0x32, 0xFF);
108+
109+
switch (arg0) {
110+
case 0:
111+
func_8001F1E8(0xCD, 0xC2, "OPENNING");
112+
break;
113+
114+
case 1:
115+
func_8001F1E8(0xCD, 0xC2, "PLAYING");
116+
break;
117+
118+
case 2:
119+
func_8001F1E8(0xCD, 0xC2, "ENDING");
120+
break;
121+
}
122+
123+
if (arg0 == 1) {
124+
func_8001F324(0xFF, 0xFF, 0xFF, 0xFF);
125+
func_8001F1E8(0x23, 0xC2, "CAMERA D:%d", D_86700AAC);
126+
func_8001F1E8(0x23, 0xCE, "X:%04hX Y:%04hX", D_86700AA8, D_86700AAA);
127+
}
128+
129+
func_8001F444();
130+
}
131+
132+
void func_86700428(s32 arg0) {
133+
func_800079C4();
134+
func_8000699C(&gDisplayListHead, 0xA6BF);
135+
func_80015348();
136+
func_80015094(D_86700934);
137+
func_86700254(arg0);
138+
func_80007778();
139+
}
140+
141+
void func_8670047C(void) {
142+
func_80006C6C(0x10);
143+
func_8001BD04(&D_86700940, 8);
144+
145+
while (func_80017514(&D_86700940) == 0) {
146+
func_86700020();
147+
func_86700428(0);
148+
}
149+
}
150+
151+
void func_867004E8(void) {
152+
s32 var_s1 = 1;
153+
s32 var_s0 = 0;
154+
155+
func_8001BD04(&D_86700940, 0);
156+
157+
while (var_s1 != 0) {
158+
func_86700020();
159+
func_867000FC();
160+
161+
var_s0++;
162+
163+
if (gPlayer1Controller->buttonPressed & 0x1000) {
164+
var_s1 = 0;
165+
}
166+
167+
if (var_s0 == 0x3C) {
168+
var_s0 = 0;
169+
func_80017788(&D_86700940);
170+
func_8001BD9C(&D_86700940, 0xA);
171+
}
172+
173+
func_86700428(1);
174+
}
175+
}
176+
177+
void func_867005A8(void) {
178+
s32 i;
179+
180+
func_8001BD04(&D_86700940, 0xB);
181+
func_8001BD9C(&D_86700940, 0xB);
182+
183+
while (func_80017514(&D_86700940) == 0) {
184+
func_86700020();
185+
func_86700428(2);
186+
}
187+
188+
func_80006CB4(0x1E);
189+
190+
for (i = 0; i < 30; i++) {
191+
func_86700020();
192+
func_86700428(2);
193+
}
194+
}
195+
196+
void func_86700648(void) {
197+
MemoryBlock* sp1C = func_80002D10(main_pool_get_available(), 0);
198+
199+
D_86700934 = func_80018B70(sp1C, &D_86700840);
200+
func_80002D60(sp1C);
201+
func_8001BB20();
202+
func_8001BB58(&D_86700940);
203+
func_8001987C();
204+
D_86700930 = func_80019D18(0x19);
205+
func_8001BC34(&D_86700940, 0, 0x19, D_86700930->unk_08->unk_00[0]);
206+
func_8001BD04(&D_86700940, 0);
207+
func_86700050();
208+
}
209+
210+
s32 func_867006FC(UNUSED s32 arg0, UNUSED s32 arg1) {
211+
unk_func_80007444* sp24;
212+
213+
main_pool_push_state('MINI');
214+
215+
func_80005E40(0x10000, 0);
216+
sp24 = func_80007444(0, 1, 3, 1, 2, 1);
217+
func_8001E94C(6, 0);
218+
219+
ASSET_LOAD(D_1000000, common_menu1_ui, 0);
220+
221+
FRAGMENT_LOAD(fragment31);
222+
func_80004454((((u32)D_8D000000 & 0x0FF00000) >> 0x14) - 0x10, _5C7A70_ROM_START, pokedex_area_model_ROM_START);
223+
224+
func_86700648();
225+
func_80007678(sp24);
226+
func_8670047C();
227+
func_867004E8();
228+
func_867005A8();
229+
func_800076C0();
230+
func_8001E9CC();
231+
func_80005EAC();
232+
233+
main_pool_pop_state('MINI');
234+
235+
return 0;
236+
}

src/fragments/13/fragment13.h

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#ifndef _FRAGMENT13_H_
2+
#define _FRAGMENT13_H_
3+
4+
#include "global.h"
5+
6+
void func_86700020(void);
7+
void func_86700050(void);
8+
void func_867000FC(void);
9+
void func_86700254(s32 arg0);
10+
void func_86700428(s32 arg0);
11+
void func_8670047C(void);
12+
void func_867004E8(void);
13+
void func_867005A8(void);
14+
void func_86700648(void);
15+
s32 func_867006FC(UNUSED s32 arg0, UNUSED s32 arg1);
16+
17+
#endif // _FRAGMENT13_H_

yamls/us/rom.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -874,10 +874,10 @@
874874
subsegments:
875875
- [0x143700, textbin, fragments/13/fragment13_header]
876876
- [0x143720, c, fragments/13/fragment13]
877-
- [0x143F40, data, fragments/13/fragment13_data]
878-
- [0x143FE0, rodata, fragments/13/fragment13_rodata]
877+
- [0x143F40, .data, fragments/13/fragment13]
878+
- [0x143FE0, .rodata, fragments/13/fragment13]
879879

880-
- {vram: 0x86700930, type: bss, name: fragments/13/fragment13_bss}
880+
- {vram: 0x86700930, type: .bss, name: fragments/13/fragment13}
881881

882882
- name: fragment13_relocs
883883
type: code

0 commit comments

Comments
 (0)