summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfl4shk <fl4shk@users.noreply.github.com>2016-10-23 16:34:15 -0400
committerYamaArashi <shadow962@live.com>2016-10-23 14:16:33 -0700
commit145369b7ab46cf057789dd28eb817da38e0e7d56 (patch)
treef0a30217b245321c45598965dff3c42f98a9c52a
parentf5435a6f5c53a1217bd98617d8c1145f3d13acaf (diff)
Babby's first decompilation success
-rw-r--r--.gitignore6
-rw-r--r--asm/clear_save_data_menu.s90
-rw-r--r--ld_script.txt1
-rw-r--r--src/clear_save_data_menu.c41
4 files changed, 48 insertions, 90 deletions
diff --git a/.gitignore b/.gitignore
index b528a4eea..ca6c147c7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,9 @@ ld_script_sapphire.txt
*.nam
*.til
*.ld
+tags
+types_*.taghl
+*.swp
+*.swo
+*.s.old
+*.dump
diff --git a/asm/clear_save_data_menu.s b/asm/clear_save_data_menu.s
index 7d9249eb9..e3250cdb2 100644
--- a/asm/clear_save_data_menu.s
+++ b/asm/clear_save_data_menu.s
@@ -6,96 +6,6 @@
.text
- thumb_func_start c2_clear_save_data_screen_2
-c2_clear_save_data_screen_2: @ 8148800
- push {lr}
- bl sub_8148970
- lsls r0, 24
- cmp r0, 0
- beq _08148814
- ldr r0, _08148818 @ =sub_8148830
- movs r1, 0
- bl CreateTask
-_08148814:
- pop {r0}
- bx r0
- .align 2, 0
-_08148818: .4byte sub_8148830
- thumb_func_end c2_clear_save_data_screen_2
-
- thumb_func_start sub_814881C
-sub_814881C: @ 814881C
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_814881C
-
- thumb_func_start sub_8148830
-sub_8148830: @ 8148830
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ResetSpriteData
- movs r1, 0x80
- lsls r1, 19
- movs r2, 0xCA
- lsls r2, 5
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, _081488A8 @ =sub_814881C
- bl SetVBlankCallback
- movs r0, 0x2
- movs r1, 0xE
- movs r2, 0x1B
- movs r3, 0x13
- bl MenuDrawTextWindow
- ldr r0, _081488AC @ =gSystemText_ClearAllSaveDataPrompt
- movs r1, 0x3
- movs r2, 0xF
- bl MenuPrint
- movs r0, 0x2
- movs r1, 0x1
- movs r2, 0x8
- movs r3, 0x6
- bl MenuDrawTextWindow
- ldr r3, _081488B0 @ =gUnknown_08376D74
- movs r0, 0x3
- movs r1, 0x2
- movs r2, 0x2
- bl PrintMenuItems
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x5
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0x3
- movs r2, 0x2
- movs r3, 0x2
- bl InitMenu
- ldr r1, _081488B4 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _081488B8 @ =sub_81488BC
- str r1, [r0]
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_081488A8: .4byte sub_814881C
-_081488AC: .4byte gSystemText_ClearAllSaveDataPrompt
-_081488B0: .4byte gUnknown_08376D74
-_081488B4: .4byte gTasks
-_081488B8: .4byte sub_81488BC
- thumb_func_end sub_8148830
-
thumb_func_start sub_81488BC
sub_81488BC: @ 81488BC
push {r4,lr}
diff --git a/ld_script.txt b/ld_script.txt
index 487b11fe1..f23683422 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -115,6 +115,7 @@ SECTIONS {
asm/mystery_event_menu.o(.text);
asm/save_failed_screen.o(.text);
asm/rom_81473B8.o(.text);
+ src/clear_save_data_menu.o(.text);
asm/clear_save_data_menu.o(.text);
asm/rom_8148B8C.o(.text);
} =0
diff --git a/src/clear_save_data_menu.c b/src/clear_save_data_menu.c
new file mode 100644
index 000000000..1594f6f39
--- /dev/null
+++ b/src/clear_save_data_menu.c
@@ -0,0 +1,41 @@
+#include "global.h"
+#include "task.h"
+
+extern bool8 sub_8148970(void);
+extern void sub_8148830(u8);
+extern void sub_81488BC(u8);
+
+extern u8 gSystemText_ClearAllSaveDataPrompt[];
+extern u8 *gUnknown_08376D74[][2];
+
+void c2_clear_save_data_screen_2(void)
+{
+ if (sub_8148970())
+ {
+ CreateTask(sub_8148830, 0);
+ }
+}
+
+void sub_814881C(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void sub_8148830(u8 taskId)
+{
+ ResetSpriteData();
+
+ REG_DISPCNT = DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON | DISPCNT_BG3_ON | DISPCNT_OBJ_ON;
+
+ SetVBlankCallback(sub_814881C);
+ MenuDrawTextWindow(2, 14, 27, 19);
+ MenuPrint(gSystemText_ClearAllSaveDataPrompt, 3, 15);
+
+ MenuDrawTextWindow(2, 1, 8, 6);
+ PrintMenuItems(3, 2, 2, gUnknown_08376D74);
+ InitMenu(0, 3, 2, 2, 1, 5);
+
+ gTasks[taskId].func = sub_81488BC;
+}