summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/GX_layers.h33
-rw-r--r--include/error_message_reset.h39
-rw-r--r--include/event_data.h2
-rw-r--r--include/global.fieldmap.h27
-rw-r--r--include/global.h1
-rw-r--r--include/heap.h34
-rw-r--r--include/map.h22
-rw-r--r--include/map_header.h61
-rw-r--r--include/scrcmd.h253
-rw-r--r--include/script.h44
-rw-r--r--include/timer3.h21
-rw-r--r--include/unk_02015E30.h22
-rw-r--r--include/unk_02024E64.h28
-rw-r--r--include/unk_02025484.h18
-rw-r--r--include/unk_02029FB0.h2
-rw-r--r--include/unk_0202F150.h184
-rw-r--r--include/unk_0204AEA8.h7
-rw-r--r--include/unk_0205FA2C.h120
-rw-r--r--include/unk_0206BB28.h4
19 files changed, 840 insertions, 82 deletions
diff --git a/include/GX_layers.h b/include/GX_layers.h
new file mode 100644
index 00000000..e94fb4ec
--- /dev/null
+++ b/include/GX_layers.h
@@ -0,0 +1,33 @@
+#ifndef POKEDIAMOND_GX_LAYERS_H
+#define POKEDIAMOND_GX_LAYERS_H
+
+
+#include "global.h"
+#include "GX_vramcnt.h"
+#include "error_message_reset.h"
+#include "gx.h"
+
+struct GX_LayerData
+{
+ u32 EngineB_DISPCNT_LayerMask;
+ u32 EngineA_DISPCNT_LayerMask;
+};
+
+
+typedef enum {
+ GX_LAYER_TOGGLE_OFF,
+ GX_LAYER_TOGGLE_ON,
+} GX_LayerToggle;
+
+
+THUMB_FUNC void GX_SetBanks(const struct GraphicsBanks *banks);
+THUMB_FUNC void GX_DisableEngineALayers();
+THUMB_FUNC void GX_EngineAToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle);
+THUMB_FUNC void GX_SetEngineALayers(u32 layer_mask);
+THUMB_FUNC void GX_DisableEngineBLayers();
+THUMB_FUNC void GX_EngineBToggleLayers(u32 layer_mask, GX_LayerToggle layer_toggle);
+THUMB_FUNC void GX_BothDispOn();
+THUMB_FUNC void GX_SwapDisplay();
+THUMB_FUNC u32 GX_GetEngineALayers();
+
+#endif //POKEDIAMOND_GX_LAYERS_H
diff --git a/include/error_message_reset.h b/include/error_message_reset.h
new file mode 100644
index 00000000..d12cbf33
--- /dev/null
+++ b/include/error_message_reset.h
@@ -0,0 +1,39 @@
+#ifndef POKEDIAMOND_ERROR_MESSAGE_RESET_H
+#define POKEDIAMOND_ERROR_MESSAGE_RESET_H
+
+#include "global.h"
+#include "heap.h"
+#include "SPI_pm.h"
+#include "game_init.h"
+#include "msgdata.h"
+#include "text.h"
+
+
+
+struct GraphicsBanks
+{
+ s32 bg;
+ s32 bgextpltt;
+ s32 subbg;
+ s32 subbgextpltt;
+ s32 obj;
+ s32 objextpltt;
+ s32 subobj;
+ s32 subobjextpltt;
+ s32 tex;
+ s32 texpltt;
+};
+
+
+struct GraphicsModes {
+ u32 mode1;
+ u32 mode2;
+ u32 mode3;
+ u32 mode4;
+};
+
+
+THUMB_FUNC void VBlankHandler();
+THUMB_FUNC void PrintErrorMessageAndReset();
+
+#endif //POKEDIAMOND_ERROR_MESSAGE_RESET_H
diff --git a/include/event_data.h b/include/event_data.h
index e1d46348..1f0f090a 100644
--- a/include/event_data.h
+++ b/include/event_data.h
@@ -1,6 +1,8 @@
#ifndef GUARD_SCRIPT_STATE_H
#define GUARD_SCRIPT_STATE_H
+#include "save_block_2.h"
+
struct ScriptState
{
u16 vars[288];
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
deleted file mode 100644
index 4557a2e7..00000000
--- a/include/global.fieldmap.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef POKEDIAMOND_GLOBAL_FIELDMAP_H
-#define POKEDIAMOND_GLOBAL_FIELDMAP_H
-
-struct MapHeader
-{
- u8 unk0;
- u8 unk1;
- u16 unk2;
- u16 unk4;
- u16 unk6;
- u16 unk8;
- u16 unkA;
- u16 unkC;
- u16 unkE;
- u16 unk10;
- u16 mapsec;
- u8 unk14;
- u8 unk15;
- u8 unk16;
- u8 unk17_0:4;
- u8 unk17_4:1;
- u8 unk17_5:1;
- u8 unk17_6:1;
- u8 unk17_7:1;
-};
-
-#endif //POKEDIAMOND_GLOBAL_FIELDMAP_H
diff --git a/include/global.h b/include/global.h
index e0e8cb22..1c92a1ec 100644
--- a/include/global.h
+++ b/include/global.h
@@ -6,7 +6,6 @@
#include "MWC_string.h"
#include "function_target.h"
#include "nitro.h"
-#include "global.fieldmap.h"
#include "constants/global.h"
#include "error_handling.h"
diff --git a/include/heap.h b/include/heap.h
index 6f04c5bc..69aedd9e 100644
--- a/include/heap.h
+++ b/include/heap.h
@@ -1,9 +1,37 @@
#ifndef POKEDIAMOND_HEAP_H
#define POKEDIAMOND_HEAP_H
-void * AllocFromHeap(u32 heap_id, u32 size);
-void * AllocFromHeapAtEnd(u32 heap_id, u32 size);
-void FreeToHeap(void * ptr);
+#include "global.h"
+
+struct UnkStruct_020166C8
+{
+ void **unk00;
+ void **unk04;
+ void **unk08;
+ u16 *unk0c;
+ u8 *unk10;
+ u16 unk14;
+ u16 unk16;
+ u16 unk18;
+ u16 unk1a;
+};
+
+
+THUMB_FUNC void FUN_020166C8(u32 *param0, u32 param1, u32 param2, u32 pre_size);
+THUMB_FUNC s32 FUN_020167F4();
+THUMB_FUNC u32 FUN_0201681C(u32 param0, u32 heap_id, u32 param2);
+THUMB_FUNC u32 FUN_02016828(u32 param0, u32 param1, u32 param2);
+THUMB_FUNC u32 FUN_02016834(u32 param0, u32 param1, u32 param2, s32 param3);
+THUMB_FUNC void FUN_020168D0(u32 heap_id);
+THUMB_FUNC u32 *FUN_02016944(void *param0, u32 param1, s32 param2, u32 param3);
+THUMB_FUNC void FUN_02016988();
+void *AllocFromHeap(u32 heap_id, u32 size);
+void *AllocFromHeapAtEnd(u32 heap_id, u32 size);
+void FreeToHeap(void *ptr);
void FUN_02016A8C(u32 heap_id, void * ptr);
+THUMB_FUNC u32 FUN_02016AF8(u32 param0);
+THUMB_FUNC void FUN_02016B20(u32 param0, u32 param1, u32 param2);
+THUMB_FUNC void FUN_02016B44(void *ptr, u32 param1);
+THUMB_FUNC u32 FUN_02016B90(u32 param0);
#endif //POKEDIAMOND_HEAP_H
diff --git a/include/map.h b/include/map.h
deleted file mode 100644
index 18b8c1d1..00000000
--- a/include/map.h
+++ /dev/null
@@ -1,22 +0,0 @@
-#ifndef POKEDIAMOND_MAP_H
-#define POKEDIAMOND_MAP_H
-
-typedef struct {
- u8 MapAreaData;
- u8 field_0x1;
- u16 Matrix;
- u16 MapScripts;
- u16 MapLevelScripts;
- u16 MapTexts;
- u16 DayMusic;
- u16 NightMusic;
- u16 WildPokemonData;
- u16 MapEvents;
- u16 MapName;
- u8 WeatherType;
- u8 field_0x15;
- u8 field_0x16;
- u8 field_0x17;
-} MapHeader;
-
-#endif //POKEDIAMOND_MAP_H
diff --git a/include/map_header.h b/include/map_header.h
index e4e96a59..20677025 100644
--- a/include/map_header.h
+++ b/include/map_header.h
@@ -1,27 +1,50 @@
#ifndef POKEDIAMOND_MAP_HEADER_H
#define POKEDIAMOND_MAP_HEADER_H
-u8 FUN_02034724(u32 mapno);
-u8 FUN_02034738(u32 mapno);
-u16 FUN_0203474C(u32 mapno);
+struct MapHeader
+{
+ u8 area_data_bank;
+ u8 unk1;
+ u16 matrix_id;
+ u16 scripts_bank;
+ u16 level_scripts_bank;
+ u16 msg_bank;
+ u16 day_music_id;
+ u16 night_music_id;
+ u16 wild_encounter_bank;
+ u16 events_bank;
+ u16 mapsec;
+ u8 weather_type;
+ u8 camera_type;
+ u8 unk16;
+ u8 unk17_0:4;
+ u8 is_bike_allowed:1;
+ u8 unk17_5:1;
+ u8 unk17_6:1;
+ u8 is_fly_allowed:1;
+};
+
+u8 MapHeader_GetAreaDataBank(u32 mapno);
+u8 MapHeader_GetField1(u32 mapno);
+u16 MapHeader_GetMatrixId(u32 mapno);
u16 MapHeader_GetMsgBank(u32 mapno);
-u16 MapHeader_GetScrSeqReleaseNo(u32 mapno);
-u16 FUN_0203479C(u32 mapno);
-u16 FUN_020347B0(u32 mapno);
-u16 FUN_020347C4(u32 mapno);
-BOOL FUN_020347D8(u32 mapno);
-u16 FUN_020347FC(u32 mapno);
-u16 FUN_02034810(u32 mapno);
-u16 FUN_02034824(u32 mapno);
-u8 FUN_02034838(u32 mapno);
-u8 FUN_0203484C(u32 mapno);
-u8 FUN_02034860(u32 mapno);
-u8 FUN_0203487C(u32 mapno);
-u8 FUN_02034898(u32 mapno);
-u8 FUN_020348B4(u32 mapno);
-u8 FUN_020348D0(u32 mapno);
+u16 MapHeader_GetScriptsBank(u32 mapno);
+u16 MapHeader_GetLevelScriptsBank(u32 mapno);
+u16 MapHeader_GetDayMusicId(u32 mapno);
+u16 MapHeader_GetNightMusicId(u32 mapno);
+BOOL MapHeader_HasWildEncounters(u32 mapno);
+u16 MapHeader_GetWildEncounterBank(u32 mapno);
+u16 MapHeader_GetEventsBank(u32 mapno);
+u16 MapHeader_GetMapSec(u32 mapno);
+u8 MapHeader_GetWeatherType(u32 mapno);
+u8 MapHeader_GetCameraType(u32 mapno);
+u8 MapHeader_GetField17_0(u32 mapno);
+u8 MapHeader_GetField17_6(u32 mapno);
+u8 MapHeader_IsFlyAllowed(u32 mapno);
+u8 MapHeader_IsBikeAllowed(u32 mapno);
+u8 MapHeader_GetField16(u32 mapno);
BOOL FUN_020348E4(u32 mapno);
-BOOL FUN_02034908(u32 mapno);
+BOOL MapHeader_MapIsOnOverworldMatrix(u32 mapno);
BOOL FUN_0203491C(u32 mapno);
BOOL FUN_02034930(u32 mapno);
BOOL FUN_02034944(u32 mapno);
diff --git a/include/scrcmd.h b/include/scrcmd.h
index 5ebec947..120a0c96 100644
--- a/include/scrcmd.h
+++ b/include/scrcmd.h
@@ -1,6 +1,257 @@
#ifndef POKEDIAMOND_SCRCMD_H
#define POKEDIAMOND_SCRCMD_H
-BOOL ScrCmd_givemon(struct ScriptContext* ctx);
+#include "global.h"
+#include "script.h"
+
+extern u16 VarGet(struct UnkSavStruct80* arg, u16);
+extern u16* GetVarPointer(struct UnkSavStruct80* arg, u16);
+extern struct SaveBlock2* ScriptEnvironment_GetSav2Ptr(struct UnkSavStruct80* unk);
+
+struct UnkStruct_0203A288 {
+ u8 unk0;
+ u8 unk1;
+ u8 unk2;
+ u8 padding[1];
+};
+
+//scrcmd.c
+BOOL ScrCmd_Nop(struct ScriptContext* ctx);
+BOOL ScrCmd_Dummy(struct ScriptContext* ctx);
+BOOL ScrCmd_End(struct ScriptContext* ctx);
+BOOL ScrCmd_Wait(struct ScriptContext* ctx);
+BOOL ScrCmd_DebugWatch(struct ScriptContext* ctx);
+BOOL ScrCmd_LoadByte(struct ScriptContext* ctx);
+BOOL ScrCmd_LoadWord(struct ScriptContext* ctx);
+BOOL ScrCmd_LoadByteFromAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_WriteByteToAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_SetPtrByte(struct ScriptContext* ctx);
+BOOL ScrCmd_CopyLocal(struct ScriptContext* ctx);
+BOOL ScrCmd_CopyByte(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareLocalToLocal(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareLocalToValue(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareLocalToAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareAddrToLocal(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareAddrToValue(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareAddrToAddr(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareVarToValue(struct ScriptContext* ctx);
+BOOL ScrCmd_CompareVarToVar(struct ScriptContext* ctx);
+BOOL ScrCmd_RunScript(struct ScriptContext* ctx);
+BOOL ScrCmd_RunScriptWait(struct ScriptContext* ctx);
+BOOL ScrCmd_RestartCurrentScript(struct ScriptContext* ctx);
+BOOL ScrCmd_GoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_ObjectGoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_BgGoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_DirectionGoTo(struct ScriptContext* ctx);
+BOOL ScrCmd_Call(struct ScriptContext* ctx);
+BOOL ScrCmd_Return(struct ScriptContext* ctx);
+BOOL ScrCmd_GoToIf(struct ScriptContext* ctx);
+BOOL ScrCmd_CallIf(struct ScriptContext* ctx);
+BOOL ScrCmd_SetFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_ClearFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_CheckFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_CheckFlagVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetFlagVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetTrainerFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_ClearTrainerFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_CheckTrainerFlag(struct ScriptContext* ctx);
+BOOL ScrCmd_AddVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SubVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetVar(struct ScriptContext* ctx);
+BOOL ScrCmd_CopyVar(struct ScriptContext* ctx);
+BOOL ScrCmd_SetOrCopyVar(struct ScriptContext* ctx);
+BOOL ScrCmd_Message(struct ScriptContext* ctx);
+BOOL ScrCmd_MessageFrom(struct ScriptContext* ctx);
+BOOL ScrCmd_MessageFrom2(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FC(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FD(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FE(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01FF(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk026D(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk002C(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk002D(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk02C0(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk002E(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk020C(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk002F(struct ScriptContext* ctx);
+BOOL ScrCmd_WaitButtonAB(struct ScriptContext* ctx);
+BOOL ScrCmd_WaitButtonABTime(struct ScriptContext *ctx);
+BOOL ScrCmd_WaitButton(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0032(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0033(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0034(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0035(struct ScriptContext* ctx);
+BOOL ScrCmd_ScrollBg(struct ScriptContext* ctx);
+BOOL ScrCmd_CreateMessageBox(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0037(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0038(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0039(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk003A(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk003B(struct ScriptContext *ctx);
+BOOL ScrCmd_Menu(struct ScriptContext *ctx);
+BOOL ScrCmd_YesNoMenu(struct ScriptContext *ctx);
+BOOL ScrCmd_ShowSaveClock(struct ScriptContext *ctx);
+BOOL ScrCmd_HideSaveClock(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0040(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0041(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0042(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk029D(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0043(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk02B9(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0044(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0045(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0046(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0047(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk0048(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk02CF(struct ScriptContext *ctx);
+BOOL ScrCmd_Unk02D0(struct ScriptContext *ctx);
+
+//scrcmd_4.c
+BOOL ScrCmd_GetPlayerName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetRivalName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetFriendName(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00D0(struct ScriptContext* ctx);
+BOOL ScrCmd_GetItemName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetPocketName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetTMHMMoveName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetMoveName(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00D5(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0280(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00D6(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0251(struct ScriptContext* ctx);
+BOOL ScrCmd_GetPoketchAppName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetTrainerClassName(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00D9(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00DA(struct ScriptContext* ctx);
+struct String* FUN_02040AE4(u32 msg_no, u32 heap_id);
+BOOL ScrCmd_Unk00DB(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00DC(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00DD(struct ScriptContext* ctx);
+BOOL ScrCmd_GetDecorationName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetUndergroundTrapName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetUndergroundItemName(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk00E2(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk017B(struct ScriptContext* ctx);
+BOOL ScrCmd_GetNatureName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetFashionName(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0272(struct ScriptContext* ctx);
+BOOL ScrCmd_GetPokemonMoveName(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0232(struct ScriptContext* ctx);
+BOOL ScrCmd_GetSealName(struct ScriptContext* ctx);
+BOOL ScrCmd_GetItemNameWithIndefArticle(struct ScriptContext* ctx);
+BOOL ScrCmd_GetItemNamePlural(struct ScriptContext* ctx);
+BOOL ScrCmd_GetDecorationNameWithArticle(struct ScriptContext* ctx);
+BOOL ScrCmd_GetUndergroundTrapNameWithArticle(struct ScriptContext* ctx);
+BOOL ScrCmd_GetUndergroundItemNameWithArticle(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk02C9(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk02CA(struct ScriptContext* ctx);
+BOOL ScrCmd_GetFashionNameWithArticle(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk02CC(struct ScriptContext* ctx);
+BOOL ScrCmd_GetSealNamePlural(struct ScriptContext* ctx);
+BOOL ScrCmd_CapitalizeFirstChar(struct ScriptContext* ctx);
+
+//scrcmd_11.c
+BOOL ScrCmd_Unk017D(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk017E(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk017F(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0180(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0181(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0182(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0183(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0184(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0185(struct ScriptContext* ctx);
+
+//scrcmd_13.c
+BOOL ScrCmd_Unk0253(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0254(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0255(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0256(struct ScriptContext* ctx);
+
+//scrcmd_coins.c
+BOOL ScrCmd_Unk0075(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0076(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0077(struct ScriptContext* ctx);
+BOOL ScrCmd_GetCoins(struct ScriptContext* ctx);
+BOOL ScrCmd_GiveCoins(struct ScriptContext* ctx);
+BOOL ScrCmd_TakeCoinsImmediate(struct ScriptContext* ctx);
+BOOL ScrCmd_TakeCoinsAddress(struct ScriptContext* ctx);
+BOOL ScrCmd_HasEnoughCoinsImmediate(struct ScriptContext* ctx);
+BOOL ScrCmd_HasEnoughCoinsAddress(struct ScriptContext* ctx);
+BOOL ScrCmd_CanGiveCoins(struct ScriptContext* ctx);
+
+//scrcmd_money.c
+BOOL ScrCmd_GiveMoney(struct ScriptContext* ctx);
+BOOL ScrCmd_TakeMoneyImmediate(struct ScriptContext* ctx);
+BOOL ScrCmd_TakeMoneyAddress(struct ScriptContext* ctx);
+BOOL ScrCmd_HasEnoughMoneyImmediate(struct ScriptContext* ctx);
+BOOL ScrCmd_HasEnoughMoneyAddress(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0072(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0073(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0074(struct ScriptContext* ctx);
+
+//scrcmd_daycare.c
+BOOL ScrCmd_Unk016D(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk016E(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A8(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A9(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A4(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AA(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AE(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AF(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01B0(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01BC(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01BE(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01BF(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A5(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A6(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01A7(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01AD(struct ScriptContext* ctx);
+
+//scrcmd_18.c
+BOOL ScrCmd_GiveMon(struct ScriptContext* ctx);
+
+//scrcmd_19.c
+BOOL ScrCmd_Unk01F1(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01F4(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01F5(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01F2(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk01F3(struct ScriptContext* ctx);
+
+//scrcmd_20.c
+BOOL ScrCmd_Unk02A6(struct ScriptContext* ctx);
+
+//scrcmd_items.c
+BOOL ScrCmd_GiveItem(struct ScriptContext* ctx);
+BOOL ScrCmd_TakeItem(struct ScriptContext* ctx);
+BOOL ScrCmd_HasSpaceForItem(struct ScriptContext* ctx);
+BOOL ScrCmd_HasItem(struct ScriptContext* ctx);
+BOOL ScrCmd_ItemIdIsTMOrHM(struct ScriptContext* ctx);
+BOOL ScrCmd_GetItemPocketId(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0081(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0082(struct ScriptContext* ctx);
+
+//scrcmd_23.c
+BOOL ScrCmd_Unk0083(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0084(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0085(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0086(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0087(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0088(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0089(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk008A(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk008B(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk008C(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk008D(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk008E(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk008F(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0090(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0091(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0092(struct ScriptContext* ctx);
+
+//scrcmd_25.c
+BOOL ScrCmd_Unk023F(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0240(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0241(struct ScriptContext* ctx);
+BOOL ScrCmd_Unk0242(struct ScriptContext* ctx);
#endif //POKEDIAMOND_SCRCMD_H
diff --git a/include/script.h b/include/script.h
index 8fd7696f..9a7270c2 100644
--- a/include/script.h
+++ b/include/script.h
@@ -10,30 +10,60 @@ struct ScriptContext;
typedef u8 (*ScrCmdFunc)(struct ScriptContext *);
typedef u8 Script[];
+
+struct UnkStruct_020464D4
+{
+ u16 unk0[4];
+ u8 padding[0x108];
+};
+
+struct UnkStruct_02046444
+{
+ u8 padding[0x90];
+ struct UnkStruct_020464D4 unk90[1]; //todo find size
+};
+
+struct UnkSavStruct80
+{
+ u8 padding[0x8];
+ u32 unk08;
+ struct SaveBlock2 *saveBlock2; //0xC
+ u8 padding2[0xC];
+ u32 *mapId; //0x1C
+ u8 padding3[0x18];
+ u32 unk38;
+ u8 padding4[0x24];
+ u32 unk60;
+ u8 padding5[0x14];
+ u32 unk78;
+ u8 padding6[0x2C];
+ struct UnkStruct_02046444 * unkA8;
+};
+
struct ScriptContext
{
u8 stackDepth;
u8 mode;
u8 comparisonResult;
- u8 (*nativePtr)(struct ScriptContext *);
+ BOOL (*nativePtr)(struct ScriptContext *);
const u8 *scriptPtr;
const u8 *stack[20];
ScrCmdFunc *cmdTable;
u32 cmdCount;
u32 data[4];
- u32 unk74;
- struct MsgData * unk78;
- u8 *unk7C;
- struct UnkStruct_0204639C * unk80;
+ struct UnkStruct_0204639C *unk74;
+ struct MsgData *msgData;
+ u8 *unk7C;
+ struct UnkSavStruct80 *unk80;
};
#define ScriptReadByte(ctx) (*(ctx->scriptPtr++))
void InitScriptContext(struct ScriptContext *ctx, void *cmdTable, u32 cmdCount);
u8 SetupBytecodeScript(struct ScriptContext *ctx, const u8 *ptr);
-void SetupNativeScript(struct ScriptContext *ctx, u8 (*ptr)(struct ScriptContext *));
+void SetupNativeScript(struct ScriptContext *ctx, BOOL (*ptr)(struct ScriptContext *));
void StopScript(struct ScriptContext *ctx);
-void FUN_02038B6C(struct ScriptContext *ctx, s32 r1);
+void FUN_02038B6C(struct ScriptContext *ctx, struct UnkStruct_0204639C *r1);
u8 RunScriptCommand(struct ScriptContext *ctx);
u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr);
const u8 *ScriptPop(struct ScriptContext *ctx);
diff --git a/include/timer3.h b/include/timer3.h
new file mode 100644
index 00000000..be6e1da8
--- /dev/null
+++ b/include/timer3.h
@@ -0,0 +1,21 @@
+#ifndef POKEDIAMOND_TIMER3_H
+#define POKEDIAMOND_TIMER3_H
+
+
+#include "global.h"
+
+struct Timer3Data
+{
+ BOOL NeedReset;
+ vu64 Timer3Counter;
+};
+
+THUMB_FUNC void Init_Timer3();
+THUMB_FUNC void CountUpTimer3();
+THUMB_FUNC u64 internal_GetTimer3Count();
+THUMB_FUNC u64 GetTimer3Count();
+THUMB_FUNC u64 Timer3CountToMilliSeconds(u64 count);
+THUMB_FUNC u64 Timer3CountToSeconds(u64 count);
+
+
+#endif //POKEDIAMOND_TIMER3_H
diff --git a/include/unk_02015E30.h b/include/unk_02015E30.h
new file mode 100644
index 00000000..6a4d6c15
--- /dev/null
+++ b/include/unk_02015E30.h
@@ -0,0 +1,22 @@
+#ifndef POKEDIAMOND_UNK_02015E30_H
+#define POKEDIAMOND_UNK_02015E30_H
+
+#include "global.h"
+#include "igt.h"
+#include "timer3.h"
+
+struct UnkStruct_02015E30
+{
+ u32 unk00;
+ struct IGT *unk04;
+ u64 unk08;
+ u32 unk10;
+ u32 unk14;
+ u64 unk18;
+};
+
+THUMB_FUNC void FUN_02015E30();
+THUMB_FUNC void FUN_02015E3C(struct IGT *igt);
+THUMB_FUNC void FUN_02015E60();
+
+#endif //POKEDIAMOND_UNK_02015E30_H
diff --git a/include/unk_02024E64.h b/include/unk_02024E64.h
new file mode 100644
index 00000000..ed1bd447
--- /dev/null
+++ b/include/unk_02024E64.h
@@ -0,0 +1,28 @@
+#ifndef POKEDIAMOND_UNK_02024E64_H
+#define POKEDIAMOND_UNK_02024E64_H
+
+#include "global.h"
+#include "MI_memory.h"
+#include "save_block_2.h"
+#include "string16.h"
+
+struct UnkStruct_02024E64 {
+ u8 unk0[0xE][0x80];
+ u8 unk700[0x24];
+ u16 rival_name_buf[0x8];
+ u16 unk734[0xB];
+ u8 unk74A[2]; // might be padding
+};
+
+THUMB_FUNC u32 FUN_02024E64();
+THUMB_FUNC void FUN_02024E6C(struct UnkStruct_02024E64 *param0);
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024EB4(struct SaveBlock2 *sav2);
+THUMB_FUNC void *FUN_02024EC0(struct SaveBlock2 *sav2);
+THUMB_FUNC struct UnkStruct_02024E64 *FUN_02024ECC(struct SaveBlock2 *sav2);
+THUMB_FUNC void *FUN_02024ED8(struct SaveBlock2 *sav2);
+THUMB_FUNC u16 *GetRivalNamePtr(struct UnkStruct_02024E64 *unk);
+THUMB_FUNC void RivalsNameToU16Array(struct UnkStruct_02024E64 *unk, struct String *str);
+THUMB_FUNC u16 *FUN_02024F0C(struct UnkStruct_02024E64 *unk);
+THUMB_FUNC void FUN_02024F18(struct UnkStruct_02024E64 *unk, struct String *str);
+
+#endif
diff --git a/include/unk_02025484.h b/include/unk_02025484.h
new file mode 100644
index 00000000..0412dda1
--- /dev/null
+++ b/include/unk_02025484.h
@@ -0,0 +1,18 @@
+#ifndef POKEDIAMOND_UNK_02025484_H
+#define POKEDIAMOND_UNK_02025484_H
+
+struct unk_2025484
+{
+ // size: 0x24
+ u32 unk0;
+ u32 unk4;
+ u8 padding[0x1C];
+};
+
+void FUN_02025484(struct unk_2025484 *r0, u32 r1);
+u32 *FUN_02025490(struct unk_2025484 *r0, u32 r1);
+u32 *FUN_020254A0(struct unk_2025484 *r0, u32 r1);
+u32 FUN_020254B4(struct unk_2025484 *r0);
+
+#endif POKEDIAMOND_UNK_02025484_H
+
diff --git a/include/unk_02029FB0.h b/include/unk_02029FB0.h
index 0185bff4..9ce6451d 100644
--- a/include/unk_02029FB0.h
+++ b/include/unk_02029FB0.h
@@ -1,6 +1,8 @@
#ifndef POKEDIAMOND_UNK_02029FB0_H
#define POKEDIAMOND_UNK_02029FB0_H
+struct Pokedex;
+
struct UnkStruct_02029FB0
{
u8 unk[0x14C];
diff --git a/include/unk_0202F150.h b/include/unk_0202F150.h
new file mode 100644
index 00000000..3996c1c8
--- /dev/null
+++ b/include/unk_0202F150.h
@@ -0,0 +1,184 @@
+#ifndef POKEDIAMOND_UNK_0202F150_H
+#define POKEDIAMOND_UNK_0202F150_H
+
+#include "global.h"
+#include "MI_memory.h"
+#include "RTC_api.h"
+#include "heap.h"
+#include "main.h"
+
+struct UnkStruct0202F150_sub1
+{
+ u32 unk00;
+ s16 unk04;
+ s16 unk06;
+ u32 unk08;
+};
+
+struct UnkStruct0202F150_sub2
+{
+ u32 unk00;
+ void *unk04;
+ u16 unk08;
+ u8 unk0a;
+};
+
+struct UnkStruct0202F150
+{
+ u8 unk000[2][38];
+ u8 unk04c[264];
+ u8 unk154[2][192];
+ u8 unk2D4[384];
+ void *unk454;
+ void *unk458;
+ void *unk45C;
+ void *unk460;
+ struct UnkStruct0202F150_sub1 unk464;
+ struct UnkStruct0202F150_sub1 unk470;
+ struct UnkStruct0202F150_sub1 unk47C[8];
+ struct UnkStruct0202F150_sub1 unk4DC;
+ struct UnkStruct0202F150_sub1 unk4E8[8];
+ u32 unk548;
+ u8 unk54C[32];
+ u8 unk56C[32];
+ struct UnkStruct0202F150_sub2 unk58C[8];
+ u32 unk5EC;
+ u32 unk5F0;
+ u16 unk5F4;
+ u8 unk5F6;
+ u8 unk5F7;
+ s64 unk5F8[3];
+ u16 unk610[8];
+ u8 unk620[0x8];
+ u16 unk628;
+ u8 unk62A;
+ u8 unk62B;
+ u8 unk62C;
+ s8 unk62D;
+ u16 unk62E;
+ u32 unk630;
+ u32 unk634;
+ u32 unk638[8];
+ u32 unk658;
+ u16 unk65C;
+ u8 unk65E;
+ u8 unk65F[8];
+ u8 unk667[8];
+ u8 unk66F[8];
+ u8 unk677[4];
+ u8 unk67B;
+ u8 unk67C;
+ u8 unk67D;
+ u8 unk67E;
+ u8 unk67F;
+ u8 unk680;
+ u8 unk681;
+ u8 unk682;
+ u8 unk683;
+ u8 unk684;
+ u8 unk685;
+ u8 unk686;
+ u8 unk687;
+ u8 unk688;
+ u8 unk689;
+ u8 unk68A;
+ u8 unk68B;
+};
+
+THUMB_FUNC u32 FUN_0202F150(u32 param0, u32 param1);
+THUMB_FUNC void FUN_0202F2F0();
+THUMB_FUNC void FUN_0202F5A4();
+THUMB_FUNC void FUN_0202F820(int param0);
+THUMB_FUNC void FUN_0202F8D4();
+THUMB_FUNC void FUN_0202F910(int param0);
+THUMB_FUNC u32 FUN_0202F918(u32 param0, u32 param1, u32 param2, u32 param3);
+THUMB_FUNC u32 FUN_0202F950(u32 param0, u32 param1, u32 param2);
+THUMB_FUNC void FUN_0202F984();
+THUMB_FUNC void FUN_0202F9E0(u32 param0);
+THUMB_FUNC void FUN_0202FA10();
+THUMB_FUNC void FUN_0202FA1C();
+THUMB_FUNC u8 FUN_0202FA28();
+THUMB_FUNC u32 FUN_0202FA48();
+THUMB_FUNC void FUN_0202FA5C();
+THUMB_FUNC u32 FUN_0202FB18(u32 param0);
+THUMB_FUNC void FUN_0202FB20();
+THUMB_FUNC void FUN_0202FB58();
+THUMB_FUNC u32 FUN_0202FB80();
+THUMB_FUNC void FUN_0202FC60();
+THUMB_FUNC void FUN_0202FC80();
+THUMB_FUNC void FUN_0202FCA8();
+THUMB_FUNC void FUN_0202FCCC();
+THUMB_FUNC u32 FUN_0202FE2C(int param0);
+THUMB_FUNC void FUN_0202FEEC();
+THUMB_FUNC void FUN_02030074();
+THUMB_FUNC void FUN_02030238(u32 param0, void *param1, u32 param2);
+THUMB_FUNC void FUN_0203026C(u32 param0, u8 *param1, u32 param2);
+THUMB_FUNC void FUN_020303BC(u32 param0, u8 *param1, u16 param2);
+THUMB_FUNC void FUN_020303F4(u32 param0, u8 *param1, u16 param2);
+THUMB_FUNC void FUN_020304D4(u32 param0);
+THUMB_FUNC void FUN_020304F0(u32 param0);
+THUMB_FUNC void FUN_0203050C();
+THUMB_FUNC void FUN_02030674();
+THUMB_FUNC void FUN_020307A8();
+THUMB_FUNC void FUN_020307BC();
+THUMB_FUNC void FUN_020307D0();
+THUMB_FUNC u32 FUN_020307E4(u8 *param0, u32 param1);
+THUMB_FUNC void FUN_0203086C();
+THUMB_FUNC u32 FUN_02030870(u8 *param0);
+THUMB_FUNC u32 FUN_02030930(u8 *param0);
+THUMB_FUNC void FUN_02030A00(u8 *param0);
+THUMB_FUNC u32 FUN_02030A78(u32 param0, u8 *param1, u32 param2);
+THUMB_FUNC u32 FUN_02030ADC(u32 param0, u8 *param1, u32 param2);
+THUMB_FUNC u32 FUN_02030B3C(u32 param0, u8 *param1, u32 param2);
+THUMB_FUNC u32 FUN_02030BC4(u32 param0, u8 *param1, u32 param2);
+THUMB_FUNC u32 FUN_02030C4C(u32 param0, u8 *param1);
+THUMB_FUNC int FUN_02030C58();
+THUMB_FUNC void FUN_02030C70(
+ u32 param0, u32 param1, u32 param2, void *param3, struct UnkStruct0202F150_sub2 *param4);
+THUMB_FUNC void FUN_02030C8C(struct UnkStruct0202F150_sub1 *param0,
+ u32 param1,
+ void *param2,
+ u32 param3,
+ struct UnkStruct0202F150_sub2 *param4);
+THUMB_FUNC void FUN_02030DA4();
+THUMB_FUNC void FUN_02030DFC();
+THUMB_FUNC u32 FUN_02030E7C(u16 param0);
+THUMB_FUNC u32 FUN_02030F20();
+THUMB_FUNC u32 FUN_02030F40();
+THUMB_FUNC void FUN_02030F60(u8 param0);
+THUMB_FUNC u8 FUN_02030F74(u32 param0);
+THUMB_FUNC u32 FUN_02030F88(u32 param0);
+THUMB_FUNC void FUN_02030FA8();
+THUMB_FUNC void FUN_02030FC8();
+THUMB_FUNC u32 FUN_02030FE0();
+THUMB_FUNC void FUN_02031000(u32 param0, u8 *param1, u32 param2);
+THUMB_FUNC void FUN_0203105C(u32 param0, u8 *param1, u32 param2);
+THUMB_FUNC void FUN_02031088();
+THUMB_FUNC void FUN_0203110C(u32 param0, u32 param1, u8 *param2);
+THUMB_FUNC void FUN_02031134(u32 param0, u32 param1, u8 *param2);
+THUMB_FUNC void FUN_0203115C(u32 param0, u32 param1, u8 *param2);
+THUMB_FUNC u16 FUN_02031190();
+THUMB_FUNC u32 FUN_020311D0(u32 param0, u8 *param1);
+THUMB_FUNC u32 FUN_020311DC(u32 param0);
+THUMB_FUNC u32 FUN_020311E8();
+THUMB_FUNC u32 FUN_020311F0();
+THUMB_FUNC int FUN_02031228(u16 param0);
+THUMB_FUNC u32 FUN_02031248(u32 param0);
+THUMB_FUNC u32 FUN_02031258(u32 param0);
+THUMB_FUNC void FUN_02031268(u8 param0);
+THUMB_FUNC u8 FUN_02031280();
+THUMB_FUNC void FUN_0203129C();
+THUMB_FUNC void FUN_020312BC(s64 *param0);
+THUMB_FUNC void FUN_02031354(u32 param0);
+THUMB_FUNC u32 FUN_02031370();
+THUMB_FUNC u32 FUN_02031388();
+THUMB_FUNC void FUN_020313A0(u8 param0);
+THUMB_FUNC void FUN_020313B4(u8 param0, u32 param1);
+THUMB_FUNC u32 FUN_020313CC(u32 param0);
+THUMB_FUNC u32 FUN_020313EC();
+THUMB_FUNC void FUN_02031400(u32 param0);
+THUMB_FUNC u32 FUN_02031438();
+THUMB_FUNC void FUN_02031454();
+THUMB_FUNC void FUN_02031468();
+
+#endif // POKEDIAMOND_UNK_0202F150_H
diff --git a/include/unk_0204AEA8.h b/include/unk_0204AEA8.h
new file mode 100644
index 00000000..90e13cc2
--- /dev/null
+++ b/include/unk_0204AEA8.h
@@ -0,0 +1,7 @@
+#ifndef POKEDIAMOND_UNK_0204AEA8_H
+#define POKEDIAMOND_UNK_0204AEA8_H
+
+BOOL FUN_0204AEA8(struct UnkStruct_0204639C *a0);
+void FUN_0204AEF8(struct UnkStruct_0204639C *a0, u32 a1, u32 a2);
+
+#endif
diff --git a/include/unk_0205FA2C.h b/include/unk_0205FA2C.h
new file mode 100644
index 00000000..99cf7606
--- /dev/null
+++ b/include/unk_0205FA2C.h
@@ -0,0 +1,120 @@
+#ifndef POKEDIAMOND_UNK_0205FA2C_H
+#define POKEDIAMOND_UNK_0205FA2C_H
+
+#include "global.h"
+#include "MI_memory.h"
+#include "bag.h"
+#include "heap.h"
+#include "party.h"
+#include "player_data.h"
+#include "script.h"
+#include "unk_020286F8.h"
+#include "unk_02029FB0.h"
+#include "unk_0202A8F4.h"
+#include "unk_0204639C.h"
+#include "unk_0206BB28.h"
+
+struct UnkPlayerStruct1_0205FA2C
+{
+ /* 0x00 */ struct PlayerParty *player_party;
+ /* 0x04 */ struct Bag *bag;
+ u32 unk08;
+ /* 0x0c */ struct Options *options;
+ u32 unk10[4];
+ u8 unk20;
+ u8 unk21;
+ u8 unk22;
+ u8 unk23;
+ u32 unk24[2];
+ u8 unk2c[6];
+ u8 unk32 : 4;
+ u8 unk322 : 4;
+ u8 unk33;
+ u32 unk34[3];
+};
+
+struct UnkPlayerStruct2_0205FA2C
+{
+ /* 0x00 */ struct PlayerParty *player_party;
+ /* 0x04 */ struct Options *options;
+ u32 unk08;
+ u32 unk0c;
+ u8 unk10;
+ u8 unk11;
+ u8 unk12;
+ /* 0x04 */ u8 party_count;
+ u8 unk14;
+ u8 unk15[3];
+ u16 unk18;
+ u16 unk1a;
+ /* 0x1c */ BOOL IsNatDex;
+ void *unk20;
+ u32 unk24;
+ u32 unk28;
+ u32 unk2c;
+};
+
+struct UnkCallbackStruct1_0205FA2C
+{
+ u32 unk00;
+ u32 unk04;
+ u8 unk08;
+ u8 unk09;
+ u8 unk0a;
+ u8 unk0b;
+ u8 unk0c;
+ u8 unk0d;
+ u8 unk0e[6];
+ void **unk14;
+};
+
+struct UnkCallbackStruct2_0205FA2C
+{
+ u32 unk00;
+ u32 unk04;
+ u32 *unk08;
+ u32 unk0c;
+ u16 unk10;
+ u16 unk12;
+ u16 unk14;
+};
+
+THUMB_FUNC u32 FUN_0205FA2C(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id);
+THUMB_FUNC u32 FUN_0205FAD8(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1);
+THUMB_FUNC u32 FUN_0205FB34(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1, u32 heap_id);
+THUMB_FUNC u32 FUN_0205FBC0(
+ struct UnkCallbackStruct1_0205FA2C *param0, struct UnkStruct_0204639C *param1);
+THUMB_FUNC int FUN_0205FBE8(struct UnkStruct_0204639C *param0);
+THUMB_FUNC void FUN_0205FC50(struct UnkStruct_0204639C *param0,
+ void **param1,
+ u8 param2,
+ u8 param3,
+ u8 param4,
+ u8 param5,
+ u8 param6,
+ u8 param7);
+
+THUMB_FUNC u32 FUN_0205FC9C(
+ struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1);
+THUMB_FUNC u32 FUN_0205FCC4(
+ struct UnkCallbackStruct2_0205FA2C *param0, struct UnkStruct_0204639C *param1);
+THUMB_FUNC int FUN_0205FCE8(struct UnkStruct_0204639C *param0);
+THUMB_FUNC void FUN_0205FD38(struct UnkStruct_0204639C *param0, u16 param1, u16 param2, u16 param3);
+
+THUMB_FUNC int FUN_0205FD70(struct UnkStruct_0204639C *param0);
+THUMB_FUNC void FUN_0205FDDC(struct UnkStruct_0204639C *param0, u16 param1, u16 param2);
+
+THUMB_FUNC u32 FUN_0205FE10(struct SaveBlock2 *sav2);
+THUMB_FUNC u32 FUN_0205FF5C(struct SaveBlock2 *sav2);
+THUMB_FUNC void FUN_02060044(u16 **param0, u32 *param1);
+THUMB_FUNC u32 FUN_02060064(u32 param0);
+THUMB_FUNC u32 FUN_02060070(u32 param0);
+THUMB_FUNC u32 FUN_0206007C(struct SaveBlock2 *sav2);
+THUMB_FUNC u32 FUN_020600A0(struct SaveBlock2 *sav2);
+THUMB_FUNC u32 FUN_020600DC(struct SaveBlock2 *sav2);
+THUMB_FUNC BOOL FUN_02060144(u32 **param0);
+
+#endif // POKEDIAMOND_UNK_0205FA2C_H \ No newline at end of file
diff --git a/include/unk_0206BB28.h b/include/unk_0206BB28.h
index ff60e220..44997e73 100644
--- a/include/unk_0206BB28.h
+++ b/include/unk_0206BB28.h
@@ -5,8 +5,8 @@
#include "pokedex.h"
#include "pokemon.h"
-BOOL FUN_0206BB28(struct SaveBlock2 * sav2);
-BOOL FUN_0206BB34(struct Pokedex * pokedex);
+BOOL SavArray_IsNatDexEnabled(struct SaveBlock2 * sav2);
+BOOL Pokedex_IsNatDexEnabled(struct Pokedex * pokedex);
u32 FUN_0206BB48(BOOL isNationalDex, u32 species);
#endif //POKEDIAMOND_UNK_0206BB28_H