summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/dma3.h51
-rw-r--r--include/gba/defines.h3
-rw-r--r--include/gba/multiboot.h6
-rw-r--r--include/hall_of_fame.h3
-rw-r--r--include/menu.h14
-rw-r--r--include/multiboot.h2
-rw-r--r--include/new_menu_helpers.h32
-rw-r--r--include/overworld.h3
-rw-r--r--include/quest_log.h5
-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
13 files changed, 104 insertions, 25 deletions
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/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/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/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_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..e08842143 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -86,7 +86,7 @@ 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,7 +111,6 @@ 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);
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/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