diff options
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/cable_club.c | 21 | ||||
-rw-r--r-- | src/engine/main_menu.c | 53 | ||||
-rw-r--r-- | src/engine/reset_rtc_screen.c | 123 | ||||
-rw-r--r-- | src/engine/text_window.c | 76 | ||||
-rw-r--r-- | src/engine/tileset_anim.c | 425 |
5 files changed, 651 insertions, 47 deletions
diff --git a/src/engine/cable_club.c b/src/engine/cable_club.c index c61a1d01c..ec8acc65f 100644 --- a/src/engine/cable_club.c +++ b/src/engine/cable_club.c @@ -35,7 +35,6 @@ extern const u8 gUnknown_081A4932[]; extern const u8 gUnknown_081A4975[]; extern const u8 gUnknown_081A49B6[]; extern const u8 gUnknown_081A490C[]; -extern const u8* const gTrainerCardColorNames[]; extern struct { u8 field0; @@ -76,6 +75,26 @@ extern void sub_8055574(void); extern s32 sub_80554F8(void); extern void sub_805465C(void); +#ifdef GERMAN +const u8 TrainerCardColorName_Bronze[] = _("BRONZE"); +const u8 TrainerCardColorName_Copper[] = _("KUPFER"); +const u8 TrainerCardColorName_Silver[] = _("SILBER"); +const u8 TrainerCardColorName_Gold[] = _("GOLD"); +#else +const u8 TrainerCardColorName_Bronze[] = _("BRONZE"); +const u8 TrainerCardColorName_Copper[] = _("COPPER"); +const u8 TrainerCardColorName_Silver[] = _("SILVER"); +const u8 TrainerCardColorName_Gold[] = _("GOLD"); +#endif + +const u8 *const gTrainerCardColorNames[] = +{ + TrainerCardColorName_Bronze, + TrainerCardColorName_Copper, + TrainerCardColorName_Silver, + TrainerCardColorName_Gold, +}; + static void sub_8082CD4(u8 arg0, u8 arg1) { if (FindTaskIdByFunc(sub_8082F20) == 0xFF) diff --git a/src/engine/main_menu.c b/src/engine/main_menu.c index bfbf0dcd6..031dc49d1 100644 --- a/src/engine/main_menu.c +++ b/src/engine/main_menu.c @@ -30,8 +30,6 @@ extern struct PaletteFadeControl gPaletteFade; extern u16 gSaveFileStatus; -extern u16 gMainMenuPalette[]; - extern const u8 gBirchSpeech_Welcome[]; extern const u8 gBirchSpeech_ThisIsPokemon[]; extern const u8 gBirchSpeech_WorldInhabitedByPokemon[]; @@ -43,15 +41,11 @@ extern u8 gBirchSpeech_AhOkayYouArePlayer[]; extern u8 gBirchSpeech_AreYouReady[]; extern struct SpriteTemplate gUnknown_02024E8C; -extern u16 gUnknown_081E795C[]; extern const struct MenuAction gUnknown_081E79B0[]; extern const struct MenuAction gMalePresetNames[]; extern const struct MenuAction gFemalePresetNames[]; -extern const u8 gUnknown_081E764C[]; -extern const u8 gBirchIntroShadowGfx[]; extern const u8 gUnknown_081E7834[]; -extern const u8 gUnknown_081E796C[]; extern const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[]; @@ -136,6 +130,53 @@ static void CreateNameMenu(u8 left, u8 top); static s8 NameMenuProcessInput(void); static void SetPresetPlayerName(u8 index); +static const u16 gUnknown_081E764C[][16] = +{ + INCBIN_U16("graphics/birch_speech/bg0.gbapal"), + INCBIN_U16("graphics/birch_speech/bg1.gbapal"), +}; + +static const u8 gBirchIntroShadowGfx[] = INCBIN_U8("graphics/birch_speech/shadow.4bpp.lz"); +static const u8 gUnknown_081E7834[] = INCBIN_U8("graphics/birch_speech/map.bin.lz"); +static const u16 gUnknown_081E795C[] = INCBIN_U16("graphics/birch_speech/bg2.gbapal"); +static const u16 gUnknown_081E796C[] = INCBIN_U16("graphics/birch_speech/blank_pal.gbapal"); +static const u16 gMainMenuPalette[] = INCBIN_U16("graphics/misc/main_menu.gbapal"); + +static const union AffineAnimCmd gSpriteAffineAnim_81E799C[] = +{ + AFFINEANIMCMD_FRAME(0xFFFE, 0xFFFE, 0, 48), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd *const gSpriteAffineAnimTable_81E79AC[] = +{ + gSpriteAffineAnim_81E799C, +}; + +static const struct MenuAction gUnknown_081E79B0[] = +{ + {gBirchText_Boy, NULL}, + {gBirchText_Girl, NULL}, +}; + +static const struct MenuAction gMalePresetNames[] = +{ + {gBirchText_NewName, NULL}, + {gDefaultBoyName1, NULL}, + {gDefaultBoyName2, NULL}, + {gDefaultBoyName3, NULL}, + {gDefaultBoyName4, NULL}, +}; + +static const struct MenuAction gFemalePresetNames[] = +{ + {gBirchText_NewName, NULL}, + {gDefaultGirlName1, NULL}, + {gDefaultGirlName2, NULL}, + {gDefaultGirlName3, NULL}, + {gDefaultGirlName4, NULL}, +}; + static void CB2_MainMenu(void) { RunTasks(); diff --git a/src/engine/reset_rtc_screen.c b/src/engine/reset_rtc_screen.c index d052992ad..198bffaa7 100644 --- a/src/engine/reset_rtc_screen.c +++ b/src/engine/reset_rtc_screen.c @@ -27,15 +27,126 @@ struct ResetRtcStruct extern u16 gSaveFileStatus; -extern struct ResetRtcStruct gUnknown_08376420[]; -extern struct SpritePalette gUnknown_083764BC; -extern struct SpriteTemplate gSpriteTemplate_83764E8; -extern u8 gUnknown_08376500[]; - void CB2_ResetRtcScreen(void); void VBlankCB_ResetRtcScreen(void); void Task_ResetRtcScreen(u8); +static const struct ResetRtcStruct gUnknown_08376420[5] = +{ + { + .dataIndex = 3, + .minVal = 1, + .maxVal = 9999, + .left = 0, + .right = 2, + .unk8 = 0, + }, + { + .dataIndex = 4, + .minVal = 0, + .maxVal = 23, + .left = 1, + .right = 3, + .unk8 = 0, + }, + { + .dataIndex = 5, + .minVal = 0, + .maxVal = 59, + .left = 2, + .right = 4, + .unk8 = 0, + }, + { + .dataIndex = 6, + .minVal = 0, + .maxVal = 59, + .left = 3, + .right = 5, + .unk8 = 0, + }, + { + .dataIndex = 7, + .minVal = 0, + .maxVal = 0, + .left = 4, + .right = 0, + .unk8 = 6, + }, +}; + +const struct OamData gOamData_837645C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 0, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0, +}; + +const u8 gSpriteImage_8376464[] = INCBIN_U8("graphics/unknown_sprites/83764AC/0.4bpp"); +const u8 gSpriteImage_8376484[] = INCBIN_U8("graphics/unknown_sprites/83764AC/1.4bpp"); + +const u16 Palette_3764A4[] = INCBIN_U16("graphics/unknown/83764A4.gbapal"); + +const struct SpriteFrameImage gSpriteImageTable_83764AC[] = +{ + { gSpriteImage_8376464, 0x20 }, + { gSpriteImage_8376484, 0x20 }, +}; + +const struct SpritePalette gUnknown_083764BC = +{ + .data = Palette_3764A4, + .tag = 0x1000, +}; + +const union AnimCmd gSpriteAnim_83764C4[] = +{ + ANIMCMD_FRAME(0, 30), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83764CC[] = +{ + ANIMCMD_FRAME(0, 158, .vFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83764D4[] = +{ + ANIMCMD_FRAME(1, 30), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83764DC[] = +{ + gSpriteAnim_83764C4, + gSpriteAnim_83764CC, + gSpriteAnim_83764D4, +}; + +const struct SpriteTemplate gSpriteTemplate_83764E8 = +{ + .tileTag = 0xFFFF, + .paletteTag = 0x1000, + .oam = &gOamData_837645C, + .anims = gSpriteAnimTable_83764DC, + .images = gSpriteImageTable_83764AC, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const u8 gUnknown_08376500[] = _(" : "); + void SpriteCB_ResetRtcCusor0(struct Sprite *sprite) { int state = gTasks[sprite->data0].data[2]; @@ -235,7 +346,7 @@ void Task_ResetRtc_1(u8 taskId) { s16 *data = gTasks[taskId].data; u8 selection = data[2]; - struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1]; + const struct ResetRtcStruct *selectionInfo = &gUnknown_08376420[selection - 1]; if (gMain.newKeys & B_BUTTON) { diff --git a/src/engine/text_window.c b/src/engine/text_window.c index 9a88789d1..c001ddefc 100644 --- a/src/engine/text_window.c +++ b/src/engine/text_window.c @@ -18,11 +18,83 @@ static void DrawMessageBox(struct Window *win, u8 left, u8 top, u8 width, u8 hei static u16 sTextWindowBaseTileNum; static u16 sMessageBoxBaseTileNum; -extern const struct FrameGraphics gUnknown_083761F0[20]; +extern const u8 gTextWindowFrame1_Gfx[]; +extern const u8 gTextWindowFrame2_Gfx[]; +extern const u8 gTextWindowFrame3_Gfx[]; +extern const u8 gTextWindowFrame4_Gfx[]; +extern const u8 gTextWindowFrame5_Gfx[]; +extern const u8 gTextWindowFrame6_Gfx[]; +extern const u8 gTextWindowFrame7_Gfx[]; +extern const u8 gTextWindowFrame8_Gfx[]; +extern const u8 gTextWindowFrame9_Gfx[]; +extern const u8 gTextWindowFrame10_Gfx[]; +extern const u8 gTextWindowFrame11_Gfx[]; +extern const u8 gTextWindowFrame12_Gfx[]; +extern const u8 gTextWindowFrame13_Gfx[]; +extern const u8 gTextWindowFrame14_Gfx[]; +extern const u8 gTextWindowFrame15_Gfx[]; +extern const u8 gTextWindowFrame16_Gfx[]; +extern const u8 gTextWindowFrame17_Gfx[]; +extern const u8 gTextWindowFrame18_Gfx[]; +extern const u8 gTextWindowFrame19_Gfx[]; +extern const u8 gTextWindowFrame20_Gfx[]; + +extern const u16 gTextWindowFrame1_Pal[]; +extern const u16 gTextWindowFrame2_Pal[]; +extern const u16 gTextWindowFrame3_Pal[]; +extern const u16 gTextWindowFrame4_Pal[]; +extern const u16 gTextWindowFrame5_Pal[]; +extern const u16 gTextWindowFrame6_Pal[]; +extern const u16 gTextWindowFrame7_Pal[]; +extern const u16 gTextWindowFrame8_Pal[]; +extern const u16 gTextWindowFrame9_Pal[]; +extern const u16 gTextWindowFrame10_Pal[]; +extern const u16 gTextWindowFrame11_Pal[]; +extern const u16 gTextWindowFrame12_Pal[]; +extern const u16 gTextWindowFrame13_Pal[]; +extern const u16 gTextWindowFrame14_Pal[]; +extern const u16 gTextWindowFrame15_Pal[]; +extern const u16 gTextWindowFrame16_Pal[]; +extern const u16 gTextWindowFrame17_Pal[]; +extern const u16 gTextWindowFrame18_Pal[]; +extern const u16 gTextWindowFrame19_Pal[]; +extern const u16 gTextWindowFrame20_Pal[]; -extern const u16 gMessageBoxTilemap[5][7]; extern const u8 gMessageBox_Gfx[]; +static const struct FrameGraphics gUnknown_083761F0[20] = +{ + {gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal}, + {gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal}, + {gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal}, + {gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal}, + {gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal}, + {gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal}, + {gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal}, + {gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal}, + {gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal}, + {gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal}, + {gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal}, + {gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal}, + {gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal}, + {gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal}, + {gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal}, + {gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal}, + {gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal}, + {gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal}, + {gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal}, + {gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal}, +}; + +static const u16 gMessageBoxTilemap[5][7] = +{ + {1, 3, 4, 4, 5, 6, 9}, + {11, 9, 9, 9, 9, 0x040B, 9}, + {7, 9, 9, 9, 9, 10, 9}, + {0x080B, 9, 9, 9, 9, 0x0C0B, 9}, + {0x0801, 0x0803, 0x0804, 0x0804, 0x0805, 0x0806, 9}, +}; + u16 SetTextWindowBaseTileNum(u16 baseTileNum) { sTextWindowBaseTileNum = baseTileNum; diff --git a/src/engine/tileset_anim.c b/src/engine/tileset_anim.c index f892e5e9a..abd38edad 100644 --- a/src/engine/tileset_anim.c +++ b/src/engine/tileset_anim.c @@ -1,39 +1,10 @@ #include "global.h" #include "tileset_anim.h" -extern u8 *gTilesetAnimTable_General_0[]; -extern u8 *gTilesetAnimTable_General_1[]; -extern u8 *gTilesetAnimTable_General_2[]; -extern u8 *gTilesetAnimTable_General_3[]; -extern u8 *gTilesetAnimTable_General_4[]; -extern u8 *gTilesetAnimTable_Lavaridge[]; -extern u8 *gTilesetAnimTable_Pacifidlog_0[]; -extern u8 *gTilesetAnimTable_Underwater[]; -extern u8 *gTilesetAnimTable_Pacifidlog_1[]; -extern u8 *gUnknown_0837BAE4[]; -extern u8 *gUnknown_0837BB04[]; -extern u8 *gTilesetAnimTable_Mauville_0A[]; -extern u8 *gTilesetAnimTable_Mauville_1A[]; -extern u8 *gTilesetAnimTable_Mauville_0B[]; -extern u8 *gTilesetAnimTable_Mauville_1B[]; -extern u8 *gUnknown_0837BFA4[]; -extern u8 *gTilesetAnimTable_Rustboro_0[]; -extern u8 *gTilesetAnimTable_Rustboro_1[]; -extern u8 *gTilesetAnimTable_Cave[]; -extern u8 *gUnknown_0837C93C[]; -extern u8 *gTilesetAnimTable_EverGrande[]; -extern u8 *gTilesetAnimTable_Building[]; -extern u8 *gTilesetAnimTable_SootopolisGym_0[]; -extern u8 *gTilesetAnimTable_SootopolisGym_1[]; -extern u8 *gTilesetAnimTable_EliteFour_0[]; -extern u8 *gTilesetAnimTable_EliteFour_1[]; -extern u8 *gTilesetAnimTable_MauvilleGym[]; -extern u8 *gTilesetAnimTable_BikeShop[]; - struct Dma { - void *src; - void *dest; + const void *src; + const void *dest; u16 size; }; @@ -89,13 +60,403 @@ static void sub_807399C(u16); static void sub_8073974(u16); static void sub_80739EC(u16); +static const u8 TilesetAnimTiles_General_0_1[] = INCBIN_U8("data/tilesets/primary/general/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_General_0_0[] = INCBIN_U8("data/tilesets/primary/general/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_General_0_2[] = INCBIN_U8("data/tilesets/primary/general/anim/0/2.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_General_0[] = +{ + TilesetAnimTiles_General_0_0, + TilesetAnimTiles_General_0_1, + TilesetAnimTiles_General_0_0, + TilesetAnimTiles_General_0_2, +}; + +static const u8 TilesetAnimTiles_General_1_0[] = INCBIN_U8("data/tilesets/primary/general/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_General_1_1[] = INCBIN_U8("data/tilesets/primary/general/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_General_1_2[] = INCBIN_U8("data/tilesets/primary/general/anim/1/2.4bpp"); +static const u8 TilesetAnimTiles_General_1_3[] = INCBIN_U8("data/tilesets/primary/general/anim/1/3.4bpp"); +static const u8 TilesetAnimTiles_General_1_4[] = INCBIN_U8("data/tilesets/primary/general/anim/1/4.4bpp"); +static const u8 TilesetAnimTiles_General_1_5[] = INCBIN_U8("data/tilesets/primary/general/anim/1/5.4bpp"); +static const u8 TilesetAnimTiles_General_1_6[] = INCBIN_U8("data/tilesets/primary/general/anim/1/6.4bpp"); +static const u8 TilesetAnimTiles_General_1_7[] = INCBIN_U8("data/tilesets/primary/general/anim/1/7.4bpp"); + +static const u8 *const gTilesetAnimTable_General_1[] = +{ + TilesetAnimTiles_General_1_0, + TilesetAnimTiles_General_1_1, + TilesetAnimTiles_General_1_2, + TilesetAnimTiles_General_1_3, + TilesetAnimTiles_General_1_4, + TilesetAnimTiles_General_1_5, + TilesetAnimTiles_General_1_6, + TilesetAnimTiles_General_1_7, +}; + +static const u8 TilesetAnimTiles_General_2_0[] = INCBIN_U8("data/tilesets/primary/general/anim/2/0.4bpp"); +static const u8 TilesetAnimTiles_General_2_1[] = INCBIN_U8("data/tilesets/primary/general/anim/2/1.4bpp"); +static const u8 TilesetAnimTiles_General_2_2[] = INCBIN_U8("data/tilesets/primary/general/anim/2/2.4bpp"); +static const u8 TilesetAnimTiles_General_2_3[] = INCBIN_U8("data/tilesets/primary/general/anim/2/3.4bpp"); +static const u8 TilesetAnimTiles_General_2_4[] = INCBIN_U8("data/tilesets/primary/general/anim/2/4.4bpp"); +static const u8 TilesetAnimTiles_General_2_5[] = INCBIN_U8("data/tilesets/primary/general/anim/2/5.4bpp"); +static const u8 TilesetAnimTiles_General_2_6[] = INCBIN_U8("data/tilesets/primary/general/anim/2/6.4bpp"); + +static const u8 *const gTilesetAnimTable_General_2[] = +{ + TilesetAnimTiles_General_2_0, + TilesetAnimTiles_General_2_1, + TilesetAnimTiles_General_2_2, + TilesetAnimTiles_General_2_3, + TilesetAnimTiles_General_2_4, + TilesetAnimTiles_General_2_5, + TilesetAnimTiles_General_2_6, + TilesetAnimTiles_General_2_0, +}; + +static const u8 TilesetAnimTiles_General_3_0[] = INCBIN_U8("data/tilesets/primary/general/anim/3/0.4bpp"); +static const u8 TilesetAnimTiles_General_3_1[] = INCBIN_U8("data/tilesets/primary/general/anim/3/1.4bpp"); +static const u8 TilesetAnimTiles_General_3_2[] = INCBIN_U8("data/tilesets/primary/general/anim/3/2.4bpp"); +static const u8 TilesetAnimTiles_General_3_3[] = INCBIN_U8("data/tilesets/primary/general/anim/3/3.4bpp"); + +static const u8 *const gTilesetAnimTable_General_3[] = +{ + TilesetAnimTiles_General_3_0, + TilesetAnimTiles_General_3_1, + TilesetAnimTiles_General_3_2, + TilesetAnimTiles_General_3_3, +}; + +static const u8 TilesetAnimTiles_General_4_0[] = INCBIN_U8("data/tilesets/primary/general/anim/4/0.4bpp"); +static const u8 TilesetAnimTiles_General_4_1[] = INCBIN_U8("data/tilesets/primary/general/anim/4/1.4bpp"); +static const u8 TilesetAnimTiles_General_4_2[] = INCBIN_U8("data/tilesets/primary/general/anim/4/2.4bpp"); +static const u8 TilesetAnimTiles_General_4_3[] = INCBIN_U8("data/tilesets/primary/general/anim/4/3.4bpp"); + +static const u8 *const gTilesetAnimTable_General_4[] = +{ + TilesetAnimTiles_General_4_0, + TilesetAnimTiles_General_4_1, + TilesetAnimTiles_General_4_2, + TilesetAnimTiles_General_4_3, +}; + +static const u8 TilesetAnimTiles_Lavaridge_0[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Lavaridge_1[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/1.4bpp"); +static const u8 TilesetAnimTiles_Lavaridge_2[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/2.4bpp"); +static const u8 TilesetAnimTiles_Lavaridge_3[] = INCBIN_U8("data/tilesets/secondary/lavaridge/anim/3.4bpp"); + +static const u8 *const gTilesetAnimTable_Lavaridge[] = +{ + TilesetAnimTiles_Lavaridge_0, + TilesetAnimTiles_Lavaridge_1, + TilesetAnimTiles_Lavaridge_2, + TilesetAnimTiles_Lavaridge_3, +}; + +static const u8 TilesetAnimTiles_Pacifidlog_0_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_0_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_0_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/0/2.4bpp"); + +static const u8 *const gTilesetAnimTable_Pacifidlog_0[] = +{ + TilesetAnimTiles_Pacifidlog_0_0, + TilesetAnimTiles_Pacifidlog_0_1, + TilesetAnimTiles_Pacifidlog_0_2, + TilesetAnimTiles_Pacifidlog_0_1, +}; + +static const u8 TilesetAnimTiles_Underwater_0[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Underwater_1[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/1.4bpp"); +static const u8 TilesetAnimTiles_Underwater_2[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/2.4bpp"); +static const u8 TilesetAnimTiles_Underwater_3[] = INCBIN_U8("data/tilesets/secondary/underwater/anim/3.4bpp"); + +static const u8 *const gTilesetAnimTable_Underwater[] = +{ + TilesetAnimTiles_Underwater_0, + TilesetAnimTiles_Underwater_1, + TilesetAnimTiles_Underwater_2, + TilesetAnimTiles_Underwater_3, +}; + +static const u8 TilesetAnimTiles_Pacifidlog_1_0[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_1[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_2[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/2.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_3[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/3.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_4[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/4.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_5[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/5.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_6[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/6.4bpp"); +static const u8 TilesetAnimTiles_Pacifidlog_1_7[] = INCBIN_U8("data/tilesets/secondary/pacifidlog/anim/1/7.4bpp"); + +static const u8 *const gTilesetAnimTable_Pacifidlog_1[] = +{ + TilesetAnimTiles_Pacifidlog_1_0, + TilesetAnimTiles_Pacifidlog_1_1, + TilesetAnimTiles_Pacifidlog_1_2, + TilesetAnimTiles_Pacifidlog_1_3, + TilesetAnimTiles_Pacifidlog_1_4, + TilesetAnimTiles_Pacifidlog_1_5, + TilesetAnimTiles_Pacifidlog_1_6, + TilesetAnimTiles_Pacifidlog_1_7, +}; + +static const u8 TilesetAnimTiles_Mauville_0_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/3.4bpp"); +static const u8 TilesetAnimTiles_Mauville_0_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/0/4.4bpp"); + +static const u8 TilesetAnimTiles_Mauville_1_0[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_1[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_2[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/2.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_3[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/3.4bpp"); +static const u8 TilesetAnimTiles_Mauville_1_4[] = INCBIN_U8("data/tilesets/secondary/mauville/anim/1/4.4bpp"); + +static const void *const gUnknown_0837BAE4[] = +{ + (void *)(VRAM + 0x4C00), + (void *)(VRAM + 0x4C80), + (void *)(VRAM + 0x4D00), + (void *)(VRAM + 0x4D80), + (void *)(VRAM + 0x4E00), + (void *)(VRAM + 0x4E80), + (void *)(VRAM + 0x4F00), + (void *)(VRAM + 0x4F80), +}; + +static const void *const gUnknown_0837BB04[] = +{ + (void *)(VRAM + 0x5000), + (void *)(VRAM + 0x5080), + (void *)(VRAM + 0x5100), + (void *)(VRAM + 0x5180), + (void *)(VRAM + 0x5200), + (void *)(VRAM + 0x5280), + (void *)(VRAM + 0x5300), + (void *)(VRAM + 0x5380), +}; + +static const u8 *const gTilesetAnimTable_Mauville_0A[] = +{ + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_1, + TilesetAnimTiles_Mauville_0_2, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_3, + TilesetAnimTiles_Mauville_0_2, + TilesetAnimTiles_Mauville_0_1, +}; + +static const u8 *const gTilesetAnimTable_Mauville_1A[] = +{ + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_1, + TilesetAnimTiles_Mauville_1_2, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_3, + TilesetAnimTiles_Mauville_1_2, + TilesetAnimTiles_Mauville_1_1, +}; + +static const u8 *const gTilesetAnimTable_Mauville_0B[] = +{ + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_0, + TilesetAnimTiles_Mauville_0_4, + TilesetAnimTiles_Mauville_0_4, +}; + +static const u8 *const gTilesetAnimTable_Mauville_1B[] = +{ + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_0, + TilesetAnimTiles_Mauville_1_4, + TilesetAnimTiles_Mauville_1_4, +}; + +static const u8 TilesetAnimTiles_Rustboro_0_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_2[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_3[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/3.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_4[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/4.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_5[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/5.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_6[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/6.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_0_7[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/0/7.4bpp"); + +static const void *const gUnknown_0837BFA4[] = +{ + (void *)(VRAM + 0x5000), + (void *)(VRAM + 0x5080), + (void *)(VRAM + 0x5100), + (void *)(VRAM + 0x5180), + (void *)(VRAM + 0x5200), + (void *)(VRAM + 0x5280), + (void *)(VRAM + 0x5300), + (void *)(VRAM + 0x5380), +}; + +static const u8 *const gTilesetAnimTable_Rustboro_0[] = +{ + TilesetAnimTiles_Rustboro_0_0, + TilesetAnimTiles_Rustboro_0_1, + TilesetAnimTiles_Rustboro_0_2, + TilesetAnimTiles_Rustboro_0_3, + TilesetAnimTiles_Rustboro_0_4, + TilesetAnimTiles_Rustboro_0_5, + TilesetAnimTiles_Rustboro_0_6, + TilesetAnimTiles_Rustboro_0_7, +}; + +static const u8 TilesetAnimTiles_Rustboro_1_0[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_Rustboro_1_1[] = INCBIN_U8("data/tilesets/secondary/rustboro/anim/1/1.4bpp"); + +static const u8 *const gTilesetAnimTable_Rustboro_1[] = +{ + TilesetAnimTiles_Rustboro_1_0, + TilesetAnimTiles_Rustboro_1_1, +}; + +static const u8 TilesetAnimTiles_Cave_0[] = INCBIN_U8("data/tilesets/secondary/cave/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Cave_1[] = INCBIN_U8("data/tilesets/secondary/cave/anim/1.4bpp"); +static const u8 TilesetAnimTiles_Cave_2[] = INCBIN_U8("data/tilesets/secondary/cave/anim/2.4bpp"); +static const u8 TilesetAnimTiles_Cave_3[] = INCBIN_U8("data/tilesets/secondary/cave/anim/3.4bpp"); +// unused anim tiles for cave +static const u8 TilesetAnimTiles_Cave_4[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/0.4bpp"); +static const u8 TilesetAnimTiles_Cave_5[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/1.4bpp"); +static const u8 TilesetAnimTiles_Cave_6[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/2.4bpp"); +static const u8 TilesetAnimTiles_Cave_7[] = INCBIN_U8("data/tilesets/secondary/cave/anim/unused/3.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_Cave[] = +{ + TilesetAnimTiles_Cave_0, + TilesetAnimTiles_Cave_1, + TilesetAnimTiles_Cave_2, + TilesetAnimTiles_Cave_3, +}; + +static const u8 TilesetAnimTiles_EverGrande_0[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/0.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_1[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/1.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_2[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/2.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_3[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/3.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_4[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/4.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_5[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/5.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_6[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/6.4bpp"); +static const u8 TilesetAnimTiles_EverGrande_7[] = INCBIN_U8("data/tilesets/secondary/ever_grande/anim/7.4bpp"); +asm(".space 32"); + +static const void *const gUnknown_0837C93C[] = +{ + (void *)(VRAM + 0x5C00), + (void *)(VRAM + 0x5C80), + (void *)(VRAM + 0x5D00), + (void *)(VRAM + 0x5D80), + (void *)(VRAM + 0x5E00), + (void *)(VRAM + 0x5E80), + (void *)(VRAM + 0x5F00), + (void *)(VRAM + 0x5F80), +}; + +static const u8 *const gTilesetAnimTable_EverGrande[] = +{ + TilesetAnimTiles_EverGrande_0, + TilesetAnimTiles_EverGrande_1, + TilesetAnimTiles_EverGrande_2, + TilesetAnimTiles_EverGrande_3, + TilesetAnimTiles_EverGrande_4, + TilesetAnimTiles_EverGrande_5, + TilesetAnimTiles_EverGrande_6, + TilesetAnimTiles_EverGrande_7, +}; + +static const u8 TilesetAnimTiles_Building_0[] = INCBIN_U8("data/tilesets/primary/building/anim/0.4bpp"); +static const u8 TilesetAnimTiles_Building_1[] = INCBIN_U8("data/tilesets/primary/building/anim/1.4bpp"); + +static const u8 *const gTilesetAnimTable_Building[] = +{ + TilesetAnimTiles_Building_0, + TilesetAnimTiles_Building_1, +}; + +static const u8 TilesetAnimTiles_SootopolisGym_0_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_0_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_0_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_1_0[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_1_1[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_SootopolisGym_1_2[] = INCBIN_U8("data/tilesets/secondary/sootopolis_gym/anim/1/2.4bpp"); + +static const u8 *const gTilesetAnimTable_SootopolisGym_0[] = +{ + TilesetAnimTiles_SootopolisGym_0_0, + TilesetAnimTiles_SootopolisGym_0_1, + TilesetAnimTiles_SootopolisGym_0_2, +}; + +static const u8 *const gTilesetAnimTable_SootopolisGym_1[] = +{ + TilesetAnimTiles_SootopolisGym_1_0, + TilesetAnimTiles_SootopolisGym_1_1, + TilesetAnimTiles_SootopolisGym_1_2, +}; + +static const u8 TilesetAnimTiles_EliteFour_1_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/0.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_1_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/1/1.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_0[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/0.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_1[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/1.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_2[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/2.4bpp"); +static const u8 TilesetAnimTiles_EliteFour_0_3[] = INCBIN_U8("data/tilesets/secondary/elite_four/anim/0/3.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_EliteFour_0[] = +{ + TilesetAnimTiles_EliteFour_0_0, + TilesetAnimTiles_EliteFour_0_1, + TilesetAnimTiles_EliteFour_0_2, + TilesetAnimTiles_EliteFour_0_3, +}; + +static const u8 *const gTilesetAnimTable_EliteFour_1[] = +{ + TilesetAnimTiles_EliteFour_1_0, + TilesetAnimTiles_EliteFour_1_1, +}; + +static const u8 TilesetAnimTiles_MauvilleGym_0[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/0.4bpp"); +static const u8 TilesetAnimTiles_MauvilleGym_1[] = INCBIN_U8("data/tilesets/secondary/mauville_gym/anim/1.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_MauvilleGym[] = +{ + TilesetAnimTiles_MauvilleGym_0, + TilesetAnimTiles_MauvilleGym_1, +}; + +static const u8 TilesetAnimTiles_BikeShop_0[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/0.4bpp"); +static const u8 TilesetAnimTiles_BikeShop_1[] = INCBIN_U8("data/tilesets/secondary/bike_shop/anim/1.4bpp"); +asm(".space 32"); + +static const u8 *const gTilesetAnimTable_BikeShop[] = +{ + TilesetAnimTiles_BikeShop_0, + TilesetAnimTiles_BikeShop_1, +}; + static void ClearTilesetAnimDmas(void) { gNumTilesetAnimDmas = 0; CpuFill32(0, &gTilesetAnimDmas, sizeof(gTilesetAnimDmas)); } -static void QueueTilesetAnimDma(void *src, void *dest, u16 size) +static void QueueTilesetAnimDma(const void *src, const void *dest, u16 size) { if (gNumTilesetAnimDmas < 20) { |