summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/battle.h2
-rw-r--r--include/battle_anim.h11
-rw-r--r--include/battle_tower.h1
-rw-r--r--include/cable_club.h3
-rw-r--r--include/clock.h1
-rw-r--r--include/constants/battle_anim.h9
-rw-r--r--include/constants/decorations.h2
-rw-r--r--include/constants/items.h34
-rw-r--r--include/contest.h19
-rw-r--r--include/credits.h11
-rw-r--r--include/debug.h10
-rw-r--r--include/decoration.h6
-rw-r--r--include/easy_chat.h1
-rw-r--r--include/event_object_movement.h (renamed from include/field_map_obj.h)44
-rw-r--r--include/ewram.h7
-rw-r--r--include/field_control_avatar.h1
-rw-r--r--include/field_fadetransition.h1
-rw-r--r--include/field_ground_effect.h27
-rw-r--r--include/field_map_obj_helpers.h23
-rw-r--r--include/field_specials.h1
-rw-r--r--include/fieldmap.h2
-rw-r--r--include/gba/macro.h2
-rw-r--r--include/global.berry.h2
-rw-r--r--include/global.h70
-rw-r--r--include/graphics.h10
-rw-r--r--include/hof_pc.h12
-rw-r--r--include/item.h23
-rw-r--r--include/link.h12
-rw-r--r--include/macros/battle_anim.inc74
-rw-r--r--include/main.h2
-rw-r--r--include/mon_markings.h31
-rw-r--r--include/mystery_event_menu.h1
-rw-r--r--include/new_game.h2
-rw-r--r--include/overworld.h12
-rw-r--r--include/pc_screen_effect.h21
-rw-r--r--include/pokeblock.h15
-rw-r--r--include/pokemon.h13
-rw-r--r--include/pokemon_icon.h3
-rw-r--r--include/pokemon_storage_system.h298
-rw-r--r--include/region_map.h1
-rw-r--r--include/reset_rtc_screen.h1
-rw-r--r--include/rom_8077ABC.h41
-rw-r--r--include/rtc.h1
-rw-r--r--include/shop.h2
-rw-r--r--include/slot_machine.h72
-rw-r--r--include/sprite.h1
-rw-r--r--include/start_menu.h2
-rw-r--r--include/strings.h2
-rw-r--r--include/text.h2
-rw-r--r--include/trade.h1
-rw-r--r--include/trainer_card.h2
51 files changed, 622 insertions, 325 deletions
diff --git a/include/battle.h b/include/battle.h
index 7d8878018..789167197 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -778,6 +778,8 @@ void sub_8012324(void);
void SwapTurnOrder(u8, u8);
u8 GetWhoStrikesFirst(u8, u8, u8);
+void debug_sub_8010800(void);
+
// asm/battle_3.o
u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check);
u8 UpdateTurnCounters(void);
diff --git a/include/battle_anim.h b/include/battle_anim.h
index a94e6d13c..ce9bb13de 100644
--- a/include/battle_anim.h
+++ b/include/battle_anim.h
@@ -9,14 +9,6 @@
#define REG_BG2CNT_BITFIELD REG_BGnCNT_BITFIELD(2)
#define REG_BG3CNT_BITFIELD REG_BGnCNT_BITFIELD(3)
-enum
-{
- ANIM_BANK_ATTACKER,
- ANIM_BANK_TARGET,
- ANIM_BANK_ATK_PARTNER,
- ANIM_BANK_DEF_PARTNER,
-};
-
struct BattleAnimBackground
{
void *image;
@@ -51,7 +43,7 @@ extern struct DisableStruct *gAnimDisableStructPtr;
void DoMoveAnim(u16 move);
void LaunchBattleAnimation(const u8 *const moveAnims[], u16 b, u8 c);
bool8 IsAnimBankSpriteVisible(u8 a);
-void sub_8076034(u8, u8);
+void MoveBattlerSpriteToBG(u8, u8);
bool8 IsContest(void);
void ClearBattleAnimationVars(void);
void DestroyAnimSprite(struct Sprite *sprite);
@@ -63,5 +55,6 @@ void sub_80763FC(u16 a, u16 *b, u32 c, u8 d);
s16 CalculatePanIncrement(s16 sourcePan, s16 targetPan, s16 incrementPan);
s16 sub_8077104(s16 newPan, int oldPan);
void DestroyAnimSoundTask(u8 taskId);
+void sub_8076464(u8 a);
#endif
diff --git a/include/battle_tower.h b/include/battle_tower.h
index a3e1ff28c..fe9d4ae6e 100644
--- a/include/battle_tower.h
+++ b/include/battle_tower.h
@@ -98,5 +98,6 @@ void SetEReaderTrainerName(u8*);
u8 GetEReaderTrainerPicIndex(void);
u8 GetEReaderTrainerClassNameIndex(void);
void ValidateEReaderTrainer(void);
+void SetEReaderTrainerChecksum(struct BattleTowerEReaderTrainer *ereaderTrainer);
#endif // GUARD_BATTLE_TOWER_H
diff --git a/include/cable_club.h b/include/cable_club.h
index a2fe46b30..2f509c9fc 100644
--- a/include/cable_club.h
+++ b/include/cable_club.h
@@ -20,5 +20,8 @@ void sub_8083B90(void);
void sub_8083BDC(void);
bool32 sub_8083BF4(u8 linkPlayerIndex);
void sub_8083C50(u8 taskId);
+#if DEBUG
+void debug_sub_808B838(u8);
+#endif
#endif // GUARD_CABLE_CLUB_H
diff --git a/include/clock.h b/include/clock.h
index 4e6560c91..5772145d3 100644
--- a/include/clock.h
+++ b/include/clock.h
@@ -3,6 +3,7 @@
// TODO: time of day and seconds in a day defines
+void InitTimeBasedEvents(void);
void DoTimeBasedEvents(void);
#endif
diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h
new file mode 100644
index 000000000..c173a8730
--- /dev/null
+++ b/include/constants/battle_anim.h
@@ -0,0 +1,9 @@
+#ifndef GUARD_BATTLEANIM_CONSTANTS_H
+#define GUARD_BATTLEANIM_CONSTANTS_H
+
+#define ANIM_BANK_ATTACKER 0
+#define ANIM_BANK_TARGET 1
+#define ANIM_BANK_ATK_PARTNER 2
+#define ANIM_BANK_DEF_PARTNER 3
+
+#endif
diff --git a/include/constants/decorations.h b/include/constants/decorations.h
index 2e3558721..c361ccdf1 100644
--- a/include/constants/decorations.h
+++ b/include/constants/decorations.h
@@ -123,4 +123,6 @@
#define DECOR_REGICE_DOLL 119
#define DECOR_REGISTEEL_DOLL 120
+#define DECOR_COUNT 121
+
#endif // GUARD_CONSTANTS_DECORATIONS_H
diff --git a/include/constants/items.h b/include/constants/items.h
index 9b88db1da..a52c72599 100644
--- a/include/constants/items.h
+++ b/include/constants/items.h
@@ -363,42 +363,12 @@
#define ITEM_15B 347
#define ITEM_15C 348
-// FireRed/LeafGreen
-#define ITEM_OAKS_PARCEL 349
-#define ITEM_POKE_FLUTE 350
-#define ITEM_SECRET_KEY 351
-#define ITEM_BIKE_VOUCHER 352
-#define ITEM_GOLD_TEETH 353
-#define ITEM_OLD_AMBER 354
-#define ITEM_CARD_KEY 355
-#define ITEM_LIFT_KEY 356
-#define ITEM_HELIX_FOSSIL 357
-#define ITEM_DOME_FOSSIL 358
-#define ITEM_SILPH_SCOPE 359
-#define ITEM_BICYCLE 360
-#define ITEM_TOWN_MAP 361
-#define ITEM_VS_SEEKER 362
-#define ITEM_FAME_CHECKER 363
-#define ITEM_TM_CASE 364
-#define ITEM_BERRY_POUCH 365
-#define ITEM_TEACHY_TV 366
-#define ITEM_TRI_PASS 367
-#define ITEM_RAINBOW_PASS 368
-#define ITEM_TEA 369
-#define ITEM_MYSTIC_TICKET 370
-#define ITEM_AURORA_TICKET 371
-#define ITEM_POWDER_JAR 372
-#define ITEM_RUBY 373
-#define ITEM_SAPPHIRE 374
-
-// Emerald
-#define ITEM_MAGMA_EMBLEM 375
-#define ITEM_OLD_SEA_MAP 376
-
#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)
+#define IS_ITEM_MAIL(item) ((item) >= ITEM_ORANGE_MAIL && (item) <= ITEM_RETRO_MAIL)
+
#endif // GUARD_CONSTANTS_ITEMS_H
diff --git a/include/contest.h b/include/contest.h
index f0e4c0b0d..308fb9525 100644
--- a/include/contest.h
+++ b/include/contest.h
@@ -43,17 +43,13 @@ struct ContestPokemon
/*0x02*/ u8 nickname[POKEMON_NAME_LENGTH + 1];
/*0x0D*/ u8 trainerName[8];
/*0x15*/ u8 trainerGfxId;
- /*0x16*/ u8 unk16;
- /*0x17*/ u8 filler17;
/*0x18*/ u32 flags;
- /*0x1C*/ u8 unk1C_0:2;
- u8 unk1C_2:1;
- u8 unk1C_3:1;
- u8 unk1C_4:1;
- u8 unk1C_5:1;
- u8 unk1C_6:1;
- u8 unk1C_7:1;
- u8 filler1D;
+ /*0x1C*/ u8 whichRank:2;
+ u8 aiPool_Cool:1;
+ u8 aiPool_Beauty:1;
+ u8 aiPool_Cute:1;
+ u8 aiPool_Smart:1;
+ u8 aiPool_Tough:1;
/*0x1E*/ u16 moves[4]; // moves
/*0x26*/ u8 cool; // cool
/*0x27*/ u8 beauty; // beauty
@@ -61,8 +57,7 @@ struct ContestPokemon
/*0x29*/ u8 smart; // smart
/*0x2A*/ u8 tough; // tough
/*0x2B*/ u8 sheen; // sheen
- /*0x2C*/ u8 unk2C;
- /*0x2D*/ u8 unk2D[11];
+ /*0x2C*/ u8 unk2C[12];
/*0x38*/ u32 personality; // personality
/*0x3C*/ u32 otId; // otId
}; // wow
diff --git a/include/credits.h b/include/credits.h
new file mode 100644
index 000000000..dabe24048
--- /dev/null
+++ b/include/credits.h
@@ -0,0 +1,11 @@
+#ifndef GUARD_credits_H
+#define GUARD_credits_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+void sub_81439D0(void);
+
+#endif //GUARD_credits_H
diff --git a/include/debug.h b/include/debug.h
index f3ad8c401..2136dbfb8 100644
--- a/include/debug.h
+++ b/include/debug.h
@@ -1,7 +1,17 @@
#ifndef GUARD_DEBUG_H
#define GUARD_DEBUG_H
+// start_menu_debug
+void DebugMenu_8077048(void);
+
// matsuda_debug_menu
void sub_80AAF30(void);
+void Crash(const u8 *text);
+
+// tomomichi_debug_menu
+void debug_nullsub_66(void);
+
+// sound_check_menu
+void CB2_StartSoundCheckMenu(void);
#endif // GUARD_DEBUG_H
diff --git a/include/decoration.h b/include/decoration.h
index c38bd1bcb..d7f26bd05 100644
--- a/include/decoration.h
+++ b/include/decoration.h
@@ -127,17 +127,12 @@ extern u8 gUnknown_020388F5;
extern u8 gUnknown_020388F6;
extern u8 gUnknown_020388D6[16];
extern u8 gUnknown_020388E6[12];
-extern u16 gSpecialVar_0x8004;
-extern u16 gSpecialVar_0x8005;
-extern u16 gSpecialVar_0x8006;
-extern u16 gSpecialVar_0x8007;
extern u16 gUnknown_020391A4;
extern u16 gUnknown_020391A6;
extern u8 gUnknown_020391A8;
extern u8 gUnknown_020391A9;
extern u8 gUnknown_020391AA;
extern u8 gUnknown_02039234;
-extern void (*gFieldCallback)(void);
extern const struct YesNoFuncTable gUnknown_083EC96C[];
extern struct UnkStruct_020391B4 gUnknown_020391B4[16];
@@ -160,7 +155,6 @@ extern const struct YesNoFuncTable gUnknown_083ECAA0;
extern u8 sub_8134194(u8); // src/decoration_inventory
extern bool8 sub_81341D4(void); // src/decoration_inventory
extern void sub_8134104(u8); // src/decoration_inventory
-extern bool8 IsWeatherNotFadingIn(void);
extern void sub_8109DAC(u8); // src/trader
extern void ReshowPlayerPC(u8); // src/player_pc
void Task_SecretBasePC_Decoration(u8);
diff --git a/include/easy_chat.h b/include/easy_chat.h
index 58750fa92..b86b166aa 100644
--- a/include/easy_chat.h
+++ b/include/easy_chat.h
@@ -117,6 +117,7 @@ struct Shared1000
// const pointer to shared1000. easy_chat might be two separate files.
extern struct Shared1000 *const gEasyChatStruct;
+void sub_80E60D8(void);
void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3);
u16 sub_80EB72C(u16 group);
void sub_80EB6FC(u16 *, u16);
diff --git a/include/field_map_obj.h b/include/event_object_movement.h
index cf3be36b2..495942656 100644
--- a/include/field_map_obj.h
+++ b/include/event_object_movement.h
@@ -1,5 +1,5 @@
-#ifndef GUARD_FIELD_MAP_OBJ_H
-#define GUARD_FIELD_MAP_OBJ_H
+#ifndef GUARD_EVENTOBJMV_H
+#define GUARD_EVENTOBJMV_H
#include "sprite.h"
@@ -436,5 +436,43 @@ void sub_8060320(u32, s16 *, s16 *, s16, s16);
u8 obj_unfreeze(struct Sprite *, s16, s16, u8);
u16 npc_paltag_by_palslot(u8);
void sub_8060470(s16 *, s16 *, s16, s16);
+bool8 FreezeMapObject(struct MapObject *);
+void FreezeMapObjects(void);
+void FreezeMapObjectsExceptOne(u8);
+void UnfreezeMapObjects(void);
+void sub_806487C(struct Sprite *sprite, bool8 invisible);
+void sub_8064990(u8, u8);
+void UnfreezeMapObject(struct MapObject *mapObject);
+void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3);
+void sub_806467C(struct Sprite *sprite, u8 direction);
+bool8 sub_806468C(struct Sprite *sprite);
+void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4);
+void DoShadowFieldEffect(struct MapObject *mapObject);
+u8 sub_8064704(struct Sprite *);
+u8 sub_806478C(struct Sprite *);
+void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3);
+void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite);
+bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y);
+bool8 AreZCoordsCompatible(u8 z1, u8 z2);
+void FieldObjectUpdateMetatileBehaviors(struct MapObject *);
+void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *);
+void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *);
+void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *);
+void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *);
+void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *);
+void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *);
+void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *);
+void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *);
+void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *);
+void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *);
+void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *);
+u8 FieldObjectCheckForReflectiveSurface(struct MapObject *);
+u8 GetLedgeJumpDirection(s16, s16, u8);
+u8 ZCoordToPriority(u8);
+void FieldObjectUpdateZCoord(struct MapObject *pObject);
+void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
-#endif // GUARD_FIELD_MAP_OBJ_H
+#endif // GUARD_EVENTOBJMV_H
diff --git a/include/ewram.h b/include/ewram.h
index 2f1c2d1ab..f1d9baa78 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -13,7 +13,6 @@ extern u8 gSharedMem[];
#define ewram0_2 (*(struct Struct2000000 *)(gSharedMem + 0x0))
#define namingScreenData (*(struct NamingScreenData *)(gSharedMem + 0x0))
#define ewramBerryPic (gSharedMem + 0x0)
-#define ewram0_3 (*(struct UnknownStruct3 *)(gSharedMem + 0x0))
#define ewram0_4 (*(struct Unk2000000 *)(gSharedMem + 0x0))
#define ewram0_5 (*(struct UnkStruct *)(gSharedMem + 0x0))
#define eMatsudaDebugVar (gSharedMem[0x0])
@@ -28,6 +27,7 @@ extern u8 gSharedMem[];
#define ewram0_9(i) (u8 *)(ewram_addr + (i * 0x20))
#define ewram0_10 (*(struct UnknownPokenav0*)(gSharedMem + 0))
#define ewram0_11 (*(struct UnknownPokenav0_1*)(gSharedMem + 0))
+#define ePokemonStorageSystem (*(struct PokemonStorageSystemData *)(gSharedMem + 0))
#define ewram4 (*(struct UnknownStruct8 *)(gSharedMem + 0x4))
#define ewram520 ((struct UnknownStruct7 *)(gSharedMem + 0x00520))
#define ewram520_2 (u8 *)(ewram_addr + 0x520)
@@ -38,10 +38,6 @@ extern u8 gSharedMem[];
#define ewram01000 (*(struct Unk2001000 *)(gSharedMem + 0x1000))
#define ewramBerryPicTemp (gSharedMem + 0x1000)
#define EWRAM_1000 (*(struct Struct2001000 *)(gSharedMem + 0x1000))
-#define gUnk20011fa (u8 *)(&gSharedMem[0x11FA])
-#define gUnk2002694 (u8 *)(&gSharedMem[0x2694])
-#define gUnk20026A6 (u8 *)(&gSharedMem[0x26A6])
-#define gUnk20026e4 (u8 *)(&gSharedMem[0x26E4])
#define ewram4000 (gSharedMem + 0x4000)
#define gUnknown_02007000 (*(ewramStruct_02007000 *)(gSharedMem + 0x7000))
#define ARRAY_2007800 ((struct EasyChatPair *)(gSharedMem + 0x7800))
@@ -251,6 +247,7 @@ extern u8 gSharedMem[];
#define ewram1C000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000))
#define ewram1c000 (*(struct Unk201C000 *)(gSharedMem + 0x1C000)) // FIXME, names too similar
#define eHallOfFameMons1 (struct HallofFameMons*)(&gSharedMem[0x1C000])
+#define eHOFPCScreenEffect (*(struct PCScreenEffectStruct *)(gSharedMem + 0x1c000))
#define EWRAM_1C800 (*(struct Unk201C800 *)(gSharedMem + 0x1C800))
#define ewram1D000 ((struct Pokemon *)(gSharedMem + 0x1D000))
#define ewram1D000_2 ((u16 *)(gSharedMem + 0x1D000))
diff --git a/include/field_control_avatar.h b/include/field_control_avatar.h
index 2d5693e40..49e9f23e3 100644
--- a/include/field_control_avatar.h
+++ b/include/field_control_avatar.h
@@ -36,5 +36,6 @@ bool8 sub_8068870(u16 a);
bool8 sub_8068894(void);
bool8 sub_8068A64(struct MapPosition *, u16);
u8 sub_8068F18(void);
+bool8 dive_warp(struct MapPosition *position, u16 b);
#endif
diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h
index 4377367f7..cd0cb6eab 100644
--- a/include/field_fadetransition.h
+++ b/include/field_fadetransition.h
@@ -27,5 +27,6 @@ void sub_8080F48(void);
void sub_8080F58(void);
void sub_8080F68(void);
void sub_8080F9C(void);
+void debug_sub_80888D8(void);
#endif // GUARD_FIELD_FADETRANSITION_H
diff --git a/include/field_ground_effect.h b/include/field_ground_effect.h
deleted file mode 100644
index 19d43c916..000000000
--- a/include/field_ground_effect.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef GUARD_FIELD_GROUND_EFFECT_H
-#define GUARD_FIELD_GROUND_EFFECT_H
-
-bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y);
-bool8 AreZCoordsCompatible(u8 z1, u8 z2);
-void FieldObjectUpdateMetatileBehaviors(struct MapObject *);
-void GetGroundEffectFlags_Reflection(struct MapObject *, u32 *);
-void GetGroundEffectFlags_TallGrassOnSpawn(struct MapObject *, u32 *);
-void GetGroundEffectFlags_TallGrassOnBeginStep(struct MapObject *, u32 *);
-void GetGroundEffectFlags_LongGrassOnSpawn(struct MapObject *, u32 *);
-void GetGroundEffectFlags_LongGrassOnBeginStep(struct MapObject *, u32 *);
-void GetGroundEffectFlags_Tracks(struct MapObject *, u32 *);
-void GetGroundEffectFlags_SandPile(struct MapObject *, u32 *);
-void GetGroundEffectFlags_ShallowFlowingWater(struct MapObject *, u32 *);
-void GetGroundEffectFlags_Puddle(struct MapObject *, u32 *);
-void GetGroundEffectFlags_Ripple(struct MapObject *, u32 *);
-void GetGroundEffectFlags_ShortGrass(struct MapObject *, u32 *);
-void GetGroundEffectFlags_HotSprings(struct MapObject *, u32 *);
-void GetGroundEffectFlags_Seaweed(struct MapObject *, u32 *);
-void GetGroundEffectFlags_JumpLanding(struct MapObject *, u32 *);
-u8 FieldObjectCheckForReflectiveSurface(struct MapObject *);
-u8 GetLedgeJumpDirection(s16, s16, u8);
-u8 ZCoordToPriority(u8);
-void FieldObjectUpdateZCoord(struct MapObject *pObject);
-void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
-
-#endif // GUARD_FIELD_GROUND_EFFECT_H
diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h
deleted file mode 100644
index f760bf153..000000000
--- a/include/field_map_obj_helpers.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef GUARD_FIELDMAPOBJHELP_H
-#define GUARD_FIELDMAPOBJHELP_H
-
-#include "sprite.h"
-
-bool8 FreezeMapObject(struct MapObject *);
-void FreezeMapObjects(void);
-void FreezeMapObjectsExceptOne(u8);
-void UnfreezeMapObjects(void);
-void sub_806487C(struct Sprite *sprite, bool8 invisible);
-void sub_8064990(u8, u8);
-void UnfreezeMapObject(struct MapObject *mapObject);
-void oamt_npc_ministep_reset(struct Sprite *sprite, u8 a2, u8 a3);
-void sub_806467C(struct Sprite *sprite, u8 direction);
-bool8 sub_806468C(struct Sprite *sprite);
-void sub_80646E4(struct Sprite *sprite, u8 a2, u8 a3, u8 a4);
-void DoShadowFieldEffect(struct MapObject *mapObject);
-u8 sub_8064704(struct Sprite *);
-u8 sub_806478C(struct Sprite *);
-void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 a2, u8 a3);
-void DoRippleFieldEffect(struct MapObject *mapObj, struct Sprite *sprite);
-
-#endif
diff --git a/include/field_specials.h b/include/field_specials.h
index 52325879c..a8e8d3da7 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -26,5 +26,6 @@ void SetShoalItemFlag(u16);
u8 GetLeadMonIndex(void);
void ResetFanClub(void);
u8 sub_810FB10(u8 a0);
+void sub_810FEFC(void);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/fieldmap.h b/include/fieldmap.h
index 67b85fa62..5aa9eb360 100644
--- a/include/fieldmap.h
+++ b/include/fieldmap.h
@@ -1,6 +1,6 @@
#ifndef GUARD_FIELDMAP2_H
#define GUARD_FIELDMAP2_H
-#include "field_map_obj.h"
+#include "event_object_movement.h"
extern struct BackupMapData gUnknown_03004870;
struct MapHeader *mapconnection_get_mapheader(struct MapConnection *connection);
diff --git a/include/gba/macro.h b/include/gba/macro.h
index d39d10738..ab42c9da3 100644
--- a/include/gba/macro.h
+++ b/include/gba/macro.h
@@ -105,7 +105,7 @@
#define DmaClearLarge(dmaNum, dest, size, block, bit) \
{ \
- const void *_dest = dest; \
+ void *_dest = dest; \
u32 _size = size; \
while (1) \
{ \
diff --git a/include/global.berry.h b/include/global.berry.h
index 21a0dd500..8f185c8f9 100644
--- a/include/global.berry.h
+++ b/include/global.berry.h
@@ -3,7 +3,7 @@
struct Berry
{
- /*0x00*/ const u8 name[7];
+ /*0x00*/ u8 name[7];
/*0x07*/ u8 firmness;
/*0x08*/ u16 size;
/*0x0A*/ u8 maxYield;
diff --git a/include/global.h b/include/global.h
index d0af4a4d1..faa4ace68 100644
--- a/include/global.h
+++ b/include/global.h
@@ -65,6 +65,15 @@ enum
#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24))
#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr)
+// Credits to Made (dolphin emoji)
+#define S16TOPOSFLOAT(val) \
+({ \
+ s16 v = (val); \
+ float f = (float)v; \
+ if(v < 0) f += 65536.0f; \
+ f; \
+})
+
enum
{
VERSION_SAPPHIRE = 1,
@@ -623,7 +632,7 @@ struct SaveBlock1 /* 0x02025734 */
/*0x24*/ struct WarpData warp4;
/*0x2C*/ u16 savedMusic;
/*0x2E*/ u8 weather;
- /*0x2F*/ u8 filler_2F;
+ /*0x2F*/ u8 weatherCycleStage;
/*0x30*/ u8 flashLevel; // flash level on current map, 0 being normal and 4 being the darkest
/*0x32*/ u16 mapDataId;
/*0x34*/ u16 mapView[0x100];
@@ -725,46 +734,37 @@ struct Pokedex
struct BattleTowerTrainer
{
- u8 trainerClass;
- u8 name[8];
- u8 teamFlags;
- struct {
- u16 easyChat[6];
- } greeting;
+ /*0x00*/ u8 trainerClass;
+ /*0x01*/ u8 name[8];
+ /*0x09*/ u8 teamFlags;
+ u8 filler0A[2];
+ /*0x0C*/ u16 greeting[6];
};
struct BattleTowerRecord // record mixing
{
- /*0x00*/u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
- /*0x01*/u8 trainerClass;
- /*0x02*/u16 winStreak;
- /*0x04*/u8 name[8];
- /*0x0C*/u8 trainerId[4];
- /*0x10*/struct {
- u16 easyChat[6];
- } greeting;
- /*0x1C*/struct UnknownPokemonStruct party[3];
- /*0xA0*/u32 checksum;
+ /*0x00*/ u8 battleTowerLevelType; // 0 = level 50, 1 = level 100
+ /*0x01*/ u8 trainerClass;
+ /*0x02*/ u16 winStreak;
+ /*0x04*/ u8 name[8];
+ /*0x0C*/ u8 trainerId[4];
+ /*0x10*/ u16 greeting[6];
+ /*0x1C*/ struct UnknownPokemonStruct party[3];
+ /*0xA0*/ u32 checksum;
};
struct BattleTowerEReaderTrainer
{
- /*0x00*/u8 unk0;
- /*0x01*/u8 trainerClass;
- /*0x02*/u16 winStreak;
- /*0x04*/u8 name[8];
- /*0x0C*/u8 trainerId[4];
- /*0x10*/struct {
- u16 easyChat[6];
- } greeting;
- /*0x1C*/struct {
- u16 easyChat[6];
- } farewellPlayerLost;
- /*0x28*/struct {
- u16 easyChat[6];
- } farewellPlayerWon;
- /*0x34*/struct UnknownPokemonStruct party[3];
- /*0xB8*/u32 checksum;
+ /*0x00*/ u8 unk0;
+ /*0x01*/ u8 trainerClass;
+ /*0x02*/ u16 winStreak;
+ /*0x04*/ u8 name[8];
+ /*0x0C*/ u8 trainerId[4];
+ /*0x10*/ u16 greeting[6];
+ /*0x1C*/ u16 farewellPlayerLost[6];
+ /*0x28*/ u16 farewellPlayerWon[6];
+ /*0x34*/ struct UnknownPokemonStruct party[3];
+ /*0xB8*/ u32 checksum;
};
struct BattleTowerData
@@ -822,7 +822,7 @@ struct MapPosition
{
s16 x;
s16 y;
- u8 height;
+ s8 height;
};
struct UnkStruct_8054FF8
@@ -841,8 +841,6 @@ struct HallOfFame
u8 filler[0x1F00];
};
-extern struct HallOfFame gHallOfFame;
extern struct SaveBlock2 gSaveBlock2;
-extern u8 ewram[];
#endif // GUARD_GLOBAL_H
diff --git a/include/graphics.h b/include/graphics.h
index 243d40fb9..bdb2b160e 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -2739,7 +2739,15 @@ extern const u16 gCableCar_Pal[];
extern const u16 gCableCarBG_Pal[];
extern const u8 gCableCarBG_Gfx[];
-// data/graphics.s
+extern const u8 gPSSMenuHeader_Gfx[];
+extern const u8 gPSSMenuHeader_Tilemap[];
+extern const u16 gPSSMenu1_Pal[];
+extern const u16 gPSSMenu2_Pal[];
+extern const u8 gPSSMenuMisc_Gfx[];
+extern const u8 gPSSMenuMisc_Tilemap[];
+extern const u16 gPSSMenu3_Pal[];
+extern const u16 gPSSMenu4_Pal[];
+
extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_000;
extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_001;
extern struct CompressedSpriteSheet gBattleAnimSpriteSheet_002;
diff --git a/include/hof_pc.h b/include/hof_pc.h
new file mode 100644
index 000000000..c6df4e9a1
--- /dev/null
+++ b/include/hof_pc.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_hof_pc_H
+#define GUARD_hof_pc_H
+
+// Exported type declarations
+
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+void ReturnFromHallOfFamePC(void);
+
+#endif //GUARD_hof_pc_H
diff --git a/include/item.h b/include/item.h
index 8f6cc883b..57aebf88e 100644
--- a/include/item.h
+++ b/include/item.h
@@ -1,27 +1,8 @@
#ifndef GUARD_ITEM_H
#define GUARD_ITEM_H
-
typedef void (*ItemUseFunc)(u8);
-struct Item
-{
- u8 name[14];
- u16 itemId;
- u16 price;
- u8 holdEffect;
- u8 holdEffectParam;
- const u8 *description;
- u8 importance;
- u8 unk19;
- u8 pocket;
- u8 type;
- ItemUseFunc fieldUseFunc;
- u8 battleUsage;
- ItemUseFunc battleUseFunc;
- u8 secondaryId;
-};
-
struct BagPocket
{
struct ItemSlot *itemSlots;
@@ -30,8 +11,6 @@ struct BagPocket
#define NUM_BAG_POCKETS 5
-extern const struct BagPocket gBagPockets[NUM_BAG_POCKETS];
-
void CopyItemName(u16 itemId, u8 *string);
bool8 IsBagPocketNonEmpty(u8 pocket);
bool8 CheckBagHasItem(u16 itemId, u16 count);
@@ -45,7 +24,7 @@ bool8 CheckPCHasItem(u16 itemId, u16 count);
bool8 AddPCItem(u16 itemId, u16 count);
void RemovePCItem(u8 index, u16 count);
void SwapRegisteredBike(void);
-const struct Item *ItemId_GetItem(u16 itemId);
+const u8 *ItemId_GetName(u16 itemId);
u16 ItemId_GetId(u16 itemId);
u16 ItemId_GetPrice(u16 itemId);
u8 ItemId_GetHoldEffect(u16 itemId);
diff --git a/include/link.h b/include/link.h
index 6581fdbba..ca6c368ff 100644
--- a/include/link.h
+++ b/include/link.h
@@ -131,10 +131,11 @@ extern const struct BlockRequest sBlockRequestLookupTable[5];
extern struct Link gLink;
extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
+// TODO: Why is gBlockSendBuffer a u8 array, while gBlockRecvBuffer is a u16 array?
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
+extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern u16 gLinkType;
extern u32 gLinkStatus;
-extern u16 gBlockRecvBuffer[MAX_LINK_PLAYERS][BLOCK_BUFFER_SIZE / 2];
extern u16 gSendCmd[CMD_LENGTH];
extern u8 gShouldAdvanceLinkState;
#if GERMAN
@@ -145,6 +146,9 @@ extern struct LinkPlayer gLinkPlayers[];
extern u16 word_3002910[];
extern bool8 gReceivedRemoteLinkPlayers;
extern bool8 gLinkOpen;
+extern bool8 gLinkPlayerPending[MAX_LINK_PLAYERS];
+void (*gLinkCallback)(void);
+extern u8 gUnknown_Debug_30030E0;
void Task_DestroySelf(u8);
void sub_8007270(u8);
@@ -194,5 +198,11 @@ u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]);
void LinkVSync(void);
void Timer3Intr(void);
void SerialCB(void);
+void LinkTestScreen(void);
+void debug_sub_8008218(u16 *buffer, u32 arg1, u16 *arg2, u32 arg3);
+void debug_sub_8008264(u32 value, int left, int top, int r3, int sp0);
+u32 sub_8007E40(void);
+void PrintHex(u32, u8, u8, u8);
+void InitLinkTestBG_Unused(u8, u8, u8, u8);
#endif // GUARD_LINK_H
diff --git a/include/macros/battle_anim.inc b/include/macros/battle_anim.inc
index 4ff845032..bf409a848 100644
--- a/include/macros/battle_anim.inc
+++ b/include/macros/battle_anim.inc
@@ -1,14 +1,14 @@
- .macro loadsprite id
+ .macro loadspritegfx id
.byte 0x00
.2byte \id
.endm
- .macro unloadsprite id
+ .macro unloadspritegfx id
.byte 0x01
.2byte \id
.endm
- .macro sprite template, priority, argv:vararg
+ .macro createsprite template, priority, argv:vararg
.byte 0x02
.4byte \template
.byte \priority
@@ -18,7 +18,7 @@
.Lsprite_\@_2:
.endm
- .macro createtask addr, priority, argv:vararg
+ .macro createvisualtask addr, priority, argv:vararg
.byte 0x03
.4byte \addr
.byte \priority
@@ -28,12 +28,12 @@
.Lcreatetask_\@_2:
.endm
- .macro pause delay
+ .macro delay amount
.byte 0x04
- .byte \delay
+ .byte \amount
.endm
- .macro wait
+ .macro waitforvisualfinish
.byte 0x05
.endm
@@ -78,29 +78,29 @@
.4byte \addr
.endm
- .macro ret
+ .macro return
.byte 0x0F
.endm
- .macro setvar var_num, value
+ .macro setarg arg_num, value
.byte 0x10
- .byte \var_num
+ .byte \arg_num
.2byte \value
.endm
- .macro ifelse addr1, addr2
+ .macro choosetwoturnanim addr1, addr2
.byte 0x11
.4byte \addr1
.4byte \addr2
.endm
- .macro jumpif cond, addr
+ .macro jumpifmoveturn cond, addr
.byte 0x12
.byte \cond
.4byte \addr
.endm
- .macro jump addr
+ .macro goto addr
.byte 0x13
.4byte \addr
.endm
@@ -127,7 +127,7 @@
.byte \id
.endm
- .macro panse_19 id, pan
+ .macro playsewithpan id, pan
.byte 0x19
.2byte \id
.byte \pan
@@ -147,7 +147,7 @@
.byte \delay
.endm
- .macro panse_1C id, pan, delay, count
+ .macro loopsewithpan id, pan, delay, count
.byte 0x1C
.2byte \id
.byte \pan
@@ -155,7 +155,7 @@
.byte \count
.endm
- .macro panse_1D id, pan, count
+ .macro waitplaysewithpan id, pan, count
.byte 0x1D
.2byte \id
.byte \pan
@@ -167,7 +167,7 @@
.2byte \bldcnt
.endm
- .macro createtask_1F addr, argv:vararg
+ .macro createsoundtask addr, argv:vararg
.byte 0x1F
.4byte \addr
.byte (.Lcreatetask_1F_\@_2 - .Lcreatetask_1F_\@_1) / 2
@@ -180,29 +180,29 @@
.byte 0x20
.endm
- .macro jumpvareq var_num, value, addr
+ .macro jumpargeq arg_num, value, addr
.byte 0x21
- .byte \var_num
+ .byte \arg_num
.2byte \value
.4byte \addr
.endm
- .macro monbg_22 unk
+ .macro monbg_22 bank
.byte 0x22
- .byte \unk
+ .byte \bank
.endm
- .macro clearmonbg_23 unk
+ .macro clearmonbg_23 bank
.byte 0x23
- .byte \unk
+ .byte \bank
.endm
- .macro jumpunkcond addr
+ .macro jumpifcontest addr
.byte 0x24
.4byte \addr
.endm
- .macro fadetobg_25 a, b, c
+ .macro fadetobgfromset a, b, c
.byte 0x25
.byte \a
.byte \b
@@ -227,38 +227,38 @@
.byte \delay
.endm
- .macro monbgprio_28 unk
+ .macro monbgprio_28 bank
.byte 0x28
- .byte \unk
+ .byte \bank
.endm
.macro monbgprio_29
.byte 0x29
.endm
- .macro monbgprio_2A unk
+ .macro monbgprio_2A bank
.byte 0x2A
- .byte \unk
+ .byte \bank
.endm
- .macro invisible side
+ .macro invisible bank
.byte 0x2B
- .byte \side
+ .byte \bank
.endm
- .macro visible side
+ .macro visible bank
.byte 0x2C
- .byte \side
+ .byte \bank
.endm
- .macro doublebattle_2D unk
+ .macro doublebattle_2D bank
.byte 0x2D
- .byte \unk
+ .byte \bank
.endm
- .macro doublebattle_2E unk
+ .macro doublebattle_2E bank
.byte 0x2E
- .byte \unk
+ .byte \bank
.endm
.macro stopsound
diff --git a/include/main.h b/include/main.h
index ff9bb89c7..78403225e 100644
--- a/include/main.h
+++ b/include/main.h
@@ -51,6 +51,8 @@ extern bool8 gLinkVSyncDisabled;
extern const u8 gGameVersion;
extern const u8 gGameLanguage;
+extern u16 gKeyRepeatStartDelay;
+
void AgbMain(void);
void SetMainCallback2(MainCallback callback);
void InitKeys(void);
diff --git a/include/mon_markings.h b/include/mon_markings.h
new file mode 100644
index 000000000..d06264865
--- /dev/null
+++ b/include/mon_markings.h
@@ -0,0 +1,31 @@
+#ifndef POKERUBY_MON_MARKINGS_H
+#define POKERUBY_MON_MARKINGS_H
+
+struct PokemonMarkMenu
+{
+ /*0x0000*/ u16 baseTileTag;
+ /*0x0002*/ u16 basePaletteTag;
+ /*0x0004*/ u8 markings; // bit flags
+ /*0x0005*/ s8 cursorPos;
+ /*0x0006*/ bool8 markingsArray[4];
+ /*0x000A*/ u8 cursorBaseY;
+ /*0x000B*/ bool8 spriteSheetLoadRequired;
+ /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window
+ /*0x0014*/ struct Sprite *menuMarkingSprites[4];
+ /*0x0024*/ struct Sprite *menuTextSprite;
+ /*0x0028*/ const u8 *frameTiles;
+ /*0x002C*/ const u16 *framePalette;
+ /*0x0030*/ u8 menuWindowSpriteTiles[0x1000];
+ /*0x1030*/ u8 filler1030[0x80];
+ /*0x10B0*/ u8 tileLoadState;
+}; // 10b4
+
+void sub_80F727C(struct PokemonMarkMenu *ptr);
+void sub_80F7404(void);
+void sub_80F7418(u8 markings, s16 x, s16 y);
+void sub_80F7470(void);
+bool8 sub_80F7500(void);
+struct Sprite *sub_80F7940(u16 tileTag, u16 paletteTag, const u16 *palette);
+void sub_80F7A10(u8 markings, void *dest);
+
+#endif //POKERUBY_MON_MARKINGS_H
diff --git a/include/mystery_event_menu.h b/include/mystery_event_menu.h
index 8801789d9..c1f5fbb8f 100644
--- a/include/mystery_event_menu.h
+++ b/include/mystery_event_menu.h
@@ -2,5 +2,6 @@
#define GUARD_MYSTERY_EVENT_MENU_H
void CB2_InitMysteryEventMenu(void);
+void debug_sub_815D15C(void);
#endif // GUARD_MYSTERY_EVENT_MENU_H
diff --git a/include/new_game.h b/include/new_game.h
index 5be7f6265..c90606b5a 100644
--- a/include/new_game.h
+++ b/include/new_game.h
@@ -1,6 +1,8 @@
#ifndef GUARD_NEW_GAME_H
#define GUARD_NEW_GAME_H
+extern u8 gUnknown_020297ED;
+
void write_word_to_mem(u32 var, u8 *dataPtr);
void copy_word_to_mem(u8 *copyTo, u8 *copyFrom);
void InitPlayerTrainerId(void);
diff --git a/include/overworld.h b/include/overworld.h
index 0954f1b63..dc393cc63 100644
--- a/include/overworld.h
+++ b/include/overworld.h
@@ -24,6 +24,8 @@ struct UCoords32
extern const struct UCoords32 gUnknown_0821664C[];
extern void (*gFieldCallback)(void);
+extern u8 gFieldLinkPlayerCount;
+extern u8 gUnknown_03004860;
// sub_8052F5C
void Overworld_ResetStateAfterFly(void);
@@ -91,7 +93,7 @@ void sub_8053D14(u16);
// GetLocationMusic
// GetCurrLocationDefaultMusic
// GetWarpDestinationMusic
-// Overworld_ResetMapMusic
+void Overworld_ResetMapMusic(void);
void Overworld_PlaySpecialMapMusic(void);
void Overworld_SetSavedMusic(u16);
void Overworld_ClearSavedMusic(void);
@@ -185,11 +187,11 @@ u16 sub_8055438(u32);
// sub_80554B8
// sub_80554BC
// sub_80554E4
-// sub_80554F8
+s32 sub_80554F8(void);
// unref_sub_8055568
-// sub_8055574
+u16 sub_8055574(void);
u16 sub_8055588(void);
-// sub_805559C
+u16 sub_805559C(void);
void sub_80555B0(int linkPlayerId, int a2, struct UnkStruct_8054FF8 *a3);
bool32 sub_8055618(struct UnkStruct_8054FF8 *);
bool32 sub_8055630(struct UnkStruct_8054FF8 *);
@@ -235,4 +237,6 @@ void CreateLinkPlayerSprite(u8);
void SpriteCB_LinkPlayer(struct Sprite *);
void sub_805465C(void);
+void CB2_InitTestMenu(void);
+
#endif // GUARD_ROM4_H
diff --git a/include/pc_screen_effect.h b/include/pc_screen_effect.h
new file mode 100644
index 000000000..d3f6d22de
--- /dev/null
+++ b/include/pc_screen_effect.h
@@ -0,0 +1,21 @@
+#ifndef GUARD_PC_SCREEN_EFFECT_H
+#define GUARD_PC_SCREEN_EFFECT_H
+
+struct PCScreenEffectStruct
+{
+ /*0x00*/ u16 tileTag;
+ /*0x02*/ u16 paletteTag;
+ /*0x04*/ u16 unk04;
+ /*0x06*/ u16 unk06;
+ /*0x08*/ u16 unk08;
+ /*0x0A*/ u16 unk0A;
+ /*0x0C*/ s16 unk0C;
+ /*0x10*/ u32 selectedPalettes;
+};
+
+void sub_80C5CD4(struct PCScreenEffectStruct *unkStruct);
+bool8 sub_80C5DCC(void);
+void sub_80C5E38(struct PCScreenEffectStruct *unkStruct);
+bool8 sub_80C5F98(void);
+
+#endif //GUARD_PC_SCREEN_EFFECT_H
diff --git a/include/pokeblock.h b/include/pokeblock.h
index 6720653a0..a606a32ad 100644
--- a/include/pokeblock.h
+++ b/include/pokeblock.h
@@ -3,12 +3,20 @@
enum
{
- PBLOCK_CLR_BLACK,
- PBLOCK_CLR_RED,
+ PBLOCK_CLR_RED = 1,
PBLOCK_CLR_BLUE,
PBLOCK_CLR_PINK,
PBLOCK_CLR_GREEN,
- PBLOCK_CLR_YELLOW
+ PBLOCK_CLR_YELLOW,
+ PBLOCK_CLR_PURPLE,
+ PBLOCK_CLR_INDIGO,
+ PBLOCK_CLR_BROWN,
+ PBLOCK_CLR_LITEBLUE,
+ PBLOCK_CLR_OLIVE,
+ PBLOCK_CLR_GRAY,
+ PBLOCK_CLR_BLACK,
+ PBLOCK_CLR_WHITE,
+ PBLOCK_CLR_GOLD,
};
enum
@@ -34,6 +42,7 @@ s16 PokeblockGetGain(u8, const struct Pokeblock *);
u8 sub_810CB68(u8, u8*);
void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest);
void CB2_PreparePokeblockFeedScene(void);
+bool8 sub_810CA34(const struct Pokeblock *);
#include "main.h"
diff --git a/include/pokemon.h b/include/pokemon.h
index 6e3e15404..169045c0c 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -428,10 +428,10 @@ struct BattleMove
struct PokemonStorage
{
- /*0x00*/ u8 currentBox;
- /*0x01*/ struct BoxPokemon boxes[14][30];
- u8 boxNames[14][9];
- u8 unkArray[14];
+ /*0x0000*/ u8 currentBox;
+ /*0x0004*/ struct BoxPokemon boxes[14][30];
+ /*0x8344*/ u8 boxNames[14][9];
+ /*0x83c2*/ u8 wallpaper[14];
};
struct SpindaSpot
@@ -522,7 +522,7 @@ void sub_803ADE8(struct Pokemon *mon, struct UnknownPokemonStruct *src);
void sub_803AF78(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
void CalculateMonStats(struct Pokemon *mon);
-void sub_803B4B4(const struct BoxPokemon *src, struct Pokemon *dest);
+void ExpandBoxMon(const struct BoxPokemon *src, struct Pokemon *dest);
u8 GetLevelFromMonExp(struct Pokemon *mon);
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
@@ -627,9 +627,8 @@ void RandomlyGivePartyPokerus(struct Pokemon *party);
void PartySpreadPokerus(struct Pokemon *party);
struct Sprite *sub_80F7920(u16, u16, const u16 *);
+void BoxMonRestorePP(struct BoxPokemon *);
bool8 HealStatusConditions(struct Pokemon *mon, u32 unused, u32 healMask, u8 battleId);
-
-
#endif // GUARD_POKEMON_H
diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h
index 258735502..ad0e4b56b 100644
--- a/include/pokemon_icon.h
+++ b/include/pokemon_icon.h
@@ -1,6 +1,9 @@
#ifndef GUARD_POKEMON_ICON_H
#define GUARD_POKEMON_ICON_H
+extern const u8 * const gMonIconTable[];
+extern const u8 gMonIconPaletteIndices[];
+
u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u32 personality);
u8 UpdateMonIconFrame(struct Sprite *sprite);
u8 sub_809D3A4(u16 arg0, void (*)(struct Sprite *), int, u8 arg3, u32 arg4);
diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h
index 9fe3436ef..5319b7a2d 100644
--- a/include/pokemon_storage_system.h
+++ b/include/pokemon_storage_system.h
@@ -1,8 +1,302 @@
#ifndef GUARD_POKEMON_STORAGE_SYSTEM_H
#define GUARD_POKEMON_STORAGE_SYSTEM_H
+#include "pc_screen_effect.h"
+#include "mon_markings.h"
+
+enum {
+ PC_TEXT_EXIT_BOX,
+ PC_TEXT_WHAT_YOU_DO,
+ PC_TEXT_PICK_A_THEME,
+ PC_TEXT_PICK_A_WALLPAPER,
+ PC_TEXT_IS_SELECTED,
+ PC_TEXT_JUMP_TO_WHICH_BOX,
+ PC_TEXT_DEPOSIT_IN_WHICH_BOX,
+ PC_TEXT_WAS_DEPOSITED,
+ PC_TEXT_BOX_IS_FULL,
+ PC_TEXT_RELEASE_POKE,
+ PC_TEXT_WAS_RELEASED,
+ PC_TEXT_BYE_BYE,
+ PC_TEXT_MARK_POKE,
+ PC_TEXT_LAST_POKE,
+ PC_TEXT_PARTY_FULL,
+ PC_TEXT_HOLDING_POKE,
+ PC_TEXT_WHICH_ONE_WILL_TAKE,
+ PC_TEXT_CANT_RELEASE_EGG,
+ PC_TEXT_CONTINUE_BOX,
+ PC_TEXT_CAME_BACK,
+ PC_TEXT_WORRIED,
+ PC_TEXT_SURPRISE,
+ PC_TEXT_PLEASE_REMOVE_MAIL
+};
+
+enum {
+ PC_TEXT_FMT_NORMAL,
+ PC_TEXT_FMT_MON_NAME,
+ PC_TEXT_FMT_UNK_02,
+ PC_TEXT_FMT_UNK_03,
+ PC_TEXT_FMT_MON_NAME_2,
+ PC_TEXT_FMT_UNK_05,
+ PC_TEXT_FMT_MON_NAME_AFTER_EXCL_MARK
+};
+
+struct StorageAction {
+ const u8 *text;
+ u8 format;
+};
+
+struct PSS_MenuStringPtrs {
+ const u8 *text;
+ const u8 *desc;
+};
+
+struct UnkStruct_2000028 {
+ void *unk_00;
+ void *unk_04;
+ u16 unk_08;
+ u16 unk_0a;
+ void (*unk_0c)(struct UnkStruct_2000028 *data);
+};
+
+struct UnkStruct_2000020 {
+ struct UnkStruct_2000028 *unk_00;
+ u8 unk_04;
+ u8 unk_05;
+};
+
+struct UnkPSSStruct_2002370 {
+ struct Sprite *unk_0000;
+ struct Sprite *unk_0004[4];
+ u32 unk_0014[3];
+ struct Sprite *unk_0020[2];
+ u8 filler_0028[0x214];
+ u8 curBox;
+ u8 unk_023d;
+ u8 unk_023e;
+ u16 unk_0240;
+ u16 unk_0242;
+}; // 0244
+
+struct PokemonStorageSystemData {
+ void (*unk_0000)(void);
+ u8 unk_0004;
+ u8 unk_0005;
+ u8 unk_0006;
+ u8 unk_0007;
+ u16 unk_0008;
+ u16 unk_000a;
+ struct PCScreenEffectStruct unk_000c;
+ struct UnkStruct_2000020 unk_0020;
+ struct UnkStruct_2000028 unk_0028[8];
+ u16 unk_00a8[0x400];
+ u16 unk_08a8;
+ u16 unk_08aa;
+ u8 unk_08ac;
+ u8 unk_08ad;
+ u8 unk_08ae;
+ u8 unk_08af;
+ u8 unk_08b0;
+ bool8 unk_08b1;
+ s16 unk_08b2;
+ u16 unk_08b4;
+ u16 unk_08b6;
+ u16 unk_08b8;
+ bool8 unk_08ba;
+ u8 unk_08bb;
+ u16 unk_08bc;
+ u16 unk_08be;
+ u16 unk_08c0;
+ u16 unk_08c2;
+ u16 unk_08c4;
+ u16 unk_08c6;
+ u16 unk_08c8;
+ u8 unk_08ca[0x400];
+ u8 unk_0cca;
+ u16 unk_0ccc[0x10];
+ u16 unk_0cec;
+ u16 unk_0cee;
+ struct Sprite *unk_0cf0[2];
+ struct Sprite *unk_0cf8[2];
+ struct Sprite *unk_0d00[2];
+ u32 unk_0d08;
+ u8 filler_0d0c[0x50];
+ u16 unk_0d5c;
+ s16 unk_0d5e;
+ s16 unk_0d60;
+ u16 unk_0d62[360];
+ u8 unk_1032;
+ struct Sprite *unk_1034;
+ struct Sprite *unk_1038[6]; // party
+ struct Sprite *unk_1050[30]; // box
+ struct Sprite **unk_10c8;
+ struct Sprite **unk_10cc;
+ u16 unk_10d0[40];
+ u16 unk_1120[40];
+ u8 unk_1170;
+ u8 unk_1171;
+ u16 unk_1172;
+ s16 unk_1174;
+ s16 unk_1176;
+ u16 unk_1178;
+ u8 unk_117a;
+ s8 unk_117b;
+ u8 unk_117c;
+ u8 unk_117d;
+ u8 filler_117e[0x42];
+ struct Sprite *unk_11c0;
+ struct Sprite *unk_11c4;
+ s32 unk_11c8;
+ s32 unk_11cc;
+ s32 unk_11d0;
+ s32 unk_11d4;
+ s16 unk_11d8;
+ s16 unk_11da;
+ u16 unk_11dc;
+ s8 unk_11de;
+ s8 unk_11df;
+ u8 unk_11e0;
+ u8 unk_11e1;
+ u8 unk_11e2;
+ u8 unk_11e3;
+ u8 filler_11e4[4];
+ const u8 *unk_11e8;
+ u32 unk_11ec;
+ u16 unk_11f0;
+ u16 unk_11f2;
+ u8 filler_11f4[2];
+ u8 unk_11f6;
+ u8 unk_11f7;
+ u8 unk_11f8;
+ u8 unk_11f9;
+ u8 unk_11fa[0x15];
+ u8 unk_120f[0x25];
+ u8 unk_1234[0x25];
+ u8 unk_1259[0x21];
+ u8 unk_127a[0x2a];
+ bool8 (*unk_12a4)(void);
+ u8 unk_12a8;
+ u8 unk_12a9;
+ struct Sprite *unk_12ac;
+ struct Sprite *unk_12b0[2];
+ u16 *unk_12b8;
+ struct PokemonMarkMenu unk_12bc;
+ struct UnkPSSStruct_2002370 unk_2370;
+ struct Pokemon unk_25b4;
+ struct Pokemon unk_2618;
+ u8 unk_267c;
+ u8 unk_267d;
+ u8 unk_267e;
+ u8 unk_267f;
+ s8 unk_2680;
+ s8 unk_2681;
+ s8 unk_2682;
+ s8 unk_2683;
+ u16 unk_2684;
+ u16 unk_2686[3];
+ u8 unk_268c;
+ u8 unk_268d;
+ u8 unk_268e;
+ union {
+ struct Pokemon *pokemon;
+ struct BoxPokemon *box;
+ } unk_2690;
+ u8 unk_2694[18];
+ u8 unk_26a6[62];
+ u8 unk_26e4[0x16];
+ u16 unk_26fa;
+ u16 *unk_26fc;
+ struct Sprite *unk_2700;
+ u16 unk_2704[0x10];
+ u8 filler_2724[0x60];
+ u8 unk_2784[0x800];
+ u8 filler_2f84[0x1800];
+ u8 unk_4784[0x800];
+};
+
+extern u16 gUnknown_02039760[0x600];
+extern struct UnkPSSStruct_2002370 *gUnknown_02038478;
+extern struct PokemonStorageSystemData *const gPokemonStorageSystemPtr;
+extern u8 *const gUnknown_083B6DB8;
+
+u8 StorageSystemGetPartySize(void);
+s16 GetIndexOfFirstEmptySpaceInBoxN(u8 boxId);
+u8 CountAlivePartyMonsExceptOne(u8 toSkip);
+u8 CountPokemonInBoxN(u8 boxId);
+void sub_8096264(struct UnkPSSStruct_2002370 *a0, u16 tileTag, u16 palTag, u8 a3);
+void sub_809634C(u8 curBox);
+u8 sub_8096368(void);
+void sub_809635C(void);
+void sub_8096310(void);
+void sub_80961A8(void);
+void task_intro_29(u8 whichMenu);
void ResetPokemonStorageSystem(void);
-void BoxMonRestorePP(struct BoxPokemon *);
-void party_compaction(void);
+void ResetPSSMonIconSprites(void);
+void SpawnBoxIconSprites(u8 boxId);
+u8 get_preferred_box(void);
+void sub_8098BF0(void);
+void sub_8098D20(u8 monId);
+bool8 sub_80990AC(void);
+void sub_8099200(bool8 a0);
+void sub_8099310(void);
+bool8 sub_8099374(void);
+void sub_8099480(void);
+void sub_80994A8(s16 a0);
+void sub_8099520(u8 a0);
+void sub_809954C(void);
+void sub_8099584(u8 a0, u8 a1);
+void sub_809960C(u8 a0, u8 a1);
+void sub_80996B0(u8 a0, u8 a1);
+bool8 sub_809971C(void);
+void sub_809981C(u8 mode, u8 idx);
+bool8 sub_80998D8(void);
+void sub_8099920(void);
+void sub_8099958(void);
+bool8 sub_8099990(void);
+struct Sprite *sub_809A9A0(u16 x, u16 y, u8 animId, u8 priority, u8 subpriority);
+void sub_8099BF8(u8 a0);
+void sub_8099C70(u8 whichBox);
+bool8 sub_8099D34(void);
+void sub_8099DCC(u8 a0);
+bool8 sub_8099E08(void);
+void sub_809A860(bool8 a0);
+void sub_809AA24(void);
+void sub_809AA98(void);
+bool8 sub_809AC00(void);
+void sub_809B0C0(u8 a0);
+void sub_809B0D4(void);
+void sub_809B0E0(void);
+u8 sub_809B0F4(void);
+void sub_809B068(void);
+void sub_809B100(u8 a0);
+bool8 sub_809B130(void);
+void sub_809B440(void);
+bool8 sub_809B62C(u8);
+void sub_809B6BC(void);
+void sub_809B6DC(void);
+bool8 sub_809B734(void);
+void sub_809B760(void);
+void sub_809B7AC(void);
+void sub_809B7D4(void);
+s8 sub_809B960(void);
+void sub_809BB90(void);
+void sub_809BBC0(void);
+void sub_809BC18(void);
+void sub_809BD14(void);
+s16 party_compaction(void);
+void sub_809BDD8(u8 markings);
+bool8 sub_809BE80(void);
+bool8 sub_809BEBC(void);
+bool8 sub_809BF20(void);
+bool8 sub_809BF48(void);
+u8 sub_809CA40(void);
+void sub_809CDCC(void);
+void sub_809CDEC(u8 a0);
+void sub_809CE84(void);
+s16 sub_809CF30(void);
+void sub_809CFDC(struct UnkStruct_2000020 *a0, struct UnkStruct_2000028 *a1, u8 a2);
+void sub_809CFF0(void);
+void sub_809D034(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D104(void *dest, u16 dLeft, u16 dTop, const void *src, u16 sLeft, u16 sTop, u16 width, u16 height);
+void sub_809D16C(void *dest, u16 dLeft, u16 dTop, u16 width, u16 height);
#endif // GUARD_POKEMON_STORAGE_SYSTEM_H
diff --git a/include/region_map.h b/include/region_map.h
index 254307052..e7a357fe2 100644
--- a/include/region_map.h
+++ b/include/region_map.h
@@ -68,5 +68,6 @@ void CreateRegionMapPlayerIcon(u16, u16);
const u8 *GetMapSectionName(u8 *dest, u16 mapSectionId, u16 length);
const u8 *CopyMapName(u8 *dest, u16 b);
const u8 *CopyLocationName(u8 *dest, u16 b);
+void CB2_InitFlyRegionMap(void);
#endif // GUARD_REGION_MAP_H
diff --git a/include/reset_rtc_screen.h b/include/reset_rtc_screen.h
index 5807dec99..2de95534a 100644
--- a/include/reset_rtc_screen.h
+++ b/include/reset_rtc_screen.h
@@ -2,5 +2,6 @@
#define GUARD_RESET_RTC_SCREEN_H
void CB2_InitResetRtcScreen(void);
+void debug_sub_806F8F8(void);
#endif // GUARD_RESET_RTC_SCREEN_H
diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h
index 21ec88a90..1910b7cb2 100644
--- a/include/rom_8077ABC.h
+++ b/include/rom_8077ABC.h
@@ -12,12 +12,12 @@ struct Struct_sub_8078914 {
u8 GetBankPosition(u8, u8);
u8 sub_8077E44(u8 slot, u16 species, u8 a3);
-u8 GetAnimBankSpriteId(u8 side);
+u8 GetAnimBankSpriteId(u8 bank);
void StoreSpriteCallbackInData(struct Sprite *sprite, void(*callback)(struct Sprite *));
void sub_8078314(struct Sprite *sprite);
-void sub_8078364(struct Sprite *sprite);
-void sub_8078458(struct Sprite *sprite);
-void sub_80784A8(struct Sprite *sprite);
+void TranslateSpriteOverDuration(struct Sprite *sprite);
+void TranslateMonBGUntil(struct Sprite *sprite);
+void TranslateMonBGSubPixelUntil(struct Sprite *sprite);
u8 GetBankSide(u8);
u8 GetBankSide(u8);
u8 GetBankSide(u8 side);
@@ -34,11 +34,10 @@ u8 IsDoubleBattle(void);
bool8 IsDoubleBattle(void);
void sub_8078914();
u8 sub_80789BC();
-void sub_8078A5C(struct Sprite *sprite);
-void sub_8078A5C(struct Sprite *sprite);
-void obj_translate_based_on_private_1_2_3_4(struct Sprite *sprite);
-bool8 sub_8078B5C(struct Sprite *sprite);
-void sub_8078BB8(struct Sprite *sprite);
+void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
+void InitAnimSpriteTranslationDeltas(struct Sprite *sprite);
+bool8 TranslateAnimSpriteByDeltas(struct Sprite *sprite);
+void TranslateAnimSpriteByDeltasUntil(struct Sprite *sprite);
void sub_8078D44(struct Sprite *sprite);
void obj_id_set_rotscale(u8 sprite, s16, s16, u16);
bool8 sub_8078E38();
@@ -48,8 +47,8 @@ void sub_8078F9C(u8 sprite);
void sub_8079518(struct Sprite *sprite);
void sub_8079534(struct Sprite *sprite);
void sub_80796F8(u8 task);
-void sub_80797EC(struct Task *task);
-void sub_8079814(u8 taskId);
+void AnimTask_BlendMonInAndOutSetup(struct Task *task);
+void AnimTask_BlendMonInAndOutStep(u8 taskId);
void sub_8079A64(u8 sprite);
u16 sub_8079B10(u8 sprite);
void sub_8079BF4(s16 *bottom, s16 *top, const void *ptr);
@@ -65,12 +64,12 @@ void sub_807A850(struct Task *task, u8 taskId);
void sub_807A8D4(struct Sprite *sprite);
void sub_807A960(struct Sprite *sprite);
void sub_8078A34(struct Sprite *sprite);
-void sub_80787B0(struct Sprite *sprite, u8);
+void InitAnimSpritePos(struct Sprite *sprite, u8);
void sub_8078764(struct Sprite *sprite, u8);
-void sub_8078B34(struct Sprite *sprite);
+void StartTranslateAnimSpriteByDeltas(struct Sprite *sprite);
void sub_8078D60(struct Sprite *sprite);
-void sub_80786EC(struct Sprite *sprite);
-void sub_80782D8(struct Sprite *sprite);
+void InitAnimSpriteTranslationOverDuration(struct Sprite *sprite);
+void WaitAnimForDuration(struct Sprite *sprite);
void sub_8078CC0(struct Sprite *sprite);
void sub_8078600(struct Sprite *sprite);
void sub_8078504(struct Sprite *sprite);
@@ -83,10 +82,10 @@ void sub_8078C00(struct Sprite *sprite);
void sub_8078114(struct Sprite *sprite);
void sub_8078174(struct Sprite *sprite);
void sub_80793C4(struct Sprite *sprite);
-void sub_807A3FC(u8 slot, u8 a2, s16 *a3, s16 *a4);
+void SetAverageBattlerPositions(u8 slot, u8 a2, s16 *a3, s16 *a4);
u8 sub_8079ED4(u8 slot);
-int sub_807A100(u8 slot, u8 a2);
-u16 sub_80790F0(s16 a, s16 b);
+s16 sub_807A100(u8 slot, u8 a2);
+u16 ArcTan2Neg(s16 a, s16 b);
void sub_8078FDC(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
void sub_807867C(struct Sprite *sprite, s16 a2);
u8 sub_8077EE4(u8 slot, u8 a2);
@@ -99,9 +98,13 @@ void sub_80798F4(struct Task *task, u8 a2, const void *a3);
bool8 sub_807992C(struct Task *task);
u8 sub_8077FC0(u8 slot);
void move_anim_8074EE0(struct Sprite *sprite);
-bool8 sub_8078718(struct Sprite *sprite);
+bool8 TranslateAnimSpriteLinearAndSine(struct Sprite *sprite);
bool8 sub_8078CE8(struct Sprite *sprite);
void oamt_add_pos2_onto_pos1(struct Sprite *sprite);
void sub_8078BD4(struct Sprite *sprite);
+void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
+void sub_80789D4(bool8 a1);
+void sub_8079AB8(u8 sprite, u8 sprite2);
+u8 sub_807A4A0(int bank, u8 sprite, int species);
#endif // GUARD_ROM_8077ABC_H
diff --git a/include/rtc.h b/include/rtc.h
index fdc5ad709..e117cf753 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -44,5 +44,6 @@ void RtcInitLocalTimeOffset(s32 hour, s32 minute);
void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds);
void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2);
u32 RtcGetMinuteCount(void);
+void debug_sub_8009894(u8 *);
#endif // GUARD_RTC_UTIL_H
diff --git a/include/shop.h b/include/shop.h
index 80602e26c..347d46d3c 100644
--- a/include/shop.h
+++ b/include/shop.h
@@ -28,7 +28,7 @@ enum
struct MartInfo
{
/* 0x0 */ void (* callback) (void);
- /* 0x4 */ u16 *itemList;
+ /* 0x4 */ const u16 *itemList;
/* 0x8 */ u8 itemCount; // how many unique items are there for sale?
/* 0x9 */ u8 cursor; // this shows the on-screen true index of the cursor and not the current item selected.
/* 0xA */ u8 numChoices; // how many options does the mart have? can be either 2 or 1 (BUY/SELL vs BUY)
diff --git a/include/slot_machine.h b/include/slot_machine.h
index f886d9239..456f2bed6 100644
--- a/include/slot_machine.h
+++ b/include/slot_machine.h
@@ -1,79 +1,9 @@
#ifndef GUARD_SLOT_MACHINE_H
#define GUARD_SLOT_MACHINE_H
-enum {
- SLOT_MACHINE_TAG_7_RED,
- SLOT_MACHINE_TAG_7_BLUE,
- SLOT_MACHINE_TAG_AZURILL,
- SLOT_MACHINE_TAG_LOTAD,
- SLOT_MACHINE_TAG_CHERRY,
- SLOT_MACHINE_TAG_POWER,
- SLOT_MACHINE_TAG_REPLAY
-};
-
-enum {
- SLOT_MACHINE_MATCHED_1CHERRY,
- SLOT_MACHINE_MATCHED_2CHERRY,
- SLOT_MACHINE_MATCHED_REPLAY,
- SLOT_MACHINE_MATCHED_LOTAD,
- SLOT_MACHINE_MATCHED_AZURILL,
- SLOT_MACHINE_MATCHED_POWER,
- SLOT_MACHINE_MATCHED_777_MIXED,
- SLOT_MACHINE_MATCHED_777_RED,
- SLOT_MACHINE_MATCHED_777_BLUE,
- SLOT_MACHINE_MATCHED_NONE
-};
-
-struct SlotMachineEwramStruct {
- /*0x00*/ u8 state;
- /*0x01*/ u8 unk01;
- /*0x02*/ u8 pikaPower;
- /*0x03*/ u8 unk03;
- /*0x04*/ u8 unk04;
- /*0x05*/ u8 unk05;
- /*0x06*/ u8 unk06;
- /*0x07*/ u8 unk07;
- /*0x08*/ u16 matchedSymbols;
- /*0x0A*/ u8 unk0A;
- /*0x0B*/ u8 unk0B;
- /*0x0C*/ s16 coins;
- /*0x0E*/ s16 payout;
- /*0x10*/ s16 unk10;
- /*0x12*/ s16 bet;
- /*0x14*/ s16 unk14;
- /*0x16*/ s16 unk16;
- /*0x18*/ s16 unk18;
- /*0x1A*/ s16 unk1A;
- /*0x1C*/ s16 unk1C[3];
- /*0x22*/ u16 unk22[3];
- /*0x28*/ s16 reelPositions[3];
- /*0x2E*/ s16 unk2E[3];
- /*0x34*/ s16 unk34[3];
- /*0x3A*/ u8 reelTasks[3];
- /*0x3D*/ u8 unk3D;
- /*0x3E*/ u8 unk3E;
- /*0x3F*/ u8 unk3F;
- /*0x40*/ u8 unk40;
- /*0x41*/ u8 unk41;
- /*0x42*/ u8 unk42;
- /*0x43*/ u8 unk43;
- /*0x44*/ u8 unk44[5];
- /*0x49*/ u8 unk49[2];
- /*0x49*/ u8 unk4B[3];
- /*0x4E*/ u8 unk4E[2];
- /*0x50*/ u8 unk50[2];
- /*0x52*/ u8 unk52[2];
- /*0x54*/ u8 unk54[4];
- /*0x58*/ u16 win0h;
- /*0x5a*/ u16 win0v;
- /*0x5c*/ u16 winIn;
- /*0x5e*/ u16 winOut;
- /*0x60*/ u16 backupMapMusic;
- /*0x64*/ MainCallback prevMainCb;
-};
-
void PlaySlotMachine(u8 arg0, MainCallback cb);
void sub_8104DA4(void);
u8 sub_8105BB4(u8 templateIdx, u8 cbAndCoordsIdx, s16 a2);
+void debug_sub_811609C(u8, void (*)(void));
#endif // GUARD_SLOT_MACHINE_H
diff --git a/include/sprite.h b/include/sprite.h
index b72c09989..3ad418356 100644
--- a/include/sprite.h
+++ b/include/sprite.h
@@ -235,6 +235,7 @@ extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern u8 gReservedSpritePaletteCount;
+extern u16 gReservedSpriteTileCount;
extern u8 gOamLimit;
diff --git a/include/start_menu.h b/include/start_menu.h
index d3f77dc99..5e513b9dc 100644
--- a/include/start_menu.h
+++ b/include/start_menu.h
@@ -1,6 +1,8 @@
#ifndef GUARD_STARTER_CHOOSE_H
#define GUARD_STARTER_CHOOSE_H
+extern u8 (*gMenuCallback)(void);
+
//Public functions
void CreateStartMenuTask(void (*func)(u8));
void sub_80712B4(u8 taskId);
diff --git a/include/strings.h b/include/strings.h
index fe9cfc6ba..91c5c5344 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -164,7 +164,7 @@ extern const u8 gOtherText_None[];
extern const u8 gOtherText_ThreeQuestions2[];
-extern const u8 gOtherText_FiveQuestionsAndSlash[];
+extern const u8 gOtherText_FiveQuestions[];
extern const u8 gOtherText_OneDash[];
extern const u8 gOtherText_TwoDashes[];
diff --git a/include/text.h b/include/text.h
index f0d039d45..71afd1d00 100644
--- a/include/text.h
+++ b/include/text.h
@@ -253,4 +253,6 @@ void Text_StripExtCtrlCodes(u8 *str);
s32 StringCompareWithoutExtCtrlCodes(const u8 *str1, const u8 *str2);
u8 sub_8004FD0(struct Window *win, u8 *dest, const u8 *src, u16 tileDataStartOffset, u8 left, u16 top, u8 width, u32 a8);
+extern const u16 gUnknownPalette_81E6692[];
+
#endif // GUARD_TEXT_H
diff --git a/include/trade.h b/include/trade.h
index 46f58a802..d6dee0bd9 100644
--- a/include/trade.h
+++ b/include/trade.h
@@ -51,6 +51,7 @@ extern const u32 gUnknown_0820CA98[];
extern const u16 gUnknown_0820F798[];
void sub_8047CD8(void);
+void sub_804B790(void);
void sub_804E174(void);
extern const u8 gOtherText_MaleSymbol3[2];
extern const u8 gOtherText_FemaleSymbol3[2];
diff --git a/include/trainer_card.h b/include/trainer_card.h
index 7ea1d9fc0..28cabbd09 100644
--- a/include/trainer_card.h
+++ b/include/trainer_card.h
@@ -32,6 +32,8 @@ void TrainerCard_ShowPlayerCard(void (*)(void));
void TrainerCard_ShowLinkCard(u8, void (*)(void));
void TrainerCard_GenerateCardForPlayer(struct TrainerCard *);
u8 sub_80934C4(u8 id);
+void debug_sub_80A0710(void (*)(void));
+void debug_sub_80A073C(void (*)(void));
extern struct TrainerCard gTrainerCards[4];