mirror of https://github.com/zeldaret/tmc.git
Start decompiling chooseFile.c
This commit is contained in:
parent
79cb86022e
commit
2e78289112
File diff suppressed because it is too large
Load Diff
4067
asm/code_08050038.s
4067
asm/code_08050038.s
File diff suppressed because it is too large
Load Diff
|
@ -170,7 +170,7 @@ extern void sub_0804F578(void);
|
||||||
extern void sub_08059994(void);
|
extern void sub_08059994(void);
|
||||||
extern void LoadGfxGroup(u32);
|
extern void LoadGfxGroup(u32);
|
||||||
extern s32 sub_0801CFA8(u32);
|
extern s32 sub_0801CFA8(u32);
|
||||||
extern void sub_080A3210();
|
extern void sub_080A3210(void);
|
||||||
extern void sub_080ADA14(u32, u32);
|
extern void sub_080ADA14(u32, u32);
|
||||||
extern void sub_0801E1B8(u32, u32);
|
extern void sub_0801E1B8(u32, u32);
|
||||||
extern void sub_0801E1EC(s32, s32, s32);
|
extern void sub_0801E1EC(s32, s32, s32);
|
||||||
|
@ -184,7 +184,7 @@ extern u32 sub_080A4494(void);
|
||||||
extern void sub_080A4528(void);
|
extern void sub_080A4528(void);
|
||||||
extern void sub_080A4398(void);
|
extern void sub_080A4398(void);
|
||||||
extern void sub_0801E738(u32);
|
extern void sub_0801E738(u32);
|
||||||
extern void sub_080A70AC(void*);
|
extern void sub_080A70AC(const void*);
|
||||||
extern void sub_080A7114(u32);
|
extern void sub_080A7114(u32);
|
||||||
extern void sub_08001242(void);
|
extern void sub_08001242(void);
|
||||||
extern u32 sub_08003FC4(Entity*, u32);
|
extern u32 sub_08003FC4(Entity*, u32);
|
||||||
|
@ -203,11 +203,11 @@ extern void sub_0807A108(void);
|
||||||
extern void sub_0801766C(Entity*);
|
extern void sub_0801766C(Entity*);
|
||||||
extern void sub_08004168(Entity*);
|
extern void sub_08004168(Entity*);
|
||||||
extern u32 sub_08052638(u32);
|
extern u32 sub_08052638(u32);
|
||||||
extern void sub_0805616C();
|
extern void sub_0805616C(void);
|
||||||
extern u32 sub_0807CF08(u32, u8*);
|
extern u32 sub_0807CF08(u32, u8*);
|
||||||
extern void sub_0807CF48(u32);
|
extern void sub_0807CF48(u32);
|
||||||
extern u32 sub_0807CF10(u8 *);
|
extern u32 sub_0807CF10(u8 *);
|
||||||
extern void sub_08056208();
|
extern void sub_08056208(void);
|
||||||
extern void sub_08050384();
|
extern void sub_08050384();
|
||||||
extern void sub_080B1520(u32);
|
extern void sub_080B1520(u32);
|
||||||
extern struct_0807D1C4* sub_0807D1C4(u32);
|
extern struct_0807D1C4* sub_0807D1C4(u32);
|
||||||
|
@ -250,4 +250,5 @@ extern void sub_08097B24(Entity*);
|
||||||
extern u32 sub_08079F8C(void);
|
extern u32 sub_08079F8C(void);
|
||||||
extern void sub_080787CC(Entity*);
|
extern void sub_080787CC(Entity*);
|
||||||
extern void sub_080526F8(s32);
|
extern void sub_080526F8(s32);
|
||||||
|
extern int sub_0807CF28(u32, SaveFile*);
|
||||||
#endif
|
#endif
|
|
@ -39,15 +39,16 @@ typedef struct {
|
||||||
} Main;
|
} Main;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u16 nextToLoad;
|
/*0x00*/ u16 nextToLoad;
|
||||||
u8 transitionType;
|
/*0x02*/ u8 transitionType;
|
||||||
u8 field_0x3;
|
/*0x03*/ u8 field_0x3;
|
||||||
u8 state;
|
/*0x04*/ u8 state;
|
||||||
u8 field_0x5;
|
/*0x05*/ u8 field_0x5;
|
||||||
u8 field_0x6;
|
/*0x06*/ u8 field_0x6;
|
||||||
u8 pauseFadeIn;
|
/*0x07*/ u8 pauseFadeIn;
|
||||||
u16 isLoading;
|
/*0x08*/ u16 isLoading;
|
||||||
u16 fadeInTime;
|
/*0x0A*/ u16 fadeInTime;
|
||||||
|
/*0x0C*/ u8 fillerC[0x3A8];
|
||||||
} UI;
|
} UI;
|
||||||
|
|
||||||
extern Main gUnk_03001000;
|
extern Main gUnk_03001000;
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char header[4];
|
char header[4];
|
||||||
u8 saveFile;
|
u8 saveFileId;
|
||||||
u8 field_0x5;
|
u8 messageSpeed;
|
||||||
u8 brightnessPref;
|
u8 brightnessPref;
|
||||||
u8 gameLanguage;
|
u8 gameLanguage;
|
||||||
} struct_02000000;
|
} struct_02000000;
|
||||||
|
@ -34,7 +34,10 @@ typedef struct {
|
||||||
extern struct_02000010 gUnk_02000010;
|
extern struct_02000010 gUnk_02000010;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/*0x000*/ u8 filler0[0x6];
|
/*0x000*/ u8 filler0[0x2];
|
||||||
|
/*0x002*/ u8 messageSpeed;
|
||||||
|
/*0x003*/ u8 brightnessPref;
|
||||||
|
/*0x004*/ u8 filler4[0x2];
|
||||||
/*0x006*/ u8 unk6;
|
/*0x006*/ u8 unk6;
|
||||||
/*0x007*/ u8 unk7;
|
/*0x007*/ u8 unk7;
|
||||||
/*0x008*/ u8 unk8;
|
/*0x008*/ u8 unk8;
|
||||||
|
@ -44,11 +47,12 @@ typedef struct {
|
||||||
/*0x050*/ u32 unk50;
|
/*0x050*/ u32 unk50;
|
||||||
/*0x054*/ u8 filler54[0x54];
|
/*0x054*/ u8 filler54[0x54];
|
||||||
/*0x0A8*/ Stats stats;
|
/*0x0A8*/ Stats stats;
|
||||||
/*0x0D0*/ u8 filler4[0x3c0];
|
/*0x0D0*/ u8 fillerD0[0x3c0];
|
||||||
/*0x490*/ u32 unk490;
|
/*0x490*/ u32 unk490;
|
||||||
} struct_02002A40;
|
/*0x494*/ u8 filler494[0x20];
|
||||||
|
} SaveFile;
|
||||||
|
|
||||||
extern struct_02002A40 gUnk_02002A40;
|
extern SaveFile gUnk_02002A40;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u32 frameCount; // regular frame count? does anything reset it?
|
u32 frameCount; // regular frame count? does anything reset it?
|
||||||
|
@ -99,10 +103,13 @@ typedef struct {
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
/*0x00*/ u8 unk0;
|
/*0x00*/ u8 unk0;
|
||||||
/*0x01*/ u8 filler1[0x5];
|
/*0x01*/ u8 unk1;
|
||||||
|
/*0x02*/ u8 unk2;
|
||||||
|
/*0x03*/ u8 unk3;
|
||||||
|
/*0x04*/ u8 filler4[0x2];
|
||||||
/*0x06*/ u8 unk6;
|
/*0x06*/ u8 unk6;
|
||||||
/*0x07*/ u8 unk7;
|
/*0x07*/ u8 unk7;
|
||||||
/*0x08*/ s8 unk8[0x10]; // ?? unclear know how large this is
|
/*0x08*/ s8 unk8[0xE20];
|
||||||
} struct_02019EE0;
|
} struct_02019EE0;
|
||||||
|
|
||||||
extern struct_02019EE0 gUnk_02019EE0;
|
extern struct_02019EE0 gUnk_02019EE0;
|
||||||
|
@ -126,4 +133,18 @@ typedef struct {
|
||||||
|
|
||||||
extern struct_03000FD0 gFadeControl;
|
extern struct_03000FD0 gFadeControl;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u8 unk0[0x24];
|
||||||
|
u8 ezloNagFuncIndex;
|
||||||
|
u8 filler25[0x30F];
|
||||||
|
} struct_0200AF00;
|
||||||
|
|
||||||
|
extern struct_0200AF00 gUnk_0200AF00;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u8 unk0;
|
||||||
|
} struct_02024490;
|
||||||
|
|
||||||
|
extern struct_02024490 gUnk_02024490;
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -18,6 +18,7 @@ SECTIONS {
|
||||||
. = 0x00000070; gUnk_02000070 = .;
|
. = 0x00000070; gUnk_02000070 = .;
|
||||||
. = 0x00000080; gMenu = .;
|
. = 0x00000080; gMenu = .;
|
||||||
. = 0x00000080; gIntroState = .;
|
. = 0x00000080; gIntroState = .;
|
||||||
|
. = 0x00000080; gChooseFileState = .;
|
||||||
. = 0x00000090; gUnk_02000090 = .;
|
. = 0x00000090; gUnk_02000090 = .;
|
||||||
. = 0x000000B0; gUnk_020000B0 = .;
|
. = 0x000000B0; gUnk_020000B0 = .;
|
||||||
. = 0x000000C0; gUnk_020000C0 = .;
|
. = 0x000000C0; gUnk_020000C0 = .;
|
||||||
|
@ -72,7 +73,7 @@ SECTIONS {
|
||||||
. = 0x00018EB0; gUnk_02018EB0 = .;
|
. = 0x00018EB0; gUnk_02018EB0 = .;
|
||||||
. = 0x00018EE0; gUnk_02018EE0 = .;
|
. = 0x00018EE0; gUnk_02018EE0 = .;
|
||||||
. = 0x00019EE0; gUnk_02019EE0 = .;
|
. = 0x00019EE0; gUnk_02019EE0 = .;
|
||||||
. = 0x00019EEC; gUnk_02019EEC = .;
|
. = 0x00019EEC; gSaveFiles = .;
|
||||||
. = 0x00019F6C; gUnk_02019F6C = .;
|
. = 0x00019F6C; gUnk_02019F6C = .;
|
||||||
. = 0x0001AEE0; gUnk_0201AEE0 = .;
|
. = 0x0001AEE0; gUnk_0201AEE0 = .;
|
||||||
. = 0x00021EE0; gUnk_02021EE0 = .;
|
. = 0x00021EE0; gUnk_02021EE0 = .;
|
||||||
|
@ -450,6 +451,8 @@ SECTIONS {
|
||||||
src/sub_08050008.o(.text);
|
src/sub_08050008.o(.text);
|
||||||
src/sub_08050024.o(.text);
|
src/sub_08050024.o(.text);
|
||||||
asm/code_08050038.o(.text);
|
asm/code_08050038.o(.text);
|
||||||
|
src/chooseFile.o(.text);
|
||||||
|
asm/chooseFile.o(.text);
|
||||||
asm/sub_08052418.o(.text);
|
asm/sub_08052418.o(.text);
|
||||||
src/initializePlayer.o(.text);
|
src/initializePlayer.o(.text);
|
||||||
src/area.o(.text);
|
src/area.o(.text);
|
||||||
|
|
|
@ -0,0 +1,236 @@
|
||||||
|
#include "global.h"
|
||||||
|
#include "functions.h"
|
||||||
|
#include "main.h"
|
||||||
|
#include "screen.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u8 filler0[0x30];
|
||||||
|
} ChooseFileState;
|
||||||
|
|
||||||
|
// TODO: This occupies the same memory region as gMenu
|
||||||
|
extern ChooseFileState gChooseFileState;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u8 filler0[0x10];
|
||||||
|
u16 unk10;
|
||||||
|
u8 filler12[0x6];
|
||||||
|
} struct_080FC844;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u8 filler0[0x4];
|
||||||
|
} struct_020227E8;
|
||||||
|
|
||||||
|
extern struct_020227E8 gUnk_020227E8;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
u8 filler0[0x800];
|
||||||
|
} struct_02034CB0;
|
||||||
|
|
||||||
|
extern struct_02034CB0 gUnk_02034CB0;
|
||||||
|
extern struct_02034CB0 gUnk_02021F30;
|
||||||
|
extern SaveFile gSaveFiles[];
|
||||||
|
extern u32 gUsedPalettes;
|
||||||
|
|
||||||
|
static void sub_08050624(u32);
|
||||||
|
static void sub_0805066C(void);
|
||||||
|
|
||||||
|
extern void sub_0801D66C(const void* src, void* dest, u32 size);
|
||||||
|
extern void sub_08056FEC(u32, struct_020227E8*);
|
||||||
|
extern void sub_0805F46C(u32, struct_080FC844*);
|
||||||
|
extern void sub_0801C4A0(u32, u32);
|
||||||
|
extern void sub_0801D66C(const void* src, void* dest, u32 size);
|
||||||
|
extern void sub_080507FC(void);
|
||||||
|
extern void sub_08080668(void);
|
||||||
|
extern void sub_0805194C(u32);
|
||||||
|
extern void LoadPalettes(const u8*, int, int);
|
||||||
|
|
||||||
|
extern const struct_080FC844 gUnk_080FC844;
|
||||||
|
extern const u16 gUnk_080FC85C[][3];
|
||||||
|
extern void (*const gUnk_080FC8A4[])(void);
|
||||||
|
extern void (*const gUnk_080FC8B0[])(void);
|
||||||
|
extern const u8 gUnk_080FC8D0[];
|
||||||
|
extern const u16 gUnk_080FC8DE[];
|
||||||
|
extern const u8 gGlobalGfxAndPalettes[];
|
||||||
|
|
||||||
|
void sub_08050318(u32 arg0, u32 arg1) {
|
||||||
|
u32 sfx;
|
||||||
|
struct_080FC844 var0;
|
||||||
|
|
||||||
|
sub_08050384();
|
||||||
|
sub_0801D66C(&gUnk_080FC844, &var0, sizeof(gUnk_080FC844));
|
||||||
|
sub_08056FEC(arg1, &gUnk_020227E8);
|
||||||
|
var0.unk10 |= gUnk_080FC85C[arg0][0] << 0xC;
|
||||||
|
sub_0805F46C(gUnk_080FC85C[arg0][1], &var0);
|
||||||
|
sfx = gUnk_080FC85C[arg0][2];
|
||||||
|
if (sfx) {
|
||||||
|
PlaySFX(sfx);
|
||||||
|
}
|
||||||
|
gScreen.bg.bg3Control = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_08050384(void) {
|
||||||
|
sub_0801C4A0(0, 0);
|
||||||
|
_DmaZero(&gUnk_02034CB0, sizeof(gUnk_02034CB0));
|
||||||
|
gScreen.bg.bg3Control = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080503A8(u32 gfxGroup) {
|
||||||
|
LoadGfxGroup(gfxGroup);
|
||||||
|
gScreen.bg.bg2yOffset = 1;
|
||||||
|
gScreen.affine.unk = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080503BC(u8 state) {
|
||||||
|
gUnk_02032EC0.state = state;
|
||||||
|
_DmaZero(&gUnk_02034CB0, sizeof(gUnk_02034CB0));
|
||||||
|
_DmaZero(&gUnk_02021F30, sizeof(gUnk_02021F30));
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080503E4(u32 saveFileId) {
|
||||||
|
u8 messageSpeed;
|
||||||
|
u8 brightnessPref;
|
||||||
|
|
||||||
|
if (saveFileId > 2) {
|
||||||
|
messageSpeed = 1;
|
||||||
|
brightnessPref = 1;
|
||||||
|
} else {
|
||||||
|
SaveFile* saveFile = &gSaveFiles[saveFileId];
|
||||||
|
messageSpeed = saveFile->messageSpeed;
|
||||||
|
brightnessPref = saveFile->brightnessPref;
|
||||||
|
}
|
||||||
|
|
||||||
|
((struct_02000000 *)0x2000000)->messageSpeed = messageSpeed;
|
||||||
|
((struct_02000000 *)0x2000000)->brightnessPref = brightnessPref;
|
||||||
|
gUsedPalettes = 0xFFFFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0805041C(u32 saveFileId) {
|
||||||
|
SaveFile* saveFile;
|
||||||
|
|
||||||
|
if (saveFileId < 3) {
|
||||||
|
((struct_02000000 *)0x2000000)->saveFileId = saveFileId;
|
||||||
|
saveFile = &gSaveFiles[saveFileId];
|
||||||
|
sub_0801D66C(saveFile, &gUnk_02002A40, sizeof(*saveFile));
|
||||||
|
}
|
||||||
|
sub_080503E4(saveFileId);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleChooseFileScreen(void) {
|
||||||
|
sub_080AD90C();
|
||||||
|
gUnk_080FC8A4[gUnk_03001000.funcIndex]();
|
||||||
|
if (gUnk_02032EC0.transitionType != gUnk_02032EC0.state) {
|
||||||
|
gUnk_02032EC0.transitionType = gUnk_02032EC0.state;
|
||||||
|
gScreen.bg.bg1Control = 0;
|
||||||
|
gScreen.bg.bg2Control = 0;
|
||||||
|
gScreen.bg.bg1yOffset = 0;
|
||||||
|
gScreen.bg.bg2xOffset = 0;
|
||||||
|
gScreen.affine.bg2xOffset = 0;
|
||||||
|
gScreen.affine.bg2yOffset = 0;
|
||||||
|
_DmaZero(&gChooseFileState, sizeof(gChooseFileState));
|
||||||
|
}
|
||||||
|
|
||||||
|
sub_080507FC();
|
||||||
|
gUnk_080FC8B0[gUnk_02032EC0.transitionType]();
|
||||||
|
gUnk_02019EE0.unk0 = 0;
|
||||||
|
sub_0805E5C0();
|
||||||
|
sub_0805066C();
|
||||||
|
sub_0801C1D4();
|
||||||
|
sub_0801C208();
|
||||||
|
sub_080AD9B0();
|
||||||
|
sub_080AD918();
|
||||||
|
if (gUnk_02019EE0.unk3 != ((struct_02000000 *)0x2000000)->gameLanguage) {
|
||||||
|
gUnk_02019EE0.unk3 = ((struct_02000000 *)0x2000000)->gameLanguage;
|
||||||
|
sub_080503A8(0x6);
|
||||||
|
sub_080503A8(0xF);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080504F4(void) {
|
||||||
|
u32 i;
|
||||||
|
|
||||||
|
sub_0801DA90(1);
|
||||||
|
sub_080A3210();
|
||||||
|
_DmaZero((void*)VRAM, 0x80);
|
||||||
|
sub_08056418();
|
||||||
|
EraseAllEntities();
|
||||||
|
sub_08080668();
|
||||||
|
sub_080ADD30();
|
||||||
|
sub_0801CFA8(0);
|
||||||
|
_DmaZero(&gUnk_0200AF00, sizeof(gUnk_0200AF00));
|
||||||
|
_DmaZero(&gUnk_02019EE0, sizeof(gUnk_02019EE0));
|
||||||
|
gUnk_02019EE0.unk3 = 7;
|
||||||
|
gUnk_02019EE0.unk6 = ((struct_02000000 *)0x2000000)->gameLanguage > 1 ? 3 : 0;
|
||||||
|
_DmaZero(&gUnk_02032EC0, sizeof(gUnk_02032EC0));
|
||||||
|
gUnk_02032EC0.transitionType = 8;
|
||||||
|
sub_080503BC(0);
|
||||||
|
sub_0805616C();
|
||||||
|
sub_08050624(0);
|
||||||
|
sub_08050624(1);
|
||||||
|
sub_08050624(2);
|
||||||
|
sub_08056208();
|
||||||
|
sub_080503A8(0x5);
|
||||||
|
LoadPaletteGroup(0x9);
|
||||||
|
for (i = 0; i < 26; i++) {
|
||||||
|
CreateObject(0x48, i, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
sub_080A70AC(gUnk_080FC8D0);
|
||||||
|
sub_080507FC();
|
||||||
|
gScreen.lcd.displayControl |= 0x1F00;
|
||||||
|
gScreen.affine.bg3Control = 0x1E0B;
|
||||||
|
gScreen.controls.layerFXControl = 0x844;
|
||||||
|
gScreen.controls.alphaBlend = BLDALPHA_BLEND(15, 10);
|
||||||
|
gUnk_02024490.unk0 = 1;
|
||||||
|
gUnk_03001000.funcIndex = 1;
|
||||||
|
PlaySFX(0x7);
|
||||||
|
DoFade(4, 8);
|
||||||
|
}
|
||||||
|
|
||||||
|
void nullsub_479(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_0805060C(void) {
|
||||||
|
if (!gFadeControl.active) {
|
||||||
|
InitScreen(SCREEN_GAMEPLAY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_08050624(u32 saveFileId) {
|
||||||
|
SaveFile* saveFile = &gSaveFiles[saveFileId];
|
||||||
|
int var0 = sub_0807CF28(saveFileId, saveFile);
|
||||||
|
switch (var0) {
|
||||||
|
case -1:
|
||||||
|
sub_0807CF48(saveFileId);
|
||||||
|
// fallthrough
|
||||||
|
case 0:
|
||||||
|
sub_0805194C(saveFileId);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
gUnk_02019EE0.unk8[saveFileId] = var0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void sub_0805066C(void) {
|
||||||
|
u32 loadNewPalette;
|
||||||
|
const u8* paletteOffset;
|
||||||
|
|
||||||
|
loadNewPalette = FALSE;
|
||||||
|
if (--gUnk_02019EE0.unk1 == 0) {
|
||||||
|
gUnk_02019EE0.unk1 = 16;
|
||||||
|
gUnk_02019EE0.unk2 = (gUnk_02019EE0.unk2 + 1) % 15;
|
||||||
|
loadNewPalette = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gUnk_02019EE0.unk2 == 0) {
|
||||||
|
gUnk_02019EE0.unk2 = 1;
|
||||||
|
gUnk_02019EE0.unk1 = (Random() & 0x7) * 16 + 8;
|
||||||
|
loadNewPalette = TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (loadNewPalette) {
|
||||||
|
paletteOffset = &gGlobalGfxAndPalettes[gUnk_080FC8DE[gUnk_02019EE0.unk2]];
|
||||||
|
LoadPalettes(&paletteOffset[0x11AA0], 11, 1);
|
||||||
|
LoadPalettes(&paletteOffset[0x11BA0], 12, 1);
|
||||||
|
LoadPalettes(&paletteOffset[0x11CA0], 13, 1);
|
||||||
|
LoadPalettes(&paletteOffset[0x11DA0], 14, 1);
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,7 +7,7 @@
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 filler[0xa8];
|
u8 filler[0xa8];
|
||||||
Stats stats;
|
Stats stats;
|
||||||
} struct_02002A40;
|
} SaveFile;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 unk;
|
u8 unk;
|
||||||
|
@ -19,7 +19,7 @@ typedef struct {
|
||||||
u8 unk;
|
u8 unk;
|
||||||
} ScreenTransition;
|
} ScreenTransition;
|
||||||
|
|
||||||
extern struct_02002A40 gUnk_02002A40;
|
extern SaveFile gUnk_02002A40;
|
||||||
extern struct_080FD5B4 gUnk_080FD5B4[];
|
extern struct_080FD5B4 gUnk_080FD5B4[];
|
||||||
extern ScreenTransition gScreenTransition;
|
extern ScreenTransition gScreenTransition;
|
||||||
|
|
||||||
|
|
|
@ -35,10 +35,10 @@ u32 sub_0807CDE8(u32 arg0) {
|
||||||
sub_0805616C();
|
sub_0805616C();
|
||||||
switch (arg0) {
|
switch (arg0) {
|
||||||
case 0:
|
case 0:
|
||||||
temp = sub_0807CF08(gUnk_02000000->saveFile, gUnk_02002A40.filler0);
|
temp = sub_0807CF08(gUnk_02000000->saveFileId, gUnk_02002A40.filler0);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
sub_0807CF48(gUnk_02000000->saveFile);
|
sub_0807CF48(gUnk_02000000->saveFileId);
|
||||||
temp = 1;
|
temp = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
@ -113,7 +113,7 @@ u32 sub_0807CF1C(u8* arg0) {
|
||||||
return sub_0807CF88(5, arg0);
|
return sub_0807CF88(5, arg0);
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 sub_0807CF28(u32 arg0, void* arg1) {
|
int sub_0807CF28(u32 arg0, SaveFile* arg1) {
|
||||||
return sub_0807D008(arg0, arg1);
|
return sub_0807D008(arg0, arg1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -215,7 +215,7 @@ void sub_0805E92C(u32 param_1)
|
||||||
}
|
}
|
||||||
|
|
||||||
extern Entity gUnk_020369F0;
|
extern Entity gUnk_020369F0;
|
||||||
extern void sub_0801D66C(void* dst, void* src, size_t size); // dma copy
|
extern void sub_0801D66C(const void* src, void* dest, size_t size); // dma copy
|
||||||
extern void sub_0805E98C(void);
|
extern void sub_0805E98C(void);
|
||||||
|
|
||||||
void sub_0805E958(void)
|
void sub_0805E958(void)
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "entity.h"
|
#include "entity.h"
|
||||||
#include "functions.h"
|
#include "functions.h"
|
||||||
#include "textbox.h"
|
#include "textbox.h"
|
||||||
|
#include "structures.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
s8 unk0;
|
s8 unk0;
|
||||||
|
@ -23,13 +24,6 @@ typedef struct {
|
||||||
u8 unk13;
|
u8 unk13;
|
||||||
} Element;
|
} Element;
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
u8 unk0[0x24];
|
|
||||||
u8 ezloNagFuncIndex;
|
|
||||||
} struct_0200AF00;
|
|
||||||
|
|
||||||
extern struct_0200AF00 gUnk_0200AF00;
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
extern void sub_0805ECEC(u32, u32, u32, u32);
|
extern void sub_0805ECEC(u32, u32, u32, u32);
|
||||||
|
|
|
@ -22,6 +22,7 @@ typedef struct {
|
||||||
int swordBgScaleRatio;
|
int swordBgScaleRatio;
|
||||||
} IntroState;
|
} IntroState;
|
||||||
|
|
||||||
|
// TODO: This occupies the same memory region as gMenu
|
||||||
extern IntroState gIntroState;
|
extern IntroState gIntroState;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -125,8 +126,6 @@ static void HandleNintendoCapcomLogos(void)
|
||||||
|
|
||||||
extern u16 gUnk_03001010[5];
|
extern u16 gUnk_03001010[5];
|
||||||
|
|
||||||
extern u8 gUnk_02024490;
|
|
||||||
|
|
||||||
static void HandleTitlescreen(void)
|
static void HandleTitlescreen(void)
|
||||||
{
|
{
|
||||||
int advance;
|
int advance;
|
||||||
|
@ -142,7 +141,7 @@ static void HandleTitlescreen(void)
|
||||||
EraseAllEntities();
|
EraseAllEntities();
|
||||||
sub_0801CFA8(0);
|
sub_0801CFA8(0);
|
||||||
sub_080ADD30();
|
sub_080ADD30();
|
||||||
gUnk_02024490 = 1;
|
gUnk_02024490.unk0 = 1;
|
||||||
LoadGfxGroup(2);
|
LoadGfxGroup(2);
|
||||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||||
paletteGroup = 3;
|
paletteGroup = 3;
|
||||||
|
|
|
@ -34,7 +34,7 @@ void MainLoop(void) {
|
||||||
sub_08056208();
|
sub_08056208();
|
||||||
gUnk_02000010.field_0x4 = 193;
|
gUnk_02000010.field_0x4 = 193;
|
||||||
sub_0804FFE4();
|
sub_0804FFE4();
|
||||||
DmaSet(3, 0x5000000U, gPaletteBuffer, 0x84000080U);
|
DmaCopy32(3, BG_PLTT, gPaletteBuffer, BG_PLTT_SIZE);
|
||||||
sub_0804FF84(1);
|
sub_0804FF84(1);
|
||||||
sub_08056418();
|
sub_08056418();
|
||||||
sub_080ADD30();
|
sub_080ADD30();
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 filler[8];
|
u8 filler[8];
|
||||||
u8 unk;
|
u8 unk;
|
||||||
} struct_02002A40;
|
} SaveFile;
|
||||||
|
|
||||||
extern u32 GetFacingDirection(Entity*, Entity*);
|
extern u32 GetFacingDirection(Entity*, Entity*);
|
||||||
extern u32 sub_0806F5A4(u32);
|
extern u32 sub_0806F5A4(u32);
|
||||||
|
@ -33,7 +33,7 @@ extern void (*const gUnk_0811036C[])(Entity*);
|
||||||
|
|
||||||
extern u16 gUnk_08110380[];
|
extern u16 gUnk_08110380[];
|
||||||
extern SpriteLoadData gUnk_08110354;
|
extern SpriteLoadData gUnk_08110354;
|
||||||
extern struct_02002A40 gUnk_02002A40;
|
extern SaveFile gUnk_02002A40;
|
||||||
extern u32 gUnk_08110390[];
|
extern u32 gUnk_08110390[];
|
||||||
extern u16 gUnk_081103D0[];
|
extern u16 gUnk_081103D0[];
|
||||||
extern u32 gUnk_081103E0;
|
extern u32 gUnk_081103E0;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
typedef struct {
|
typedef struct {
|
||||||
u8 filler[8];
|
u8 filler[8];
|
||||||
u8 unk;
|
u8 unk;
|
||||||
} struct_02002A40;
|
} SaveFile;
|
||||||
|
|
||||||
extern SpriteLoadData gUnk_08113910[];
|
extern SpriteLoadData gUnk_08113910[];
|
||||||
extern void sub_0805E3A0(Entity*, u32);
|
extern void sub_0805E3A0(Entity*, u32);
|
||||||
|
@ -20,7 +20,7 @@ extern u32 UpdateFuseInteraction(Entity*);
|
||||||
extern void sub_0807000C(Entity*);
|
extern void sub_0807000C(Entity*);
|
||||||
extern void ShowNPCDialogue(Entity*, u16*);
|
extern void ShowNPCDialogue(Entity*, u16*);
|
||||||
|
|
||||||
extern struct_02002A40 gUnk_02002A40;
|
extern SaveFile gUnk_02002A40;
|
||||||
extern u16 gUnk_08113930[];
|
extern u16 gUnk_08113930[];
|
||||||
|
|
||||||
void Teachers(Entity* this) {
|
void Teachers(Entity* this) {
|
||||||
|
|
|
@ -458,7 +458,7 @@ void sub_0808EF24(Entity* this) {
|
||||||
} else {
|
} else {
|
||||||
this->spriteSettings.b.draw = 2;
|
this->spriteSettings.b.draw = 2;
|
||||||
if (this->entityType.form == 21) {
|
if (this->entityType.form == 21) {
|
||||||
var0 = ((struct_02000000 *)0x2000000)->field_0x5;
|
var0 = ((struct_02000000 *)0x2000000)->messageSpeed;
|
||||||
} else {
|
} else {
|
||||||
var0 = ((struct_02000000 *)0x2000000)->brightnessPref;
|
var0 = ((struct_02000000 *)0x2000000)->brightnessPref;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue