diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 21:51:07 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-04-14 21:51:07 -0400 |
commit | 642729d03072fcc763fad90f60a92b9b74f70a37 (patch) | |
tree | de10f4f72aaa49bf8904910a84cf20f71f80e899 | |
parent | d294e845532face99e16338daab1e21b21f72c15 (diff) |
Decompile tm_case data
-rw-r--r-- | data/data_83FECCC.s | 21 | ||||
-rw-r--r-- | data/tm_case.s | 128 | ||||
-rw-r--r-- | include/graphics.h | 11 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/tm_case.c | 172 |
5 files changed, 176 insertions, 158 deletions
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s index 9b6aa16eb..072ea050f 100644 --- a/data/data_83FECCC.s +++ b/data/data_83FECCC.s @@ -728,13 +728,28 @@ gUnknown_8416188:: @ 8416188 .incbin "baserom.gba", 0x416188, 0x8 gUnknown_8416190:: @ 8416190 - .incbin "baserom.gba", 0x416190, 0x10 + .string "TIME$" + +gUnknown_8416195:: + .string "どこへ とびますか?$" gUnknown_84161A0:: - .incbin "baserom.gba", 0x4161a0, 0x12 + .string "USE$" + +gUnknown_84161A4:: + .string "TOSS$" + +gUnknown_84161A9:: + .string "REGISTER$" gUnknown_84161B2:: - .incbin "baserom.gba", 0x4161b2, 0xf + .string "GIVE$" + +gUnknown_84161B7:: + .string "けってい$" + +gUnknown_84161BC:: + .string "WALK$" gFameCheckerText_Cancel:: @ 84161C1 .string "CANCEL$" diff --git a/data/tm_case.s b/data/tm_case.s deleted file mode 100644 index 6237e4612..000000000 --- a/data/tm_case.s +++ /dev/null @@ -1,128 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - .section .rodata - .set NULL, 0 - - .align 2 -gUnknown_8463134:: @ 8463134 - .4byte 0x000011f0, 0x000001e1, 0x000021d2 - -gUnknown_8463140:: @ 8463140 - .4byte sub_8132414 - .4byte sub_8132868 - .4byte sub_8132908 - .4byte sub_81328B8 - -gUnknown_8463150:: @ 8463150 - .4byte gUnknown_84161A0, sub_81325F0 - .4byte gUnknown_84161B2, sub_813265C - .4byte gUnknown_84161C8, sub_81327FC - -gUnknown_8463168:: @ 8463168 - .byte 0x00, 0x01, 0x02 - -gUnknown_846316B:: @ 846316B - .byte 0x01, 0x02, 0x00, 0x00, 0x00 - -gUnknown_8463170:: @ 8463170 - .4byte sub_8132CAC - .4byte sub_8132A48 - -gUnknown_8463178:: @ 8463178 - .string "{CLEAR_TO 18}$" - -gUnknown_846317C:: @ 846317C - .string " $" - - .align 2, 0 -gUnknown_8463180:: @ 8463180 - .2byte 0x2108, 0x1a1e - -gUnknown_8463184:: @ 8463184 - .byte 0x00, 0x01, 0x02, 0x00, 0x02, 0x03, 0x00, 0x03, 0x06, 0x00, 0x0e, 0x0a - -gUnknown_8463190:: @ 8463190 - .align 2 - .byte 0x00, 0x0a, 0x01, 0x13, 0x0a, 0x0f - .2byte 0x0081 - @ {0x00, 0x0a, 0x01, 0x13, 0x0a, 0x0f, 0x0081} - .align 2 - .byte 0x00, 0x0c, 0x0c, 0x12, 0x08, 0x0a - .2byte 0x013f - @ {0x00, 0x0c, 0x0c, 0x12, 0x08, 0x0a, 0x013f} - .align 2 - .byte 0x01, 0x05, 0x0f, 0x0f, 0x04, 0x0d - .2byte 0x01f9 - @ {0x01, 0x05, 0x0f, 0x0f, 0x04, 0x0d, 0x01f9} - .align 2 - .byte 0x00, 0x00, 0x01, 0x0a, 0x02, 0x0f - .2byte 0x0235 - @ {0x00, 0x00, 0x01, 0x0a, 0x02, 0x0f, 0x0235} - .align 2 - .byte 0x00, 0x01, 0x0d, 0x05, 0x06, 0x0c - .2byte 0x0249 - @ {0x00, 0x01, 0x0d, 0x05, 0x06, 0x0c, 0x0249} - .align 2 - .byte 0x00, 0x07, 0x0d, 0x05, 0x06, 0x0c - .2byte 0x0267 - @ {0x00, 0x07, 0x0d, 0x05, 0x06, 0x0c, 0x0267} - .align 2 - .byte 0x01, 0x02, 0x0f, 0x1a, 0x04, 0x0b - .2byte 0x0285 - @ {0x01, 0x02, 0x0f, 0x1a, 0x04, 0x0b, 0x0285} - .align 2 - .byte 0x01, 0x11, 0x09, 0x0c, 0x04, 0x0f - .2byte 0x02ed - @ {0x01, 0x11, 0x09, 0x0c, 0x04, 0x0f, 0x02ed} - .align 2 - .byte 0x01, 0x01, 0x01, 0x08, 0x03, 0x0d - .2byte 0x031d - @ {0x01, 0x01, 0x01, 0x08, 0x03, 0x0d, 0x031d} - .align 2 - .byte 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 - .2byte 0x0000 - @ {0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000} - -gUnknown_84631E0:: @ 84631E0 - .align 2 - .byte 0x01, 0x15, 0x09, 0x06, 0x04, 0x0f - .2byte 0x0335 - @ {0x01, 0x15, 0x09, 0x06, 0x04, 0x0f, 0x0335} - -gUnknown_84631E8:: @ 84631E8 - .align 2 - .byte 0x01, 0x16, 0x0d, 0x07, 0x06, 0x0f - .2byte 0x01cf - @ {0x01, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x01cf} - .align 2 - .byte 0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f - .2byte 0x01cf - - .align 2 -gOamData_84631F8:: - .2byte 0x0000, 0x8000, 0x0800, 0x0000 - - .align 2 -gUnknown_8463200:: - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gUnknown_8463208:: - obj_image_anim_frame 16, 0 - obj_image_anim_end - - .align 2 -gUnknown_8463210:: - .4byte gUnknown_8463200 - .4byte gUnknown_8463208 - -gUnknown_8463218:: @ 8463218 - obj_tiles gUnknown_8E84D90, 0x400, 0x0190 - -gUnknown_8463220:: @ 8463220 - spr_template 0x0190, 0x0190, gOamData_84631F8, gUnknown_8463210, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_8463238:: @ 8463238 - .2byte 0x0000, 0x0090, 0x0080, 0x00c0, 0x0060, 0x0050, 0x00b0, 0x00a0, 0x00e0, 0x0000, 0x0010, 0x0020, 0x0030, 0x0040, 0x00d0, 0x0070 - .2byte 0x0100, 0x00f0 diff --git a/include/graphics.h b/include/graphics.h index d249ece10..0f3553eea 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -150,4 +150,15 @@ extern const u16 gFameCheckerBgTiles[0xa50]; extern const u16 gFameCheckerBg3Tilemap[0x400]; extern const u16 gFameCheckerBg2Tilemap[0x400]; +// tm_case +extern const u32 gUnknown_8E845D8[]; +extern const u32 gUnknown_8E84A24[]; +extern const u32 gUnknown_8E84B70[]; +extern const u32 gUnknown_8E84CB0[]; +extern const u32 gUnknown_8E84D20[]; +extern const u32 gUnknown_8E84D90[]; +extern const u32 gUnknown_8E84F20[]; +extern const u32 gUnknown_8E85068[]; +extern const u8 gUnknown_8E99118[]; + #endif //GUARD_GRAPHICS_H diff --git a/ld_script.txt b/ld_script.txt index 8e3687296..6e3dda820 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -399,7 +399,7 @@ SECTIONS { src/fame_checker.o(.rodata); src/menu2.o(.rodata); src/oak_speech.o(.rodata); - data/tm_case.o(.rodata); + src/tm_case.o(.rodata); data/menu_indicators.o(.rodata); data/pokedex_area_markers.o(.rodata); data/pokemon_summary_screen.o(.rodata); diff --git a/src/tm_case.c b/src/tm_case.c index df3b4c7df..3cb840875 100644 --- a/src/tm_case.c +++ b/src/tm_case.c @@ -4,6 +4,7 @@ #include "decompress.h" #include "gpu_regs.h" #include "palette.h" +#include "graphics.h" #include "task.h" #include "text.h" #include "text_window.h" @@ -86,16 +87,25 @@ void sub_8132120(void); void sub_8132170(void); void sub_813226C(u8 taskId); void sub_81322D4(u8 taskId); +void sub_8132414(u8 taskId); void sub_8132568(u8 taskId); +void sub_81325F0(u8 taskId); +void sub_813265C(u8 taskId); void sub_81326F8(u8 taskId); void sub_8132714(u8 taskId); void sub_8132758(u8 taskId); void sub_8132780(u8 taskId); +void sub_81327FC(u8 taskId); +void sub_8132868(u8 taskId); +void sub_81328B8(u8 taskId); +void sub_8132908(u8 taskId); void sub_81329C4(u8 taskId); void sub_8132A34(u8 taskId); +void sub_8132A48(u8 taskId); void sub_8132AAC(u8 taskId); void sub_8132B5C(s16 quantity, s32 value); void sub_8132BC8(u8 taskId); +void sub_8132CAC(u8 taskId); void sub_8132D34(u8 taskId); void sub_8132E0C(u8 taskId); void sub_8132F20(u8 taskId); @@ -122,6 +132,9 @@ void sub_8133810(struct Sprite * sprite); void sub_81338A8(void); // data_83FECCC +extern const u8 gUnknown_84161A0[]; +extern const u8 gUnknown_84161B2[]; +extern const u8 gUnknown_84161C8[]; extern const u8 gUnknown_8416213[]; extern const u8 gUnknown_8416226[]; extern const u8 gFameCheckerText_ListMenuCursor[]; @@ -144,32 +157,139 @@ extern const u8 gUnknown_841C693[]; extern const u16 gUnknown_841F408[]; // my rodata -extern const struct BgTemplate gUnknown_8463134[3]; -extern void (*const gUnknown_8463140[])(u8 taskId); -extern const struct MenuAction gUnknown_8463150[]; -extern const u8 gUnknown_8463168[]; -extern const u8 gUnknown_846316B[]; -extern const TaskFunc gUnknown_8463170[]; -extern const u8 gUnknown_8463178[]; -extern const u8 gUnknown_846317C[]; -extern const u16 gUnknown_8463180[]; -extern const struct TextColor gUnknown_8463184[]; -extern const struct WindowTemplate gUnknown_8463190[]; -extern const struct WindowTemplate gUnknown_84631E0; -extern const struct WindowTemplate gUnknown_84631E8[]; -extern const struct CompressedSpriteSheet gUnknown_8463218; -extern const struct SpriteTemplate gUnknown_8463220; -extern const u16 gUnknown_8463238[]; - -// graphics -extern const u32 gUnknown_8E845D8[]; -extern const u32 gUnknown_8E84A24[]; -extern const u32 gUnknown_8E84B70[]; -extern const u32 gUnknown_8E84CB0[]; -extern const u32 gUnknown_8E84D20[]; -extern const u32 gUnknown_8E84F20[]; -extern const u32 gUnknown_8E85068[]; -extern const u8 gUnknown_8E99118[]; +const struct BgTemplate gUnknown_8463134[] = { + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0x000 + }, { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0x000 + }, { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 29, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x000 + } +}; + +void (*const gUnknown_8463140[])(u8 taskId) = { + sub_8132414, + sub_8132868, + sub_8132908, + sub_81328B8 +}; + +const struct MenuAction gUnknown_8463150[] = { + {gUnknown_84161A0, sub_81325F0}, + {gUnknown_84161B2, sub_813265C}, + {gUnknown_84161C8, sub_81327FC}, +}; + +const u8 gUnknown_8463168[] = {0, 1, 2}; +const u8 gUnknown_846316B[] = {1, 2, 0}; +const TaskFunc gUnknown_8463170[] = {sub_8132CAC, sub_8132A48}; + +const u8 gUnknown_8463178[] = _("{CLEAR_TO 18}"); +const u8 gUnknown_846317C[] = _(" "); + +ALIGNED(4) const u16 gUnknown_8463180[] = {RGB(8, 8, 8), RGB(30, 16, 6)}; + +const struct TextColor gUnknown_8463184[] = { + {0, 1, 2}, + {0, 2, 3}, + {0, 3, 6}, + {0, 14, 10} +}; + +const struct WindowTemplate gUnknown_8463190[] = { + {0x00, 0x0a, 0x01, 0x13, 0x0a, 0x0f, 0x0081}, + {0x00, 0x0c, 0x0c, 0x12, 0x08, 0x0a, 0x013f}, + {0x01, 0x05, 0x0f, 0x0f, 0x04, 0x0d, 0x01f9}, + {0x00, 0x00, 0x01, 0x0a, 0x02, 0x0f, 0x0235}, + {0x00, 0x01, 0x0d, 0x05, 0x06, 0x0c, 0x0249}, + {0x00, 0x07, 0x0d, 0x05, 0x06, 0x0c, 0x0267}, + {0x01, 0x02, 0x0f, 0x1a, 0x04, 0x0b, 0x0285}, + {0x01, 0x11, 0x09, 0x0c, 0x04, 0x0f, 0x02ed}, + {0x01, 0x01, 0x01, 0x08, 0x03, 0x0d, 0x031d}, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate gUnknown_84631E0 = {0x01, 0x15, 0x09, 0x06, 0x04, 0x0f, 0x0335}; + +const struct WindowTemplate gUnknown_84631E8[] = { + {0x01, 0x16, 0x0d, 0x07, 0x06, 0x0f, 0x01cf}, + {0x01, 0x16, 0x0f, 0x07, 0x04, 0x0f, 0x01cf} +}; + +const struct OamData gOamData_84631F8 = { + .size = 2, + .priority = 2 +}; + +const union AnimCmd gUnknown_8463200[] = { + ANIMCMD_FRAME(0, 0), + ANIMCMD_END +}; + +const union AnimCmd gUnknown_8463208[] = { + ANIMCMD_FRAME(16, 0), + ANIMCMD_END +}; + +const union AnimCmd *const gUnknown_8463210[] = { + gUnknown_8463200, + gUnknown_8463208 +}; + +const struct CompressedSpriteSheet gUnknown_8463218 = { + (const void *)gUnknown_8E84D90, + 0x400, + 400 +}; + +const struct SpriteTemplate gUnknown_8463220 = { + 400, + 400, + &gOamData_84631F8, + gUnknown_8463210, + NULL, + gDummySpriteAffineAnimTable, + SpriteCallbackDummy +}; + +const u16 gUnknown_8463238[] = { + 0x000, + 0x090, + 0x080, + 0x0c0, + 0x060, + 0x050, + 0x0b0, + 0x0a0, + 0x0e0, + 0x000, + 0x010, + 0x020, + 0x030, + 0x040, + 0x0d0, + 0x070, + 0x100, + 0x0f0 +}; void sub_81317F8(u8 a0, void (* a1)(void), u8 a2) { |