diff options
-rw-r--r-- | data/reset_rtc_screen.s | 67 | ||||
-rw-r--r-- | data/text_window.s | 31 | ||||
-rw-r--r-- | include/text_window.h | 4 | ||||
-rw-r--r-- | ld_script.txt | 4 | ||||
-rw-r--r-- | src/engine/reset_rtc_screen.c | 123 | ||||
-rw-r--r-- | src/engine/text_window.c | 82 | ||||
-rw-r--r-- | src/pokemon/mon_markings.c | 4 |
7 files changed, 203 insertions, 112 deletions
diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s deleted file mode 100644 index a9a3ac847..000000000 --- a/data/reset_rtc_screen.s +++ /dev/null @@ -1,67 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_08376420:: @ 8376420 - .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0 - .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0 - .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0 - .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0 - .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0 - - .align 2 -gOamData_837645C:: @ 837645C - .2byte 0x0000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteImage_8376464:: @ 8376464 - .incbin "graphics/unknown_sprites/83764AC/0.4bpp" - - .align 2 -gSpriteImage_8376484:: @ 8376484 - .incbin "graphics/unknown_sprites/83764AC/1.4bpp" - - .align 2 -Palette_3764A4: @ 83764A4 - .incbin "graphics/unknown/83764A4.gbapal" - - .align 2 -gSpriteImageTable_83764AC:: @ 83764AC - obj_frame_tiles gSpriteImage_8376464, 0x20 - obj_frame_tiles gSpriteImage_8376484, 0x20 - - .align 2 -gUnknown_083764BC:: @ 83764BC - obj_pal Palette_3764A4, 0x1000 - - .align 2 -gSpriteAnim_83764C4:: @ 83764C4 - obj_image_anim_frame 0, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83764CC:: @ 83764CC - obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83764D4:: @ 83764D4 - obj_image_anim_frame 1, 30 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83764DC:: @ 83764DC - .4byte gSpriteAnim_83764C4 - .4byte gSpriteAnim_83764CC - .4byte gSpriteAnim_83764D4 - - .align 2 -gSpriteTemplate_83764E8:: @ 83764E8 - spr_template 0xFFFF, 0x1000, gOamData_837645C, gSpriteAnimTable_83764DC, gSpriteImageTable_83764AC, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_08376500:: @ 8376500 - .string " : $" diff --git a/data/text_window.s b/data/text_window.s deleted file mode 100644 index d8a3dbb38..000000000 --- a/data/text_window.s +++ /dev/null @@ -1,31 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_083761F0:: @ 83761F0 - .4byte gTextWindowFrame1_Gfx, gTextWindowFrame1_Pal - .4byte gTextWindowFrame2_Gfx, gTextWindowFrame2_Pal - .4byte gTextWindowFrame3_Gfx, gTextWindowFrame3_Pal - .4byte gTextWindowFrame4_Gfx, gTextWindowFrame4_Pal - .4byte gTextWindowFrame5_Gfx, gTextWindowFrame5_Pal - .4byte gTextWindowFrame6_Gfx, gTextWindowFrame6_Pal - .4byte gTextWindowFrame7_Gfx, gTextWindowFrame7_Pal - .4byte gTextWindowFrame8_Gfx, gTextWindowFrame8_Pal - .4byte gTextWindowFrame9_Gfx, gTextWindowFrame9_Pal - .4byte gTextWindowFrame10_Gfx, gTextWindowFrame10_Pal - .4byte gTextWindowFrame11_Gfx, gTextWindowFrame11_Pal - .4byte gTextWindowFrame12_Gfx, gTextWindowFrame12_Pal - .4byte gTextWindowFrame13_Gfx, gTextWindowFrame13_Pal - .4byte gTextWindowFrame14_Gfx, gTextWindowFrame14_Pal - .4byte gTextWindowFrame15_Gfx, gTextWindowFrame15_Pal - .4byte gTextWindowFrame16_Gfx, gTextWindowFrame16_Pal - .4byte gTextWindowFrame17_Gfx, gTextWindowFrame17_Pal - .4byte gTextWindowFrame18_Gfx, gTextWindowFrame18_Pal - .4byte gTextWindowFrame19_Gfx, gTextWindowFrame19_Pal - .4byte gTextWindowFrame20_Gfx, gTextWindowFrame20_Pal - - .align 1 -gMessageBoxTilemap:: @ 8376290 - .incbin "graphics/text_window/message_box_map.bin" diff --git a/include/text_window.h b/include/text_window.h index afd645540..7df1453ca 100644 --- a/include/text_window.h +++ b/include/text_window.h @@ -5,8 +5,8 @@ struct FrameGraphics { - u8 *tiles; - u16 *palette; + const u8 *tiles; + const u16 *palette; }; u16 SetTextWindowBaseTileNum(u16 baseTileNum); diff --git a/ld_script.txt b/ld_script.txt index 25283a52b..d9a4a1c0b 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -342,12 +342,12 @@ SECTIONS { src/field/field_map_obj.o(.rodata); src/field/field_ground_effect.o(.rodata); data/field_map_obj_helpers.o(.rodata); - data/text_window.o(.rodata); + src/engine/text_window.o(.rodata); src/engine/script.o(.rodata); src/field/scrcmd.o(.rodata); src/field/coord_event_weather.o(.rodata); src/field/field_tasks.o(.rodata); - data/reset_rtc_screen.o(.rodata); + src/engine/reset_rtc_screen.o(.rodata); src/field/party_menu.o(.rodata); src/field/start_menu.o(.rodata); src/engine/menu.o(.rodata); 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..81932650f 100644 --- a/src/engine/text_window.c +++ b/src/engine/text_window.c @@ -18,11 +18,89 @@ 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] = INCBIN_U16("graphics/text_window/message_box_map.bin"); +// 01 00 03 00 04 00 04 00 05 00 06 00 09 00 +// 0B 00 09 00 09 00 09 00 09 00 0B 04 09 00 +// 07 00 09 00 09 00 09 00 09 00 0A 00 09 00 +// 0B 08 09 00 09 00 09 00 09 00 0B 0C 09 00 +// 01 08 03 08 04 08 04 08 05 08 06 08 09 00 +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/pokemon/mon_markings.c b/src/pokemon/mon_markings.c index 0cad8db59..9ea738c7b 100644 --- a/src/pokemon/mon_markings.c +++ b/src/pokemon/mon_markings.c @@ -24,8 +24,8 @@ struct PokemonMarkMenu /*0x000C*/ struct Sprite *menuWindowSprites[2]; // upper and lower halves of menu window /*0x0014*/ struct Sprite *menuMarkingSprites[4]; /*0x0024*/ struct Sprite *menuTextSprite; - /*0x0028*/ u8 *frameTiles; - /*0x002C*/ u16 *framePalette; + /*0x0028*/ const u8 *frameTiles; + /*0x002C*/ const u16 *framePalette; /*0x0030*/ u8 menuWindowSpriteTiles[0x1000]; /*0x1030*/ u8 filler1030[0x80]; /*0x10B0*/ u8 tileLoadState; |