From fce326fbd47c48393b557487dd5dffa6a75f7022 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 7 Nov 2017 20:25:24 -0500 Subject: through sub_8009414 --- include/gba/io_reg.h | 17 +++++++++++++++++ include/librfu.h | 2 ++ include/link.h | 4 ++++ include/main.h | 1 + 4 files changed, 24 insertions(+) (limited to 'include') diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index f86f2434c..998e68e16 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -584,6 +584,23 @@ #define TIMER_INTR_ENABLE 0x40 #define TIMER_ENABLE 0x80 +// BGCNT +#define BGCNT_PRIORITY(n) (n) // Values 0 - 3. Lower priority BGs will be drawn on top of higher priority BGs. +#define BGCNT_CHARBASE(n) ((n) << 2) // Values 0 - 3. Base block for tile pixel data. +#define BGCNT_MOSAIC 0x0040 +#define BGCNT_16COLOR 0x0000 // 4 bits per pixel +#define BGCNT_256COLOR 0x0080 // 8 bits per pixel +#define BGCNT_SCREENBASE(n) ((n) << 8) // Values 0 - 31. Base block for tile map. +#define BGCNT_WRAP 0x2000 // Only affects affine BGs. Text BGs wrap by default. +#define BGCNT_TXT256x256 0x0000 // Internal screen size size of text mode BG in pixels. +#define BGCNT_TXT512x256 0x4000 +#define BGCNT_TXT256x512 0x8000 +#define BGCNT_TXT512x512 0xC000 +#define BGCNT_AFF128x128 0x0000 // Internal screen size size of affine mode BG in pixels. +#define BGCNT_AFF256x256 0x4000 +#define BGCNT_AFF512x512 0x8000 +#define BGCNT_AFF1024x1024 0xC000 + // serial #define SIO_ID 0x0030 // Communication ID diff --git a/include/librfu.h b/include/librfu.h index dbc8a41a6..0cf781d73 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -106,3 +106,5 @@ struct RfuIntrStruct extern struct RfuStruct *gRfuState; void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam); +void rfu_REQ_stopMode(void); +void rfu_waitREQComplete(void); diff --git a/include/link.h b/include/link.h index 7a6563144..64bb8ff47 100644 --- a/include/link.h +++ b/include/link.h @@ -193,4 +193,8 @@ u8 sub_800ABAC(void); u8 sub_800ABBC(void); void sub_800AC34(void); +void sub_80097E8(void); + +extern IWRAM_DATA u32 gUnknown_03003130[3]; // common + #endif // GUARD_LINK_H diff --git a/include/main.h b/include/main.h index e283d1754..46c8fd681 100644 --- a/include/main.h +++ b/include/main.h @@ -60,5 +60,6 @@ void SetSerialCallback(IntrCallback callback); void InitFlashTimer(void); void DoSoftReset(void); void ClearPokemonCrySongs(void); +void RestoreSerialTimer3IntrHandlers(void); #endif // GUARD_MAIN_H -- cgit v1.2.3 From 59eb766f47ca0f144447b13aabf7c4b9135fc0f3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 7 Nov 2017 21:45:44 -0500 Subject: sub_80094EC --- include/link.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/link.h b/include/link.h index 64bb8ff47..c8eece572 100644 --- a/include/link.h +++ b/include/link.h @@ -132,6 +132,7 @@ extern const struct BlockRequest sBlockRequestLookupTable[5]; extern struct Link gLink; extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS]; +extern u8 gUnknown_020228C4[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u16 gLinkType; extern u32 gLinkStatus; -- cgit v1.2.3 From 0709dc7e4c0201b80a547fb1152ec4a0219dc31a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 7 Nov 2017 22:14:40 -0500 Subject: sub_8009570 --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index c8eece572..0653a25e8 100644 --- a/include/link.h +++ b/include/link.h @@ -196,6 +196,6 @@ void sub_800AC34(void); void sub_80097E8(void); -extern IWRAM_DATA u32 gUnknown_03003130[3]; // common +extern IWRAM_DATA struct LinkTestBGInfo gUnknown_03003130; // common #endif // GUARD_LINK_H -- cgit v1.2.3 From f90106ae6ca4132c1ffdddee6580e46af3352f76 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 7 Nov 2017 22:26:00 -0500 Subject: sub_8009638 --- include/flags.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/flags.h b/include/flags.h index 7d825feba..ce93af985 100644 --- a/include/flags.h +++ b/include/flags.h @@ -42,7 +42,7 @@ #define FLAG_VISITED_MOSSDEEP_CITY CODE_FLAGS + 0x1C #define FLAG_VISITED_SOOTOPOLIS_CITY CODE_FLAGS + 0x1D #define FLAG_VISITED_EVER_GRANDE_CITY CODE_FLAGS + 0x1E - +#define SYS_UNKNOWN_87F CODE_FLAGS + 0x1F #define SYS_UNKNOWN_880 CODE_FLAGS + 0x20 #define SYS_USE_FLASH CODE_FLAGS + 0x28 -- cgit v1.2.3 From 9029fb27c176cd962bb30a12a77e7138ed21f28b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 7 Nov 2017 22:52:10 -0500 Subject: through sub_8009734 --- include/link.h | 12 ++++++++++++ include/main.h | 2 ++ 2 files changed, 14 insertions(+) (limited to 'include') diff --git a/include/link.h b/include/link.h index 0653a25e8..fa245cbdf 100644 --- a/include/link.h +++ b/include/link.h @@ -194,8 +194,20 @@ u8 sub_800ABAC(void); u8 sub_800ABBC(void); void sub_800AC34(void); +void sub_800B628(void); void sub_80097E8(void); +extern IWRAM_DATA u8 gUnknown_0300306C; +extern IWRAM_DATA u8 gUnknown_03003078[4]; +extern IWRAM_DATA u8 gUnknown_030030E4; +extern IWRAM_DATA u8 gUnknown_030030E8; +extern IWRAM_DATA u8 gUnknown_030030EC[4]; +extern IWRAM_DATA u8 gUnknown_030030F0[4]; +extern IWRAM_DATA u16 gUnknown_030030F4; +extern IWRAM_DATA u8 gUnknown_030030F8; +extern IWRAM_DATA u16 gUnknown_03003110[8]; extern IWRAM_DATA struct LinkTestBGInfo gUnknown_03003130; // common +extern IWRAM_DATA void (*gUnknown_03003140)(void); +extern IWRAM_DATA bool8 gUnknown_03003144; #endif // GUARD_LINK_H diff --git a/include/main.h b/include/main.h index 46c8fd681..4ce2e9b1a 100644 --- a/include/main.h +++ b/include/main.h @@ -50,6 +50,8 @@ extern bool8 gLinkVSyncDisabled; extern const u8 gGameVersion; extern const u8 gGameLanguage; +extern IWRAM_DATA u8 gUnknown_03002748; + void AgbMain(void); void SetMainCallback2(MainCallback callback); void InitKeys(void); -- cgit v1.2.3 From d5547a3744104140bc8a3e5390f13a9bc903d249 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 7 Nov 2017 23:53:30 -0500 Subject: main.c common syms --- include/main.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/main.h b/include/main.h index 4ce2e9b1a..4b95b1919 100644 --- a/include/main.h +++ b/include/main.h @@ -50,7 +50,13 @@ extern bool8 gLinkVSyncDisabled; extern const u8 gGameVersion; extern const u8 gGameLanguage; -extern IWRAM_DATA u8 gUnknown_03002748; +extern u16 gKeyRepeatStartDelay; +extern u8 gUnknown_030022B4; +extern u16 gKeyRepeatContinueDelay; +extern IntrFunc gIntrTable[]; +extern u8 gUnknown_03002748; +extern u32 IntrMain_Buffer[]; +extern u8 gPcmDmaCounter; void AgbMain(void); void SetMainCallback2(MainCallback callback); -- cgit v1.2.3 From e68dbd62765b2784af8ec0f788d049ca5bafad25 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 8 Nov 2017 19:29:37 -0500 Subject: through sub_8009818 --- include/link.h | 38 ++++++++++++++++++++++++++------------ include/main.h | 7 ++----- 2 files changed, 28 insertions(+), 17 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index fa245cbdf..662f8e5cd 100644 --- a/include/link.h +++ b/include/link.h @@ -197,17 +197,31 @@ void sub_800AC34(void); void sub_800B628(void); void sub_80097E8(void); -extern IWRAM_DATA u8 gUnknown_0300306C; -extern IWRAM_DATA u8 gUnknown_03003078[4]; -extern IWRAM_DATA u8 gUnknown_030030E4; -extern IWRAM_DATA u8 gUnknown_030030E8; -extern IWRAM_DATA u8 gUnknown_030030EC[4]; -extern IWRAM_DATA u8 gUnknown_030030F0[4]; -extern IWRAM_DATA u16 gUnknown_030030F4; -extern IWRAM_DATA u8 gUnknown_030030F8; -extern IWRAM_DATA u16 gUnknown_03003110[8]; -extern IWRAM_DATA struct LinkTestBGInfo gUnknown_03003130; // common -extern IWRAM_DATA void (*gUnknown_03003140)(void); -extern IWRAM_DATA bool8 gUnknown_03003144; +extern u16 gUnknown_03003020[6]; +extern u32 gUnknown_0300302C; +extern struct LinkPlayerBlock gUnknown_03003030; +extern bool8 gUnknown_0300306C; +extern u32 gUnknown_03003070; +extern bool8 gUnknown_03003078[4]; +extern u8 gUnknown_0300307C[4]; +extern u16 gUnknown_03003084; +extern u16 gUnknown_03003090[4][8]; +extern u32 gUnknown_030030E0; +extern u8 gUnknown_030030E4; +extern u8 gUnknown_030030E8; +extern u8 gUnknown_030030EC[4]; +extern u8 gUnknown_030030F0[4]; +extern u16 gUnknown_030030F4; +extern u8 gUnknown_030030F8; +extern bool8 gLinkVSyncDisabled; +extern bool8 gUnknown_03003100; +extern u16 gUnknown_03003110[8]; +extern u8 gUnknown_03003120; +extern struct LinkTestBGInfo gUnknown_03003130; +extern void (*gUnknown_03003140)(void); +extern bool8 gUnknown_03003144; +extern u16 gUnknown_03003148[4]; +extern u8 gUnknown_03003150; +extern u8 gUnknown_03003160; #endif // GUARD_LINK_H diff --git a/include/main.h b/include/main.h index 4b95b1919..779adb758 100644 --- a/include/main.h +++ b/include/main.h @@ -42,17 +42,14 @@ struct Main /*0x439*/ u8 field_439_x4:1; }; -extern u8 gUnknown_3001764; -extern struct Main gMain; -extern bool8 gSoftResetDisabled; -extern bool8 gLinkVSyncDisabled; - extern const u8 gGameVersion; extern const u8 gGameLanguage; extern u16 gKeyRepeatStartDelay; extern u8 gUnknown_030022B4; +extern struct Main gMain; extern u16 gKeyRepeatContinueDelay; +extern bool8 gSoftResetDisabled; extern IntrFunc gIntrTable[]; extern u8 gUnknown_03002748; extern u32 IntrMain_Buffer[]; -- cgit v1.2.3 From 9a9f6012441a4ed0f7ba1566a3f693801957ef12 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 8 Nov 2017 19:58:59 -0500 Subject: sub_8009900 --- include/link.h | 1 + include/save.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 662f8e5cd..5d9471826 100644 --- a/include/link.h +++ b/include/link.h @@ -196,6 +196,7 @@ void sub_800AC34(void); void sub_800B628(void); void sub_80097E8(void); +void sub_800A994(u32 seed, u8 flags); extern u16 gUnknown_03003020[6]; extern u32 gUnknown_0300302C; diff --git a/include/save.h b/include/save.h index 6c1238cd2..f010b3415 100644 --- a/include/save.h +++ b/include/save.h @@ -77,7 +77,7 @@ u8 GetSaveValidStatus(const struct SaveSectionLocation *location); u8 DoReadFlashWholeSection(u8, struct SaveSection *); u16 CalculateChecksum(void *, u16); u8 HandleSavingData(u8 saveType); -//u8 TrySavingData(u8 saveType); +u8 TrySavingData(u8 saveType); //u8 sub_8125D80(void); //bool8 sub_8125DA8(void); //u8 sub_8125DDC(void); -- cgit v1.2.3 From d94f74d2617f257c0cdcc19cfb08dc76ea0ec4ad Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 9 Nov 2017 21:14:43 -0500 Subject: sub_8009AA0 --- include/decompress.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/decompress.h b/include/decompress.h index c3a771893..92292e9ce 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -26,4 +26,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 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); +extern u8 gDecompressionBuffer[]; + #endif // GUARD_DECOMPRESS_H -- cgit v1.2.3 From 1523d5c01e1745ad2f7c627c5701ab65de375f12 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 9 Nov 2017 21:48:27 -0500 Subject: sub_8009D90 --- include/item_menu.h | 2 ++ include/main.h | 2 +- include/overworld.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/item_menu.h b/include/item_menu.h index 85655e9d5..17229ec29 100644 --- a/include/item_menu.h +++ b/include/item_menu.h @@ -5,6 +5,8 @@ // Exported RAM declarations +extern u16 gScriptItemId; + // Exported ROM declarations void sub_81AAC50(void); void sub_81AAC70(void); diff --git a/include/main.h b/include/main.h index 779adb758..26a81e60a 100644 --- a/include/main.h +++ b/include/main.h @@ -46,7 +46,7 @@ extern const u8 gGameVersion; extern const u8 gGameLanguage; extern u16 gKeyRepeatStartDelay; -extern u8 gUnknown_030022B4; +extern bool8 gUnknown_030022B4; extern struct Main gMain; extern u16 gKeyRepeatContinueDelay; extern bool8 gSoftResetDisabled; diff --git a/include/overworld.h b/include/overworld.h index 19bcaaf01..45723c3e9 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -51,6 +51,7 @@ void Overworld_ChangeMusicToDefault(void); void Overworld_ChangeMusicTo(u16); bool32 is_c1_link_related_active(void); +extern u16 gUnknown_03005DA8; void strange_npc_table_clear(void); const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); -- cgit v1.2.3 From d76901ff6412c319a1044db36e6ab0b98f530d25 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 10 Nov 2017 08:37:50 -0500 Subject: through sub_800A0AC --- include/global.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/global.h b/include/global.h index 3421517d7..8cfbc2289 100644 --- a/include/global.h +++ b/include/global.h @@ -51,6 +51,7 @@ enum LanguageId { LANGUAGE_GERMAN = 5, }; +#define GAME_VERSION (VERSION_EMERALD) #define GAME_LANGUAGE (LANGUAGE_ENGLISH) enum -- cgit v1.2.3 From 27f9dd0a97cf6e0a2528ec3744a34a0732ff97fd Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 10 Nov 2017 19:06:06 -0500 Subject: sub_800A0C8 --- include/trade.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 include/trade.h (limited to 'include') diff --git a/include/trade.h b/include/trade.h new file mode 100644 index 000000000..15438ff3f --- /dev/null +++ b/include/trade.h @@ -0,0 +1,12 @@ +#ifndef GUARD_TRADE_H +#define GUARD_TRADE_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +int sub_807A728(void); + +#endif //GUARD_TRADE_H -- cgit v1.2.3 From 3503444d3ba8e0f987e9f48457e832fa270a02bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 10 Nov 2017 20:27:02 -0500 Subject: Some EWRAM offsets abstracted away --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 5d9471826..b48b248f0 100644 --- a/include/link.h +++ b/include/link.h @@ -136,7 +136,7 @@ extern u8 gUnknown_020228C4[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u16 gLinkType; extern u32 gLinkStatus; -extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2]; +extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS + 1][BLOCK_BUFFER_SIZE / 2]; extern u16 gSendCmd[CMD_LENGTH]; extern u8 gShouldAdvanceLinkState; extern struct LinkPlayer gLinkPlayers[]; -- cgit v1.2.3 From 50c162250732dbe5d90b8e38d66c3dc7ea114f00 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 10 Nov 2017 20:47:24 -0500 Subject: Split link.s and link_rfu.s --- include/link.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/link.h b/include/link.h index b48b248f0..9c9793249 100644 --- a/include/link.h +++ b/include/link.h @@ -197,6 +197,7 @@ void sub_800AC34(void); void sub_800B628(void); void sub_80097E8(void); void sub_800A994(u32 seed, u8 flags); +void sub_800A418(void); extern u16 gUnknown_03003020[6]; extern u32 gUnknown_0300302C; -- cgit v1.2.3 From 27c0dc0fd59f4e71f09313613a1a03bd48e6209d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 10 Nov 2017 22:08:17 -0500 Subject: through sub_800A588 --- include/link.h | 9 +++++---- include/link_rfu.h | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 include/link_rfu.h (limited to 'include') diff --git a/include/link.h b/include/link.h index 9c9793249..8ec0431aa 100644 --- a/include/link.h +++ b/include/link.h @@ -29,6 +29,8 @@ #define MASTER_HANDSHAKE 0x8FFF #define SLAVE_HANDSHAKE 0xB9A0 +#define SIO_MULTI_CNT ((volatile struct SioMultiCnt *)REG_ADDR_SIOCNT) + enum { LINK_STATE_START0, @@ -142,7 +144,7 @@ extern u8 gShouldAdvanceLinkState; extern struct LinkPlayer gLinkPlayers[]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; -extern bool8 gLinkVSyncDisabled; +extern bool8 gSerialIsRFU; void Task_DestroySelf(u8); void OpenLink(void); @@ -162,7 +164,7 @@ void sub_8007E24(void); void sub_8007E4C(void); u8 GetMultiplayerId(void); u8 bitmask_all_link_players_but_self(void); -bool8 SendBlock(u8, void *, u16); +bool8 SendBlock(u8, const void *, u16); u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); void ResetBlockReceivedFlag(u8); @@ -183,7 +185,6 @@ u8 GetLinkPlayerCount(void); void sub_800E0E8(void); bool8 sub_800A520(void); -bool8 sub_8010500(void); void sub_800DFB4(u8, u8); void sub_800ADF8(void); void sub_800B488(void); @@ -215,7 +216,7 @@ extern u8 gUnknown_030030EC[4]; extern u8 gUnknown_030030F0[4]; extern u16 gUnknown_030030F4; extern u8 gUnknown_030030F8; -extern bool8 gLinkVSyncDisabled; +extern bool8 gSerialIsRFU; extern bool8 gUnknown_03003100; extern u16 gUnknown_03003110[8]; extern u8 gUnknown_03003120; diff --git a/include/link_rfu.h b/include/link_rfu.h new file mode 100644 index 000000000..ff71c65aa --- /dev/null +++ b/include/link_rfu.h @@ -0,0 +1,24 @@ +#ifndef GUARD_LINK_RFU_H +#define GUARD_LINK_RFU_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +u32 sub_800BEC0(void); +void sub_800E700(void); +void sub_800EDD4(void); +bool32 sub_800F7E4(void); +void sub_800F804(void); +void sub_800F850(void); +void Rfu_set_zero(void); +u8 sub_80104F4(void); +u8 rfu_get_multiplayer_id(void); +bool32 sub_800FE84(const void *src, size_t size); +bool8 sub_8010100(u8 a0); +bool8 sub_8010500(void); +u8 sub_800FCD8(void); +void sub_800F6FC(u8 who); + +#endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From efd0651efeeb42eb6e6a68b88ab2f9a93407666b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 10 Nov 2017 22:34:23 -0500 Subject: through sub_800A678 --- include/link.h | 15 ++++++++++++++- include/link_rfu.h | 7 ++++--- 2 files changed, 18 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 8ec0431aa..09e2789f5 100644 --- a/include/link.h +++ b/include/link.h @@ -2,6 +2,7 @@ #define GUARD_LINK_H #define MAX_LINK_PLAYERS 4 +#define MAX_RFU_PLAYERS 5 #define CMD_LENGTH 8 #define QUEUE_CAPACITY 50 #define BLOCK_BUFFER_SIZE 0x100 @@ -26,6 +27,18 @@ #define EXTRACT_RECEIVED_NOTHING(status) \ (((status) >> LINK_STAT_RECEIVED_NOTHING_SHIFT) & 1) +struct LinkStatus +{ + u32 localId:2; + u32 playerCount:3; + u32 master:1; + u32 connEstablished:1; + u32 unused_7:1; + u32 receivedNothing:1; + u32 unused_9:7; + u32 errors:7; +}; + #define MASTER_HANDSHAKE 0x8FFF #define SLAVE_HANDSHAKE 0xB9A0 @@ -138,7 +151,7 @@ extern u8 gUnknown_020228C4[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u16 gLinkType; extern u32 gLinkStatus; -extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS + 1][BLOCK_BUFFER_SIZE / 2]; +extern u16 gBlockRecvBuffer[MAX_RFU_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u16 gSendCmd[CMD_LENGTH]; extern u8 gShouldAdvanceLinkState; extern struct LinkPlayer gLinkPlayers[]; diff --git a/include/link_rfu.h b/include/link_rfu.h index ff71c65aa..71b35b25c 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -9,16 +9,17 @@ u32 sub_800BEC0(void); void sub_800E700(void); void sub_800EDD4(void); +void sub_800F6FC(u8 who); +void sub_800F728(u8 who); bool32 sub_800F7E4(void); void sub_800F804(void); void sub_800F850(void); +u8 sub_800FCD8(void); +bool32 sub_800FE84(const void *src, size_t size); void Rfu_set_zero(void); u8 sub_80104F4(void); u8 rfu_get_multiplayer_id(void); -bool32 sub_800FE84(const void *src, size_t size); bool8 sub_8010100(u8 a0); bool8 sub_8010500(void); -u8 sub_800FCD8(void); -void sub_800F6FC(u8 who); #endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From e874cbd9d952f9cb893885c04c61908910cc7791 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 11 Nov 2017 00:05:44 -0500 Subject: Rename functions in link.c --- include/link.h | 45 ++++++++++++++++++++++++--------------------- include/main.h | 4 ++-- 2 files changed, 26 insertions(+), 23 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 09e2789f5..917331c34 100644 --- a/include/link.h +++ b/include/link.h @@ -59,6 +59,9 @@ enum EXCHANGE_COMPLETE, EXCHANGE_TIMED_OUT, EXCHANGE_IN_PROGRESS, + EXCHANGE_STAT_4, + EXCHANGE_STAT_5, + EXCHANGE_STAT_6 }; enum @@ -146,8 +149,8 @@ struct BlockRequest extern const struct BlockRequest sBlockRequestLookupTable[5]; extern struct Link gLink; -extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS]; -extern u8 gUnknown_020228C4[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer +extern u16 gRecvCmds[MAX_LINK_PLAYERS][CMD_LENGTH]; +extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u16 gLinkType; extern u32 gLinkStatus; @@ -162,14 +165,14 @@ extern bool8 gSerialIsRFU; void Task_DestroySelf(u8); void OpenLink(void); void CloseLink(void); -u16 LinkMain2(u16 *); +u16 LinkMain2(const u16 *); void sub_8007B14(void); bool32 sub_8007B24(void); void ClearLinkCallback(void); void ClearLinkCallback_2(void); u8 GetLinkPlayerCount(void); void OpenLinkTimed(void); -u8 GetLinkPlayerDataExchangeStatusTimed(void); +u8 GetLinkPlayerDataExchangeStatusTimed(int lower, int upper); bool8 IsLinkPlayerDataExchangeComplete(void); u32 GetLinkPlayerTrainerId(u8); void ResetLinkPlayers(void); @@ -181,7 +184,6 @@ bool8 SendBlock(u8, const void *, u16); u8 GetBlockReceivedStatus(void); void ResetBlockReceivedFlags(void); void ResetBlockReceivedFlag(u8); -void SetLinkDebugValues(u32, u32); u8 GetLinkPlayerCount_2(void); bool8 IsLinkMaster(void); void CB2_LinkError(void); @@ -201,43 +203,44 @@ bool8 sub_800A520(void); void sub_800DFB4(u8, u8); void sub_800ADF8(void); void sub_800B488(void); -void sub_8009734(void); void sub_800A620(void); void sub_8011BD0(void); u8 sub_800ABAC(void); u8 sub_800ABBC(void); void sub_800AC34(void); -void sub_800B628(void); -void sub_80097E8(void); -void sub_800A994(u32 seed, u8 flags); +void SetLinkDebugValues(u32 seed, u32 flags); void sub_800A418(void); +void SetSuppressLinkErrorMessage(bool8 flag); +void sub_800B524(struct LinkPlayer *linkPlayer); +u8 sub_800B2E8(void); +u8 sub_800B320(void); +u8 sub_800B33C(void); extern u16 gUnknown_03003020[6]; extern u32 gUnknown_0300302C; -extern struct LinkPlayerBlock gUnknown_03003030; -extern bool8 gUnknown_0300306C; +extern struct LinkPlayerBlock gLocalLinkPlayerBlock; +extern bool8 gLinkErrorOccurred; extern u32 gUnknown_03003070; extern bool8 gUnknown_03003078[4]; extern u8 gUnknown_0300307C[4]; -extern u16 gUnknown_03003084; -extern u16 gUnknown_03003090[4][8]; -extern u32 gUnknown_030030E0; +extern u16 gLinkHeldKeys; +extern u32 gLinkStatus; extern u8 gUnknown_030030E4; extern u8 gUnknown_030030E8; extern u8 gUnknown_030030EC[4]; extern u8 gUnknown_030030F0[4]; extern u16 gUnknown_030030F4; -extern u8 gUnknown_030030F8; +extern u8 gSuppressLinkErrorMessage; extern bool8 gSerialIsRFU; extern bool8 gUnknown_03003100; -extern u16 gUnknown_03003110[8]; extern u8 gUnknown_03003120; -extern struct LinkTestBGInfo gUnknown_03003130; -extern void (*gUnknown_03003140)(void); -extern bool8 gUnknown_03003144; -extern u16 gUnknown_03003148[4]; -extern u8 gUnknown_03003150; +extern struct LinkTestBGInfo gLinkTestBGInfo; +extern void (*gLinkCallback)(void); +extern bool8 gShouldAdvanceLinkState; +extern u16 gLinkTestBlockChecksums[4]; +extern u8 gBlockRequestType; extern u8 gUnknown_03003160; +extern u8 gUnknown_03004130; #endif // GUARD_LINK_H diff --git a/include/main.h b/include/main.h index 26a81e60a..5caa82cdf 100644 --- a/include/main.h +++ b/include/main.h @@ -46,12 +46,12 @@ extern const u8 gGameVersion; extern const u8 gGameLanguage; extern u16 gKeyRepeatStartDelay; -extern bool8 gUnknown_030022B4; +extern bool8 gLinkTransferringData; extern struct Main gMain; extern u16 gKeyRepeatContinueDelay; extern bool8 gSoftResetDisabled; extern IntrFunc gIntrTable[]; -extern u8 gUnknown_03002748; +extern u8 gLinkVSyncDisabled; extern u32 IntrMain_Buffer[]; extern u8 gPcmDmaCounter; -- cgit v1.2.3 From 3321548956e2c7311bedb5bdfc4693c2010467f2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 11 Nov 2017 00:25:05 -0500 Subject: Link common syms --- include/link.h | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 917331c34..283e13aa1 100644 --- a/include/link.h +++ b/include/link.h @@ -149,7 +149,7 @@ struct BlockRequest extern const struct BlockRequest sBlockRequestLookupTable[5]; extern struct Link gLink; -extern u16 gRecvCmds[MAX_LINK_PLAYERS][CMD_LENGTH]; +extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH]; extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u16 gLinkType; @@ -218,18 +218,18 @@ u8 sub_800B320(void); u8 sub_800B33C(void); extern u16 gUnknown_03003020[6]; -extern u32 gUnknown_0300302C; +extern u32 gLinkDebugSeed; extern struct LinkPlayerBlock gLocalLinkPlayerBlock; extern bool8 gLinkErrorOccurred; -extern u32 gUnknown_03003070; -extern bool8 gUnknown_03003078[4]; -extern u8 gUnknown_0300307C[4]; +extern u32 gLinkDebugFlags; +extern bool8 gUnknown_03003078[MAX_LINK_PLAYERS]; +extern u8 gUnknown_0300307C[MAX_LINK_PLAYERS]; extern u16 gLinkHeldKeys; extern u32 gLinkStatus; extern u8 gUnknown_030030E4; extern u8 gUnknown_030030E8; -extern u8 gUnknown_030030EC[4]; -extern u8 gUnknown_030030F0[4]; +extern u8 gUnknown_030030EC[MAX_LINK_PLAYERS]; +extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS]; extern u16 gUnknown_030030F4; extern u8 gSuppressLinkErrorMessage; extern bool8 gSerialIsRFU; @@ -238,9 +238,17 @@ extern u8 gUnknown_03003120; extern struct LinkTestBGInfo gLinkTestBGInfo; extern void (*gLinkCallback)(void); extern bool8 gShouldAdvanceLinkState; -extern u16 gLinkTestBlockChecksums[4]; +extern u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS]; extern u8 gBlockRequestType; extern u8 gUnknown_03003160; extern u8 gUnknown_03004130; +extern u16 gUnknown_03004134; +extern u32 gUnknown_03003074; +extern u32 gFiller_03003154; +extern u32 gFiller_03003158; +extern u32 gFiller_0300315c; +extern u32 gFiller_03004138; +extern u32 gFiller_0300413C; +extern u32 gFiller_03003080; #endif // GUARD_LINK_H -- cgit v1.2.3 From 2e95c5575fb53107501f1a9a950d453048297148 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 12 Nov 2017 20:57:21 -0500 Subject: sub_800AA60 --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 283e13aa1..6231dd9e4 100644 --- a/include/link.h +++ b/include/link.h @@ -233,7 +233,7 @@ extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS]; extern u16 gUnknown_030030F4; extern u8 gSuppressLinkErrorMessage; extern bool8 gSerialIsRFU; -extern bool8 gUnknown_03003100; +extern bool8 gSavedLinkPlayerCount; extern u8 gUnknown_03003120; extern struct LinkTestBGInfo gLinkTestBGInfo; extern void (*gLinkCallback)(void); -- cgit v1.2.3 From b346bac98b9328ad2da85e89b885ea09f247e98d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 12 Nov 2017 21:31:08 -0500 Subject: through GetLinkPlayerCount_2 --- include/link.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 6231dd9e4..605d32aec 100644 --- a/include/link.h +++ b/include/link.h @@ -205,7 +205,6 @@ void sub_800ADF8(void); void sub_800B488(void); void sub_800A620(void); void sub_8011BD0(void); -u8 sub_800ABAC(void); u8 sub_800ABBC(void); void sub_800AC34(void); @@ -234,7 +233,7 @@ extern u16 gUnknown_030030F4; extern u8 gSuppressLinkErrorMessage; extern bool8 gSerialIsRFU; extern bool8 gSavedLinkPlayerCount; -extern u8 gUnknown_03003120; +extern u8 gSavedMultiplayerId; extern struct LinkTestBGInfo gLinkTestBGInfo; extern void (*gLinkCallback)(void); extern bool8 gShouldAdvanceLinkState; -- cgit v1.2.3 From ccf6599b4038a5a957576f7ab88027dd98c07dcf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 12 Nov 2017 22:09:11 -0500 Subject: sub_800AC34 --- include/link.h | 2 +- include/link_rfu.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 605d32aec..d4610eed5 100644 --- a/include/link.h +++ b/include/link.h @@ -205,7 +205,7 @@ void sub_800ADF8(void); void sub_800B488(void); void sub_800A620(void); void sub_8011BD0(void); -u8 sub_800ABBC(void); +u8 IsLinkMaster(void); void sub_800AC34(void); void SetLinkDebugValues(u32 seed, u32 flags); diff --git a/include/link_rfu.h b/include/link_rfu.h index 71b35b25c..39f68d1f1 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -21,5 +21,7 @@ u8 sub_80104F4(void); u8 rfu_get_multiplayer_id(void); bool8 sub_8010100(u8 a0); bool8 sub_8010500(void); +bool8 Rfu_IsMaster(void); +void task_add_05_task_del_08FA224_when_no_RfuFunc(void); #endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From e6b38426b7c882a3ae09ac9e6e27e12b06e7ffd1 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 12 Nov 2017 22:44:20 -0500 Subject: sub_800ADF8 --- include/link_rfu.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 39f68d1f1..59cdc82d0 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -23,5 +23,6 @@ bool8 sub_8010100(u8 a0); bool8 sub_8010500(void); bool8 Rfu_IsMaster(void); void task_add_05_task_del_08FA224_when_no_RfuFunc(void); +void sub_8010434(void); #endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From 344a71d347c487f9fb4213637f3930e2643444d9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 12 Nov 2017 23:16:51 -0500 Subject: through CB2_LinkError --- include/link.h | 7 +++++-- include/link_rfu.h | 1 + include/m4a.h | 4 ++++ include/malloc.h | 1 + include/new_menu_helpers.h | 2 ++ 5 files changed, 13 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index d4610eed5..2689f2596 100644 --- a/include/link.h +++ b/include/link.h @@ -17,6 +17,7 @@ #define LINK_STAT_RECEIVED_NOTHING 0x00000100 #define LINK_STAT_RECEIVED_NOTHING_SHIFT 8 #define LINK_STAT_ERRORS 0x0007F000 +#define LINK_STAT_ERRORS_SHIFT 12 #define EXTRACT_PLAYER_COUNT(status) \ (((status) & LINK_STAT_PLAYER_COUNT) >> LINK_STAT_PLAYER_COUNT_SHIFT) @@ -26,6 +27,8 @@ (((status) >> LINK_STAT_CONN_ESTABLISHED_SHIFT) & 1) #define EXTRACT_RECEIVED_NOTHING(status) \ (((status) >> LINK_STAT_RECEIVED_NOTHING_SHIFT) & 1) +#define EXTRACT_LINK_ERRORS(status) \ +(((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT) struct LinkStatus { @@ -239,8 +242,8 @@ extern void (*gLinkCallback)(void); extern bool8 gShouldAdvanceLinkState; extern u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS]; extern u8 gBlockRequestType; -extern u8 gUnknown_03003160; -extern u8 gUnknown_03004130; +extern u8 gLastSendQueueCount; +extern u8 gLastRecvQueueCount; extern u16 gUnknown_03004134; extern u32 gUnknown_03003074; extern u32 gFiller_03003154; diff --git a/include/link_rfu.h b/include/link_rfu.h index 59cdc82d0..1f29d863d 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -24,5 +24,6 @@ bool8 sub_8010500(void); bool8 Rfu_IsMaster(void); void task_add_05_task_del_08FA224_when_no_RfuFunc(void); void sub_8010434(void); +void sub_800E604(void); #endif //GUARD_LINK_RFU_H diff --git a/include/m4a.h b/include/m4a.h index 8c3380dd8..316b85082 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -17,4 +17,8 @@ void m4aMPlayFadeOutTemporarily(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayFadeIn(struct MusicPlayerInfo *mplayInfo, u16 speed); void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo); +extern struct MusicPlayerInfo gMPlay_SE1; +extern struct MusicPlayerInfo gMPlay_SE2; +extern struct MusicPlayerInfo gMPlay_SE3; + #endif //GUARD_M4A_H diff --git a/include/malloc.h b/include/malloc.h index f3a731797..a6abab5e4 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -1,6 +1,7 @@ #ifndef GUARD_MALLOC_H #define GUARD_MALLOC_H +#define HEAP_SIZE 0x1C000 #define malloc Alloc #define calloc(ct, sz) AllocZeroed((ct) * (sz)) #define free Free diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 42b8c60b1..2deb8d8cd 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -4,6 +4,8 @@ #include "text.h" #include "task.h" +extern const u16 gUnknown_0860F074[]; + void sub_81973A4(void); void sub_81973C4(u8, u8); void sub_819746C(u8 windowId, bool8 copyToVram); -- cgit v1.2.3 From 85cf626316c6300cd77978d769a8758ec43a2ca4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 12 Nov 2017 23:33:03 -0500 Subject: sub_800B080 --- include/menu.h | 1 + include/strings.h | 2 ++ 2 files changed, 3 insertions(+) (limited to 'include') diff --git a/include/menu.h b/include/menu.h index d8b2afc5c..e0d06e715 100644 --- a/include/menu.h +++ b/include/menu.h @@ -29,5 +29,6 @@ bool8 free_temp_tile_data_buffers_if_possible(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 sub_8198C58(void); +void copy_decompressed_tile_data_to_vram_autofree(u8 arg0, const void *arg1, bool32 arg2, u16 arg3, u8 arg4); #endif // GUARD_MENU_H diff --git a/include/strings.h b/include/strings.h index fcdb1eca4..299d637b8 100644 --- a/include/strings.h +++ b/include/strings.h @@ -75,5 +75,7 @@ extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; extern const u8 gText_RegisteredDataDeleted[]; extern const u8 gUnknown_085EA79D[]; +extern const u8 gText_CommErrorEllipsis[]; +extern const u8 gText_MoveCloserToLinkPartner[]; #endif //GUARD_STRINGS_H -- cgit v1.2.3 From f21c5ebea50685982daf1f81cda4c535615a6ef8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 12 Nov 2017 23:58:05 -0500 Subject: through sub_800B1A0 --- include/link.h | 4 ++-- include/reset_save_heap.h | 12 ++++++++++++ include/strings.h | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 include/reset_save_heap.h (limited to 'include') diff --git a/include/link.h b/include/link.h index 2689f2596..60f7a27fa 100644 --- a/include/link.h +++ b/include/link.h @@ -163,7 +163,7 @@ extern u8 gShouldAdvanceLinkState; extern struct LinkPlayer gLinkPlayers[]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; -extern bool8 gSerialIsRFU; +extern bool8 gWirelessCommType; void Task_DestroySelf(u8); void OpenLink(void); @@ -234,7 +234,7 @@ extern u8 gUnknown_030030EC[MAX_LINK_PLAYERS]; extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS]; extern u16 gUnknown_030030F4; extern u8 gSuppressLinkErrorMessage; -extern bool8 gSerialIsRFU; +extern bool8 gWirelessCommType; extern bool8 gSavedLinkPlayerCount; extern u8 gSavedMultiplayerId; extern struct LinkTestBGInfo gLinkTestBGInfo; diff --git a/include/reset_save_heap.h b/include/reset_save_heap.h new file mode 100644 index 000000000..12fd186ec --- /dev/null +++ b/include/reset_save_heap.h @@ -0,0 +1,12 @@ +#ifndef GUARD_RESET_SAVE_HEAP_H +#define GUARD_RESET_SAVE_HEAP_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_81700F8(void); + +#endif //GUARD_RESET_SAVE_HEAP_H diff --git a/include/strings.h b/include/strings.h index 299d637b8..f3efe88e4 100644 --- a/include/strings.h +++ b/include/strings.h @@ -77,5 +77,8 @@ extern const u8 gText_RegisteredDataDeleted[]; extern const u8 gUnknown_085EA79D[]; extern const u8 gText_CommErrorEllipsis[]; extern const u8 gText_MoveCloserToLinkPartner[]; +extern const u8 gText_CommErrorCheckConnections[]; +extern const u8 gText_ABtnTitleScreen[]; +extern const u8 gText_ABtnRegistrationCounter[]; #endif //GUARD_STRINGS_H -- cgit v1.2.3 From 7e4cb5f332de1d72fc57be82f4eca0ecd5db5f8d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 13 Nov 2017 01:01:27 -0500 Subject: HandleLinkConnection --- include/agb_flash.h | 12 ++++++++++++ include/crt0.h | 11 +++++++++++ include/intro.h | 11 +++++++++++ include/link.h | 5 ++--- include/link_rfu.h | 5 +++++ include/load_save.h | 3 ++- include/m4a.h | 1 + include/overworld.h | 4 ++++ 8 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 include/agb_flash.h create mode 100644 include/crt0.h create mode 100644 include/intro.h (limited to 'include') diff --git a/include/agb_flash.h b/include/agb_flash.h new file mode 100644 index 000000000..27e45e8fa --- /dev/null +++ b/include/agb_flash.h @@ -0,0 +1,12 @@ +#ifndef GUARD_AGB_FLASH_H +#define GUARD_AGB_FLASH_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +u16 SetFlashTimerIntr(u8 timerNum, void (**intrFunc)(void)); + +#endif //GUARD_AGB_FLASH_H diff --git a/include/crt0.h b/include/crt0.h new file mode 100644 index 000000000..3121eeaed --- /dev/null +++ b/include/crt0.h @@ -0,0 +1,11 @@ +#ifndef GUARD_CRT0_H +#define GUARD_CRT0_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +extern u32 IntrMain[]; + +#endif //GUARD_CRT0_H diff --git a/include/intro.h b/include/intro.h new file mode 100644 index 000000000..3a0fee07f --- /dev/null +++ b/include/intro.h @@ -0,0 +1,11 @@ +#ifndef GUARD_INTRO_H +#define GUARD_INTRO_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void c2_copyright_1(void); + +#endif //GUARD_INTRO_H diff --git a/include/link.h b/include/link.h index 60f7a27fa..50a74e612 100644 --- a/include/link.h +++ b/include/link.h @@ -159,7 +159,6 @@ extern u16 gLinkType; extern u32 gLinkStatus; extern u16 gBlockRecvBuffer[MAX_RFU_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u16 gSendCmd[CMD_LENGTH]; -extern u8 gShouldAdvanceLinkState; extern struct LinkPlayer gLinkPlayers[]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; @@ -200,7 +199,6 @@ void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); u8 GetLinkPlayerCount(void); - void sub_800E0E8(void); bool8 sub_800A520(void); void sub_800DFB4(u8, u8); @@ -210,7 +208,7 @@ void sub_800A620(void); void sub_8011BD0(void); u8 IsLinkMaster(void); void sub_800AC34(void); - +bool8 HandleLinkConnection(void); void SetLinkDebugValues(u32 seed, u32 flags); void sub_800A418(void); void SetSuppressLinkErrorMessage(bool8 flag); @@ -218,6 +216,7 @@ void sub_800B524(struct LinkPlayer *linkPlayer); u8 sub_800B2E8(void); u8 sub_800B320(void); u8 sub_800B33C(void); +void sub_800B9B8(void); extern u16 gUnknown_03003020[6]; extern u32 gLinkDebugSeed; diff --git a/include/link_rfu.h b/include/link_rfu.h index 1f29d863d..a63e07745 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -25,5 +25,10 @@ bool8 Rfu_IsMaster(void); void task_add_05_task_del_08FA224_when_no_RfuFunc(void); void sub_8010434(void); void sub_800E604(void); +void sub_800E174(void); +void sub_800E6D0(void); +bool32 sub_8010EC0(void); +bool32 sub_8010F1C(void); +bool32 sub_800F0B8(void); #endif //GUARD_LINK_RFU_H diff --git a/include/load_save.h b/include/load_save.h index 1f406bbad..92c99fd90 100644 --- a/include/load_save.h +++ b/include/load_save.h @@ -2,6 +2,8 @@ #define GUARD_LOAD_SAVE_H extern bool32 gFlashMemoryPresent; +extern struct SaveBlock2 gSaveblock2; +extern struct PokemonStorage gPokemonStorage; void ClearSav2(void); void ClearSav1(void); @@ -19,6 +21,5 @@ void LoadSerializedGame(void); void LoadPlayerBag(void); void SavePlayerBag(void); void SetSaveBlocksPointers(u16); -void MoveSaveBlocks_ResetHeap(void); #endif // GUARD_LOAD_SAVE_H diff --git a/include/m4a.h b/include/m4a.h index 316b85082..ad81028f7 100644 --- a/include/m4a.h +++ b/include/m4a.h @@ -20,5 +20,6 @@ void m4aMPlayImmInit(struct MusicPlayerInfo *mplayInfo); extern struct MusicPlayerInfo gMPlay_SE1; extern struct MusicPlayerInfo gMPlay_SE2; extern struct MusicPlayerInfo gMPlay_SE3; +extern struct SoundInfo gSoundInfo; #endif //GUARD_M4A_H diff --git a/include/overworld.h b/include/overworld.h index 45723c3e9..11aadaf0e 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -66,4 +66,8 @@ void c2_load_new_map(void); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void mapldr_default(void); +bool32 sub_80875C8(void); +bool32 sub_8087634(void); +bool32 sub_808766C(void); + #endif //GUARD_ROM4_H -- cgit v1.2.3 From fcb8c8cf32f424bf83c8e95555ac41598e71104c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 13 Nov 2017 01:12:34 -0500 Subject: through sub_800B524 --- include/link.h | 42 +++++++++++++++++++++--------------------- include/link_rfu.h | 1 + 2 files changed, 22 insertions(+), 21 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 50a74e612..edbf0be38 100644 --- a/include/link.h +++ b/include/link.h @@ -104,9 +104,9 @@ struct LinkPlayerBlock struct SendQueue { - u16 data[CMD_LENGTH][QUEUE_CAPACITY]; - u8 pos; - u8 count; + /* 0x000 */ u16 data[CMD_LENGTH][QUEUE_CAPACITY]; + /* 0x320 */ u8 pos; + /* 0x321 */ u8 count; }; struct RecvQueue @@ -118,29 +118,29 @@ struct RecvQueue struct Link { - u8 isMaster; // 0: slave, 8: master - u8 state; - u8 localId; // local multi-player ID - u8 playerCount; - u16 tempRecvBuffer[4]; - bool8 receivedNothing; - s8 serialIntrCounter; - bool8 handshakeAsMaster; - u8 link_field_F; + /* 0x000 */ u8 isMaster; // 0: slave, 8: master + /* 0x001 */ u8 state; + /* 0x002 */ u8 localId; // local multi-player ID + /* 0x003 */ u8 playerCount; + /* 0x004 */ u16 tempRecvBuffer[4]; + /* 0x00c */ bool8 receivedNothing; + /* 0x00d */ s8 serialIntrCounter; + /* 0x00e */ bool8 handshakeAsMaster; + /* 0x00f */ u8 link_field_F; // error conditions - bool8 hardwareError; // hardware reported an error - bool8 badChecksum; // checksum didn't match between devices - u8 queueFull; // send or recv queue out of space - u8 lag; // connection is lagging + /* 0x010 */ bool8 hardwareError; // hardware reported an error + /* 0x011 */ bool8 badChecksum; // checksum didn't match between devices + /* 0x012 */ u8 queueFull; // send or recv queue out of space + /* 0x013 */ u8 lag; // connection is lagging - u16 checksum; + /* 0x014 */ u16 checksum; - u8 sendCmdIndex; - u8 recvCmdIndex; + /* 0x016 */ u8 sendCmdIndex; + /* 0x017 */ u8 recvCmdIndex; - struct SendQueue sendQueue; - struct RecvQueue recvQueue; + /* 0x018 */ struct SendQueue sendQueue; + /* 0x33c */ struct RecvQueue recvQueue; }; struct BlockRequest diff --git a/include/link_rfu.h b/include/link_rfu.h index a63e07745..2062b3a79 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -30,5 +30,6 @@ void sub_800E6D0(void); bool32 sub_8010EC0(void); bool32 sub_8010F1C(void); bool32 sub_800F0B8(void); +u32 sub_80124D4(void); #endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From 910c39d4ef3fbb752188b83b565effce14136ddf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 13 Nov 2017 01:20:38 -0500 Subject: DisableSerial --- include/link.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index edbf0be38..38c2f1388 100644 --- a/include/link.h +++ b/include/link.h @@ -95,9 +95,9 @@ struct LinkPlayer struct LinkPlayerBlock { - u8 magic1[16]; + char magic1[16]; struct LinkPlayer linkPlayer; - u8 magic2[16]; + char magic2[16]; }; // circular queues -- cgit v1.2.3 From c81d50cb2f57eb7d3121e71552c196f5867674cb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 13 Nov 2017 01:46:22 -0500 Subject: LinkMain1 --- include/link.h | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 38c2f1388..88f638d78 100644 --- a/include/link.h +++ b/include/link.h @@ -153,7 +153,6 @@ extern const struct BlockRequest sBlockRequestLookupTable[5]; extern struct Link gLink; extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH]; -extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; // gBlockSendBuffer extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u16 gLinkType; extern u32 gLinkStatus; @@ -194,7 +193,7 @@ bool8 IsLinkConnectionEstablished(void); void SetSuppressLinkErrorMessage(bool8); bool8 HasLinkErrorOccurred(void); void ResetSerial(void); -u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]); +u32 LinkMain1(u8 *shouldAdvanceLinkState, u16 *sendCmd, u16 (*recvCmds)[CMD_LENGTH]); void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); @@ -213,9 +212,7 @@ void SetLinkDebugValues(u32 seed, u32 flags); void sub_800A418(void); void SetSuppressLinkErrorMessage(bool8 flag); void sub_800B524(struct LinkPlayer *linkPlayer); -u8 sub_800B2E8(void); -u8 sub_800B320(void); -u8 sub_800B33C(void); +u8 GetSioMultiSI(void); void sub_800B9B8(void); extern u16 gUnknown_03003020[6]; -- cgit v1.2.3 From 6f8da5dcb66d16954800c73a67b3cd06f8ac0702 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 14 Nov 2017 08:31:37 -0500 Subject: through DequeueRecvCmd --- include/link.h | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 88f638d78..023d95207 100644 --- a/include/link.h +++ b/include/link.h @@ -7,6 +7,9 @@ #define QUEUE_CAPACITY 50 #define BLOCK_BUFFER_SIZE 0x100 +#define LINK_SLAVE 0 +#define LINK_MASTER 8 + #define LINK_STAT_LOCAL_ID 0x00000003 #define LINK_STAT_PLAYER_COUNT 0x0000001C #define LINK_STAT_PLAYER_COUNT_SHIFT 2 @@ -16,9 +19,24 @@ #define LINK_STAT_CONN_ESTABLISHED_SHIFT 6 #define LINK_STAT_RECEIVED_NOTHING 0x00000100 #define LINK_STAT_RECEIVED_NOTHING_SHIFT 8 +#define LINK_STAT_UNK_FLAG_9 0x00000200 +#define LINK_STAT_UNK_FLAG_9_SHIFT 9 #define LINK_STAT_ERRORS 0x0007F000 #define LINK_STAT_ERRORS_SHIFT 12 +#define LINK_STAT_ERROR_HARDWARE 0x00001000 +#define LINK_STAT_ERROR_HARDWARE_SHIFT 12 +#define LINK_STAT_ERROR_CHECKSUM 0x00002000 +#define LINK_STAT_ERROR_CHECKSUM_SHIFT 13 +#define LINK_STAT_ERROR_QUEUE_FULL 0x00004000 +#define LINK_STAT_ERROR_QUEUE_FULL_SHIFT 14 +#define LINK_STAT_ERROR_LAG_MASTER 0x00010000 +#define LINK_STAT_ERROR_LAG_MASTER_SHIFT 16 +#define LINK_STAT_ERROR_INVALID_ID 0x00020000 +#define LINK_STAT_ERROR_INVALID_ID_SHIFT 17 +#define LINK_STAT_ERROR_LAG_SLAVE 0x00040000 +#define LINK_STAT_ERROR_LAG_SLAVE_SHIFT 18 + #define EXTRACT_PLAYER_COUNT(status) \ (((status) & LINK_STAT_PLAYER_COUNT) >> LINK_STAT_PLAYER_COUNT_SHIFT) #define EXTRACT_MASTER(status) \ @@ -30,6 +48,21 @@ #define EXTRACT_LINK_ERRORS(status) \ (((status) & LINK_STAT_ERRORS) >> LINK_STAT_ERRORS_SHIFT) +#define LINKCMD_SEND_LINK_TYPE 0x2222 +#define LINKCMD_0x2FFE 0x2FFE +#define LINKCMD_SEND_HELD_KEYS 0x4444 +#define LINKCMD_0x5555 0x5555 +#define LINKCMD_0x5566 0x5566 +#define LINKCMD_0x5FFF 0x5FFF +#define LINKCMD_0x6666 0x6666 +#define LINKCMD_0x7777 0x7777 +#define LINKCMD_CONT_BLOCK 0x8888 +#define LINKCMD_0xAAAA 0xAAAA +#define LINKCMD_0xAAAB 0xAAAB +#define LINKCMD_INIT_BLOCK 0xBBBB +#define LINKCMD_SEND_HELD_KEYS_2 0xCAFE +#define LINKCMD_0xCCCC 0xCCCC + struct LinkStatus { u32 localId:2; @@ -215,13 +248,13 @@ void sub_800B524(struct LinkPlayer *linkPlayer); u8 GetSioMultiSI(void); void sub_800B9B8(void); -extern u16 gUnknown_03003020[6]; +extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; extern struct LinkPlayerBlock gLocalLinkPlayerBlock; extern bool8 gLinkErrorOccurred; extern u32 gLinkDebugFlags; -extern bool8 gUnknown_03003078[MAX_LINK_PLAYERS]; -extern u8 gUnknown_0300307C[MAX_LINK_PLAYERS]; +extern bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS]; +extern u8 gBlockReceivedStatus[MAX_LINK_PLAYERS]; extern u16 gLinkHeldKeys; extern u32 gLinkStatus; extern u8 gUnknown_030030E4; @@ -240,8 +273,8 @@ extern u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS]; extern u8 gBlockRequestType; extern u8 gLastSendQueueCount; extern u8 gLastRecvQueueCount; -extern u16 gUnknown_03004134; -extern u32 gUnknown_03003074; +extern u16 gLinkSavedIme; +extern u32 gFiller_03003074; extern u32 gFiller_03003154; extern u32 gFiller_03003158; extern u32 gFiller_0300315c; -- cgit v1.2.3 From 3bb450645b65fee8a901521d148ab87f81f8f20b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 14 Nov 2017 08:44:32 -0500 Subject: LinkVSync --- include/link.h | 1 - include/link_rfu.h | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 023d95207..dab00195c 100644 --- a/include/link.h +++ b/include/link.h @@ -246,7 +246,6 @@ void sub_800A418(void); void SetSuppressLinkErrorMessage(bool8 flag); void sub_800B524(struct LinkPlayer *linkPlayer); u8 GetSioMultiSI(void); -void sub_800B9B8(void); extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; diff --git a/include/link_rfu.h b/include/link_rfu.h index 2062b3a79..62cff87b9 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -31,5 +31,6 @@ bool32 sub_8010EC0(void); bool32 sub_8010F1C(void); bool32 sub_800F0B8(void); u32 sub_80124D4(void); +void RfuVSync(void); #endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From 50501396b21bf132cf71d0f5d353bf51d277ba27 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 15 Nov 2017 08:44:11 -0500 Subject: DoHandshake --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index dab00195c..22be82d44 100644 --- a/include/link.h +++ b/include/link.h @@ -78,7 +78,7 @@ struct LinkStatus #define MASTER_HANDSHAKE 0x8FFF #define SLAVE_HANDSHAKE 0xB9A0 -#define SIO_MULTI_CNT ((volatile struct SioMultiCnt *)REG_ADDR_SIOCNT) +#define SIO_MULTI_CNT ((struct SioMultiCnt *)REG_ADDR_SIOCNT) enum { -- cgit v1.2.3 From 3c20c54b83d00724b5b724f25eaa294e6afb8f3e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 16 Nov 2017 23:37:09 -0500 Subject: sub_800BEC0 --- include/librfu.h | 1 + include/link_rfu.h | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 0cf781d73..609fffea2 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -108,3 +108,4 @@ extern struct RfuStruct *gRfuState; void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam); void rfu_REQ_stopMode(void); void rfu_waitREQComplete(void); +u32 rfu_REQBN_softReset_and_checkID(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 62cff87b9..a395119fa 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -3,8 +3,24 @@ // Exported type declarations +struct UnkRfuStruct_1 { + u8 unk_00; + u8 unk_01; + u8 unk_02; + u8 unk_03; + u8 unk_04; + u8 unk_05; + u8 unk_06; + u8 unk_07; + u8 unk_08; + u8 filler_09[4]; + u8 unk_0d; +}; + // Exported RAM declarations +extern struct UnkRfuStruct_1 gUnknown_03004140; + // Exported ROM declarations u32 sub_800BEC0(void); void sub_800E700(void); -- cgit v1.2.3 From 8377b0066252f5b5c214acd2d6f44b9590f8d3d9 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Nov 2017 00:05:28 -0500 Subject: rfu_REQ_sendData_wrapper --- include/librfu.h | 38 ++++++++++++++++++++++++++++++++++++++ include/link_rfu.h | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 609fffea2..4e3c82ac3 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -103,9 +103,47 @@ struct RfuIntrStruct u8 block2[0x30]; }; +struct RfuUnk1 +{ + u8 unk_0[0x14]; + u32 unk_14; + u32 unk_18; + struct RfuIntrStruct unk_1c; +}; + +struct RfuUnk2 +{ + u8 unk_0[0x68]; + u32 unk_68; + u32 unk_6c; + u8 unk_70[0x70]; +}; + +struct RfuUnk3 +{ + u32 unk_0; + u32 unk_4; + u8 unk_8[0xD4]; + u32 unk_dc; +}; + +struct RfuUnk5 +{ + u8 unk_00; +}; + extern struct RfuStruct *gRfuState; +extern struct RfuUnk5 *gUnknown_03007890; +extern u32 *gUnknown_03007894; +extern struct RfuUnk3* gUnknown_03007898; +extern struct RfuUnk2* gUnknown_03007880[4]; +extern struct RfuUnk1* gUnknown_03007870[4]; +extern void* sub_82E53F4; +extern void rfu_STC_clearAPIVariables(void); + void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam); void rfu_REQ_stopMode(void); void rfu_waitREQComplete(void); u32 rfu_REQBN_softReset_and_checkID(void); +void rfu_REQ_sendData(u8); diff --git a/include/link_rfu.h b/include/link_rfu.h index a395119fa..8929973d8 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -7,7 +7,7 @@ struct UnkRfuStruct_1 { u8 unk_00; u8 unk_01; u8 unk_02; - u8 unk_03; + vu8 unk_03; u8 unk_04; u8 unk_05; u8 unk_06; -- cgit v1.2.3 From a054b244ab150b3823aa513cc215c81dc426c796 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Nov 2017 08:33:25 -0500 Subject: sub_800BF4C --- include/librfu.h | 2 ++ include/link_rfu.h | 3 +++ 2 files changed, 5 insertions(+) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 4e3c82ac3..9b82de0b7 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -147,3 +147,5 @@ void rfu_REQ_stopMode(void); void rfu_waitREQComplete(void); u32 rfu_REQBN_softReset_and_checkID(void); void rfu_REQ_sendData(u8); +void rfu_setMSCCallback(void (*func)(u16)); +void rfu_setREQCallback(void (*func)(u16, u16)); diff --git a/include/link_rfu.h b/include/link_rfu.h index 8929973d8..24bddbe57 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -15,6 +15,9 @@ struct UnkRfuStruct_1 { u8 unk_08; u8 filler_09[4]; u8 unk_0d; + u8 filler_0e[0x32]; + void (*unk_40)(u8); + void (*unk_44)(void); }; // Exported RAM declarations -- cgit v1.2.3 From 06c1908d00b61a87be8ba9505aebb55d48e7dff7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 17 Nov 2017 08:44:54 -0500 Subject: through sub_800BFCC --- include/link_rfu.h | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 24bddbe57..88737559f 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -3,6 +3,15 @@ // Exported type declarations +struct UnkLinkRfuStruct_02022B2C +{ + u8 filler_00[16]; + u8 unk_10; + u8 unk_11; + u16 unk_12; + u16 unk_14; +}; + struct UnkRfuStruct_1 { u8 unk_00; u8 unk_01; @@ -13,9 +22,17 @@ struct UnkRfuStruct_1 { u8 unk_06; u8 unk_07; u8 unk_08; - u8 filler_09[4]; + u8 unk_09; + u8 unk_0a; + u8 unk_0b; + u8 unk_0c; u8 unk_0d; - u8 filler_0e[0x32]; + u8 filler_0e[10]; + u16 unk_18; + u8 filler_1a[0x18]; + u16 unk_32; + u8 filler_34[8]; + struct UnkLinkRfuStruct_02022B2C *unk_3c; void (*unk_40)(u8); void (*unk_44)(void); }; -- cgit v1.2.3 From 648f3245c1843e1128c6832b445ac8ba31433a56 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Nov 2017 15:00:38 -0500 Subject: through sub_800C054 --- include/librfu.h | 1 + include/link_rfu.h | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 9b82de0b7..3d1970437 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -149,3 +149,4 @@ u32 rfu_REQBN_softReset_and_checkID(void); void rfu_REQ_sendData(u8); void rfu_setMSCCallback(void (*func)(u16)); void rfu_setREQCallback(void (*func)(u16, u16)); +bool8 rfu_getMasterSlave(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 88737559f..29f2a724c 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -27,11 +27,22 @@ struct UnkRfuStruct_1 { u8 unk_0b; u8 unk_0c; u8 unk_0d; - u8 filler_0e[10]; + u8 filler_0e[2]; + u8 unk_10; + u8 filler_11[3]; + u16 unk_14; + u8 filler_16[2]; u16 unk_18; - u8 filler_1a[0x18]; + u16 unk_1a; + u8 filler_1c[4]; + u16 *unk_20; + u8 unk_24; + u16 unk_26; + u16 unk_28[4]; + u8 unk_30; + // aligned u16 unk_32; - u8 filler_34[8]; + u16 unk_34[4]; struct UnkLinkRfuStruct_02022B2C *unk_3c; void (*unk_40)(u8); void (*unk_44)(void); -- cgit v1.2.3 From 728532be77667a16ae0ace16f06e9cd76a591606 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Nov 2017 20:33:53 -0500 Subject: Return stuff to its rightful place, and set up struct definitions for later --- include/link_rfu.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 29f2a724c..f64c74f6b 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -3,6 +3,25 @@ // Exported type declarations +struct UnkLinkRfuStruct_02022B14 +{ + u8 unk_00_0:4; + u8 unk_00_4:1; + u8 unk_00_5:1; + u8 unk_00_6:2; + u8 filler_01[2]; + u8 unk_03[4]; + u16 unk_08_0:10; + u16 unk_09_2:6; + u8 unk_0a_0:7; + u8 unk_0a_7:1; + u8 unk_0b_0:1; + u8 unk_0b_1:7; + u8 unk_0c; + u8 unk_0d; + u8 filler_0e[8]; +}; + struct UnkLinkRfuStruct_02022B2C { u8 filler_00[16]; -- cgit v1.2.3 From bd30e5aa24e830105d8172972645c713ec586865 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Nov 2017 20:55:57 -0500 Subject: sub_800C12C --- include/librfu.h | 7 +++++++ include/link_rfu.h | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 3d1970437..481845f09 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -130,6 +130,13 @@ struct RfuUnk3 struct RfuUnk5 { u8 unk_00; + u8 filler_01[2]; + u8 unk_03; + u8 filler_04[4]; + u8 unk_08; + u8 filler_09[11]; + u16 unk_14; + u8 filler_16[10]; }; extern struct RfuStruct *gRfuState; diff --git a/include/link_rfu.h b/include/link_rfu.h index f64c74f6b..64510c1c6 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -53,7 +53,8 @@ struct UnkRfuStruct_1 { u8 filler_16[2]; u16 unk_18; u16 unk_1a; - u8 filler_1c[4]; + u8 filler_1c[2]; + u16 unk_1e; u16 *unk_20; u8 unk_24; u16 unk_26; -- cgit v1.2.3 From 155bb03f469d6183fc8bac015da35d563b3bea45 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Nov 2017 21:09:42 -0500 Subject: sub_800C210 --- include/librfu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 481845f09..292b14406 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -132,7 +132,7 @@ struct RfuUnk5 u8 unk_00; u8 filler_01[2]; u8 unk_03; - u8 filler_04[4]; + u8 unk_04[4]; u8 unk_08; u8 filler_09[11]; u16 unk_14; -- cgit v1.2.3 From bf06edfcd36666a38aae6eda515a5cfe24e2a851 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 18 Nov 2017 23:30:23 -0500 Subject: sub_800C27C --- include/link_rfu.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 64510c1c6..ce9953450 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -48,7 +48,9 @@ struct UnkRfuStruct_1 { u8 unk_0d; u8 filler_0e[2]; u8 unk_10; - u8 filler_11[3]; + u8 unk_11; + u8 unk_12; + // aligned u16 unk_14; u8 filler_16[2]; u16 unk_18; -- cgit v1.2.3 From 22600e81cca075ecfa570365f14070d9318b33ce Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Nov 2017 00:02:15 -0500 Subject: Start parsing out link_rfu common syms --- include/link_rfu.h | 76 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 42 insertions(+), 34 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index ce9953450..424a4767f 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -32,47 +32,55 @@ struct UnkLinkRfuStruct_02022B2C }; struct UnkRfuStruct_1 { - u8 unk_00; - u8 unk_01; - u8 unk_02; - vu8 unk_03; - u8 unk_04; - u8 unk_05; - u8 unk_06; - u8 unk_07; - u8 unk_08; - u8 unk_09; - u8 unk_0a; - u8 unk_0b; - u8 unk_0c; - u8 unk_0d; - u8 filler_0e[2]; - u8 unk_10; - u8 unk_11; - u8 unk_12; + /* 0x000 */ u8 unk_00; + /* 0x001 */ u8 unk_01; + /* 0x002 */ u8 unk_02; + /* 0x003 */ vu8 unk_03; + /* 0x004 */ u8 unk_04; + /* 0x005 */ u8 unk_05; + /* 0x006 */ u8 unk_06; + /* 0x007 */ u8 unk_07; + /* 0x008 */ u8 unk_08; + /* 0x009 */ u8 unk_09; + /* 0x00a */ u8 unk_0a; + /* 0x00b */ u8 unk_0b; + /* 0x00c */ u8 unk_0c; + /* 0x00d */ u8 unk_0d; + /* 0x00e */ u8 filler_0e[2]; + /* 0x010 */ u8 unk_10; + /* 0x011 */ u8 unk_11; + /* 0x012 */ u8 unk_12; // aligned - u16 unk_14; - u8 filler_16[2]; - u16 unk_18; - u16 unk_1a; - u8 filler_1c[2]; - u16 unk_1e; - u16 *unk_20; - u8 unk_24; - u16 unk_26; - u16 unk_28[4]; - u8 unk_30; + /* 0x014 */ u16 unk_14; + /* 0x016 */ u8 filler_16[2]; + /* 0x018 */ u16 unk_18; + /* 0x01a */ u16 unk_1a; + /* 0x01c */ u8 filler_1c[2]; + /* 0x01e */ u16 unk_1e; + /* 0x020 */ u16 *unk_20; + /* 0x024 */ u8 unk_24; + /* 0x026 */ u16 unk_26; + /* 0x028 */ u16 unk_28[4]; + /* 0x030 */ u8 unk_30; // aligned - u16 unk_32; - u16 unk_34[4]; - struct UnkLinkRfuStruct_02022B2C *unk_3c; - void (*unk_40)(u8); - void (*unk_44)(void); + /* 0x032 */ u16 unk_32; + /* 0x034 */ u16 unk_34[4]; + /* 0x03c */ struct UnkLinkRfuStruct_02022B2C *unk_3c; + /* 0x040 */ void (*unk_40)(u8); + /* 0x044 */ void (*unk_44)(void); + /* 0x048 */ u8 filler_48[0xe78]; +}; + +struct UnkRfuStruct_2 { + /* 0x000 */ u8 filler_00[13]; + /* 0x00d */ u8 playerCount; + /* 0x00e */ u8 filler_0e[0xcea]; }; // Exported RAM declarations extern struct UnkRfuStruct_1 gUnknown_03004140; +extern struct UnkRfuStruct_2 gUnknown_03005000; // Exported ROM declarations u32 sub_800BEC0(void); -- cgit v1.2.3 From 03ce7b042a3b5471d7d84959f7ce21793eda0063 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Nov 2017 10:20:44 -0500 Subject: sub_800C36C --- include/librfu.h | 1 + include/link_rfu.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 292b14406..45b3e1cd3 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -157,3 +157,4 @@ void rfu_REQ_sendData(u8); void rfu_setMSCCallback(void (*func)(u16)); void rfu_setREQCallback(void (*func)(u16, u16)); bool8 rfu_getMasterSlave(void); +void rfu_REQBN_watchLink(u16 a0, u8 *a1, u8 *a2, u8 *a3); diff --git a/include/link_rfu.h b/include/link_rfu.h index 424a4767f..e9b6548a5 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -52,7 +52,7 @@ struct UnkRfuStruct_1 { /* 0x012 */ u8 unk_12; // aligned /* 0x014 */ u16 unk_14; - /* 0x016 */ u8 filler_16[2]; + /* 0x016 */ u16 unk_16; /* 0x018 */ u16 unk_18; /* 0x01a */ u16 unk_1a; /* 0x01c */ u8 filler_1c[2]; -- cgit v1.2.3 From cc82358864afc54281326734487bec1354fa4d9d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Nov 2017 16:54:49 -0500 Subject: sub_800C54C --- include/librfu.h | 17 +++++++++++++++++ include/link_rfu.h | 11 +++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 45b3e1cd3..cdc33c91a 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -158,3 +158,20 @@ void rfu_setMSCCallback(void (*func)(u16)); void rfu_setREQCallback(void (*func)(u16, u16)); bool8 rfu_getMasterSlave(void); void rfu_REQBN_watchLink(u16 a0, u8 *a1, u8 *a2, u8 *a3); +bool16 rfu_syncVBlank(void); +void rfu_REQ_reset(void); +void rfu_REQ_configSystem(u16, u8, u8); +void rfu_REQ_configGameData(u8, u16, u32, u32); +void rfu_REQ_startSearchChild(void); +void rfu_REQ_pollSearchChild(void); +void rfu_REQ_endSearchChild(void); +void rfu_REQ_startSearchParent(void); +void rfu_REQ_pollSearchParent(void); +void rfu_REQ_endSearchParent(void); +void rfu_REQ_startConnectParent(u16); +void rfu_REQ_pollConnectParent(void); +void rfu_REQ_endConnectParent(void); +void rfu_REQ_CHILD_startConnectRecovery(u8); +void rfu_REQ_CHILD_pollConnectRecovery(void); +void rfu_REQ_CHILD_endConnectRecovery(void); +void rfu_REQ_changeMasterSlave(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index e9b6548a5..12ff03330 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -24,7 +24,13 @@ struct UnkLinkRfuStruct_02022B14 struct UnkLinkRfuStruct_02022B2C { - u8 filler_00[16]; + u8 unk_00; + u8 unk_01; + u16 unk_02; + u8 unk_04; + u16 unk_06; + u32 unk_08; + u32 unk_0c; u8 unk_10; u8 unk_11; u16 unk_12; @@ -46,7 +52,8 @@ struct UnkRfuStruct_1 { /* 0x00b */ u8 unk_0b; /* 0x00c */ u8 unk_0c; /* 0x00d */ u8 unk_0d; - /* 0x00e */ u8 filler_0e[2]; + /* 0x00e */ u8 unk_0e; + /* 0x00f */ u8 unk_0f; /* 0x010 */ u8 unk_10; /* 0x011 */ u8 unk_11; /* 0x012 */ u8 unk_12; -- cgit v1.2.3 From 035c0b0ecd03f890f3f8ed13ae5cdc3f98c941db Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 19 Nov 2017 18:34:28 -0500 Subject: sub_800C744 --- include/link_rfu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 12ff03330..7c1949bba 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -62,7 +62,7 @@ struct UnkRfuStruct_1 { /* 0x016 */ u16 unk_16; /* 0x018 */ u16 unk_18; /* 0x01a */ u16 unk_1a; - /* 0x01c */ u8 filler_1c[2]; + /* 0x01c */ u16 unk_1c; /* 0x01e */ u16 unk_1e; /* 0x020 */ u16 *unk_20; /* 0x024 */ u8 unk_24; -- cgit v1.2.3 From 7a38a43f81e4aa5d6b9001d31b47e1a000786e3e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 21 Nov 2017 09:14:43 -0500 Subject: sub_800C7B4 --- include/librfu.h | 10 +++++++++- include/link_rfu.h | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index cdc33c91a..65e981dda 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -130,7 +130,8 @@ struct RfuUnk3 struct RfuUnk5 { u8 unk_00; - u8 filler_01[2]; + u8 unk_01; + u8 unk_02; u8 unk_03; u8 unk_04[4]; u8 unk_08; @@ -175,3 +176,10 @@ void rfu_REQ_CHILD_startConnectRecovery(u8); void rfu_REQ_CHILD_pollConnectRecovery(void); void rfu_REQ_CHILD_endConnectRecovery(void); void rfu_REQ_changeMasterSlave(void); +void rfu_REQ_RFUStatus(void); +void rfu_getRFUStatus(u8 *status); +u8 *rfu_getSTWIRecvBuffer(void); +u8 rfu_NI_CHILD_setSendGameName(u8 a0, u8 a1); +void rfu_clearSlot(u8 a0, u8 a1); +bool16 rfu_CHILD_getConnectRecoveryStatus(u8 *status); +bool16 rfu_getConnectParentStatus(u8 *status, u8 *a1); diff --git a/include/link_rfu.h b/include/link_rfu.h index 7c1949bba..69c7d2e2b 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -40,7 +40,7 @@ struct UnkLinkRfuStruct_02022B2C struct UnkRfuStruct_1 { /* 0x000 */ u8 unk_00; /* 0x001 */ u8 unk_01; - /* 0x002 */ u8 unk_02; + /* 0x002 */ vu8 unk_02; /* 0x003 */ vu8 unk_03; /* 0x004 */ u8 unk_04; /* 0x005 */ u8 unk_05; -- cgit v1.2.3 From 73b0f9eb5358b839bfa5f3d1b4c4163fe893d428 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 22 Nov 2017 00:16:00 -0500 Subject: sub_800CEB0 --- include/librfu.h | 1 + include/link_rfu.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 65e981dda..7891f8679 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -183,3 +183,4 @@ u8 rfu_NI_CHILD_setSendGameName(u8 a0, u8 a1); void rfu_clearSlot(u8 a0, u8 a1); bool16 rfu_CHILD_getConnectRecoveryStatus(u8 *status); bool16 rfu_getConnectParentStatus(u8 *status, u8 *a1); +bool16 rfu_UNI_PARENT_getDRAC_ACK(u8 *a0); diff --git a/include/link_rfu.h b/include/link_rfu.h index 69c7d2e2b..8634a4706 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -74,7 +74,7 @@ struct UnkRfuStruct_1 { /* 0x034 */ u16 unk_34[4]; /* 0x03c */ struct UnkLinkRfuStruct_02022B2C *unk_3c; /* 0x040 */ void (*unk_40)(u8); - /* 0x044 */ void (*unk_44)(void); + /* 0x044 */ void (*unk_44)(u16); /* 0x048 */ u8 filler_48[0xe78]; }; -- cgit v1.2.3 From 3f00d341d56ded86572e7528065def4e4f74687d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 28 Nov 2017 19:41:32 -0500 Subject: nonmatching sub_800CF34 --- include/librfu.h | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 7891f8679..05d895148 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -113,7 +113,11 @@ struct RfuUnk1 struct RfuUnk2 { - u8 unk_0[0x68]; + u8 unk_0[0x34]; + u16 unk_34; + u8 fill_36[0x2b]; + u8 unk_61; + u8 fill_62[6]; u32 unk_68; u32 unk_6c; u8 unk_70[0x70]; @@ -133,11 +137,15 @@ struct RfuUnk5 u8 unk_01; u8 unk_02; u8 unk_03; - u8 unk_04[4]; + u8 unk_04; + u8 unk_05; + u8 unk_06; + u8 unk_07; u8 unk_08; u8 filler_09[11]; u16 unk_14; - u8 filler_16[10]; + u8 filler_16[2]; + u16 unk_18[4]; }; extern struct RfuStruct *gRfuState; -- cgit v1.2.3 From 295e45c788f89bf06bdb8659338bb05ba70d81b2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 29 Nov 2017 08:46:16 -0500 Subject: sub_800D158 --- include/librfu.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 05d895148..15c09a6d6 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -113,7 +113,8 @@ struct RfuUnk1 struct RfuUnk2 { - u8 unk_0[0x34]; + u16 unk_0; + u8 fill_2[0x32]; u16 unk_34; u8 fill_36[0x2b]; u8 unk_61; -- cgit v1.2.3 From c906978692e9663ecea16f2dcc01abcd9f2ef765 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 29 Nov 2017 23:58:48 -0500 Subject: through sub_800D294; fix sub_800CF34 --- include/librfu.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 15c09a6d6..988ee1c0e 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -132,6 +132,14 @@ struct RfuUnk3 u32 unk_dc; }; +struct RfuUnkSub +{ + u16 unk_00; + u8 unk_02; + u16 unk_04; + u8 filler_06[26]; +}; + struct RfuUnk5 { u8 unk_00; @@ -144,9 +152,7 @@ struct RfuUnk5 u8 unk_07; u8 unk_08; u8 filler_09[11]; - u16 unk_14; - u8 filler_16[2]; - u16 unk_18[4]; + struct RfuUnkSub unk_14[4]; }; extern struct RfuStruct *gRfuState; -- cgit v1.2.3 From a781a6d5fdbebe8174bbb70ca82efaf9145729aa Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 30 Nov 2017 00:19:44 -0500 Subject: through sub_800D358 --- include/librfu.h | 31 +++++++++++++++++++------------ include/link_rfu.h | 2 +- 2 files changed, 20 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 988ee1c0e..8d61c2559 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -105,7 +105,10 @@ struct RfuIntrStruct struct RfuUnk1 { - u8 unk_0[0x14]; + u16 unk_0; + u8 unk_2; + u8 unk_3; + u8 fill_4[0x10]; u32 unk_14; u32 unk_18; struct RfuIntrStruct unk_1c; @@ -114,9 +117,13 @@ struct RfuUnk1 struct RfuUnk2 { u16 unk_0; - u8 fill_2[0x32]; + u8 fill_2[0x18]; + u8 unk_1a; + u8 fill_1b[0x19]; u16 unk_34; - u8 fill_36[0x2b]; + u8 fill_36[0x18]; + u8 unk_4e; + u8 fill_4f[0x12]; u8 unk_61; u8 fill_62[6]; u32 unk_68; @@ -132,14 +139,6 @@ struct RfuUnk3 u32 unk_dc; }; -struct RfuUnkSub -{ - u16 unk_00; - u8 unk_02; - u16 unk_04; - u8 filler_06[26]; -}; - struct RfuUnk5 { u8 unk_00; @@ -152,7 +151,12 @@ struct RfuUnk5 u8 unk_07; u8 unk_08; u8 filler_09[11]; - struct RfuUnkSub unk_14[4]; + struct RfuUnk5Sub { + u16 unk_00; + u8 unk_02; + u16 unk_04; + u8 filler_06[26]; + } unk_14[4]; }; extern struct RfuStruct *gRfuState; @@ -199,3 +203,6 @@ void rfu_clearSlot(u8 a0, u8 a1); bool16 rfu_CHILD_getConnectRecoveryStatus(u8 *status); bool16 rfu_getConnectParentStatus(u8 *status, u8 *a1); bool16 rfu_UNI_PARENT_getDRAC_ACK(u8 *a0); +void rfu_REQ_disconnect(u8 who); +void rfu_changeSendTarget(u8 a0, u8 who, u8 a2); +void rfu_NI_stopReceivingData(u8 who); diff --git a/include/link_rfu.h b/include/link_rfu.h index 8634a4706..f82fbd05a 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -73,7 +73,7 @@ struct UnkRfuStruct_1 { /* 0x032 */ u16 unk_32; /* 0x034 */ u16 unk_34[4]; /* 0x03c */ struct UnkLinkRfuStruct_02022B2C *unk_3c; - /* 0x040 */ void (*unk_40)(u8); + /* 0x040 */ void (*unk_40)(u8, u8); /* 0x044 */ void (*unk_44)(u16); /* 0x048 */ u8 filler_48[0xe78]; }; -- cgit v1.2.3 From 6f84853b0842387197848af7de08ef6c980271f3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 30 Nov 2017 08:26:39 -0500 Subject: sub_800D434 --- include/librfu.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 8d61c2559..90bae1dbb 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -117,11 +117,13 @@ struct RfuUnk1 struct RfuUnk2 { u16 unk_0; - u8 fill_2[0x18]; + u16 unk_2; + u8 fill_4[0x16]; u8 unk_1a; u8 fill_1b[0x19]; u16 unk_34; - u8 fill_36[0x18]; + u16 unk_36; + u8 fill_38[0x16]; u8 unk_4e; u8 fill_4f[0x12]; u8 unk_61; -- cgit v1.2.3 From cf539e253ebd1950916ceb976fa7a3c2b4a43386 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 30 Nov 2017 22:56:56 -0500 Subject: through sub_800D780 --- include/link_rfu.h | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index f82fbd05a..51ebab9cf 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -78,11 +78,39 @@ struct UnkRfuStruct_1 { /* 0x048 */ u8 filler_48[0xe78]; }; +struct UnkRfuStruct_2_Sub_124 { + /* 0x000 */ u8 unk_00[32][70]; + /* 0x8c0 */ vu8 unk_8c0; + /* 0x8c1 */ vu8 unk_8c1; + /* 0x8c2 */ vu8 unk_8c2; + /* 0x8c3 */ vu8 unk_8c3; +}; + +struct UnkRfuStruct_2_Sub_9e8 { + /* 0x000 */ u8 unk_00[40][14]; + /* 0x230 */ vu8 unk_230; + /* 0x231 */ vu8 unk_231; + /* 0x232 */ vu8 unk_232; + /* 0x233 */ vu8 unk_233; +}; + +struct UnkRfuStruct_Sub_Unused { + /* 0x000 */ u8 unk_00[2][256]; + /* 0x200 */ vu8 unk_200; + /* 0x201 */ vu8 unk_201; + /* 0x202 */ vu8 unk_202; + /* 0x203 */ vu8 unk_203; +}; + struct UnkRfuStruct_2 { /* 0x000 */ u8 filler_00[13]; /* 0x00d */ u8 playerCount; - /* 0x00e */ u8 filler_0e[0xcea]; -}; + /* 0x00e */ u8 filler_0e[0x5e]; + /* 0x06c */ u8 filler_6c[0xb8]; + /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; + /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; + /* 0xc1c */ u8 filler_c1c[0xdc]; +}; // size = 0xcf8 // Exported RAM declarations -- cgit v1.2.3 From a7e95b97ca1ee009e60ec6d8c53cb845f8599165 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 30 Nov 2017 23:20:43 -0500 Subject: sub_800D7D8 --- include/link_rfu.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 51ebab9cf..ad313d5da 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -109,7 +109,8 @@ struct UnkRfuStruct_2 { /* 0x06c */ u8 filler_6c[0xb8]; /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; - /* 0xc1c */ u8 filler_c1c[0xdc]; + /* 0xc1c */ u8 filler_c1c[0x23]; + /* 0xc3f */ u8 filler_c3f[0xb9]; }; // size = 0xcf8 // Exported RAM declarations -- cgit v1.2.3 From e2244831a77723a1a565b8df24dda3ade00f584f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 1 Dec 2017 21:51:06 -0500 Subject: through sub_800DB18 --- include/link_rfu.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index ad313d5da..28e244503 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -94,6 +94,13 @@ struct UnkRfuStruct_2_Sub_9e8 { /* 0x233 */ vu8 unk_233; }; +struct UnkRfuStruct_2_Sub_c1c { + /* 0x00 */ u8 unk_00[2][14]; + /* 0x1c */ vu8 unk_1c; + /* 0x1d */ vu8 unk_1d; + /* 0x1e */ vu8 unk_1e; +}; + struct UnkRfuStruct_Sub_Unused { /* 0x000 */ u8 unk_00[2][256]; /* 0x200 */ vu8 unk_200; @@ -109,7 +116,8 @@ struct UnkRfuStruct_2 { /* 0x06c */ u8 filler_6c[0xb8]; /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; - /* 0xc1c */ u8 filler_c1c[0x23]; + /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; + /* 0xc3c */ u8 filler_c3c[3]; /* 0xc3f */ u8 filler_c3f[0xb9]; }; // size = 0xcf8 -- cgit v1.2.3 From c282e4fa59bc88e874aa5056a3e57fc35b3fefe5 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 2 Dec 2017 10:19:02 -0500 Subject: sub_800DBF8 --- include/link_rfu.h | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 28e244503..f02a0baef 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -109,6 +109,11 @@ struct UnkRfuStruct_Sub_Unused { /* 0x203 */ vu8 unk_203; }; +struct UnkRfuStruct_Sub_Unused2 { + /* 0x000 */ u8 unk_00[200]; + /* 0x0c8 */ u16 unk_c8; +}; + struct UnkRfuStruct_2 { /* 0x000 */ u8 filler_00[13]; /* 0x00d */ u8 playerCount; -- cgit v1.2.3 From 519c8d42f873471ced07bbcbddbf102e037c0c0e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 3 Dec 2017 20:04:54 -0500 Subject: through sub_800DD94 --- include/librfu.h | 4 +++- include/link_rfu.h | 24 ++++++++++++------------ 2 files changed, 15 insertions(+), 13 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 90bae1dbb..a012b64ec 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -152,7 +152,9 @@ struct RfuUnk5 u8 unk_06; u8 unk_07; u8 unk_08; - u8 filler_09[11]; + u8 filler_09[1]; + u8 unk_0a[4]; + u8 filler_0e[6]; struct RfuUnk5Sub { u16 unk_00; u8 unk_02; diff --git a/include/link_rfu.h b/include/link_rfu.h index f02a0baef..9b7fa6e7e 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -5,17 +5,22 @@ struct UnkLinkRfuStruct_02022B14 { - u8 unk_00_0:4; - u8 unk_00_4:1; - u8 unk_00_5:1; - u8 unk_00_6:2; - u8 filler_01[2]; - u8 unk_03[4]; + u16 unk_00_0:4; + u16 unk_00_4:1; + u16 unk_00_5:1; + u16 unk_00_6:1; + u16 unk_00_7:1; + u16 unk_01_0:1; + u16 unk_01_1:1; + u16 unk_01_2:4; + u16 unk_01_6:2; + u8 playerTrainerId[2]; + u8 unk_04[4]; u16 unk_08_0:10; u16 unk_09_2:6; u8 unk_0a_0:7; u8 unk_0a_7:1; - u8 unk_0b_0:1; + u8 playerGender:1; u8 unk_0b_1:7; u8 unk_0c; u8 unk_0d; @@ -109,11 +114,6 @@ struct UnkRfuStruct_Sub_Unused { /* 0x203 */ vu8 unk_203; }; -struct UnkRfuStruct_Sub_Unused2 { - /* 0x000 */ u8 unk_00[200]; - /* 0x0c8 */ u16 unk_c8; -}; - struct UnkRfuStruct_2 { /* 0x000 */ u8 filler_00[13]; /* 0x00d */ u8 playerCount; -- cgit v1.2.3 From d5bc329de73f2ef9b4ba84d71d784b9f949f2169 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 3 Dec 2017 20:32:49 -0500 Subject: through sub_800DF90 --- include/librfu.h | 3 ++- include/link_rfu.h | 4 +--- 2 files changed, 3 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index a012b64ec..1f22133b9 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -159,7 +159,8 @@ struct RfuUnk5 u16 unk_00; u8 unk_02; u16 unk_04; - u8 filler_06[26]; + u8 unk_06[15]; + u8 unk_15[11]; } unk_14[4]; }; diff --git a/include/link_rfu.h b/include/link_rfu.h index 9b7fa6e7e..1d430cb51 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -3,7 +3,7 @@ // Exported type declarations -struct UnkLinkRfuStruct_02022B14 +struct __attribute__((packed)) UnkLinkRfuStruct_02022B14 { u16 unk_00_0:4; u16 unk_00_4:1; @@ -23,8 +23,6 @@ struct UnkLinkRfuStruct_02022B14 u8 playerGender:1; u8 unk_0b_1:7; u8 unk_0c; - u8 unk_0d; - u8 filler_0e[8]; }; struct UnkLinkRfuStruct_02022B2C -- cgit v1.2.3 From 8b5d6fe5d915053d6e052ba3279c8d1a98fd1509 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 3 Dec 2017 22:01:06 -0500 Subject: CreateWirelessStatusIndicatorSprite --- include/link.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index 41dd8f9c8..b33b7a012 100644 --- a/include/link.h +++ b/include/link.h @@ -234,7 +234,7 @@ u8 GetLinkPlayerCount(void); bool32 InUnionRoom(void); void sub_800E0E8(void); bool8 sub_800A520(void); -void sub_800DFB4(u8, u8); +void CreateWirelessStatusIndicatorSprite(u8, u8); void sub_800ADF8(void); void sub_800B488(void); void sub_800A620(void); -- cgit v1.2.3 From 0b58905eeaf63584af069f9f74360aaf52b407b8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 4 Dec 2017 19:10:37 -0500 Subject: sub_800E3A8 --- include/global.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index cfde8ce52..fd52e5a28 100644 --- a/include/global.h +++ b/include/global.h @@ -562,6 +562,11 @@ struct WaldaPhrase bool8 patternUnlocked; }; +struct UnkSaveSubstruct_3b98 { + u32 trainerId; + u8 trainerName[8]; +}; + struct SaveBlock1 { /*0x00*/ struct Coords16 pos; @@ -646,7 +651,9 @@ struct SaveBlock1 /*0x3B14*/ struct RecordMixingGift recordMixingGift; /*0x3B24*/ u8 seen2[52]; /*0x3B58*/ LilycoveLady lilycoveLady; - /*0x3B88*/ u8 filler_3B88[0x1E8]; + /*0x3B88*/ u8 filler_3B88[0x10]; + /*0x3B98*/ struct UnkSaveSubstruct_3b98 unk_3B98[20]; + /*0x3C88*/ u8 filler_3C88[0xE8]; /*0x3D70*/ struct WaldaPhrase waldaPhrase; // sizeof: 0x3D88 }; -- cgit v1.2.3 From 92fd61d6f28b28fb50421aaba6a978850ed87629 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 4 Dec 2017 19:51:26 -0500 Subject: through sub_800E604 --- include/link.h | 2 +- include/link_rfu.h | 24 ++++++++++++++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index b33b7a012..32fadc5ea 100644 --- a/include/link.h +++ b/include/link.h @@ -191,7 +191,7 @@ extern u16 gLinkType; extern u32 gLinkStatus; extern u16 gBlockRecvBuffer[MAX_RFU_PLAYERS][BLOCK_BUFFER_SIZE / 2]; extern u16 gSendCmd[CMD_LENGTH]; -extern struct LinkPlayer gLinkPlayers[]; +extern struct LinkPlayer gLinkPlayers[5]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gWirelessCommType; diff --git a/include/link_rfu.h b/include/link_rfu.h index 1d430cb51..f43f3dd12 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -81,6 +81,17 @@ struct UnkRfuStruct_1 { /* 0x048 */ u8 filler_48[0xe78]; }; +struct UnkRfuStruct_2_Sub_6c { + /* 0x00 */ u16 unk_00; + /* 0x02 */ u16 unk_02; + /* 0x04 */ u32 unk_04; + /* 0x08 */ u32 unk_08; + /* 0x0c */ u8 filler_0c[4]; + /* 0x10 */ u8 unk_10; + /* 0x11 */ u8 unk_11; + /* 0x12 */ u8 unk_12; +}; + struct UnkRfuStruct_2_Sub_124 { /* 0x000 */ u8 unk_00[32][70]; /* 0x8c0 */ vu8 unk_8c0; @@ -113,16 +124,21 @@ struct UnkRfuStruct_Sub_Unused { }; struct UnkRfuStruct_2 { - /* 0x000 */ u8 filler_00[13]; + /* 0x000 */ u8 filler_00[12]; + /* 0x00c */ u8 unk_0c; /* 0x00d */ u8 playerCount; /* 0x00e */ u8 filler_0e[0x5e]; - /* 0x06c */ u8 filler_6c[0xb8]; + /* 0x06c */ struct UnkRfuStruct_2_Sub_6c unk_6c; + /* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5]; + /* 0x0e4 */ u8 filler_e4[10]; + /* 0x0ee */ vu8 unk_ee; + /* 0x0ef */ u8 filler_ef[0x35]; /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; /* 0xc3c */ u8 filler_c3c[3]; - /* 0xc3f */ u8 filler_c3f[0xb9]; -}; // size = 0xcf8 + /* 0xc3f */ u8 filler_c3f[0xb5]; +}; // size = 0xcf4 // Exported RAM declarations -- cgit v1.2.3 From 765ad80884338edfa752dcee450f62742b94d547 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 4 Dec 2017 20:06:03 -0500 Subject: through sub_800E700 --- include/librfu.h | 2 ++ include/link.h | 1 + include/link_rfu.h | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 1f22133b9..e1e6d5f80 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -211,3 +211,5 @@ bool16 rfu_UNI_PARENT_getDRAC_ACK(u8 *a0); void rfu_REQ_disconnect(u8 who); void rfu_changeSendTarget(u8 a0, u8 who, u8 a2); void rfu_NI_stopReceivingData(u8 who); +u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterruptToRam); +void rfu_setTimerInterrupt(u8 which, IntrFunc *intr); diff --git a/include/link.h b/include/link.h index 32fadc5ea..c01f24d27 100644 --- a/include/link.h +++ b/include/link.h @@ -247,6 +247,7 @@ void sub_800A418(void); void SetSuppressLinkErrorMessage(bool8 flag); void sub_800B524(struct LinkPlayer *linkPlayer); u8 GetSioMultiSI(void); +void sub_800AAF4(void); extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; diff --git a/include/link_rfu.h b/include/link_rfu.h index f43f3dd12..6a55bb536 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -78,7 +78,9 @@ struct UnkRfuStruct_1 { /* 0x03c */ struct UnkLinkRfuStruct_02022B2C *unk_3c; /* 0x040 */ void (*unk_40)(u8, u8); /* 0x044 */ void (*unk_44)(u16); - /* 0x048 */ u8 filler_48[0xe78]; + /* 0x048 */ u8 filler_48[8]; + /* 0x050 */ u32 unk_50[0x399]; + /* 0xeb4 */ u8 filler_e64[12]; }; struct UnkRfuStruct_2_Sub_6c { -- cgit v1.2.3 From 21619096da8532cdb16caf56f38af996bbf75540 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 4 Dec 2017 21:05:41 -0500 Subject: sub_800E748 --- include/link_rfu.h | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 6a55bb536..4f8e193fc 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -67,7 +67,7 @@ struct UnkRfuStruct_1 { /* 0x01a */ u16 unk_1a; /* 0x01c */ u16 unk_1c; /* 0x01e */ u16 unk_1e; - /* 0x020 */ u16 *unk_20; + /* 0x020 */ const u16 *unk_20; /* 0x024 */ u8 unk_24; /* 0x026 */ u16 unk_26; /* 0x028 */ u16 unk_28[4]; @@ -126,7 +126,9 @@ struct UnkRfuStruct_Sub_Unused { }; struct UnkRfuStruct_2 { - /* 0x000 */ u8 filler_00[12]; + /* 0x000 */ u8 filler_00[4]; + /* 0x004 */ u16 unk_04; + /* 0x006 */ u8 filler_06[6]; /* 0x00c */ u8 unk_0c; /* 0x00d */ u8 playerCount; /* 0x00e */ u8 filler_0e[0x5e]; @@ -139,7 +141,9 @@ struct UnkRfuStruct_2 { /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; /* 0xc3c */ u8 filler_c3c[3]; - /* 0xc3f */ u8 filler_c3f[0xb5]; + /* 0xc3f */ u8 filler_c3f[0x9c]; + /* 0xcdb */ vu8 unk_cdb; + /* 0xcdc */ u8 filler_cdc[0x18]; }; // size = 0xcf4 // Exported RAM declarations @@ -174,5 +178,7 @@ bool32 sub_8010F1C(void); bool32 sub_800F0B8(void); u32 sub_80124D4(void); void RfuVSync(void); +void sub_80111B0(bool32 a0); +u8 sub_8011A74(void); #endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From dc0d544119e0e4ed567e8da5a25616bfcb5c6285 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 5 Dec 2017 23:54:31 -0500 Subject: sub_800E87C, remaining data in link_rfu --- include/librfu.h | 4 +++- include/link_rfu.h | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index e1e6d5f80..fa8cadd9f 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -174,6 +174,8 @@ extern struct RfuUnk1* gUnknown_03007870[4]; extern void* sub_82E53F4; extern void rfu_STC_clearAPIVariables(void); +struct UnkLinkRfuStruct_02022B14; + void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam); void rfu_REQ_stopMode(void); void rfu_waitREQComplete(void); @@ -186,7 +188,7 @@ void rfu_REQBN_watchLink(u16 a0, u8 *a1, u8 *a2, u8 *a3); bool16 rfu_syncVBlank(void); void rfu_REQ_reset(void); void rfu_REQ_configSystem(u16, u8, u8); -void rfu_REQ_configGameData(u8, u16, u32, u32); +void rfu_REQ_configGameData(u8, u16, struct UnkLinkRfuStruct_02022B14 *, u8 *); void rfu_REQ_startSearchChild(void); void rfu_REQ_pollSearchChild(void); void rfu_REQ_endSearchChild(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 4f8e193fc..f0b8ca84c 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -32,8 +32,8 @@ struct UnkLinkRfuStruct_02022B2C u16 unk_02; u8 unk_04; u16 unk_06; - u32 unk_08; - u32 unk_0c; + struct UnkLinkRfuStruct_02022B14 *unk_08; + u8 *unk_0c; u8 unk_10; u8 unk_11; u16 unk_12; @@ -75,7 +75,7 @@ struct UnkRfuStruct_1 { // aligned /* 0x032 */ u16 unk_32; /* 0x034 */ u16 unk_34[4]; - /* 0x03c */ struct UnkLinkRfuStruct_02022B2C *unk_3c; + /* 0x03c */ const struct UnkLinkRfuStruct_02022B2C *unk_3c; /* 0x040 */ void (*unk_40)(u8, u8); /* 0x044 */ void (*unk_44)(u16); /* 0x048 */ u8 filler_48[8]; -- cgit v1.2.3 From 4f342198c2e4c579d0f3b42aa85eb6699145ad5f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 6 Dec 2017 23:55:40 -0500 Subject: sub_800E88C --- include/link_rfu.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index f0b8ca84c..54d513b10 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -143,7 +143,9 @@ struct UnkRfuStruct_2 { /* 0xc3c */ u8 filler_c3c[3]; /* 0xc3f */ u8 filler_c3f[0x9c]; /* 0xcdb */ vu8 unk_cdb; - /* 0xcdc */ u8 filler_cdc[0x18]; + /* 0xcdc */ u8 filler_cdc[2]; + /* 0xcde */ u8 unk_cde[4]; + /* 0xce2 */ u8 filler_ce2[18]; }; // size = 0xcf4 // Exported RAM declarations -- cgit v1.2.3 From 94da6de903cc56ae4b92e6d27c50c7f19094a653 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Dec 2017 00:28:12 -0500 Subject: sub_800E94C --- include/librfu.h | 6 ++++-- include/link_rfu.h | 21 +++++++++++++++++---- 2 files changed, 21 insertions(+), 6 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index fa8cadd9f..71feb81bf 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -128,8 +128,8 @@ struct RfuUnk2 u8 fill_4f[0x12]; u8 unk_61; u8 fill_62[6]; - u32 unk_68; - u32 unk_6c; + void *unk_68; + void *unk_6c; u8 unk_70[0x70]; }; @@ -215,3 +215,5 @@ void rfu_changeSendTarget(u8 a0, u8 who, u8 a2); void rfu_NI_stopReceivingData(u8 who); u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterruptToRam); void rfu_setTimerInterrupt(u8 which, IntrFunc *intr); +void rfu_setRecvBuffer(u8 a0, u8 a1, void *a2, size_t a3); +void rfu_UNI_setSendData(u8 flag, void *ptr, u8 size); diff --git a/include/link_rfu.h b/include/link_rfu.h index 54d513b10..4a8571ce7 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -40,6 +40,13 @@ struct UnkLinkRfuStruct_02022B2C u16 unk_14; }; +struct UnkLinkRfuStruct_02022B44 +{ + u8 fill_00[15]; + u8 unk_0f; + u8 fill_10[0xcc]; +}; + struct UnkRfuStruct_1 { /* 0x000 */ u8 unk_00; /* 0x001 */ u8 unk_01; @@ -131,7 +138,9 @@ struct UnkRfuStruct_2 { /* 0x006 */ u8 filler_06[6]; /* 0x00c */ u8 unk_0c; /* 0x00d */ u8 playerCount; - /* 0x00e */ u8 filler_0e[0x5e]; + /* 0x00e */ u8 filler_0e[0x3e]; + /* 0x04c */ u8 unk_4c[14 * 2]; + /* 0x068 */ u8 filler_68[4]; /* 0x06c */ struct UnkRfuStruct_2_Sub_6c unk_6c; /* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5]; /* 0x0e4 */ u8 filler_e4[10]; @@ -140,12 +149,16 @@ struct UnkRfuStruct_2 { /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; - /* 0xc3c */ u8 filler_c3c[3]; - /* 0xc3f */ u8 filler_c3f[0x9c]; + /* 0xc3c */ u8 filler_c3c[2]; + /* 0xc3e */ vu8 unk_c3e; + /* 0xc3f */ u8 unk_c3f[70 * 2]; + /* 0xccb */ u8 filler_ccb[16]; /* 0xcdb */ vu8 unk_cdb; /* 0xcdc */ u8 filler_cdc[2]; /* 0xcde */ u8 unk_cde[4]; - /* 0xce2 */ u8 filler_ce2[18]; + /* 0xce2 */ u8 filler_ce2[2]; + /* 0xce4 */ u8 unk_ce4; + /* 0xce5 */ u8 filler_ce5[15]; }; // size = 0xcf4 // Exported RAM declarations -- cgit v1.2.3 From c9f43116aaf2a6df147463e7500ea1b73b6a76ee Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Dec 2017 08:48:49 -0500 Subject: through sub_800EAFC --- include/link_rfu.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 4a8571ce7..3af74b51e 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -138,8 +138,9 @@ struct UnkRfuStruct_2 { /* 0x006 */ u8 filler_06[6]; /* 0x00c */ u8 unk_0c; /* 0x00d */ u8 playerCount; - /* 0x00e */ u8 filler_0e[0x3e]; - /* 0x04c */ u8 unk_4c[14 * 2]; + /* 0x00e */ u8 filler_0e[6]; + /* 0x014 */ u8 unk_14[4][14]; + /* 0x04c */ u8 unk_4c[2][14]; /* 0x068 */ u8 filler_68[4]; /* 0x06c */ struct UnkRfuStruct_2_Sub_6c unk_6c; /* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5]; @@ -151,12 +152,16 @@ struct UnkRfuStruct_2 { /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; /* 0xc3c */ u8 filler_c3c[2]; /* 0xc3e */ vu8 unk_c3e; - /* 0xc3f */ u8 unk_c3f[70 * 2]; - /* 0xccb */ u8 filler_ccb[16]; + /* 0xc3f */ u8 unk_c3f[70]; + /* 0xc85 */ u8 filler_c85[2]; + /* 0xc87 */ u8 unk_c87[70]; + /* 0xccb */ u8 filler_ccb[13]; + /* 0xccb */ u8 unk_cda; /* 0xcdb */ vu8 unk_cdb; /* 0xcdc */ u8 filler_cdc[2]; /* 0xcde */ u8 unk_cde[4]; - /* 0xce2 */ u8 filler_ce2[2]; + /* 0xce2 */ u8 unk_ce2; + /* 0xce2 */ u8 unk_ce3; /* 0xce4 */ u8 unk_ce4; /* 0xce5 */ u8 filler_ce5[15]; }; // size = 0xcf4 -- cgit v1.2.3 From 6441ba7832728de250c756f8b4d2956b94acac9a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Dec 2017 20:04:07 -0500 Subject: sub_800EB44 --- include/librfu.h | 2 +- include/link_rfu.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 71feb81bf..235e5c558 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -216,4 +216,4 @@ void rfu_NI_stopReceivingData(u8 who); u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterruptToRam); void rfu_setTimerInterrupt(u8 which, IntrFunc *intr); void rfu_setRecvBuffer(u8 a0, u8 a1, void *a2, size_t a3); -void rfu_UNI_setSendData(u8 flag, void *ptr, u8 size); +bool16 rfu_UNI_setSendData(u8 flag, void *ptr, u8 size); diff --git a/include/link_rfu.h b/include/link_rfu.h index 3af74b51e..865603ed8 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -163,7 +163,9 @@ struct UnkRfuStruct_2 { /* 0xce2 */ u8 unk_ce2; /* 0xce2 */ u8 unk_ce3; /* 0xce4 */ u8 unk_ce4; - /* 0xce5 */ u8 filler_ce5[15]; + /* 0xce5 */ u8 filler_ce5[3]; + /* 0xce8 */ u8 unk_ce8; + /* 0xce9 */ u8 filler_ce9[11]; }; // size = 0xcf4 // Exported RAM declarations -- cgit v1.2.3 From abc3869eca632f22c805682696f3e4fdf5c82f8d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 7 Dec 2017 20:21:30 -0500 Subject: through sub_800EDBC --- include/librfu.h | 6 +++++- include/link_rfu.h | 10 +++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 235e5c558..29c1f9464 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -108,7 +108,8 @@ struct RfuUnk1 u16 unk_0; u8 unk_2; u8 unk_3; - u8 fill_4[0x10]; + u8 fill_4[14]; + u8 unk_12; u32 unk_14; u32 unk_18; struct RfuIntrStruct unk_1c; @@ -217,3 +218,6 @@ u16 rfu_initializeAPI(u32 *unk0, u16 unk1, IntrFunc *interrupt, bool8 copyInterr void rfu_setTimerInterrupt(u8 which, IntrFunc *intr); void rfu_setRecvBuffer(u8 a0, u8 a1, void *a2, size_t a3); bool16 rfu_UNI_setSendData(u8 flag, void *ptr, u8 size); +void rfu_REQ_recvData(void); +void rfu_UNI_readySendData(u8 a0); +void rfu_UNI_clearRecvNewDataFlag(u8 a0); diff --git a/include/link_rfu.h b/include/link_rfu.h index 865603ed8..641558444 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -42,7 +42,9 @@ struct UnkLinkRfuStruct_02022B2C struct UnkLinkRfuStruct_02022B44 { - u8 fill_00[15]; + u8 fill_00[6]; + u16 unk_06; + u8 fill_08[7]; u8 unk_0f; u8 fill_10[0xcc]; }; @@ -155,8 +157,10 @@ struct UnkRfuStruct_2 { /* 0xc3f */ u8 unk_c3f[70]; /* 0xc85 */ u8 filler_c85[2]; /* 0xc87 */ u8 unk_c87[70]; - /* 0xccb */ u8 filler_ccb[13]; - /* 0xccb */ u8 unk_cda; + /* 0xccb */ u8 filler_ccd[3]; + /* 0xcd0 */ vu8 unk_cd0; + /* 0xcd1 */ u8 filler_cd1[9]; + /* 0xcda */ u8 unk_cda; /* 0xcdb */ vu8 unk_cdb; /* 0xcdc */ u8 filler_cdc[2]; /* 0xcde */ u8 unk_cde[4]; -- cgit v1.2.3 From 253b3c2fa5e5bf2be1190ae1423d3132b252caf7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 8 Dec 2017 08:24:54 -0500 Subject: sub_800EDD4 --- include/link_rfu.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 641558444..d2cb554fd 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -142,7 +142,9 @@ struct UnkRfuStruct_2 { /* 0x00d */ u8 playerCount; /* 0x00e */ u8 filler_0e[6]; /* 0x014 */ u8 unk_14[4][14]; - /* 0x04c */ u8 unk_4c[2][14]; + /* 0x04c */ u8 unk_4c[14]; + /* 0x05a */ u8 filler_5a[13]; + /* 0x067 */ u8 unk_67; /* 0x068 */ u8 filler_68[4]; /* 0x06c */ struct UnkRfuStruct_2_Sub_6c unk_6c; /* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5]; -- cgit v1.2.3 From beeb86be37f819bb03301dc118aa68495d5dc01a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 10 Dec 2017 10:23:43 -0500 Subject: through (nonmatching) sub_800EFB0 --- include/link_rfu.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index d2cb554fd..957104197 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -154,12 +154,14 @@ struct UnkRfuStruct_2 { /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; - /* 0xc3c */ u8 filler_c3c[2]; + /* 0xc3c */ u8 unk_c3c; + /* 0xc3d */ u8 unk_c3d; /* 0xc3e */ vu8 unk_c3e; /* 0xc3f */ u8 unk_c3f[70]; /* 0xc85 */ u8 filler_c85[2]; - /* 0xc87 */ u8 unk_c87[70]; - /* 0xccb */ u8 filler_ccd[3]; + /* 0xc87 */ u8 unk_c87[5][7][2]; + /* 0xccd */ u8 unk_ccd; + /* 0xcce */ u8 filler_cce[2]; /* 0xcd0 */ vu8 unk_cd0; /* 0xcd1 */ u8 filler_cd1[9]; /* 0xcda */ u8 unk_cda; @@ -169,7 +171,8 @@ struct UnkRfuStruct_2 { /* 0xce2 */ u8 unk_ce2; /* 0xce2 */ u8 unk_ce3; /* 0xce4 */ u8 unk_ce4; - /* 0xce5 */ u8 filler_ce5[3]; + /* 0xce5 */ u8 filler_ce5[2]; + /* 0xce7 */ u8 unk_ce7; /* 0xce8 */ u8 unk_ce8; /* 0xce9 */ u8 filler_ce9[11]; }; // size = 0xcf4 -- cgit v1.2.3 From b1c6f80e10ca18d18ca11091449a9969e2b9aa05 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 10 Dec 2017 10:31:11 -0500 Subject: through sub_800F048 --- include/link_rfu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 957104197..f17becf10 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -154,7 +154,7 @@ struct UnkRfuStruct_2 { /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; - /* 0xc3c */ u8 unk_c3c; + /* 0xc3c */ vu8 unk_c3c; /* 0xc3d */ u8 unk_c3d; /* 0xc3e */ vu8 unk_c3e; /* 0xc3f */ u8 unk_c3f[70]; -- cgit v1.2.3 From 5b526906e1dc4b3dd55cc739670836718a90dff7 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 16 Dec 2017 12:07:20 -0500 Subject: through sub_800F0F8 --- include/librfu.h | 1 + include/link_rfu.h | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 29c1f9464..9e1c2ff60 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -221,3 +221,4 @@ bool16 rfu_UNI_setSendData(u8 flag, void *ptr, u8 size); void rfu_REQ_recvData(void); void rfu_UNI_readySendData(u8 a0); void rfu_UNI_clearRecvNewDataFlag(u8 a0); +void rfu_REQ_PARENT_resumeRetransmitAndChange(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index f17becf10..278bb084c 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -140,7 +140,8 @@ struct UnkRfuStruct_2 { /* 0x006 */ u8 filler_06[6]; /* 0x00c */ u8 unk_0c; /* 0x00d */ u8 playerCount; - /* 0x00e */ u8 filler_0e[6]; + /* 0x00e */ u8 unk_0e; + /* 0x00f */ u8 filler_0f[5]; /* 0x014 */ u8 unk_14[4][14]; /* 0x04c */ u8 unk_4c[14]; /* 0x05a */ u8 filler_5a[13]; @@ -166,7 +167,8 @@ struct UnkRfuStruct_2 { /* 0xcd1 */ u8 filler_cd1[9]; /* 0xcda */ u8 unk_cda; /* 0xcdb */ vu8 unk_cdb; - /* 0xcdc */ u8 filler_cdc[2]; + /* 0xcdc */ vu8 unk_cdc; + /* 0xcdd */ u8 unk_cdd; /* 0xcde */ u8 unk_cde[4]; /* 0xce2 */ u8 unk_ce2; /* 0xce2 */ u8 unk_ce3; -- cgit v1.2.3 From cfb0e233eebd172ce9131f4e4b940b18db6eb1d0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 18 Jan 2018 08:46:17 -0500 Subject: sub_800F1E0 --- include/link_rfu.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 278bb084c..d6f0b5b79 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -44,7 +44,8 @@ struct UnkLinkRfuStruct_02022B44 { u8 fill_00[6]; u16 unk_06; - u8 fill_08[7]; + u8 fill_08[6]; + vu8 unk_0e; u8 unk_0f; u8 fill_10[0xcc]; }; @@ -164,7 +165,8 @@ struct UnkRfuStruct_2 { /* 0xccd */ u8 unk_ccd; /* 0xcce */ u8 filler_cce[2]; /* 0xcd0 */ vu8 unk_cd0; - /* 0xcd1 */ u8 filler_cd1[9]; + /* 0xcd1 */ u8 filler_cd1[8]; + /* 0xcd9 */ u8 unk_cd9; /* 0xcda */ u8 unk_cda; /* 0xcdb */ vu8 unk_cdb; /* 0xcdc */ vu8 unk_cdc; @@ -173,10 +175,13 @@ struct UnkRfuStruct_2 { /* 0xce2 */ u8 unk_ce2; /* 0xce2 */ u8 unk_ce3; /* 0xce4 */ u8 unk_ce4; - /* 0xce5 */ u8 filler_ce5[2]; + /* 0xce5 */ u8 unk_ce5; + /* 0xce5 */ u8 unk_ce6; /* 0xce7 */ u8 unk_ce7; /* 0xce8 */ u8 unk_ce8; - /* 0xce9 */ u8 filler_ce9[11]; + /* 0xce9 */ u8 unk_ce9; + /* 0xcea */ u8 unk_cea[4]; + /* 0xcee */ u8 unk_cee[4]; }; // size = 0xcf4 // Exported RAM declarations -- cgit v1.2.3 From 090f70dd5b0983b761b08c04c8cfc9873738db52 Mon Sep 17 00:00:00 2001 From: scnorton Date: Thu, 18 Jan 2018 13:18:24 -0500 Subject: sub_800F498 --- include/link_rfu.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index d6f0b5b79..3cad90fc0 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -152,7 +152,9 @@ struct UnkRfuStruct_2 { /* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5]; /* 0x0e4 */ u8 filler_e4[10]; /* 0x0ee */ vu8 unk_ee; - /* 0x0ef */ u8 filler_ef[0x35]; + /* 0x0ef */ u8 filler_ef[0x13]; + /* 0x102 */ u8 unk_102; + /* 0x103 */ u8 filler_103[0x21]; /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; /* 0x9e8 */ struct UnkRfuStruct_2_Sub_9e8 unk_9e8; /* 0xc1c */ struct UnkRfuStruct_2_Sub_c1c unk_c1c; -- cgit v1.2.3 From 68e9b5719c36f3bbbd807a2139e35d2c4207395d Mon Sep 17 00:00:00 2001 From: scnorton Date: Thu, 18 Jan 2018 17:38:51 -0500 Subject: sub_800F4F0 --- include/librfu.h | 1 + include/link_rfu.h | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 9e1c2ff60..88cbe2d3d 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -208,6 +208,7 @@ void rfu_getRFUStatus(u8 *status); u8 *rfu_getSTWIRecvBuffer(void); u8 rfu_NI_CHILD_setSendGameName(u8 a0, u8 a1); void rfu_clearSlot(u8 a0, u8 a1); +void rfu_clearAllSlot(void); bool16 rfu_CHILD_getConnectRecoveryStatus(u8 *status); bool16 rfu_getConnectParentStatus(u8 *status, u8 *a1); bool16 rfu_UNI_PARENT_getDRAC_ACK(u8 *a0); diff --git a/include/link_rfu.h b/include/link_rfu.h index 3cad90fc0..80d2689ed 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -136,7 +136,7 @@ struct UnkRfuStruct_Sub_Unused { }; struct UnkRfuStruct_2 { - /* 0x000 */ u8 filler_00[4]; + /* 0x000 */ u32 unk_00; /* 0x004 */ u16 unk_04; /* 0x006 */ u8 filler_06[6]; /* 0x00c */ u8 unk_0c; -- cgit v1.2.3 From 58def21c6299f05c702d613bdcc9086058586539 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 18 Jan 2018 19:23:12 -0500 Subject: nonmatching sub_800F638 --- include/link_rfu.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 80d2689ed..6e8346a88 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -96,9 +96,9 @@ struct UnkRfuStruct_1 { struct UnkRfuStruct_2_Sub_6c { /* 0x00 */ u16 unk_00; /* 0x02 */ u16 unk_02; - /* 0x04 */ u32 unk_04; + /* 0x04 */ u8 *unk_04; /* 0x08 */ u32 unk_08; - /* 0x0c */ u8 filler_0c[4]; + /* 0x0c */ u32 unk_0c; /* 0x10 */ u8 unk_10; /* 0x11 */ u8 unk_11; /* 0x12 */ u8 unk_12; -- cgit v1.2.3 From c383d490ad249f8496f42cb6b8a10d74957053ef Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 19 Jan 2018 19:13:45 -0500 Subject: through sub_800F850 --- include/link.h | 1 + include/link_rfu.h | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link.h b/include/link.h index c01f24d27..918a7480b 100644 --- a/include/link.h +++ b/include/link.h @@ -195,6 +195,7 @@ extern struct LinkPlayer gLinkPlayers[5]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; extern bool8 gWirelessCommType; +extern u32 gUnknown_020223C0; void Task_DestroySelf(u8); void OpenLink(void); diff --git a/include/link_rfu.h b/include/link_rfu.h index 6e8346a88..144a863b5 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -136,7 +136,7 @@ struct UnkRfuStruct_Sub_Unused { }; struct UnkRfuStruct_2 { - /* 0x000 */ u32 unk_00; + /* 0x000 */ void (*unk_00)(void); /* 0x004 */ u16 unk_04; /* 0x006 */ u8 filler_06[6]; /* 0x00c */ u8 unk_0c; @@ -145,7 +145,10 @@ struct UnkRfuStruct_2 { /* 0x00f */ u8 filler_0f[5]; /* 0x014 */ u8 unk_14[4][14]; /* 0x04c */ u8 unk_4c[14]; - /* 0x05a */ u8 filler_5a[13]; + /* 0x05a */ u8 filler_5a[2]; + /* 0x05c */ u8 unk_5c[5]; + /* 0x061 */ u8 unk_61[5]; + /* 0x066 */ u8 unk_66; /* 0x067 */ u8 unk_67; /* 0x068 */ u8 filler_68[4]; /* 0x06c */ struct UnkRfuStruct_2_Sub_6c unk_6c; -- cgit v1.2.3 From 1c15b896a8cd40cd55cbcaa17d6893cfadfa4405 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 19 Jan 2018 21:50:30 -0500 Subject: sub_800F86C --- include/link_rfu.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 144a863b5..12ee00e0e 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -153,9 +153,11 @@ struct UnkRfuStruct_2 { /* 0x068 */ u8 filler_68[4]; /* 0x06c */ struct UnkRfuStruct_2_Sub_6c unk_6c; /* 0x080 */ struct UnkRfuStruct_2_Sub_6c unk_80[5]; - /* 0x0e4 */ u8 filler_e4[10]; + /* 0x0e4 */ u8 unk_e4[5]; + /* 0x0e9 */ u8 unk_e9[5]; /* 0x0ee */ vu8 unk_ee; - /* 0x0ef */ u8 filler_ef[0x13]; + /* 0x0ef */ u8 filler_ef[0x11]; + /* 0x100 */ u16 unk_100; /* 0x102 */ u8 unk_102; /* 0x103 */ u8 filler_103[0x21]; /* 0x124 */ struct UnkRfuStruct_2_Sub_124 unk_124; @@ -168,7 +170,8 @@ struct UnkRfuStruct_2 { /* 0xc85 */ u8 filler_c85[2]; /* 0xc87 */ u8 unk_c87[5][7][2]; /* 0xccd */ u8 unk_ccd; - /* 0xcce */ u8 filler_cce[2]; + /* 0xcce */ u8 unk_cce; + /* 0xccf */ u8 unk_ccf; /* 0xcd0 */ vu8 unk_cd0; /* 0xcd1 */ u8 filler_cd1[8]; /* 0xcd9 */ u8 unk_cd9; -- cgit v1.2.3 From 6ac0175c1e23a686bc85743b6de34390c3d09db4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 10:16:09 -0500 Subject: nonmatching sub_800FD14 --- include/link_rfu.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 12ee00e0e..0c279f50b 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -145,7 +145,8 @@ struct UnkRfuStruct_2 { /* 0x00f */ u8 filler_0f[5]; /* 0x014 */ u8 unk_14[4][14]; /* 0x04c */ u8 unk_4c[14]; - /* 0x05a */ u8 filler_5a[2]; + /* 0x05a */ u8 unk_5a; + /* 0x05b */ u8 unk_5b; /* 0x05c */ u8 unk_5c[5]; /* 0x061 */ u8 unk_61[5]; /* 0x066 */ u8 unk_66; @@ -156,7 +157,9 @@ struct UnkRfuStruct_2 { /* 0x0e4 */ u8 unk_e4[5]; /* 0x0e9 */ u8 unk_e9[5]; /* 0x0ee */ vu8 unk_ee; - /* 0x0ef */ u8 filler_ef[0x11]; + /* 0x0ef */ u8 filler_ef[3]; + /* 0x0f2 */ u16 unk_f2[6]; + /* 0x0fe */ u8 filler_fe[2]; /* 0x100 */ u16 unk_100; /* 0x102 */ u8 unk_102; /* 0x103 */ u8 filler_103[0x21]; -- cgit v1.2.3 From b8af0f011d2968977e72cff5d8bae35b169c0046 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 11:53:35 -0500 Subject: through rfufunc_80FA020 --- include/link_rfu.h | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 0c279f50b..a5d237b9f 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -47,7 +47,11 @@ struct UnkLinkRfuStruct_02022B44 u8 fill_08[6]; vu8 unk_0e; u8 unk_0f; - u8 fill_10[0xcc]; + u8 fill_10[0x54]; + u16 unk_64; + u8 fill_66[0x1d]; + u8 unk_83; + u8 fill_84[0x58]; }; struct UnkRfuStruct_1 { @@ -96,7 +100,7 @@ struct UnkRfuStruct_1 { struct UnkRfuStruct_2_Sub_6c { /* 0x00 */ u16 unk_00; /* 0x02 */ u16 unk_02; - /* 0x04 */ u8 *unk_04; + /* 0x04 */ const u8 *unk_04; /* 0x08 */ u32 unk_08; /* 0x0c */ u32 unk_0c; /* 0x10 */ u8 unk_10; @@ -210,7 +214,7 @@ bool32 sub_800F7E4(void); void sub_800F804(void); void sub_800F850(void); u8 sub_800FCD8(void); -bool32 sub_800FE84(const void *src, size_t size); +bool32 sub_800FE84(const u8 *src, size_t size); void Rfu_set_zero(void); u8 sub_80104F4(void); u8 rfu_get_multiplayer_id(void); @@ -224,10 +228,15 @@ void sub_800E174(void); void sub_800E6D0(void); bool32 sub_8010EC0(void); bool32 sub_8010F1C(void); +bool32 sub_8011A80(void); bool32 sub_800F0B8(void); u32 sub_80124D4(void); void RfuVSync(void); void sub_80111B0(bool32 a0); u8 sub_8011A74(void); +struct UnkLinkRfuStruct_02022B14 *sub_800F7DC(void); +void sub_8011068(u8 a0); +void sub_8011170(u32 a0); +void sub_8011A64(u8 a0, u16 a1); #endif //GUARD_LINK_RFU_H -- cgit v1.2.3 From b8ad1a0fc4b63bc2f2ec5734799fbfde7273420d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 12:00:56 -0500 Subject: through sub_8010198 --- include/link_rfu.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index a5d237b9f..3b6ff4e67 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -161,7 +161,8 @@ struct UnkRfuStruct_2 { /* 0x0e4 */ u8 unk_e4[5]; /* 0x0e9 */ u8 unk_e9[5]; /* 0x0ee */ vu8 unk_ee; - /* 0x0ef */ u8 filler_ef[3]; + /* 0x0ef */ u8 unk_ef; + /* 0x0f0 */ u8 filler_f0[2]; /* 0x0f2 */ u16 unk_f2[6]; /* 0x0fe */ u8 filler_fe[2]; /* 0x100 */ u16 unk_100; -- cgit v1.2.3 From aa6ffc5ba1c605c3ddbf9abd8dd96d3b16348ed6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 14:59:34 -0500 Subject: through sub_8010528 --- include/link_rfu.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index 3b6ff4e67..7a79b8008 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -162,9 +162,10 @@ struct UnkRfuStruct_2 { /* 0x0e9 */ u8 unk_e9[5]; /* 0x0ee */ vu8 unk_ee; /* 0x0ef */ u8 unk_ef; - /* 0x0f0 */ u8 filler_f0[2]; + /* 0x0f0 */ u8 unk_f0; + /* 0x0f1 */ u8 unk_f1; /* 0x0f2 */ u16 unk_f2[6]; - /* 0x0fe */ u8 filler_fe[2]; + /* 0x0fe */ u16 unk_fe; /* 0x100 */ u16 unk_100; /* 0x102 */ u8 unk_102; /* 0x103 */ u8 filler_103[0x21]; -- cgit v1.2.3 From a8e8bfb4c8868d3dd8cf0c5ead8af81acd8a17f0 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 15:50:45 -0500 Subject: through sub_8010750 --- include/librfu.h | 1 + include/link_rfu.h | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/librfu.h b/include/librfu.h index 88cbe2d3d..9dd547eee 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -223,3 +223,4 @@ void rfu_REQ_recvData(void); void rfu_UNI_readySendData(u8 a0); void rfu_UNI_clearRecvNewDataFlag(u8 a0); void rfu_REQ_PARENT_resumeRetransmitAndChange(void); +void rfu_NI_setSendData(u8, u8, u8 *, u8); diff --git a/include/link_rfu.h b/include/link_rfu.h index 7a79b8008..b14a889bc 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -176,13 +176,15 @@ struct UnkRfuStruct_2 { /* 0xc3d */ u8 unk_c3d; /* 0xc3e */ vu8 unk_c3e; /* 0xc3f */ u8 unk_c3f[70]; - /* 0xc85 */ u8 filler_c85[2]; + /* 0xc85 */ u8 unk_c85; + /* 0xc86 */ u8 unk_c86; /* 0xc87 */ u8 unk_c87[5][7][2]; /* 0xccd */ u8 unk_ccd; /* 0xcce */ u8 unk_cce; /* 0xccf */ u8 unk_ccf; /* 0xcd0 */ vu8 unk_cd0; - /* 0xcd1 */ u8 filler_cd1[8]; + /* 0xcd1 */ u8 unk_cd1[4]; + /* 0xcd5 */ u8 unk_cd5[4]; /* 0xcd9 */ u8 unk_cd9; /* 0xcda */ u8 unk_cda; /* 0xcdb */ vu8 unk_cdb; -- cgit v1.2.3 From 95d77c25f390afa8702469b3dfd17c8dc375a3e2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 16:38:44 -0500 Subject: through sub_801084C --- include/link.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'include') diff --git a/include/link.h b/include/link.h index 918a7480b..43a09863e 100644 --- a/include/link.h +++ b/include/link.h @@ -249,6 +249,8 @@ void SetSuppressLinkErrorMessage(bool8 flag); void sub_800B524(struct LinkPlayer *linkPlayer); u8 GetSioMultiSI(void); void sub_800AAF4(void); +void sub_800B348(void); +void sub_800B3A4(u32 who); extern u16 gLinkPartnersHeldKeys[6]; extern u32 gLinkDebugSeed; -- cgit v1.2.3 From ef412145d07e74b2db6555e726a7944f9451c48e Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 17:28:10 -0500 Subject: through sub_8010A70 --- include/link_rfu.h | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'include') diff --git a/include/link_rfu.h b/include/link_rfu.h index b14a889bc..a53b58d8b 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -203,6 +203,14 @@ struct UnkRfuStruct_2 { /* 0xcee */ u8 unk_cee[4]; }; // size = 0xcf4 +struct UnkRfuStruct_8010A14 { + char unk_00[15]; + u8 unk_0f; + u8 unk_10[4]; + struct LinkPlayer unk_14[4]; + u8 fill_84[0x78]; +}; + // Exported RAM declarations extern struct UnkRfuStruct_1 gUnknown_03004140; -- cgit v1.2.3 From 1566dca0c2b0bc8f4bf5dc11d013477051ea9f6b Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 20 Jan 2018 18:43:58 -0500 Subject: through sub_8010EC0 --- include/link.h | 4 ++-- include/link_rfu.h | 11 +++++++---- include/rom_8011DC0.h | 12 ++++++++++++ 3 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 include/rom_8011DC0.h (limited to 'include') diff --git a/include/link.h b/include/link.h index 43a09863e..cadabebc9 100644 --- a/include/link.h +++ b/include/link.h @@ -194,7 +194,6 @@ extern u16 gSendCmd[CMD_LENGTH]; extern struct LinkPlayer gLinkPlayers[5]; extern u16 word_3002910[]; extern bool8 gReceivedRemoteLinkPlayers; -extern bool8 gWirelessCommType; extern u32 gUnknown_020223C0; void Task_DestroySelf(u8); @@ -249,6 +248,7 @@ void SetSuppressLinkErrorMessage(bool8 flag); void sub_800B524(struct LinkPlayer *linkPlayer); u8 GetSioMultiSI(void); void sub_800AAF4(void); +void sub_800AF18(u32 status, u8 lastSendQueueCount, u8 lastRecvQueueCount, u8 unk_06); void sub_800B348(void); void sub_800B3A4(u32 who); @@ -267,7 +267,7 @@ extern u8 gUnknown_030030EC[MAX_LINK_PLAYERS]; extern u8 gUnknown_030030F0[MAX_LINK_PLAYERS]; extern u16 gUnknown_030030F4; extern u8 gSuppressLinkErrorMessage; -extern bool8 gWirelessCommType; +extern u8 gWirelessCommType; extern bool8 gSavedLinkPlayerCount; extern u8 gSavedMultiplayerId; extern struct LinkTestBGInfo gLinkTestBGInfo; diff --git a/include/link_rfu.h b/include/link_rfu.h index a53b58d8b..0f7c52524 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -142,11 +142,14 @@ struct UnkRfuStruct_Sub_Unused { struct UnkRfuStruct_2 { /* 0x000 */ void (*unk_00)(void); /* 0x004 */ u16 unk_04; - /* 0x006 */ u8 filler_06[6]; + /* 0x006 */ u8 filler_06[4]; + /* 0x00a */ u16 unk_0a; /* 0x00c */ u8 unk_0c; /* 0x00d */ u8 playerCount; /* 0x00e */ u8 unk_0e; - /* 0x00f */ u8 filler_0f[5]; + /* 0x00f */ u8 unk_0f; + /* 0x010 */ u16 unk_10; + /* 0x012 */ u16 unk_12; /* 0x014 */ u8 unk_14[4][14]; /* 0x04c */ u8 unk_4c[14]; /* 0x05a */ u8 unk_5a; @@ -207,8 +210,8 @@ struct UnkRfuStruct_8010A14 { char unk_00[15]; u8 unk_0f; u8 unk_10[4]; - struct LinkPlayer unk_14[4]; - u8 fill_84[0x78]; + struct LinkPlayer unk_14[5]; + u8 fill_a0[0x5c]; }; // Exported RAM declarations diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h new file mode 100644 index 000000000..fd8c35f56 --- /dev/null +++ b/include/rom_8011DC0.h @@ -0,0 +1,12 @@ +#ifndef GUARD_rom_8011DC0_H +#define GUARD_rom_8011DC0_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void sub_8018438(void); + +#endif //GUARD_rom_8011DC0_H -- cgit v1.2.3 From d35cf06854be09a6bcf5ceb63cdb54cefd6d48a2 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 21 Jan 2018 18:25:23 -0500 Subject: nonmatching sub_801120C --- include/global.h | 1 + include/librfu.h | 39 ++++++++++++++++++++++++++++++++------- include/link_rfu.h | 22 ---------------------- 3 files changed, 33 insertions(+), 29 deletions(-) (limited to 'include') diff --git a/include/global.h b/include/global.h index 1987a0ada..c32909c93 100644 --- a/include/global.h +++ b/include/global.h @@ -10,6 +10,7 @@ // to help in decompiling #define asm_comment(x) asm volatile("@ -- " x " -- ") #define asm_unified(x) asm(".syntax unified\n" x "\n.syntax divided") +#define ASM_DIRECT __attribute__((naked)) #if defined (__APPLE__) || defined (__CYGWIN__) void *memset(void *, int, size_t); diff --git a/include/librfu.h b/include/librfu.h index 9dd547eee..aae7df4e9 100644 --- a/include/librfu.h +++ b/include/librfu.h @@ -67,6 +67,28 @@ union RfuPacket struct RfuPacket8 rfuPacket8; }; +struct __attribute__((packed)) UnkLinkRfuStruct_02022B14 +{ + u16 unk_00_0:4; + u16 unk_00_4:1; + u16 unk_00_5:1; + u16 unk_00_6:1; + u16 unk_00_7:1; + u16 unk_01_0:1; + u16 unk_01_1:1; + u16 unk_01_2:4; + u16 unk_01_6:2; + u8 playerTrainerId[2]; + u8 unk_04[4]; + u16 unk_08_0:10; + u16 unk_09_2:6; + u8 unk_0a_0:7; + u8 unk_0a_7:1; + u8 playerGender:1; + u8 unk_0b_1:7; + u8 unk_0c; +}; + struct RfuStruct { vs32 unk_0; @@ -142,6 +164,15 @@ struct RfuUnk3 u32 unk_dc; }; +struct RfuUnk5Sub { + u16 unk_00; + u8 unk_02; + u16 unk_04; + struct UnkLinkRfuStruct_02022B14 unk_06; + u8 fill_13[2]; + u8 unk_15[8]; +}; + struct RfuUnk5 { u8 unk_00; @@ -156,13 +187,7 @@ struct RfuUnk5 u8 filler_09[1]; u8 unk_0a[4]; u8 filler_0e[6]; - struct RfuUnk5Sub { - u16 unk_00; - u8 unk_02; - u16 unk_04; - u8 unk_06[15]; - u8 unk_15[11]; - } unk_14[4]; + struct RfuUnk5Sub unk_14[4]; }; extern struct RfuStruct *gRfuState; diff --git a/include/link_rfu.h b/include/link_rfu.h index 0f7c52524..a6084b138 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -3,28 +3,6 @@ // Exported type declarations -struct __attribute__((packed)) UnkLinkRfuStruct_02022B14 -{ - u16 unk_00_0:4; - u16 unk_00_4:1; - u16 unk_00_5:1; - u16 unk_00_6:1; - u16 unk_00_7:1; - u16 unk_01_0:1; - u16 unk_01_1:1; - u16 unk_01_2:4; - u16 unk_01_6:2; - u8 playerTrainerId[2]; - u8 unk_04[4]; - u16 unk_08_0:10; - u16 unk_09_2:6; - u8 unk_0a_0:7; - u8 unk_0a_7:1; - u8 playerGender:1; - u8 unk_0b_1:7; - u8 unk_0c; -}; - struct UnkLinkRfuStruct_02022B2C { u8 unk_00; -- cgit v1.2.3 From f39053ee3023b02139784f88d346b3b57853c307 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 3 Feb 2018 10:19:56 -0500 Subject: common syms in window.c, because why not --- include/window.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'include') diff --git a/include/window.h b/include/window.h index b630cd316..d52f07e94 100644 --- a/include/window.h +++ b/include/window.h @@ -68,5 +68,11 @@ void BlitBitmapRectToWindow4BitTo8Bit(u8 windowId, u8 *pixels, u16 srcX, u16 src void CopyWindowToVram8Bit(u8 windowId, u8 mode); extern struct Window gWindows[]; +extern void* gUnknown_03002F70[]; +extern u32 filler_03002F58; +extern u32 filler_03002F5C; +extern u32 filler_03002F64; + +extern u8 gUnknown_03002F60; #endif // GUARD_WINDOW_H -- cgit v1.2.3 From 5ac6cc48609f34f8d0d75093ecf6d9d056c0a92b Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 7 Feb 2018 22:53:40 +0100 Subject: move battle vars to c file --- include/battle.h | 40 ++++++++++++++++++++-------------------- include/battle_anim.h | 22 +++++++++++----------- include/battle_gfx_sfx_util.h | 36 ++++++++++++++++++------------------ include/battle_main.h | 10 +++++----- include/constants/battle_ai.h | 4 ++-- include/constants/battle_anim.h | 2 +- 6 files changed, 57 insertions(+), 57 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 81c1d341d..85f21a4ff 100644 --- a/include/battle.h +++ b/include/battle.h @@ -476,8 +476,8 @@ struct ProtectStruct /* field_4 */ u32 physicalDmg; /* field_8 */ u32 specialDmg; - /* field_C */ u8 physicalBank; - /* field_D */ u8 specialBank; + /* field_C */ u8 physicalBattlerId; + /* field_D */ u8 specialBattlerId; /* field_E */ u16 fieldE; }; @@ -494,11 +494,11 @@ struct SpecialStatus u8 flag40 : 1; u8 focusBanded : 1; u8 field1[3]; - s32 moveturnLostHP; - s32 moveturnLostHP_physical; - s32 moveturnLostHP_special; - u8 moveturnPhysicalBank; - u8 moveturnSpecialBank; + s32 dmg; + s32 physicalDmg; + s32 specialDmg; + u8 physicalBattlerId; + u8 specialBattlerId; u8 field12; u8 field13; }; @@ -508,13 +508,13 @@ extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; struct SideTimer { /*0x00*/ u8 reflectTimer; - /*0x01*/ u8 reflectBank; + /*0x01*/ u8 reflectBattlerId; /*0x02*/ u8 lightscreenTimer; - /*0x03*/ u8 lightscreenBank; + /*0x03*/ u8 lightscreenBattlerId; /*0x04*/ u8 mistTimer; - /*0x05*/ u8 mistBank; + /*0x05*/ u8 mistBattlerId; /*0x06*/ u8 safeguardTimer; - /*0x07*/ u8 safeguardBank; + /*0x07*/ u8 safeguardBattlerId; /*0x08*/ u8 followmeTimer; /*0x09*/ u8 followmeTarget; /*0x0A*/ u8 spikesAmount; @@ -530,7 +530,7 @@ struct WishFutureKnock s32 futureSightDmg[MAX_BATTLERS_COUNT]; u16 futureSightMove[MAX_BATTLERS_COUNT]; u8 wishCounter[MAX_BATTLERS_COUNT]; - u8 wishUserID[MAX_BATTLERS_COUNT]; + u8 wishMonId[MAX_BATTLERS_COUNT]; u8 weatherDuration; u8 knockedOffPokes[2]; }; @@ -625,7 +625,7 @@ struct BattleResults u16 playerMon2Species; // 0x26 u16 caughtMonSpecies; // 0x28 u8 caughtMonNick[10]; // 0x2A - u8 filler34[2]; + u8 filler34[2]; // 0x34 u8 catchAttempts[11]; // 0x36 }; @@ -634,12 +634,12 @@ extern struct BattleResults gBattleResults; struct BattleStruct { u8 turnEffectsTracker; - u8 turnEffectsBank; + u8 turnEffectsBattlerId; u8 filler2; - u8 turncountersTracker; + u8 turnCountersTracker; u8 wrappedMove[8]; // ask gamefreak why they declared it that way u8 moveTarget[4]; - u8 expGetterId; + u8 expGetterMonId; u8 field_11; u8 wildVictorySong; u8 dynamicMoveType; @@ -653,13 +653,13 @@ struct BattleStruct u8 field_45; u8 field_46; u8 field_47; - u8 focusPunchBank; + u8 focusPunchBattlerId; u8 field_49; u8 moneyMultiplier; u8 savedTurnActionNumber; u8 switchInAbilitiesCounter; u8 faintedActionsState; - u8 faintedActionsBank; + u8 faintedActionsBattlerId; u8 field_4F; u16 expValue; u8 field_52; @@ -687,7 +687,7 @@ struct BattleStruct u8 field_8C; u8 field_8D; u8 stringMoveType; - u8 expGetterBank; + u8 expGetterBattlerId; u8 field_90; u8 field_91; u8 field_92; @@ -732,7 +732,7 @@ struct BattleStruct u8 field_183; struct BattleEnigmaBerry battleEnigmaBerry; u8 wishPerishSongState; - u8 wishPerishSongBank; + u8 wishPerishSongBattlerId; bool8 overworldWeatherDone; u8 atkCancellerTracker; u8 field_1A4[96]; diff --git a/include/battle_anim.h b/include/battle_anim.h index cc864b024..aa62db46d 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -56,8 +56,8 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo void DestroyAnimSprite(struct Sprite *sprite); void DestroyAnimVisualTask(u8 taskId); void DestroyAnimSoundTask(u8 taskId); -bool8 IsBattlerSpriteVisible(u8 bank); -void sub_80A438C(u8 bank, bool8 toBG_2, bool8 setSpriteInvisible); +bool8 IsBattlerSpriteVisible(u8 battlerId); +void sub_80A438C(u8 battlerId, bool8 toBG_2, bool8 setSpriteInvisible); bool8 IsContest(void); s8 BattleAnimAdjustPanning(s8 pan); s8 BattleAnimAdjustPanning2(s8 pan); @@ -76,7 +76,7 @@ void sub_80A6F3C(struct Sprite *sprite); void sub_80A8278(void); void sub_80A6B30(struct UnknownAnimStruct2*); void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); -u8 sub_80A82E4(u8 bank); +u8 sub_80A82E4(u8 battlerId); bool8 AnimateBallThrow(struct Sprite *sprite); enum @@ -85,26 +85,26 @@ enum BANK_Y_POS, }; -u8 GetBattlerSpriteCoord(u8 bank, u8 attributeId); +u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId); -bool8 IsBattlerSpritePresent(u8 bank); +bool8 IsBattlerSpritePresent(u8 battlerId); void sub_80A6C68(u8 arg0); -u8 GetAnimBattlerSpriteId(u8 wantedBank); +u8 GetAnimBattlerSpriteId(u8 wantedBattler); bool8 IsDoubleBattle(void); u8 sub_80A6D94(void); u8 sub_80A8364(u8); void StoreSpriteCallbackInData6(struct Sprite *sprite, void (*spriteCallback)(struct Sprite*)); void oamt_add_pos2_onto_pos1(struct Sprite *sprite); -u8 GetBattlerSpriteDefault_Y(u8 bank); -u8 sub_80A82E4(u8 bank); -u8 GetSubstituteSpriteDefault_Y(u8 bank); +u8 GetBattlerSpriteDefault_Y(u8 battlerId); +u8 sub_80A82E4(u8 battlerId); +u8 GetSubstituteSpriteDefault_Y(u8 battlerId); // battle_anim_80A9C70.s -void LaunchStatusAnimation(u8 bank, u8 statusAnimId); +void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId); // battle_anim_8170478.s u8 ItemIdToBallId(u16 itemId); u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); -u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u32 arg2, u8 ballId); +u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 arg2, u8 ballId); #endif // GUARD_BATTLE_ANIM_H diff --git a/include/battle_gfx_sfx_util.h b/include/battle_gfx_sfx_util.h index 75bc3e003..e1c6325b6 100644 --- a/include/battle_gfx_sfx_util.h +++ b/include/battle_gfx_sfx_util.h @@ -8,41 +8,41 @@ void sub_805D714(struct Sprite *sprite); void sub_805D770(struct Sprite *sprite, bool8 arg1); void sub_805D7AC(struct Sprite *sprite); void InitAndLaunchChosenStatusAnimation(bool8 isStatus2, u32 status); -bool8 TryHandleLaunchBattleTableAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId, u16 argument); -void InitAndLaunchSpecialAnimation(u8 activeBank, u8 atkBank, u8 defBank, u8 tableId); +bool8 TryHandleLaunchBattleTableAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId, u16 argument); +void InitAndLaunchSpecialAnimation(u8 activeBattlerId, u8 attacker, u8 target, u8 tableId); bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn); -bool8 mplay_80342A4(u8 bank); -void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank); -void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank); +bool8 mplay_80342A4(u8 battlerId); +void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 battlerId); +void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 battlerId); void nullsub_23(void); void nullsub_24(u16 species); -void DecompressTrainerFrontPic(u16 frontPicId, u8 bank); -void DecompressTrainerBackPic(u16 backPicId, u8 bank); +void DecompressTrainerFrontPic(u16 frontPicId, u8 battlerId); +void DecompressTrainerBackPic(u16 backPicId, u8 battlerId); void nullsub_25(u8 arg0); void FreeTrainerFrontPicPalette(u16 frontPicId); void sub_805DFFC(void); bool8 BattleLoadAllHealthBoxesGfx(u8 state); void LoadBattleBarGfx(u8 arg0); -bool8 BattleInitAllSprites(u8 *state1, u8 *bank); +bool8 BattleInitAllSprites(u8 *state1, u8 *battlerId); void ClearSpritesHealthboxAnimData(void); void CopyAllBattleSpritesInvisibilities(void); -void CopyBattleSpriteInvisibility(u8 bank); -void HandleSpeciesGfxDataChange(u8 bankAtk, u8 bankDef, bool8 notTransform); -void BattleLoadSubstituteOrMonSpriteGfx(u8 bank, bool8 loadMonSprite); -void LoadBattleMonGfxAndAnimate(u8 bank, bool8 loadMonSprite, u8 spriteId); -void TrySetBehindSubstituteSpriteBit(u8 bank, u16 move); -void ClearBehindSubstituteBit(u8 bank); -void HandleLowHpMusicChange(struct Pokemon *mon, u8 bank); +void CopyBattleSpriteInvisibility(u8 battlerId); +void HandleSpeciesGfxDataChange(u8 attacker, u8 target, bool8 notTransform); +void BattleLoadSubstituteOrMonSpriteGfx(u8 battlerId, bool8 loadMonSprite); +void LoadBattleMonGfxAndAnimate(u8 battlerId, bool8 loadMonSprite, u8 spriteId); +void TrySetBehindSubstituteSpriteBit(u8 battlerId, u16 move); +void ClearBehindSubstituteBit(u8 battlerId); +void HandleLowHpMusicChange(struct Pokemon *mon, u8 battlerId); void BattleStopLowHpSound(void); u8 GetMonHPBarLevel(struct Pokemon *mon); void sub_805EAE8(void); void sub_805EB9C(u8 affineMode); void LoadAndCreateEnemyShadowSprites(void); void SpriteCB_SetInvisible(struct Sprite *sprite); -void SetBattlerShadowSpriteCallback(u8 bank, u16 species); -void HideBattlerShadowSprite(u8 bank); +void SetBattlerShadowSpriteCallback(u8 battlerId, u16 species); +void HideBattlerShadowSprite(u8 battlerId); void sub_805EF14(void); -void ClearTemporarySpeciesSpriteData(u8 bank, bool8 dontClearSubstitute); +void ClearTemporarySpeciesSpriteData(u8 battlerId, bool8 dontClearSubstitute); void AllocateMonSpritesGfx(void); void FreeMonSpritesGfx(void); bool32 ShouldPlayNormalPokeCry(struct Pokemon *mon); diff --git a/include/battle_main.h b/include/battle_main.h index 54b5e7da6..d7a522f17 100644 --- a/include/battle_main.h +++ b/include/battle_main.h @@ -21,8 +21,8 @@ void sub_8039B58(struct Sprite *sprite); void sub_8039BB4(struct Sprite *sprite); void sub_80105DC(struct Sprite *sprite); void sub_8039C00(struct Sprite *sprite); -void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d); -void dp11b_obj_free(u8 bank, bool8 b); +void dp11b_obj_instanciate(u8 battlerId, u8 b, s8 c, s8 d); +void dp11b_obj_free(u8 battlerId, bool8 b); void sub_8039E44(struct Sprite *sprite); void sub_8039E60(struct Sprite *sprite); void sub_8039E84(struct Sprite *sprite); @@ -35,12 +35,12 @@ void sub_803B3AC(void); // unused void sub_803B598(void); // unused void BattleTurnPassed(void); u8 IsRunningFromBattleImpossible(void); -void sub_803BDA0(u8 bank); +void sub_803BDA0(u8 battlerId); void SwapTurnOrder(u8 id1, u8 id2); -u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreChosenMoves); +u8 GetWhoStrikesFirst(u8 battlerId1, u8 battlerId2, bool8 ignoreChosenMoves); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); -bool8 TryRunFromBattle(u8 bank); +bool8 TryRunFromBattle(u8 battlerId); extern const u8 gStatusConditionString_PoisonJpn[8]; extern const u8 gStatusConditionString_SleepJpn[8]; diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 9d89d75f0..92eac11fa 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -1,7 +1,7 @@ #ifndef GUARD_BATTLE_AI_H #define GUARD_BATTLE_AI_H -// banks enum +// battlers #define AI_TARGET 0 #define AI_USER 1 #define AI_TARGET_PARTNER 2 @@ -22,7 +22,7 @@ #define AI_EFFECTIVENESS_x0_25 10 #define AI_EFFECTIVENESS_x0 0 -// ai weather enum +// ai weather #define AI_WEATHER_SUN 0 #define AI_WEATHER_RAIN 1 #define AI_WEATHER_SANDSTORM 2 diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index de2fbebb1..270ac55e0 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -1,7 +1,7 @@ #ifndef GUARD_CONSTANTS_BATTLE_ANIM_H #define GUARD_CONSTANTS_BATTLE_ANIM_H -// banks enum used in scripts +// battlers #define ANIM_ATTACKER 0 #define ANIM_TARGET 1 #define ANIM_ATK_PARTNER 2 -- cgit v1.2.3 From 1a32010f13d6df0a3eec20e2eb2bb069e79c73bc Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 7 Feb 2018 23:21:51 +0100 Subject: iwram common symbols to c --- include/battle.h | 149 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 104 insertions(+), 45 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 85f21a4ff..80c6cbdb2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -93,7 +93,6 @@ #define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) #define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) -extern u32 gBattleTypeFlags; #define TRAINER_OPPONENT_3FE 0x3FE #define TRAINER_OPPONENT_C00 0xC00 @@ -113,7 +112,6 @@ extern u32 gBattleTypeFlags; #define B_OUTCOME_POKE_TELEPORTED 0xA #define B_OUTCOME_LINK_BATTLE_RAN 0x80 -extern u8 gBattleOutcome; // Non-volatile status conditions // These persist remain outside of battle and after switching out @@ -173,7 +171,6 @@ extern u8 gBattleOutcome; #define STATUS3_TRACE 0x100000 #define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) -extern u32 gStatuses3[MAX_BATTLERS_COUNT]; // Not really sure what a "hitmarker" is. @@ -204,7 +201,6 @@ extern u32 gStatuses3[MAX_BATTLERS_COUNT]; #define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C) #define HITMARKER_UNK(battler) (0x10000000 << battler) -extern u32 gHitMarker; // Per-side statuses that affect an entire party @@ -217,7 +213,6 @@ extern u32 gHitMarker; #define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) -extern u16 gSideStatuses[2]; // Battle Actions // These determine what each battler will do in a turn @@ -267,7 +262,6 @@ extern u16 gSideStatuses[2]; #define WEATHER_HAIL_ANY (WEATHER_HAIL) #define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY) -extern u16 gBattleWeather; #define BATTLE_TERRAIN_GRASS 0 #define BATTLE_TERRAIN_LONG_GRASS 1 @@ -280,7 +274,6 @@ extern u16 gBattleWeather; #define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_PLAIN 9 -extern u8 gBattleTerrain; // array entries for battle communication #define MULTIUSE_STATE 0x0 @@ -339,6 +332,8 @@ extern u8 gBattleTerrain; #define CMP_COMMON_BITS 0x4 #define CMP_NO_COMMON_BITS 0x5 +#define BATTLE_BUFFER_LINK_SIZE 0x1000 + struct TrainerMonNoItemDefaultMoves { u16 iv; @@ -346,8 +341,6 @@ struct TrainerMonNoItemDefaultMoves u16 species; }; -u8 GetBattlerSide(u8 battler); - struct TrainerMonItemDefaultMoves { u16 iv; @@ -441,8 +434,6 @@ struct DisableStruct /*0x1A*/ u8 unk1A[2]; }; -extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT]; - struct ProtectStruct { /* field_0 */ @@ -481,8 +472,6 @@ struct ProtectStruct /* field_E */ u16 fieldE; }; -extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; - struct SpecialStatus { u8 statLowered : 1; // 0x1 @@ -503,8 +492,6 @@ struct SpecialStatus u8 field13; }; -extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; - struct SideTimer { /*0x00*/ u8 reflectTimer; @@ -521,8 +508,6 @@ struct SideTimer /*0x0B*/ u8 fieldB; }; -extern struct SideTimer gSideTimers[]; - struct WishFutureKnock { u8 futureSightCounter[MAX_BATTLERS_COUNT]; @@ -535,8 +520,6 @@ struct WishFutureKnock u8 knockedOffPokes[2]; }; -extern struct WishFutureKnock gWishFutureKnock; - struct AI_ThinkingStruct { u8 aiState; @@ -600,8 +583,6 @@ struct BattleResources struct BattleScriptsStack *AI_ScriptsStack; }; -extern struct BattleResources* gBattleResources; - struct BattleResults { u8 playerFaintCounter; // 0x0 @@ -629,8 +610,6 @@ struct BattleResults u8 catchAttempts[11]; // 0x36 }; -extern struct BattleResults gBattleResults; - struct BattleStruct { u8 turnEffectsTracker; @@ -745,8 +724,6 @@ struct BattleStruct u8 field_2A2; }; -extern struct BattleStruct* gBattleStruct; - #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -859,8 +836,6 @@ struct BattleScripting u8 multiplayerId; }; -extern struct BattleScripting gBattleScripting; - enum { BACK_PIC_BRENDAN, @@ -874,7 +849,7 @@ enum }; // rom_80A5C6C -u8 GetBattlerSide(u8 bank); +u8 GetBattlerSide(u8 battler); u8 GetBattlerPosition(u8 bank); u8 GetBattlerAtPosition(u8 bank); @@ -956,18 +931,6 @@ struct BattleSpriteData struct BattleBarInfo *battleBars; }; -extern struct BattleSpriteData *gBattleSpritesDataPtr; - -#define BATTLE_BUFFER_LINK_SIZE 0x1000 - -extern u8 *gLinkBattleSendBuffer; -extern u8 *gLinkBattleRecvBuffer; - -extern u8 *gUnknown_0202305C; -extern u8 *gUnknown_02023060; - -// Move this somewhere else - #include "sprite.h" struct MonSpritesGfx @@ -982,11 +945,107 @@ struct MonSpritesGfx void *field_17C; }; -extern struct BattleSpritesGfx* gMonSpritesGfx; -extern u8 gBattleOutcome; -extern u16 gLastUsedItem; +// all battle variables are declared in battle_main.c extern u32 gBattleTypeFlags; -extern struct MonSpritesGfx* gMonSpritesGfxPtr; -extern u16 gTrainerBattleOpponent_A; +extern u8 gBattleTerrain; +extern u32 gUnknown_02022FF4; +extern u8 *gUnknown_0202305C; +extern u8 *gUnknown_02023060; +extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200]; +extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200]; +extern u8 gActiveBattler; +extern u32 gBattleControllerExecFlags; +extern u8 gBattlersCount; +extern u16 gBattlerPartyIndexes[MAX_BATTLERS_COUNT]; +extern u8 gBattlerPositions[MAX_BATTLERS_COUNT]; +extern u8 gActionsByTurnOrder[MAX_BATTLERS_COUNT]; +extern u8 gBattleTurnOrder[MAX_BATTLERS_COUNT]; +extern u8 gCurrentTurnActionNumber; +extern u8 gCurrentActionFuncId; +extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; +extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gCurrMovePos; +extern u8 gUnknown_020241E9; +extern u16 gCurrentMove; +extern u16 gChosenMove; +extern u16 gRandomMove; +extern s32 gBattleMoveDamage; +extern s32 gHpDealt; +extern s32 gTakenDmg[MAX_BATTLERS_COUNT]; +extern u16 gLastUsedItem; +extern u8 gLastUsedAbility; +extern u8 gBattlerAttacker; +extern u8 gBattlerTarget; +extern u8 gBank1; +extern u8 gEffectBank; +extern u8 gStringBattler; +extern u8 gAbsentBattlerFlags; +extern u8 gCritMultiplier; +extern u8 gMultiHitCounter; +extern const u8 *gBattlescriptCurrInstr; +extern u32 gUnusedBattleMainVar; +extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; +extern const u8 *gSelectionBattleScripts[MAX_BATTLERS_COUNT]; +extern const u8 *gPalaceSelectionBattleScripts[MAX_BATTLERS_COUNT]; +extern u16 gLastPrintedMoves[MAX_BATTLERS_COUNT]; +extern u16 gLastMoves[MAX_BATTLERS_COUNT]; +extern u16 gLastLandedMoves[MAX_BATTLERS_COUNT]; +extern u16 gLastHitByType[MAX_BATTLERS_COUNT]; +extern u16 gLastResultingMoves[MAX_BATTLERS_COUNT]; +extern u16 gLockedMoves[MAX_BATTLERS_COUNT]; +extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; +extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; +extern u8 gMoveResultFlags; +extern u32 gHitMarker; +extern u8 gUnknown_02024284[MAX_BATTLERS_COUNT]; +extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT]; +extern u8 gUnknown_0202428C; +extern u16 gSideStatuses[2]; +extern struct SideTimer gSideTimers[2]; +extern u32 gStatuses3[MAX_BATTLERS_COUNT]; +extern struct DisableStruct gDisableStructs[MAX_BATTLERS_COUNT]; +extern u16 gPauseCounterBattle; +extern u16 gPaydayMoney; +extern u16 gRandomTurnNumber; +extern u8 gBattleCommunication[BATTLE_COMMUNICATION_ENTRIES_COUNT]; +extern u8 gBattleOutcome; +extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; +extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; +extern u16 gBattleWeather; +extern struct WishFutureKnock gWishFutureKnock; +extern u16 gUnknown_020243FC; +extern u8 gSentPokesToOpponent[2]; +extern u16 gDynamicBasePower; +extern u16 gExpShareExp; +extern struct BattleEnigmaBerry gEnigmaBerries[MAX_BATTLERS_COUNT]; +extern struct BattleScripting gBattleScripting; +extern struct BattleStruct *gBattleStruct; +extern u8 *gLinkBattleSendBuffer; +extern u8 *gLinkBattleRecvBuffer; +extern struct BattleResources *gBattleResources; +extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; +extern u8 gUnknown_020244B4[MAX_BATTLERS_COUNT]; +extern u8 gBattlerInMenuId; +extern bool8 gDoingBattleAnim; +extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; +extern u8 gPlayerDpadHoldFrames; +extern struct BattleSpriteData *gBattleSpritesDataPtr; +extern struct MonSpritesGfx *gMonSpritesGfxPtr; +extern u8 *gUnknown_020244D8; +extern u8 *gUnknown_020244DC; +extern u16 gBattleMovePower; +extern u16 gMoveToLearn; +extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; + +extern void (*gPreBattleCallback1)(void); +extern void (*gBattleMainFunc)(void); +extern struct BattleResults gBattleResults; +extern u8 gLeveledUpInBattle; +extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void); +extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; +extern u8 gMultiUsePlayerCursor; +extern u8 gNumberOfMovesToChoose; +extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; #endif // GUARD_BATTLE_H -- cgit v1.2.3 From caf9af321d913e6938f5c70188ad0aca5e5eefeb Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 8 Feb 2018 00:00:25 +0100 Subject: get rid of unnecessary externs --- include/battle.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 80c6cbdb2..3933c5bc4 100644 --- a/include/battle.h +++ b/include/battle.h @@ -1032,8 +1032,8 @@ extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; extern u8 gPlayerDpadHoldFrames; extern struct BattleSpriteData *gBattleSpritesDataPtr; extern struct MonSpritesGfx *gMonSpritesGfxPtr; -extern u8 *gUnknown_020244D8; -extern u8 *gUnknown_020244DC; +extern struct BattleHealthboxInfo *gUnknown_020244D8; +extern struct BattleHealthboxInfo *gUnknown_020244DC; extern u16 gBattleMovePower; extern u16 gMoveToLearn; extern u8 gBattleMonForms[MAX_BATTLERS_COUNT]; -- cgit v1.2.3 From a10fd5a7c4d92551c579baacf07c499b6f434619 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 8 Feb 2018 00:35:13 +0100 Subject: create more battle constants --- include/battle.h | 289 +------------------------ include/battle_string_ids.h | 387 ---------------------------------- include/constants/battle.h | 284 +++++++++++++++++++++++++ include/constants/battle_ai.h | 6 +- include/constants/battle_string_ids.h | 386 +++++++++++++++++++++++++++++++++ 5 files changed, 674 insertions(+), 678 deletions(-) delete mode 100644 include/battle_string_ids.h create mode 100644 include/constants/battle.h create mode 100644 include/constants/battle_string_ids.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 3933c5bc4..9e755aaec 100644 --- a/include/battle.h +++ b/include/battle.h @@ -2,6 +2,7 @@ #define GUARD_BATTLE_H // should they be included here or included individually by every file? +#include "constants/battle.h" #include "battle_util.h" #include "battle_script_commands.h" #include "battle_main.h" @@ -10,210 +11,16 @@ #include "battle_util2.h" #include "battle_bg.h" -/* - * A battler may be in one of four positions on the field. The first bit determines - * what side the battler is on, either the player's side or the opponent's side. - * The second bit determines what flank the battler is on, either the left or right. - * Note that the opponent's flanks are drawn corresponding to their perspective, so - * their right mon appears on the left, and their left mon appears on the right. - * The battler ID is usually the same as the position, except in the case of link battles. - * - * + ------------------------- + - * | Opponent's side | - * | Right Left | - * | 3 1 | - * | | - * | Player's side | - * | Left Right | - * | 0 2 | - * ----------------------------+ - * | | - * | | - * +---------------------------+ - */ - -#define MAX_BATTLERS_COUNT 4 - -#define B_POSITION_PLAYER_LEFT 0 -#define B_POSITION_OPPONENT_LEFT 1 -#define B_POSITION_PLAYER_RIGHT 2 -#define B_POSITION_OPPONENT_RIGHT 3 - -// These macros can be used with either battler ID or positions to get the partner or the opposite mon -#define BATTLE_OPPOSITE(id) ((id) ^ 1) -#define BATTLE_PARTNER(id) ((id) ^ 2) - -#define B_SIDE_PLAYER 0 -#define B_SIDE_OPPONENT 1 - -#define B_FLANK_LEFT 0 -#define B_FLANK_RIGHT 1 - -#define BIT_SIDE 1 -#define BIT_FLANK 2 - #define GET_BATTLER_POSITION(battler) (gBattlerPositions[battler]) #define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE) #define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE) -// Battle Type Flags - -#define BATTLE_TYPE_DOUBLE 0x0001 -#define BATTLE_TYPE_LINK 0x0002 -#define BATTLE_TYPE_WILD 0x0004 -#define BATTLE_TYPE_TRAINER 0x0008 -#define BATTLE_TYPE_FIRST_BATTLE 0x0010 -#define BATTLE_TYPE_20 0x0020 -#define BATTLE_TYPE_MULTI 0x0040 -#define BATTLE_TYPE_SAFARI 0x0080 -#define BATTLE_TYPE_BATTLE_TOWER 0x0100 -#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 -#define BATTLE_TYPE_ROAMER 0x0400 -#define BATTLE_TYPE_EREADER_TRAINER 0x0800 -#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 -#define BATTLE_TYPE_LEGENDARY 0x2000 -#define BATTLE_TYPE_REGI 0x4000 -#define BATTLE_TYPE_TWO_OPPONENTS 0x8000 -#define BATTLE_TYPE_DOME 0x10000 -#define BATTLE_TYPE_PALACE 0x20000 -#define BATTLE_TYPE_ARENA 0x40000 -#define BATTLE_TYPE_FACTORY 0x80000 -#define BATTLE_TYPE_PIKE 0x100000 -#define BATTLE_TYPE_PYRAMID 0x200000 -#define BATTLE_TYPE_INGAME_PARTNER 0x400000 -#define BATTLE_TYPE_x800000 0x800000 -#define BATTLE_TYPE_RECORDED 0x1000000 -#define BATTLE_TYPE_x2000000 0x2000000 -#define BATTLE_TYPE_x4000000 0x4000000 -#define BATTLE_TYPE_SECRET_BASE 0x8000000 -#define BATTLE_TYPE_GROUDON 0x10000000 -#define BATTLE_TYPE_KYOGRE 0x20000000 -#define BATTLE_TYPE_RAYQUAZA 0x40000000 -#define BATTLE_TYPE_x80000000 0x80000000 -#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) -#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) - - #define TRAINER_OPPONENT_3FE 0x3FE #define TRAINER_OPPONENT_C00 0xC00 #define TRAINER_OPPONENT_800 0x800 #define STEVEN_PARTNER_ID 0xC03 #define SECRET_BASE_OPPONENT 0x400 -#define B_OUTCOME_WON 0x1 -#define B_OUTCOME_LOST 0x2 -#define B_OUTCOME_DREW 0x3 -#define B_OUTCOME_RAN 0x4 -#define B_OUTCOME_PLAYER_TELEPORTED 0x5 -#define B_OUTCOME_POKE_FLED 0x6 -#define B_OUTCOME_CAUGHT_POKE 0x7 -#define B_OUTCOME_NO_SAFARI_BALLS 0x8 -#define B_OUTCOME_FORFEITED 0x9 -#define B_OUTCOME_POKE_TELEPORTED 0xA -#define B_OUTCOME_LINK_BATTLE_RAN 0x80 - - -// Non-volatile status conditions -// These persist remain outside of battle and after switching out -#define STATUS1_NONE 0x0 -#define STATUS1_SLEEP 0x7 -#define STATUS1_POISON 0x8 -#define STATUS1_BURN 0x10 -#define STATUS1_FREEZE 0x20 -#define STATUS1_PARALYSIS 0x40 -#define STATUS1_TOXIC_POISON 0x80 -#define STATUS1_TOXIC_COUNTER 0xF00 -#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON) -#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON) - -// Volatile status ailments -// These are removed after exiting the battle or switching out -#define STATUS2_CONFUSION 0x00000007 -#define STATUS2_FLINCHED 0x00000008 -#define STATUS2_UPROAR 0x00000070 -#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 -#define STATUS2_LOCK_CONFUSE 0x00000C00 -#define STATUS2_MULTIPLETURNS 0x00001000 -#define STATUS2_WRAPPED 0x0000E000 -#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler -#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16) -#define STATUS2_FOCUS_ENERGY 0x00100000 -#define STATUS2_TRANSFORMED 0x00200000 -#define STATUS2_RECHARGE 0x00400000 -#define STATUS2_RAGE 0x00800000 -#define STATUS2_SUBSTITUTE 0x01000000 -#define STATUS2_DESTINY_BOND 0x02000000 -#define STATUS2_ESCAPE_PREVENTION 0x04000000 -#define STATUS2_NIGHTMARE 0x08000000 -#define STATUS2_CURSED 0x10000000 -#define STATUS2_FORESIGHT 0x20000000 -#define STATUS2_DEFENSE_CURL 0x40000000 -#define STATUS2_TORMENT 0x80000000 - -// Seems like per-battler statuses. Not quite sure how to categorize these -#define STATUS3_LEECHSEED_BANK 0x3 -#define STATUS3_LEECHSEED 0x4 -#define STATUS3_ALWAYS_HITS 0x18 // two bits -#define STATUS3_PERISH_SONG 0x20 -#define STATUS3_ON_AIR 0x40 -#define STATUS3_UNDERGROUND 0x80 -#define STATUS3_MINIMIZED 0x100 -#define STATUS3_ROOTED 0x400 -#define STATUS3_CHARGED_UP 0x200 -#define STATUS3_YAWN 0x1800 // two bits -#define STATUS3_IMPRISONED_OTHERS 0x2000 -#define STATUS3_GRUDGE 0x4000 -#define STATUS3_CANT_SCORE_A_CRIT 0x8000 -#define STATUS3_MUDSPORT 0x10000 -#define STATUS3_WATERSPORT 0x20000 -#define STATUS3_UNDERWATER 0x40000 -#define STATUS3_INTIMIDATE_POKES 0x80000 -#define STATUS3_TRACE 0x100000 -#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) - - -// Not really sure what a "hitmarker" is. - -#define HITMARKER_x10 0x00000010 -#define HITMARKER_x20 0x00000020 -#define HITMARKER_DESTINYBOND 0x00000040 -#define HITMARKER_NO_ANIMATIONS 0x00000080 -#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 -#define HITMARKER_NO_ATTACKSTRING 0x00000200 -#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 -#define HITMARKER_NO_PPDEDUCT 0x00000800 -#define HITMARKER_PURSUIT_TRAP 0x00001000 -#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 -#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 -#define HITMARKER_RUN 0x00008000 -#define HITMARKER_IGNORE_ON_AIR 0x00010000 -#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 -#define HITMARKER_IGNORE_UNDERWATER 0x00040000 -#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 -#define HITMARKER_x100000 0x00100000 -#define HITMARKER_x200000 0x00200000 -#define HITMARKER_x400000 0x00400000 -#define HITMARKER_x800000 0x00800000 -#define HITMARKER_GRUDGE 0x01000000 -#define HITMARKER_OBEYS 0x02000000 -#define HITMARKER_x4000000 0x04000000 -#define HITMARKER_x8000000 0x08000000 -#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C) -#define HITMARKER_UNK(battler) (0x10000000 << battler) - - -// Per-side statuses that affect an entire party - -#define SIDE_STATUS_REFLECT (1 << 0) -#define SIDE_STATUS_LIGHTSCREEN (1 << 1) -#define SIDE_STATUS_X4 (1 << 2) -#define SIDE_STATUS_SPIKES (1 << 4) -#define SIDE_STATUS_SAFEGUARD (1 << 5) -#define SIDE_STATUS_FUTUREATTACK (1 << 6) -#define SIDE_STATUS_MIST (1 << 8) -#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) - - // Battle Actions // These determine what each battler will do in a turn #define B_ACTION_USE_MOVE 0 @@ -233,36 +40,9 @@ #define B_ACTION_NOTHING_FAINTED 13 // when choosing an action #define B_ACTION_NONE 0xFF -#define MOVE_RESULT_MISSED (1 << 0) -#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1) -#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) -#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3) -#define MOVE_RESULT_ONE_HIT_KO (1 << 4) -#define MOVE_RESULT_FAILED (1 << 5) -#define MOVE_RESULT_FOE_ENDURED (1 << 6) -#define MOVE_RESULT_FOE_HUNG_ON (1 << 7) -#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) - #define MAX_TRAINER_ITEMS 4 #define MAX_MON_MOVES 4 -// Battle Weather flags - -#define WEATHER_RAIN_TEMPORARY (1 << 0) -#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused -#define WEATHER_RAIN_PERMANENT (1 << 2) -#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT) -#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) -#define WEATHER_SANDSTORM_PERMANENT (1 << 4) -#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT) -#define WEATHER_SUN_TEMPORARY (1 << 5) -#define WEATHER_SUN_PERMANENT (1 << 6) -#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT) -#define WEATHER_HAIL (1 << 7) -#define WEATHER_HAIL_ANY (WEATHER_HAIL) -#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY) - - #define BATTLE_TERRAIN_GRASS 0 #define BATTLE_TERRAIN_LONG_GRASS 1 #define BATTLE_TERRAIN_SAND 2 @@ -274,7 +54,6 @@ #define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_PLAIN 9 - // array entries for battle communication #define MULTIUSE_STATE 0x0 #define CURSOR_POSITION 0x1 @@ -732,72 +511,6 @@ struct BattleStruct typeArg = gBattleMoves[move].type; \ } -#define MOVE_EFFECT_SLEEP 0x1 -#define MOVE_EFFECT_POISON 0x2 -#define MOVE_EFFECT_BURN 0x3 -#define MOVE_EFFECT_FREEZE 0x4 -#define MOVE_EFFECT_PARALYSIS 0x5 -#define MOVE_EFFECT_TOXIC 0x6 -#define MOVE_EFFECT_CONFUSION 0x7 -#define MOVE_EFFECT_FLINCH 0x8 -#define MOVE_EFFECT_TRI_ATTACK 0x9 -#define MOVE_EFFECT_UPROAR 0xA -#define MOVE_EFFECT_PAYDAY 0xB -#define MOVE_EFFECT_CHARGING 0xC -#define MOVE_EFFECT_WRAP 0xD -#define MOVE_EFFECT_RECOIL_25 0xE -#define MOVE_EFFECT_ATK_PLUS_1 0xF -#define MOVE_EFFECT_DEF_PLUS_1 0x10 -#define MOVE_EFFECT_SPD_PLUS_1 0x11 -#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12 -#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13 -#define MOVE_EFFECT_ACC_PLUS_1 0x14 -#define MOVE_EFFECT_EVS_PLUS_1 0x15 -#define MOVE_EFFECT_ATK_MINUS_1 0x16 -#define MOVE_EFFECT_DEF_MINUS_1 0x17 -#define MOVE_EFFECT_SPD_MINUS_1 0x18 -#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19 -#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A -#define MOVE_EFFECT_ACC_MINUS_1 0x1B -#define MOVE_EFFECT_EVS_MINUS_1 0x1C -#define MOVE_EFFECT_RECHARGE 0x1D -#define MOVE_EFFECT_RAGE 0x1E -#define MOVE_EFFECT_STEAL_ITEM 0x1F -#define MOVE_EFFECT_PREVENT_ESCAPE 0x20 -#define MOVE_EFFECT_NIGHTMARE 0x21 -#define MOVE_EFFECT_ALL_STATS_UP 0x22 -#define MOVE_EFFECT_RAPIDSPIN 0x23 -#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 -#define MOVE_EFFECT_ATK_DEF_DOWN 0x25 -#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 -#define MOVE_EFFECT_ATK_PLUS_2 0x27 -#define MOVE_EFFECT_DEF_PLUS_2 0x28 -#define MOVE_EFFECT_SPD_PLUS_2 0x29 -#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A -#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B -#define MOVE_EFFECT_ACC_PLUS_2 0x2C -#define MOVE_EFFECT_EVS_PLUS_2 0x2D -#define MOVE_EFFECT_ATK_MINUS_2 0x2E -#define MOVE_EFFECT_DEF_MINUS_2 0x2F -#define MOVE_EFFECT_SPD_MINUS_2 0x30 -#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31 -#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32 -#define MOVE_EFFECT_ACC_MINUS_2 0x33 -#define MOVE_EFFECT_EVS_MINUS_2 0x34 -#define MOVE_EFFECT_THRASH 0x35 -#define MOVE_EFFECT_KNOCK_OFF 0x36 -#define MOVE_EFFECT_NOTHING_37 0x37 -#define MOVE_EFFECT_NOTHING_38 0x38 -#define MOVE_EFFECT_NOTHING_39 0x39 -#define MOVE_EFFECT_NOTHING_3A 0x3A -#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B -#define MOVE_EFFECT_NOTHING_3C 0x3C -#define MOVE_EFFECT_NOTHING_3D 0x3D -#define MOVE_EFFECT_NOTHING_3E 0x3E -#define MOVE_EFFECT_NOTHING_3F 0x3F -#define MOVE_EFFECT_AFFECTS_USER 0x40 -#define MOVE_EFFECT_CERTAIN 0x80 - #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 #define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h deleted file mode 100644 index f242284b0..000000000 --- a/include/battle_string_ids.h +++ /dev/null @@ -1,387 +0,0 @@ -#ifndef GUARD_BATTLE_STRING_IDS_H -#define GUARD_BATTLE_STRING_IDS_H - -#define BATTLESTRINGS_COUNT 369 - -#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved - -#define STRINGID_INTROMSG 0 -#define STRINGID_INTROSENDOUT 1 -#define STRINGID_RETURNMON 2 -#define STRINGID_SWITCHINMON 3 -#define STRINGID_USEDMOVE 4 -#define STRINGID_BATTLEEND 5 - - -// todo: make some of those names less vague: attacker/target vs pkmn, etc. -#define STRINGID_TRAINER1LOSETEXT 12 -#define STRINGID_PKMNGAINEDEXP 13 -#define STRINGID_PKMNGREWTOLV 14 -#define STRINGID_PKMNLEARNEDMOVE 15 -#define STRINGID_TRYTOLEARNMOVE1 16 -#define STRINGID_TRYTOLEARNMOVE2 17 -#define STRINGID_TRYTOLEARNMOVE3 18 -#define STRINGID_PKMNFORGOTMOVE 19 -#define STRINGID_STOPLEARNINGMOVE 20 -#define STRINGID_DIDNOTLEARNMOVE 21 -#define STRINGID_PKMNLEARNEDMOVE2 22 -#define STRINGID_ATTACKMISSED 23 -#define STRINGID_PKMNPROTECTEDITSELF 24 -#define STRINGID_STATSWONTINCREASE2 25 -#define STRINGID_AVOIDEDDAMAGE 26 -#define STRINGID_ITDOESNTAFFECT 27 -#define STRINGID_ATTACKERFAINTED 28 -#define STRINGID_TARGETFAINTED 29 -#define STRINGID_PLAYERGOTMONEY 30 -#define STRINGID_PLAYERWHITEOUT 31 -#define STRINGID_PLAYERWHITEOUT2 32 -#define STRINGID_PREVENTSESCAPE 33 -#define STRINGID_HITXTIMES 34 -#define STRINGID_PKMNFELLASLEEP 35 -#define STRINGID_PKMNMADESLEEP 36 -#define STRINGID_PKMNALREADYASLEEP 37 -#define STRINGID_PKMNALREADYASLEEP2 38 -#define STRINGID_PKMNWASNTAFFECTED 39 -#define STRINGID_PKMNWASPOISONED 40 -#define STRINGID_PKMNPOISONEDBY 41 -#define STRINGID_PKMNHURTBYPOISON 42 -#define STRINGID_PKMNALREADYPOISONED 43 -#define STRINGID_PKMNBADLYPOISONED 44 -#define STRINGID_PKMNENERGYDRAINED 45 -#define STRINGID_PKMNWASBURNED 46 -#define STRINGID_PKMNBURNEDBY 47 -#define STRINGID_PKMNHURTBYBURN 48 -#define STRINGID_PKMNWASFROZEN 49 -#define STRINGID_PKMNFROZENBY 50 -#define STRINGID_PKMNISFROZEN 51 -#define STRINGID_PKMNWASDEFROSTED 52 -#define STRINGID_PKMNWASDEFROSTED2 53 -#define STRINGID_PKMNWASDEFROSTEDBY 54 -#define STRINGID_PKMNWASPARALYZED 55 -#define STRINGID_PKMNWASPARALYZEDBY 56 -#define STRINGID_PKMNISPARALYZED 57 -#define STRINGID_PKMNISALREADYPARALYZED 58 -#define STRINGID_PKMNHEALEDPARALYSIS 59 -#define STRINGID_PKMNDREAMEATEN 60 -#define STRINGID_STATSWONTINCREASE 61 -#define STRINGID_STATSWONTDECREASE 62 -#define STRINGID_TEAMSTOPPEDWORKING 63 -#define STRINGID_FOESTOPPEDWORKING 64 -#define STRINGID_PKMNISCONFUSED 65 -#define STRINGID_PKMNHEALEDCONFUSION 66 -#define STRINGID_PKMNWASCONFUSED 67 -#define STRINGID_PKMNALREADYCONFUSED 68 -#define STRINGID_PKMNFELLINLOVE 69 -#define STRINGID_PKMNINLOVE 70 -#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 -#define STRINGID_PKMNBLOWNAWAY 72 -#define STRINGID_PKMNCHANGEDTYPE 73 -#define STRINGID_PKMNFLINCHED 74 -#define STRINGID_PKMNREGAINEDHEALTH 75 -#define STRINGID_PKMNHPFULL 76 -#define STRINGID_PKMNRAISEDSPDEF 77 -#define STRINGID_PKMNRAISEDDEF 78 -#define STRINGID_PKMNCOVEREDBYVEIL 79 -#define STRINGID_PKMNUSEDSAFEGUARD 80 -#define STRINGID_PKMNSAFEGUARDEXPIRED 81 -#define STRINGID_PKMNWENTTOSLEEP 82 -#define STRINGID_PKMNSLEPTHEALTHY 83 -#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 -#define STRINGID_PKMNTOOKSUNLIGHT 85 -#define STRINGID_PKMNLOWEREDHEAD 86 -#define STRINGID_PKMNISGLOWING 87 -#define STRINGID_PKMNFLEWHIGH 88 -#define STRINGID_PKMNDUGHOLE 89 -#define STRINGID_PKMNSQUEEZEDBYBIND 90 -#define STRINGID_PKMNTRAPPEDINVORTEX 91 -#define STRINGID_PKMNWRAPPEDBY 92 -#define STRINGID_PKMNCLAMPED 93 -#define STRINGID_PKMNHURTBY 94 -#define STRINGID_PKMNFREEDFROM 95 -#define STRINGID_PKMNCRASHED 96 -#define STRINGID_PKMNSHROUDEDINMIST 97 -#define STRINGID_PKMNPROTECTEDBYMIST 98 -#define STRINGID_PKMNGETTINGPUMPED 99 -#define STRINGID_PKMNHITWITHRECOIL 100 -#define STRINGID_PKMNPROTECTEDITSELF2 101 -#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 -#define STRINGID_PKMNPELTEDBYHAIL 103 -#define STRINGID_PKMNSEEDED 104 -#define STRINGID_PKMNEVADEDATTACK 105 -#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 -#define STRINGID_PKMNFASTASLEEP 107 -#define STRINGID_PKMNWOKEUP 108 -#define STRINGID_PKMNUPROARKEPTAWAKE 109 -#define STRINGID_PKMNWOKEUPINUPROAR 110 -#define STRINGID_PKMNCAUSEDUPROAR 111 -#define STRINGID_PKMNMAKINGUPROAR 112 -#define STRINGID_PKMNCALMEDDOWN 113 -#define STRINGID_PKMNCANTSLEEPINUPROAR 114 -#define STRINGID_PKMNSTOCKPILED 115 -#define STRINGID_PKMNCANTSTOCKPILE 116 -#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 -#define STRINGID_UPROARKEPTPKMNAWAKE 118 -#define STRINGID_PKMNSTAYEDAWAKEUSING 119 -#define STRINGID_PKMNSTORINGENERGY 120 -#define STRINGID_PKMNUNLEASHEDENERGY 121 -#define STRINGID_PKMNFATIGUECONFUSION 122 -#define STRINGID_PKMNPICKEDUPITEM 123 -#define STRINGID_PKMNUNAFFECTED 124 -#define STRINGID_PKMNTRANSFORMEDINTO 125 -#define STRINGID_PKMNMADESUBSTITUTE 126 -#define STRINGID_PKMNHASSUBSTITUTE 127 -#define STRINGID_SUBSTITUTEDAMAGED 128 -#define STRINGID_PKMNSUBSTITUTEFADED 129 -#define STRINGID_PKMNMUSTRECHARGE 130 -#define STRINGID_PKMNRAGEBUILDING 131 -#define STRINGID_PKMNMOVEWASDISABLED 132 -#define STRINGID_PKMNMOVEISDISABLED 133 -#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 -#define STRINGID_PKMNGOTENCORE 135 -#define STRINGID_PKMNENCOREENDED 136 -#define STRINGID_PKMNTOOKAIM 137 -#define STRINGID_PKMNSKETCHEDMOVE 138 -#define STRINGID_PKMNTRYINGTOTAKEFOE 139 -#define STRINGID_PKMNTOOKFOE 140 -#define STRINGID_PKMNREDUCEDPP 141 -#define STRINGID_PKMNSTOLEITEM 142 -#define STRINGID_TARGETCANTESCAPENOW 143 -#define STRINGID_PKMNFELLINTONIGHTMARE 144 -#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 -#define STRINGID_PKMNLAIDCURSE 146 -#define STRINGID_PKMNAFFLICTEDBYCURSE 147 -#define STRINGID_SPIKESSCATTERED 148 -#define STRINGID_PKMNHURTBYSPIKES 149 -#define STRINGID_PKMNIDENTIFIED 150 -#define STRINGID_PKMNPERISHCOUNTFELL 151 -#define STRINGID_PKMNBRACEDITSELF 152 -#define STRINGID_PKMNENDUREDHIT 153 -#define STRINGID_MAGNITUDESTRENGTH 154 -#define STRINGID_PKMNCUTHPMAXEDATTACK 155 -#define STRINGID_PKMNCOPIEDSTATCHANGES 156 -#define STRINGID_PKMNGOTFREE 157 -#define STRINGID_PKMNSHEDLEECHSEED 158 -#define STRINGID_PKMNBLEWAWAYSPIKES 159 -#define STRINGID_PKMNFLEDFROMBATTLE 160 -#define STRINGID_PKMNFORESAWATTACK 161 -#define STRINGID_PKMNTOOKATTACK 162 -#define STRINGID_PKMNATTACK 163 -#define STRINGID_PKMNCENTERATTENTION 164 -#define STRINGID_PKMNCHARGINGPOWER 165 -#define STRINGID_NATUREPOWERTURNEDINTO 166 -#define STRINGID_PKMNSTATUSNORMAL 167 -#define STRINGID_PKMNHASNOMOVESLEFT 168 -#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 -#define STRINGID_PKMNCANTUSEMOVETORMENT 170 -#define STRINGID_PKMNTIGHTENINGFOCUS 171 -#define STRINGID_PKMNFELLFORTAUNT 172 -#define STRINGID_PKMNCANTUSEMOVETAUNT 173 -#define STRINGID_PKMNREADYTOHELP 174 -#define STRINGID_PKMNSWITCHEDITEMS 175 -#define STRINGID_PKMNCOPIEDFOE 176 -#define STRINGID_PKMNMADEWISH 177 -#define STRINGID_PKMNWISHCAMETRUE 178 -#define STRINGID_PKMNPLANTEDROOTS 179 -#define STRINGID_PKMNABSORBEDNUTRIENTS 180 -#define STRINGID_PKMNANCHOREDITSELF 181 -#define STRINGID_PKMNWASMADEDROWSY 182 -#define STRINGID_PKMNKNOCKEDOFF 183 -#define STRINGID_PKMNSWAPPEDABILITIES 184 -#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 -#define STRINGID_PKMNCANTUSEMOVESEALED 186 -#define STRINGID_PKMNWANTSGRUDGE 187 -#define STRINGID_PKMNLOSTPPGRUDGE 188 -#define STRINGID_PKMNSHROUDEDITSELF 189 -#define STRINGID_PKMNMOVEBOUNCED 190 -#define STRINGID_PKMNWAITSFORTARGET 191 -#define STRINGID_PKMNSNATCHEDMOVE 192 -#define STRINGID_PKMNMADEITRAIN 193 -#define STRINGID_PKMNRAISEDSPEED 194 -#define STRINGID_PKMNPROTECTEDBY 195 -#define STRINGID_PKMNPREVENTSUSAGE 196 -#define STRINGID_PKMNRESTOREDHPUSING 197 -#define STRINGID_PKMNCHANGEDTYPEWITH 198 -#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 -#define STRINGID_PKMNPREVENTSROMANCEWITH 200 -#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 -#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 -#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 -#define STRINGID_PKMNANCHORSITSELFWITH 204 -#define STRINGID_PKMNCUTSATTACKWITH 205 -#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 -#define STRINGID_PKMNHURTSWITH 207 -#define STRINGID_PKMNTRACED 208 -#define STRINGID_STATSHARPLY 209 -#define STRINGID_STATROSE 210 -#define STRINGID_STATHARSHLY 211 -#define STRINGID_STATFELL 212 -#define STRINGID_PKMNSSTATCHANGED 213 -#define STRINGID_PKMNSSTATCHANGED2 214 -#define STRINGID_PKMNSSTATCHANGED3 215 -#define STRINGID_PKMNSSTATCHANGED4 216 -#define STRINGID_CRITICALHIT 217 -#define STRINGID_ONEHITKO 218 -#define STRINGID_123POOF 219 -#define STRINGID_ANDELLIPSIS 220 -#define STRINGID_NOTVERYEFFECTIVE 221 -#define STRINGID_SUPEREFFECTIVE 222 -#define STRINGID_GOTAWAYSAFELY 223 -#define STRINGID_WILDPKMNFLED 224 -#define STRINGID_NORUNNINGFROMTRAINERS 225 -#define STRINGID_CANTESCAPE 226 -#define STRINGID_DONTLEAVEBIRCH 227 -#define STRINGID_BUTNOTHINGHAPPENED 228 -#define STRINGID_BUTITFAILED 229 -#define STRINGID_ITHURTCONFUSION 230 -#define STRINGID_MIRRORMOVEFAILED 231 -#define STRINGID_STARTEDTORAIN 232 -#define STRINGID_DOWNPOURSTARTED 233 -#define STRINGID_RAINCONTINUES 234 -#define STRINGID_DOWNPOURCONTINUES 235 -#define STRINGID_RAINSTOPPED 236 -#define STRINGID_SANDSTORMBREWED 237 -#define STRINGID_SANDSTORMRAGES 238 -#define STRINGID_SANDSTORMSUBSIDED 239 -#define STRINGID_SUNLIGHTGOTBRIGHT 240 -#define STRINGID_SUNLIGHTSTRONG 241 -#define STRINGID_SUNLIGHTFADED 242 -#define STRINGID_STARTEDHAIL 243 -#define STRINGID_HAILCONTINUES 244 -#define STRINGID_HAILSTOPPED 245 -#define STRINGID_FAILEDTOSPITUP 246 -#define STRINGID_FAILEDTOSWALLOW 247 -#define STRINGID_WINDBECAMEHEATWAVE 248 -#define STRINGID_STATCHANGESGONE 249 -#define STRINGID_COINSSCATTERED 250 -#define STRINGID_TOOWEAKFORSUBSTITUTE 251 -#define STRINGID_SHAREDPAIN 252 -#define STRINGID_BELLCHIMED 253 -#define STRINGID_FAINTINTHREE 254 -#define STRINGID_NOPPLEFT 255 -#define STRINGID_BUTNOPPLEFT 256 -#define STRINGID_PLAYERUSEDITEM 257 -#define STRINGID_WALLYUSEDITEM 258 -#define STRINGID_TRAINERBLOCKEDBALL 259 -#define STRINGID_DONTBEATHIEF 260 -#define STRINGID_ITDODGEDBALL 261 -#define STRINGID_YOUMISSEDPKMN 262 -#define STRINGID_PKMNBROKEFREE 263 -#define STRINGID_ITAPPEAREDCAUGHT 264 -#define STRINGID_AARGHALMOSTHADIT 265 -#define STRINGID_SHOOTSOCLOSE 266 -#define STRINGID_GOTCHAPKMNCAUGHT 267 -#define STRINGID_GOTCHAPKMNCAUGHT2 268 -#define STRINGID_GIVENICKNAMECAPTURED 269 -#define STRINGID_PKMNSENTTOPC 270 -#define STRINGID_PKMNDATAADDEDTODEX 271 -#define STRINGID_ITISRAINING 272 -#define STRINGID_SANDSTORMISRAGING 273 -#define STRINGID_CANTESCAPE2 274 -#define STRINGID_PKMNIGNORESASLEEP 275 -#define STRINGID_PKMNIGNOREDORDERS 276 -#define STRINGID_PKMNBEGANTONAP 277 -#define STRINGID_PKMNLOAFING 278 -#define STRINGID_PKMNWONTOBEY 279 -#define STRINGID_PKMNTURNEDAWAY 280 -#define STRINGID_PKMNPRETENDNOTNOTICE 281 -#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 -#define STRINGID_CREPTCLOSER 283 -#define STRINGID_CANTGETCLOSER 284 -#define STRINGID_PKMNWATCHINGCAREFULLY 285 -#define STRINGID_PKMNCURIOUSABOUTX 286 -#define STRINGID_PKMNENTHRALLEDBYX 287 -#define STRINGID_PKMNIGNOREDX 288 -#define STRINGID_THREWPOKEBLOCKATPKMN 289 -#define STRINGID_OUTOFSAFARIBALLS 290 -#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 -#define STRINGID_PKMNSITEMCUREDPOISON 292 -#define STRINGID_PKMNSITEMHEALEDBURN 293 -#define STRINGID_PKMNSITEMDEFROSTEDIT 294 -#define STRINGID_PKMNSITEMWOKEIT 295 -#define STRINGID_PKMNSITEMSNAPPEDOUT 296 -#define STRINGID_PKMNSITEMCUREDPROBLEM 297 -#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 -#define STRINGID_PKMNSITEMRESTOREDPP 299 -#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 -#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 -#define STRINGID_ITEMALLOWSONLYYMOVE 302 -#define STRINGID_PKMNHUNGONWITHX 303 -#define STRINGID_EMPTYSTRING3 304 -#define STRINGID_PKMNSXPREVENTSBURNS 305 -#define STRINGID_PKMNSXBLOCKSY 306 -#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 -#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 -#define STRINGID_PKMNSXPREVENTSYLOSS 309 -#define STRINGID_PKMNSXINFATUATEDY 310 -#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 -#define STRINGID_PKMNSXCUREDYPROBLEM 312 -#define STRINGID_ITSUCKEDLIQUIDOOZE 313 -#define STRINGID_PKMNTRANSFORMED 314 -#define STRINGID_ELECTRICITYWEAKENED 315 -#define STRINGID_FIREWEAKENED 316 -#define STRINGID_PKMNHIDUNDERWATER 317 -#define STRINGID_PKMNSPRANGUP 318 -#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 -#define STRINGID_XFOUNDONEY 320 -#define STRINGID_PLAYERDEFEATEDTRAINER1 321 -#define STRINGID_SOOTHINGAROMA 322 -#define STRINGID_ITEMSCANTBEUSEDNOW 323 -#define STRINGID_FORXCOMMAYZ 324 -#define STRINGID_USINGXTHEYOFZN 325 -#define STRINGID_PKMNUSEDXTOGETPUMPED 326 -#define STRINGID_PKMNSXMADEYUSELESS 327 -#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 -#define STRINGID_EMPTYSTRING4 329 -#define STRINGID_ABOOSTED 330 -#define STRINGID_PKMNSXINTENSIFIEDSUN 331 -#define STRINGID_PKMNMAKESGROUNDMISS 332 -#define STRINGID_YOUTHROWABALLNOWRIGHT 333 -#define STRINGID_PKMNSXTOOKATTACK 334 -#define STRINGID_PKMNCHOSEXASDESTINY 335 -#define STRINGID_PKMNLOSTFOCUS 336 -#define STRINGID_USENEXTPKMN 337 -#define STRINGID_PKMNFLEDUSINGITS 338 -#define STRINGID_PKMNFLEDUSING 339 -#define STRINGID_PKMNWASDRAGGEDOUT 340 -#define STRINGID_PREVENTEDFROMWORKING 341 -#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 -#define STRINGID_TRAINER1USEDITEM 343 -#define STRINGID_BOXISFULL 344 -#define STRINGID_PKMNAVOIDEDATTACK 345 -#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 -#define STRINGID_PKMNSXPREVENTSFLINCHING 347 -#define STRINGID_PKMNALREADYHASBURN 348 -#define STRINGID_STATSWONTDECREASE2 349 -#define STRINGID_PKMNSXBLOCKSY2 350 -#define STRINGID_PKMNSXWOREOFF 351 -#define STRINGID_PKMNRAISEDDEFALITTLE 352 -#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 -#define STRINGID_THEWALLSHATTERED 354 -#define STRINGID_PKMNSXPREVENTSYSZ 355 -#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 -#define STRINGID_ATTACKERCANTESCAPE 357 -#define STRINGID_PKMNOBTAINEDX 358 -#define STRINGID_PKMNOBTAINEDX2 359 -#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 -#define STRINGID_BUTNOEFFECT 361 -#define STRINGID_PKMNSXHADNOEFFECTONY 362 -#define STRINGID_TWOENEMIESDEFEATED 363 -#define STRINGID_TRAINER2LOSETEXT 364 -#define STRINGID_PKMNINCAPABLEOFPOWER 365 -#define STRINGID_GLINTAPPEARSINEYE 366 -#define STRINGID_PKMNGETTINGINTOPOSITION 367 -#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368 -#define STRINGID_PKMNEAGERFORMORE 369 -#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370 -#define STRINGID_LOSTTOOPPONENTBYREFEREE 371 -#define STRINGID_TIEDOPPONENTBYREFEREE 372 -#define STRINGID_QUESTIONFORFEITMATCH 373 -#define STRINGID_FORFEITEDMATCH 374 -#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375 -#define STRINGID_PKMNTRANSFERREDLANETTESPC 376 -#define STRINGID_PKMNBOXSOMEONESPCFULL 377 -#define STRINGID_PKMNBOXLANETTESPCFULL 378 -#define STRINGID_TRAINER1WINTEXT 379 -#define STRINGID_TRAINER2WINTEXT 380 - -#endif // GUARD_BATTLE_STRING_IDS_H diff --git a/include/constants/battle.h b/include/constants/battle.h new file mode 100644 index 000000000..f3d7a8e0e --- /dev/null +++ b/include/constants/battle.h @@ -0,0 +1,284 @@ +#ifndef GUARD_CONSTANTS_BATTLE_H +#define GUARD_CONSTANTS_BATTLE_H + +/* + * A battler may be in one of four positions on the field. The first bit determines + * what side the battler is on, either the player's side or the opponent's side. + * The second bit determines what flank the battler is on, either the left or right. + * Note that the opponent's flanks are drawn corresponding to their perspective, so + * their right mon appears on the left, and their left mon appears on the right. + * The battler ID is usually the same as the position, except in the case of link battles. + * + * + ------------------------- + + * | Opponent's side | + * | Right Left | + * | 3 1 | + * | | + * | Player's side | + * | Left Right | + * | 0 2 | + * ----------------------------+ + * | | + * | | + * +---------------------------+ + */ + +#define MAX_BATTLERS_COUNT 4 + +#define B_POSITION_PLAYER_LEFT 0 +#define B_POSITION_OPPONENT_LEFT 1 +#define B_POSITION_PLAYER_RIGHT 2 +#define B_POSITION_OPPONENT_RIGHT 3 + +// These macros can be used with either battler ID or positions to get the partner or the opposite mon +#define BATTLE_OPPOSITE(id) ((id) ^ 1) +#define BATTLE_PARTNER(id) ((id) ^ 2) + +#define B_SIDE_PLAYER 0 +#define B_SIDE_OPPONENT 1 + +#define B_FLANK_LEFT 0 +#define B_FLANK_RIGHT 1 + +#define BIT_SIDE 1 +#define BIT_FLANK 2 + +// Battle Type Flags +#define BATTLE_TYPE_DOUBLE 0x0001 +#define BATTLE_TYPE_LINK 0x0002 +#define BATTLE_TYPE_WILD 0x0004 +#define BATTLE_TYPE_TRAINER 0x0008 +#define BATTLE_TYPE_FIRST_BATTLE 0x0010 +#define BATTLE_TYPE_20 0x0020 +#define BATTLE_TYPE_MULTI 0x0040 +#define BATTLE_TYPE_SAFARI 0x0080 +#define BATTLE_TYPE_BATTLE_TOWER 0x0100 +#define BATTLE_TYPE_WALLY_TUTORIAL 0x0200 +#define BATTLE_TYPE_ROAMER 0x0400 +#define BATTLE_TYPE_EREADER_TRAINER 0x0800 +#define BATTLE_TYPE_KYOGRE_GROUDON 0x1000 +#define BATTLE_TYPE_LEGENDARY 0x2000 +#define BATTLE_TYPE_REGI 0x4000 +#define BATTLE_TYPE_TWO_OPPONENTS 0x8000 +#define BATTLE_TYPE_DOME 0x10000 +#define BATTLE_TYPE_PALACE 0x20000 +#define BATTLE_TYPE_ARENA 0x40000 +#define BATTLE_TYPE_FACTORY 0x80000 +#define BATTLE_TYPE_PIKE 0x100000 +#define BATTLE_TYPE_PYRAMID 0x200000 +#define BATTLE_TYPE_INGAME_PARTNER 0x400000 +#define BATTLE_TYPE_x800000 0x800000 +#define BATTLE_TYPE_RECORDED 0x1000000 +#define BATTLE_TYPE_x2000000 0x2000000 +#define BATTLE_TYPE_x4000000 0x4000000 +#define BATTLE_TYPE_SECRET_BASE 0x8000000 +#define BATTLE_TYPE_GROUDON 0x10000000 +#define BATTLE_TYPE_KYOGRE 0x20000000 +#define BATTLE_TYPE_RAYQUAZA 0x40000000 +#define BATTLE_TYPE_x80000000 0x80000000 +#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) +#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) + +// Battle Outcome defines +#define B_OUTCOME_WON 0x1 +#define B_OUTCOME_LOST 0x2 +#define B_OUTCOME_DREW 0x3 +#define B_OUTCOME_RAN 0x4 +#define B_OUTCOME_PLAYER_TELEPORTED 0x5 +#define B_OUTCOME_MON_FLED 0x6 +#define B_OUTCOME_CAUGHT 0x7 +#define B_OUTCOME_NO_SAFARI_BALLS 0x8 +#define B_OUTCOME_FORFEITED 0x9 +#define B_OUTCOME_MON_TELEPORTED 0xA +#define B_OUTCOME_LINK_BATTLE_RAN 0x80 + +// Non-volatile status conditions +// These persist remain outside of battle and after switching out +#define STATUS1_NONE 0x0 +#define STATUS1_SLEEP 0x7 +#define STATUS1_POISON 0x8 +#define STATUS1_BURN 0x10 +#define STATUS1_FREEZE 0x20 +#define STATUS1_PARALYSIS 0x40 +#define STATUS1_TOXIC_POISON 0x80 +#define STATUS1_TOXIC_COUNTER 0xF00 +#define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON) +#define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON) + +// Volatile status ailments +// These are removed after exiting the battle or switching out +#define STATUS2_CONFUSION 0x00000007 +#define STATUS2_FLINCHED 0x00000008 +#define STATUS2_UPROAR 0x00000070 +#define STATUS2_BIDE 0x00000300 // two bits 0x100, 0x200 +#define STATUS2_LOCK_CONFUSE 0x00000C00 +#define STATUS2_MULTIPLETURNS 0x00001000 +#define STATUS2_WRAPPED 0x0000E000 +#define STATUS2_INFATUATION 0x000F0000 // 4 bits, one for every battler +#define STATUS2_INFATUATED_WITH(battler) (gBitTable[battler] << 16) +#define STATUS2_FOCUS_ENERGY 0x00100000 +#define STATUS2_TRANSFORMED 0x00200000 +#define STATUS2_RECHARGE 0x00400000 +#define STATUS2_RAGE 0x00800000 +#define STATUS2_SUBSTITUTE 0x01000000 +#define STATUS2_DESTINY_BOND 0x02000000 +#define STATUS2_ESCAPE_PREVENTION 0x04000000 +#define STATUS2_NIGHTMARE 0x08000000 +#define STATUS2_CURSED 0x10000000 +#define STATUS2_FORESIGHT 0x20000000 +#define STATUS2_DEFENSE_CURL 0x40000000 +#define STATUS2_TORMENT 0x80000000 + +// Seems like per-battler statuses. Not quite sure how to categorize these +#define STATUS3_LEECHSEED_BANK 0x3 +#define STATUS3_LEECHSEED 0x4 +#define STATUS3_ALWAYS_HITS 0x18 // two bits +#define STATUS3_PERISH_SONG 0x20 +#define STATUS3_ON_AIR 0x40 +#define STATUS3_UNDERGROUND 0x80 +#define STATUS3_MINIMIZED 0x100 +#define STATUS3_ROOTED 0x400 +#define STATUS3_CHARGED_UP 0x200 +#define STATUS3_YAWN 0x1800 // two bits +#define STATUS3_IMPRISONED_OTHERS 0x2000 +#define STATUS3_GRUDGE 0x4000 +#define STATUS3_CANT_SCORE_A_CRIT 0x8000 +#define STATUS3_MUDSPORT 0x10000 +#define STATUS3_WATERSPORT 0x20000 +#define STATUS3_UNDERWATER 0x40000 +#define STATUS3_INTIMIDATE_POKES 0x80000 +#define STATUS3_TRACE 0x100000 +#define STATUS3_SEMI_INVULNERABLE (STATUS3_UNDERGROUND | STATUS3_ON_AIR | STATUS3_UNDERWATER) + +// Not really sure what a "hitmarker" is. +#define HITMARKER_x10 0x00000010 +#define HITMARKER_x20 0x00000020 +#define HITMARKER_DESTINYBOND 0x00000040 +#define HITMARKER_NO_ANIMATIONS 0x00000080 +#define HITMARKER_IGNORE_SUBSTITUTE 0x00000100 +#define HITMARKER_NO_ATTACKSTRING 0x00000200 +#define HITMARKER_ATTACKSTRING_PRINTED 0x00000400 +#define HITMARKER_NO_PPDEDUCT 0x00000800 +#define HITMARKER_PURSUIT_TRAP 0x00001000 +#define HITMARKER_IGNORE_SAFEGUARD 0x00002000 +#define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 +#define HITMARKER_RUN 0x00008000 +#define HITMARKER_IGNORE_ON_AIR 0x00010000 +#define HITMARKER_IGNORE_UNDERGROUND 0x00020000 +#define HITMARKER_IGNORE_UNDERWATER 0x00040000 +#define HITMARKER_UNABLE_TO_USE_MOVE 0x00080000 +#define HITMARKER_x100000 0x00100000 +#define HITMARKER_x200000 0x00200000 +#define HITMARKER_x400000 0x00400000 +#define HITMARKER_x800000 0x00800000 +#define HITMARKER_GRUDGE 0x01000000 +#define HITMARKER_OBEYS 0x02000000 +#define HITMARKER_x4000000 0x04000000 +#define HITMARKER_x8000000 0x08000000 +#define HITMARKER_FAINTED(battler) (gBitTable[battler] << 0x1C) +#define HITMARKER_UNK(battler) (0x10000000 << battler) + +// Per-side statuses that affect an entire party +#define SIDE_STATUS_REFLECT (1 << 0) +#define SIDE_STATUS_LIGHTSCREEN (1 << 1) +#define SIDE_STATUS_X4 (1 << 2) +#define SIDE_STATUS_SPIKES (1 << 4) +#define SIDE_STATUS_SAFEGUARD (1 << 5) +#define SIDE_STATUS_FUTUREATTACK (1 << 6) +#define SIDE_STATUS_MIST (1 << 8) +#define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) + +// Flags describing move's result +#define MOVE_RESULT_MISSED (1 << 0) +#define MOVE_RESULT_SUPER_EFFECTIVE (1 << 1) +#define MOVE_RESULT_NOT_VERY_EFFECTIVE (1 << 2) +#define MOVE_RESULT_DOESNT_AFFECT_FOE (1 << 3) +#define MOVE_RESULT_ONE_HIT_KO (1 << 4) +#define MOVE_RESULT_FAILED (1 << 5) +#define MOVE_RESULT_FOE_ENDURED (1 << 6) +#define MOVE_RESULT_FOE_HUNG_ON (1 << 7) +#define MOVE_RESULT_NO_EFFECT (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED) + +// Battle Weather flags +#define WEATHER_RAIN_TEMPORARY (1 << 0) +#define WEATHER_RAIN_DOWNPOUR (1 << 1) // unused +#define WEATHER_RAIN_PERMANENT (1 << 2) +#define WEATHER_RAIN_ANY (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_DOWNPOUR | WEATHER_RAIN_PERMANENT) +#define WEATHER_SANDSTORM_TEMPORARY (1 << 3) +#define WEATHER_SANDSTORM_PERMANENT (1 << 4) +#define WEATHER_SANDSTORM_ANY (WEATHER_SANDSTORM_TEMPORARY | WEATHER_SANDSTORM_PERMANENT) +#define WEATHER_SUN_TEMPORARY (1 << 5) +#define WEATHER_SUN_PERMANENT (1 << 6) +#define WEATHER_SUN_ANY (WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT) +#define WEATHER_HAIL (1 << 7) +#define WEATHER_HAIL_ANY (WEATHER_HAIL) +#define WEATHER_ANY (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_SUN_ANY | WEATHER_HAIL_ANY) + +// Move Effects +#define MOVE_EFFECT_SLEEP 0x1 +#define MOVE_EFFECT_POISON 0x2 +#define MOVE_EFFECT_BURN 0x3 +#define MOVE_EFFECT_FREEZE 0x4 +#define MOVE_EFFECT_PARALYSIS 0x5 +#define MOVE_EFFECT_TOXIC 0x6 +#define MOVE_EFFECT_CONFUSION 0x7 +#define MOVE_EFFECT_FLINCH 0x8 +#define MOVE_EFFECT_TRI_ATTACK 0x9 +#define MOVE_EFFECT_UPROAR 0xA +#define MOVE_EFFECT_PAYDAY 0xB +#define MOVE_EFFECT_CHARGING 0xC +#define MOVE_EFFECT_WRAP 0xD +#define MOVE_EFFECT_RECOIL_25 0xE +#define MOVE_EFFECT_ATK_PLUS_1 0xF +#define MOVE_EFFECT_DEF_PLUS_1 0x10 +#define MOVE_EFFECT_SPD_PLUS_1 0x11 +#define MOVE_EFFECT_SP_ATK_PLUS_1 0x12 +#define MOVE_EFFECT_SP_DEF_PLUS_1 0x13 +#define MOVE_EFFECT_ACC_PLUS_1 0x14 +#define MOVE_EFFECT_EVS_PLUS_1 0x15 +#define MOVE_EFFECT_ATK_MINUS_1 0x16 +#define MOVE_EFFECT_DEF_MINUS_1 0x17 +#define MOVE_EFFECT_SPD_MINUS_1 0x18 +#define MOVE_EFFECT_SP_ATK_MINUS_1 0x19 +#define MOVE_EFFECT_SP_DEF_MINUS_1 0x1A +#define MOVE_EFFECT_ACC_MINUS_1 0x1B +#define MOVE_EFFECT_EVS_MINUS_1 0x1C +#define MOVE_EFFECT_RECHARGE 0x1D +#define MOVE_EFFECT_RAGE 0x1E +#define MOVE_EFFECT_STEAL_ITEM 0x1F +#define MOVE_EFFECT_PREVENT_ESCAPE 0x20 +#define MOVE_EFFECT_NIGHTMARE 0x21 +#define MOVE_EFFECT_ALL_STATS_UP 0x22 +#define MOVE_EFFECT_RAPIDSPIN 0x23 +#define MOVE_EFFECT_REMOVE_PARALYSIS 0x24 +#define MOVE_EFFECT_ATK_DEF_DOWN 0x25 +#define MOVE_EFFECT_RECOIL_33_PARALYSIS 0x26 +#define MOVE_EFFECT_ATK_PLUS_2 0x27 +#define MOVE_EFFECT_DEF_PLUS_2 0x28 +#define MOVE_EFFECT_SPD_PLUS_2 0x29 +#define MOVE_EFFECT_SP_ATK_PLUS_2 0x2A +#define MOVE_EFFECT_SP_DEF_PLUS_2 0x2B +#define MOVE_EFFECT_ACC_PLUS_2 0x2C +#define MOVE_EFFECT_EVS_PLUS_2 0x2D +#define MOVE_EFFECT_ATK_MINUS_2 0x2E +#define MOVE_EFFECT_DEF_MINUS_2 0x2F +#define MOVE_EFFECT_SPD_MINUS_2 0x30 +#define MOVE_EFFECT_SP_ATK_MINUS_2 0x31 +#define MOVE_EFFECT_SP_DEF_MINUS_2 0x32 +#define MOVE_EFFECT_ACC_MINUS_2 0x33 +#define MOVE_EFFECT_EVS_MINUS_2 0x34 +#define MOVE_EFFECT_THRASH 0x35 +#define MOVE_EFFECT_KNOCK_OFF 0x36 +#define MOVE_EFFECT_NOTHING_37 0x37 +#define MOVE_EFFECT_NOTHING_38 0x38 +#define MOVE_EFFECT_NOTHING_39 0x39 +#define MOVE_EFFECT_NOTHING_3A 0x3A +#define MOVE_EFFECT_SP_ATK_TWO_DOWN 0x3B +#define MOVE_EFFECT_NOTHING_3C 0x3C +#define MOVE_EFFECT_NOTHING_3D 0x3D +#define MOVE_EFFECT_NOTHING_3E 0x3E +#define MOVE_EFFECT_NOTHING_3F 0x3F +#define MOVE_EFFECT_AFFECTS_USER 0x40 +#define MOVE_EFFECT_CERTAIN 0x80 + +#endif // GUARD_CONSTANTS_BATTLE_H diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index 92eac11fa..7d2c70307 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -1,5 +1,5 @@ -#ifndef GUARD_BATTLE_AI_H -#define GUARD_BATTLE_AI_H +#ifndef GUARD_CONSTANTS_BATTLE_AI_H +#define GUARD_CONSTANTS_BATTLE_AI_H // battlers #define AI_TARGET 0 @@ -49,4 +49,4 @@ #define AI_SCRIPT_SAFARI (1 << 30) #define AI_SCRIPT_FIRST_BATTLE (1 << 31) -#endif // GUARD_BATTLE_AI_H +#endif // GUARD_CONSTANTS_BATTLE_AI_H diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h new file mode 100644 index 000000000..db9ed59bd --- /dev/null +++ b/include/constants/battle_string_ids.h @@ -0,0 +1,386 @@ +#ifndef GUARD_CONSTANTS_BATTLE_STRING_IDS_H +#define GUARD_CONSTANTS_BATTLE_STRING_IDS_H + +#define BATTLESTRINGS_COUNT 369 + +#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved + +#define STRINGID_INTROMSG 0 +#define STRINGID_INTROSENDOUT 1 +#define STRINGID_RETURNMON 2 +#define STRINGID_SWITCHINMON 3 +#define STRINGID_USEDMOVE 4 +#define STRINGID_BATTLEEND 5 + +// todo: make some of those names less vague: attacker/target vs pkmn, etc. +#define STRINGID_TRAINER1LOSETEXT 12 +#define STRINGID_PKMNGAINEDEXP 13 +#define STRINGID_PKMNGREWTOLV 14 +#define STRINGID_PKMNLEARNEDMOVE 15 +#define STRINGID_TRYTOLEARNMOVE1 16 +#define STRINGID_TRYTOLEARNMOVE2 17 +#define STRINGID_TRYTOLEARNMOVE3 18 +#define STRINGID_PKMNFORGOTMOVE 19 +#define STRINGID_STOPLEARNINGMOVE 20 +#define STRINGID_DIDNOTLEARNMOVE 21 +#define STRINGID_PKMNLEARNEDMOVE2 22 +#define STRINGID_ATTACKMISSED 23 +#define STRINGID_PKMNPROTECTEDITSELF 24 +#define STRINGID_STATSWONTINCREASE2 25 +#define STRINGID_AVOIDEDDAMAGE 26 +#define STRINGID_ITDOESNTAFFECT 27 +#define STRINGID_ATTACKERFAINTED 28 +#define STRINGID_TARGETFAINTED 29 +#define STRINGID_PLAYERGOTMONEY 30 +#define STRINGID_PLAYERWHITEOUT 31 +#define STRINGID_PLAYERWHITEOUT2 32 +#define STRINGID_PREVENTSESCAPE 33 +#define STRINGID_HITXTIMES 34 +#define STRINGID_PKMNFELLASLEEP 35 +#define STRINGID_PKMNMADESLEEP 36 +#define STRINGID_PKMNALREADYASLEEP 37 +#define STRINGID_PKMNALREADYASLEEP2 38 +#define STRINGID_PKMNWASNTAFFECTED 39 +#define STRINGID_PKMNWASPOISONED 40 +#define STRINGID_PKMNPOISONEDBY 41 +#define STRINGID_PKMNHURTBYPOISON 42 +#define STRINGID_PKMNALREADYPOISONED 43 +#define STRINGID_PKMNBADLYPOISONED 44 +#define STRINGID_PKMNENERGYDRAINED 45 +#define STRINGID_PKMNWASBURNED 46 +#define STRINGID_PKMNBURNEDBY 47 +#define STRINGID_PKMNHURTBYBURN 48 +#define STRINGID_PKMNWASFROZEN 49 +#define STRINGID_PKMNFROZENBY 50 +#define STRINGID_PKMNISFROZEN 51 +#define STRINGID_PKMNWASDEFROSTED 52 +#define STRINGID_PKMNWASDEFROSTED2 53 +#define STRINGID_PKMNWASDEFROSTEDBY 54 +#define STRINGID_PKMNWASPARALYZED 55 +#define STRINGID_PKMNWASPARALYZEDBY 56 +#define STRINGID_PKMNISPARALYZED 57 +#define STRINGID_PKMNISALREADYPARALYZED 58 +#define STRINGID_PKMNHEALEDPARALYSIS 59 +#define STRINGID_PKMNDREAMEATEN 60 +#define STRINGID_STATSWONTINCREASE 61 +#define STRINGID_STATSWONTDECREASE 62 +#define STRINGID_TEAMSTOPPEDWORKING 63 +#define STRINGID_FOESTOPPEDWORKING 64 +#define STRINGID_PKMNISCONFUSED 65 +#define STRINGID_PKMNHEALEDCONFUSION 66 +#define STRINGID_PKMNWASCONFUSED 67 +#define STRINGID_PKMNALREADYCONFUSED 68 +#define STRINGID_PKMNFELLINLOVE 69 +#define STRINGID_PKMNINLOVE 70 +#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 +#define STRINGID_PKMNBLOWNAWAY 72 +#define STRINGID_PKMNCHANGEDTYPE 73 +#define STRINGID_PKMNFLINCHED 74 +#define STRINGID_PKMNREGAINEDHEALTH 75 +#define STRINGID_PKMNHPFULL 76 +#define STRINGID_PKMNRAISEDSPDEF 77 +#define STRINGID_PKMNRAISEDDEF 78 +#define STRINGID_PKMNCOVEREDBYVEIL 79 +#define STRINGID_PKMNUSEDSAFEGUARD 80 +#define STRINGID_PKMNSAFEGUARDEXPIRED 81 +#define STRINGID_PKMNWENTTOSLEEP 82 +#define STRINGID_PKMNSLEPTHEALTHY 83 +#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 +#define STRINGID_PKMNTOOKSUNLIGHT 85 +#define STRINGID_PKMNLOWEREDHEAD 86 +#define STRINGID_PKMNISGLOWING 87 +#define STRINGID_PKMNFLEWHIGH 88 +#define STRINGID_PKMNDUGHOLE 89 +#define STRINGID_PKMNSQUEEZEDBYBIND 90 +#define STRINGID_PKMNTRAPPEDINVORTEX 91 +#define STRINGID_PKMNWRAPPEDBY 92 +#define STRINGID_PKMNCLAMPED 93 +#define STRINGID_PKMNHURTBY 94 +#define STRINGID_PKMNFREEDFROM 95 +#define STRINGID_PKMNCRASHED 96 +#define STRINGID_PKMNSHROUDEDINMIST 97 +#define STRINGID_PKMNPROTECTEDBYMIST 98 +#define STRINGID_PKMNGETTINGPUMPED 99 +#define STRINGID_PKMNHITWITHRECOIL 100 +#define STRINGID_PKMNPROTECTEDITSELF2 101 +#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 +#define STRINGID_PKMNPELTEDBYHAIL 103 +#define STRINGID_PKMNSEEDED 104 +#define STRINGID_PKMNEVADEDATTACK 105 +#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 +#define STRINGID_PKMNFASTASLEEP 107 +#define STRINGID_PKMNWOKEUP 108 +#define STRINGID_PKMNUPROARKEPTAWAKE 109 +#define STRINGID_PKMNWOKEUPINUPROAR 110 +#define STRINGID_PKMNCAUSEDUPROAR 111 +#define STRINGID_PKMNMAKINGUPROAR 112 +#define STRINGID_PKMNCALMEDDOWN 113 +#define STRINGID_PKMNCANTSLEEPINUPROAR 114 +#define STRINGID_PKMNSTOCKPILED 115 +#define STRINGID_PKMNCANTSTOCKPILE 116 +#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 +#define STRINGID_UPROARKEPTPKMNAWAKE 118 +#define STRINGID_PKMNSTAYEDAWAKEUSING 119 +#define STRINGID_PKMNSTORINGENERGY 120 +#define STRINGID_PKMNUNLEASHEDENERGY 121 +#define STRINGID_PKMNFATIGUECONFUSION 122 +#define STRINGID_PKMNPICKEDUPITEM 123 +#define STRINGID_PKMNUNAFFECTED 124 +#define STRINGID_PKMNTRANSFORMEDINTO 125 +#define STRINGID_PKMNMADESUBSTITUTE 126 +#define STRINGID_PKMNHASSUBSTITUTE 127 +#define STRINGID_SUBSTITUTEDAMAGED 128 +#define STRINGID_PKMNSUBSTITUTEFADED 129 +#define STRINGID_PKMNMUSTRECHARGE 130 +#define STRINGID_PKMNRAGEBUILDING 131 +#define STRINGID_PKMNMOVEWASDISABLED 132 +#define STRINGID_PKMNMOVEISDISABLED 133 +#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 +#define STRINGID_PKMNGOTENCORE 135 +#define STRINGID_PKMNENCOREENDED 136 +#define STRINGID_PKMNTOOKAIM 137 +#define STRINGID_PKMNSKETCHEDMOVE 138 +#define STRINGID_PKMNTRYINGTOTAKEFOE 139 +#define STRINGID_PKMNTOOKFOE 140 +#define STRINGID_PKMNREDUCEDPP 141 +#define STRINGID_PKMNSTOLEITEM 142 +#define STRINGID_TARGETCANTESCAPENOW 143 +#define STRINGID_PKMNFELLINTONIGHTMARE 144 +#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 +#define STRINGID_PKMNLAIDCURSE 146 +#define STRINGID_PKMNAFFLICTEDBYCURSE 147 +#define STRINGID_SPIKESSCATTERED 148 +#define STRINGID_PKMNHURTBYSPIKES 149 +#define STRINGID_PKMNIDENTIFIED 150 +#define STRINGID_PKMNPERISHCOUNTFELL 151 +#define STRINGID_PKMNBRACEDITSELF 152 +#define STRINGID_PKMNENDUREDHIT 153 +#define STRINGID_MAGNITUDESTRENGTH 154 +#define STRINGID_PKMNCUTHPMAXEDATTACK 155 +#define STRINGID_PKMNCOPIEDSTATCHANGES 156 +#define STRINGID_PKMNGOTFREE 157 +#define STRINGID_PKMNSHEDLEECHSEED 158 +#define STRINGID_PKMNBLEWAWAYSPIKES 159 +#define STRINGID_PKMNFLEDFROMBATTLE 160 +#define STRINGID_PKMNFORESAWATTACK 161 +#define STRINGID_PKMNTOOKATTACK 162 +#define STRINGID_PKMNATTACK 163 +#define STRINGID_PKMNCENTERATTENTION 164 +#define STRINGID_PKMNCHARGINGPOWER 165 +#define STRINGID_NATUREPOWERTURNEDINTO 166 +#define STRINGID_PKMNSTATUSNORMAL 167 +#define STRINGID_PKMNHASNOMOVESLEFT 168 +#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 +#define STRINGID_PKMNCANTUSEMOVETORMENT 170 +#define STRINGID_PKMNTIGHTENINGFOCUS 171 +#define STRINGID_PKMNFELLFORTAUNT 172 +#define STRINGID_PKMNCANTUSEMOVETAUNT 173 +#define STRINGID_PKMNREADYTOHELP 174 +#define STRINGID_PKMNSWITCHEDITEMS 175 +#define STRINGID_PKMNCOPIEDFOE 176 +#define STRINGID_PKMNMADEWISH 177 +#define STRINGID_PKMNWISHCAMETRUE 178 +#define STRINGID_PKMNPLANTEDROOTS 179 +#define STRINGID_PKMNABSORBEDNUTRIENTS 180 +#define STRINGID_PKMNANCHOREDITSELF 181 +#define STRINGID_PKMNWASMADEDROWSY 182 +#define STRINGID_PKMNKNOCKEDOFF 183 +#define STRINGID_PKMNSWAPPEDABILITIES 184 +#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 +#define STRINGID_PKMNCANTUSEMOVESEALED 186 +#define STRINGID_PKMNWANTSGRUDGE 187 +#define STRINGID_PKMNLOSTPPGRUDGE 188 +#define STRINGID_PKMNSHROUDEDITSELF 189 +#define STRINGID_PKMNMOVEBOUNCED 190 +#define STRINGID_PKMNWAITSFORTARGET 191 +#define STRINGID_PKMNSNATCHEDMOVE 192 +#define STRINGID_PKMNMADEITRAIN 193 +#define STRINGID_PKMNRAISEDSPEED 194 +#define STRINGID_PKMNPROTECTEDBY 195 +#define STRINGID_PKMNPREVENTSUSAGE 196 +#define STRINGID_PKMNRESTOREDHPUSING 197 +#define STRINGID_PKMNCHANGEDTYPEWITH 198 +#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 +#define STRINGID_PKMNPREVENTSROMANCEWITH 200 +#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 +#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 +#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 +#define STRINGID_PKMNANCHORSITSELFWITH 204 +#define STRINGID_PKMNCUTSATTACKWITH 205 +#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 +#define STRINGID_PKMNHURTSWITH 207 +#define STRINGID_PKMNTRACED 208 +#define STRINGID_STATSHARPLY 209 +#define STRINGID_STATROSE 210 +#define STRINGID_STATHARSHLY 211 +#define STRINGID_STATFELL 212 +#define STRINGID_PKMNSSTATCHANGED 213 +#define STRINGID_PKMNSSTATCHANGED2 214 +#define STRINGID_PKMNSSTATCHANGED3 215 +#define STRINGID_PKMNSSTATCHANGED4 216 +#define STRINGID_CRITICALHIT 217 +#define STRINGID_ONEHITKO 218 +#define STRINGID_123POOF 219 +#define STRINGID_ANDELLIPSIS 220 +#define STRINGID_NOTVERYEFFECTIVE 221 +#define STRINGID_SUPEREFFECTIVE 222 +#define STRINGID_GOTAWAYSAFELY 223 +#define STRINGID_WILDPKMNFLED 224 +#define STRINGID_NORUNNINGFROMTRAINERS 225 +#define STRINGID_CANTESCAPE 226 +#define STRINGID_DONTLEAVEBIRCH 227 +#define STRINGID_BUTNOTHINGHAPPENED 228 +#define STRINGID_BUTITFAILED 229 +#define STRINGID_ITHURTCONFUSION 230 +#define STRINGID_MIRRORMOVEFAILED 231 +#define STRINGID_STARTEDTORAIN 232 +#define STRINGID_DOWNPOURSTARTED 233 +#define STRINGID_RAINCONTINUES 234 +#define STRINGID_DOWNPOURCONTINUES 235 +#define STRINGID_RAINSTOPPED 236 +#define STRINGID_SANDSTORMBREWED 237 +#define STRINGID_SANDSTORMRAGES 238 +#define STRINGID_SANDSTORMSUBSIDED 239 +#define STRINGID_SUNLIGHTGOTBRIGHT 240 +#define STRINGID_SUNLIGHTSTRONG 241 +#define STRINGID_SUNLIGHTFADED 242 +#define STRINGID_STARTEDHAIL 243 +#define STRINGID_HAILCONTINUES 244 +#define STRINGID_HAILSTOPPED 245 +#define STRINGID_FAILEDTOSPITUP 246 +#define STRINGID_FAILEDTOSWALLOW 247 +#define STRINGID_WINDBECAMEHEATWAVE 248 +#define STRINGID_STATCHANGESGONE 249 +#define STRINGID_COINSSCATTERED 250 +#define STRINGID_TOOWEAKFORSUBSTITUTE 251 +#define STRINGID_SHAREDPAIN 252 +#define STRINGID_BELLCHIMED 253 +#define STRINGID_FAINTINTHREE 254 +#define STRINGID_NOPPLEFT 255 +#define STRINGID_BUTNOPPLEFT 256 +#define STRINGID_PLAYERUSEDITEM 257 +#define STRINGID_WALLYUSEDITEM 258 +#define STRINGID_TRAINERBLOCKEDBALL 259 +#define STRINGID_DONTBEATHIEF 260 +#define STRINGID_ITDODGEDBALL 261 +#define STRINGID_YOUMISSEDPKMN 262 +#define STRINGID_PKMNBROKEFREE 263 +#define STRINGID_ITAPPEAREDCAUGHT 264 +#define STRINGID_AARGHALMOSTHADIT 265 +#define STRINGID_SHOOTSOCLOSE 266 +#define STRINGID_GOTCHAPKMNCAUGHT 267 +#define STRINGID_GOTCHAPKMNCAUGHT2 268 +#define STRINGID_GIVENICKNAMECAPTURED 269 +#define STRINGID_PKMNSENTTOPC 270 +#define STRINGID_PKMNDATAADDEDTODEX 271 +#define STRINGID_ITISRAINING 272 +#define STRINGID_SANDSTORMISRAGING 273 +#define STRINGID_CANTESCAPE2 274 +#define STRINGID_PKMNIGNORESASLEEP 275 +#define STRINGID_PKMNIGNOREDORDERS 276 +#define STRINGID_PKMNBEGANTONAP 277 +#define STRINGID_PKMNLOAFING 278 +#define STRINGID_PKMNWONTOBEY 279 +#define STRINGID_PKMNTURNEDAWAY 280 +#define STRINGID_PKMNPRETENDNOTNOTICE 281 +#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 +#define STRINGID_CREPTCLOSER 283 +#define STRINGID_CANTGETCLOSER 284 +#define STRINGID_PKMNWATCHINGCAREFULLY 285 +#define STRINGID_PKMNCURIOUSABOUTX 286 +#define STRINGID_PKMNENTHRALLEDBYX 287 +#define STRINGID_PKMNIGNOREDX 288 +#define STRINGID_THREWPOKEBLOCKATPKMN 289 +#define STRINGID_OUTOFSAFARIBALLS 290 +#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 +#define STRINGID_PKMNSITEMCUREDPOISON 292 +#define STRINGID_PKMNSITEMHEALEDBURN 293 +#define STRINGID_PKMNSITEMDEFROSTEDIT 294 +#define STRINGID_PKMNSITEMWOKEIT 295 +#define STRINGID_PKMNSITEMSNAPPEDOUT 296 +#define STRINGID_PKMNSITEMCUREDPROBLEM 297 +#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 +#define STRINGID_PKMNSITEMRESTOREDPP 299 +#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 +#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 +#define STRINGID_ITEMALLOWSONLYYMOVE 302 +#define STRINGID_PKMNHUNGONWITHX 303 +#define STRINGID_EMPTYSTRING3 304 +#define STRINGID_PKMNSXPREVENTSBURNS 305 +#define STRINGID_PKMNSXBLOCKSY 306 +#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 +#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 +#define STRINGID_PKMNSXPREVENTSYLOSS 309 +#define STRINGID_PKMNSXINFATUATEDY 310 +#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 +#define STRINGID_PKMNSXCUREDYPROBLEM 312 +#define STRINGID_ITSUCKEDLIQUIDOOZE 313 +#define STRINGID_PKMNTRANSFORMED 314 +#define STRINGID_ELECTRICITYWEAKENED 315 +#define STRINGID_FIREWEAKENED 316 +#define STRINGID_PKMNHIDUNDERWATER 317 +#define STRINGID_PKMNSPRANGUP 318 +#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 +#define STRINGID_XFOUNDONEY 320 +#define STRINGID_PLAYERDEFEATEDTRAINER1 321 +#define STRINGID_SOOTHINGAROMA 322 +#define STRINGID_ITEMSCANTBEUSEDNOW 323 +#define STRINGID_FORXCOMMAYZ 324 +#define STRINGID_USINGXTHEYOFZN 325 +#define STRINGID_PKMNUSEDXTOGETPUMPED 326 +#define STRINGID_PKMNSXMADEYUSELESS 327 +#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 +#define STRINGID_EMPTYSTRING4 329 +#define STRINGID_ABOOSTED 330 +#define STRINGID_PKMNSXINTENSIFIEDSUN 331 +#define STRINGID_PKMNMAKESGROUNDMISS 332 +#define STRINGID_YOUTHROWABALLNOWRIGHT 333 +#define STRINGID_PKMNSXTOOKATTACK 334 +#define STRINGID_PKMNCHOSEXASDESTINY 335 +#define STRINGID_PKMNLOSTFOCUS 336 +#define STRINGID_USENEXTPKMN 337 +#define STRINGID_PKMNFLEDUSINGITS 338 +#define STRINGID_PKMNFLEDUSING 339 +#define STRINGID_PKMNWASDRAGGEDOUT 340 +#define STRINGID_PREVENTEDFROMWORKING 341 +#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 +#define STRINGID_TRAINER1USEDITEM 343 +#define STRINGID_BOXISFULL 344 +#define STRINGID_PKMNAVOIDEDATTACK 345 +#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 +#define STRINGID_PKMNSXPREVENTSFLINCHING 347 +#define STRINGID_PKMNALREADYHASBURN 348 +#define STRINGID_STATSWONTDECREASE2 349 +#define STRINGID_PKMNSXBLOCKSY2 350 +#define STRINGID_PKMNSXWOREOFF 351 +#define STRINGID_PKMNRAISEDDEFALITTLE 352 +#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 +#define STRINGID_THEWALLSHATTERED 354 +#define STRINGID_PKMNSXPREVENTSYSZ 355 +#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 +#define STRINGID_ATTACKERCANTESCAPE 357 +#define STRINGID_PKMNOBTAINEDX 358 +#define STRINGID_PKMNOBTAINEDX2 359 +#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 +#define STRINGID_BUTNOEFFECT 361 +#define STRINGID_PKMNSXHADNOEFFECTONY 362 +#define STRINGID_TWOENEMIESDEFEATED 363 +#define STRINGID_TRAINER2LOSETEXT 364 +#define STRINGID_PKMNINCAPABLEOFPOWER 365 +#define STRINGID_GLINTAPPEARSINEYE 366 +#define STRINGID_PKMNGETTINGINTOPOSITION 367 +#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368 +#define STRINGID_PKMNEAGERFORMORE 369 +#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370 +#define STRINGID_LOSTTOOPPONENTBYREFEREE 371 +#define STRINGID_TIEDOPPONENTBYREFEREE 372 +#define STRINGID_QUESTIONFORFEITMATCH 373 +#define STRINGID_FORFEITEDMATCH 374 +#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375 +#define STRINGID_PKMNTRANSFERREDLANETTESPC 376 +#define STRINGID_PKMNBOXSOMEONESPCFULL 377 +#define STRINGID_PKMNBOXLANETTESPCFULL 378 +#define STRINGID_TRAINER1WINTEXT 379 +#define STRINGID_TRAINER2WINTEXT 380 + +#endif // GUARD_CONSTANTS_BATTLE_STRING_IDS_H -- cgit v1.2.3 From 96290f4ee3864afdd9946541706102ecf6c1c009 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 8 Feb 2018 11:17:41 +0100 Subject: pokemon and battle constants --- include/battle.h | 35 +++-------- include/battle_script_commands.h | 45 -------------- include/battle_scripts.h | 2 +- include/battle_util.h | 2 +- include/constants/battle_script_commands.h | 97 ++++++++++++++++++++++++++++++ include/constants/pokemon.h | 80 ++++++++++++++++++++++++ include/pokemon.h | 94 +---------------------------- include/recorded_battle.h | 10 +-- 8 files changed, 194 insertions(+), 171 deletions(-) create mode 100644 include/constants/battle_script_commands.h create mode 100644 include/constants/pokemon.h (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 9e755aaec..247ab5f6a 100644 --- a/include/battle.h +++ b/include/battle.h @@ -90,27 +90,6 @@ #define TYPE_FORESIGHT 0xFE #define TYPE_ENDTABLE 0xFF -#define BS_GET_TARGET 0 -#define BS_GET_ATTACKER 1 -#define BS_GET_EFFECT_BANK 2 -#define BS_GET_gBank1 3 -#define BS_GET_BANK_0 7 -#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update -#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability -#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability -#define BS_GET_SCRIPTING_BANK 10 -#define BS_GET_OPPONENT1 12 -#define BS_GET_PLAYER2 13 -#define BS_GET_OPPONENT2 14 - -// for battle script commands -#define CMP_EQUAL 0x0 -#define CMP_NOT_EQUAL 0x1 -#define CMP_GREATER_THAN 0x2 -#define CMP_LESS_THAN 0x3 -#define CMP_COMMON_BITS 0x4 -#define CMP_NO_COMMON_BITS 0x5 - #define BATTLE_BUFFER_LINK_SIZE 0x1000 struct TrainerMonNoItemDefaultMoves @@ -511,6 +490,9 @@ struct BattleStruct typeArg = gBattleMoves[move].type; \ } +#define IS_MOVE_PHYSICAL(moveType)(moveType < TYPE_MYSTERY) +#define IS_MOVE_SPECIAL(moveType)(moveType > TYPE_MYSTERY) + #define GET_STAT_BUFF_ID(n)((n & 0xF)) // first four bits 0x1, 0x2, 0x4, 0x8 #define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit @@ -678,7 +660,7 @@ extern u8 gCurrentActionFuncId; extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT]; extern u8 gBattlerSpriteIds[MAX_BATTLERS_COUNT]; extern u8 gCurrMovePos; -extern u8 gUnknown_020241E9; +extern u8 gChosenMovePos; extern u16 gCurrentMove; extern u16 gChosenMove; extern u16 gRandomMove; @@ -689,8 +671,8 @@ extern u16 gLastUsedItem; extern u8 gLastUsedAbility; extern u8 gBattlerAttacker; extern u8 gBattlerTarget; -extern u8 gBank1; -extern u8 gEffectBank; +extern u8 gBattlerFainted; +extern u8 gEffectBattler; extern u8 gStringBattler; extern u8 gAbsentBattlerFlags; extern u8 gCritMultiplier; @@ -710,7 +692,6 @@ extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; extern u8 gMoveResultFlags; extern u32 gHitMarker; -extern u8 gUnknown_02024284[MAX_BATTLERS_COUNT]; extern u8 gTakenDmgByBattler[MAX_BATTLERS_COUNT]; extern u8 gUnknown_0202428C; extern u16 gSideStatuses[2]; @@ -726,7 +707,7 @@ extern struct ProtectStruct gProtectStructs[MAX_BATTLERS_COUNT]; extern struct SpecialStatus gSpecialStatuses[MAX_BATTLERS_COUNT]; extern u16 gBattleWeather; extern struct WishFutureKnock gWishFutureKnock; -extern u16 gUnknown_020243FC; +extern u16 gIntroSlideFlags; extern u8 gSentPokesToOpponent[2]; extern u16 gDynamicBasePower; extern u16 gExpShareExp; @@ -738,7 +719,7 @@ extern u8 *gLinkBattleRecvBuffer; extern struct BattleResources *gBattleResources; extern u8 gActionSelectionCursor[MAX_BATTLERS_COUNT]; extern u8 gMoveSelectionCursor[MAX_BATTLERS_COUNT]; -extern u8 gUnknown_020244B4[MAX_BATTLERS_COUNT]; +extern u8 gBattlerStatusSummaryTaskId[MAX_BATTLERS_COUNT]; extern u8 gBattlerInMenuId; extern bool8 gDoingBattleAnim; extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT]; diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index 26659ff20..6c84d1f0f 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -1,51 +1,6 @@ #ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H #define GUARD_BATTLE_SCRIPT_COMMANDS_H -#define NO_ACC_CALC 0xFFFE -#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF -#define ACC_CURR_MOVE 0 - -#define CMP_EQUAL 0x0 -#define CMP_NOT_EQUAL 0x1 -#define CMP_GREATER_THAN 0x2 -#define CMP_LESS_THAN 0x3 -#define CMP_COMMON_BITS 0x4 -#define CMP_NO_COMMON_BITS 0x5 - -#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update -#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability -#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability - -#define ATK48_STAT_NEGATIVE 0x1 -#define ATK48_STAT_BY_TWO 0x2 -#define ATK48_BIT_x4 0x4 -#define ATK48_LOWER_FAIL_CHECK 0x8 - -#define ATK4F_DONT_CHECK_STATUSES 0x80 - -#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 -#define VARIOUS_SET_MAGIC_COAT_TARGET 1 -#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 -#define VARIOUS_GET_MOVE_TARGET 3 -#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 -#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 -#define VARIOUS_EMIT_YESNOBOX 13 -#define VARIOUS_WAIT_CRY 18 -#define VARIOUS_RETURN_OPPONENT_MON1 19 -#define VARIOUS_RETURN_OPPONENT_MON2 20 -#define VARIOUS_SET_TELEPORT_OUTCOME 25 -#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 - -#define ATK80_DMG_CHANGE_SIGN 0 -#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1 -#define ATK80_DMG_DOUBLED 2 - -#define STAT_CHANGE_BS_PTR 0x1 -#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 - -#define STAT_CHANGE_WORKED 0 -#define STAT_CHANGE_DIDNT_WORK 1 - #define WINDOW_CLEAR 0x1 #define WINDOW_x80 0x80 diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 2e31a37c5..ffd999660 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -82,7 +82,7 @@ extern const u8 BattleScript_SpikesOnAttacker[]; extern const u8 BattleScript_82DAE7A[]; extern const u8 BattleScript_SpikesOnTarget[]; extern const u8 BattleScript_82DAEB1[]; -extern const u8 BattleScript_SpikesOngBank1[]; +extern const u8 BattleScript_SpikesOnFaintedBattler[]; extern const u8 BattleScript_82DAEE8[]; extern const u8 BattleScript_82DAEFE[]; extern const u8 BattleScript_PerishSongTakesLife[]; diff --git a/include/battle_util.h b/include/battle_util.h index 56628c11d..d992faa47 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -44,7 +44,7 @@ #define BS_GET_PLAYER2 13 #define BS_GET_OPPONENT2 14 -u8 GetBattleBank(u8 caseId); +u8 GetBattlerForBattleScript(u8 caseId); void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move); void PressurePPLoseOnUsingPerishSong(u8 bankAtk); void PressurePPLoseOnUsingImprision(u8 bankAtk); diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h new file mode 100644 index 000000000..0390f17f4 --- /dev/null +++ b/include/constants/battle_script_commands.h @@ -0,0 +1,97 @@ +#ifndef GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H +#define GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H + +// Battle Scripting and BattleCommunication addresses +#define sPAINSPLIT_HP gBattleScripting +#define sBIDE_DMG gBattleScripting + 4 +#define sMULTIHIT_STRING gBattleScripting + 8 +#define sDMG_MULTIPLIER gBattleScripting + 0xE +#define sTWOTURN_STRINGID gBattleScripting + 0xF +#define sB_ANIM_ARG1 gBattleScripting + 0x10 +#define sB_ANIM_ARG2 gBattleScripting + 0x11 +#define sTRIPLE_KICK_POWER gBattleScripting + 0x12 +#define sMOVEEND_STATE gBattleScripting + 0x14 +#define sBANK_WITH_ABILITY gBattleScripting + 0x15 +#define sMULTIHIT_EFFECT gBattleScripting + 0x16 +#define sBANK gBattleScripting + 0x17 +#define sB_ANIM_TURN gBattleScripting + 0x18 +#define sB_ANIM_TARGETS_HIT gBattleScripting + 0x19 +#define sSTATCHANGER gBattleScripting + 0x1A +#define sFIELD_1B gBattleScripting + 0x1B +#define sGIVEEXP_STATE gBattleScripting + 0x1C +#define sBATTLE_STYLE gBattleScripting + 0x1D +#define sLVLBOX_STATE gBattleScripting + 0x1E +#define sLEARNMOVE_STATE gBattleScripting + 0x1F +#define sFIELD_20 gBattleScripting + 0x20 +#define sRESHOW_MAIN_STATE gBattleScripting + 0x21 +#define sRESHOW_HELPER_STATE gBattleScripting + 0x22 +#define sFIELD_23 gBattleScripting + 0x23 +#define sFIELD_24 gBattleScripting + 0x24 +#define sMULTIPLAYER_ID gBattleScripting + 0x25 + +#define cEFFECT_CHOOSER gBattleCommunication + 3 +#define cMULTISTRING_CHOOSER gBattleCommunication + 5 + +// Battle Script defines for getting the wanted battler +#define BS_TARGET 0 +#define BS_ATTACKER 1 +#define BS_EFFECT_BATTLER 2 +#define BS_FAINTED 3 +#define BS_BANK_0 7 +#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update +#define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability +#define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability +#define BS_SCRIPTING 10 +#define BS_PLAYER1 11 +#define BS_OPPONENT1 12 +#define BS_PLAYER2 13 +#define BS_OPPONENT2 14 + +// atk 01, accuracy calc +#define NO_ACC_CALC 0xFFFE +#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF +#define ACC_CURR_MOVE 0 + +// compare operands +#define CMP_EQUAL 0x0 +#define CMP_NOT_EQUAL 0x1 +#define CMP_GREATER_THAN 0x2 +#define CMP_LESS_THAN 0x3 +#define CMP_COMMON_BITS 0x4 +#define CMP_NO_COMMON_BITS 0x5 + +// atk76, various +#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 +#define VARIOUS_SET_MAGIC_COAT_TARGET 1 +#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 +#define VARIOUS_GET_MOVE_TARGET 3 +#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 +#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 +#define VARIOUS_EMIT_YESNOBOX 13 +#define VARIOUS_WAIT_CRY 18 +#define VARIOUS_RETURN_OPPONENT_MON1 19 +#define VARIOUS_RETURN_OPPONENT_MON2 20 +#define VARIOUS_SET_TELEPORT_OUTCOME 25 +#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 + +// atk80, dmg manipulation +#define ATK80_DMG_CHANGE_SIGN 0 +#define ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP 1 +#define ATK80_DMG_DOUBLED 2 + +// atk4F, a flag used for the jumpifcantswitch command +#define ATK4F_DONT_CHECK_STATUSES 0x80 + +// statchange defines +#define STAT_CHANGE_BS_PTR 0x1 +#define STAT_CHANGE_NOT_PROTECT_AFFECTED 0x20 +#define STAT_CHANGE_WORKED 0 +#define STAT_CHANGE_DIDNT_WORK 1 + +// atk48 +#define ATK48_STAT_NEGATIVE 0x1 +#define ATK48_STAT_BY_TWO 0x2 +#define ATK48_BIT_x4 0x4 +#define ATK48_LOWER_FAIL_CHECK 0x8 + +#endif // GUARD_CONSTANTS_BATTLE_SCRIPT_COMMANDS_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h new file mode 100644 index 000000000..78c1583b4 --- /dev/null +++ b/include/constants/pokemon.h @@ -0,0 +1,80 @@ +#ifndef GUARD_CONSTANTS_POKEMON_H +#define GUARD_CONSTANTS_POKEMON_H + +// Pokemon types +#define TYPE_NORMAL 0x00 +#define TYPE_FIGHTING 0x01 +#define TYPE_FLYING 0x02 +#define TYPE_POISON 0x03 +#define TYPE_GROUND 0x04 +#define TYPE_ROCK 0x05 +#define TYPE_BUG 0x06 +#define TYPE_GHOST 0x07 +#define TYPE_STEEL 0x08 +#define TYPE_MYSTERY 0x09 +#define TYPE_FIRE 0x0a +#define TYPE_WATER 0x0b +#define TYPE_GRASS 0x0c +#define TYPE_ELECTRIC 0x0d +#define TYPE_PSYCHIC 0x0e +#define TYPE_ICE 0x0f +#define TYPE_DRAGON 0x10 +#define TYPE_DARK 0x11 +#define NUMBER_OF_MON_TYPES 0x12 + +// Pokemon egg groups +#define EGG_GROUP_NONE 0 +#define EGG_GROUP_MONSTER 1 +#define EGG_GROUP_WATER_1 2 +#define EGG_GROUP_BUG 3 +#define EGG_GROUP_FLYING 4 +#define EGG_GROUP_FIELD 5 +#define EGG_GROUP_FAIRY 6 +#define EGG_GROUP_GRASS 7 +#define EGG_GROUP_HUMAN_LIKE 8 +#define EGG_GROUP_WATER_3 9 +#define EGG_GROUP_MINERAL 10 +#define EGG_GROUP_AMORPHOUS 11 +#define EGG_GROUP_WATER_2 12 +#define EGG_GROUP_DITTO 13 +#define EGG_GROUP_DRAGON 14 +#define EGG_GROUP_UNDISCOVERED 15 + +// Pokemon natures +#define NATURE_HARDY 0 +#define NATURE_LONELY 1 +#define NATURE_BRAVE 2 +#define NATURE_ADAMANT 3 +#define NATURE_NAUGHTY 4 +#define NATURE_BOLD 5 +#define NATURE_DOCILE 6 +#define NATURE_RELAXED 7 +#define NATURE_IMPISH 8 +#define NATURE_LAX 9 +#define NATURE_TIMID 10 +#define NATURE_HASTY 11 +#define NATURE_SERIOUS 12 +#define NATURE_JOLLY 13 +#define NATURE_NAIVE 14 +#define NATURE_MODEST 15 +#define NATURE_MILD 16 +#define NATURE_QUIET 17 +#define NATURE_BASHFUL 18 +#define NATURE_RASH 19 +#define NATURE_CALM 20 +#define NATURE_GENTLE 21 +#define NATURE_SASSY 22 +#define NATURE_CAREFUL 23 +#define NATURE_QUIRKY 24 + +// Pokemon Stats +#define STAT_HP 0 +#define STAT_ATK 1 +#define STAT_DEF 2 +#define STAT_SPEED 3 +#define STAT_SPATK 4 +#define STAT_SPDEF 5 +#define STAT_ACC 6 // only in battles +#define STAT_EVASION 7 // only in battles + +#endif // GUARD_CONSTANTS_POKEMON_H diff --git a/include/pokemon.h b/include/pokemon.h index f5d1683a2..1758e7b84 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H +#include "constants/pokemon.h" + #define MON_DATA_PERSONALITY 0 #define MON_DATA_OT_ID 1 #define MON_DATA_NICKNAME 2 @@ -107,81 +109,11 @@ #define MON_FEMALE 0xFE #define MON_GENDERLESS 0xFF -#define TYPE_NORMAL 0x00 -#define TYPE_FIGHTING 0x01 -#define TYPE_FLYING 0x02 -#define TYPE_POISON 0x03 -#define TYPE_GROUND 0x04 -#define TYPE_ROCK 0x05 -#define TYPE_BUG 0x06 -#define TYPE_GHOST 0x07 -#define TYPE_STEEL 0x08 -#define TYPE_MYSTERY 0x09 -#define TYPE_FIRE 0x0a -#define TYPE_WATER 0x0b -#define TYPE_GRASS 0x0c -#define TYPE_ELECTRIC 0x0d -#define TYPE_PSYCHIC 0x0e -#define TYPE_ICE 0x0f -#define TYPE_DRAGON 0x10 -#define TYPE_DARK 0x11 - -#define NUMBER_OF_MON_TYPES 0x12 - #define MAX_TOTAL_EVS 510 #define NUM_STATS 6 #define UNOWN_FORM_COUNT 28 #define MAX_MON_LEVEL 100 -enum -{ - EGG_GROUP_NONE, - EGG_GROUP_MONSTER, - EGG_GROUP_WATER_1, - EGG_GROUP_BUG, - EGG_GROUP_FLYING, - EGG_GROUP_FIELD, - EGG_GROUP_FAIRY, - EGG_GROUP_GRASS, - EGG_GROUP_HUMAN_LIKE, - EGG_GROUP_WATER_3, - EGG_GROUP_MINERAL, - EGG_GROUP_AMORPHOUS, - EGG_GROUP_WATER_2, - EGG_GROUP_DITTO, - EGG_GROUP_DRAGON, - EGG_GROUP_UNDISCOVERED -}; - -enum -{ - NATURE_HARDY, - NATURE_LONELY, - NATURE_BRAVE, - NATURE_ADAMANT, - NATURE_NAUGHTY, - NATURE_BOLD, - NATURE_DOCILE, - NATURE_RELAXED, - NATURE_IMPISH, - NATURE_LAX, - NATURE_TIMID, - NATURE_HASTY, - NATURE_SERIOUS, - NATURE_JOLLY, - NATURE_NAIVE, - NATURE_MODEST, - NATURE_MILD, - NATURE_QUIET, - NATURE_BASHFUL, - NATURE_RASH, - NATURE_CALM, - NATURE_GENTLE, - NATURE_SASSY, - NATURE_CAREFUL, - NATURE_QUIRKY, -}; - struct PokemonSubstruct0 { u16 species; @@ -374,28 +306,6 @@ struct BattlePokemon /*0x54*/ u32 otId; }; -enum -{ - STAT_STAGE_HP, // 0 - STAT_STAGE_ATK, // 1 - STAT_STAGE_DEF, // 2 - STAT_STAGE_SPEED, // 3 - STAT_STAGE_SPATK, // 4 - STAT_STAGE_SPDEF, // 5 - STAT_STAGE_ACC, // 6 - STAT_STAGE_EVASION, // 7 -}; - -enum -{ - STAT_HP, // 0 - STAT_ATK, // 1 - STAT_DEF, // 2 - STAT_SPD, // 3 - STAT_SPATK, // 4 - STAT_SPDEF, // 5 -}; - struct BaseStats { /* 0x00 */ u8 baseHP; diff --git a/include/recorded_battle.h b/include/recorded_battle.h index 296245a24..8b1fa258d 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -7,9 +7,9 @@ extern u8 gUnknown_0203C7B4; void sub_8184DA4(u8 arg0); void sub_8184E58(void); -void RecordedBattle_SetBattlerAction(u8 bank, u8 action); -void RecordedBattle_ClearBattlerAction(u8 bank, u8 bytesToClear); -u8 RecordedBattle_GetBattlerAction(u8 bank); +void RecordedBattle_SetBattlerAction(u8 battlerId, u8 action); +void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear); +u8 RecordedBattle_GetBattlerAction(u8 battlerId); u8 sub_81850D0(void); u8 sub_81850DC(u8 *arg0); void sub_81851A8(u8 *arg0); @@ -19,13 +19,13 @@ void PlayRecordedBattle(void (*CB2_After)(void)); u8 sub_8185EA0(void); u8 sub_8185EAC(void); void RecordedBattle_SaveParties(void); -u8 GetActiveBankLinkPlayerGender(void); +u8 GetActiveBattlerLinkPlayerGender(void); void sub_8185F84(void); void sub_8185F90(u16 arg0); u8 sub_8185FAC(void); u8 GetBattleStyleInRecordedBattle(void); u8 GetTextSpeedInRecordedBattle(void); -void RecordedBattle_CopyBankMoves(void); +void RecordedBattle_CopyBattlerMoves(void); void sub_818603C(u8 arg0); u32 GetAiScriptsInRecordedBattle(void); void sub_8186444(void); -- cgit v1.2.3 From 9df5e16343a7540a18607d13e098cf8ff8e252e3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 8 Feb 2018 12:13:29 +0100 Subject: more battle labels --- include/battle.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include') diff --git a/include/battle.h b/include/battle.h index 247ab5f6a..5225b72e3 100644 --- a/include/battle.h +++ b/include/battle.h @@ -673,7 +673,7 @@ extern u8 gBattlerAttacker; extern u8 gBattlerTarget; extern u8 gBattlerFainted; extern u8 gEffectBattler; -extern u8 gStringBattler; +extern u8 gPotentialItemEffectBattler; extern u8 gAbsentBattlerFlags; extern u8 gCritMultiplier; extern u8 gMultiHitCounter; -- cgit v1.2.3 From 56e1a52823e111ba360031338249a08162150a08 Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Thu, 8 Feb 2018 21:00:28 -0500 Subject: Fixes --- include/battle_frontier_2.h | 1 + include/field_map_obj_helpers.h | 1 + include/field_player_avatar.h | 2 ++ include/field_specials.h | 1 + include/graphics.h | 6 ++++++ include/item.h | 3 +++ include/item_menu_icons.h | 4 ++++ include/item_use.h | 1 + include/list_menu.h | 1 + include/menu.h | 5 +++++ include/menu_helpers.h | 5 +++++ include/menu_indicators.h | 2 ++ include/overworld.h | 2 ++ include/party_menu.h | 1 + include/player_pc.h | 1 + include/pokemon_summary_screen.h | 6 ++++++ include/shop.h | 1 + include/strings.h | 26 ++++++++++++++++++++++++++ include/text.h | 1 + 19 files changed, 70 insertions(+) create mode 100755 include/pokemon_summary_screen.h (limited to 'include') diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h index 801c3f3ec..638ff692e 100644 --- a/include/battle_frontier_2.h +++ b/include/battle_frontier_2.h @@ -6,5 +6,6 @@ void sub_81A895C(void); u16 sub_81A89A0(u8); void sub_81A8AF8(void); bool8 InBattlePike(void); +void sub_819FA50(void); #endif // GUARD_BATTLE_FRONTIER_2_H diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h index 031c7a8ab..ae96b67d8 100644 --- a/include/field_map_obj_helpers.h +++ b/include/field_map_obj_helpers.h @@ -27,5 +27,6 @@ void sub_8098044(u8); void UnfreezeMapObjects(void); void FreezeMapObjectsExceptOne(u8 mapObjectId); void sub_8097B78(u8, u8); +void FreezeMapObjects(void); #endif //GUARD_FIELD_MAP_OBJ_HELPERS_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index af602245b..5b9a632fa 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -31,6 +31,8 @@ u8 CheckForFieldObjectCollision(struct MapObject *a, s16 b, s16 c, u8 d, u8 e); u8 PlayerGetZCoord(void); void SetPlayerAvatarTransitionFlags(u16 a); void sub_808BCE8(void); +void sub_808B864(void); +void sub_808BCF4(void); void sub_808D074(u8); void GetXYCoordsOneStepInFrontOfPlayer(s16 *xPtr, s16 *yPtr); diff --git a/include/field_specials.h b/include/field_specials.h index dd72bdd13..c1f70a399 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -4,5 +4,6 @@ u8 GetLeadMonIndex(void); u8 sub_813B260(void); u16 get_unknown_box_id(void); +bool8 InMultiBattleRoom(void); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/graphics.h b/include/graphics.h index 39662c8c1..8ed54bcfb 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2719,4 +2719,10 @@ extern const u16 gFireRedMenuElements2_Pal[16]; extern const u16 gFireRedMenuElements3_Pal[16]; extern const u8 gFireRedMenuElements_Gfx[]; +//item menu graphics +extern const u8 gBagScreen_Gfx[]; +extern u16 gBagScreenFemale_Pal[]; +extern u16 gBagScreenMale_Pal[]; +extern u8 gBagMenuHMIcon_Gfx[]; + #endif //GUARD_GRAPHICS_H diff --git a/include/item.h b/include/item.h index 06eb08046..d81a3de33 100644 --- a/include/item.h +++ b/include/item.h @@ -61,5 +61,8 @@ ItemUseFunc ItemId_GetBattleFunc(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId); u16 itemid_get_market_price(u16 itemId); u16 BagGetItemIdByPocketPosition(u8 pocketId, u16 pocketPos); +void sub_80D6FB4(struct BagPocket*); +void sub_80D6F64(struct BagPocket*); +void sub_80D702C(struct ItemSlot*, s16, u16); #endif // ITEM_H diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h index c3932390c..56e012421 100644 --- a/include/item_menu_icons.h +++ b/include/item_menu_icons.h @@ -8,5 +8,9 @@ u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3); u8 CreateBerryTagSprite(u8 id, s16 x, s16 y); void FreeBerryTagSpritePalette(void); u8 CreateBerryFlavorCircleSprite(s16 x); +void sub_80D4FAC(void); +void RemoveBagItemIconObject(u8); +void sub_80D4FEC(u8); +void sub_80D4FC8(u8); #endif // GUARD_ITEM_MENU_ICONS diff --git a/include/item_use.h b/include/item_use.h index ee7939824..6f84a63df 100644 --- a/include/item_use.h +++ b/include/item_use.h @@ -50,5 +50,6 @@ void ItemUseOutOfBattle_EnigmaBerry(u8); void ItemUseInBattle_EnigmaBerry(u8); void ItemUseOutOfBattle_CannotUse(u8); u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId); +void sub_80FDD10(u8); #endif // GUARD_ITEM_USE_H diff --git a/include/list_menu.h b/include/list_menu.h index 8b793c0e4..77d00bf97 100644 --- a/include/list_menu.h +++ b/include/list_menu.h @@ -57,5 +57,6 @@ u8 ListMenuInit(struct ListMenuTemplate *template, u16 cursorPage, u16 cursorPos s32 ListMenuHandleInputGetItemId(u8 listTaskId); void sub_81AE860(u8 listTaskId, u16 *a1, u16 *a2); void sub_81AE6C8(u8 listTaskId, u16 *a1, u16 *a2); +u8 ListMenuGetYCoordForPrintingArrowCursor(u8); #endif //GUARD_LIST_MENU_H diff --git a/include/menu.h b/include/menu.h index 2046f7d2b..f6efdbf03 100644 --- a/include/menu.h +++ b/include/menu.h @@ -59,5 +59,10 @@ u16 sub_8198AA4(u8, u8, u8, u8, u8, u8, u16); void *malloc_and_decompress(const void *src, int *sizeOut); u16 copy_decompressed_tile_data_to_vram(u8 bgId, const void *src, u16 size, u16 offset, u8 mode); void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress); +void AddItemMenuActionTextPrinters (u8, u8, u8, u8, u8, u8, u8, const struct MenuAction*, const u8*); +void sub_8198DBC(u8, u8, u8, u8, u8, u8, u8, const struct MenuAction*, const u8*); +u8 sub_8199944(u8, u8, u8, u8, u8); +u8 sub_8199134(s8, s8); +void sub_819A2BC(u8, u8); #endif // GUARD_MENU_H diff --git a/include/menu_helpers.h b/include/menu_helpers.h index 048a4aa43..e744c293c 100644 --- a/include/menu_helpers.h +++ b/include/menu_helpers.h @@ -32,5 +32,10 @@ void DisplayMessageAndContinueTask(u8 taskId, u8 arg1, u16 arg2, u8 arg3, u8 arg void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo); u8 GetLRKeysState(void); u8 sub_812210C(void); +bool8 sub_81221EC(void); +bool8 sub_81221AC(void); +bool8 sub_8122148(u16); +bool8 AdjustQuantityAccordingToDPadInput(s16*, u16); +bool8 itemid_80BF6D8_mail_related(u16); #endif //GUARD_MENU_HELPERS_H diff --git a/include/menu_indicators.h b/include/menu_indicators.h index d0baac810..794ecf777 100644 --- a/include/menu_indicators.h +++ b/include/menu_indicators.h @@ -8,5 +8,7 @@ // Exported ROM declarations u8 AddScrollIndicatorArrowPairParametrized(u8, u8, u8, u8, s32, u16, u16, u16 *); void RemoveScrollIndicatorArrowPair(u8); +u8 AddScrollIndicatorArrowPair(void*, void*); +void sub_81AF15C(u8, u8, u8); #endif //GUARD_MENU_INDICATORS_H diff --git a/include/overworld.h b/include/overworld.h index 974f8f091..8c507b321 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -72,6 +72,8 @@ void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void mapldr_default(void); u8 get_map_light_from_warp0(void); bool8 is_light_level_1_2_3_5_or_6(u8 a1); +void sub_8086194(void); +void sub_80861B0(void); void IncrementGameStat(u8); u32 GetGameStat(u8); diff --git a/include/party_menu.h b/include/party_menu.h index 1d1661cee..14aacce88 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -18,5 +18,6 @@ u8 pokemon_ailments_get_primary(u32 status); u8 *GetMonNickname(struct Pokemon *mon, u8 *dst); u8 GetCursorSelectionMonId(void); bool8 FieldCallback_Teleport(void); +void sub_81B7F60(void); #endif // GUARD_PARTY_MENU_H diff --git a/include/player_pc.h b/include/player_pc.h index b14d1ede3..cc2e85b2b 100644 --- a/include/player_pc.h +++ b/include/player_pc.h @@ -8,5 +8,6 @@ // Exported ROM declarations void sub_816B060(u8 taskId); +void sub_816B31C(void); #endif //GUARD_PLAYER_PC_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h new file mode 100755 index 000000000..a4e46dd6e --- /dev/null +++ b/include/pokemon_summary_screen.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKEMON_SUMMARY_SCREEN_H +#define GUARD_POKEMON_SUMMARY_SCREEN_H + +void sub_81C4F98(u8, void(*)(void)); + +#endif // GUARD_POKEMON_SUMMARY_SCREEN_H \ No newline at end of file diff --git a/include/shop.h b/include/shop.h index d3e86408c..9b14a672e 100644 --- a/include/shop.h +++ b/include/shop.h @@ -6,5 +6,6 @@ extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3]; void CreatePokemartMenu(const u16 *); void CreateDecorationShop1Menu(const u16 *); void CreateDecorationShop2Menu(const u16 *); +void CB2_ExitSellMenu(void); #endif // GUARD_SHOP_H diff --git a/include/strings.h b/include/strings.h index 6d569e57a..4e96dc528 100644 --- a/include/strings.h +++ b/include/strings.h @@ -239,4 +239,30 @@ extern const u8 gText_Var1DotVar2[]; extern const u8 gText_ThreeMarks[]; extern const u8 gText_FirmSlash[]; +//item menu screen text +extern u8 gText_CloseBag[]; +extern u8 gText_ClearTo11Var1Clear5Var2[]; +extern u8 gText_UnkF908Var1Clear7Var2[]; +extern u8 gText_xVar1[]; +extern u8 gText_ReturnToVar1[]; +extern u8 gText_SelectorArrow2[]; +extern u8 gText_MoveVar1Where[]; +extern u8 gText_Var1IsSelected[]; +extern u8 gText_TossHowManyVar1s[]; +extern u8 gText_ConfirmTossItems[]; +extern u8 gText_ThrewAwayVar2Var1s[]; +extern u8 gText_CantWriteMail[]; +extern u8 gText_NoPokemon[]; +extern u8 gText_Var1CantBeHeld[]; +extern u8 gText_Var1CantBeHeldHere[]; +extern u8 gText_CantBuyKeyItem[]; +extern u8 gText_HowManyToSell[]; +extern u8 gText_ICanPayVar1[]; +extern u8 gText_TurnedOverVar1ForVar2[]; +extern u8 gText_DepositHowManyVar1[]; +extern u8 gText_CantStoreImportantItems[]; +extern u8 gText_DepositedVar2Var1s[]; +extern u8 gText_NoRoomForItems[]; +extern u8 gText_ThreeDashes[]; + #endif //GUARD_STRINGS_H diff --git a/include/text.h b/include/text.h index e073c3762..81c066426 100644 --- a/include/text.h +++ b/include/text.h @@ -208,6 +208,7 @@ void DecompressGlyphTile(const u16 *src, u16 *dest); u8 GetLastTextColor(u8 colorType); void CopyGlyphToWindow(struct TextPrinter *x); void ClearTextSpan(struct TextPrinter *textPrinter, u32 width); +u8 GetMenuCursorDimensionByFont(u8, u8); u16 Font0Func(struct TextPrinter *textPrinter); u16 Font1Func(struct TextPrinter *textPrinter); -- cgit v1.2.3 From 9e7696f25a02e233c4970f70e7b79be32646418d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 9 Feb 2018 15:55:12 +0100 Subject: decompile pokemon1 --- include/pokemon.h | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'include') diff --git a/include/pokemon.h b/include/pokemon.h index ce3074a0b..ac2638557 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -334,6 +334,32 @@ struct UnknownPokemonStruct u8 friendship; }; +struct UnknownPokemonSubStruct2 +{ + u16 species; + u16 moves[4]; + u16 item; +}; + +struct UnknownPokemonStruct2 +{ + u8 field_0_0 : 5; + u8 field_0_1 : 2; + u8 field_1; + u8 field_2; + u8 field_3; + struct UnknownPokemonSubStruct2 mons[3]; + u8 field_28[23]; + u8 language; +}; + +struct UnknownPokemonStruct3 +{ + u8 field_0[48]; + u16 field_30; + u8 field_32[38]; +}; + #define BATTLE_STATS_NO 8 struct BattlePokemon @@ -590,7 +616,7 @@ void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex); u8 GetNature(struct Pokemon *mon); u8 GetNatureFromPersonality(u32 personality); -u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex); +u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex); void MonRestorePP(struct Pokemon *); void BoxMonRestorePP(struct BoxPokemon *); @@ -628,7 +654,7 @@ void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); s32 GetBattlerMultiplayerId(u16 a1); bool16 sub_806D82C(u8 id); u16 MonTryLearningNewMove(struct Pokemon* mon, bool8); -void sub_8068AA4(void); // sets stats for deoxys +void SetDeoxysStats(void); // sets stats for deoxys bool8 HasTwoFramesAnimation(u16 species); u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem); void RandomlyGivePartyPokerus(struct Pokemon *party); @@ -645,7 +671,7 @@ void sub_806A1C0(u16 arg0, u8 bankIdentity); void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity); u8 GetSecretBaseTrainerPicIndex(void); bool8 TryIncrementMonLevel(struct Pokemon *mon); -void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon); +void BoxMonToMon(const struct BoxPokemon *srcMon, struct Pokemon *dstMon); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); u8 GetMonsStateToDoubles_2(void); -- cgit v1.2.3 From 1a1bad312972217a7ef390df469b8cf763626a66 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 9 Feb 2018 18:46:00 +0100 Subject: decompile pokemon_item_effect --- include/constants/items.h | 3 +++ include/pokemon_item_effects.h | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/constants/items.h b/include/constants/items.h index ca6fdbf64..8717ecbd5 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -464,4 +464,7 @@ #define NUM_TECHNICAL_MACHINES 50 #define NUM_HIDDEN_MACHINES 8 +// Check if the item is one that can be used on a Pokemon. +#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2) + #endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/pokemon_item_effects.h b/include/pokemon_item_effects.h index 505cc0f25..1564f7f99 100644 --- a/include/pokemon_item_effects.h +++ b/include/pokemon_item_effects.h @@ -57,6 +57,6 @@ struct PokemonItemEffect }; */ -bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); +bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); #endif // GUARD_POKEMON_ITEM_EFFECTS -- cgit v1.2.3 From 084ba7a7a47af9744acd7d9bdf7abffb10fba87d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 10 Feb 2018 13:24:03 +0100 Subject: decompile all pokemon files --- include/calculate_base_damage.h | 6 ---- include/pokemon.h | 7 +++++ include/pokemon_3.h | 9 ------ include/pokemon_item_effects.h | 62 ----------------------------------------- 4 files changed, 7 insertions(+), 77 deletions(-) delete mode 100644 include/calculate_base_damage.h delete mode 100644 include/pokemon_3.h delete mode 100644 include/pokemon_item_effects.h (limited to 'include') diff --git a/include/calculate_base_damage.h b/include/calculate_base_damage.h deleted file mode 100644 index e9146c188..000000000 --- a/include/calculate_base_damage.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef GUARD_CALCULATE_BASE_DAMAGE_H -#define GUARD_CALCULATE_BASE_DAMAGE_H - -s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef); - -#endif // GUARD_CALCULATE_BASE_DAMAGE_H diff --git a/include/pokemon.h b/include/pokemon.h index ac2638557..0430a465b 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -675,6 +675,13 @@ void BoxMonToMon(const struct BoxPokemon *srcMon, struct Pokemon *dstMon); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); u8 GetMonsStateToDoubles_2(void); +bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); +s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef); +const u8* GetTrainerClassNameFromId(u16 trainerId); +const u8* GetTrainerNameFromId(u16 trainerId); +void PlayMapChosenOrBattleBGM(u16 song); +u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); + #include "sprite.h" void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); diff --git a/include/pokemon_3.h b/include/pokemon_3.h deleted file mode 100644 index 82dfacf48..000000000 --- a/include/pokemon_3.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef GUARD_POKEMON_3_H -#define GUARD_POKEMON_3_H - -const u8* GetTrainerClassNameFromId(u16 trainerId); -const u8* GetTrainerNameFromId(u16 trainerId); -void PlayMapChosenOrBattleBGM(u16 song); -u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); - -#endif // GUARD_POKEMON_3_H diff --git a/include/pokemon_item_effects.h b/include/pokemon_item_effects.h deleted file mode 100644 index 1564f7f99..000000000 --- a/include/pokemon_item_effects.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef GUARD_POKEMON_ITEM_EFFECTS -#define GUARD_POKEMON_ITEM_EFFECTS - -#include "pokemon.h" - -// TODO once pokemon item effects is decompiled -/* -struct PokemonItemEffect -{ - //field 0 - u8 xAtk : 4; // x1, x2, x4, x8 = xF - u8 field_0_x10 : 1; // x10 - u8 critRatioUp : 1; // x20 - u8 field_0_x40 : 1; // x40 - u8 cureInfatuation : 1; // x80 - - /*field 1 - u8 xSpeed : 4; // x1, x2, x4, x8 = xF - u8 xDefense : 4; // x10, x20, x40, xF0 - - /*field 2 - u8 xSpAtk : 4; // x1, x2, x4, x8 = xF - u8 xAccuracy : 4; // x10, x20, x40, xF0 - - /*field 3 - u8 cureConfusion : 1; // x1 - u8 cureParalysis : 1; // x2 - u8 cureFreeze : 1; // x4 - u8 cureBurn : 1; // x8 - u8 curePoison : 1; // x10 - u8 cureSleep : 1; // x20 - u8 field_3_x40 : 1; // x40 - u8 cantLowerStats : 1; // x80 - - /*field 4 - u8 hpEv : 1; // x1 - u8 attackEv : 1; // x2 - u8 healHp : 1; // x4 - u8 field_4_x8 : 1; // x8 - u8 field_4_x10 : 1; // x10 - u8 ppUp : 1; // x20 - u8 levelUp : 1; // x40 - u8 evolutionStone : 1; // x80 - - /*field 5 - u8 defEv: 1; // x1 - u8 speedEv : 1; // x2 - u8 spDefEv : 1; // x4 - u8 spAtkEv : 1; // x8 - u8 ppMax : 1; // x10 - u8 field_5_x20 : 1; // x20 - u8 field_5_x40 : 1; // x40 - u8 field_5_x80 : 1; // x80 - - /*field 6 - u8 value; -}; -*/ - -bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); - -#endif // GUARD_POKEMON_ITEM_EFFECTS -- cgit v1.2.3 From fd17ca59b0f5eaa3231628f7b9da66e77dfb8bd9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 11 Feb 2018 17:35:01 +0100 Subject: more pokemon work --- include/battle_message.h | 8 ++ include/pokemon.h | 188 ++++++++++++++++++++++++++++------------------- 2 files changed, 120 insertions(+), 76 deletions(-) (limited to 'include') diff --git a/include/battle_message.h b/include/battle_message.h index 30ddca469..a68ad1551 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -229,6 +229,14 @@ extern const u8* const gPokeblockWasTooXStringTable[]; extern const u8* const gRefereeStringsTable[]; extern const u8* const gStatNamesTable2[]; +extern const u8 gText_BadEgg[]; +extern const u8 gText_StatRose[]; +extern const u8 gText_PkmnsStatChanged2[]; +extern const u8 gText_PkmnGettingPumped[]; +extern const u8 gText_PkmnShroudedInMist[]; +extern const u8 gText_BattleWallyName[]; +extern const u8 gText_PkmnsXPreventsSwitching[]; + extern const u16 gMissStringIds[]; extern const u16 gTrappingMoves[]; diff --git a/include/pokemon.h b/include/pokemon.h index 0430a465b..8db61bf76 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -1,6 +1,8 @@ #ifndef GUARD_POKEMON_H #define GUARD_POKEMON_H +#include "sprite.h" + #define MON_DATA_PERSONALITY 0 #define MON_DATA_OT_ID 1 #define MON_DATA_NICKNAME 2 @@ -360,6 +362,20 @@ struct UnknownPokemonStruct3 u8 field_32[38]; }; +struct Unknown_806F160_Struct +{ + u8 field_0_0 : 4; + u8 field_0_1 : 4; + u8 field_1; + u8 magic; + u8 field_3_0 : 4; + u8 field_3_1 : 4; + void *bytes; + u8 **byteArrays; + struct SpriteTemplate *templates; + struct SpriteFrameImage *frameImages; +}; + #define BATTLE_STATS_NO 8 struct BattlePokemon @@ -546,11 +562,7 @@ extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; extern struct PokemonStorage* gPokemonStoragePtr; extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1]; extern const u16 *const gLevelUpLearnsets[]; - -u8 CountAliveMonsInBattle(u8 caseId); -#define BATTLE_ALIVE_EXCEPT_ACTIVE 0 -#define BATTLE_ALIVE_ATK_SIDE 1 -#define BATTLE_ALIVE_DEF_SIDE 2 +extern struct SpriteTemplate gUnknown_0202499C; void ZeroBoxMonData(struct BoxPokemon *boxMon); void ZeroMonData(struct Pokemon *mon); @@ -564,26 +576,45 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level); void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality); void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId); void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread); -u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon); +void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src); +void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50); +void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId); +void CreateMonWithEVSpreadPersonalityOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId); +void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest); +void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId); +bool8 sub_80688F8(u8 caseId, u8 battlerId); +void SetDeoxysStats(void); +u16 sub_8068B48(void); +u16 sub_8068BB0(void); +void CreateObedientEnemyMon(void); void CalculateMonStats(struct Pokemon *mon); +void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest); u8 GetLevelFromMonExp(struct Pokemon *mon); u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon); u16 GiveMoveToMon(struct Pokemon *mon, u16 move); u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move); -void MonRestorePP(struct Pokemon *mon); void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot); void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot); void GiveMonInitialMoveset(struct Pokemon *mon); void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon); +u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove); void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move); void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move); +s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef); +u8 CountAliveMonsInBattle(u8 caseId); +#define BATTLE_ALIVE_EXCEPT_ACTIVE 0 +#define BATTLE_ALIVE_ATK_SIDE 1 +#define BATTLE_ALIVE_DEF_SIDE 2 + +u8 GetDefaultMoveTarget(u8 battlerId); u8 GetMonGender(struct Pokemon *mon); u8 GetBoxMonGender(struct BoxPokemon *boxMon); u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality); -void EncryptBoxMon(struct BoxPokemon *boxMon); -void DecryptBoxMon(struct BoxPokemon *boxMon); +void sub_806A068(u16 species, u8 battlerPosition); +void sub_806A12C(u16 trainerSpriteId, u8 battlerPosition); +void sub_806A1C0(u16 arg0, u8 battlerPosition); // These are full type signatures for GetMonData() and GetBoxMonData(), // but they are not used since some code erroneously omits the third arg. @@ -592,100 +623,105 @@ void DecryptBoxMon(struct BoxPokemon *boxMon); u32 GetMonData(); u32 GetBoxMonData(); -void SetMonData(struct Pokemon *mon, s32 field, const void *data); -void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data); +void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg); +void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg); void CopyMon(void *dest, void *src, size_t size); u8 GiveMonToPlayer(struct Pokemon *mon); -u8 SendMonToPC(struct Pokemon *mon); +u8 SendMonToPC(struct Pokemon* mon); u8 CalculatePlayerPartyCount(void); u8 CalculateEnemyPartyCount(void); - +u8 GetMonsStateToDoubles(void); +u8 GetMonsStateToDoubles_2(void); u8 GetAbilityBySpecies(u16 species, bool8 altAbility); u8 GetMonAbility(struct Pokemon *mon); void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord); u8 GetSecretBaseTrainerPicIndex(void); -u8 GetSecretBaseTrainerNameIndex(void); +u8 GetSecretBaseTrainerClass(void); bool8 IsPlayerPartyAndPokemonStorageFull(void); bool8 IsPokemonStorageFull(void); void GetSpeciesName(u8 *name, u16 species); u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex); void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); -void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex); - +void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex); +bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); +bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e); +bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId); +u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit); +u8 *sub_806CF78(u16 itemId); u8 GetNature(struct Pokemon *mon); u8 GetNatureFromPersonality(u32 personality); - -u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex); - -void MonRestorePP(struct Pokemon *); -void BoxMonRestorePP(struct BoxPokemon *); - +u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem); +u16 HoennPokedexNumToSpecies(u16 hoennNum); u16 NationalPokedexNumToSpecies(u16 nationalNum); -u16 NationalToHoennOrder(u16); -u16 SpeciesToNationalPokedexNum(u16); -u16 HoennToNationalOrder(u16); +u16 NationalToHoennOrder(u16 nationalNum); +u16 SpeciesToNationalPokedexNum(u16 species); +u16 SpeciesToHoennPokedexNum(u16 species); +u16 HoennToNationalOrder(u16 hoennNum); u16 SpeciesToCryId(u16 species); -void DrawSpindaSpots(u16, u32, u8 *, u8); -void AdjustFriendship(struct Pokemon *, u8); -u8 CheckPartyHasHadPokerus(struct Pokemon *, u8); -void UpdatePartyPokerusTime(u16); -u32 CanMonLearnTMHM(struct Pokemon *, u8); -u32 CanSpeciesLearnTMHM(u16 species, u8 tm); -u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves); -void ClearBattleMonForms(void); -const u8 *GetMonFrontSpritePal(struct Pokemon *mon); -const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32); -const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32); -bool8 IsOtherTrainer(u32, u8 *); -void SetWildMonHeldItem(void); -u16 GetMonEVCount(struct Pokemon *); - -const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon); -const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality); -bool32 IsHMMove2(u16 move); -bool8 IsPokeSpriteNotFlipped(u16 species); -bool8 IsMonShiny(struct Pokemon *mon); -bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); - -void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); -bool8 IsTradedMon(struct Pokemon *mon); -void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); -s32 GetBattlerMultiplayerId(u16 a1); +void sub_806D544(u16 species, u32 personality, u8 *dest); +void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4); +void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); +bool8 sub_806D7EC(void); bool16 sub_806D82C(u8 id); -u16 MonTryLearningNewMove(struct Pokemon* mon, bool8); -void SetDeoxysStats(void); // sets stats for deoxys -bool8 HasTwoFramesAnimation(u16 species); -u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem); +s32 GetBattlerMultiplayerId(u16 a1); +u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); +u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex); +void AdjustFriendship(struct Pokemon *mon, u8 event); +void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies); +u16 GetMonEVCount(struct Pokemon *mon); void RandomlyGivePartyPokerus(struct Pokemon *party); u8 CheckPartyPokerus(struct Pokemon *party, u8 selection); u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection); void UpdatePartyPokerusTime(u16 days); void PartySpreadPokerus(struct Pokemon *party); -s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2); -s8 GetFlavorRelationByPersonality(u32 personality, u8 a2); -u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit); -u8 GetDefaultMoveTarget(u8 atkBank); -u16 PlayerGenderToFrontTrainerPicId(u8 playerGender); -void sub_806A1C0(u16 arg0, u8 bankIdentity); -void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity); -u8 GetSecretBaseTrainerPicIndex(void); bool8 TryIncrementMonLevel(struct Pokemon *mon); -void BoxMonToMon(const struct BoxPokemon *srcMon, struct Pokemon *dstMon); +u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm); +u32 CanSpeciesLearnTMHM(u16 species, u8 tm); +u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); -u8 GetMonsStateToDoubles_2(void); - -bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); -s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef); -const u8* GetTrainerClassNameFromId(u16 trainerId); -const u8* GetTrainerNameFromId(u16 trainerId); -void PlayMapChosenOrBattleBGM(u16 song); -u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); - -#include "sprite.h" - -void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); +u8 GetNumberOfRelearnableMoves(struct Pokemon *mon); +u16 SpeciesToPokedexNum(u16 species); +bool32 sub_806E3F8(u16 species); +void ClearBattleMonForms(void); +u16 GetBattleBGM(void); +void PlayBattleBGM(void); +void PlayMapChosenOrBattleBGM(u16 songId); +void sub_806E694(u16 songId); +const u8 *GetMonFrontSpritePal(struct Pokemon *mon); +const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality); +const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon); +const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality); +bool32 IsHMMove2(u16 move); +bool8 IsMonSpriteNotFlipped(u16 species); +s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor); +s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor); +bool8 IsTradedMon(struct Pokemon *mon); +bool8 IsOtherTrainer(u32 otId, u8 *otName); +void MonRestorePP(struct Pokemon *mon); +void BoxMonRestorePP(struct BoxPokemon *boxMon); +void sub_806E994(void); +void SetWildMonHeldItem(void); +bool8 IsMonShiny(struct Pokemon *mon); +bool8 IsShinyOtIdPersonality(u32 otId, u32 personality); +const u8 *GetTrainerPartnerName(void); void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); +void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3); +void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame); +void sub_806EE98(void); void BattleAnimateBackSprite(struct Sprite* sprite, u16 species); +u8 sub_806EF08(u8 arg0); +u8 sub_806EF84(u8 arg0, u8 arg1); +u16 sub_806EFF0(u16 arg0); +u16 FacilityClassToPicIndex(u16 facilityClass); +u16 PlayerGenderToFrontTrainerPicId(u8 playerGender); +void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality); +const u8 *GetTrainerClassNameFromId(u16 trainerId); +const u8 *GetTrainerNameFromId(u16 trainerId); +bool8 HasTwoFramesAnimation(u16 species); +bool8 sub_806F104(void); +struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1); +void sub_806F47C(u8 id); +u8 *sub_806F4F8(u8 id, u8 arg1) #endif // GUARD_POKEMON_H -- cgit v1.2.3 From 5e781f5b3fa6e62abd6830f6a4f5dda7064597c9 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 12 Feb 2018 00:11:10 +0100 Subject: change some constants to male and female --- include/constants/trainers.h | 32 +++++++------- include/data/pokemon/trainer_class_lookups.h | 64 ++++++++++++++-------------- include/pokemon.h | 2 + 3 files changed, 50 insertions(+), 48 deletions(-) (limited to 'include') diff --git a/include/constants/trainers.h b/include/constants/trainers.h index 48d4f081e..a017b6975 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -956,13 +956,13 @@ #define FACILITY_CLASS_HIKER 0x0 #define FACILITY_CLASS_TEAM_AQUA_1 0x1 #define FACILITY_CLASS_PKMN_BREEDER_1 0x2 -#define FACILITY_CLASS_COOLTRAINER_1 0x3 +#define FACILITY_CLASS_COOLTRAINER_M 0x3 #define FACILITY_CLASS_BIRD_KEEPER 0x4 #define FACILITY_CLASS_COLLECTOR 0x5 #define FACILITY_CLASS_TEAM_AQUA_2 0x6 #define FACILITY_CLASS_SWIMMER_M 0x7 #define FACILITY_CLASS_TEAM_MAGMA_1 0x8 -#define FACILITY_CLASS_EXPERT_1 0x9 +#define FACILITY_CLASS_EXPERT_M 0x9 #define FACILITY_CLASS_BLACK_BELT 0xa #define FACILITY_CLASS_AQUA_LEADER 0xb #define FACILITY_CLASS_HEX_MANIAC 0xc @@ -971,7 +971,7 @@ #define FACILITY_CLASS_INTERVIEWER 0xf #define FACILITY_CLASS_TUBER_1 0x10 #define FACILITY_CLASS_TUBER_2 0x11 -#define FACILITY_CLASS_COOLTRAINER_2 0x12 +#define FACILITY_CLASS_COOLTRAINER_F 0x12 #define FACILITY_CLASS_LADY 0x13 #define FACILITY_CLASS_BEAUTY 0x14 #define FACILITY_CLASS_RICH_BOY 0x15 @@ -983,16 +983,16 @@ #define FACILITY_CLASS_CAMPER 0x1b #define FACILITY_CLASS_PICNICKER 0x1c #define FACILITY_CLASS_BUG_MANIAC 0x1d -#define FACILITY_CLASS_PSYCHIC_1 0x1e -#define FACILITY_CLASS_PSYCHIC_2 0x1f +#define FACILITY_CLASS_PSYCHIC_M 0x1e +#define FACILITY_CLASS_PSYCHIC_F 0x1f #define FACILITY_CLASS_GENTLEMAN 0x20 #define FACILITY_CLASS_ELITE_FOUR_1 0x21 #define FACILITY_CLASS_ELITE_FOUR_2 0x22 #define FACILITY_CLASS_LEADER_1 0x23 #define FACILITY_CLASS_LEADER_2 0x24 #define FACILITY_CLASS_LEADER_3 0x25 -#define FACILITY_CLASS_SCHOOL_KID_1 0x26 -#define FACILITY_CLASS_SCHOOL_KID_2 0x27 +#define FACILITY_CLASS_SCHOOL_KID_M 0x26 +#define FACILITY_CLASS_SCHOOL_KID_F 0x27 #define FACILITY_CLASS_SR_AND_JR 0x28 #define FACILITY_CLASS_POKEFAN_1 0x29 #define FACILITY_CLASS_POKEFAN_2 0x2a @@ -1013,28 +1013,28 @@ #define FACILITY_CLASS_TWINS 0x39 #define FACILITY_CLASS_SAILOR 0x3a #define FACILITY_CLASS_PKMN_TRAINER_1 0x3b -#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c +#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c #define FACILITY_CLASS_PKMN_TRAINER_3 0x3d #define FACILITY_CLASS_PKMN_TRAINER_4 0x3e -#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f +#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f #define FACILITY_CLASS_PKMN_TRAINER_6 0x40 #define FACILITY_CLASS_PKMN_TRAINER_7 0x41 #define FACILITY_CLASS_PKMN_BREEDER_2 0x42 #define FACILITY_CLASS_BUG_CATCHER 0x43 -#define FACILITY_CLASS_PKMN_RANGER_1 0x44 -#define FACILITY_CLASS_PKMN_RANGER_2 0x45 +#define FACILITY_CLASS_PKMN_RANGER_M 0x44 +#define FACILITY_CLASS_PKMN_RANGER_F 0x45 #define FACILITY_CLASS_MAGMA_LEADER 0x46 #define FACILITY_CLASS_LASS 0x47 #define FACILITY_CLASS_YOUNG_COUPLE 0x48 #define FACILITY_CLASS_OLD_COUPLE 0x49 #define FACILITY_CLASS_SIS_AND_BRO 0x4a -#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b +#define FACILITY_CLASS_PKMN_TRAINER_STEVEN 0x4b #define FACILITY_CLASS_SALON_MAIDEN 0x4c #define FACILITY_CLASS_DOME_ACE 0x4d -#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e -#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f -#define FACILITY_CLASS_PKMN_TRAINER_11 0x50 -#define FACILITY_CLASS_PKMN_TRAINER_12 0x51 +#define FACILITY_CLASS_PKMN_TRAINER_RED 0x4e +#define FACILITY_CLASS_PKMN_TRAINER_LEAF 0x4f +#define FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN 0x50 +#define FACILITY_CLASS_PKMN_TRAINER_RS_MAY 0x51 #define TRAINER_CLASS_PKMN_TRAINER_1 0x0 #define TRAINER_CLASS_PKMN_TRAINER_2 0x1 diff --git a/include/data/pokemon/trainer_class_lookups.h b/include/data/pokemon/trainer_class_lookups.h index 2ffe9cd85..ec4dbf0fb 100644 --- a/include/data/pokemon/trainer_class_lookups.h +++ b/include/data/pokemon/trainer_class_lookups.h @@ -6,13 +6,13 @@ const u8 gFacilityClassToPicIndex[] = TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1 TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1 - TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_1 + TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_M TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2 TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1 - TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_1 + TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_M TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC @@ -21,7 +21,7 @@ const u8 gFacilityClassToPicIndex[] = TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1 TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2 - TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_2 + TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_F TRAINER_PIC_LADY, // FACILITY_CLASS_LADY TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY @@ -33,16 +33,16 @@ const u8 gFacilityClassToPicIndex[] = TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC - TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_1 - TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_2 + TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_M + TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_F TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1 TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2 TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1 TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2 TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3 - TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_1 - TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_2 + TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_M + TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_F TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1 TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2 @@ -63,28 +63,28 @@ const u8 gFacilityClassToPicIndex[] = TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1 - TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_2 + TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_MAY TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3 TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4 - TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_5 + TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6 TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7 TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2 TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER - TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_1 - TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_2 + TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_M + TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_F TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER TRAINER_PIC_LASS, // FACILITY_CLASS_LASS TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO - TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_8 + TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_STEVEN TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE - TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_9 - TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_10 - TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_11 - TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_12 + TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_RED + TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_LEAF + TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN + TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY }; const u8 gFacilityClassToTrainerClass[] = @@ -92,13 +92,13 @@ const u8 gFacilityClassToTrainerClass[] = TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1 TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1 - TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_1 + TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_M TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2 TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1 - TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_1 + TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_M TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC @@ -107,7 +107,7 @@ const u8 gFacilityClassToTrainerClass[] = TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1 TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2 - TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_2 + TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_F TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY @@ -119,16 +119,16 @@ const u8 gFacilityClassToTrainerClass[] = TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC - TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_1 - TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_2 + TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_M + TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_F TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1 TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2 TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1 TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2 TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3 - TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_1 - TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_2 + TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_M + TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_F TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1 TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2 @@ -149,28 +149,28 @@ const u8 gFacilityClassToTrainerClass[] = TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1 - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_2 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_MAY TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4 - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_5 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6 TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7 TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2 TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER - TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_1 - TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_2 + TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_M + TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_F TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_8 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_STEVEN TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_9 - TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_10 - TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_11 - TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_12 + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_RED + TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_LEAF + TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN + TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY }; #endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H diff --git a/include/pokemon.h b/include/pokemon.h index 3d7917b92..6df9ce313 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -468,6 +468,8 @@ extern struct Pokemon gEnemyParty[PARTY_SIZE]; extern struct SpriteTemplate gUnknown_0202499C; extern struct PokemonStorage* gPokemonStoragePtr; +extern const u8 gFacilityClassToPicIndex[]; +extern const u8 gFacilityClassToTrainerClass[]; extern const struct BaseStats gBaseStats[]; extern const u8 *const gItemEffectTable[]; extern const struct Evolution gEvolutionTable[][EVOS_PER_MON]; -- cgit v1.2.3 From f81c52b56e865d8ecc753a69a31a5148548320a6 Mon Sep 17 00:00:00 2001 From: golem galvanize Date: Mon, 12 Feb 2018 13:59:42 -0500 Subject: more fixes --- include/graphics.h | 6 ++--- include/pokemon_summary_screen.h | 2 +- include/strings.h | 56 +++++++++++++++++++++++----------------- 3 files changed, 36 insertions(+), 28 deletions(-) (limited to 'include') diff --git a/include/graphics.h b/include/graphics.h index 8ed54bcfb..6e5de9ef4 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -2721,8 +2721,8 @@ extern const u8 gFireRedMenuElements_Gfx[]; //item menu graphics extern const u8 gBagScreen_Gfx[]; -extern u16 gBagScreenFemale_Pal[]; -extern u16 gBagScreenMale_Pal[]; -extern u8 gBagMenuHMIcon_Gfx[]; +extern const u16 gBagScreenFemale_Pal[]; +extern const u16 gBagScreenMale_Pal[]; +extern const u8 gBagMenuHMIcon_Gfx[]; #endif //GUARD_GRAPHICS_H diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index a4e46dd6e..adadcea03 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -3,4 +3,4 @@ void sub_81C4F98(u8, void(*)(void)); -#endif // GUARD_POKEMON_SUMMARY_SCREEN_H \ No newline at end of file +#endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/strings.h b/include/strings.h index 4e96dc528..2bdeef8ca 100644 --- a/include/strings.h +++ b/include/strings.h @@ -134,6 +134,14 @@ extern const u8 gMenuText_Use[]; extern const u8 gMenuText_Toss[]; extern const u8 gMenuText_Give[]; extern const u8 gMenuText_Give2[]; +extern const u8 gMenuText_Register[]; +extern const u8 gMenuText_Check[]; +extern const u8 gMenuText_Walk[]; +extern const u8 gMenuText_Deselect[]; +extern const u8 gMenuText_CheckTag[]; +extern const u8 gMenuText_Confirm[]; +extern const u8 gMenuText_Show[]; +extern const u8 gMenuText_Give2[]; extern const u8 gText_Cancel2[]; @@ -240,29 +248,29 @@ extern const u8 gText_ThreeMarks[]; extern const u8 gText_FirmSlash[]; //item menu screen text -extern u8 gText_CloseBag[]; -extern u8 gText_ClearTo11Var1Clear5Var2[]; -extern u8 gText_UnkF908Var1Clear7Var2[]; -extern u8 gText_xVar1[]; -extern u8 gText_ReturnToVar1[]; -extern u8 gText_SelectorArrow2[]; -extern u8 gText_MoveVar1Where[]; -extern u8 gText_Var1IsSelected[]; -extern u8 gText_TossHowManyVar1s[]; -extern u8 gText_ConfirmTossItems[]; -extern u8 gText_ThrewAwayVar2Var1s[]; -extern u8 gText_CantWriteMail[]; -extern u8 gText_NoPokemon[]; -extern u8 gText_Var1CantBeHeld[]; -extern u8 gText_Var1CantBeHeldHere[]; -extern u8 gText_CantBuyKeyItem[]; -extern u8 gText_HowManyToSell[]; -extern u8 gText_ICanPayVar1[]; -extern u8 gText_TurnedOverVar1ForVar2[]; -extern u8 gText_DepositHowManyVar1[]; -extern u8 gText_CantStoreImportantItems[]; -extern u8 gText_DepositedVar2Var1s[]; -extern u8 gText_NoRoomForItems[]; -extern u8 gText_ThreeDashes[]; +extern const u8 gText_CloseBag[]; +extern const u8 gText_ClearTo11Var1Clear5Var2[]; +extern const u8 gText_UnkF908Var1Clear7Var2[]; +extern const u8 gText_xVar1[]; +extern const u8 gText_ReturnToVar1[]; +extern const u8 gText_SelectorArrow2[]; +extern const u8 gText_MoveVar1Where[]; +extern const u8 gText_Var1IsSelected[]; +extern const u8 gText_TossHowManyVar1s[]; +extern const u8 gText_ConfirmTossItems[]; +extern const u8 gText_ThrewAwayVar2Var1s[]; +extern const u8 gText_CantWriteMail[]; +extern const u8 gText_NoPokemon[]; +extern const u8 gText_Var1CantBeHeld[]; +extern const u8 gText_Var1CantBeHeldHere[]; +extern const u8 gText_CantBuyKeyItem[]; +extern const u8 gText_HowManyToSell[]; +extern const u8 gText_ICanPayVar1[]; +extern const u8 gText_TurnedOverVar1ForVar2[]; +extern const u8 gText_DepositHowManyVar1[]; +extern const u8 gText_CantStoreImportantItems[]; +extern const u8 gText_DepositedVar2Var1s[]; +extern const u8 gText_NoRoomForItems[]; +extern const u8 gText_ThreeDashes[]; #endif //GUARD_STRINGS_H -- cgit v1.2.3