summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm_fieldmap.h23
-rw-r--r--include/battle_setup.h7
-rw-r--r--include/coins.h12
-rw-r--r--include/decompress.h16
-rw-r--r--include/field_camera.h18
-rw-r--r--include/field_effect.h29
-rw-r--r--include/field_map_obj.h11
-rw-r--r--include/field_message_box.h3
-rw-r--r--include/field_player_avatar.h17
-rw-r--r--include/gba/m4a_internal.h5
-rw-r--r--include/global.berry.h (renamed from include/berry.h)6
-rw-r--r--include/global.fieldmap.h (renamed from include/fieldmap.h)6
-rw-r--r--include/global.h4
-rw-r--r--include/heal_location.h18
-rw-r--r--include/intro.h7
-rw-r--r--include/item.h35
-rw-r--r--include/landmark.h6
-rw-r--r--include/libgncmultiboot.h16
-rw-r--r--include/link.h2
-rw-r--r--include/lottery_corner.h12
-rw-r--r--include/m4a.h13
-rw-r--r--include/main.h1
-rw-r--r--include/map_obj_lock.h16
-rw-r--r--include/menu.h2
-rw-r--r--include/menu_cursor.h24
-rw-r--r--include/mori_debug_menu.h17
-rw-r--r--include/new_game.h16
-rw-r--r--include/option_menu.h6
-rw-r--r--include/palette.h4
-rw-r--r--include/play_time.h9
-rw-r--r--include/pokedex.h156
-rw-r--r--include/pokemon.h4
-rw-r--r--include/pokemon_size_record.h14
-rw-r--r--include/record_mixing.h34
-rw-r--r--include/rom4.h13
-rw-r--r--include/rtc.h24
-rw-r--r--include/safari_zone.h21
-rw-r--r--include/save.h60
-rw-r--r--include/save_menu_util.h16
-rw-r--r--include/script.h2
-rw-r--r--include/siirtc.h8
-rw-r--r--include/start_menu.h23
-rw-r--r--include/starter_choose.h13
-rw-r--r--include/string_util.h2
-rw-r--r--include/task.h6
-rw-r--r--include/text.h2
-rw-r--r--include/text_window.h18
-rw-r--r--include/tileset_anim.h30
-rw-r--r--include/title_screen.h13
-rw-r--r--include/trainer_see.h35
-rw-r--r--include/truck_scene.h13
-rw-r--r--include/var.h2
-rw-r--r--include/wallclock.h14
-rw-r--r--include/weather.h40
-rw-r--r--include/wild_encounter.h14
55 files changed, 892 insertions, 46 deletions
diff --git a/include/asm_fieldmap.h b/include/asm_fieldmap.h
new file mode 100644
index 000000000..afc1fac7c
--- /dev/null
+++ b/include/asm_fieldmap.h
@@ -0,0 +1,23 @@
+#ifndef GUARD_FIELDMAP_H
+#define GUARD_FIELDMAP_H
+
+void not_trainer_hill_battle_pyramid(void);
+void sub_8055FC0(void);
+u8 MapGridGetZCoordAt();
+bool8 MapGridIsImpassableAt(s16, s16);
+int MapGridGetMetatileIdAt(int, int);
+int MapGridGetMetatileBehaviorAt(int x, int y); // return: (u8|u16|int) args: (int|s16|s32)
+u8 MapGridGetMetatileLayerTypeAt(/*TODO: arg types*/);
+void MapGridSetMetatileIdAt(u32, u32, u16);
+void save_serialize_map(void);
+int CameraMove(int, int);
+void sub_8056C50(u16, u16);
+void sav1_camera_get_focus_coords(s16 *x, s16 *y);
+void GetCameraCoords(s16*, s16*);
+void sub_8056D28(struct MapData *pData);
+void sub_8056D38(struct MapData *pData);
+void apply_map_tileset2_palette(struct MapData *pData);
+void copy_map_tileset1_tileset2_to_vram(/*TODO: arg types*/);
+void apply_map_tileset1_tileset2_palette(/*TODO: arg types*/);
+
+#endif // GUARD_FIELDMAP_H
diff --git a/include/battle_setup.h b/include/battle_setup.h
new file mode 100644
index 000000000..2c9d1d8c5
--- /dev/null
+++ b/include/battle_setup.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_BATTLE_SETUP_H
+#define GUARD_BATTLE_SETUP_H
+
+void CheckForSafariZoneAndProceed(void);
+void sub_8081A5C(void);
+
+#endif // GUARD_BATTLE_SETUP_H
diff --git a/include/coins.h b/include/coins.h
new file mode 100644
index 000000000..d066c2422
--- /dev/null
+++ b/include/coins.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_COINS_H
+#define GUARD_COINS_H
+
+void UpdateCoinsWindow(s32 a, u8 b, u8 c);
+void ShowCoinsWindow(u32 a, u8 b, u8 c);
+void HideCoinsWindow(u8 a, u8 b);
+void PrintCoins(s32 a, u8 b, u8 c, u8 d);
+u16 GetCoins(void);
+bool8 GiveCoins(u16 coins);
+bool8 TakeCoins(u16 coins);
+
+#endif // GUARD_COINS_H
diff --git a/include/decompress.h b/include/decompress.h
new file mode 100644
index 000000000..382e6d76a
--- /dev/null
+++ b/include/decompress.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_DECOMPRESS_H
+#define GUARD_DECOMPRESS_H
+
+#include "sprite.h"
+
+void sub_800D238(const void *src, void *dest);
+void LZDecompressVram(const void *src, void *dest);
+void LoadCompressedObjectPic(const struct SpriteSheet *a);
+void LoadCompressedObjectPicOverrideBuffer(const struct SpriteSheet *a, void *buffer);
+void LoadCompressedObjectPalette(const struct SpritePalette *a);
+void LoadCompressedObjectPaletteOverrideBuffer(const struct SpritePalette *a, void *buffer);
+void DecompressPicFromTable_2(const struct SpriteSheet *a, u8 b, u8 c, void *d, void *e, s32 f);
+void sub_800D334(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g);
+void sub_800D378(const struct SpriteSheet *a, u32 b, u32 c, u32 d, void *dest, s32 f, u32 g, u32 h);
+
+#endif // GUARD_DECOMPRESS_H
diff --git a/include/field_camera.h b/include/field_camera.h
new file mode 100644
index 000000000..51c370d0a
--- /dev/null
+++ b/include/field_camera.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_FIELD_CAMERA_H
+#define GUARD_FIELD_CAMERA_H
+
+void move_tilemap_camera_to_upper_left_corner(void);
+void sub_8057A58(void);
+void sub_8057B14(u16 *a, u16 *b);
+void DrawWholeMapView(void);
+void CurrentMapDrawMetatileAt(int a, int b);
+void DrawDoorMetatileAt(int x, int y, u16 *arr);
+void ResetCameraUpdateInfo(void);
+u32 InitCameraUpdateCallback(u8 a);
+void CameraUpdate(void);
+void SetCameraPanningCallback(void (*a)(void));
+void SetCameraPanning(s16 a, s16 b);
+void InstallCameraPanAheadCallback(void);
+void UpdateCameraPanning(void);
+
+#endif // GUARD_FIELD_CAMERA_H
diff --git a/include/field_effect.h b/include/field_effect.h
new file mode 100644
index 000000000..a46c048cb
--- /dev/null
+++ b/include/field_effect.h
@@ -0,0 +1,29 @@
+#ifndef GUARD_FIELD_EFFECT_H
+#define GUARD_FIELD_EFFECT_H
+
+#include "sprite.h"
+
+u32 FieldEffectStart(u8 id);
+bool8 FieldEffectCmd_loadtiles(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadpal(u8 **script, u32 *val);
+bool8 FieldEffectCmd_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_end(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadgfx_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadtiles_callnative(u8 **script, u32 *val);
+bool8 FieldEffectCmd_loadfadedpal_callnative(u8 **script, u32 *val);
+u32 FieldEffectScript_ReadWord(u8 **script);
+void FieldEffectScript_LoadTiles(u8 **script);
+void FieldEffectScript_LoadFadedPalette(u8 **script);
+void FieldEffectScript_LoadPalette(u8 **script);
+void FieldEffectScript_CallNative(u8 **script, u32 *val);
+void FieldEffectFreeGraphicsResources(struct Sprite *sprite);
+void FieldEffectStop(struct Sprite *sprite, u8 id);
+void FieldEffectFreeTilesIfUnused(u16 tileStart);
+void FieldEffectFreePaletteIfUnused(u8 paletteNum);
+void FieldEffectActiveListClear(void);
+void FieldEffectActiveListAdd(u8 id);
+void FieldEffectActiveListRemove(u8 id);
+bool8 FieldEffectActiveListContains(u8 id);
+
+#endif // GUARD_FIELD_EFFECT_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
new file mode 100644
index 000000000..c31b0fc2a
--- /dev/null
+++ b/include/field_map_obj.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_FIELD_MAP_OBJ_H
+#define GUARD_FIELD_MAP_OBJ_H
+
+#include "sprite.h"
+
+void sub_805C058(struct MapObject *mapObject, s16 a, s16 b);
+void FieldObjectSetDirection(struct MapObject *pObject, u8 unk_18);
+void MoveCoords(u8 direction, s16 *x, s16 *y);
+void meta_step(struct MapObject *pObject, struct Sprite *pSprite, u32 (*d8)(void));
+
+#endif // GUARD_FIELD_MAP_OBJ_H
diff --git a/include/field_message_box.h b/include/field_message_box.h
index 072a9fd66..50d96ccd1 100644
--- a/include/field_message_box.h
+++ b/include/field_message_box.h
@@ -12,8 +12,11 @@ enum
void InitFieldMessageBox(void);
bool8 ShowFieldMessage(u8 *message);
bool8 ShowFieldAutoScrollMessage(u8 *message);
+bool8 unref_sub_8064BB8(u8 *message);
+bool8 unref_sub_8064BD0(u8 *message);
void HideFieldMessageBox(void);
u8 GetFieldMessageBoxMode(void);
bool8 IsFieldMessageBoxHidden(void);
+void unref_sub_8064CA0(void);
#endif // GUARD_FIELD_MESSAGE_BOX_H
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
new file mode 100644
index 000000000..0c9e78a2a
--- /dev/null
+++ b/include/field_player_avatar.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_FIELD_PLAYER_AVATAR_H
+#define GUARD_FIELD_PLAYER_AVATAR_H
+
+void player_step(u8 a, u16 b, u16 c);
+void SetPlayerAvatarTransitionFlags(u16 a);
+void sub_8059204(void);
+void sub_80594C0(void);
+void GetXYCoordsOneStepInFrontOfPlayer(s16 *x, s16 *y);
+void PlayerGetDestCoords(s16 *, s16 *);
+u8 player_get_direction_lower_nybble(void);
+u8 player_get_direction_upper_nybble(void);
+u8 TestPlayerAvatarFlags(u8);
+void sub_80597E8(void);
+void sub_80597F4(void);
+void InitPlayerAvatar(s16 a, s16 b, u8 c, u8 d);
+
+#endif
diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h
index f5d44de99..572b77711 100644
--- a/include/gba/m4a_internal.h
+++ b/include/gba/m4a_internal.h
@@ -1,3 +1,6 @@
+#ifndef GUARD_M4A_INTERNAL_H
+#define GUARD_M4A_INTERNAL_H
+
#include "gba/gba.h"
// ASCII encoding of 'Smsh' in reverse
@@ -460,3 +463,5 @@ void ply_xleng(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xswee(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0C(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
void ply_xcmd_0D(struct MusicPlayerInfo *, struct MusicPlayerTrack *);
+
+#endif // GUARD_M4A_INTERNAL_H
diff --git a/include/berry.h b/include/global.berry.h
index a80e77512..8b98a5f58 100644
--- a/include/berry.h
+++ b/include/global.berry.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_BERRY_H
-#define GUARD_BERRY_H
+#ifndef GUARD_GLOBAL_BERRY_H
+#define GUARD_GLOBAL_BERRY_H
struct Berry
{
@@ -54,4 +54,4 @@ struct BerryTree
u8 watered4:1;
};
-#endif // GUARD_BERRY_H
+#endif // GUARD_GLOBAL_BERRY_H
diff --git a/include/fieldmap.h b/include/global.fieldmap.h
index 16a80955a..20f28b02f 100644
--- a/include/fieldmap.h
+++ b/include/global.fieldmap.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_FIELDMAP_H
-#define GUARD_FIELDMAP_H
+#ifndef GUARD_GLOBAL_FIELDMAP_H
+#define GUARD_GLOBAL_FIELDMAP_H
enum
{
@@ -289,4 +289,4 @@ extern u8 gSelectedMapObject;
extern struct MapHeader gMapHeader;
extern struct PlayerAvatar gPlayerAvatar;
-#endif // GUARD_FIELDMAP_H
+#endif // GUARD_GLOBAL_FIELDMAP_H
diff --git a/include/global.h b/include/global.h
index b1bfa25ad..7fbf5755b 100644
--- a/include/global.h
+++ b/include/global.h
@@ -95,8 +95,8 @@ struct SecretBaseRecord
};
#include "game_stat.h"
-#include "fieldmap.h"
-#include "berry.h"
+#include "global.fieldmap.h"
+#include "global.berry.h"
#include "pokemon.h"
struct WarpData
diff --git a/include/heal_location.h b/include/heal_location.h
new file mode 100644
index 000000000..785918bd6
--- /dev/null
+++ b/include/heal_location.h
@@ -0,0 +1,18 @@
+#ifndef GUARD_HEAL_LOCATION_H
+#define GUARD_HEAL_LOCATION_H
+
+#include "sprite.h"
+
+struct HealLocation
+{
+ s8 group;
+ s8 map;
+ u16 x;
+ u16 y;
+};
+
+u32 GetHealLocationIndexByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocationByMap(u16 mapGroup, u16 mapNum);
+const struct HealLocation *GetHealLocation(u32 index);
+
+#endif // GUARD_HEAL_LOCATION_H
diff --git a/include/intro.h b/include/intro.h
new file mode 100644
index 000000000..a859a9ce4
--- /dev/null
+++ b/include/intro.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_INTRO_H
+#define GUARD_INTRO_H
+
+void c2_copyright_1(void);
+void CB2_InitCopyrightScreen(void);
+
+#endif // GUARD_INTRO_H
diff --git a/include/item.h b/include/item.h
new file mode 100644
index 000000000..cc917dbc8
--- /dev/null
+++ b/include/item.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_ITEM_H
+#define GUARD_ITEM_H
+
+typedef void (*ItemUseFunc)(u8);
+
+void CopyItemName(u16 itemId, u8 *string);
+bool8 IsBagPocketNonEmpty(u8 pocket);
+bool8 CheckBagHasItem(u16 itemId, u16 count);
+bool8 CheckBagHasSpace(u16 itemId, u16 count);
+bool8 AddBagItem(u16 itemId, u16 count);
+bool8 RemoveBagItem(u16 itemId, u16 count);
+u8 GetPocketByItemId(u16 itemId);
+void ClearItemSlots(struct ItemSlot *itemSlots, u8 b);
+u8 CountUsedPCItemSlots(void);
+bool8 CheckPCHasItem(u16 itemId, u16 count);
+bool8 AddPCItem(u16 itemId, u16 count);
+void RemovePCItem(u8 index, u16 count);
+void SwapRegisteredBike(void);
+struct Item *ItemId_GetItem(u16 itemId);
+u16 ItemId_GetId(u16 itemId);
+u16 ItemId_GetPrice(u16 itemId);
+u8 ItemId_GetHoldEffect(u16 itemId);
+u8 ItemId_GetHoldEffectParam(u16 itemId);
+u8 *ItemId_GetDescription(u16 itemId);
+bool8 ItemId_CopyDescription(u8 *a, u32 itemId, u32 c);
+u8 ItemId_GetImportance(u16 itemId);
+u8 ItemId_GetUnknownValue(u16 itemId);
+u8 ItemId_GetPocket(u16 itemId);
+u8 ItemId_GetType(u16 itemId);
+ItemUseFunc ItemId_GetFieldFunc(u16 itemId);
+u8 ItemId_GetBattleUsage(u16 itemId);
+ItemUseFunc ItemId_GetBattleFunc(u16 itemId);
+u8 ItemId_GetSecondaryId(u16 itemId);
+
+#endif // GUARD_ITEM_H
diff --git a/include/landmark.h b/include/landmark.h
new file mode 100644
index 000000000..eee5ac8c2
--- /dev/null
+++ b/include/landmark.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_LANDMARK_H
+#define GUARD_LANDMARK_H
+
+u8 *GetLandmarkName(u8 mapSection, u8 id, u8 count);
+
+#endif // GUARD_LANDMARK_H
diff --git a/include/libgncmultiboot.h b/include/libgncmultiboot.h
new file mode 100644
index 000000000..b4d1cd231
--- /dev/null
+++ b/include/libgncmultiboot.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_LIBGNCMULTIBOOT_H
+#define GUARD_LIBGNCMULTIBOOT_H
+
+struct GcmbStruct
+{
+ u16 gcmb_field_0;
+ u8 gcmb_field_2;
+};
+
+void GameCubeMultiBoot_Main(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_ExecuteProgram(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_Init(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_HandleSerialInterrupt(struct GcmbStruct *pStruct);
+void GameCubeMultiBoot_Quit(void);
+
+#endif // GUARD_LIBGNCMULTIBOOT_H
diff --git a/include/link.h b/include/link.h
index 550102fb9..694339164 100644
--- a/include/link.h
+++ b/include/link.h
@@ -1,8 +1,6 @@
#ifndef GUARD_LINK_H
#define GUARD_LINK_H
-#include "global.h"
-
#define MAX_LINK_PLAYERS 4
#define CMD_LENGTH 8
#define QUEUE_CAPACITY 50
diff --git a/include/lottery_corner.h b/include/lottery_corner.h
new file mode 100644
index 000000000..06f38a5c9
--- /dev/null
+++ b/include/lottery_corner.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_LOTTERY_CORNER_H
+#define GUARD_LOTTERY_CORNER_H
+
+void sub_8145A78(void);
+void sub_8145AA4(u16 a);
+void sub_8145AEC(void);
+void PickLotteryCornerTicket(void);
+void sub_8145D14(u32 a);
+u32 sub_8145D3C(void);
+void unref_sub_8145D64(u16 a);
+
+#endif // GUARD_LOTTERY_CORNER_H
diff --git a/include/m4a.h b/include/m4a.h
new file mode 100644
index 000000000..85cba5d77
--- /dev/null
+++ b/include/m4a.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_M4A_H
+#define GUARD_M4A_H
+
+#include "gba/m4a_internal.h"
+
+void m4aSoundInit(void);
+void m4aSoundMain(void);
+void m4aSongNumStart(u16 n);
+void m4aSoundVSync(void);
+
+void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
+
+#endif //GUARD_M4A_H
diff --git a/include/main.h b/include/main.h
index 67595ac65..054bba901 100644
--- a/include/main.h
+++ b/include/main.h
@@ -50,6 +50,7 @@ extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
extern const u8 gGameLanguage;
+void AgbMain(void);
void SetMainCallback2(MainCallback callback);
void InitKeys(void);
void SetVBlankCallback(IntrCallback callback);
diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h
new file mode 100644
index 000000000..6d677ad8c
--- /dev/null
+++ b/include/map_obj_lock.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_MAP_OBJ_LOCK_H
+#define GUARD_MAP_OBJ_LOCK_H
+
+bool8 walkrun_is_standing_still(void);
+void sub_8064CDC(u8 taskId);
+bool8 sub_8064CFC(void);
+void sub_8064D20(void);
+void sub_8064D38(u8 taskId);
+bool8 sub_8064DB4(void);
+void sub_8064DD8(void);
+void sub_8064E2C(void);
+void unref_sub_8064E5C(void);
+void sub_8064EAC(void);
+void sub_8064ED4(void);
+
+#endif // GUARD_MAP_OBJ_LOCK_H
diff --git a/include/menu.h b/include/menu.h
index 6df47cf93..7dfe418a9 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -3,7 +3,7 @@
#include "text.h"
-void InitMenuWindow(struct WindowConfig *);
+void InitMenuWindow(const struct WindowConfig *);
void MultistepInitMenuWindowBegin(struct WindowConfig *);
bool32 MultistepInitMenuWindowContinue(void);
void unref_sub_8071DA4(struct WindowConfig *, u16);
diff --git a/include/menu_cursor.h b/include/menu_cursor.h
new file mode 100644
index 000000000..cc6cc16bc
--- /dev/null
+++ b/include/menu_cursor.h
@@ -0,0 +1,24 @@
+#ifndef GUARD_MENU_CURSOR_H
+#define GUARD_MENU_CURSOR_H
+
+#include "sprite.h"
+
+void sub_814A590(void);
+u8 sub_814A5C0(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
+u8 sub_814A758(u8 a1, u8 a2, u8 a3, u8 a4);
+u8 unref_sub_814A7AC(u8 a1, u16 a2, u8 a3);
+void sub_814A7FC(void);
+void sub_814A880(u8 a1, u8 a2);
+void sub_814A904(void);
+void sub_814A958(u8 a1);
+void sub_814AABC(void (*callback)(struct Sprite *));
+void sub_814AAF8(u16 a1);
+void sub_814AB84(void);
+void unref_sub_814ABE4(int a1);
+u8 CreateBlendedOutlineCursor(u8 a1, u16 a2, u8 a3, u16 a4, u8 a5);
+void sub_814AD44(void);
+void sub_814AD7C(u8 a1, u8 a2);
+void sub_814ADC8(void);
+void sub_814ADF4(u8 a1);
+
+#endif // GUARD_MENU_CURSOR_H
diff --git a/include/mori_debug_menu.h b/include/mori_debug_menu.h
new file mode 100644
index 000000000..0d1f49d3b
--- /dev/null
+++ b/include/mori_debug_menu.h
@@ -0,0 +1,17 @@
+#ifndef GUARD_MORI_DEBUG_MENU_H
+#define GUARD_MORI_DEBUG_MENU_H
+
+s8 sub_8083D4C(void);
+u8 MoriDebugMenu_SearchChild(u8 a1, u8 a2, u8 *ptr);
+s8 MoriDebugMenu_Egg(void);
+s8 MoriDebugMenu_MaleEgg(void);
+s8 MoriDebugMenu_1000Steps(void);
+s8 MoriDebugMenu_10000Steps(void);
+s8 MoriDebugMenu_MoveTutor(void);
+s8 MoriDebugMenu_BreedEgg(void);
+s8 MoriDebugMenu_LongName(void);
+s8 MoriDebugMenu_PokeblockCase(void);
+s8 MoriDebugMenuProcessInput(void);
+s8 InitMoriDebugMenu(void);
+
+#endif // GUARD_MORI_DEBUG_MENU_H
diff --git a/include/new_game.h b/include/new_game.h
new file mode 100644
index 000000000..dce42bf52
--- /dev/null
+++ b/include/new_game.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_NEW_GAME_H
+#define GUARD_NEW_GAME_H
+
+void write_word_to_mem(u32 a1, u8 *a2);
+void sub_8052D10(u8 *a1, u8 *a2);
+void set_player_trainer_id(void);
+void SetDefaultOptions(void);
+void sub_8052D78(void);
+void sub_8052DA8(void);
+void sub_8052DE4(void);
+void sub_8052E04(void);
+void ClearSav2(void);
+void sub_8052E4C(void);
+void NewGameInitData(void);
+
+#endif // GUARD_NEW_GAME_H
diff --git a/include/option_menu.h b/include/option_menu.h
new file mode 100644
index 000000000..b23a73c4c
--- /dev/null
+++ b/include/option_menu.h
@@ -0,0 +1,6 @@
+#ifndef GUARD_OPTION_MENU_H
+#define GUARD_OPTION_MENU_H
+
+void CB2_InitOptionMenu(void);
+
+#endif // GUARD_OPTION_MENU_H
diff --git a/include/palette.h b/include/palette.h
index de2cf0083..37fcb4d65 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -1,8 +1,6 @@
#ifndef GUARD_PALETTE_H
#define GUARD_PALETTE_H
-#include "global.h"
-
#define gPaletteFade_selectedPalettes (gPaletteFade.multipurpose1) // normal and fast fade
#define gPaletteFade_blendCnt (gPaletteFade.multipurpose1) // hardware fade
#define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade
@@ -54,7 +52,7 @@ bool8 unref_sub_8073D3C(u32, u8, u8, u8, u16);
void unref_sub_8073D84(u8, u32 *);
void ResetPaletteStructByUid(u16);
void ResetPaletteStruct(u8);
-void ResetPaletteFadeControl();
+void ResetPaletteFadeControl(void);
void unref_sub_8074168(u16);
void unref_sub_8074194(u16);
void InvertPlttBuffer(u32);
diff --git a/include/play_time.h b/include/play_time.h
index ac64b62fb..49091f4b1 100644
--- a/include/play_time.h
+++ b/include/play_time.h
@@ -1,9 +1,10 @@
#ifndef GUARD_PLAY_TIME_H
#define GUARD_PLAY_TIME_H
-void PlayTimeCounter_Reset();
-void PlayTimeCounter_Start();
-void PlayTimeCounter_Stop();
-void PlayTimeCounter_Update();
+void PlayTimeCounter_Reset(void);
+void PlayTimeCounter_Start(void);
+void PlayTimeCounter_Stop(void);
+void PlayTimeCounter_Update(void);
+void PlayTimeCounter_SetToMax(void);
#endif // GUARD_PLAY_TIME_H
diff --git a/include/pokedex.h b/include/pokedex.h
new file mode 100644
index 000000000..22ba76fc6
--- /dev/null
+++ b/include/pokedex.h
@@ -0,0 +1,156 @@
+#ifndef GUARD_POKEDEX_H
+#define GUARD_POKEDEX_H
+
+#include "sprite.h"
+
+struct PokedexListItem
+{
+ u16 dexNum;
+ u16 seen:1;
+ u16 owned:1;
+};
+
+struct PokedexView
+{
+ struct PokedexListItem unk0[386];
+ u16 unk608;
+ u8 unk60A_1:1;
+ u8 unk60A_2:1;
+ u8 unk60B;
+ u16 unk60C;
+ u16 selectedPokemon;
+ u16 unk610;
+ u16 dexMode; //National or Hoenn
+ u16 unk614;
+ u16 dexOrder;
+ u16 unk618;
+ u16 unk61A;
+ u16 unk61C;
+ u16 unk61E[4];
+ u16 unk626; //sprite id of selected Pokemon
+ u16 unk628;
+ u16 unk62A;
+ u8 unk62C;
+ u8 unk62D;
+ u8 unk62E;
+ u8 unk62F;
+ s16 unk630;
+ s16 unk632;
+ u16 unk634;
+ u16 unk636;
+ u16 unk638;
+ u16 unk63A[4];
+ u8 filler642[8];
+ u8 unk64A;
+ u8 unk64B;
+ u8 unk64C_1:1;
+ u8 selectedScreen;
+ u8 unk64E;
+ u8 unk64F;
+ u8 menuIsOpen; //menuIsOpen
+ u8 unk651;
+ u16 menuCursorPos; //Menu cursor position
+ s16 menuY; //Menu Y position (inverted because we use REG_BG0VOFS for this)
+ u8 unk656[8];
+ u8 unk65E[8];
+};
+
+void sub_808C02C(void);
+void sub_808C0A0(void);
+void sub_808C0B8(void);
+void ClearPokedexView(struct PokedexView *pokedexView);
+void CB2_InitPokedex(void);
+u8 unref_sub_808C540(void (*func)(u8));
+void MainCB(void);
+void Task_PokedexShowMainScreen(u8 taskId);
+void Task_PokedexMainScreen(u8 taskId);
+void sub_808C898(u8 taskId);
+void Task_PokedexMainScreenMenu(u8 taskId);
+void sub_808CA64(u8 taskId);
+void sub_808CAE4(u8 taskId);
+void sub_808CB8C(u8 taskId);
+void Task_ClosePokedex(u8 taskId);
+void sub_808CCC4(u8 taskId);
+void Task_PokedexResultsScreen(u8 taskId);
+void sub_808CEF8(u8 taskId);
+void Task_PokedexResultsScreenMenu(u8 taskId);
+void sub_808D118(u8 taskId);
+void sub_808D198(u8 taskId);
+void Task_PokedexResultsScreenReturnToMainScreen(u8 taskId);
+void Task_PokedexResultsScreenExitPokedex(u8 taskId);
+bool8 sub_808D344(u8 a);
+void sub_808D640(void);
+void SortPokedex(u8 dexMode, u8 sortMode);
+void sub_808DBE8(u8 a, u16 b, u16 c);
+void sub_808DEB0(u16 a, u8 b, u8 c, u16 d);
+void sub_808DF88(u16 a, u8 b, u8 c, u16 d);
+u8 sub_808DFE4(u16 a, u8 b, u8 c);
+void sub_808E090(u8 a, u8 b, u16 c);
+void sub_808E0CC(u16 a, u16 b);
+bool8 sub_808E208(u8 a, u8 b, u8 c);
+void sub_808E398(u8 a, u16 b);
+u16 sub_808E48C(u16 a, u16 b);
+void sub_808E6BC(void);
+u8 sub_808E71C(void);
+u8 sub_808E82C(void);
+u16 sub_808E888(u16 a1);
+u32 sub_808E8C8(u16 a, u16 b, u16 c);
+void sub_808E978(u8 a);
+void nullsub_58(struct Sprite *sprite);
+void sub_808ED94(struct Sprite *sprite);
+void sub_808EDB8(struct Sprite *sprite);
+void sub_808EE28(struct Sprite *sprite);
+void sub_808EF38(struct Sprite *sprite);
+void sub_808EF8C(struct Sprite *sprite);
+void sub_808F08C(struct Sprite *sprite);
+void sub_808F0B4(struct Sprite *sprite);
+void sub_808F168(struct Sprite *sprite);
+u8 sub_808F210(struct PokedexListItem *item, u8 b);
+bool8 sub_808F250(u8 taskId);
+u8 sub_808F284(struct PokedexListItem *item, u8 b);
+void Task_InitPageScreenMultistep(u8 taskId);
+void Task_PageScreenProcessInput(u8 taskId);
+void sub_808F888(u8 taskId);
+void Task_ClosePageScreen(u8 taskId);
+void Task_InitAreaScreenMultistep(u8 taskId);
+void Task_AreaScreenProcessInput(u8 taskId);
+void sub_808FA00(u8 taskId);
+void Task_InitCryScreenMultistep(u8 taskId);
+void Task_CryScreenProcessInput(u8 taskId);
+void sub_808FFBC(u8 taskId);
+void sub_8090040(u8 a);
+void Task_InitSizeScreenMultistep(u8 taskId);
+void Task_SizeScreenProcessInput(u8 taskId);
+void sub_8090498(u8 taskId);
+void sub_80904FC(u16 a);
+void sub_8090540(u16 a);
+void sub_8090584(u8 a, u16 b);
+void sub_8090644(u8 a, u16 b);
+u8 sub_809070C(u16 dexNum, u32 b, u32 c);
+
+// ASM
+void sub_8090750(u8);
+void sub_8090A3C(u8);
+
+void sub_8090C68(void);
+
+bool8 sub_8090D90(u16, u8);
+u16 GetNationalPokedexCount(u8);
+u16 GetHoennPokedexCount(u8);
+
+void sub_8091060(u16);
+void sub_8091154(u16 order, int i, int i1);
+void sub_80911C8(u16 num, int i, int i1);
+void sub_8091260(u16 num, int i, int i1, int i2);
+void sub_8091304(u8 name[12], int i, int i1);
+
+void sub_8091458(u16 height, int i, int i1);
+void sub_8091564(u16 weight, int i, int i1);
+void sub_8091738(u16, u16, u16);
+void sub_80917CC(int i, int i1);
+u16 sub_8091818(u8, u16, u16, u16);
+
+u16 sub_80918EC(u16 a, s16 b, s16 c, u16 d); //Not sure of return type
+u8 sub_8091A4C(u8 gender, int i, int i1, int i2);
+
+#endif // GUARD_POKEDEX_H
diff --git a/include/pokemon.h b/include/pokemon.h
index 450a8174f..956a3984f 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -1,8 +1,6 @@
#ifndef GUARD_POKEMON_H
#define GUARD_POKEMON_H
-#include "global.h"
-
#define MON_DATA_PERSONALITY 0
#define MON_DATA_OT_ID 1
#define MON_DATA_NICKNAME 2
@@ -362,6 +360,8 @@ u16 sub_803B7C8(struct Pokemon *mon, u8 a2);
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
+u8 sub_803C348(u8 a1);
+u8 sub_803C434(u8 a1);
u8 GetMonGender(struct Pokemon *mon);
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
diff --git a/include/pokemon_size_record.h b/include/pokemon_size_record.h
new file mode 100644
index 000000000..3ccc597bb
--- /dev/null
+++ b/include/pokemon_size_record.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_POKEMON_SIZE_RECORD_H
+#define GUARD_POKEMON_SIZE_RECORD_H
+
+void InitShroomishSizeRecord(void);
+void GetShroomishSizeRecordInfo(void);
+void CompareShroomishSize(void);
+
+void InitBarboachSizeRecord(void);
+void GetBarboachSizeRecordInfo(void);
+void CompareBarboachSize(void);
+
+void GiveGiftRibbonToParty(u8 index, u8 ribbonId);
+
+#endif // GUARD_POKEMON_SIZE_RECORD_H
diff --git a/include/record_mixing.h b/include/record_mixing.h
new file mode 100644
index 000000000..39cf5bd43
--- /dev/null
+++ b/include/record_mixing.h
@@ -0,0 +1,34 @@
+#ifndef GUARD_RECORD_MIXING_H
+#define GUARD_RECORD_MIXING_H
+
+#include <stddef.h>
+
+void sub_80B929C(void);
+void sub_80B92AC(void);
+void sub_80B93B0(u32 a);
+void sub_80B9450(u8 taskId);
+void sub_80B9484(u8 taskId);
+void sub_80B95F0(u8 taskId);
+void sub_80B97DC(u8 taskId);
+void Task_CopyRecvBuffer(u8 taskId);
+void sub_80B99B4(u8 taskId);
+void sub_80B99E8(u8 taskId);
+void sub_80B9A1C(u8 taskId);
+void *LoadPtrFromTaskData(u16 *ptr);
+void StorePtrInTaskData(void *ptr, u16 *data);
+u8 GetMultiplayerId_(void);
+u16 *GetPlayerRecvBuffer(u8 player);
+void sub_80B9A78(void);
+void sub_80B9A88(u8 *a);
+void sub_80B9B1C(u8 *a, size_t size, u8 index);
+void sub_80B9B70(u8 *a, size_t size, u8 index);
+u8 sub_80B9BBC(u16 *a);
+void sub_80B9BC4(u32 a, u32 b, u32 c, u32 d);
+u8 sub_80B9C4C(u8 *a);
+
+// ASM
+void sub_80B9C6C(void *, u32, u8, void *);
+void sub_80B9F3C(void *, u8);
+void sub_80BA00C(u8);
+
+#endif // GUARD_RECORD_MIXING_H
diff --git a/include/rom4.h b/include/rom4.h
new file mode 100644
index 000000000..21a866d02
--- /dev/null
+++ b/include/rom4.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_ROM4_H
+#define GUARD_ROM4_H
+
+void sav12_xor_increment(u8 index);
+void warp_in(void);
+void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void sub_805363C(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y);
+void sav1_reset_battle_music_maybe(void);
+u8 sav1_map_get_light_level(void);
+bool8 is_light_level_1_2_3_5_or_6(u8 a1);
+void CB2_LoadMap(void);
+
+#endif // GUARD_ROM4_H
diff --git a/include/rtc.h b/include/rtc.h
index 4c9d06d31..fdc5ad709 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -1,7 +1,7 @@
#ifndef GUARD_RTC_UTIL_H
#define GUARD_RTC_UTIL_H
-#include "global.h"
+#include "siirtc.h"
#define RTC_INIT_ERROR 0x0001
#define RTC_INIT_WARNING 0x0002
@@ -19,18 +19,30 @@
extern struct Time gLocalTime;
-void RtcInit();
-u16 RtcGetErrorStatus();
-void RtcReset();
+void RtcDisableInterrupts(void);
+void RtcRestoreInterrupts(void);
+u32 ConvertBcdToBinary(u8 bcd);
+bool8 IsLeapYear(u8 year);
+u16 ConvertDateToDayCount(u8 year, u8 month, u8 day);
+u16 RtcGetDayCount(struct SiiRtcInfo *rtc);
+void RtcInit(void);
+u16 RtcGetErrorStatus(void);
+void RtcGetInfo(struct SiiRtcInfo *rtc);
+void RtcGetDateTime(struct SiiRtcInfo *rtc);
+void RtcGetStatus(struct SiiRtcInfo *rtc);
+void RtcGetRawInfo(struct SiiRtcInfo *rtc);
+u16 RtcCheckInfo(struct SiiRtcInfo *rtc);
+void RtcReset(void);
void FormatDecimalTime(u8 *dest, s32 hour, s32 minute, s32 second);
void FormatHexTime(u8 *dest, s32 hour, s32 minute, s32 second);
void FormatHexRtcTime(u8 *dest);
void FormatDecimalDate(u8 *dest, s32 year, s32 month, s32 day);
void FormatHexDate(u8 *dest, s32 year, s32 month, s32 day);
-void RtcCalcLocalTime();
+void RtcCalcTimeDifference(struct SiiRtcInfo *rtc, struct Time *result, struct Time *t);
+void RtcCalcLocalTime(void);
void RtcInitLocalTimeOffset(s32 hour, s32 minute);
void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds);
void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2);
-u32 RtcGetMinuteCount();
+u32 RtcGetMinuteCount(void);
#endif // GUARD_RTC_UTIL_H
diff --git a/include/safari_zone.h b/include/safari_zone.h
new file mode 100644
index 000000000..f491be2f1
--- /dev/null
+++ b/include/safari_zone.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_SAFARI_ZONE_H
+#define GUARD_SAFARI_ZONE_H
+
+bool32 GetSafariZoneFlag(void);
+void SetSafariZoneFlag(void);
+void ResetSafariZoneFlag(void);
+
+void EnterSafariMode(void);
+void ExitSafariMode(void);
+
+bool8 SafariZoneTakeStep(void);
+void SafariZoneRetirePrompt(void);
+void sub_80C824C(void);
+
+void SafariZoneGetPokeblockNameInFeeder(void);
+struct Pokeblock *unref_sub_80C8418(void);
+struct Pokeblock *SafariZoneGetActivePokeblock(void);
+void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index);
+bool8 unref_sub_80C853C(void);
+
+#endif // GUARD_SAFARI_ZONE_H
diff --git a/include/save.h b/include/save.h
new file mode 100644
index 000000000..976af77c6
--- /dev/null
+++ b/include/save.h
@@ -0,0 +1,60 @@
+#ifndef GUARD_SAVE_H
+#define GUARD_SAVE_H
+
+struct SaveSectionLocation
+{
+ void *data;
+ u16 size;
+};
+
+struct SaveSection
+{
+ u8 data[0xFF4];
+ u16 id;
+ u16 checksum;
+ u32 unknown;
+ u32 counter;
+};
+
+struct UnkSaveSection
+{
+ u8 data[0xFF4];
+ u32 unknown;
+};
+
+void ClearSaveData(void);
+void sub_81251B8(void);
+bool32 sub_81251D4(u8 op, u8 bit);
+u8 save_write_to_flash(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81252D8(u16, struct SaveSectionLocation *);
+u8 sub_81253C8(u8 sector, u8 *data, u16 size);
+u8 sub_8125440(u8, u8 *);
+u32 sub_812546C(struct SaveSectionLocation *a1);
+u32 sub_81254C8(struct SaveSectionLocation *a1);
+u8 sub_812550C(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_812556C(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81255B8(u16, struct SaveSectionLocation *);
+u8 sub_8125758(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81257F0(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_812587C(u16 a1, struct SaveSectionLocation *a2);
+u8 sub_81258BC(u16, struct SaveSectionLocation *);
+u8 sub_8125974(struct SaveSectionLocation *);
+u8 sub_8125B88(u8 a1, u8 *data, u16 size);
+u8 sub_8125BF8(u8, struct SaveSection *);
+u16 sub_8125C10(void *, u16);
+u8 sub_8125C3C(u8 a1);
+u8 sub_8125D44(u8 a1);
+u8 sub_8125D80(void);
+bool8 sub_8125DA8(void);
+u8 sub_8125DDC(void);
+u8 sub_8125E04(void);
+u8 sub_8125E2C(void);
+u8 sub_8125E6C(void);
+u8 sub_8125EC8(u8 a1);
+bool8 unref_sub_8125F4C(struct UnkSaveSection *a1);
+u8 unref_sub_8125FA0(void);
+u8 unref_sub_8125FF0(u8 *data, u16 size);
+u8 unref_sub_8126068(u8 sector, u8 *data, u32 size);
+u8 unref_sub_8126080(u8 sector, u8 *data);
+
+#endif // GUARD_SAVE_H
diff --git a/include/save_menu_util.h b/include/save_menu_util.h
new file mode 100644
index 000000000..560a39d89
--- /dev/null
+++ b/include/save_menu_util.h
@@ -0,0 +1,16 @@
+#ifndef GUARD_SAVE_MENU_UTIL_H
+#define GUARD_SAVE_MENU_UTIL_H
+
+void HandleDrawSaveWindowInfo(s16 left, s16 top);
+void sub_80946C8(u16 left, u16 top);
+u8 sub_809473C(void);
+void PrintSavePlayerName(s16 x, s16 y);
+void PrintSaveMapName(s16 x, s16 y);
+void PrintSaveBadges(s16 x, s16 y);
+void PrintSavePokedexCount(s16 x, s16 y);
+void PrintSavePlayTime(s16 x, s16 y);
+u8 GetBadgeCount(void);
+u16 GetPokedexSeenCount(void);
+void FormatPlayTime(char *playtime, u16 hours, u16 minutes, bool16 colon);
+
+#endif // GUARD_SAVE_MENU_UTIL_H
diff --git a/include/script.h b/include/script.h
index 9b165bed2..a4c7dd575 100644
--- a/include/script.h
+++ b/include/script.h
@@ -39,7 +39,7 @@ void ScriptContext1_Init(void);
bool8 ScriptContext2_RunScript(void);
void ScriptContext1_SetupScript(u8 *ptr);
void ScriptContext1_Stop(void);
-void EnableBothScriptContexts();
+void EnableBothScriptContexts(void);
void ScriptContext2_RunNewScript(u8 *ptr);
u8 *mapheader_get_tagged_pointer(u8 tag);
void mapheader_run_script_by_tag(u8 tag);
diff --git a/include/siirtc.h b/include/siirtc.h
index 5864f95b8..de4fd634d 100644
--- a/include/siirtc.h
+++ b/include/siirtc.h
@@ -39,10 +39,10 @@ struct SiiRtcInfo
u8 alarmMinute;
};
-void SiiRtcUnprotect();
-void SiiRtcProtect();
-u8 SiiRtcProbe();
-bool8 SiiRtcReset();
+void SiiRtcUnprotect(void);
+void SiiRtcProtect(void);
+u8 SiiRtcProbe(void);
+bool8 SiiRtcReset(void);
bool8 SiiRtcGetStatus(struct SiiRtcInfo *rtc);
bool8 SiiRtcSetStatus(struct SiiRtcInfo *rtc);
bool8 SiiRtcGetDateTime(struct SiiRtcInfo *rtc);
diff --git a/include/start_menu.h b/include/start_menu.h
new file mode 100644
index 000000000..77bfe5d0e
--- /dev/null
+++ b/include/start_menu.h
@@ -0,0 +1,23 @@
+#ifndef GUARD_STARTER_CHOOSE_H
+#define GUARD_STARTER_CHOOSE_H
+
+//Public functions
+void CreateStartMenuTask(void (*func)(u8));
+void sub_80712B4(u8 taskId);
+void sub_8071310(void);
+u8 StartMenu_PokedexCallback(void);
+u8 StartMenu_PokemonCallback(void);
+u8 StartMenu_BagCallback(void);
+u8 StartMenu_PokenavCallback(void);
+u8 StartMenu_PlayerCallback(void);
+u8 StartMenu_SaveCallback(void);
+u8 StartMenu_OptionCallback(void);
+u8 StartMenu_ExitCallback(void);
+u8 StartMenu_RetireCallback(void);
+u8 StartMenu_PlayerLinkCallback(void);
+void InitSaveDialog(void);
+void sub_8071B28(void);
+void sub_8071C20(void);
+void AppendToList(u8 *list, u8 *pindex, u32 value);
+
+#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/starter_choose.h b/include/starter_choose.h
new file mode 100644
index 000000000..4a7e0514c
--- /dev/null
+++ b/include/starter_choose.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_STARTER_CHOOSE_H
+#define GUARD_STARTER_CHOOSE_H
+
+#include "sprite.h"
+
+u16 GetStarterPokemon(u16);
+void CB2_ChooseStarter(void);
+void nullsub_72(struct Sprite *sprite);
+void sub_810A62C(struct Sprite *sprite);
+void sub_810A68C(struct Sprite *sprite);
+void StarterPokemonSpriteAnimCallback(struct Sprite *sprite);
+
+#endif // GUARD_STARTER_CHOOSE_H
diff --git a/include/string_util.h b/include/string_util.h
index fd7d39045..c20965380 100644
--- a/include/string_util.h
+++ b/include/string_util.h
@@ -1,8 +1,6 @@
#ifndef GUARD_STRING_UTIL_H
#define GUARD_STRING_UTIL_H
-#include "global.h"
-
enum StringConvertMode
{
STR_CONV_MODE_LEFT_ALIGN,
diff --git a/include/task.h b/include/task.h
index a536bcab5..d2b2302cf 100644
--- a/include/task.h
+++ b/include/task.h
@@ -15,15 +15,15 @@ struct Task
extern struct Task gTasks[];
-void ResetTasks();
+void ResetTasks(void);
u8 CreateTask(TaskFunc func, u8 priority);
void DestroyTask(u8 taskId);
-void RunTasks();
+void RunTasks(void);
void TaskDummy(u8 taskId);
void SetTaskFuncWithFollowupFunc(u8 taskId, TaskFunc func, TaskFunc followupFunc);
void SwitchTaskToFollowupFunc(u8 taskId);
bool8 FuncIsActiveTask(TaskFunc func);
u8 FindTaskIdByFunc(TaskFunc func);
-u8 GetTaskCount();
+u8 GetTaskCount(void);
#endif // GUARD_TASK_H
diff --git a/include/text.h b/include/text.h
index d79611f85..fb6dfe915 100644
--- a/include/text.h
+++ b/include/text.h
@@ -1,8 +1,6 @@
#ifndef GUARD_TEXT_H
#define GUARD_TEXT_H
-#include "global.h"
-
#define CHAR_SPACE 0x00
#define CHAR_QUESTION_MARK 0xAC
#define CHAR_HYPHEN 0xAE
diff --git a/include/text_window.h b/include/text_window.h
index f68db005a..6df3f7d33 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -1,15 +1,21 @@
#ifndef GUARD_TEXT_WINDOW_H
#define GUARD_TEXT_WINDOW_H
-#include "global.h"
+#include "text.h"
-u16 SetTextWindowBaseTileNum(u16);
-void LoadTextWindowGraphics(struct Window *);
-void LoadTextWindowGraphics_OverridePalSlot(struct Window *, u8);
-void LoadTextWindowGraphics_OverrideFrameType(struct Window *, u8);
+struct FrameGraphics
+{
+ u8 *tiles;
+ u16 *palette;
+};
+
+u16 SetTextWindowBaseTileNum(u16 baseTileNum);
+void LoadTextWindowGraphics(struct Window *win);
+void LoadTextWindowGraphics_OverridePalSlot(struct Window *win, u8 palSlot);
+void LoadTextWindowGraphics_OverrideFrameType(struct Window *win, u8 frameType);
void DrawTextWindow(struct Window *win, u8 left, u8 top, u8 right, u8 bottom);
const struct FrameGraphics *GetTextWindowFrameGraphics(u8 frameType);
-u16 SetMessageBoxBaseTileNum(u16);
+u16 SetMessageBoxBaseTileNum(u16 baseTileNum);
void unref_sub_80651DC(struct Window *, u8 *);
void DisplayMessageBox(struct Window *);
void DrawStandardMessageBox(struct Window *win);
diff --git a/include/tileset_anim.h b/include/tileset_anim.h
new file mode 100644
index 000000000..7556721d8
--- /dev/null
+++ b/include/tileset_anim.h
@@ -0,0 +1,30 @@
+#ifndef GUARD_TITLE_SCREEN_H
+#define GUARD_TITLE_SCREEN_H
+
+void sub_8072E74(void);
+void cur_mapheader_run_tileset_funcs_after_some_cpuset(void);
+void sub_8072ED0(void);
+void sub_8072EDC(void);
+void TilesetCB_General(void);
+void TilesetCB_Building(void);
+void TilesetCB_Petalburg(void);
+void TilesetCB_Rustboro(void);
+void TilesetCB_Dewford(void);
+void TilesetCB_Slateport(void);
+void TilesetCB_Mauville(void);
+void TilesetCB_Lavaridge(void);
+void TilesetCB_Fallarbor(void);
+void TilesetCB_Fortree(void);
+void TilesetCB_Lilycove(void);
+void TilesetCB_Mossdeep(void);
+void TilesetCB_EverGrande(void);
+void TilesetCB_Pacifidlog(void);
+void TilesetCB_Sootopolis(void);
+void TilesetCB_Underwater(void);
+void TilesetCB_SootopolisGym(void);
+void TilesetCB_Cave(void);
+void TilesetCB_EliteFour(void);
+void TilesetCB_MauvilleGym(void);
+void TilesetCB_BikeShop(void);
+
+#endif // GUARD_TITLE_SCREEN_H
diff --git a/include/title_screen.h b/include/title_screen.h
new file mode 100644
index 000000000..304ec0540
--- /dev/null
+++ b/include/title_screen.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_TITLE_SCREEN_H
+#define GUARD_TITLE_SCREEN_H
+
+#include "sprite.h"
+
+void SpriteCallback_VersionBannerLeft(struct Sprite *sprite);
+void SpriteCallback_VersionBannerRight(struct Sprite *sprite);
+void SpriteCallback_PressStartCopyrightBanner(struct Sprite *sprite);
+void SpriteCallback_PokemonLogoShine(struct Sprite *sprite);
+
+void CB2_InitTitleScreen(void);
+
+#endif // GUARD_TITLE_SCREEN_H
diff --git a/include/trainer_see.h b/include/trainer_see.h
new file mode 100644
index 000000000..281c7b158
--- /dev/null
+++ b/include/trainer_see.h
@@ -0,0 +1,35 @@
+#ifndef GUARD_TRAINER_SEE_H
+#define GUARD_TRAINER_SEE_H
+
+#include "task.h"
+
+bool8 CheckTrainers(void);
+bool8 CheckTrainer(u8);
+u8 TrainerCanApproachPlayer(struct MapObject *);
+bool8 IsTrainerInRangeSouth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 IsTrainerInRangeNorth(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 IsTrainerInRangeWest(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 IsTrainerInRangeEast(struct MapObject *trainerObj, s16 vision, s16 x, s16 y);
+bool8 CheckPathBetweenTrainerAndPlayer(struct MapObject2 *, u8, u8);
+void sub_80842C8(struct MapObject *, u8);
+void sub_80842FC(void (*func)(u8));
+void RunTrainerSeeFuncList(u8);
+u8 sub_8084394(void);
+s8 sub_8084398(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80843DC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_808441C(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084478(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084534(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084578(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80845AC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80845C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80845FC(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_8084654(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+s8 sub_80846C8(u8 taskId, struct Task *task, struct MapObject *trainerObj);
+void sub_80846E4(u8 taskId);
+void sub_8084794(u32 var);
+void sub_80847C8(void);
+void sub_80847D8(u8);
+void sub_80847D8(u8);
+
+#endif // GUARD_TRAINER_SEE_H
diff --git a/include/truck_scene.h b/include/truck_scene.h
new file mode 100644
index 000000000..f55a4ced7
--- /dev/null
+++ b/include/truck_scene.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_TRUCK_SCENE_H
+#define GUARD_TRUCK_SCENE_H
+
+s32 GetTruckCameraBobbingY(int a1);
+s32 GetTruckBoxMovement(int a1);
+void Task_Truck1(u8 taskId);
+void Task_Truck2(u8 taskId);
+void Task_Truck3(u8 taskId);
+void Task_HandleTruckSequence(u8 taskId);
+void ExecuteTruckSequence(void);
+void EndTruckSequence(void);
+
+#endif // GUARD_TRUCK_SCENE_H
diff --git a/include/var.h b/include/var.h
index c76b8c411..ada8caf24 100644
--- a/include/var.h
+++ b/include/var.h
@@ -1,8 +1,6 @@
#ifndef GUARD_VAR_H
#define GUARD_VAR_H
-#include "vars.h"
-
u16 *GetVarPointer(u16 id);
u16 VarGet(u16 id);
bool8 VarSet(u16 id, u16 value);
diff --git a/include/wallclock.h b/include/wallclock.h
new file mode 100644
index 000000000..be3111ab1
--- /dev/null
+++ b/include/wallclock.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_WALLCLOCK_H
+#define GUARD_WALLCLOCK_H
+
+#include "sprite.h"
+
+void Cb2_StartWallClock(void);
+void Cb2_ViewWallClock(void);
+
+void sub_810B05C(struct Sprite *sprite);
+void sub_810B0F4(struct Sprite *sprite);
+void sub_810B18C(struct Sprite *sprite);
+void sub_810B230(struct Sprite *sprite);
+
+#endif // GUARD_WALLCLOCK_H
diff --git a/include/weather.h b/include/weather.h
new file mode 100644
index 000000000..a6ca2262c
--- /dev/null
+++ b/include/weather.h
@@ -0,0 +1,40 @@
+#ifndef GUARD_WEATHER_H
+#define GUARD_WEATHER_H
+
+void sub_807C828(void);
+void DoWeatherEffect(u8 effect);
+void sub_807C988(u8 effect);
+void sub_807C9B4(u8 effect);
+void sub_807C9E4(u8);
+void sub_807CA34(u8);
+void sub_807CAE8(void);
+void nullsub_38(void);
+u32 sub_807CB0C(void);
+void sub_807CB10(void);
+void sub_807CC24(void);
+void sub_807CCAC(void);
+u8 sub_807CDC4(void);
+u8 sub_807CE24(void);
+u8 sub_807CE7C(void);
+void nullsub_39(void);
+
+// ASM
+void sub_807CEBC(u8, u8, s8);
+void sub_807D1BC(u8, u8, u8, u8, u16);
+void sub_807D304(int, u8, u16);
+void sub_807D424(u8, u16);
+// ...
+void fade_screen(u8, u8);
+// ...
+void sub_807D78C(u8 tag);
+void sub_807D874(u8);
+// ...
+void sub_807DB64(u8, u8);
+// ...
+void SetSav1Weather(u32);
+u8 GetSav1Weather(void);
+void sub_80806E4(void);
+// ...
+void sub_808073C(void);
+
+#endif // GUARD_WEATHER_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
new file mode 100644
index 000000000..33b7df7b9
--- /dev/null
+++ b/include/wild_encounter.h
@@ -0,0 +1,14 @@
+#ifndef GUARD_WILD_ENCOUNTER_H
+#define GUARD_WILD_ENCOUNTER_H
+
+void DisableWildEncounters(bool8 disabled);
+bool8 StandardWildEncounter(u16 a, u16 b);
+void RockSmashWildEncounter(void);
+bool8 SweetScentWildEncounter(void);
+bool8 GetFishingWildMonListHeader(void);
+void FishingWildEncounter(u8 rod);
+u16 GetLocalWildMon(bool8 *isWaterMon);
+u16 GetMirageIslandMon(void);
+bool8 UpdateRepelCounter(void);
+
+#endif // GUARD_WILD_ENCOUNTER_H