Digimon World 3 decomp
The European version, SLES_039.36
Loading...
Searching...
No Matches
title.h
Go to the documentation of this file.
1#ifndef STDWTITL_H
2#define STDWTITL_H
3
4/*
5 * STDWTITL.PRO: the title screen, the opening movies and a notice screen.
6 *
7 * STDWTITL_start looks at the low byte of the game mode:
8 * - 0 (MODE_TITLE): the title screen. A background with animated sprites,
9 * the two parts of the title sliding in, a glint, the logo and "PRESS
10 * START". Start shows the two options (new game, continue); Circle picks
11 * one, the screen fades out from its edges and the game goes on to
12 * MODE_NEW_GAME or MODE_CONTINUE. Ten seconds without Start go to
13 * MODE_OPENING instead.
14 * - 1-11 (1-12 in the European version): plays movie n-1 of STDWTITL_movies
15 * (PsyQ's streaming sample player with libpress), then goes on to that
16 * movie's next mode. The European version picks its last movie by the
17 * language.
18 * - 12 (13 in the European version): a still screen (SPLASH_FILE) that fades
19 * in, waits for Start or five minutes, fades out and goes on to MODE_OPENING.
20 */
21
22#include "engine/game.h"
23#include <libpress.h>
24
25/* The name of this overlay's copy of a function of src/shared/ */
26#define OVL_NAME(name) STDWTITL_##name
27
28/* Draw layers of the screens */
29#define STDWTITL_SPLASH_LAYER 0x100
30#define STDWTITL_TITLE_LAYER 0x1000
31
32/* Entries of the files, read with FILE_CACHE.getEntry: the discs number
33 their files differently */
34#if VERSION_US || VERSION_JP
35#define SPLASH_FILE 0x895
36#define STDWTITL_FILE_BACKGROUND 0x876
37#elif VERSION_EU
38#define SPLASH_FILE 0x8A6
39#define STDWTITL_FILE_BACKGROUND 0x887
40#endif
41#define SPLASH_SPRITES (SPLASH_FILE << 16)
42#define SPLASH_IMAGES (SPLASH_FILE << 16 | 1)
43#define STDWTITL_BACKGROUND(entry) (STDWTITL_FILE_BACKGROUND << 16 | (entry))
44
45/* The VRAM row of the title's sprites (SpriteDrawer.setTexture) */
46#if VERSION_US || VERSION_JP
47#define STDWTITL_TEXTURE_Y 0
48#elif VERSION_EU
49#define STDWTITL_TEXTURE_Y 0x100
50#endif
51
52/* Sounds (SOUND.playSound) */
53#define STDWTITL_TITLE_SOUND_BANK 0x47
54#define STDWTITL_TITLE_MUSIC MUSIC(STDWTITL_TITLE_SOUND_BANK, 0)
55
56/* The low byte of the game mode that shows the still screen, after the
57 movies' */
58#if VERSION_US
59#define STDWTITL_SPLASH_MODE 12
60#elif VERSION_EU || VERSION_JP
61#define STDWTITL_SPLASH_MODE 13
62#endif
63
64/* STDWTITL_tickScreen's children */
65typedef struct TitleModeChildren {
66 /* 0x0 */ struct TitleLoaderTask *title;
67 /* 0x4 */ struct MovieTask *movie;
68 /* 0x8 */ Task *splash;
70
71/* Mode 12 */
72typedef struct SplashTask {
74 /* 0x50 */ s16 fade; /* sprite frame: 15 is black, 0 fully visible */
75 /* 0x52 */ s16 timer;
77
78/*
79 * Movies: PsyQ's STR player. DecEnv is the sample's DECENV: two VLC buffers,
80 * two buffers for the decoded slices, and where the frames go in VRAM.
81 */
82typedef struct DecEnv {
83 /* 0x00 */ u_long *vlcbuf[2];
84 /* 0x08 */ s32 vlcid;
85 /* 0x0C */ u_long *imgbuf[2]; /* 16-bit pixels, as words for DecDCTout and LoadImage */
86 /* 0x14 */ s32 imgid;
87 /* 0x18 */ RECT rect[2];
88 /* 0x28 */ s32 rectid;
89 /* 0x2C */ RECT slice;
90 /* 0x34 */ INTERRUPT_SHARED s32 isdone; /* set by STDWTITL_onSliceDecoded, the MDEC's callback */
91} DecEnv;
92
93typedef struct MovieInfo {
94 /* 0x0 */ s32 file;
95 /* 0x4 */ u32 endFrame;
96 /* 0x8 */ s32 nextMode;
97} MovieInfo;
98
99typedef struct MovieTask {
101 /* 0x50 */ s32 movie;
102 /* 0x54 */ s32 nextMode;
103} MovieTask;
104
105typedef struct MoviePlayerTask {
107 /* 0x50 */ CdlLOC loc;
109
110/* The title screen */
116
117/* The logo: sprite 6, and sprites 3 and 5 animated once */
118typedef struct LogoAnim {
119 /* 0x0 */ s16 index;
120 /* 0x2 */ s16 frame;
121 /* 0x4 */ s32 done;
122} LogoAnim;
123
124typedef struct LogoTask {
126 /* 0x50 */ s32 skip; /* start fully shown */
127 /* 0x54 */ s32 visible;
128 /* 0x58 */ LogoAnim anims[2];
129 /* 0x68 */ s32 layerId;
130 /* 0x6C */ s32 depth;
131 /* 0x70 */ u8 pad[8]; /* never read or written */
132 /* 0x78 */ void (*show)(struct LogoTask *task);
133} LogoTask;
134
135/* A glint (sprite 4) played once, then sprite 2 lit */
136typedef struct GlintTask {
138 /* 0x50 */ s32 skip;
139 /* 0x54 */ s32 index;
140 /* 0x58 */ s32 frame;
141 /* 0x5C */ s32 lit;
142 /* 0x60 */ s32 layerId;
143 /* 0x64 */ s32 depth;
144 /* 0x68 */ u8 pad[8]; /* never read or written */
145 /* 0x70 */ void (*show)(struct GlintTask *task);
146} GlintTask;
147
148/* A part of the title that slides in from a side of the screen */
149typedef struct SlideTask {
151 /* 0x50 */ s32 skip;
152 /* 0x54 */ s32 steps;
153 /* 0x58 */ s32 x;
154 /* 0x5C */ s32 y;
155 /* 0x60 */ s32 layerId;
156 /* 0x64 */ s32 depth;
157 /* 0x68 */ u8 pad[8]; /* never read or written */
158 /* 0x70 */ void (*show)(struct SlideTask *task);
159} SlideTask;
160
161/* "PRESS START", then the two options */
162typedef struct MenuOption {
163 /* 0x0 */ s32 x;
164 /* 0x4 */ s32 y;
165 /* 0x8 */ u8 pad[8]; /* never read or written: TitleMenuTask.options[2] are 0x10 bytes apart */
166} MenuOption;
167
168typedef struct TitleMenuTask {
170 /* 0x50 */ s16 skip;
171 /* 0x52 */ s16 choice; /* 1: new game, 2: continue, 3: timed out */
172 /* 0x54 */ s16 timer;
173 /* 0x56 */ s16 showOptions;
174 /* 0x58 */ u8 showCursor;
175 /* 0x59 */ u8 blink;
176 /* 0x5A */ s16 selection; /* 0, 1: the options, 2: "PRESS START" */
177 /* 0x5C */ MenuOption options[2];
178 /* 0x7C */ u8 pad7C[0x10]; /* never read or written */
179 /* 0x8C */ s32 layerId;
180 /* 0x90 */ s32 depth;
181 /* 0x94 */ u8 pad94[8]; /* never read or written */
182 /* 0x9C */ void (*show)(struct TitleMenuTask *task);
183 /* 0xA0 */ void (*reset)(struct TitleMenuTask *task);
184 /* 0xA4 */ s32 (*getChoice)(struct TitleMenuTask *task);
186
187typedef struct Point {
188 /* 0x0 */ s32 x;
189 /* 0x4 */ s32 y;
190} Point;
191
192/* The fade out from the screen's edges once an option is chosen */
193typedef struct EdgeFadeTask {
195 /* 0x50 */ s32 done;
196 /* 0x54 */ s16 level;
197 /* 0x56 */ s16 time;
198 /* 0x58 */ void (*start)(struct EdgeFadeTask *task);
199 /* 0x5C */ s32 (*isDone)(struct EdgeFadeTask *task);
201
202typedef struct EdgeLine {
203 /* 0x0 */ s16 x1;
204 /* 0x2 */ s16 y1;
205 /* 0x4 */ s16 x2;
206 /* 0x6 */ s16 y2;
207} EdgeLine;
208
209/* The background, and its eight looping sprite animations */
210typedef struct Point16 {
211 /* 0x0 */ s16 x;
212 /* 0x2 */ s16 y;
213} Point16;
214
215typedef struct TitleBackgroundTask {
217 /* 0x50 */ s32 skip;
218 /* 0x54 */ AnimState anims[8];
219 /* 0x74 */ Point16 pos6;
220 /* 0x78 */ Point16 pos7;
221 /* 0x7C */ s32 layerId;
222 /* 0x80 */ s32 depth;
223 /* 0x84 */ u8 pad[0x10]; /* never read or written */
224 /* 0x94 */ void (*animate)(struct TitleBackgroundTask *task);
226
227typedef struct TitleChildren {
228 /* 0x00 */ EdgeFadeTask *fade;
229#if VERSION_US || VERSION_JP
230 /* 0x04 */ SlideTask *title0;
231 /* 0x08 */ SlideTask *title1;
232 /* 0x0C */ GlintTask *glint;
233#elif VERSION_EU
234 /* 0x04 */ GlintTask *glint;
235 /* 0x08 */ SlideTask *title1;
236 /* 0x0C */ SlideTask *title0;
237#endif
238 /* 0x10 */ LogoTask *logo;
239 /* 0x14 */ TitleMenuTask *menu;
242
243typedef struct TitleTask {
246 /* 0x54 */ s32 timer;
247 /* 0x58 */ s32 choice;
248 /* 0x5C */ s32 layerId;
249 /* 0x60 */ s32 depth;
250 /* 0x64 */ u8 pad[0xD8]; /* never read or written: createTask allocates 0x13C bytes */
251} TitleTask;
252
253typedef struct TitleImages {
254 /* 0x0 */ s32 images; /* TIM archive */
255 /* 0x4 */ s32 sprites; /* sprite bank */
257
258typedef struct TitleFuncs {
259 /* 0x00 */ void (*loadImages)(void);
260 /* 0x04 */ void (*startFade)(PanelAnim *fade, s32 fadeIn);
261 /* 0x08 */ s32 (*updateFade)(PanelAnim *fade);
262 /* 0x0C */ void (*startLerp)(MenuLerp *lerp, s32 from, s32 to, s32 duration);
263 /* 0x10 */ s32 (*updateLerp)(MenuLerp *lerp);
264} TitleFuncs;
265
266/* Executable symbols */
267/* libcd's flag that StCdInterrupt is pending: libcd sets it as a word, the
268 game reads and clears its low byte */
269extern u_char StCdIntrFlag;
270
271/* STDWTITL's data, in its order: data/stdwtitl.c's, data/title.c's and
272 data/movie.c's */
273extern RECT STDWTITL_screenRect;
274extern s16 STDWTITL_logoFrames[2][13];
277extern RECT STDWTITL_vramRect;
282#if VERSION_EU
283/* The menu's sprites (press start, new game, continue) for each language */
284extern u8 STDWTITL_menuSprites[][4];
285#endif
286
301
303extern u_long *STDWTITL_ringBuffer;
304extern u_short *STDWTITL_vlcTable;
305extern u_long *STDWTITL_vlcBuffer0;
306extern u_long *STDWTITL_vlcBuffer1;
307extern u_long *STDWTITL_imageBuffer0;
308extern u_long *STDWTITL_imageBuffer1;
312
313/* scene.c */
314void STDWTITL_tickSplashLoader(Task *task, SplashTask **splash);
316void STDWTITL_tickScreen(Task *task, TitleModeChildren *children);
317
318/* logo.c */
319void STDWTITL_drawLogo(LogoTask *task);
320void STDWTITL_tickLogo(LogoTask *task);
321void STDWTITL_showLogo(LogoTask *task);
323
324/* movie.c */
325void STDWTITL_clearVram(void);
326void STDWTITL_initDecEnv(DecEnv *dec, s16 x0, s16 y0, s16 x1, s16 y1);
327void STDWTITL_readStream(CdlLOC *loc);
328void STDWTITL_initStream(CdlLOC *loc, void (*callback)());
329u_long *STDWTITL_getNextFrame(DecEnv *dec);
331void STDWTITL_onSliceDecoded(void);
332void STDWTITL_waitFrameDecoded(DecEnv *dec, s32 mode);
335void STDWTITL_tickMovie(MovieTask *task, MoviePlayerTask **player);
337
338/* glint.c */
341void STDWTITL_showGlint(GlintTask *task);
343void STDWTITL_drawGlint(GlintTask *task);
344void STDWTITL_tickGlint(GlintTask *task);
346
347/* splash.c */
351
352/* title_loader.c */
356
357/* slides.c */
372
373/* menu.c */
380
381/* edge_fade.c */
383void STDWTITL_drawEdgeFade(s32 level);
388
389/* background.c */
396
397/* title.c */
400void STDWTITL_tickTitle(TitleTask *task, TitleChildren *children);
402void STDWTITL_loadTitleImages(void);
403void STDWTITL_startFade(PanelAnim *fade, s32 fadeIn);
405void STDWTITL_startLerp(MenuLerp *lerp, s32 from, s32 to, s32 frames);
407
408#endif /* STDWTITL_H */
signed int s32
Definition common.h:11
unsigned int u32
Definition common.h:12
signed short s16
Definition common.h:9
unsigned char u8
Definition common.h:8
#define INTERRUPT_SHARED
A variable that an interrupt's callback writes while the game waits for it in a loop: the original re...
Definition common.h:41
#define TASK_HEADER(Type)
Definition task.h:39
One frame of a sprite animation; frame 0xFF ends it (or loops it)
Definition gfx.h:296
Movies: PsyQ's STR player.
Definition title.h:82
u_long * vlcbuf[2]
Definition title.h:83
s32 isdone
set by STDWTITL_onSliceDecoded, the MDEC's callback
Definition title.h:90
RECT rect[2]
Definition title.h:87
s32 imgid
Definition title.h:86
RECT slice
Definition title.h:89
s32 rectid
Definition title.h:88
s32 vlcid
Definition title.h:84
u_long * imgbuf[2]
16-bit pixels, as words for DecDCTout and LoadImage
Definition title.h:85
The fade out from the screen's edges once an option is chosen.
Definition title.h:193
s32(* isDone)(struct EdgeFadeTask *task)
Definition title.h:199
s16 level
Definition title.h:196
void(* start)(struct EdgeFadeTask *task)
Definition title.h:198
s16 y1
Definition title.h:204
s16 x1
Definition title.h:203
s16 y2
Definition title.h:206
s16 x2
Definition title.h:205
A glint (sprite 4) played once, then sprite 2 lit.
Definition title.h:136
s32 lit
Definition title.h:141
s32 frame
Definition title.h:140
void(* show)(struct GlintTask *task)
Definition title.h:145
s32 index
Definition title.h:139
s32 skip
Definition title.h:138
s32 depth
Definition title.h:143
s32 layerId
Definition title.h:142
u8 pad[8]
never read or written
Definition title.h:144
The logo: sprite 6, and sprites 3 and 5 animated once.
Definition title.h:118
s16 index
Definition title.h:119
s32 done
Definition title.h:121
s16 frame
Definition title.h:120
u8 pad[8]
never read or written
Definition title.h:131
LogoAnim anims[2]
Definition title.h:128
s32 visible
Definition title.h:127
s32 layerId
Definition title.h:129
void(* show)(struct LogoTask *task)
Definition title.h:132
s32 skip
start fully shown
Definition title.h:126
s32 depth
Definition title.h:130
Moves a value towards a target in fixed point, as the menu overlays' startLerp and updateLerp do.
Definition menu.h:27
"PRESS START", then the two options
Definition title.h:162
s32 x
Definition title.h:163
s32 y
Definition title.h:164
u8 pad[8]
never read or written: TitleMenuTask.options[2] are 0x10 bytes apart
Definition title.h:165
s32 file
Definition title.h:94
s32 nextMode
Definition title.h:96
u32 endFrame
Definition title.h:95
CdlLOC loc
Definition title.h:107
s32 movie
Definition title.h:101
s32 nextMode
Definition title.h:102
Opens or closes a menu panel: level goes 0 -> ONE in duration frames (or back at twice the speed),...
Definition menu.h:18
The background, and its eight looping sprite animations.
Definition title.h:210
s16 x
Definition title.h:211
s16 y
Definition title.h:212
Definition title.h:187
s32 x
Definition title.h:188
s32 y
Definition title.h:189
A part of the title that slides in from a side of the screen.
Definition title.h:149
s32 x
Definition title.h:153
u8 pad[8]
never read or written
Definition title.h:157
s32 depth
Definition title.h:156
s32 skip
Definition title.h:151
s32 steps
Definition title.h:152
s32 layerId
Definition title.h:155
s32 y
Definition title.h:154
void(* show)(struct SlideTask *task)
Definition title.h:158
Mode 12.
Definition title.h:72
s16 fade
sprite frame: 15 is black, 0 fully visible
Definition title.h:74
s16 timer
Definition title.h:75
Any task, seen through its header.
Definition task.h:62
void(* animate)(struct TitleBackgroundTask *task)
Definition title.h:224
AnimState anims[8]
Definition title.h:218
u8 pad[0x10]
never read or written
Definition title.h:223
SlideTask * title1
Definition title.h:235
TitleBackgroundTask * background
Definition title.h:240
GlintTask * glint
Definition title.h:234
EdgeFadeTask * fade
Definition title.h:228
LogoTask * logo
Definition title.h:238
TitleMenuTask * menu
Definition title.h:239
SlideTask * title0
Definition title.h:236
s32(* updateLerp)(MenuLerp *lerp)
Definition title.h:263
s32(* updateFade)(PanelAnim *fade)
Definition title.h:261
void(* startFade)(PanelAnim *fade, s32 fadeIn)
Definition title.h:260
void(* loadImages)(void)
Definition title.h:259
void(* startLerp)(MenuLerp *lerp, s32 from, s32 to, s32 duration)
Definition title.h:262
s32 sprites
sprite bank
Definition title.h:255
s32 images
TIM archive.
Definition title.h:254
The title screen.
Definition title.h:111
s32 layerId
Definition title.h:179
s16 selection
0, 1: the options, 2: "PRESS START"
Definition title.h:176
void(* show)(struct TitleMenuTask *task)
Definition title.h:182
u8 showCursor
Definition title.h:174
s16 choice
1: new game, 2: continue, 3: timed out
Definition title.h:171
s32(* getChoice)(struct TitleMenuTask *task)
Definition title.h:184
u8 pad7C[0x10]
never read or written
Definition title.h:178
MenuOption options[2]
Definition title.h:177
void(* reset)(struct TitleMenuTask *task)
Definition title.h:183
u8 pad94[8]
never read or written
Definition title.h:181
s16 showOptions
Definition title.h:173
STDWTITL_tickScreen's children.
Definition title.h:65
struct MovieTask * movie
Definition title.h:67
Task * splash
Definition title.h:68
struct TitleLoaderTask * title
Definition title.h:66
u8 pad[0xD8]
never read or written: createTask allocates 0x13C bytes
Definition title.h:250
s32 depth
Definition title.h:249
s32 layerId
Definition title.h:248
s32 timer
Definition title.h:246
TitleLoaderTask * parent
Definition title.h:245
s32 choice
Definition title.h:247
void STDWTITL_drawTitle0Alt(SlideTask *task)
Draws the first part of the title (sprite 0) for the European version's language 0.
Definition slides.c:141
void STDWTITL_tickScreen(Task *task, TitleModeChildren *children)
The overlay's main task: by the low byte of the game mode, starts the title screen (0),...
Definition scene.c:40
s32 STDWTITL_movieFile
Definition movie.c:13
void STDWTITL_drawEdgeFade(s32 level)
Darkens the screen by level: four subtractive triangles from its centre to its edges,...
Definition edge_fade.c:15
GlintTask * STDWTITL_startGlintTask(s32 skip)
Creates the title screen's glint (task); skip: lit from the start.
Definition glint.c:151
u_long * STDWTITL_vlcBuffer1
Definition movie.c:9
void STDWTITL_drawTitle1Alt(SlideTask *task)
slides.c
Definition slides.c:6
s16 STDWTITL_glintFrames[]
Definition stdwtitl.c:44
u8 STDWTITL_menuSprites[][4]
The menu's sprites (press start, new game, continue) for each language.
Definition stdwtitl.c:51
AnimFrame STDWTITL_backgroundAnim7[]
Definition title.c:59
s32 STDWTITL_updateFade(PanelAnim *fade)
void STDWTITL_tickTitleLoader(TitleLoaderTask *task, TitleTask **title)
The title loader's task: waits for the title's sound bank, loads the title's images,...
AnimFrame STDWTITL_backgroundAnim1[]
Definition title.c:16
EdgeLine STDWTITL_edgeFadeLines[]
The screen's edges, from which it fades out.
Definition title.c:7
void STDWTITL_initStream(CdlLOC *loc, void(*callback)())
Resets the MDEC, has callback run for each decoded slice, sets up the ring buffer and starts streamin...
Definition movie.c:48
s32 STDWTITL_isEdgeFadeDone(EdgeFadeTask *task)
1 once the edge fade has ended (the task's isDone)
Definition edge_fade.c:57
TitleLoaderTask * STDWTITL_startTitleLoaderTask(void)
Creates the title loader (task) and starts loading the title's sound bank.
void STDWTITL_waitFrameDecoded(DecEnv *dec, s32 mode)
Waits until the MDEC has decoded the whole frame (switching buffers itself if it takes far too long);...
Definition movie.c:132
AnimFrame STDWTITL_backgroundAnim2[]
Definition title.c:21
u_short * STDWTITL_vlcTable
Definition movie.c:7
Point16 STDWTITL_background7Positions[]
Definition title.c:68
MovieTask * STDWTITL_startMovieTask(s32 movie)
Creates the task that plays STDWTITL_movies[movie].
Definition movie.c:275
AnimFrame STDWTITL_backgroundAnim4[]
Definition title.c:38
GlintTask * STDWTITL_startGlintAltTask(s32 skip)
Creates the title screen's glint (task) for the European version's language 0.
Definition glint.c:75
s16 STDWTITL_logoFrames[2][13]
The sprite frames of the logo's two animations; -1 ends each.
Definition stdwtitl.c:12
RECT STDWTITL_screenRect
STDWTITL's data, in its order: data/stdwtitl.c's, data/title.c's and data/movie.c's.
Definition stdwtitl.c:9
SlideTask * STDWTITL_startTitle0AltTask(s32 skip)
Creates the first part of the title (task) for the European version's language 0.
Definition slides.c:203
void STDWTITL_resetMenu(TitleMenuTask *task)
Back to waiting for Start on "PRESS START" (the task's reset), only while running; nothing in the ove...
Definition menu.c:193
s32 STDWTITL_decodeNextFrame(DecEnv *dec)
Takes the next movie frame and decodes its VLC data into the other VLC buffer; -1 if no frame came,...
Definition movie.c:85
s32 STDWTITL_updateLerp(MenuLerp *lerp)
void STDWTITL_tickTitle1(SlideTask *task)
The second part of the title: waits until shown, then slides in from the right in 10 steps (skip is n...
Definition slides.c:91
void STDWTITL_tickSplashLoader(Task *task, SplashTask **splash)
scene.c
Definition scene.c:8
void STDWTITL_drawGlint(GlintTask *task)
Draws the glint (sprite 4) while it plays, and sprite 2 once lit.
Definition glint.c:86
s32 STDWTITL_movieEnded
Definition movie.c:12
void STDWTITL_drawTitle0(SlideTask *task)
Draws the first part of the title (sprite 0)
Definition slides.c:214
AnimFrame STDWTITL_backgroundAnim5[]
Definition title.c:48
void STDWTITL_showTitle0(SlideTask *task)
Starts sliding in the first part of the title (the task's show), only while it waits.
Definition slides.c:196
SplashTask * STDWTITL_startSplashTask(void)
Creates the still screen (task)
Definition splash.c:111
RECT STDWTITL_vramRect
Definition stdwtitl.c:19
void STDWTITL_runTitleLoader(TitleLoaderTask *task, TitleTask **title)
title_loader.c
Definition title_loader.c:6
SlideTask * STDWTITL_startTitle1AltTask(s32 skip)
Creates the second part of the title (task) for the European version's language 0.
Definition slides.c:68
s32 STDWTITL_leaveTitle(TitleTask *task, TitleChildren *children)
title.c
Definition title.c:7
void STDWTITL_showTitle1(SlideTask *task)
Starts sliding in the second part of the title (the task's show), only while it waits.
Definition slides.c:61
void STDWTITL_showGlint(GlintTask *task)
Starts the glint (the task's show), only while it waits.
Definition glint.c:68
u_char StCdIntrFlag
libcd's flag that StCdInterrupt is pending: libcd sets it as a word, the game reads and clears its lo...
void STDWTITL_readStream(CdlLOC *loc)
Seeks the CD to loc and starts streaming the movie from there, retrying until it works.
Definition movie.c:33
DecEnv STDWTITL_decEnv
Definition movie.c:5
void STDWTITL_tickMoviePlayer(MoviePlayerTask *task)
The movie player's task: allocates its buffers and starts the movie, then shows a frame each update u...
Definition movie.c:149
s32 STDWTITL_stepTitle(TitleTask *task, TitleChildren *children)
Brings in the titles, the glint, the logo and the menu, then waits for an option; returns 1 once the ...
Definition title.c:52
AnimFrame STDWTITL_backgroundAnim6[]
Definition title.c:54
void STDWTITL_tickTitle1Alt(SlideTask *task)
The second part of the title for the European version's language 0: waits until shown,...
Definition slides.c:18
void STDWTITL_tickEdgeFade(EdgeFadeTask *task)
The edge fade's task: once started, darkens the screen from its edges over 30 frames and keeps it dar...
Definition edge_fade.c:63
MoviePlayerTask * STDWTITL_startMoviePlayerTask(s32 file, u32 endFrame)
Creates the movie player (task) for the movie in file, which ends on frame endFrame.
Definition movie.c:197
void STDWTITL_startFade(PanelAnim *fade, s32 fadeIn)
s32 STDWTITL_getEdgeFadeLevel(s32 time)
edge_fade.c
Definition edge_fade.c:6
s32 STDWTITL_stepLoopingAnimation(AnimState *anim, AnimFrame *frames, s32 depth)
background.c
Definition background.c:7
Task * STDWTITL_startSplashLoaderTask(void)
Creates the still screen's loader (task), for STDWTITL_SPLASH_MODE.
Definition scene.c:34
void STDWTITL_tickSplash(SplashTask *task)
The still screen's task: fades it in, waits 2 seconds, then for Start or five minutes,...
Definition splash.c:45
void STDWTITL_tickGlintAlt(GlintTask *task)
The glint's task for the European version's language 0: waits until shown, plays the glint's 12 frame...
Definition glint.c:25
s16 STDWTITL_glintAltFrames[]
Definition stdwtitl.c:43
void STDWTITL_drawSplash(SplashTask *task)
splash.c
Definition splash.c:7
SlideTask * STDWTITL_startTitle1Task(s32 skip)
Creates the second part of the title (task)
Definition slides.c:130
LogoTask * STDWTITL_startLogoTask(s32 skip)
Creates the title screen's logo (task); skip: shown complete from the start.
Definition logo.c:92
EdgeFadeTask * STDWTITL_startEdgeFadeTask(void)
Creates the fade out from the screen's edges (task), once an option is chosen.
Definition edge_fade.c:93
TitleFuncs STDWTITL_titleFuncs
Definition title.c:74
void STDWTITL_tickGlint(GlintTask *task)
The glint's task: waits until shown, plays the glint once (up to its last frame and back),...
Definition glint.c:107
void STDWTITL_startLerp(MenuLerp *lerp, s32 from, s32 to, s32 frames)
Point16 STDWTITL_background6Positions[]
Definition title.c:65
void STDWTITL_showMenu(TitleMenuTask *task)
Shows "PRESS START" (the task's show), only while it waits.
Definition menu.c:185
void STDWTITL_initDecEnv(DecEnv *dec, s16 x0, s16 y0, s16 x1, s16 y1)
Sets up the movie decoder: its VLC and slice buffers, and the two places in VRAM (x0,...
Definition movie.c:14
void STDWTITL_drawBackgroundSprites(TitleBackgroundTask *task)
Steps and draws the background's eight looping sprite animations; the last two at the positions picke...
Definition background.c:45
TitleImages STDWTITL_titleImages[]
The title's TIM archives and sprite banks; the European version picks one by the language.
Definition title.c:81
void STDWTITL_startEdgeFade(EdgeFadeTask *task)
Starts the fade out from the screen's edges (the task's start)
Definition edge_fade.c:50
void STDWTITL_drawTitle1(SlideTask *task)
Draws the second part of the title (sprite 1)
Definition slides.c:79
void STDWTITL_drawGlintAlt(GlintTask *task)
glint.c
Definition glint.c:6
void STDWTITL_tickBackground(TitleBackgroundTask *task)
The background's task: draws the background; once animated, also its eight sprite animations,...
Definition background.c:87
void STDWTITL_tickTitle0Alt(SlideTask *task)
The first part of the title for the European version's language 0: waits until shown,...
Definition slides.c:153
void STDWTITL_tickMenu(TitleMenuTask *task)
The menu's task: once shown, waits for Start on "PRESS START" (choice 3 after ten seconds),...
Definition menu.c:158
void STDWTITL_tickMovie(MovieTask *task, MoviePlayerTask **player)
A movie's task: picks the movie's file and next mode (the European version's last movie by the langua...
Definition movie.c:207
void STDWTITL_loadTitleImages(void)
Loads the title's images to VRAM: the sprites (by the language in the European version) and the backg...
Definition title.c:185
s32 STDWTITL_spriteBank
Definition title.c:72
void STDWTITL_drawBackground(TitleBackgroundTask *task)
Draws the title screen's background, from entries 0-2 of its file.
Definition background.c:29
u_long * STDWTITL_vlcBuffer0
Definition movie.c:8
Point STDWTITL_menuCursorPositions[]
Definition stdwtitl.c:48
u_long * STDWTITL_getNextFrame(DecEnv *dec)
Waits for the next movie frame in the ring buffer and returns it (NULL if none came); flags the movie...
Definition movie.c:58
void STDWTITL_drawMenu(TitleMenuTask *task)
menu.c
Definition menu.c:14
void STDWTITL_tickTitle0(SlideTask *task)
The first part of the title: waits until shown, then slides in from the left in 10 steps (skip is not...
Definition slides.c:226
s32 STDWTITL_getMenuChoice(TitleMenuTask *task)
The menu's choice (the task's getChoice): 0 none yet, 1 new game, 2 continue, 3 timed out.
Definition menu.c:204
MovieInfo STDWTITL_movies[]
Each movie's file, the frame it ends on and the game mode after it.
Definition stdwtitl.c:22
AnimFrame STDWTITL_backgroundAnim0[]
Definition title.c:12
u_long * STDWTITL_imageBuffer0
Definition movie.c:10
AnimFrame STDWTITL_backgroundAnim3[]
Definition title.c:29
void STDWTITL_showLogo(LogoTask *task)
Starts the logo's animations (the task's show), only while it waits.
Definition logo.c:85
TitleTask * STDWTITL_startTitleTask(TitleLoaderTask *parent)
Creates the title screen (task), under its title loader parent.
Definition title.c:174
void STDWTITL_animateBackground(TitleBackgroundTask *task)
Starts the background's sprite animations (the task's animate)
Definition background.c:132
s32 STDWTITL_movieHeight
Definition stdwtitl.c:18
TitleMenuTask * STDWTITL_startMenuTask(s16 skip)
Creates the title screen's menu (task); skip: the two options shown from the start.
Definition menu.c:209
s32 STDWTITL_movieWidth
Definition stdwtitl.c:17
TitleBackgroundTask * STDWTITL_startBackgroundTask(s32 skip)
Creates the title screen's background (task); skip is not used.
Definition background.c:139
void STDWTITL_tickLogo(LogoTask *task)
The logo's task: waits until shown, plays its two animations once (STDWTITL_logoFrames),...
Definition logo.c:30
u_long * STDWTITL_ringBuffer
Definition movie.c:6
void STDWTITL_drawLogo(LogoTask *task)
logo.c
Definition logo.c:7
u_long * STDWTITL_imageBuffer1
Definition movie.c:11
void STDWTITL_tickTitle(TitleTask *task, TitleChildren *children)
The title screen's task: creates its background, title parts, glint, logo and menu (the Alt ones for ...
Definition title.c:131
void STDWTITL_clearVram(void)
movie.c
Definition movie.c:6
u32 STDWTITL_movieEndFrame
Definition movie.c:14
SlideTask * STDWTITL_startTitle0Task(s32 skip)
Creates the first part of the title (task)
Definition slides.c:265
void STDWTITL_onSliceDecoded(void)
Called by the MDEC for each decoded slice of a movie frame: copies it to VRAM and decodes the next on...
Definition movie.c:102