summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-12-17 13:17:58 -0600
committerGitHub <noreply@github.com>2020-12-17 13:17:58 -0600
commit096de8d9b2ffd90c52e790296bfd7c5436d45ca3 (patch)
tree9c5af2e04dea05221c71946a5dfc06471f77801d /include
parentbc504264f1e54b3c1e482710c592e5549828bfe1 (diff)
parentf90f3affeb9b0a66aa7df68f5fdecd692033faf9 (diff)
Merge pull request #12 from SethBarberee/master
Merge work from SethBarberee/pmd-red into pret.
Diffstat (limited to 'include')
-rw-r--r--include/code_800558C.h1
-rw-r--r--include/constants/bg_music.h6
-rw-r--r--include/constants/species.h429
-rw-r--r--include/constants/weather.h14
-rw-r--r--include/dungeon.h32
-rw-r--r--include/file_system.h6
-rw-r--r--include/gba/m4a_internal.h2
-rw-r--r--include/input.h62
-rw-r--r--include/m4a.h26
-rw-r--r--include/pokemon.h61
-rw-r--r--include/save.h34
-rw-r--r--include/text.h28
-rw-r--r--include/time.h20
13 files changed, 720 insertions, 1 deletions
diff --git a/include/code_800558C.h b/include/code_800558C.h
index e1b3432..ac037c8 100644
--- a/include/code_800558C.h
+++ b/include/code_800558C.h
@@ -2,5 +2,6 @@
#define GUARD_code_800558C_H
extern void *gUnknown_203B078;
+void sub_80060EC(void);
#endif //GUARD_code_800558C_H
diff --git a/include/constants/bg_music.h b/include/constants/bg_music.h
new file mode 100644
index 0000000..0e6f416
--- /dev/null
+++ b/include/constants/bg_music.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_BG_MUSIC_H
+#define GUARD_BG_MUSIC_H
+
+#define MUS_TINY_WOODS 1
+
+#endif //GUARD_BG_MUSIC_H
diff --git a/include/constants/species.h b/include/constants/species.h
new file mode 100644
index 0000000..1822200
--- /dev/null
+++ b/include/constants/species.h
@@ -0,0 +1,429 @@
+#ifndef GUARD_CONSTANTS_SPECIES_H
+#define GUARD_CONSTANTS_SPECIES_H
+
+#define SPECIES_NONE 0
+#define SPECIES_BULBASAUR 1
+#define SPECIES_IVYSAUR 2
+#define SPECIES_VENUSAUR 3
+#define SPECIES_CHARMANDER 4
+#define SPECIES_CHARMELEON 5
+#define SPECIES_CHARIZARD 6
+#define SPECIES_SQUIRTLE 7
+#define SPECIES_WARTORTLE 8
+#define SPECIES_BLASTOISE 9
+#define SPECIES_CATERPIE 10
+#define SPECIES_METAPOD 11
+#define SPECIES_BUTTERFREE 12
+#define SPECIES_WEEDLE 13
+#define SPECIES_KAKUNA 14
+#define SPECIES_BEEDRILL 15
+#define SPECIES_PIDGEY 16
+#define SPECIES_PIDGEOTTO 17
+#define SPECIES_PIDGEOT 18
+#define SPECIES_RATTATA 19
+#define SPECIES_RATICATE 20
+#define SPECIES_SPEAROW 21
+#define SPECIES_FEAROW 22
+#define SPECIES_EKANS 23
+#define SPECIES_ARBOK 24
+#define SPECIES_PIKACHU 25
+#define SPECIES_RAICHU 26
+#define SPECIES_SANDSHREW 27
+#define SPECIES_SANDSLASH 28
+#define SPECIES_NIDORAN_F 29
+#define SPECIES_NIDORINA 30
+#define SPECIES_NIDOQUEEN 31
+#define SPECIES_NIDORAN_M 32
+#define SPECIES_NIDORINO 33
+#define SPECIES_NIDOKING 34
+#define SPECIES_CLEFAIRY 35
+#define SPECIES_CLEFABLE 36
+#define SPECIES_VULPIX 37
+#define SPECIES_NINETALES 38
+#define SPECIES_JIGGLYPUFF 39
+#define SPECIES_WIGGLYTUFF 40
+#define SPECIES_ZUBAT 41
+#define SPECIES_GOLBAT 42
+#define SPECIES_ODDISH 43
+#define SPECIES_GLOOM 44
+#define SPECIES_VILEPLUME 45
+#define SPECIES_PARAS 46
+#define SPECIES_PARASECT 47
+#define SPECIES_VENONAT 48
+#define SPECIES_VENOMOTH 49
+#define SPECIES_DIGLETT 50
+#define SPECIES_DUGTRIO 51
+#define SPECIES_MEOWTH 52
+#define SPECIES_PERSIAN 53
+#define SPECIES_PSYDUCK 54
+#define SPECIES_GOLDUCK 55
+#define SPECIES_MANKEY 56
+#define SPECIES_PRIMEAPE 57
+#define SPECIES_GROWLITHE 58
+#define SPECIES_ARCANINE 59
+#define SPECIES_POLIWAG 60
+#define SPECIES_POLIWHIRL 61
+#define SPECIES_POLIWRATH 62
+#define SPECIES_ABRA 63
+#define SPECIES_KADABRA 64
+#define SPECIES_ALAKAZAM 65
+#define SPECIES_MACHOP 66
+#define SPECIES_MACHOKE 67
+#define SPECIES_MACHAMP 68
+#define SPECIES_BELLSPROUT 69
+#define SPECIES_WEEPINBELL 70
+#define SPECIES_VICTREEBEL 71
+#define SPECIES_TENTACOOL 72
+#define SPECIES_TENTACRUEL 73
+#define SPECIES_GEODUDE 74
+#define SPECIES_GRAVELER 75
+#define SPECIES_GOLEM 76
+#define SPECIES_PONYTA 77
+#define SPECIES_RAPIDASH 78
+#define SPECIES_SLOWPOKE 79
+#define SPECIES_SLOWBRO 80
+#define SPECIES_MAGNEMITE 81
+#define SPECIES_MAGNETON 82
+#define SPECIES_FARFETCHD 83
+#define SPECIES_DODUO 84
+#define SPECIES_DODRIO 85
+#define SPECIES_SEEL 86
+#define SPECIES_DEWGONG 87
+#define SPECIES_GRIMER 88
+#define SPECIES_MUK 89
+#define SPECIES_SHELLDER 90
+#define SPECIES_CLOYSTER 91
+#define SPECIES_GASTLY 92
+#define SPECIES_HAUNTER 93
+#define SPECIES_GENGAR 94
+#define SPECIES_ONIX 95
+#define SPECIES_DROWZEE 96
+#define SPECIES_HYPNO 97
+#define SPECIES_KRABBY 98
+#define SPECIES_KINGLER 99
+#define SPECIES_VOLTORB 100
+#define SPECIES_ELECTRODE 101
+#define SPECIES_EXEGGCUTE 102
+#define SPECIES_EXEGGUTOR 103
+#define SPECIES_CUBONE 104
+#define SPECIES_MAROWAK 105
+#define SPECIES_HITMONLEE 106
+#define SPECIES_HITMONCHAN 107
+#define SPECIES_LICKITUNG 108
+#define SPECIES_KOFFING 109
+#define SPECIES_WEEZING 110
+#define SPECIES_RHYHORN 111
+#define SPECIES_RHYDON 112
+#define SPECIES_CHANSEY 113
+#define SPECIES_TANGELA 114
+#define SPECIES_KANGASKHAN 115
+#define SPECIES_HORSEA 116
+#define SPECIES_SEADRA 117
+#define SPECIES_GOLDEEN 118
+#define SPECIES_SEAKING 119
+#define SPECIES_STARYU 120
+#define SPECIES_STARMIE 121
+#define SPECIES_MR_MIME 122
+#define SPECIES_SCYTHER 123
+#define SPECIES_JYNX 124
+#define SPECIES_ELECTABUZZ 125
+#define SPECIES_MAGMAR 126
+#define SPECIES_PINSIR 127
+#define SPECIES_TAUROS 128
+#define SPECIES_MAGIKARP 129
+#define SPECIES_GYARADOS 130
+#define SPECIES_LAPRAS 131
+#define SPECIES_DITTO 132
+#define SPECIES_EEVEE 133
+#define SPECIES_VAPOREON 134
+#define SPECIES_JOLTEON 135
+#define SPECIES_FLAREON 136
+#define SPECIES_PORYGON 137
+#define SPECIES_OMANYTE 138
+#define SPECIES_OMASTAR 139
+#define SPECIES_KABUTO 140
+#define SPECIES_KABUTOPS 141
+#define SPECIES_AERODACTYL 142
+#define SPECIES_SNORLAX 143
+#define SPECIES_ARTICUNO 144
+#define SPECIES_ZAPDOS 145
+#define SPECIES_MOLTRES 146
+#define SPECIES_DRATINI 147
+#define SPECIES_DRAGONAIR 148
+#define SPECIES_DRAGONITE 149
+#define SPECIES_MEWTWO 150
+#define SPECIES_MEW 151
+#define SPECIES_CHIKORITA 152
+#define SPECIES_BAYLEEF 153
+#define SPECIES_MEGANIUM 154
+#define SPECIES_CYNDAQUIL 155
+#define SPECIES_QUILAVA 156
+#define SPECIES_TYPHLOSION 157
+#define SPECIES_TOTODILE 158
+#define SPECIES_CROCONAW 159
+#define SPECIES_FERALIGATR 160
+#define SPECIES_SENTRET 161
+#define SPECIES_FURRET 162
+#define SPECIES_HOOTHOOT 163
+#define SPECIES_NOCTOWL 164
+#define SPECIES_LEDYBA 165
+#define SPECIES_LEDIAN 166
+#define SPECIES_SPINARAK 167
+#define SPECIES_ARIADOS 168
+#define SPECIES_CROBAT 169
+#define SPECIES_CHINCHOU 170
+#define SPECIES_LANTURN 171
+#define SPECIES_PICHU 172
+#define SPECIES_CLEFFA 173
+#define SPECIES_IGGLYBUFF 174
+#define SPECIES_TOGEPI 175
+#define SPECIES_TOGETIC 176
+#define SPECIES_NATU 177
+#define SPECIES_XATU 178
+#define SPECIES_MAREEP 179
+#define SPECIES_FLAAFFY 180
+#define SPECIES_AMPHAROS 181
+#define SPECIES_BELLOSSOM 182
+#define SPECIES_MARILL 183
+#define SPECIES_AZUMARILL 184
+#define SPECIES_SUDOWOODO 185
+#define SPECIES_POLITOED 186
+#define SPECIES_HOPPIP 187
+#define SPECIES_SKIPLOOM 188
+#define SPECIES_JUMPLUFF 189
+#define SPECIES_AIPOM 190
+#define SPECIES_SUNKERN 191
+#define SPECIES_SUNFLORA 192
+#define SPECIES_YANMA 193
+#define SPECIES_WOOPER 194
+#define SPECIES_QUAGSIRE 195
+#define SPECIES_ESPEON 196
+#define SPECIES_UMBREON 197
+#define SPECIES_MURKROW 198
+#define SPECIES_SLOWKING 199
+#define SPECIES_MISDREAVUS 200
+#define SPECIES_UNOWN 201
+#define SPECIES_UNOWN_B 202
+#define SPECIES_UNOWN_C 203
+#define SPECIES_UNOWN_D 204
+#define SPECIES_UNOWN_E 205
+#define SPECIES_UNOWN_F 206
+#define SPECIES_UNOWN_G 207
+#define SPECIES_UNOWN_H 208
+#define SPECIES_UNOWN_I 209
+#define SPECIES_UNOWN_J 210
+#define SPECIES_UNOWN_K 211
+#define SPECIES_UNOWN_L 212
+#define SPECIES_UNOWN_M 213
+#define SPECIES_UNOWN_N 214
+#define SPECIES_UNOWN_O 215
+#define SPECIES_UNOWN_P 216
+#define SPECIES_UNOWN_Q 217
+#define SPECIES_UNOWN_R 218
+#define SPECIES_UNOWN_S 219
+#define SPECIES_UNOWN_T 220
+#define SPECIES_UNOWN_U 221
+#define SPECIES_UNOWN_V 222
+#define SPECIES_UNOWN_W 223
+#define SPECIES_UNOWN_X 224
+#define SPECIES_UNOWN_Y 225
+#define SPECIES_UNOWN_Z 226
+#define SPECIES_WOBBUFFET 227
+#define SPECIES_GIRAFARIG 228
+#define SPECIES_PINECO 229
+#define SPECIES_FORRETRESS 230
+#define SPECIES_DUNSPARCE 231
+#define SPECIES_GLIGAR 232
+#define SPECIES_STEELIX 233
+#define SPECIES_SNUBBULL 234
+#define SPECIES_GRANBULL 235
+#define SPECIES_QWILFISH 236
+#define SPECIES_SCIZOR 237
+#define SPECIES_SHUCKLE 238
+#define SPECIES_HERACROSS 239
+#define SPECIES_SNEASEL 240
+#define SPECIES_TEDDIURSA 241
+#define SPECIES_URSARING 242
+#define SPECIES_SLUGMA 243
+#define SPECIES_MAGCARGO 244
+#define SPECIES_SWINUB 245
+#define SPECIES_PILOSWINE 246
+#define SPECIES_CORSOLA 247
+#define SPECIES_REMORAID 248
+#define SPECIES_OCTILLERY 249
+#define SPECIES_DELIBIRD 250
+#define SPECIES_MANTINE 251
+#define SPECIES_SKARMORY 252
+#define SPECIES_HOUNDOUR 253
+#define SPECIES_HOUNDOOM 254
+#define SPECIES_KINGDRA 255
+#define SPECIES_PHANPY 256
+#define SPECIES_DONPHAN 257
+#define SPECIES_PORYGON2 258
+#define SPECIES_STANTLER 259
+#define SPECIES_SMEARGLE 260
+#define SPECIES_TYROGUE 261
+#define SPECIES_HITMONTOP 262
+#define SPECIES_SMOOCHUM 263
+#define SPECIES_ELEKID 264
+#define SPECIES_MAGBY 265
+#define SPECIES_MILTANK 266
+#define SPECIES_BLISSEY 267
+#define SPECIES_RAIKOU 268
+#define SPECIES_ENTEI 269
+#define SPECIES_SUICUNE 270
+#define SPECIES_LARVITAR 271
+#define SPECIES_PUPITAR 272
+#define SPECIES_TYRANITAR 273
+#define SPECIES_LUGIA 274
+#define SPECIES_HO_OH 275
+#define SPECIES_CELEBI 276
+#define SPECIES_TREECKO 277
+#define SPECIES_GROVYLE 278
+#define SPECIES_SCEPTILE 279
+#define SPECIES_TORCHIC 280
+#define SPECIES_COMBUSKEN 281
+#define SPECIES_BLAZIKEN 282
+#define SPECIES_MUDKIP 283
+#define SPECIES_MARSHTOMP 284
+#define SPECIES_SWAMPERT 285
+#define SPECIES_POOCHYENA 286
+#define SPECIES_MIGHTYENA 287
+#define SPECIES_ZIGZAGOON 288
+#define SPECIES_LINOONE 289
+#define SPECIES_WURMPLE 290
+#define SPECIES_SILCOON 291
+#define SPECIES_BEAUTIFLY 292
+#define SPECIES_CASCOON 293
+#define SPECIES_DUSTOX 294
+#define SPECIES_LOTAD 295
+#define SPECIES_LOMBRE 296
+#define SPECIES_LUDICOLO 297
+#define SPECIES_SEEDOT 298
+#define SPECIES_NUZLEAF 299
+#define SPECIES_SHIFTRY 300
+#define SPECIES_TAILLOW 301
+#define SPECIES_SWELLOW 302
+#define SPECIES_WINGULL 303
+#define SPECIES_PELIPPER 304
+#define SPECIES_RALTS 305
+#define SPECIES_KIRLIA 306
+#define SPECIES_GARDEVOIR 307
+#define SPECIES_SURSKIT 308
+#define SPECIES_MASQUERAIN 309
+#define SPECIES_SHROOMISH 310
+#define SPECIES_BRELOOM 311
+#define SPECIES_SLAKOTH 312
+#define SPECIES_VIGOROTH 313
+#define SPECIES_SLAKING 314
+#define SPECIES_NINCADA 315
+#define SPECIES_NINJASK 316
+#define SPECIES_SHEDINJA 317
+#define SPECIES_WHISMUR 318
+#define SPECIES_LOUDRED 319
+#define SPECIES_EXPLOUD 320
+#define SPECIES_MAKUHITA 321
+#define SPECIES_HARIYAMA 322
+#define SPECIES_AZURILL 323
+#define SPECIES_NOSEPASS 324
+#define SPECIES_SKITTY 325
+#define SPECIES_DELCATTY 326
+#define SPECIES_SABLEYE 327
+#define SPECIES_MAWILE 328
+#define SPECIES_ARON 329
+#define SPECIES_LAIRON 330
+#define SPECIES_AGGRON 331
+#define SPECIES_MEDITITE 332
+#define SPECIES_MEDICHAM 333
+#define SPECIES_ELECTRIKE 334
+#define SPECIES_MANECTRIC 335
+#define SPECIES_PLUSLE 336
+#define SPECIES_MINUN 337
+#define SPECIES_VOLBEAT 338
+#define SPECIES_ILLIMISE 339
+#define SPECIES_ROSELIA 340
+#define SPECIES_GULPIN 341
+#define SPECIES_SWALOT 342
+#define SPECIES_CARVANHA 343
+#define SPECIES_SHARPEDO 344
+#define SPECIES_WAILMER 345
+#define SPECIES_WAILORD 346
+#define SPECIES_NUMEL 347
+#define SPECIES_CAMERUPT 348
+#define SPECIES_TORKOAL 349
+#define SPECIES_SPOINK 350
+#define SPECIES_GRUMPIG 351
+#define SPECIES_SPINDA 352
+#define SPECIES_TRAPINCH 353
+#define SPECIES_VIBRAVA 354
+#define SPECIES_FLYGON 355
+#define SPECIES_CACNEA 356
+#define SPECIES_CACTURNE 357
+#define SPECIES_SWABLU 358
+#define SPECIES_ALTARIA 359
+#define SPECIES_ZANGOOSE 360
+#define SPECIES_SEVIPER 361
+#define SPECIES_LUNATONE 362
+#define SPECIES_SOLROCK 363
+#define SPECIES_BARBOACH 364
+#define SPECIES_WHISCASH 365
+#define SPECIES_CORPHISH 366
+#define SPECIES_CRAWDAUNT 367
+#define SPECIES_BALTOY 368
+#define SPECIES_CLAYDOL 369
+#define SPECIES_LILEEP 370
+#define SPECIES_CRADILY 371
+#define SPECIES_ANORITH 372
+#define SPECIES_ARMALDO 373
+#define SPECIES_FEEBAS 374
+#define SPECIES_MILOTIC 375
+#define SPECIES_CASTFORM 376
+#define SPECIES_CASTFORM_SNOWY 377
+#define SPECIES_CASTFORM_SUNNY 378
+#define SPECIES_CASTFORM_RAINY 379
+#define SPECIES_KECLEON 380
+#define SPECIES_SHUPPET 381
+#define SPECIES_BANETTE 382
+#define SPECIES_DUSKULL 383
+#define SPECIES_DUSCLOPS 384
+#define SPECIES_TROPIUS 385
+#define SPECIES_CHIMECHO 386
+#define SPECIES_ABSOL 387
+#define SPECIES_WYNAUT 388
+#define SPECIES_SNORUNT 389
+#define SPECIES_GLALIE 390
+#define SPECIES_SPHEAL 391
+#define SPECIES_SEALEO 392
+#define SPECIES_WALREIN 393
+#define SPECIES_CLAMPERL 394
+#define SPECIES_HUNTAIL 395
+#define SPECIES_GOREBYSS 396
+#define SPECIES_RELICANTH 397
+#define SPECIES_LUVDISC 398
+#define SPECIES_BAGON 399
+#define SPECIES_SHELGON 400
+#define SPECIES_SALAMENCE 401
+#define SPECIES_BELDUM 402
+#define SPECIES_METANG 403
+#define SPECIES_METAGROSS 404
+#define SPECIES_REGIROCK 405
+#define SPECIES_REGICE 406
+#define SPECIES_REGISTEEL 407
+#define SPECIES_LATIAS 408
+#define SPECIES_LATIOS 409
+#define SPECIES_KYOGRE 410
+#define SPECIES_GROUDON 411
+#define SPECIES_RAYQUAZA 412
+#define SPECIES_JIRACHI 413
+#define SPECIES_DEOXYS_NORMAL 414
+#define SPECIES_UNOWN_EMARK 415
+#define SPECIES_UNOWN_QMARK 416
+#define SPECIES_DEOXYS_ATTACK 417
+#define SPECIES_DEOXYS_DEFENSE 418
+#define SPECIES_DEOXYS_SPEED 419
+#define SPECIES_MUNCHLAX 420
+#define SPECIES_DECOY 421
+#define SPECIES_STATUE 422
+#define SPECIES_RAYQUAZA_CUTSCENE 423
+
+#endif // GUARD_CONSTANTS_SPECIES_H
diff --git a/include/constants/weather.h b/include/constants/weather.h
new file mode 100644
index 0000000..e7225b9
--- /dev/null
+++ b/include/constants/weather.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_CONSTANTS_WEATHER_H
+#define GUARD_CONSTANTS_WEATHER_H
+
+#define WEATHER_CLEAR 0
+#define WEATHER_SUNNY 1
+#define WEATHER_SANDSTORM 2
+#define WEATHER_CLOUDY` 3
+#define WEATHER_RAIN 4
+#define WEATHER_HAIL 5
+#define WEATHER_FOG 6
+#define WEATHER_SNOW 7
+#define WEATHER_RANDOM 8
+
+#endif // GUARD_CONSTANTS_WEATHER_H
diff --git a/include/dungeon.h b/include/dungeon.h
new file mode 100644
index 0000000..faf58e5
--- /dev/null
+++ b/include/dungeon.h
@@ -0,0 +1,32 @@
+#ifndef GUARD_DUNGEON_H
+#define GUARD_DUNGEON_H
+
+struct DungeonName
+{
+ const u8 *name1;
+ const u8 *name2;
+};
+
+struct Dungeon
+{
+ u8 stairDirection;
+ u8 unk1;
+ bool8 isRecruitable;
+ s8 unk3;
+ u8 maxItemCount;
+ u8 maxPartySize;
+ u8 levelCondition;
+ u8 moneyCondition;
+ u8 unk8;
+ u8 unk9;
+ bool8 saveBeforeEntering; //whether to quicksave or not before entering
+ u8 unkB; // Apparently is a HM mask (Fly, Dive, Waterfall, Surf, Water)
+ s16 timer;
+ s16 unkE;
+};
+
+extern struct Dungeon gDungeons[];
+extern struct DungeonName gDungeonNames[];
+const u8 *GetDungeonName1(u8 dungeon);
+
+#endif //GUARD_DUNGEON_H
diff --git a/include/file_system.h b/include/file_system.h
index 360f7ac..45f6aac 100644
--- a/include/file_system.h
+++ b/include/file_system.h
@@ -26,6 +26,12 @@ struct SiroArchive
u8 *data;
};
+struct UnkFileStruct1
+{
+ /* 0x0 */ u32 unk0;
+ /* 0x4 */ u32 unk4;
+};
+
struct OpenedFile *OpenFile(const char *filename, const struct FileArchive *arc);
u8 *GetFileDataPtr(struct OpenedFile *openedFile, int unused);
struct OpenedFile *OpenFileAndGetFileDataPtr(const char *filename, const struct FileArchive *arc);
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index ff92fcc..b241eb3 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -100,7 +100,7 @@ struct CgbChannel
u8 le;
u8 sw;
u32 fr;
- u32 wp;
+ u32* wp;
u32 cp;
u32 tp;
u32 pp;
diff --git a/include/input.h b/include/input.h
new file mode 100644
index 0000000..0c4208d
--- /dev/null
+++ b/include/input.h
@@ -0,0 +1,62 @@
+#ifndef GUARD_INPUT_H
+#define GUARD_INPUT_H
+
+struct UnkInputStruct1
+{
+ /* 0x0 */ u16 unk0;
+ /* 0x2 */ u16 unk2;
+ /* 0x4 */ u16 unk4;
+ /* 0x6 */ u16 unk6;
+ /* 0x8 */ u16 unk8;
+ /* 0xA */ u16 unkA;
+ /* 0xC */ u32 unkC;
+};
+
+struct UnkInputStruct2
+{
+ /* 0x0 */ u16 unk0;
+ /* 0x2 */ u16 unk2;
+ /* 0x4 */ u16 unk4;
+ /* 0x6 */ u16 unk6;
+};
+
+struct Input
+{
+ /* 0x0 */ u16 unk0;
+ /* 0x2 */ u16 unk2;
+ /* 0x4 */ u16 unk4;
+ /* 0x6 */ u16 unk6;
+ /* 0x8 */ u16 unk8;
+ /* 0xA */ u16 unkA;
+ /* 0xC */ u16 unkC;
+ /* 0xE */ u16 unkE;
+ /* 0x10 */ u16 unk10;
+ /* 0x12 */ u16 unk12;
+ /* 0x14 */ u16 unk14;
+ /* 0x16 */ u16 unk16;
+ /* 0x16 */ u16 unk18;
+ /* 0x1A */ u16 unk1A;
+ /* 0x1C */ u16 unk1C;
+ /* 0x1E */ u16 unk1E;
+ /* 0x20 */ u32 unk20;
+ /* 0x24 */ u16 unk24;
+ /* 0x24 */ u16 unk26;
+ /* 0x28 */ u8 unk28;
+ /* 0x29 */ u8 unk29;
+ /* 0x2A */ u8 unk2A;
+ /* 0x2B */ u8 padding;
+};
+
+void InitInput(void);
+void sub_800485C(void);
+u8 sub_80048B8(void);
+u8 sub_80048BC(void);
+u8 sub_80048C0(void);
+u8 sub_80048C4(void);
+u8 sub_80048C8(void);
+u8 sub_80048CC(void);
+void sub_80048D0(void);
+void sub_80048F8(void);
+void sub_8004914(void);
+
+#endif // GUARD_INPUT_H
diff --git a/include/m4a.h b/include/m4a.h
new file mode 100644
index 0000000..fb05110
--- /dev/null
+++ b/include/m4a.h
@@ -0,0 +1,26 @@
+#ifndef GUARD_M4A_H
+#define GUARD_M4A_H
+
+#include "gba/m4a_internal.h"
+
+void m4aSoundVSyncOn(void);
+void m4aSoundVSyncOff(void);
+
+void m4aSoundInit(void);
+void m4aSoundMain(void);
+void m4aSongNumStart(u16 n);
+void m4aSongNumStartOrChange(u16 n);
+void m4aSongNumStop(u16 n);
+void m4aMPlayAllStop(void);
+void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
+void m4aMPlayFadeOut(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed);
+void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo);
+void m4aMPlayStop(struct MusicPlayerInfo *mplayInfo);
+void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
+
+extern struct MusicPlayerInfo gUnknown_20008F0; // BGM??
+
+
+#endif //GUARD_M4A_H
diff --git a/include/pokemon.h b/include/pokemon.h
new file mode 100644
index 0000000..6c18f7d
--- /dev/null
+++ b/include/pokemon.h
@@ -0,0 +1,61 @@
+#ifndef POKEMON_H
+#define POKEMON_H
+
+struct EvolveStruct1
+{
+ u16 evolve_from;
+ u16 evolve_type;
+};
+
+struct EvolveNeeds
+{
+ u16 evolve_need1;
+ u16 evolve_need2;
+};
+
+struct gPokemon
+{
+ /* 0x0 */ u8* species;
+ /* 0x4 */ u8* category;
+ /* 0x8 */ u8 overworld_sprite;
+ /* 0x9 */ u8 size;
+ /* 0xA */ u8 unkA;
+ /* 0xB */ u8 unkB;
+ /* 0xC */ s32 move_speed;
+ /* 0x10 */ u16 dialogue_sprites;
+ /* 0x12 */ u8 unk12;
+ /* 0x13 */ u8 type_1;
+ /* 0x14 */ u8 type_2;
+ /* 0x15 */ u8 walkable_tiles;
+ /* 0x16 */ u8 friend_area;
+ /* 0x17 */ u8 ability_1;
+ /* 0x18 */ u8 ability_2;
+ /* 0x19 */ u8 shadow_size;
+ /* 0x1A */ u8 unk1A;
+ /* 0x1B */ u8 unk1B;
+ /* 0x1C */ bool8 isMoving;
+ /* 0x1D */ u8 unk1D;
+ /* 0x1E */ u16 base_hp;
+ /* 0x20 */ u16 base_exp;
+ /* 0x22 */ u16 unk22; // verified
+ /* 0x24 */ u16 base_att;
+ /* 0x26 */ u16 base_spatt;
+ /* 0x28 */ u16 base_def;
+ /* 0x2A */ u16 base_spdef;
+ /* 0x2C */ u16 lowkick_dmg;
+ /* 0x2E */ u16 sizeorb_dmg;
+ /* 0x30 */ u8 unk30;
+ /* 0x31 */ u8 unk31;
+ /* 0x32 */ u8 unk32;
+ /* 0x33 */ bool8 unk33;
+ /* 0x34 */ struct EvolveStruct1 pre;
+ /* 0x38 */ struct EvolveNeeds need;
+ /* 0x3C */ u16 dexNo;
+ /* 0x3E */ u16 internalNo; // verified
+ /* 0x40 */ s16 base_recruit; // verified
+ /* 0x42 */ u16 alphabetNo;
+ /* 0x44 */ u16 parentNo;
+ /* 0x46 */ u16 unk46;
+};
+
+#endif // POKEMON_H
diff --git a/include/save.h b/include/save.h
new file mode 100644
index 0000000..37309cf
--- /dev/null
+++ b/include/save.h
@@ -0,0 +1,34 @@
+struct unkTimeStruct
+{
+ u16 unk0;
+ u8 unk2;
+ u8 unk3;
+ u8 unk4;
+};
+
+struct UnkStruct_203B184 {
+ /* 0x0 */ u32 *unk0;
+ /* 0x4 */ u32 *unk4;
+ /* 0x8 */ u8 *unk8;
+ /* 0xC */ u8 *unkC;
+ /* 0x10 */ u32 *unk10;
+ /* 0x14 */ u32 *unk14;
+ /* 0x18 */ u32 unk18;
+ /* 0x1C */ u32 unk1C;
+ /* 0x20 */ u32 unk20;
+ /* 0x24 */ u8 *unk24;
+ /* 0x28 */ u8 *unk28;
+ /* 0x2C */ u32 unk2C;
+ /* 0x30 */ struct unkTimeStruct *unk30;
+ u32 unk34;
+ u32 unk38;
+ u32 unk3C;
+ u32 unk40;
+ u32 unk44;
+ u32 unk48;
+ u8 *unk04C;
+ u32 unk050;
+ u32 unk054;
+ u32 unk058;
+};
+
diff --git a/include/text.h b/include/text.h
new file mode 100644
index 0000000..d23ccf7
--- /dev/null
+++ b/include/text.h
@@ -0,0 +1,28 @@
+#ifndef GUARD_TEXT_H
+#define GUARD_TEXT_H
+
+struct UnkTextStruct1 {
+ u8 fill00[4];
+ u16 unk04;
+ u8 fill06[2];
+ u16 unk08;
+ u8 fill04[0x3c];
+ u8 unk46;
+};
+
+struct UnkTextStruct2 {
+ u8 fill00[0x0c];
+ s16 unk0c;
+ u8 fill0e[2];
+ s16 unk10;
+ u8 fill12[0x06];
+};
+
+void sub_8006218(void);
+u32 xxx_update_some_bg_tiles(u32 a0);
+void sub_8006438(const struct UnkTextStruct2 *a0, u8 a1, u8 a2, u32 *a3);
+void sub_8006554(void *a0, void *a1, void *a2, void *a3, u32 a4, const struct UnkTextStruct2 *a5, u8 a6, u32 a7, u32 *a8, u32 a9);
+void sub_800898C(void);
+void sub_80089AC(const struct UnkTextStruct2 *a0, void *a1);
+void sub_8009388(void);
+#endif
diff --git a/include/time.h b/include/time.h
new file mode 100644
index 0000000..9aeb28d
--- /dev/null
+++ b/include/time.h
@@ -0,0 +1,20 @@
+#ifndef TIME_H
+#define TIME_H
+
+struct PlayTimeStruct
+{
+ s16 hours;
+ u8 minutes;
+ u8 seconds;
+ u8 frames;
+};
+
+void IncrementPlayTime(struct PlayTimeStruct *Time);
+void ResetPlayTime(struct PlayTimeStruct *Time);
+struct PlayTimeStruct *sub_8094FA0(void);
+void DeconstructPlayTime(struct PlayTimeStruct *r0, u32 *outHours, u32 *outMinutes, u32 *outSeconds);
+void sub_8094F88(void);
+
+
+#endif // TIME_H
+