summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-07-01 21:45:36 -0400
committerGitHub <noreply@github.com>2019-07-01 21:45:36 -0400
commit74d771ef90a3189bd2da1b35f6b42a1fa8f51e67 (patch)
tree96c754aee40f16956fb0958ecb31bd806bd99642 /include
parent7f06718571de81609208a5fa402a93da63cfa8bf (diff)
parent062238aa12cb4f54f70b73459ff5b5d775f69a54 (diff)
Merge pull request #76 from jiangzhengwenjz/misc
new_menu_helpers, multiboot, hof_pc, play_time, decompress, reset_save_heap, save_location, mail_data, fldeff_*
Diffstat (limited to 'include')
-rw-r--r--include/bg.h13
-rw-r--r--include/decompress.h19
-rw-r--r--include/dma3.h51
-rw-r--r--include/event_scripts.h4
-rw-r--r--include/field_map_obj.h8
-rw-r--r--include/field_player_avatar.h6
-rw-r--r--include/field_weather.h2
-rw-r--r--include/fldeff.h46
-rw-r--r--include/fldeff_80F9BCC.h16
-rw-r--r--include/gba/defines.h3
-rw-r--r--include/gba/multiboot.h6
-rw-r--r--include/global.h10
-rw-r--r--include/hall_of_fame.h3
-rw-r--r--include/item_use.h2
-rw-r--r--include/mail.h6
-rw-r--r--include/mail_data.h11
-rw-r--r--include/menu.h14
-rw-r--r--include/multiboot.h2
-rw-r--r--include/new_game.h1
-rw-r--r--include/new_menu_helpers.h32
-rw-r--r--include/overworld.h7
-rw-r--r--include/palette.h2
-rw-r--r--include/pokemon_icon.h1
-rw-r--r--include/quest_log.h5
-rw-r--r--include/reset_save_heap.h13
-rw-r--r--include/save_location.h13
-rw-r--r--include/script.h1
-rw-r--r--include/script_menu.h3
-rw-r--r--include/text.h1
-rw-r--r--include/text_window.h5
-rw-r--r--include/wild_encounter.h3
31 files changed, 234 insertions, 75 deletions
diff --git a/include/bg.h b/include/bg.h
index 003ffc916..40c51167f 100644
--- a/include/bg.h
+++ b/include/bg.h
@@ -25,6 +25,17 @@ enum
BG_CTRL_ATTR_WRAPAROUND = 8,
};
+enum AdjustBgMosaicMode
+{
+ BG_MOSAIC_SET,
+ BG_MOSAIC_SET_H,
+ BG_MOSAIC_INC_H,
+ BG_MOSAIC_DEC_H,
+ BG_MOSAIC_SET_V,
+ BG_MOSAIC_INC_V,
+ BG_MOSAIC_DEC_V,
+};
+
enum BgTileAllocMode
{
BG_TILE_FIND_FREE_SPACE,
@@ -71,7 +82,7 @@ u32 ChangeBgY(u8 bg, u32 value, u8 op);
u32 ChangeBgY_ScreenOff(u8 bg, u32 value, u8 op);
u32 GetBgY(u8 bg);
void SetBgAffine(u8 bg, u32 srcCenterX, u32 srcCenterY, s16 dispCenterX, s16 dispCenterY, s16 scaleX, s16 scaleY, u16 rotationAngle);
-u8 Unused_AdjustBgMosaic(u8 a1, u8 a2);
+u8 AdjustBgMosaic(u8 value, u8 mode);
void SetBgTilemapBuffer(u8 bg, void *tilemap);
void UnsetBgTilemapBuffer(u8 bg);
void* GetBgTilemapBuffer(u8 bg);
diff --git a/include/decompress.h b/include/decompress.h
index 19b507525..03080fe48 100644
--- a/include/decompress.h
+++ b/include/decompress.h
@@ -10,15 +10,13 @@ extern u8 gDecompressionBuffer[0x4000];
void LZDecompressWram(const void *src, void *dest);
void LZDecompressVram(const void *src, void *dest);
-u16 LoadCompressedObjectPic(const struct CompressedSpriteSheet *src);
-void LoadCompressedObjectPicOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
-bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src);
+u16 LoadCompressedSpriteSheet(const struct CompressedSpriteSheet *src);
+void LoadCompressedSpriteSheetOverrideBuffer(const struct CompressedSpriteSheet *src, void *buffer);
+bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src);
-void LoadCompressedObjectPalette(const struct CompressedSpritePalette *src);
-void LoadCompressedObjectPaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
-bool8 LoadCompressedObjectPaletteUsingHeap(const struct CompressedSpritePalette *src);
-
-bool8 sub_800F078(const struct CompressedSpritePalette *src);
+void LoadCompressedSpritePalette(const struct CompressedSpritePalette *src);
+void LoadCompressedSpritePaletteOverrideBuffer(const struct CompressedSpritePalette *a, void *buffer);
+bool8 LoadCompressedSpritePaletteUsingHeap(const struct CompressedSpritePalette *src);
void DecompressPicFromTable(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
void DecompressPicFromTable_2(const struct CompressedSpriteSheet *src, void* buffer, s32 species);
@@ -27,15 +25,12 @@ void DecompressPicFromTable_DontHandleDeoxys(const struct CompressedSpriteSheet
void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void HandleLoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
-void sub_800ECC4(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
+void HandleLoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality);
void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
-u32 sub_8034974(const u8 *ptr);
-
-void sub_800F034(const struct CompressedSpriteSheet *src);
u32 GetDecompressedDataSize(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H
diff --git a/include/dma3.h b/include/dma3.h
index fcd7bae43..381e1e322 100644
--- a/include/dma3.h
+++ b/include/dma3.h
@@ -3,10 +3,55 @@
#include "global.h"
+// Maximum amount of data we will transfer in one operation
+#define MAX_DMA_BLOCK_SIZE 0x1000
+
+#define Dma3CopyLarge_(src, dest, size, bit) \
+{ \
+ const void *_src = src; \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaCopy##bit(3, _src, _dest, _size); \
+ break; \
+ } \
+ DmaCopy##bit(3, _src, _dest, MAX_DMA_BLOCK_SIZE); \
+ _src += MAX_DMA_BLOCK_SIZE; \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3CopyLarge16_(src, dest, size) Dma3CopyLarge_(src, dest, size, 16)
+#define Dma3CopyLarge32_(src, dest, size) Dma3CopyLarge_(src, dest, size, 32)
+
+#define Dma3FillLarge_(value, dest, size, bit) \
+{ \
+ void *_dest = dest; \
+ u32 _size = size; \
+ while (1) \
+ { \
+ if (_size <= MAX_DMA_BLOCK_SIZE) \
+ { \
+ DmaFill##bit(3, value, _dest, _size); \
+ break; \
+ } \
+ DmaFill##bit(3, value, _dest, MAX_DMA_BLOCK_SIZE); \
+ _dest += MAX_DMA_BLOCK_SIZE; \
+ _size -= MAX_DMA_BLOCK_SIZE; \
+ } \
+}
+
+#define Dma3FillLarge16_(value, dest, size) Dma3FillLarge_(value, dest, size, 16)
+#define Dma3FillLarge32_(value, dest, size) Dma3FillLarge_(value, dest, size, 32)
+
void ClearDma3Requests(void);
void ProcessDma3Requests(void);
-int RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
-int RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
-int CheckForSpaceForDma3Request(s16 index);
+s16 RequestDma3Copy(const void *src, void *dest, u16 size, u8 mode);
+s16 RequestDma3Fill(s32 value, void *dest, u16 size, u8 mode);
+s16 CheckForSpaceForDma3Request(s16 index);
#endif // GUARD_DMA3_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index d5ee57d56..917269de4 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1144,4 +1144,8 @@ extern const u8 gUnknown_81BB084[];
extern const u8 gUnknown_81BB0DF[];
extern const u8 gUnknown_81BB156[];
+extern const u8 EventScript_FldEffStrength[];
+extern const u8 EventScript_FailSweetScent[];
+extern const u8 EventScript_FldEffRockSmash[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_map_obj.h b/include/field_map_obj.h
index 27a7f23d7..83cc263e5 100644
--- a/include/field_map_obj.h
+++ b/include/field_map_obj.h
@@ -76,18 +76,20 @@ u8 GetStepInPlaceDelay32AnimId(u32);
u8 npc_block_way(struct MapObject *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
bool8 FieldObjectIsSpecialAnimActive(struct MapObject *);
-u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *);
+u8 FieldObjectClearHeldMovementIfFinished(struct MapObject *);
u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct MapObject *, struct Sprite *);
-void sub_8063CA4(struct MapObject *, u8);
+void FieldObjectSetHeldMovement(struct MapObject *, u8);
void npc_coords_shift_still(struct MapObject *);
void sub_805FE7C(struct MapObject *, u8);
void npc_set_running_behaviour_etc(struct MapObject *, u8);
u8 sub_80634F0(u8 direction);
u8 sub_8063500(u8 a0);
-void sub_805F060(struct MapObject *mapObject, u8 a1);
+void EventObjectSetGraphicsId(struct MapObject *mapObject, u8 a1);
u8 sub_805EB44(u8, u8, s16, s16);
void npc_paltag_set_load(u8 mode);
+bool8 FieldObjectIsMovementOverridden(struct MapObject *mapObject);
+u8 FieldObjectCheckHeldMovementStatus(struct MapObject *mapObject);
// Exported data declarations
diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h
index 4871bd082..b87de3fef 100644
--- a/include/field_player_avatar.h
+++ b/include/field_player_avatar.h
@@ -8,7 +8,7 @@ void SetPlayerAvatarExtraStateTransition(u8, u8);
u8 GetPlayerAvatarGenderByGraphicsId(u8);
bool8 TestPlayerAvatarFlags(u8);
void PlayerGetDestCoords(s16 *, s16 *);
-u8 player_get_direction_lower_nybble(void);
+u8 GetPlayerFacingDirection(void);
u8 player_get_direction_upper_nybble(void);
u8 player_get_x22(void);
@@ -24,5 +24,9 @@ void sub_805DAE4(u8 direction);
void SetPlayerAvatarTransitionFlags(u16 a);
bool8 IsPlayerFacingSurfableFishableWater(void);
void sub_805D2C0(u8 secondaryId);
+u8 GetPlayerAvatarObjectId(void);
+u8 PlayerGetZCoord(void);
+u8 GetPlayerAvatarGraphicsIdByCurrentState(void);
+void sub_805CB70(void);
#endif //GUARD_FIELD_PLAYER_AVATAR_H
diff --git a/include/field_weather.h b/include/field_weather.h
index 13a1b4fcb..c3ecd4fa6 100644
--- a/include/field_weather.h
+++ b/include/field_weather.h
@@ -14,5 +14,7 @@ void SetSav1WeatherFromCurrMapHeader(void);
void sub_807B0C4(u16 *, u16 *, u32);
void PlayRainStoppingSoundEffect(void);
bool8 sub_807AA70(void);
+void SetWeatherScreenFadeOut(void);
+void sub_807B070(void);
#endif // GUARD_WEATHER_H
diff --git a/include/fldeff.h b/include/fldeff.h
index 364cb7550..e5e7e5f7d 100644
--- a/include/fldeff.h
+++ b/include/fldeff.h
@@ -1,7 +1,51 @@
#ifndef GUARD_FLDEFF_H
#define GUARD_FLDEFF_H
-// rock smash
+#define FLDEFF_CALL_FUNC_IN_DATA() ((void (*)(void))(((u16)gTasks[taskId].data[8] << 16) | (u16)gTasks[taskId].data[9]))();
+
+#define FLDEFF_SET_FUNC_TO_DATA(func) \
+gTasks[taskId].data[8] = (u32)func >> 16; \
+gTasks[taskId].data[9] = (u32)func;
+
+extern struct MapPosition gPlayerFacingPosition;
+
+bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId);
u8 oei_task_add(void);
+// flash
+
+// cut
+
+// dig
+bool8 SetUpFieldMove_Dig(void);
+bool8 FldEff_UseDig(void);
+
+// rocksmash
+bool8 SetUpFieldMove_RockSmash(void);
+bool8 FldEff_UseRockSmash(void);
+
+// berrytree
+void nullsub_56(void);
+
+// poison
+void FldEffPoison_Start(void);
+bool32 FldEffPoison_IsActive(void);
+
+// strength
+bool8 SetUpFieldMove_Strength(void);
+bool8 sub_80D0860(void);
+
+// teleport
+bool8 SetUpFieldMove_Teleport(void);
+bool8 FldEff_UseTeleport(void);
+
+// softboiled
+bool8 hm_prepare_dive_probably(void);
+void sub_80E56DC(u8 taskId);
+void sub_80E5724(u8 taskId);
+
+// sweetscent
+bool8 SetUpFieldMove_SweetScent(void);
+bool8 FldEff_SweetScent(void);
+
#endif // GUARD_FLDEFF_H
diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h
deleted file mode 100644
index 3960c6c65..000000000
--- a/include/fldeff_80F9BCC.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef GUARD_FLDEFF_80F9BCC_H
-#define GUARD_FLDEFF_80F9BCC_H
-
-#include "global.h"
-
-// Exported type declarations
-
-// Exported RAM declarations
-
-// Exported ROM declarations
-
-void sub_80FA5E4(s16 id, s16 x, s16 y);
-void sub_80FA794(s16 x, s16 y);
-void overworld_poison_effect(void);
-
-#endif //GUARD_FLDEFF_80F9BCC_H
diff --git a/include/gba/defines.h b/include/gba/defines.h
index a0ef506dd..5489f9e14 100644
--- a/include/gba/defines.h
+++ b/include/gba/defines.h
@@ -40,6 +40,9 @@
#define BG_SCREEN_ADDR(n) (void *)(BG_VRAM + (BG_SCREEN_SIZE * (n)))
#define BG_TILE_ADDR(n) (void *)(BG_VRAM + (0x80 * (n)))
+#define BG_TILE_H_FLIP(n) (0x400 + (n))
+#define BG_TILE_V_FLIP(n) (0x800 + (n))
+
// text-mode BG
#define OBJ_VRAM0 (void *)(VRAM + 0x10000)
#define OBJ_VRAM0_SIZE 0x8000
diff --git a/include/gba/multiboot.h b/include/gba/multiboot.h
index e88b43a19..a8bc8fddf 100644
--- a/include/gba/multiboot.h
+++ b/include/gba/multiboot.h
@@ -18,9 +18,9 @@ struct MultiBootParam
u8 response_bit;
u8 client_bit;
u8 reserved1;
- u8 *boot_srcp;
- u8 *boot_endp;
- u8 *masterp;
+ const u8 *boot_srcp;
+ const u8 *boot_endp;
+ const u8 *masterp;
u8 *reserved2[MULTIBOOT_NCHILD];
u32 system_work2[4];
u8 sendflag;
diff --git a/include/global.h b/include/global.h
index 050c311e4..e1f63213a 100644
--- a/include/global.h
+++ b/include/global.h
@@ -209,7 +209,7 @@ struct SaveBlock2
{
/*0x000*/ u8 playerName[PLAYER_NAME_LENGTH];
/*0x008*/ u8 playerGender; // MALE, FEMALE
- /*0x009*/ u8 specialSaveWarp;
+ /*0x009*/ u8 specialSaveWarpFlags;
/*0x00A*/ u8 playerTrainerId[4];
/*0x00E*/ u16 playTimeHours;
/*0x010*/ u8 playTimeMinutes;
@@ -726,8 +726,14 @@ struct SaveBlock1
/*0x3D38*/ struct TrainerTowerLog unkArray[4];
};
-extern struct SaveBlock1* gSaveBlock1Ptr;
+struct MapPosition
+{
+ s16 x;
+ s16 y;
+ s8 height;
+};
+extern struct SaveBlock1* gSaveBlock1Ptr;
extern u8 gReservedSpritePaletteCount;
#endif // GUARD_GLOBAL_H
diff --git a/include/hall_of_fame.h b/include/hall_of_fame.h
index 2dc9fae41..1d2122399 100644
--- a/include/hall_of_fame.h
+++ b/include/hall_of_fame.h
@@ -7,5 +7,8 @@ void CB2_DoHallOfFameScreen(void);
void CB2_DoHallOfFameScreenDontSaveData(void);
void CB2_DoHallOfFamePC(void);
void sub_8175280(void);
+void sub_80F2978(void);
+void HallOfFamePCBeginFade(void);
+void ReturnFromHallOfFamePC(void);
#endif // GUARD_HALL_OF_FAME_H
diff --git a/include/item_use.h b/include/item_use.h
index 0a45762f7..db98533f1 100644
--- a/include/item_use.h
+++ b/include/item_use.h
@@ -38,5 +38,7 @@ void ItemUseOutOfBattle_EscapeRope(u8 taskId);
void ItemUseOutOfBattle_EnigmaBerry(u8 taskId);
void ItemUseInBattle_EnigmaBerry(u8 taskId);
void ItemUseOutOfBattle_Itemfinder(u8 taskId);
+void sub_80A1C44(u8 taskId);
+u8 CanUseEscapeRopeOnCurrMap(void);
#endif //GUARD_ITEM_USE_H
diff --git a/include/mail.h b/include/mail.h
index 9ffccbb5b..3ba731c66 100644
--- a/include/mail.h
+++ b/include/mail.h
@@ -3,6 +3,8 @@
#include "global.h"
+#define MAIL_WORDS_COUNT 9
+
#define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \
|| itemId == ITEM_HARBOR_MAIL \
|| itemId == ITEM_GLITTER_MAIL \
@@ -17,10 +19,6 @@
|| itemId == ITEM_RETRO_MAIL))
-bool8 MonHasMail(struct Pokemon *mon);
-void TakeMailFromMon(struct Pokemon *mon);
-u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
-void ClearMailStruct(struct MailStruct *mail);
void sub_80BEBEC(struct MailStruct * mail, void (* callback)(void), u8 a2);
#endif // GUARD_MAIL_H
diff --git a/include/mail_data.h b/include/mail_data.h
index 79a4a7851..a5795ed7e 100644
--- a/include/mail_data.h
+++ b/include/mail_data.h
@@ -9,7 +9,16 @@
// Exported ROM declarations
-u16 sub_80D45E8(u16, u16 *);
+void ClearMailData(void);
+void ClearMailStruct(struct MailStruct *mail);
+bool8 MonHasMail(struct Pokemon *mon);
+u8 GiveMailToMon(struct Pokemon *mon, u16 itemId);
+u16 SpeciesToMailSpecies(u16 species, u32 personality);
+u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer);
+u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail);
+void TakeMailFromMon(struct Pokemon *mon);
+void ClearMailItemId(u8 mailId);
+u8 TakeMailFromMon2(struct Pokemon *mon);
bool8 ItemIsMail(u16 itemId);
#endif //GUARD_MAIL_DATA_H
diff --git a/include/menu.h b/include/menu.h
index bc45e7e61..3231587de 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -21,25 +21,25 @@ void AddTextPrinterParameterized3(u8, u8, u8, u8, const void *, s8, const u8 *);
void sub_8198070(u8 windowId, bool8 copyToVram);
void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock);
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette);
-void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
+void ScheduleBgCopyTilemapToVram(u8 bgNum);
void PrintMenuTable(u8 idx, u8 nstrs, const struct MenuAction *strs);
void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
-void reset_temp_tile_data_buffers(void);
-int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u16 offset, u8 mode);
-bool8 free_temp_tile_data_buffers_if_possible(void);
+void ResetTempTileDataBuffers(void);
+void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode);
+bool8 FreeTempTileDataBuffersIfPossible(void);
u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
//void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
-void do_scheduled_bg_tilemap_copies_to_vram(void);
-void clear_scheduled_bg_copies_to_vram(void);
+void DoScheduledBgTilemapCopiesToVram(void);
+void ClearScheduledBgCopiesToVram(void);
void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
void ClearMenuWindow(u8 windowId, bool8 copyToVram);
-void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void *DecompressAndCopyTileDataToVram2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16);
void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8);
void PrintTextOnRightSnappedWindow(const u8 *, u32, u8);
diff --git a/include/multiboot.h b/include/multiboot.h
index 4b4a3693a..ee0a34c83 100644
--- a/include/multiboot.h
+++ b/include/multiboot.h
@@ -18,6 +18,6 @@ void MultiBootInit(struct MultiBootParam *mp);
int MultiBootMain(struct MultiBootParam *mp);
void MultiBootStartProbe(struct MultiBootParam *mp);
void MultiBootStartMaster(struct MultiBootParam *mp, const u8 *srcp, int length, u8 palette_color, s8 palette_speed);
-int MultiBootCheckComplete(struct MultiBootParam *mp);
+bool32 MultiBootCheckComplete(struct MultiBootParam *mp);
#endif // GUARD_MULTIBOOT_H
diff --git a/include/new_game.h b/include/new_game.h
index c495a9585..a45b090c8 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -14,5 +14,6 @@ void NewGameInitData(void);
void ResetMiniGamesResults(void);
void sub_808447C(void);
void Sav2_ClearSetDefault(void);
+void ResetMenuAndMonGlobals(void);
#endif // GUARD_NEW_GAME_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index ed933089f..caa7cfc3c 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -9,7 +9,7 @@ void sub_81973A4(void);
void sub_81973C4(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
void sub_81973FC(u8, u8);
-u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void ( *callback)(u16, struct TextPrinter *), u8 fgColor, u8 bgColor, u8 shadowColor);
+u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
void DisplayItemMessageOnField(u8 taskId, u8 bgId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
@@ -19,18 +19,34 @@ void ClearDialogWindowAndFrame(u8, u8);
u8 GetTextSpeedSetting(void);
void sub_80F6E9C(void);
void DrawDialogueFrame(u8 windowId, bool8 transfer);
-void sub_80F7974(const u8 *);
-u8 GetStartMenuWindowId(void);
+void sub_80F7974(const u8 * text);
void sub_80F7998(void);
-void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void sub_80F79A4(void);
void DrawStdWindowFrame(u8 windowId, bool8 copyNow);
void InitStandardTextBoxWindows(void);
void ResetBg0(void);
-void Menu_LoadStdPalAt(u16);
-void * malloc_and_decompress(const void * src, u32 * size);
-u16 sub_80F796C(void);
+void ResetBgPositions(void);
+void CopyRectIntoAltRect(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height);
void SetBgRectPal(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
-void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void * gfx, u32 size, u16 a3, u8 a4);
+void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void DecompressAndLoadBgGfxUsingHeap2(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
+void Menu_LoadStdPal(void);
+void Menu_LoadStdPalAt(u16);
+void * MallocAndDecompress(const void * src, u32 * size);
+u16 GetStdWindowBaseTileNum(void);
void ClearStdWindowAndFrame(u8 taskId, bool8 copyNow);
+void sub_80F6E9C(void);
+void sub_80F771C(bool8 copyToVram);
+void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed);
+void AddTextPrinterDiffStyle(bool8 allowSkippingDelayWithButtonPress);
+void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress);
+void SetStdWindowBorderStyle(u8 windowId, bool8 copyToVram);
+void sub_80F7768(u8 windowId, bool8 copyToVram);
+void DisplayYesNoMenuDefaultYes(void);
+void DisplayYesNoMenuDefaultNo(void);
+u8 sub_80F78E0(u8 windowId);
+u8 GetStartMenuWindowId(void);
+void RemoveStartMenuWindow(void);
+void SetDefaultFontsPointer(void);
#endif // GUARD_NEW_MENU_HELPERS_H
diff --git a/include/overworld.h b/include/overworld.h
index fed1a33a5..bab4797ff 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -81,12 +81,12 @@ void mapldr_default(void);
u32 GetGameStat(u8);
-void sub_8056938(void);
+void CB2_ContinueSavedGame(void);
void sub_8055D5C(struct WarpData *);
void sub_80572A8(void);
void sub_805726C(void);
void sub_8057430(void);
-void sub_8055DC4(void);
+void Overworld_PlaySpecialMapMusic(void);
u8 GetCurrentRegionMapSectionId(void);
@@ -111,11 +111,10 @@ void Overworld_ResetStateAfterTeleport(void);
void Overworld_FadeOutMapMusic(void);
void sub_805671C(void);
-void sub_8055DC4(void);
bool8 sub_8055FC4(void);
bool8 is_light_level_8_or_9(u8 mapType);
bool32 sub_8055C9C(void);
-void sub_8054D70(void);
+void Overworld_ResetStateAfterDigEscRope(void);
bool32 sub_8058244(void);
#endif //GUARD_ROM4_H
diff --git a/include/palette.h b/include/palette.h
index 31c8ffefe..78f398873 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -43,7 +43,7 @@ struct PaletteFadeControl
extern struct PaletteFadeControl gPaletteFade;
extern u32 gPlttBufferTransferPending;
-extern u8 gPaletteDecompressionBuffer[];
+extern u8 *gPaletteDecompressionBuffer;
extern u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE];
extern u16 gPlttBufferFaded[PLTT_BUFFER_SIZE];
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index 593715b7d..cd8c798f9 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -15,5 +15,6 @@ void FreeMonIconPalettes(void);
u16 sub_8096FD4(u16);
u8 sub_8096ECC(u16, void (*)(struct Sprite *), s16, s16, u8, bool32);
void sub_8097070(struct Sprite *);
+u16 GetUnownLetterByPersonality(u32 personality);
#endif // GUARD_POKEMON_ICON_H
diff --git a/include/quest_log.h b/include/quest_log.h
index cdd28371f..4fb4fe0fa 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -26,6 +26,11 @@ void sub_8115748(u16);
u8 sub_8112CAC(void);
bool8 sub_81119D4(void (*func)(void));
void sub_8111F38(u16, u16);
+void sub_8111134(void);
+void sub_8112EDC(u8 a0);
+u8 sub_8112EB4(void);
+void sub_8113018(const u8 * text, u8 mode);
+void MapNamePopupWindowIdSetDummy(void);
extern u8 gUnknown_203ADFA;
diff --git a/include/reset_save_heap.h b/include/reset_save_heap.h
new file mode 100644
index 000000000..8cb038906
--- /dev/null
+++ b/include/reset_save_heap.h
@@ -0,0 +1,13 @@
+#ifndef GUARD_RESET_SAVE_HEAP_H
+#define GUARD_RESET_SAVE_HEAP_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void sub_8079B7C(void);
+
+#endif //GUARD_RESET_SAVE_HEAP_H
+
diff --git a/include/save_location.h b/include/save_location.h
index cd499643e..4e01c64e4 100644
--- a/include/save_location.h
+++ b/include/save_location.h
@@ -1,12 +1,15 @@
#ifndef GUARD_SAVE_LOCATION_H
#define GUARD_SAVE_LOCATION_H
-#include "global.h"
+// specialSaveWarp flags
+#define CONTINUE_GAME_WARP (1 << 0)
+#define POKECENTER_SAVEWARP (1 << 1)
+#define LOBBY_SAVEWARP (1 << 2)
+#define UNK_SPECIAL_SAVE_WARP_FLAG_3 (1 << 3)
-bool32 sub_81AFCEC(void);
void TrySetMapSaveWarpStatus(void);
-void sub_81AFDA0(void);
-void sub_81AFDD0(void);
bool32 IsCurMapPokeCenter(void);
+void sub_810B810(void);
+void sub_810B82C(void);
-#endif // GUARD_SAVE_LOCATION_H
+#endif // GUARD_SAVE_LOCATION_H \ No newline at end of file
diff --git a/include/script.h b/include/script.h
index 8ffbe1563..4e8b8c305 100644
--- a/include/script.h
+++ b/include/script.h
@@ -72,6 +72,7 @@ void sub_80699A4(void);
void sub_8069970(void);
void sub_8069A20(void);
void sub_8069A2C(void);
+bool8 IsMsgSignPost(void);
extern const u8 *gRAMScriptPtr;
diff --git a/include/script_menu.h b/include/script_menu.h
index f82b061a5..c1e32beae 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -10,6 +10,9 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 va
bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
+bool32 ScrSpecial_CreatePCMenu(void);
+void ScriptMenu_DisplayPCStartupPrompt(void);
+
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
void sub_809D6D4(void);
diff --git a/include/text.h b/include/text.h
index 2e6a8c837..07f6b29c2 100644
--- a/include/text.h
+++ b/include/text.h
@@ -230,6 +230,7 @@ u16 Font4Func(struct TextPrinter *textPrinter);
u16 Font5Func(struct TextPrinter *textPrinter);
u16 Font7Func(struct TextPrinter *textPrinter);
u16 Font8Func(struct TextPrinter *textPrinter);
+u16 Font6Func(struct TextPrinter *textPrinter);
void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter);
void TextPrinterDrawDownArrow(struct TextPrinter *textPrinter);
diff --git a/include/text_window.h b/include/text_window.h
index cc1de56ae..c1463a9c7 100644
--- a/include/text_window.h
+++ b/include/text_window.h
@@ -20,11 +20,14 @@ void rbox_fill_rectangle(u8 windowId);
const u16* stdpal_get(u8 id);
const u16* GetOverworldTextboxPalettePtr(void);
void sub_8098C6C(u8 bg, u16 destOffset, u8 palOffset);
-void TextWindow_SetBubbleFrame_841F1C8(u8 windowId, u16 tileStart, u8 palette);
+void TextWindow_LoadResourcesStdFrame0(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetStdFrame0_WithPal(u8 windowId, u16 tileStart, u8 palette);
void TextWindow_SetUserSelectedFrame(u8 windowId, u16 tileStart, u8 palette);
void LoadUserWindowBorderGfx(u8 windowId, u16 tileStart, u8 palette);
void sub_814FDA0(u8 windowId, u16 tileStart, u8 palette);
void DrawTextBorderOuter(u8 windowId, u16 tileStart, u8 palette);
+void TextWindow_LoadTilesStdFrame1(u8 windowId, u16 destOffset);
+void sub_814FE6C(u8 windowId, u16 destOffset, u8 palIdx);
+void sub_814FEEC(u8 windowId, u16 destOffset, u8 palIdx);
#endif // GUARD_TEXT_WINDOW_H
diff --git a/include/wild_encounter.h b/include/wild_encounter.h
index b4c42116a..bf53ed6ee 100644
--- a/include/wild_encounter.h
+++ b/include/wild_encounter.h
@@ -43,6 +43,7 @@ u16 GetLocalWildMon(bool8 *isWaterMon);
u16 GetLocalWaterMon(void);
bool8 UpdateRepelCounter(void);
void sub_8082740(u8);
-u8 GetUnownLetterByPersonality(u32 personality);
+u8 GetUnownLetterByPersonalityLoByte(u32 personality);
+bool8 SweetScentWildEncounter(void);
#endif // GUARD_WILD_ENCOUNTER_H