diff options
-rw-r--r-- | data/menu_cursor.s | 157 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/engine/menu_cursor.c | 123 | ||||
-rw-r--r-- | sym_ewram.txt | 3 |
4 files changed, 109 insertions, 175 deletions
diff --git a/data/menu_cursor.s b/data/menu_cursor.s index f3c5fe956..522ad496c 100644 --- a/data/menu_cursor.s +++ b/data/menu_cursor.s @@ -4,163 +4,6 @@ .section .rodata .align 2 -OutlineCursorTiles_00: - .incbin "graphics/interface/outline_cursor_00.4bpp" - - .align 2 -OutlineCursorTiles_01: - .incbin "graphics/interface/outline_cursor_01.4bpp" - - .align 2 -OutlineCursorTiles_02: - .incbin "graphics/interface/outline_cursor_02.4bpp" - - .align 2 -OutlineCursorTiles_03: - .incbin "graphics/interface/outline_cursor_03.4bpp" - - .align 2 -OutlineCursorTiles_04: - .incbin "graphics/interface/outline_cursor_04.4bpp" - - .align 2 -OutlineCursorTiles_05: - .incbin "graphics/interface/outline_cursor_05.4bpp" - - .align 2 -OutlineCursorTiles_06: - .incbin "graphics/interface/outline_cursor_06.4bpp" - - .align 2 -OutlineCursorTiles_07: - .incbin "graphics/interface/outline_cursor_07.4bpp" - - .align 2 -OutlineCursorTiles_08: - .incbin "graphics/interface/outline_cursor_08.4bpp" - - .align 2 -OutlineCursorTiles_09: - .incbin "graphics/interface/outline_cursor_09.4bpp" - - .align 2 -OutlineCursorTiles_10: - .incbin "graphics/interface/outline_cursor_10.4bpp" - - .align 2 -OutlineCursorTiles_11: - .incbin "graphics/interface/outline_cursor_11.4bpp" - - .align 2 -OutlineCursorTiles_12: - .incbin "graphics/interface/outline_cursor_12.4bpp" - - .align 2 -OutlineCursorTiles_13: - .incbin "graphics/interface/outline_cursor_13.4bpp" - - .align 2 -OutlineCursorTiles_14: - .incbin "graphics/interface/outline_cursor_14.4bpp" - - .align 2 -OutlineCursorTiles_15: - .incbin "graphics/interface/outline_cursor_15.4bpp" - - .align 2 -gOamData_842F11C:: @ 842F11C - .2byte 0x8000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_842F124:: @ 842F124 - .2byte 0x8800 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gOamData_842F12C:: @ 842F12C - .2byte 0x8000 - .2byte 0x0000 - .2byte 0x0000 - - .align 2 -gSpriteAnim_842F134:: @ 842F134 - obj_image_anim_frame 0, 63 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_842F13C:: @ 842F13C - .4byte gSpriteAnim_842F134 - - .align 2 -gUnknown_0842F140:: @ 842F140 - obj_tiles OutlineCursorTiles_00, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_01, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_02, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_03, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_04, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_05, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_06, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_07, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_08, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_09, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_10, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_11, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_12, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_13, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_14, 0x1C0, 0xFFF0 - obj_tiles OutlineCursorTiles_15, 0x1C0, 0xFFF0 - - .align 2 -gUnknown_0842F1C0:: @ 842F1C0 - obj_tiles OutlineCursorTiles_00, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_01, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_02, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_03, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_04, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_05, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_06, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_07, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_08, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_09, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_10, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_11, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_12, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_13, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_14, 0x1C0, 0xFFF1 - obj_tiles OutlineCursorTiles_15, 0x1C0, 0xFFF1 - - .align 2 -gUnknown_0842F240:: @ 842F240 - obj_pal gUnknown_0203A360, 0xfff0 - - .align 2 -gUnknown_0842F248:: @ 842F248 - obj_pal gUnknown_0203A360, 0xfff1 - - .align 2 -gSpriteTemplate_842F250:: @ 842F250 - spr_template 65520, 65520, gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gSpriteTemplate_842F268:: @ 842F268 - spr_template 65520, 0xFFFF, gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gSpriteTemplate_842F280:: @ 842F280 - spr_template 65520, 0xFFFF, gOamData_842F124, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gSpriteTemplate_842F298:: @ 842F298 - spr_template 65521, 65521, gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gSpriteTemplate_842F2B0:: @ 842F2B0 - spr_template 65521, 0xFFFF, gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 gSubspriteTable_842F2C8:: @ 842F2C8 subsprite -1, 0, 0, 0, 8x16 subsprite 1, 0, 0, 4, 8x16 diff --git a/ld_script.txt b/ld_script.txt index 0bdec4f4a..826b32e14 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -599,6 +599,7 @@ SECTIONS { src/field/bard_music.o(.rodata); data/unknown_debug_menu.o(.rodata); data/strings2.o(.rodata); + src/engine/menu_cursor.o(.rodata); data/menu_cursor.o(.rodata); data/mystery_event_msg.o(.rodata); src/libs/m4a_tables.o(.rodata); diff --git a/src/engine/menu_cursor.c b/src/engine/menu_cursor.c index d43be2a2f..3c4caa39b 100644 --- a/src/engine/menu_cursor.c +++ b/src/engine/menu_cursor.c @@ -3,12 +3,114 @@ #include "palette.h" #include "sprite.h" -extern const struct SpriteSheet gUnknown_0842F140[]; -extern const struct SpriteSheet gUnknown_0842F1C0[]; -extern const struct SpritePalette gUnknown_0842F240; -extern const struct SpritePalette gUnknown_0842F248; -extern const struct SpriteTemplate gSpriteTemplate_842F250[]; -extern const struct SpriteTemplate gSpriteTemplate_842F298[]; +EWRAM_DATA u16 gUnknown_0203A360[0x10] = {}; +EWRAM_DATA struct Subsprite gMenuCursorSubsprites[10] = {0}; +EWRAM_DATA u8 gUnknown_0203A3D0 = 0; +EWRAM_DATA u8 gUnknown_0203A3D1 = 0; +EWRAM_DATA u8 gUnknown_0203A3D2 = 0; +EWRAM_DATA u8 gUnknown_0203A3D3 = 0; +EWRAM_DATA u8 gUnknown_0203A3D4 = 0; + +const u8 OutlineCursorTiles_00[] = INCBIN_U8("graphics/interface/outline_cursor_00.4bpp"); +const u8 OutlineCursorTiles_01[] = INCBIN_U8("graphics/interface/outline_cursor_01.4bpp"); +const u8 OutlineCursorTiles_02[] = INCBIN_U8("graphics/interface/outline_cursor_02.4bpp"); +const u8 OutlineCursorTiles_03[] = INCBIN_U8("graphics/interface/outline_cursor_03.4bpp"); +const u8 OutlineCursorTiles_04[] = INCBIN_U8("graphics/interface/outline_cursor_04.4bpp"); +const u8 OutlineCursorTiles_05[] = INCBIN_U8("graphics/interface/outline_cursor_05.4bpp"); +const u8 OutlineCursorTiles_06[] = INCBIN_U8("graphics/interface/outline_cursor_06.4bpp"); +const u8 OutlineCursorTiles_07[] = INCBIN_U8("graphics/interface/outline_cursor_07.4bpp"); +const u8 OutlineCursorTiles_08[] = INCBIN_U8("graphics/interface/outline_cursor_08.4bpp"); +const u8 OutlineCursorTiles_09[] = INCBIN_U8("graphics/interface/outline_cursor_09.4bpp"); +const u8 OutlineCursorTiles_10[] = INCBIN_U8("graphics/interface/outline_cursor_10.4bpp"); +const u8 OutlineCursorTiles_11[] = INCBIN_U8("graphics/interface/outline_cursor_11.4bpp"); +const u8 OutlineCursorTiles_12[] = INCBIN_U8("graphics/interface/outline_cursor_12.4bpp"); +const u8 OutlineCursorTiles_13[] = INCBIN_U8("graphics/interface/outline_cursor_13.4bpp"); +const u8 OutlineCursorTiles_14[] = INCBIN_U8("graphics/interface/outline_cursor_14.4bpp"); +const u8 OutlineCursorTiles_15[] = INCBIN_U8("graphics/interface/outline_cursor_15.4bpp"); + +const struct OamData gOamData_842F11C = { + .objMode = ST_OAM_OBJ_NORMAL, + .shape = ST_OAM_V_RECTANGLE +}; +const struct OamData gOamData_842F124 = { + .objMode = ST_OAM_OBJ_WINDOW, + .shape = ST_OAM_V_RECTANGLE +}; +const struct OamData gOamData_842F12C = { + .objMode = ST_OAM_OBJ_NORMAL, + .shape = ST_OAM_V_RECTANGLE +}; + +const union AnimCmd gSpriteAnim_842F134[] = { + ANIMCMD_FRAME(0, 63), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_842F13C[] = { + gSpriteAnim_842F134 +}; + +const struct SpriteSheet gUnknown_0842F140[] = { + { OutlineCursorTiles_00, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_01, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_02, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_03, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_04, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_05, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_06, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_07, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_08, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_09, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_10, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_11, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_12, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_13, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_14, 0x1C0, 0xFFF0 }, + { OutlineCursorTiles_15, 0x1C0, 0xFFF0 } +}; + +const struct SpriteSheet gUnknown_0842F1C0[] = { + { OutlineCursorTiles_00, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_01, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_02, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_03, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_04, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_05, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_06, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_07, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_08, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_09, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_10, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_11, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_12, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_13, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_14, 0x1C0, 0xFFF1 }, + { OutlineCursorTiles_15, 0x1C0, 0xFFF1 } +}; + +const struct SpritePalette gUnknown_0842F240 = { + gUnknown_0203A360, 0xfff0 +}; +const struct SpritePalette gUnknown_0842F248 = { + gUnknown_0203A360, 0xfff1 +}; + +const struct SpriteTemplate gSpriteTemplate_842F250[] = { + { + 0xfff0, 0xfff0, &gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + }, { + 0xfff0, 0xffff, &gOamData_842F11C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + }, { + 0xfff0, 0xffff, &gOamData_842F124, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + } +}; +const struct SpriteTemplate gSpriteTemplate_842F298[] = { + { + 0xfff1, 0xfff1, &gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + }, { + 0xfff1, 0xffff, &gOamData_842F12C, gSpriteAnimTable_842F13C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + } +}; extern struct Subsprite *const gUnknown_0842F5BC[]; @@ -20,15 +122,6 @@ extern const struct Subsprite gUnknown_0842F780; extern const struct Subsprite gUnknown_0842F788; extern const struct Subsprite gUnknown_0842F790; -extern u16 gUnknown_0203A360[]; - -EWRAM_DATA struct Subsprite gMenuCursorSubsprites[10] = {0}; -EWRAM_DATA u8 gUnknown_0203A3D0 = 0; -EWRAM_DATA u8 gUnknown_0203A3D1 = 0; -EWRAM_DATA u8 gUnknown_0203A3D2 = 0; -EWRAM_DATA u8 gUnknown_0203A3D3 = 0; -EWRAM_DATA u8 gUnknown_0203A3D4 = 0; - void sub_814A590(void) { gUnknown_0203A3D0 = 0x40; diff --git a/sym_ewram.txt b/sym_ewram.txt index b3bf568ac..07715ee24 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -641,7 +641,4 @@ gUnknown_02039460: @ 2039460 gUnknown_02039760: @ 2039760 .space 0xC00 -gUnknown_0203A360: @ 203A360 - .space 0x20 - .include "src/engine/menu_cursor.o" |