diff options
author | fl4shk <fl4shk@users.noreply.github.com> | 2016-10-23 16:34:15 -0400 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-23 14:16:33 -0700 |
commit | 145369b7ab46cf057789dd28eb817da38e0e7d56 (patch) | |
tree | f0a30217b245321c45598965dff3c42f98a9c52a | |
parent | f5435a6f5c53a1217bd98617d8c1145f3d13acaf (diff) |
Babby's first decompilation success
-rw-r--r-- | .gitignore | 6 | ||||
-rw-r--r-- | asm/clear_save_data_menu.s | 90 | ||||
-rw-r--r-- | ld_script.txt | 1 | ||||
-rw-r--r-- | src/clear_save_data_menu.c | 41 |
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; +} |