From 433f9a7f144c3f0fcad357f8916cf1d599a1bcd4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 21 May 2021 16:09:22 -0400 Subject: Finish decompiling list_menu --- arm9/asm/unk_020010A8.s | 127 ------------------------------------------------ arm9/asm/unk_02001B80.s | 6 +-- arm9/asm/unk_0200CABC.s | 2 +- arm9/asm/unk_02012CC8.s | 8 +-- arm9/asm/unk_02016B94.s | 2 +- arm9/asm/unk_02035068.s | 12 ++--- arm9/asm/unk_02050E48.s | 2 +- arm9/asm/unk_02053750.s | 12 ++--- arm9/asm/unk_02057380.s | 8 +-- arm9/asm/unk_0205AD98.s | 2 +- arm9/asm/unk_0205C598.s | 2 +- arm9/asm/unk_020625EC.s | 2 +- arm9/asm/unk_020643C0.s | 8 +-- arm9/asm/unk_020653EC.s | 8 +-- arm9/asm/unk_0206F3FC.s | 6 +-- arm9/asm/unk_02073DA8.s | 2 +- arm9/asm/unk_020772F0.s | 8 +-- arm9/asm/unk_02079C70.s | 2 +- arm9/asm/unk_0208A338.s | 2 +- 19 files changed, 47 insertions(+), 174 deletions(-) delete mode 100644 arm9/asm/unk_020010A8.s (limited to 'arm9/asm') diff --git a/arm9/asm/unk_020010A8.s b/arm9/asm/unk_020010A8.s deleted file mode 100644 index 37faa5e7..00000000 --- a/arm9/asm/unk_020010A8.s +++ /dev/null @@ -1,127 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - - .extern gMain - .extern ListMenuPrint - .extern ListMenuPrintEntries - .extern ListMenuDrawCursor - .extern ListMenuErasePrintedCursor - .extern ListMenuUpdateSelectedRowIndexAndScrollOffset - .extern ListMenuScroll - - .text - - thumb_func_start ListMenuChangeSelection -ListMenuChangeSelection: ; 0x02001AA4 - push {r3-r7, lr} - sub sp, #0x10 - str r1, [sp, #0x0] - str r2, [sp, #0x4] - add r4, r0, #0x0 - str r3, [sp, #0x8] - ldrh r0, [r4, #0x2e] - mov r6, #0x0 - add r5, r6, #0x0 - str r0, [sp, #0xc] - ldr r0, [sp, #0x4] - add r7, r6, #0x0 - cmp r0, #0x0 - bls _02001AF6 -_02001AC0: - ldr r1, [sp, #0x8] - add r0, r4, #0x0 - bl ListMenuUpdateSelectedRowIndexAndScrollOffset - orr r5, r0 - cmp r0, #0x2 - bne _02001AEA - add r0, r6, #0x1 - lsl r0, r0, #0x18 - lsr r6, r0, #0x18 - ldrh r1, [r4, #0x2c] - ldrh r0, [r4, #0x2e] - ldr r2, [r4, #0x0] - add r0, r1, r0 - lsl r0, r0, #0x3 - add r0, r2, r0 - ldr r1, [r0, #0x4] - mov r0, #0x2 - mvn r0, r0 - cmp r1, r0 - beq _02001AC0 -_02001AEA: - add r0, r7, #0x1 - lsl r0, r0, #0x18 - lsr r7, r0, #0x18 - ldr r0, [sp, #0x4] - cmp r7, r0 - blo _02001AC0 -_02001AF6: - ldr r0, [sp, #0x0] - cmp r0, #0x0 - beq _02001B5E - cmp r5, #0x3 - bhi _02001B14 - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #0x6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_02001B0C: ; jump table (using 16-bit offset) - .short _02001B14 - _02001B0C - 2; case 0 - .short _02001B1A - _02001B0C - 2; case 1 - .short _02001B38 - _02001B0C - 2; case 2 - .short _02001B38 - _02001B0C - 2; case 3 -_02001B14: - add sp, #0x10 - mov r0, #0x1 - pop {r3-r7, pc} -_02001B1A: - ldr r1, [sp, #0xc] - add r0, r4, #0x0 - bl ListMenuErasePrintedCursor - add r0, r4, #0x0 - bl ListMenuDrawCursor - add r0, r4, #0x0 - mov r1, #0x0 - bl ListMenuCallSelectionChangedCallback - ldr r0, [r4, #0xc] - bl CopyWindowToVram - b _02001B5E -_02001B38: - ldr r1, [sp, #0xc] - add r0, r4, #0x0 - bl ListMenuErasePrintedCursor - ldr r2, [sp, #0x8] - add r0, r4, #0x0 - add r1, r6, #0x0 - bl ListMenuScroll - add r0, r4, #0x0 - bl ListMenuDrawCursor - add r0, r4, #0x0 - mov r1, #0x0 - bl ListMenuCallSelectionChangedCallback - ldr r0, [r4, #0xc] - bl CopyWindowToVram -_02001B5E: - mov r0, #0x0 - add sp, #0x10 - pop {r3-r7, pc} - - thumb_func_start ListMenuCallSelectionChangedCallback -ListMenuCallSelectionChangedCallback: ; 0x02001B64 - push {r3-r5, lr} - ldr r3, [r0, #0x4] - add r2, r1, #0x0 - cmp r3, #0x0 - beq _02001B7E - ldrh r5, [r0, #0x2c] - ldrh r4, [r0, #0x2e] - ldr r1, [r0, #0x0] - add r4, r5, r4 - lsl r4, r4, #0x3 - add r1, r1, r4 - ldr r1, [r1, #0x4] - blx r3 -_02001B7E: - pop {r3-r5, pc} diff --git a/arm9/asm/unk_02001B80.s b/arm9/asm/unk_02001B80.s index c2e1a245..6e08d1db 100644 --- a/arm9/asm/unk_02001B80.s +++ b/arm9/asm/unk_02001B80.s @@ -41,7 +41,7 @@ FUN_02001B8C: ; 0x02001B8C ldr r0, [r3, #0x0] str r0, [r2, #0x0] ldr r0, [sp, #0x4] - bl FUN_02013690 + bl ListMenuCursorNew str r0, [r4, #0xc] ldr r0, [sp, #0x24] str r0, [r4, #0x10] @@ -133,7 +133,7 @@ _02001C68: bl DestroyListMenuCursorObj ldrb r0, [r4, #0x1c] add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} thumb_func_start FUN_02001C78 @@ -894,7 +894,7 @@ FUN_020021EC: ; 0x020021EC bl FUN_02019178 ldr r1, [r5, #0x4] add r0, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [r5, #0x0] bl ListMenu_dtor add r0, r5, #0x0 diff --git a/arm9/asm/unk_0200CABC.s b/arm9/asm/unk_0200CABC.s index 57462727..69afdbe7 100644 --- a/arm9/asm/unk_0200CABC.s +++ b/arm9/asm/unk_0200CABC.s @@ -1098,7 +1098,7 @@ FUN_0200D300: ; 0x0200D300 bl FUN_02017FB4 ldr r1, [sp, #0x14] add r0, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, sp, #0x20 ldrb r3, [r0, #0x10] cmp r3, #0x1 diff --git a/arm9/asm/unk_02012CC8.s b/arm9/asm/unk_02012CC8.s index c3ed22aa..781d1d6d 100644 --- a/arm9/asm/unk_02012CC8.s +++ b/arm9/asm/unk_02012CC8.s @@ -1488,8 +1488,8 @@ _02013688: strh r0, [r4, #0x0] pop {r4, pc} - thumb_func_start FUN_02013690 -FUN_02013690: ; 0x02013690 + thumb_func_start ListMenuCursorNew +ListMenuCursorNew: ; 0x02013690 push {r3-r5, lr} mov r1, #0x8 add r5, r0, #0x0 @@ -1530,8 +1530,8 @@ _020136D8: _020136DE: pop {r4, pc} - thumb_func_start CreateListMenuCursorObj -CreateListMenuCursorObj: ; 0x020136E0 + thumb_func_start ListMenuCursorSetColor +ListMenuCursorSetColor: ; 0x020136E0 push {r3-r5, lr} add r5, r0, #0x0 add r4, r1, #0x0 diff --git a/arm9/asm/unk_02016B94.s b/arm9/asm/unk_02016B94.s index 6f46943c..73330a71 100644 --- a/arm9/asm/unk_02016B94.s +++ b/arm9/asm/unk_02016B94.s @@ -2716,7 +2716,7 @@ FUN_02017F18: ; 0x02017F18 bl FUN_02017E84 ldr r0, [sp, #0x0] add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r3-r7, pc} thumb_func_start FUN_02017F48 diff --git a/arm9/asm/unk_02035068.s b/arm9/asm/unk_02035068.s index 38fb3842..1123d9f5 100644 --- a/arm9/asm/unk_02035068.s +++ b/arm9/asm/unk_02035068.s @@ -1731,7 +1731,7 @@ FUN_02035DC8: ; 0x02035DC8 cmp r1, #0x0 beq _02035DF0 mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit _02035DF0: mov r0, #0xc strh r0, [r4, #0x2a] @@ -3193,7 +3193,7 @@ FUN_02036A14: ; 0x02036A14 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 @@ -3223,7 +3223,7 @@ FUN_02036A78: ; 0x02036A78 lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x73 lsl r1, r1, #0x2 add r0, r5, #0x0 @@ -3255,7 +3255,7 @@ FUN_02036AB8: ; 0x02036AB8 ldr r1, [r4, r0] mov r0, #0xb ldr r7, [r1, #0x0] - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x7e lsl r0, r0, #0x2 ldr r5, [r4, r0] @@ -3264,7 +3264,7 @@ FUN_02036AB8: ; 0x02036AB8 bne _02036B0E mov r0, #0xb add r1, r5, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x7a lsl r1, r1, #0x2 lsl r2, r7, #0x18 @@ -3320,7 +3320,7 @@ _02036B0E: lsl r1, r1, #0x2 ldr r1, [r4, r1] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r6, #0x0 bl FUN_0204649C mov r0, #0x72 diff --git a/arm9/asm/unk_02050E48.s b/arm9/asm/unk_02050E48.s index 70ba73b0..d7eb4bc4 100644 --- a/arm9/asm/unk_02050E48.s +++ b/arm9/asm/unk_02050E48.s @@ -1333,7 +1333,7 @@ _0205188E: add r0, #0x64 bl FUN_0201901C mov r0, #0xb - bl FUN_02013690 + bl ListMenuCursorNew str r0, [r4, #0x78] bl FUN_02033534 add r1, r4, #0x0 diff --git a/arm9/asm/unk_02053750.s b/arm9/asm/unk_02053750.s index 6ab54142..4724c308 100644 --- a/arm9/asm/unk_02053750.s +++ b/arm9/asm/unk_02053750.s @@ -1291,7 +1291,7 @@ FUN_020540C8: ; 0x020540C8 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _020540E4: @@ -1408,7 +1408,7 @@ FUN_020541A4: ; 0x020541A4 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _020541C0: @@ -1481,7 +1481,7 @@ FUN_02054228: ; 0x02054228 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054244: @@ -1581,7 +1581,7 @@ FUN_020542E8: ; 0x020542E8 bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054304: @@ -1749,7 +1749,7 @@ FUN_0205442C: ; 0x0205442C bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054448: @@ -1900,7 +1900,7 @@ FUN_0205454C: ; 0x0205454C bl FUN_0201FFC8 ldr r1, [r4, #0x0] mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0x0 str r0, [r4, #0x0] _02054568: diff --git a/arm9/asm/unk_02057380.s b/arm9/asm/unk_02057380.s index c6a25876..ef4050e3 100644 --- a/arm9/asm/unk_02057380.s +++ b/arm9/asm/unk_02057380.s @@ -33,10 +33,10 @@ FUN_020573AC: ; 0x020573AC bl FUN_020583CC add r1, r0, #0x0 mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0xb add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .balign 4 @@ -1035,10 +1035,10 @@ _02057C42: blt _02057C1A ldr r1, [r5, #0x10] mov r0, #0xb - bl FUN_02016A8C + bl FreeToHeapExplicit mov r0, #0xb add r1, r5, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r3-r7, pc} thumb_func_start FUN_02057C64 diff --git a/arm9/asm/unk_0205AD98.s b/arm9/asm/unk_0205AD98.s index bc0fa0dd..54448e61 100644 --- a/arm9/asm/unk_0205AD98.s +++ b/arm9/asm/unk_0205AD98.s @@ -212,7 +212,7 @@ _0205AF14: bl FUN_0205AE50 mov r0, #0x4 add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r5, #0x0 bl FUN_0200CAB4 pop {r3-r5, pc} diff --git a/arm9/asm/unk_0205C598.s b/arm9/asm/unk_0205C598.s index ac7a6808..d80c26b4 100644 --- a/arm9/asm/unk_0205C598.s +++ b/arm9/asm/unk_0205C598.s @@ -723,7 +723,7 @@ FUN_0205CAE0: ; 0x0205CAE0 bl FUN_0201B6C8 add r1, r0, #0x0 mov r0, #0x4 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r4, #0x0 bl FUN_0200CAB4 pop {r4, pc} diff --git a/arm9/asm/unk_020625EC.s b/arm9/asm/unk_020625EC.s index 5147f099..48f512e9 100644 --- a/arm9/asm/unk_020625EC.s +++ b/arm9/asm/unk_020625EC.s @@ -1552,7 +1552,7 @@ FUN_020631C8: ; 0x020631C8 add r0, r5, #0x0 add r1, #0x2 add r2, sp, #0x0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, r5, #0x0 mov r1, #0x2 bl ListMenuGetTemplateField diff --git a/arm9/asm/unk_020643C0.s b/arm9/asm/unk_020643C0.s index bc843c82..4a7b92d3 100644 --- a/arm9/asm/unk_020643C0.s +++ b/arm9/asm/unk_020643C0.s @@ -292,12 +292,12 @@ _020645F2: thumb_func_start FUN_02064600 FUN_02064600: ; 0x02064600 - ldr r3, _02064608 ; =FUN_02016A8C + ldr r3, _02064608 ; =FreeToHeapExplicit add r1, r0, #0x0 ldr r0, [r1, #0x8] bx r3 .balign 4 -_02064608: .word FUN_02016A8C +_02064608: .word FreeToHeapExplicit thumb_func_start FUN_0206460C FUN_0206460C: ; 0x0206460C @@ -320,13 +320,13 @@ _02064622: thumb_func_start FUN_02064630 FUN_02064630: ; 0x02064630 - ldr r3, _0206463C ; =FUN_02016A8C + ldr r3, _0206463C ; =FreeToHeapExplicit add r1, r0, #0x0 ldr r0, [r1, #0x8] ldr r1, [r1, #0xc] bx r3 nop -_0206463C: .word FUN_02016A8C +_0206463C: .word FreeToHeapExplicit thumb_func_start FUN_02064640 FUN_02064640: ; 0x02064640 diff --git a/arm9/asm/unk_020653EC.s b/arm9/asm/unk_020653EC.s index 003e1330..69cc0dbd 100644 --- a/arm9/asm/unk_020653EC.s +++ b/arm9/asm/unk_020653EC.s @@ -1177,7 +1177,7 @@ FUN_02065CFC: ; 0x02065CFC mov r1, #0x1 mov r2, #0xf mov r3, #0x2 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3-r5, pc} _02065D1C: mov r1, #0xc @@ -1191,14 +1191,14 @@ _02065D1C: mov r1, #0x3 mov r2, #0xf mov r3, #0x4 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3-r5, pc} _02065D38: add r0, r5, #0x0 mov r1, #0x7 mov r2, #0xf mov r3, #0x8 - bl FUN_020013E8 + bl ListMenuOverrideSetColors pop {r3-r5, pc} nop _02065D48: .word 0x0000FFFF @@ -1216,7 +1216,7 @@ FUN_02065D4C: ; 0x02065D4C add r0, r4, #0x0 add r1, #0x2 add r2, sp, #0x0 - bl FUN_02001448 + bl ListMenuGetScrollAndRow add r0, r4, #0x0 mov r1, #0x2 bl ListMenuGetTemplateField diff --git a/arm9/asm/unk_0206F3FC.s b/arm9/asm/unk_0206F3FC.s index b1a1edbd..772480ed 100644 --- a/arm9/asm/unk_0206F3FC.s +++ b/arm9/asm/unk_0206F3FC.s @@ -1237,7 +1237,7 @@ FUN_0206FCD4: ; 0x0206FCD4 bl FUN_020178A0 mov r0, #0xc add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .balign 4 @@ -1293,7 +1293,7 @@ FUN_0206FD24: ; 0x0206FD24 bl memcpy mov r0, #0xc add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x1a mov r0, #0x0 lsl r1, r1, #0x4 @@ -3729,7 +3729,7 @@ _02071146: bl FUN_02072844 mov r0, #0xc add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit add r0, r5, #0x0 bl FUN_0207295C mov r1, #0x0 diff --git a/arm9/asm/unk_02073DA8.s b/arm9/asm/unk_02073DA8.s index a854727b..6dd1bf64 100644 --- a/arm9/asm/unk_02073DA8.s +++ b/arm9/asm/unk_02073DA8.s @@ -1672,7 +1672,7 @@ _02074B6A: add r1, r7, #0x0 str r0, [r3, #0x0] mov r0, #0xc - bl FUN_02016A8C + bl FreeToHeapExplicit mov r1, #0x3 lsl r1, r1, #0x8 ldrb r3, [r4, r1] diff --git a/arm9/asm/unk_020772F0.s b/arm9/asm/unk_020772F0.s index 7a074186..80d633bb 100644 --- a/arm9/asm/unk_020772F0.s +++ b/arm9/asm/unk_020772F0.s @@ -1509,18 +1509,18 @@ _02077982: ldr r1, _02077A70 ; =0x000004AC mov r0, #0x12 ldr r1, [r4, r1] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r0, [r4, #0x0] cmp r0, #0x1 bne _020779C2 ldr r1, _02077A74 ; =0x000004B4 mov r0, #0x12 ldr r1, [r4, r1] - bl FUN_02016A8C + bl FreeToHeapExplicit ldr r1, _02077A78 ; =0x000004BC mov r0, #0x12 ldr r1, [r4, r1] - bl FUN_02016A8C + bl FreeToHeapExplicit _020779C2: mov r0, #0x16 lsl r0, r0, #0x4 @@ -2250,7 +2250,7 @@ _02077FB0: bl FUN_020178A0 mov r0, #0x12 add r1, r6, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4-r6, pc} thumb_func_start FUN_02077FE8 diff --git a/arm9/asm/unk_02079C70.s b/arm9/asm/unk_02079C70.s index 722c8144..617a122a 100644 --- a/arm9/asm/unk_02079C70.s +++ b/arm9/asm/unk_02079C70.s @@ -533,7 +533,7 @@ FUN_0207A08C: ; 0x0207A08C bl FUN_020178A0 mov r0, #0x13 add r1, r4, #0x0 - bl FUN_02016A8C + bl FreeToHeapExplicit pop {r4, pc} .balign 4 diff --git a/arm9/asm/unk_0208A338.s b/arm9/asm/unk_0208A338.s index 3b40567c..2005be3e 100644 --- a/arm9/asm/unk_0208A338.s +++ b/arm9/asm/unk_0208A338.s @@ -36,7 +36,7 @@ FUN_0208A338: ; 0x0208A338 bl NewMsgDataFromNarc str r0, [r4, #0x10] mov r0, #0x20 - bl FUN_02013690 + bl ListMenuCursorNew str r0, [r4, #0x14] ldr r2, [r4, #0x0] mov r0, #0x2 -- cgit v1.2.3