summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-10-02 11:44:50 -0400
committerGitHub <noreply@github.com>2019-10-02 11:44:50 -0400
commit8c86b656d2fa97fc5eb113e9807d49f48c715f8b (patch)
tree01e14b4dec7ef184ca50b9f0815a662590520045 /include
parent32693e94d844cb401aed91d066b9f5ad1eb440a7 (diff)
parent1bd678656c735bbeb603ccb80367c7a85f820f61 (diff)
Merge branch 'master' into modern_gcc
Diffstat (limited to 'include')
-rw-r--r--include/bard_music.h20
-rw-r--r--include/battle.h49
-rw-r--r--include/constants/metatile_labels.h346
-rw-r--r--include/ewram.h1
-rw-r--r--include/global.fieldmap.h15
-rw-r--r--include/global.h20
-rw-r--r--include/menu.h1
-rw-r--r--include/record_mixing.h4
8 files changed, 397 insertions, 59 deletions
diff --git a/include/bard_music.h b/include/bard_music.h
index 529fd50f8..6e9d802e6 100644
--- a/include/bard_music.h
+++ b/include/bard_music.h
@@ -1,7 +1,17 @@
#ifndef GUARD_BARD_MUSIC_H
#define GUARD_BARD_MUSIC_H
-struct BardSound;
+// Exported type declarations
+
+
+struct BardSound
+{
+ /*0x00*/ u8 var00;
+ /*0x01*/ s8 var01;
+ /*0x02*/ u16 var02;
+ /*0x04*/ s16 volume;
+ /*0x06*/ u16 var06;
+};
struct BardPhoneme
{
@@ -25,7 +35,11 @@ struct BardSong
/*0x18*/ struct BardPhoneme phonemes[6];
};
-const struct BardSound *GetWordSounds(u16 arg0, u16 arg1);
-s32 GetWordPhonemes(struct BardSong *dest, const struct BardSound *src, u16 arg2);
+// Exported RAM declarations
+
+// Exported ROM declarations
+
+const struct BardSound *GetWordSounds(u16 group, u16 word);
+s32 GetWordPhonemes(struct BardSong *dest, const struct BardSound *src, u16 word);
#endif // GUARD_BARD_MUSIC_H
diff --git a/include/battle.h b/include/battle.h
index ac12533e3..510db80f6 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -319,54 +319,7 @@ struct BattleStruct /* 0x2000000 */
/*0x1601E*/ u8 statChanger;
/*0x1601F*/ u8 dmgMultiplier;
/*0x16020*/ u8 wrappedBy[4];
- /*0x16024*/ u8 unk16024;
- /*0x16025*/ u8 unk16025;
- /*0x16026*/ u8 unk16026;
- /*0x16027*/ u8 unk16027;
- /*0x16028*/ u8 unk16028;
- /*0x16029*/ u8 unk16029;
- /*0x1602A*/ u8 unk1602A;
- /*0x1602B*/ u8 unk1602B;
- /*0x1602C*/ u8 unk1602C;
- /*0x1602D*/ u8 unk1602D;
- /*0x1602E*/ u8 unk1602E;
- /*0x1602F*/ u8 unk1602F;
- /*0x16030*/ u8 unk16030;
- /*0x16031*/ u8 unk16031;
- /*0x16032*/ u8 unk16032;
- /*0x16033*/ u8 unk16033;
- /*0x16034*/ u8 unk16034;
- /*0x16035*/ u8 unk16035;
- /*0x16036*/ u8 unk16036;
- /*0x16037*/ u8 unk16037;
- /*0x16038*/ u8 unk16038;
- /*0x16039*/ u8 unk16039;
- /*0x1603A*/ u8 unk1603A;
- /*0x1603B*/ u8 unk1603B;
- /*0x1603C*/ u8 unk1603C;
- /*0x1603D*/ u8 unk1603D;
- /*0x1603E*/ u8 unk1603E;
- /*0x1603F*/ u8 unk1603F;
- /*0x16040*/ u8 unk16040;
- /*0x16041*/ u8 unk16041;
- /*0x16042*/ u8 unk16042;
- /*0x16043*/ u8 unk16043;
- /*0x16044*/ u8 unk16044;
- /*0x16045*/ u8 unk16045;
- /*0x16046*/ u8 unk16046;
- /*0x16047*/ u8 unk16047;
- /*0x16048*/ u8 unk16048;
- /*0x16049*/ u8 unk16049;
- /*0x1604A*/ u8 unk1604A;
- /*0x1604B*/ u8 unk1604B;
- /*0x1604C*/ u8 unk1604C;
- /*0x1604D*/ u8 unk1604D;
- /*0x1604E*/ u8 unk1604E;
- /*0x1604F*/ u8 unk1604F;
- /*0x16050*/ u8 unk16050;
- /*0x16051*/ u8 unk16051;
- /*0x16052*/ u8 unk16052;
- /*0x16053*/ u8 unk16053;
+ /*0x16024*/ u16 assistMove[24];
/*0x16054*/ u8 unk16054;
/*0x16055*/ u8 unk16055;
/*0x16056*/ u8 moneyMultiplier;
diff --git a/include/constants/metatile_labels.h b/include/constants/metatile_labels.h
new file mode 100644
index 000000000..0995d5309
--- /dev/null
+++ b/include/constants/metatile_labels.h
@@ -0,0 +1,346 @@
+#ifndef GUARD_METATILE_LABELS_H
+#define GUARD_METATILE_LABELS_H
+
+// gTileset_General
+#define METATILE_General_Grass 0x001
+#define METATILE_General_TallGrass 0x00D
+#define METATILE_General_LongGrass 0x015
+#define METATILE_General_TallGrass_TreeUp 0x025
+#define METATILE_General_Grass_TreeUp 0x00E
+#define METATILE_General_TallGrass_TreeLeft 0x1C6
+#define METATILE_General_TallGrass_TreeRight 0x1C7
+#define METATILE_General_Grass_TreeLeft 0x1CE
+#define METATILE_General_Grass_TreeRight 0x1CF
+#define METATILE_General_MuddySlope_Frame0 0x0E8
+#define METATILE_General_MuddySlope_Frame1 0x0E9
+#define METATILE_General_MuddySlope_Frame2 0x0EA
+#define METATILE_General_MuddySlope_Frame3 0x0EB
+#define METATILE_General_SandPit_Center 0x121
+#define METATILE_General_CaveEntrance_Top 0x09F
+#define METATILE_General_CaveEntrance_Bottom 0x0A7
+#define METATILE_General_RockWall_GrassBase 0x079
+#define METATILE_General_RockWall_RockBase 0x07C
+#define METATILE_General_RockWall_SandBase 0x091
+#define METATILE_General_RockWall_WaterBase 0x0A9
+#define METATILE_General_CalmWater 0x170
+#define METATILE_General_RoughWater 0x14E
+#define METATILE_General_RoughDeepWater 0x14F
+#define METATILE_General_ReflectiveWater 0x0A1
+#define METATILE_General_Shore_BottomLeft 0x1BD
+#define METATILE_General_Shore_BottomMid 0x1BE
+#define METATILE_General_Shore_BottomRight 0x1BF
+
+// gTileset_Fortree
+#define METATILE_Fortree_LongGrass_Root 0x208
+#define METATILE_Fortree_BridgeOverGrass_Raised 0x24E
+#define METATILE_Fortree_BridgeOverGrass_Lowered 0x24F
+#define METATILE_Fortree_BridgeOverTrees_Raised 0x256
+#define METATILE_Fortree_BridgeOverTrees_Lowered 0x257
+#define METATILE_Fortree_SecretBase_LongGrass_TopLeft 0x279
+#define METATILE_Fortree_SecretBase_LongGrass_TopMid 0x27A
+#define METATILE_Fortree_SecretBase_LongGrass_TopRight 0x27B
+#define METATILE_Fortree_SecretBase_LongGrass_BottomLeft 0x281
+#define METATILE_Fortree_SecretBase_LongGrass_BottomMid 0x282
+#define METATILE_Fortree_SecretBase_LongGrass_BottomRight 0x283
+#define METATILE_Fortree_WoodBridge_Kecleon0 0x297
+#define METATILE_Fortree_WoodBridge_Kecleon1 0x29F
+
+// gTileset_Pacifidlog
+#define METATILE_Pacifidlog_FloatingLogs_Horizontal0 0x250
+#define METATILE_Pacifidlog_FloatingLogs_Horizontal1 0x251
+#define METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal0 0x252
+#define METATILE_Pacifidlog_HalfSubmergedLogs_Horizontal1 0x253
+#define METATILE_Pacifidlog_SubmergedLogs_Horizontal0 0x254
+#define METATILE_Pacifidlog_SubmergedLogs_Horizontal1 0x255
+#define METATILE_Pacifidlog_FloatingLogs_Vertical0 0x258
+#define METATILE_Pacifidlog_FloatingLogs_Vertical1 0x260
+#define METATILE_Pacifidlog_HalfSubmergedLogs_Vertical0 0x259
+#define METATILE_Pacifidlog_HalfSubmergedLogs_Vertical1 0x261
+#define METATILE_Pacifidlog_SubmergedLogs_Vertical0 0x25A
+#define METATILE_Pacifidlog_SubmergedLogs_Vertical1 0x262
+
+// gTileset_Fallarbor
+#define METATILE_Fallarbor_AshGrass 0x20A
+#define METATILE_Fallarbor_NormalGrass 0x212
+#define METATILE_Fallarbor_AshField 0x218
+
+// gTileset_Lavaridge
+#define METATILE_Lavaridge_NormalGrass 0x206
+#define METATILE_Lavaridge_AshGrass 0x207
+#define METATILE_Lavaridge_LavaField 0x271
+
+// gTileset_EliteFour
+#define METATILE_EliteFour_OpenDoor_Frame 0x344
+#define METATILE_EliteFour_OpenDoor_Opening 0x345
+#define METATILE_EliteFour_OpenDoorChampion_Frame 0x346
+#define METATILE_EliteFour_OpenDoorChampion_Opening 0x347
+#define METATILE_EliteFour_LeftSpotlightOff 0x2DD
+#define METATILE_EliteFour_RightSpotlightOff 0x2DE
+#define METATILE_EliteFour_EntryDoor_ClosedTop 0x206
+#define METATILE_EliteFour_EntryDoor_ClosedBottom 0x20E
+
+// gTileset_InsideShip
+#define METATILE_InsideShip_InTactDoor0_Bottom 0x233
+#define METATILE_InsideShip_InTactDoor1_Bottom 0x22B
+#define METATILE_InsideShip_DoorIndent1 0x21A
+#define METATILE_InsideShip_DoorIndent0 0x234
+
+// gTileset_Cave
+#define METATILE_Cave_EntranceCover 0x229
+#define METATILE_Cave_SealedChamberEntrance_TopLeft 0x22A
+#define METATILE_Cave_SealedChamberEntrance_TopMid 0x22B
+#define METATILE_Cave_SealedChamberEntrance_TopRight 0x22C
+#define METATILE_Cave_SealedChamberEntrance_BottomLeft 0x232
+#define METATILE_Cave_SealedChamberEntrance_BottomMid 0x233
+#define METATILE_Cave_SealedChamberEntrance_BottomRight 0x234
+#define METATILE_Cave_SealedChamberBraille_Mid 0x235
+#define METATILE_Cave_ShoalCave_DirtPile_Large 0x358
+#define METATILE_Cave_ShoalCave_DirtPile_Small 0x35A
+#define METATILE_Cave_ShoalCave_BlueStone_Large 0x359
+#define METATILE_Cave_ShoalCave_BlueStone_Small 0x35B
+
+// gTileset_BattleTower
+#define METATILE_BattleTower_CorridorOpenDoor_Top 0x207
+#define METATILE_BattleTower_CorridorOpenDoor_Bottom 0x20F
+#define METATILE_BattleTower_Elevator_Top0 0x268
+#define METATILE_BattleTower_Elevator_Top1 0x269
+#define METATILE_BattleTower_Elevator_Top2 0x26A
+#define METATILE_BattleTower_Elevator_Mid0 0x270
+#define METATILE_BattleTower_Elevator_Mid1 0x271
+#define METATILE_BattleTower_Elevator_Mid2 0x272
+#define METATILE_BattleTower_Elevator_Bottom0 0x278
+#define METATILE_BattleTower_Elevator_Bottom1 0x279
+#define METATILE_BattleTower_Elevator_Bottom2 0x27A
+
+// gTileset_Contest
+#define METATILE_Contest_WallShadow 0x221
+#define METATILE_Contest_FloorShadow 0x261
+#define METATILE_Contest_CounterFlap_Top 0x2D1
+#define METATILE_Contest_CounterFlap_Bottom 0x2D9
+
+// gTileset_LilycoveMuseum
+#define METATILE_LilycoveMuseum_Painting0_Left 0x25A
+#define METATILE_LilycoveMuseum_Painting0_Right 0x25B
+#define METATILE_LilycoveMuseum_Painting1_Left 0x25C
+#define METATILE_LilycoveMuseum_Painting1_Right 0x25D
+#define METATILE_LilycoveMuseum_Painting2_Left 0x25E
+#define METATILE_LilycoveMuseum_Painting2_Right 0x25F
+#define METATILE_LilycoveMuseum_Painting3_Left 0x260
+#define METATILE_LilycoveMuseum_Painting3_Right 0x261
+#define METATILE_LilycoveMuseum_Painting4_Left 0x262
+#define METATILE_LilycoveMuseum_Painting4_Right 0x263
+
+// gTileset_InsideOfTruck
+#define METATILE_InsideOfTruck_ExitLight_Top 0x208
+#define METATILE_InsideOfTruck_ExitLight_Mid 0x210
+#define METATILE_InsideOfTruck_ExitLight_Bottom 0x218
+#define METATILE_InsideOfTruck_DoorClosedFloor_Top 0x20D
+#define METATILE_InsideOfTruck_DoorClosedFloor_Mid 0x215
+#define METATILE_InsideOfTruck_DoorClosedFloor_Bottom 0x21D
+
+// gTileset_BrendansMaysHouse
+#define METATILE_BrendansMaysHouse_BrendanPC_Off 0x25A
+#define METATILE_BrendansMaysHouse_BrendanPC_On 0x27F
+#define METATILE_BrendansMaysHouse_MayPC_Off 0x259
+#define METATILE_BrendansMaysHouse_MayPC_On 0x27E
+#define METATILE_BrendansMaysHouse_MovingBox_Closed 0x268
+#define METATILE_BrendansMaysHouse_MovingBox_Open 0x270
+#define METATILE_BrendansMaysHouse_BookOnTable 0x293
+
+// gTileset_Lilycove
+#define METATILE_Lilycove_AquaHideout_Entrance_TopLeft 0x2A8
+#define METATILE_Lilycove_AquaHideout_Entrance_TopMid 0x2A9
+#define METATILE_Lilycove_AquaHideout_Entrance_TopRight 0x2AA
+#define METATILE_Lilycove_AquaHideout_Entrance_BottomLeft 0x2B0
+#define METATILE_Lilycove_AquaHideout_Entrance_BottomMid 0x2B1
+#define METATILE_Lilycove_AquaHideout_Entrance_BottomRight 0x2B2
+#define METATILE_Lilycove_Wailmer0 0x290
+#define METATILE_Lilycove_Wailmer1 0x291
+#define METATILE_Lilycove_Wailmer2 0x2A0
+#define METATILE_Lilycove_Wailmer3 0x2A1
+#define METATILE_Lilycove_Wailmer0_Alt 0x298
+#define METATILE_Lilycove_Wailmer1_Alt 0x299
+
+// gTileset_MauvilleGym
+#define METATILE_MauvilleGym_RaisedSwitch 0x205
+#define METATILE_MauvilleGym_PressedSwitch 0x206
+#define METATILE_MauvilleGym_FloorTile 0x21A
+#define METATILE_MauvilleGym_GreenBeamH1_On 0x220
+#define METATILE_MauvilleGym_GreenBeamH2_On 0x221
+#define METATILE_MauvilleGym_GreenBeamH3_On 0x228
+#define METATILE_MauvilleGym_GreenBeamH4_On 0x229
+#define METATILE_MauvilleGym_GreenBeamH1_Off 0x230
+#define METATILE_MauvilleGym_GreenBeamH2_Off 0x231
+#define METATILE_MauvilleGym_GreenBeamH3_Off 0x238
+#define METATILE_MauvilleGym_GreenBeamH4_Off 0x239
+#define METATILE_MauvilleGym_RedBeamH1_On 0x222
+#define METATILE_MauvilleGym_RedBeamH2_On 0x223
+#define METATILE_MauvilleGym_RedBeamH3_On 0x22A
+#define METATILE_MauvilleGym_RedBeamH4_On 0x22B
+#define METATILE_MauvilleGym_RedBeamH1_Off 0x232
+#define METATILE_MauvilleGym_RedBeamH2_Off 0x233
+#define METATILE_MauvilleGym_RedBeamH3_Off 0x23A
+#define METATILE_MauvilleGym_RedBeamH4_Off 0x23B
+#define METATILE_MauvilleGym_GreenBeamV1_On 0x240
+#define METATILE_MauvilleGym_GreenBeamV2_On 0x248
+#define METATILE_MauvilleGym_RedBeamV1_On 0x241
+#define METATILE_MauvilleGym_RedBeamV2_On 0x249
+#define METATILE_MauvilleGym_PoleTop_On 0x250
+#define METATILE_MauvilleGym_PoleTop_Off 0x251
+#define METATILE_MauvilleGym_PoleBottom_On 0x242
+#define METATILE_MauvilleGym_PoleBottom_Off 0x243
+
+// gTileset_MossdeepGym
+#define METATILE_MossdeepGym_Obelisk_Top 0x204
+#define METATILE_MossdeepGym_Obelisk_Base 0x20C
+#define METATILE_MossdeepGym_Wall_LeftCorner 0x20D
+#define METATILE_MossdeepGym_OuterWall_RightCorner 0x205
+#define METATILE_MossdeepGym_Empty0 0x238
+#define METATILE_MossdeepGym_Empty1 0x239
+
+// gTileset_Building
+#define METATILE_Building_TV_Off 0x002
+#define METATILE_Building_TV_On 0x003
+#define METATILE_Building_PC_Off 0x004
+#define METATILE_Building_PC_On 0x005
+
+// gTileset_GenericBuilding
+#define METATILE_GenericBuilding_Doorway_ClosedTop 0x28D
+#define METATILE_GenericBuilding_Doorway_ClosedBottom 0x295
+#define METATILE_GenericBuilding_TableEdge 0x2F1
+#define METATILE_GenericBuilding_TrickHouse_Door_Closed 0x21B
+#define METATILE_GenericBuilding_TrickHouse_Stairs_Down 0x219
+
+// gTileset_Shop
+#define METATILE_Shop_Laptop1_Normal 0x29D
+#define METATILE_Shop_Laptop2_Normal 0x2A5
+#define METATILE_Shop_Laptop1_Flash 0x258
+#define METATILE_Shop_Laptop2_Flash 0x260
+
+// gTileset_Facility
+#define METATILE_Facility_NewMauvilleDoor_Closed_Tile0 0x314
+#define METATILE_Facility_NewMauvilleDoor_Closed_Tile1 0x315
+#define METATILE_Facility_NewMauvilleDoor_Closed_Tile2 0x316
+#define METATILE_Facility_NewMauvilleDoor_Closed_Tile3 0x31C
+#define METATILE_Facility_NewMauvilleDoor_Closed_Tile4 0x31D
+#define METATILE_Facility_NewMauvilleDoor_Closed_Tile5 0x31E
+#define METATILE_Facility_NewMauvilleDoor_Open_Tile0 0x2C3
+#define METATILE_Facility_NewMauvilleDoor_Open_Tile1 0x2C4
+#define METATILE_Facility_NewMauvilleDoor_Open_Tile2 0x2C5
+#define METATILE_Facility_NewMauvilleDoor_Open_Tile3 0x2CB
+#define METATILE_Facility_NewMauvilleDoor_Open_Tile4 0x2CC
+#define METATILE_Facility_NewMauvilleDoor_Open_Tile5 0x2CD
+#define METATILE_Facility_DataPad 0x3E4
+
+// gTileset_TrickHousePuzzle
+#define METATILE_TrickHousePuzzle_Stairs_Down 0x20B
+#define METATILE_TrickHousePuzzle_Lever_Off 0x23E
+#define METATILE_TrickHousePuzzle_Lever_On 0x23F
+#define METATILE_TrickHousePuzzle_Button_Up 0x258
+#define METATILE_TrickHousePuzzle_Button_Pressed 0x259
+#define METATILE_TrickHousePuzzle_Door_Shuttered 0x26A
+#define METATILE_TrickHousePuzzle_Floor_ShadowTop_Alt 0x252
+#define METATILE_TrickHousePuzzle_Floor_ShadowTop 0x255
+#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile0 0x24B
+#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile1 0x24C
+#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile2 0x253
+#define METATILE_TrickHousePuzzle_BlueDoorH_Open_Tile3 0x254
+#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile0 0x23B
+#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile1 0x23C
+#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile2 0x243
+#define METATILE_TrickHousePuzzle_BlueDoorH_Closed_Tile3 0x244
+#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile0 0x248
+#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile1 0x249
+#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile2 0x250
+#define METATILE_TrickHousePuzzle_RedDoorH_Open_Tile3 0x251
+#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile0 0x238
+#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile1 0x239
+#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile2 0x240
+#define METATILE_TrickHousePuzzle_RedDoorH_Closed_Tile3 0x241
+#define METATILE_TrickHousePuzzle_BlueDoorV_Retracted 0x24D
+#define METATILE_TrickHousePuzzle_RedDoorV_Retracted 0x24A
+#define METATILE_TrickHousePuzzle_RedDoorV_Open0 0x23A
+#define METATILE_TrickHousePuzzle_RedDoorV_Open1 0x242
+#define METATILE_TrickHousePuzzle_BlueDoorV_Open0 0x23D
+#define METATILE_TrickHousePuzzle_BlueDoorV_Open1 0x245
+#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right 0x260
+#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left 0x261
+#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Up 0x262
+#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Down 0x263
+#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Left_Alt 0x27B
+#define METATILE_TrickHousePuzzle_Arrow_RedOnBlack_Right_Alt 0x27C
+
+// gTileset_BikeShop
+#define METATILE_BikeShop_Barrier_Hidden_Top 0x269
+#define METATILE_BikeShop_Barrier_Hidden_Bottom 0x271
+#define METATILE_BikeShop_Floor_Shadow_Top 0x26D
+#define METATILE_BikeShop_Wall_Edge_Top 0x281
+#define METATILE_BikeShop_Button_Pressed 0x24F
+#define METATILE_BikeShop_Button_Green 0x22E
+#define METATILE_BikeShop_Button_Blue 0x236
+#define METATILE_BikeShop_Barrier_Green_Top 0x2B6
+#define METATILE_BikeShop_Barrier_Green_TopMid 0x2BE
+#define METATILE_BikeShop_Barrier_Green_BottomMid 0x2C6
+#define METATILE_BikeShop_Barrier_Green_Bottom 0x2CE
+#define METATILE_BikeShop_Barrier_Blue_Top 0x2B7
+#define METATILE_BikeShop_Barrier_Blue_TopMid 0x2BF
+#define METATILE_BikeShop_Barrier_Blue_BottomMid 0x2C7
+#define METATILE_BikeShop_Barrier_Blue_Bottom 0x2CF
+#define METATILE_BikeShop_Generator_Off_Tile0 0x2F0
+#define METATILE_BikeShop_Generator_Off_Tile1 0x2F1
+#define METATILE_BikeShop_Generator_Off_Tile2 0x2F2
+#define METATILE_BikeShop_Generator_Off_Tile3 0x2F3
+#define METATILE_BikeShop_Generator_Off_Tile4 0x2F4
+#define METATILE_BikeShop_Generator_Off_Tile5 0x2F5
+#define METATILE_BikeShop_Generator_Off_Tile6 0x2F6
+#define METATILE_BikeShop_Generator_Off_Tile7 0x2F7
+
+// gTileset_PetalburgGym
+#define METATILE_PetalburgGym_RoomEntrance_Left 0x210
+#define METATILE_PetalburgGym_RoomEntrance_Right 0x211
+#define METATILE_PetalburgGym_SlidingDoor_Frame0 0x218
+#define METATILE_PetalburgGym_SlidingDoor_Frame1 0x219
+#define METATILE_PetalburgGym_SlidingDoor_Frame2 0x21A
+#define METATILE_PetalburgGym_SlidingDoor_Frame3 0x21B
+#define METATILE_PetalburgGym_SlidingDoor_Frame4 0x21C
+
+// gTileset_Sootopolis
+#define METATILE_Sootopolis_Door_Closed 0x248
+#define METATILE_Sootopolis_GymDoor_Closed 0x250
+#define METATILE_Sootopolis_RoughWater 0x290
+
+// gTileset_SootopolisGym
+#define METATILE_SootopolisGym_Ice_Cracked 0x20E
+#define METATILE_SootopolisGym_Ice_Broken 0x206
+#define METATILE_SootopolisGym_Stairs 0x207
+
+// gTileset_Underwater
+#define METATILE_Underwater_RockWall 0x21E
+#define METATILE_Underwater_FloorShadow 0x228
+
+// gTileset_PokemonCenter
+#define METATILE_PokemonCenter_Floor_Plain_Alt 0x202
+#define METATILE_PokemonCenter_CounterBarrier 0x25D
+#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame0 0x280
+#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame1 0x282
+#define METATILE_PokemonCenter_Escalator1F_Tile0_Frame2 0x284
+#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame0 0x281
+#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame1 0x283
+#define METATILE_PokemonCenter_Escalator1F_Tile1_Frame2 0x285
+#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame0 0x288
+#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame1 0x28A
+#define METATILE_PokemonCenter_Escalator1F_Tile2_Frame2 0x28C
+#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame0 0x289
+#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame1 0x28B
+#define METATILE_PokemonCenter_Escalator1F_Tile3_Frame2 0x28D
+#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame0 0x2A0
+#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame1 0x2A2
+#define METATILE_PokemonCenter_Escalator2F_Tile0_Frame2 0x2A4
+#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame0 0x2A1
+#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame1 0x2A3
+#define METATILE_PokemonCenter_Escalator2F_Tile1_Frame2 0x2A5
+#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame0 0x2A8
+#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame1 0x2AA
+#define METATILE_PokemonCenter_Escalator2F_Tile2_Frame2 0x2AC
+
+#endif // GUARD_METATILE_LABELS_H
diff --git a/include/ewram.h b/include/ewram.h
index 4042ea03b..da544f5c2 100644
--- a/include/ewram.h
+++ b/include/ewram.h
@@ -133,6 +133,7 @@ extern u8 gSharedMem[];
#define ewram1608Carr(battler) (gSharedMem[0x1608C + battler])
#define ewram16094arr(battler) (gSharedMem[0x16094 + battler])
#define EWRAM_1609D (gSharedMem[0x1609D])
+#define ewram1609e(flank) (gSharedMem[0x1609E + (flank)])
#define ewram160A1 (gSharedMem[0x160A1])
#define ewram160A4 (gSharedMem[0x160A4])
#define ewram160A5 (gSharedMem[0x160A5])
diff --git a/include/global.fieldmap.h b/include/global.fieldmap.h
index 81f805ee2..27b2b5593 100644
--- a/include/global.fieldmap.h
+++ b/include/global.fieldmap.h
@@ -1,6 +1,21 @@
#ifndef GUARD_GLOBAL_FIELDMAP_H
#define GUARD_GLOBAL_FIELDMAP_H
+#define COLLISION_DIR_SOUTH 0
+#define COLLISION_DIR_NORTH 1
+#define COLLISION_DIR_WEST 2
+#define COLLISION_DIR_EAST 3
+#define COLLISION_DIR_ALL (COLLISION_DIR_NORTH | COLLISION_DIR_SOUTH | COLLISION_DIR_EAST | COLLISION_DIR_WEST)
+
+#define METATILE_COLLISION_MASK 0x0C00
+#define METATILE_ID_MASK 0x03FF
+#define METATILE_ID_UNDEFINED 0x03FF
+#define METATILE_ELEVATION_SHIFT 0x000C
+#define METATILE_COLLISION_SHIFT 0x000A
+#define METATILE_ELEVATION_MASK 0xF000
+
+#define METATILE_ID(tileset, name) (METATILE_##tileset##_##name)
+
enum
{
CONNECTION_SOUTH = 1,
diff --git a/include/global.h b/include/global.h
index 64abf8724..1ccc92bb1 100644
--- a/include/global.h
+++ b/include/global.h
@@ -11,12 +11,13 @@
#if defined(__APPLE__) || defined(__CYGWIN__)
#define _(x) x
#define __(x) x
-#define INCBIN_U8 {0}
-#define INCBIN_U16 {0}
-#define INCBIN_U32 {0}
-#define INCBIN_S8 {0}
-#define INCBIN_S16 {0}
-#define INCBIN_S32 {0}
+#define INCBIN(x) {0}
+#define INCBIN_U8 INCBIN
+#define INCBIN_U16 INCBIN
+#define INCBIN_U32 INCBIN
+#define INCBIN_S8 INCBIN
+#define INCBIN_S16 INCBIN
+#define INCBIN_S32 INCBIN
#endif
// Prevent cross-jump optimization.
@@ -65,6 +66,13 @@ 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)
+#define T2_WRITE_32(ptr, value) ({\
+ (ptr)[0] = ((value) >> 0) & 0xFF;\
+ (ptr)[1] = ((value) >> 8) & 0xFF;\
+ (ptr)[2] = ((value) >> 16) & 0xFF;\
+ (ptr)[3] = ((value) >> 24) & 0xFF;\
+})
+
// Credits to Made (dolphin emoji)
#define S16TOPOSFLOAT(val) \
({ \
diff --git a/include/menu.h b/include/menu.h
index 921a05eca..a6ff6050e 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -84,6 +84,7 @@ void unref_sub_8072DC0(void);
void sub_8072DCC(u8);
void sub_8072DDC(u8);
void Menu_DestroyCursor(void);
+u8 MoveMenuCursor3(s8 delta);
#if GERMAN
u8 *de_sub_8073174(u8 *name, const u8 *format);
diff --git a/include/record_mixing.h b/include/record_mixing.h
index 96105f3f7..2e6b048a6 100644
--- a/include/record_mixing.h
+++ b/include/record_mixing.h
@@ -22,12 +22,12 @@ void sub_80B9A78(void);
void sub_80B9A88(u8 *a);
void sub_80B9B1C(u8 *a, size_t size, u8 index);
void sub_80B9B70(void *a, u32 size, u8 index);
-u8 sub_80B9BBC(u16 *a);
+u8 sub_80B9BBC(struct DayCareMail *a);
void sub_80B9BC4(u8 *, size_t, u8[][2], u8 d, u8 e);
u8 sub_80B9C4C(u8 *a);
// ASM
-void sub_80B9C6C(u8 *, u32, u8, void *);
+void sub_80B9C6C(struct RecordMixingDayCareMail *, size_t, u8, TVShow *);
void sub_80B9F3C(u16 *, u8);
void sub_80BA00C(u8);