summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-04-14 21:51:07 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-04-14 21:51:07 -0400
commit642729d03072fcc763fad90f60a92b9b74f70a37 (patch)
treede10f4f72aaa49bf8904910a84cf20f71f80e899
parentd294e845532face99e16338daab1e21b21f72c15 (diff)
Decompile tm_case data
-rw-r--r--data/data_83FECCC.s21
-rw-r--r--data/tm_case.s128
-rw-r--r--include/graphics.h11
-rw-r--r--ld_script.txt2
-rw-r--r--src/tm_case.c172
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)
{