diff options
author | YamaArashi <shadow962@live.com> | 2016-10-27 22:53:52 -0700 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-10-27 22:53:52 -0700 |
commit | 2dfc62a980291f38133b57737182c3a55dbf1bbb (patch) | |
tree | 638ff4347fb82e5bb621b955778e3daa0ac0727e | |
parent | 5a9ece239b989316a8834ccb1b87f4dbc2701e77 (diff) |
split out menu_cursor.s
-rw-r--r-- | Makefile | 1 | ||||
-rw-r--r-- | asm/menu_cursor.s | 1118 | ||||
-rw-r--r-- | asm/rom_8148B8C.s | 1109 | ||||
-rw-r--r-- | ld_script.txt | 1 |
4 files changed, 1120 insertions, 1109 deletions
@@ -150,6 +150,7 @@ asm/mystery_event_menu.o \ asm/save_failed_screen.o \ asm/rom_81473B8.o \ asm/rom_8148B8C.o \ +asm/menu_cursor.o \ asm/libgcnmultiboot.o \ asm/m4a_1.o \ asm/m4a_3.o \ diff --git a/asm/menu_cursor.s b/asm/menu_cursor.s new file mode 100644 index 000000000..8fb1c969c --- /dev/null +++ b/asm/menu_cursor.s @@ -0,0 +1,1118 @@ + .include "constants/gba_constants.s" + .include "constants/species_constants.s" + .include "asm/macros.s" + + .syntax unified + + .text + + thumb_func_start sub_814A590 +sub_814A590: @ 814A590 + ldr r0, _0814A5AC @ =gUnknown_0203A3D0 + movs r1, 0x40 + strb r1, [r0] + ldr r0, _0814A5B0 @ =gUnknown_0203A3D1 + strb r1, [r0] + ldr r0, _0814A5B4 @ =gUnknown_0203A3D2 + strb r1, [r0] + ldr r0, _0814A5B8 @ =gUnknown_0203A3D3 + movs r1, 0 + strb r1, [r0] + ldr r0, _0814A5BC @ =gUnknown_0203A3D4 + strb r1, [r0] + bx lr + .align 2, 0 +_0814A5AC: .4byte gUnknown_0203A3D0 +_0814A5B0: .4byte gUnknown_0203A3D1 +_0814A5B4: .4byte gUnknown_0203A3D2 +_0814A5B8: .4byte gUnknown_0203A3D3 +_0814A5BC: .4byte gUnknown_0203A3D4 + thumb_func_end sub_814A590 + + thumb_func_start sub_814A5C0 +sub_814A5C0: @ 814A5C0 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r6, r1, 16 + lsls r2, 24 + lsrs r5, r2, 24 + lsls r3, 16 + lsrs r7, r3, 16 + lsls r4, 24 + lsrs r4, 24 + mov r9, r4 + ldr r0, _0814A678 @ =gUnknown_0203A3D0 + ldrb r0, [r0] + cmp r0, 0x40 + bne _0814A5F2 + ldr r0, _0814A67C @ =gUnknown_0203A3D1 + ldrb r0, [r0] + cmp r0, 0x40 + beq _0814A5F6 +_0814A5F2: + bl sub_814A7FC +_0814A5F6: + movs r4, 0x1 + ldr r0, _0814A680 @ =0x0000ffff + cmp r6, r0 + bne _0814A61C + ldr r1, _0814A684 @ =gUnknown_0203A360 + movs r0, 0xF + ands r0, r5 + lsls r0, 1 + adds r0, r1 + strh r7, [r0] + ldr r0, _0814A688 @ =gUnknown_0842F240 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0814A61C + ldr r6, _0814A68C @ =0x0000fff0 + movs r4, 0 +_0814A61C: + movs r7, 0xF + adds r0, r5, 0 + ands r0, r7 + lsls r0, 3 + ldr r1, _0814A690 @ =gUnknown_0842F140 + adds r0, r1 + bl LoadSpriteSheetDeferred + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r4, _0814A694 @ =gSpriteTemplate_842F250 + adds r0, r4 + movs r1, 0 + movs r2, 0xA0 + mov r3, r8 + bl CreateSprite + ldr r5, _0814A678 @ =gUnknown_0203A3D0 + strb r0, [r5] + adds r4, 0x30 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0xA0 + mov r3, r8 + bl CreateSprite + ldr r1, _0814A67C @ =gUnknown_0203A3D1 + strb r0, [r1] + ldrb r0, [r5] + cmp r0, 0x40 + beq _0814A6AE + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A698 @ =gSprites + adds r4, r0, r1 + ldr r0, _0814A680 @ =0x0000ffff + cmp r6, r0 + bne _0814A69C + ldrb r1, [r4, 0x5] + adds r0, r7, 0 + ands r0, r1 + strb r0, [r4, 0x5] + b _0814A6AE + .align 2, 0 +_0814A678: .4byte gUnknown_0203A3D0 +_0814A67C: .4byte gUnknown_0203A3D1 +_0814A680: .4byte 0x0000ffff +_0814A684: .4byte gUnknown_0203A360 +_0814A688: .4byte gUnknown_0842F240 +_0814A68C: .4byte 0x0000fff0 +_0814A690: .4byte gUnknown_0842F140 +_0814A694: .4byte gSpriteTemplate_842F250 +_0814A698: .4byte gSprites +_0814A69C: + adds r0, r6, 0 + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + adds r1, r7, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_0814A6AE: + ldr r1, _0814A6D4 @ =gUnknown_0203A3D1 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A72C + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A6D8 @ =gSprites + adds r4, r0, r1 + ldr r0, _0814A6DC @ =0x0000ffff + cmp r6, r0 + bne _0814A6E0 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + strb r0, [r4, 0x5] + b _0814A6F2 + .align 2, 0 +_0814A6D4: .4byte gUnknown_0203A3D1 +_0814A6D8: .4byte gSprites +_0814A6DC: .4byte 0x0000ffff +_0814A6E0: + adds r0, r6, 0 + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + movs r1, 0xF + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_0814A6F2: + movs r3, 0x80 + lsls r3, 19 + ldrh r1, [r3] + movs r0, 0xC0 + lsls r0, 7 + ands r0, r1 + cmp r0, 0 + bne _0814A70C + ldr r0, _0814A744 @ =REG_WINOUT + ldrb r1, [r0] + movs r2, 0x1F + orrs r1, r2 + strb r1, [r0] +_0814A70C: + ldr r1, _0814A748 @ =gUnknown_0203A3D3 + ldrh r0, [r3] + lsrs r0, 15 + strb r0, [r1] + ldr r1, _0814A74C @ =gUnknown_0203A3D4 + ldr r2, _0814A750 @ =0x0400004b + ldrb r0, [r2] + strb r0, [r1] + ldrh r0, [r3] + movs r4, 0x80 + lsls r4, 8 + adds r1, r4, 0 + orrs r0, r1 + strh r0, [r3] + movs r0, 0x10 + strb r0, [r2] +_0814A72C: + mov r0, r9 + bl sub_814A958 + ldr r0, _0814A754 @ =gUnknown_0203A3D0 + ldrb r0, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0814A744: .4byte REG_WINOUT +_0814A748: .4byte gUnknown_0203A3D3 +_0814A74C: .4byte gUnknown_0203A3D4 +_0814A750: .4byte 0x0400004b +_0814A754: .4byte gUnknown_0203A3D0 + thumb_func_end sub_814A5C0 + + thumb_func_start sub_814A758 +sub_814A758: @ 814A758 + push {r4,r5,lr} + sub sp, 0x4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + lsls r2, 24 + lsrs r2, 24 + lsls r3, 24 + lsrs r3, 24 + str r3, [sp] + movs r1, 0 + movs r3, 0 + bl sub_814A5C0 + lsls r0, 24 + lsrs r0, 24 + adds r4, r0, 0 + cmp r4, 0x40 + beq _0814A79A + ldr r0, _0814A7A4 @ =gUnknown_0203A3D0 + ldrb r0, [r0] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0814A7A8 @ =gSprites + adds r1, r0 + lsls r3, r5, 4 + ldrb r2, [r1, 0x5] + movs r0, 0xF + ands r0, r2 + orrs r0, r3 + strb r0, [r1, 0x5] +_0814A79A: + adds r0, r4, 0 + add sp, 0x4 + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0814A7A4: .4byte gUnknown_0203A3D0 +_0814A7A8: .4byte gSprites + thumb_func_end sub_814A758 + + thumb_func_start unref_sub_814A7AC +unref_sub_814A7AC: @ 814A7AC + push {r4-r7,lr} + lsls r0, 24 + lsrs r0, 24 + mov r12, r0 + lsls r1, 16 + lsrs r4, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + movs r3, 0 + movs r2, 0xF + movs r1, 0 + ldr r6, _0814A7F8 @ =gPlttBufferUnfaded + movs r5, 0xF +_0814A7C6: + lsls r0, r1, 1 + adds r0, r6 + ldrh r0, [r0] + cmp r0, r4 + bne _0814A7DA + lsrs r0, r1, 4 + lsls r0, 24 + lsrs r3, r0, 24 + adds r2, r1, 0 + ands r2, r5 +_0814A7DA: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xFF + bls _0814A7C6 + mov r0, r12 + adds r1, r3, 0 + adds r3, r7, 0 + bl sub_814A758 + lsls r0, 24 + lsrs r0, 24 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0814A7F8: .4byte gPlttBufferUnfaded + thumb_func_end unref_sub_814A7AC + + thumb_func_start sub_814A7FC +sub_814A7FC: @ 814A7FC + push {r4,lr} + ldr r4, _0814A860 @ =gUnknown_0203A3D0 + ldrb r0, [r4] + cmp r0, 0x40 + beq _0814A820 + ldr r0, _0814A864 @ =gUnknown_0842F140 + bl LoadTilesForSpriteSheet + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A868 @ =gSprites + adds r0, r1 + bl DestroySpriteAndFreeResources + movs r0, 0x40 + strb r0, [r4] +_0814A820: + ldr r4, _0814A86C @ =gUnknown_0203A3D1 + ldrb r0, [r4] + cmp r0, 0x40 + beq _0814A858 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A868 @ =gSprites + adds r0, r1 + bl DestroySpriteAndFreeResources + movs r0, 0x40 + strb r0, [r4] + ldr r0, _0814A870 @ =gUnknown_0203A3D3 + ldrb r0, [r0] + cmp r0, 0 + bne _0814A850 + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _0814A874 @ =0x00007fff + ands r0, r1 + strh r0, [r2] +_0814A850: + ldr r0, _0814A878 @ =0x0400004b + ldr r1, _0814A87C @ =gUnknown_0203A3D4 + ldrb r1, [r1] + strb r1, [r0] +_0814A858: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814A860: .4byte gUnknown_0203A3D0 +_0814A864: .4byte gUnknown_0842F140 +_0814A868: .4byte gSprites +_0814A86C: .4byte gUnknown_0203A3D1 +_0814A870: .4byte gUnknown_0203A3D3 +_0814A874: .4byte 0x00007fff +_0814A878: .4byte 0x0400004b +_0814A87C: .4byte gUnknown_0203A3D4 + thumb_func_end sub_814A7FC + + thumb_func_start sub_814A880 +sub_814A880: @ 814A880 + push {r4-r7,lr} + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r5, 0 + lsls r1, 24 + lsrs r4, r1, 24 + adds r6, r4, 0 + ldr r1, _0814A8F8 @ =gUnknown_0203A3D0 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A8C0 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A8FC @ =gSprites + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x28 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + strh r5, [r2, 0x20] + strh r4, [r2, 0x22] +_0814A8C0: + ldr r1, _0814A900 @ =gUnknown_0203A3D1 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A8F2 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A8FC @ =gSprites + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x28 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + strh r7, [r2, 0x20] + strh r6, [r2, 0x22] +_0814A8F2: + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814A8F8: .4byte gUnknown_0203A3D0 +_0814A8FC: .4byte gSprites +_0814A900: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814A880 + + thumb_func_start sub_814A904 +sub_814A904: @ 814A904 + push {lr} + ldr r1, _0814A94C @ =gUnknown_0203A3D0 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A926 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A950 @ =gSprites + adds r0, r1 + adds r2, r0, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0814A926: + ldr r1, _0814A954 @ =gUnknown_0203A3D1 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814A946 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814A950 @ =gSprites + adds r0, r1 + adds r2, r0, 0 + adds r2, 0x3E + ldrb r0, [r2] + movs r1, 0x4 + orrs r0, r1 + strb r0, [r2] +_0814A946: + pop {r0} + bx r0 + .align 2, 0 +_0814A94C: .4byte gUnknown_0203A3D0 +_0814A950: .4byte gSprites +_0814A954: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814A904 + + thumb_func_start sub_814A958 +sub_814A958: @ 814A958 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + lsls r0, 24 + ldr r4, _0814A9C4 @ =gSubspriteTable_203A380 + ldr r2, _0814A9C8 @ =0x0000ffff + lsrs r0, 24 + str r0, [sp] + movs r0, 0 + movs r1, 0 + movs r1, 0x2 + str r0, [r4] + str r1, [r4, 0x4] + strh r2, [r4] + adds r4, 0x8 + movs r7, 0x1 + movs r2, 0x1 + ldr r1, [sp] + subs r0, r1, 0x1 + lsls r0, 16 + lsrs r3, r0, 16 + asrs r0, 16 + cmp r0, 0x7 + ble _0814AA3A + ldr r0, _0814A9CC @ =gUnknown_0842F780 + mov r12, r0 + mov r8, r1 + movs r1, 0x8 + negs r1, r1 + mov r10, r1 + ldr r5, _0814A9D0 @ =gUnknown_0842F788 + mov r9, r5 +_0814A99E: + lsls r0, r3, 16 + asrs r3, r0, 16 + cmp r3, 0x1F + ble _0814A9D4 + mov r6, r12 + ldr r0, [r6] + ldr r1, [r6, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + strh r2, [r4] + lsls r0, r2, 16 + movs r1, 0x80 + lsls r1, 14 + adds r0, r1 + lsrs r2, r0, 16 + ldr r3, [sp] + lsls r5, r3, 16 + b _0814AA20 + .align 2, 0 +_0814A9C4: .4byte gSubspriteTable_203A380 +_0814A9C8: .4byte 0x0000ffff +_0814A9CC: .4byte gUnknown_0842F780 +_0814A9D0: .4byte gUnknown_0842F788 +_0814A9D4: + ldr r6, [sp] + lsls r5, r6, 16 + mov r0, r8 + cmp r0, 0x27 + ble _0814AA0A + cmp r3, 0x8 + ble _0814AA0A + mov r6, r12 + ldr r0, [r6] + ldr r1, [r6, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + lsls r1, r2, 16 + asrs r1, 16 + adds r2, r1, 0 + subs r2, 0x20 + adds r0, r3, 0 + mov r6, r10 + ands r0, r6 + adds r2, r0 + strh r2, [r4] + movs r0, 0x18 + ands r0, r3 + adds r1, r0 + lsls r1, 16 + lsrs r2, r1, 16 + b _0814AA20 +_0814AA0A: + mov r3, r9 + ldr r0, [r3] + ldr r1, [r3, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + strh r2, [r4] + lsls r0, r2, 16 + movs r6, 0x80 + lsls r6, 12 + adds r0, r6 + lsrs r2, r0, 16 +_0814AA20: + adds r4, 0x8 + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + asrs r1, r5, 16 + lsls r0, r2, 16 + asrs r0, 16 + subs r1, r0 + lsls r1, 16 + lsrs r3, r1, 16 + asrs r1, 16 + cmp r1, 0x7 + bgt _0814A99E +_0814AA3A: + ldr r5, _0814AAA8 @ =gUnknown_0842F790 + ldr r0, [r5] + ldr r1, [r5, 0x4] + str r0, [r4] + str r1, [r4, 0x4] + lsls r1, r2, 16 + asrs r1, 16 + subs r1, 0x7 + lsls r0, r3, 16 + asrs r0, 16 + adds r0, r1 + strh r0, [r4] + adds r0, r7, 0x1 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r6, _0814AAAC @ =gUnknown_0203A3D0 + ldrb r0, [r6] + cmp r0, 0x40 + beq _0814AA78 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AAB0 @ =gSprites + adds r2, r0, r1 + lsls r1, r7, 3 + ldr r0, _0814AAB4 @ =gSubspriteTables_842F5C0 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AA78: + ldr r1, _0814AAB8 @ =gUnknown_0203A3D1 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AA98 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AAB0 @ =gSprites + adds r2, r0, r1 + lsls r1, r7, 3 + ldr r0, _0814AAB4 @ =gSubspriteTables_842F5C0 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AA98: + add sp, 0x4 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814AAA8: .4byte gUnknown_0842F790 +_0814AAAC: .4byte gUnknown_0203A3D0 +_0814AAB0: .4byte gSprites +_0814AAB4: .4byte gSubspriteTables_842F5C0 +_0814AAB8: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814A958 + + thumb_func_start sub_814AABC +sub_814AABC: @ 814AABC + push {lr} + adds r2, r0, 0 + ldr r1, _0814AAEC @ =gUnknown_0203A3D0 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AAD4 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0814AAF0 @ =gSprites + adds r1, r0 + str r2, [r1, 0x1C] +_0814AAD4: + ldr r1, _0814AAF4 @ =gUnknown_0203A3D1 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AAE8 + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, _0814AAF0 @ =gSprites + adds r1, r0 + str r2, [r1, 0x1C] +_0814AAE8: + pop {r0} + bx r0 + .align 2, 0 +_0814AAEC: .4byte gUnknown_0203A3D0 +_0814AAF0: .4byte gSprites +_0814AAF4: .4byte gUnknown_0203A3D1 + thumb_func_end sub_814AABC + + thumb_func_start sub_814AAF8 +sub_814AAF8: @ 814AAF8 + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + lsrs r0, 16 + mov r12, r0 + ldr r1, _0814AB70 @ =gUnknown_0203A3D0 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AB66 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AB74 @ =gSprites + adds r4, r0, r1 + ldr r0, [r4, 0x14] + ldrh r1, [r0, 0x2] + ldr r0, _0814AB78 @ =0x0000ffff + cmp r1, r0 + bne _0814AB66 + movs r2, 0 + movs r3, 0xF + movs r1, 0 + ldrb r5, [r4, 0x5] + ldr r0, _0814AB7C @ =gUnknown_0842F140 + mov r8, r0 + ldr r7, _0814AB80 @ =gPlttBufferUnfaded + movs r6, 0xF +_0814AB32: + lsls r0, r1, 1 + adds r0, r7 + ldrh r0, [r0] + cmp r0, r12 + bne _0814AB46 + lsrs r0, r1, 4 + lsls r0, 24 + lsrs r2, r0, 24 + adds r3, r1, 0 + ands r3, r6 +_0814AB46: + adds r0, r1, 0x1 + lsls r0, 16 + lsrs r1, r0, 16 + cmp r1, 0xFF + bls _0814AB32 + lsls r2, 4 + movs r1, 0xF + adds r0, r1, 0 + ands r0, r5 + orrs r0, r2 + strb r0, [r4, 0x5] + ands r3, r1 + lsls r0, r3, 3 + add r0, r8 + bl RequestSpriteSheetCopy +_0814AB66: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0814AB70: .4byte gUnknown_0203A3D0 +_0814AB74: .4byte gSprites +_0814AB78: .4byte 0x0000ffff +_0814AB7C: .4byte gUnknown_0842F140 +_0814AB80: .4byte gPlttBufferUnfaded + thumb_func_end sub_814AAF8 + + thumb_func_start sub_814AB84 +sub_814AB84: @ 814AB84 + push {r4,r5,lr} + ldr r5, _0814ABCC @ =gUnknown_0203A3D1 + ldrb r0, [r5] + cmp r0, 0x40 + beq _0814ABC4 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, _0814ABD0 @ =gSprites + adds r4, r0 + adds r0, r4, 0 + bl FreeSpriteOamMatrix + adds r0, r4, 0 + bl DestroySprite + movs r0, 0x40 + strb r0, [r5] + ldr r0, _0814ABD4 @ =gUnknown_0203A3D3 + ldrb r0, [r0] + cmp r0, 0 + bne _0814ABBC + movs r2, 0x80 + lsls r2, 19 + ldrh r1, [r2] + ldr r0, _0814ABD8 @ =0x00007fff + ands r0, r1 + strh r0, [r2] +_0814ABBC: + ldr r0, _0814ABDC @ =0x0400004b + ldr r1, _0814ABE0 @ =gUnknown_0203A3D4 + ldrb r1, [r1] + strb r1, [r0] +_0814ABC4: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814ABCC: .4byte gUnknown_0203A3D1 +_0814ABD0: .4byte gSprites +_0814ABD4: .4byte gUnknown_0203A3D3 +_0814ABD8: .4byte 0x00007fff +_0814ABDC: .4byte 0x0400004b +_0814ABE0: .4byte gUnknown_0203A3D4 + thumb_func_end sub_814AB84 + + thumb_func_start unref_sub_814ABE4 +unref_sub_814ABE4: @ 814ABE4 + push {r4,lr} + adds r4, r0, 0 + ldr r1, _0814AC40 @ =gUnknown_0842F5BC + lsls r0, r4, 2 + adds r0, r1 + ldr r0, [r0] + ldr r1, _0814AC44 @ =gSubspriteTable_203A380 + movs r2, 0x28 + bl CpuSet + ldr r1, _0814AC48 @ =gUnknown_0203A3D0 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AC18 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AC4C @ =gSprites + adds r2, r0, r1 + lsls r1, r4, 3 + ldr r0, _0814AC50 @ =gUnknown_0842F758 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AC18: + ldr r1, _0814AC54 @ =gUnknown_0203A3D1 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AC38 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AC4C @ =gSprites + adds r2, r0, r1 + lsls r1, r4, 3 + ldr r0, _0814AC50 @ =gUnknown_0842F758 + adds r1, r0 + adds r0, r2, 0 + bl SetSubspriteTables +_0814AC38: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814AC40: .4byte gUnknown_0842F5BC +_0814AC44: .4byte gSubspriteTable_203A380 +_0814AC48: .4byte gUnknown_0203A3D0 +_0814AC4C: .4byte gSprites +_0814AC50: .4byte gUnknown_0842F758 +_0814AC54: .4byte gUnknown_0203A3D1 + thumb_func_end unref_sub_814ABE4 + + thumb_func_start CreateBlendedOutlineCursor +CreateBlendedOutlineCursor: @ 814AC58 + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + ldr r4, [sp, 0x1C] + lsls r0, 24 + lsrs r0, 24 + mov r8, r0 + lsls r1, 16 + lsrs r5, r1, 16 + lsls r2, 24 + lsrs r7, r2, 24 + lsls r3, 16 + lsrs r6, r3, 16 + lsls r4, 24 + lsrs r4, 24 + mov r9, r4 + ldr r0, _0814ACF8 @ =gUnknown_0203A3D2 + ldrb r0, [r0] + cmp r0, 0x40 + beq _0814AC86 + bl sub_814AD44 +_0814AC86: + movs r4, 0x1 + ldr r0, _0814ACFC @ =0x0000ffff + cmp r5, r0 + bne _0814ACAC + ldr r1, _0814AD00 @ =gUnknown_0203A360 + movs r0, 0xF + ands r0, r7 + lsls r0, 1 + adds r0, r1 + strh r6, [r0] + ldr r0, _0814AD04 @ =gUnknown_0842F248 + bl LoadSpritePalette + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0xFF + beq _0814ACAC + ldr r5, _0814AD08 @ =0x0000fff1 + movs r4, 0 +_0814ACAC: + movs r6, 0xF + adds r0, r7, 0 + ands r0, r6 + lsls r0, 3 + ldr r1, _0814AD0C @ =gUnknown_0842F1C0 + adds r0, r1 + bl LoadSpriteSheetDeferred + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 3 + ldr r1, _0814AD10 @ =gSpriteTemplate_842F298 + adds r0, r1 + movs r1, 0 + movs r2, 0xA0 + mov r3, r8 + bl CreateSprite + ldr r1, _0814ACF8 @ =gUnknown_0203A3D2 + strb r0, [r1] + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _0814AD2A + ldrb r1, [r1] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AD14 @ =gSprites + adds r4, r0, r1 + ldr r0, _0814ACFC @ =0x0000ffff + cmp r5, r0 + bne _0814AD18 + ldrb r1, [r4, 0x5] + adds r0, r6, 0 + ands r0, r1 + strb r0, [r4, 0x5] + b _0814AD2A + .align 2, 0 +_0814ACF8: .4byte gUnknown_0203A3D2 +_0814ACFC: .4byte 0x0000ffff +_0814AD00: .4byte gUnknown_0203A360 +_0814AD04: .4byte gUnknown_0842F248 +_0814AD08: .4byte 0x0000fff1 +_0814AD0C: .4byte gUnknown_0842F1C0 +_0814AD10: .4byte gSpriteTemplate_842F298 +_0814AD14: .4byte gSprites +_0814AD18: + adds r0, r5, 0 + bl IndexOfSpritePaletteTag + lsls r0, 4 + ldrb r2, [r4, 0x5] + adds r1, r6, 0 + ands r1, r2 + orrs r1, r0 + strb r1, [r4, 0x5] +_0814AD2A: + mov r0, r9 + bl sub_814ADF4 + ldr r0, _0814AD40 @ =gUnknown_0203A3D2 + ldrb r0, [r0] + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0814AD40: .4byte gUnknown_0203A3D2 + thumb_func_end CreateBlendedOutlineCursor + + thumb_func_start sub_814AD44 +sub_814AD44: @ 814AD44 + push {r4,lr} + ldr r4, _0814AD70 @ =gUnknown_0203A3D2 + ldrb r0, [r4] + cmp r0, 0x40 + beq _0814AD68 + ldr r0, _0814AD74 @ =gUnknown_0842F1C0 + bl LoadTilesForSpriteSheet + ldrb r1, [r4] + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AD78 @ =gSprites + adds r0, r1 + bl DestroySpriteAndFreeResources + movs r0, 0x40 + strb r0, [r4] +_0814AD68: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0814AD70: .4byte gUnknown_0203A3D2 +_0814AD74: .4byte gUnknown_0842F1C0 +_0814AD78: .4byte gSprites + thumb_func_end sub_814AD44 + + thumb_func_start sub_814AD7C +sub_814AD7C: @ 814AD7C + push {r4,r5,lr} + lsls r0, 24 + lsrs r5, r0, 24 + lsls r1, 24 + lsrs r4, r1, 24 + ldr r1, _0814ADC0 @ =gUnknown_0203A3D2 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814ADB8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814ADC4 @ =gSprites + adds r2, r0, r1 + adds r3, r2, 0 + adds r3, 0x3E + ldrb r1, [r3] + movs r0, 0x5 + negs r0, r0 + ands r0, r1 + strb r0, [r3] + adds r0, r2, 0 + adds r0, 0x28 + movs r1, 0 + strb r1, [r0] + adds r0, 0x1 + strb r1, [r0] + strh r5, [r2, 0x20] + strh r4, [r2, 0x22] +_0814ADB8: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0814ADC0: .4byte gUnknown_0203A3D2 +_0814ADC4: .4byte gSprites + thumb_func_end sub_814AD7C + + thumb_func_start sub_814ADC8 +sub_814ADC8: @ 814ADC8 + push {lr} + ldr r1, _0814ADEC @ =gUnknown_0203A3D2 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814ADE8 + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814ADF0 @ =gSprites + adds r0, r1 + adds r0, 0x3E + ldrb r1, [r0] + movs r2, 0x4 + orrs r1, r2 + strb r1, [r0] +_0814ADE8: + pop {r0} + bx r0 + .align 2, 0 +_0814ADEC: .4byte gUnknown_0203A3D2 +_0814ADF0: .4byte gSprites + thumb_func_end sub_814ADC8 + + thumb_func_start sub_814ADF4 +sub_814ADF4: @ 814ADF4 + push {lr} + lsls r0, 24 + lsrs r2, r0, 24 + cmp r2, 0x12 + bls _0814AE00 + movs r2, 0 +_0814AE00: + ldr r1, _0814AE24 @ =gUnknown_0203A3D2 + ldrb r0, [r1] + cmp r0, 0x40 + beq _0814AE1E + adds r1, r0, 0 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, _0814AE28 @ =gSprites + adds r0, r1 + lsls r1, r2, 3 + ldr r2, _0814AE2C @ =gUnknown_0842F6C0 + adds r1, r2 + bl SetSubspriteTables +_0814AE1E: + pop {r0} + bx r0 + .align 2, 0 +_0814AE24: .4byte gUnknown_0203A3D2 +_0814AE28: .4byte gSprites +_0814AE2C: .4byte gUnknown_0842F6C0 + thumb_func_end sub_814ADF4 + + .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_8148B8C.s b/asm/rom_8148B8C.s index f1b748f17..366ac74d7 100644 --- a/asm/rom_8148B8C.s +++ b/asm/rom_8148B8C.s @@ -3364,1113 +3364,4 @@ _0814A588: bx r0 thumb_func_end sub_814A568 - thumb_func_start sub_814A590 -sub_814A590: @ 814A590 - ldr r0, _0814A5AC @ =gUnknown_0203A3D0 - movs r1, 0x40 - strb r1, [r0] - ldr r0, _0814A5B0 @ =gUnknown_0203A3D1 - strb r1, [r0] - ldr r0, _0814A5B4 @ =gUnknown_0203A3D2 - strb r1, [r0] - ldr r0, _0814A5B8 @ =gUnknown_0203A3D3 - movs r1, 0 - strb r1, [r0] - ldr r0, _0814A5BC @ =gUnknown_0203A3D4 - strb r1, [r0] - bx lr - .align 2, 0 -_0814A5AC: .4byte gUnknown_0203A3D0 -_0814A5B0: .4byte gUnknown_0203A3D1 -_0814A5B4: .4byte gUnknown_0203A3D2 -_0814A5B8: .4byte gUnknown_0203A3D3 -_0814A5BC: .4byte gUnknown_0203A3D4 - thumb_func_end sub_814A590 - - thumb_func_start sub_814A5C0 -sub_814A5C0: @ 814A5C0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 24 - lsrs r5, r2, 24 - lsls r3, 16 - lsrs r7, r3, 16 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - ldr r0, _0814A678 @ =gUnknown_0203A3D0 - ldrb r0, [r0] - cmp r0, 0x40 - bne _0814A5F2 - ldr r0, _0814A67C @ =gUnknown_0203A3D1 - ldrb r0, [r0] - cmp r0, 0x40 - beq _0814A5F6 -_0814A5F2: - bl sub_814A7FC -_0814A5F6: - movs r4, 0x1 - ldr r0, _0814A680 @ =0x0000ffff - cmp r6, r0 - bne _0814A61C - ldr r1, _0814A684 @ =gUnknown_0203A360 - movs r0, 0xF - ands r0, r5 - lsls r0, 1 - adds r0, r1 - strh r7, [r0] - ldr r0, _0814A688 @ =gUnknown_0842F240 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0814A61C - ldr r6, _0814A68C @ =0x0000fff0 - movs r4, 0 -_0814A61C: - movs r7, 0xF - adds r0, r5, 0 - ands r0, r7 - lsls r0, 3 - ldr r1, _0814A690 @ =gUnknown_0842F140 - adds r0, r1 - bl LoadSpriteSheetDeferred - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r4, _0814A694 @ =gSpriteTemplate_842F250 - adds r0, r4 - movs r1, 0 - movs r2, 0xA0 - mov r3, r8 - bl CreateSprite - ldr r5, _0814A678 @ =gUnknown_0203A3D0 - strb r0, [r5] - adds r4, 0x30 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xA0 - mov r3, r8 - bl CreateSprite - ldr r1, _0814A67C @ =gUnknown_0203A3D1 - strb r0, [r1] - ldrb r0, [r5] - cmp r0, 0x40 - beq _0814A6AE - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A698 @ =gSprites - adds r4, r0, r1 - ldr r0, _0814A680 @ =0x0000ffff - cmp r6, r0 - bne _0814A69C - ldrb r1, [r4, 0x5] - adds r0, r7, 0 - ands r0, r1 - strb r0, [r4, 0x5] - b _0814A6AE - .align 2, 0 -_0814A678: .4byte gUnknown_0203A3D0 -_0814A67C: .4byte gUnknown_0203A3D1 -_0814A680: .4byte 0x0000ffff -_0814A684: .4byte gUnknown_0203A360 -_0814A688: .4byte gUnknown_0842F240 -_0814A68C: .4byte 0x0000fff0 -_0814A690: .4byte gUnknown_0842F140 -_0814A694: .4byte gSpriteTemplate_842F250 -_0814A698: .4byte gSprites -_0814A69C: - adds r0, r6, 0 - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - adds r1, r7, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_0814A6AE: - ldr r1, _0814A6D4 @ =gUnknown_0203A3D1 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A72C - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A6D8 @ =gSprites - adds r4, r0, r1 - ldr r0, _0814A6DC @ =0x0000ffff - cmp r6, r0 - bne _0814A6E0 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - strb r0, [r4, 0x5] - b _0814A6F2 - .align 2, 0 -_0814A6D4: .4byte gUnknown_0203A3D1 -_0814A6D8: .4byte gSprites -_0814A6DC: .4byte 0x0000ffff -_0814A6E0: - adds r0, r6, 0 - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_0814A6F2: - movs r3, 0x80 - lsls r3, 19 - ldrh r1, [r3] - movs r0, 0xC0 - lsls r0, 7 - ands r0, r1 - cmp r0, 0 - bne _0814A70C - ldr r0, _0814A744 @ =REG_WINOUT - ldrb r1, [r0] - movs r2, 0x1F - orrs r1, r2 - strb r1, [r0] -_0814A70C: - ldr r1, _0814A748 @ =gUnknown_0203A3D3 - ldrh r0, [r3] - lsrs r0, 15 - strb r0, [r1] - ldr r1, _0814A74C @ =gUnknown_0203A3D4 - ldr r2, _0814A750 @ =0x0400004b - ldrb r0, [r2] - strb r0, [r1] - ldrh r0, [r3] - movs r4, 0x80 - lsls r4, 8 - adds r1, r4, 0 - orrs r0, r1 - strh r0, [r3] - movs r0, 0x10 - strb r0, [r2] -_0814A72C: - mov r0, r9 - bl sub_814A958 - ldr r0, _0814A754 @ =gUnknown_0203A3D0 - ldrb r0, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814A744: .4byte REG_WINOUT -_0814A748: .4byte gUnknown_0203A3D3 -_0814A74C: .4byte gUnknown_0203A3D4 -_0814A750: .4byte 0x0400004b -_0814A754: .4byte gUnknown_0203A3D0 - thumb_func_end sub_814A5C0 - - thumb_func_start sub_814A758 -sub_814A758: @ 814A758 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp] - movs r1, 0 - movs r3, 0 - bl sub_814A5C0 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r4, 0x40 - beq _0814A79A - ldr r0, _0814A7A4 @ =gUnknown_0203A3D0 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0814A7A8 @ =gSprites - adds r1, r0 - lsls r3, r5, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] -_0814A79A: - adds r0, r4, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0814A7A4: .4byte gUnknown_0203A3D0 -_0814A7A8: .4byte gSprites - thumb_func_end sub_814A758 - - thumb_func_start unref_sub_814A7AC -unref_sub_814A7AC: @ 814A7AC - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 24 - lsrs r7, r2, 24 - movs r3, 0 - movs r2, 0xF - movs r1, 0 - ldr r6, _0814A7F8 @ =gPlttBufferUnfaded - movs r5, 0xF -_0814A7C6: - lsls r0, r1, 1 - adds r0, r6 - ldrh r0, [r0] - cmp r0, r4 - bne _0814A7DA - lsrs r0, r1, 4 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, r1, 0 - ands r2, r5 -_0814A7DA: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _0814A7C6 - mov r0, r12 - adds r1, r3, 0 - adds r3, r7, 0 - bl sub_814A758 - lsls r0, 24 - lsrs r0, 24 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814A7F8: .4byte gPlttBufferUnfaded - thumb_func_end unref_sub_814A7AC - - thumb_func_start sub_814A7FC -sub_814A7FC: @ 814A7FC - push {r4,lr} - ldr r4, _0814A860 @ =gUnknown_0203A3D0 - ldrb r0, [r4] - cmp r0, 0x40 - beq _0814A820 - ldr r0, _0814A864 @ =gUnknown_0842F140 - bl LoadTilesForSpriteSheet - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A868 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0x40 - strb r0, [r4] -_0814A820: - ldr r4, _0814A86C @ =gUnknown_0203A3D1 - ldrb r0, [r4] - cmp r0, 0x40 - beq _0814A858 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A868 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0x40 - strb r0, [r4] - ldr r0, _0814A870 @ =gUnknown_0203A3D3 - ldrb r0, [r0] - cmp r0, 0 - bne _0814A850 - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0814A874 @ =0x00007fff - ands r0, r1 - strh r0, [r2] -_0814A850: - ldr r0, _0814A878 @ =0x0400004b - ldr r1, _0814A87C @ =gUnknown_0203A3D4 - ldrb r1, [r1] - strb r1, [r0] -_0814A858: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814A860: .4byte gUnknown_0203A3D0 -_0814A864: .4byte gUnknown_0842F140 -_0814A868: .4byte gSprites -_0814A86C: .4byte gUnknown_0203A3D1 -_0814A870: .4byte gUnknown_0203A3D3 -_0814A874: .4byte 0x00007fff -_0814A878: .4byte 0x0400004b -_0814A87C: .4byte gUnknown_0203A3D4 - thumb_func_end sub_814A7FC - - thumb_func_start sub_814A880 -sub_814A880: @ 814A880 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - lsls r1, 24 - lsrs r4, r1, 24 - adds r6, r4, 0 - ldr r1, _0814A8F8 @ =gUnknown_0203A3D0 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A8C0 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A8FC @ =gSprites - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - strh r5, [r2, 0x20] - strh r4, [r2, 0x22] -_0814A8C0: - ldr r1, _0814A900 @ =gUnknown_0203A3D1 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A8F2 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A8FC @ =gSprites - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - strh r7, [r2, 0x20] - strh r6, [r2, 0x22] -_0814A8F2: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814A8F8: .4byte gUnknown_0203A3D0 -_0814A8FC: .4byte gSprites -_0814A900: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814A880 - - thumb_func_start sub_814A904 -sub_814A904: @ 814A904 - push {lr} - ldr r1, _0814A94C @ =gUnknown_0203A3D0 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A926 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A950 @ =gSprites - adds r0, r1 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0814A926: - ldr r1, _0814A954 @ =gUnknown_0203A3D1 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814A946 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814A950 @ =gSprites - adds r0, r1 - adds r2, r0, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0814A946: - pop {r0} - bx r0 - .align 2, 0 -_0814A94C: .4byte gUnknown_0203A3D0 -_0814A950: .4byte gSprites -_0814A954: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814A904 - - thumb_func_start sub_814A958 -sub_814A958: @ 814A958 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - ldr r4, _0814A9C4 @ =gSubspriteTable_203A380 - ldr r2, _0814A9C8 @ =0x0000ffff - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r1, 0x2 - str r0, [r4] - str r1, [r4, 0x4] - strh r2, [r4] - adds r4, 0x8 - movs r7, 0x1 - movs r2, 0x1 - ldr r1, [sp] - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0814AA3A - ldr r0, _0814A9CC @ =gUnknown_0842F780 - mov r12, r0 - mov r8, r1 - movs r1, 0x8 - negs r1, r1 - mov r10, r1 - ldr r5, _0814A9D0 @ =gUnknown_0842F788 - mov r9, r5 -_0814A99E: - lsls r0, r3, 16 - asrs r3, r0, 16 - cmp r3, 0x1F - ble _0814A9D4 - mov r6, r12 - ldr r0, [r6] - ldr r1, [r6, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - strh r2, [r4] - lsls r0, r2, 16 - movs r1, 0x80 - lsls r1, 14 - adds r0, r1 - lsrs r2, r0, 16 - ldr r3, [sp] - lsls r5, r3, 16 - b _0814AA20 - .align 2, 0 -_0814A9C4: .4byte gSubspriteTable_203A380 -_0814A9C8: .4byte 0x0000ffff -_0814A9CC: .4byte gUnknown_0842F780 -_0814A9D0: .4byte gUnknown_0842F788 -_0814A9D4: - ldr r6, [sp] - lsls r5, r6, 16 - mov r0, r8 - cmp r0, 0x27 - ble _0814AA0A - cmp r3, 0x8 - ble _0814AA0A - mov r6, r12 - ldr r0, [r6] - ldr r1, [r6, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - lsls r1, r2, 16 - asrs r1, 16 - adds r2, r1, 0 - subs r2, 0x20 - adds r0, r3, 0 - mov r6, r10 - ands r0, r6 - adds r2, r0 - strh r2, [r4] - movs r0, 0x18 - ands r0, r3 - adds r1, r0 - lsls r1, 16 - lsrs r2, r1, 16 - b _0814AA20 -_0814AA0A: - mov r3, r9 - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - strh r2, [r4] - lsls r0, r2, 16 - movs r6, 0x80 - lsls r6, 12 - adds r0, r6 - lsrs r2, r0, 16 -_0814AA20: - adds r4, 0x8 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - asrs r1, r5, 16 - lsls r0, r2, 16 - asrs r0, 16 - subs r1, r0 - lsls r1, 16 - lsrs r3, r1, 16 - asrs r1, 16 - cmp r1, 0x7 - bgt _0814A99E -_0814AA3A: - ldr r5, _0814AAA8 @ =gUnknown_0842F790 - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r4] - str r1, [r4, 0x4] - lsls r1, r2, 16 - asrs r1, 16 - subs r1, 0x7 - lsls r0, r3, 16 - asrs r0, 16 - adds r0, r1 - strh r0, [r4] - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r6, _0814AAAC @ =gUnknown_0203A3D0 - ldrb r0, [r6] - cmp r0, 0x40 - beq _0814AA78 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AAB0 @ =gSprites - adds r2, r0, r1 - lsls r1, r7, 3 - ldr r0, _0814AAB4 @ =gSubspriteTables_842F5C0 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AA78: - ldr r1, _0814AAB8 @ =gUnknown_0203A3D1 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AA98 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AAB0 @ =gSprites - adds r2, r0, r1 - lsls r1, r7, 3 - ldr r0, _0814AAB4 @ =gSubspriteTables_842F5C0 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AA98: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814AAA8: .4byte gUnknown_0842F790 -_0814AAAC: .4byte gUnknown_0203A3D0 -_0814AAB0: .4byte gSprites -_0814AAB4: .4byte gSubspriteTables_842F5C0 -_0814AAB8: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814A958 - - thumb_func_start sub_814AABC -sub_814AABC: @ 814AABC - push {lr} - adds r2, r0, 0 - ldr r1, _0814AAEC @ =gUnknown_0203A3D0 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AAD4 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0814AAF0 @ =gSprites - adds r1, r0 - str r2, [r1, 0x1C] -_0814AAD4: - ldr r1, _0814AAF4 @ =gUnknown_0203A3D1 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AAE8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0814AAF0 @ =gSprites - adds r1, r0 - str r2, [r1, 0x1C] -_0814AAE8: - pop {r0} - bx r0 - .align 2, 0 -_0814AAEC: .4byte gUnknown_0203A3D0 -_0814AAF0: .4byte gSprites -_0814AAF4: .4byte gUnknown_0203A3D1 - thumb_func_end sub_814AABC - - thumb_func_start sub_814AAF8 -sub_814AAF8: @ 814AAF8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - mov r12, r0 - ldr r1, _0814AB70 @ =gUnknown_0203A3D0 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AB66 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AB74 @ =gSprites - adds r4, r0, r1 - ldr r0, [r4, 0x14] - ldrh r1, [r0, 0x2] - ldr r0, _0814AB78 @ =0x0000ffff - cmp r1, r0 - bne _0814AB66 - movs r2, 0 - movs r3, 0xF - movs r1, 0 - ldrb r5, [r4, 0x5] - ldr r0, _0814AB7C @ =gUnknown_0842F140 - mov r8, r0 - ldr r7, _0814AB80 @ =gPlttBufferUnfaded - movs r6, 0xF -_0814AB32: - lsls r0, r1, 1 - adds r0, r7 - ldrh r0, [r0] - cmp r0, r12 - bne _0814AB46 - lsrs r0, r1, 4 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r1, 0 - ands r3, r6 -_0814AB46: - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0xFF - bls _0814AB32 - lsls r2, 4 - movs r1, 0xF - adds r0, r1, 0 - ands r0, r5 - orrs r0, r2 - strb r0, [r4, 0x5] - ands r3, r1 - lsls r0, r3, 3 - add r0, r8 - bl RequestSpriteSheetCopy -_0814AB66: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814AB70: .4byte gUnknown_0203A3D0 -_0814AB74: .4byte gSprites -_0814AB78: .4byte 0x0000ffff -_0814AB7C: .4byte gUnknown_0842F140 -_0814AB80: .4byte gPlttBufferUnfaded - thumb_func_end sub_814AAF8 - - thumb_func_start sub_814AB84 -sub_814AB84: @ 814AB84 - push {r4,r5,lr} - ldr r5, _0814ABCC @ =gUnknown_0203A3D1 - ldrb r0, [r5] - cmp r0, 0x40 - beq _0814ABC4 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0814ABD0 @ =gSprites - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - movs r0, 0x40 - strb r0, [r5] - ldr r0, _0814ABD4 @ =gUnknown_0203A3D3 - ldrb r0, [r0] - cmp r0, 0 - bne _0814ABBC - movs r2, 0x80 - lsls r2, 19 - ldrh r1, [r2] - ldr r0, _0814ABD8 @ =0x00007fff - ands r0, r1 - strh r0, [r2] -_0814ABBC: - ldr r0, _0814ABDC @ =0x0400004b - ldr r1, _0814ABE0 @ =gUnknown_0203A3D4 - ldrb r1, [r1] - strb r1, [r0] -_0814ABC4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814ABCC: .4byte gUnknown_0203A3D1 -_0814ABD0: .4byte gSprites -_0814ABD4: .4byte gUnknown_0203A3D3 -_0814ABD8: .4byte 0x00007fff -_0814ABDC: .4byte 0x0400004b -_0814ABE0: .4byte gUnknown_0203A3D4 - thumb_func_end sub_814AB84 - - thumb_func_start unref_sub_814ABE4 -unref_sub_814ABE4: @ 814ABE4 - push {r4,lr} - adds r4, r0, 0 - ldr r1, _0814AC40 @ =gUnknown_0842F5BC - lsls r0, r4, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0814AC44 @ =gSubspriteTable_203A380 - movs r2, 0x28 - bl CpuSet - ldr r1, _0814AC48 @ =gUnknown_0203A3D0 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AC18 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AC4C @ =gSprites - adds r2, r0, r1 - lsls r1, r4, 3 - ldr r0, _0814AC50 @ =gUnknown_0842F758 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AC18: - ldr r1, _0814AC54 @ =gUnknown_0203A3D1 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AC38 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AC4C @ =gSprites - adds r2, r0, r1 - lsls r1, r4, 3 - ldr r0, _0814AC50 @ =gUnknown_0842F758 - adds r1, r0 - adds r0, r2, 0 - bl SetSubspriteTables -_0814AC38: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814AC40: .4byte gUnknown_0842F5BC -_0814AC44: .4byte gSubspriteTable_203A380 -_0814AC48: .4byte gUnknown_0203A3D0 -_0814AC4C: .4byte gSprites -_0814AC50: .4byte gUnknown_0842F758 -_0814AC54: .4byte gUnknown_0203A3D1 - thumb_func_end unref_sub_814ABE4 - - thumb_func_start CreateBlendedOutlineCursor -CreateBlendedOutlineCursor: @ 814AC58 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r4, [sp, 0x1C] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 24 - lsrs r7, r2, 24 - lsls r3, 16 - lsrs r6, r3, 16 - lsls r4, 24 - lsrs r4, 24 - mov r9, r4 - ldr r0, _0814ACF8 @ =gUnknown_0203A3D2 - ldrb r0, [r0] - cmp r0, 0x40 - beq _0814AC86 - bl sub_814AD44 -_0814AC86: - movs r4, 0x1 - ldr r0, _0814ACFC @ =0x0000ffff - cmp r5, r0 - bne _0814ACAC - ldr r1, _0814AD00 @ =gUnknown_0203A360 - movs r0, 0xF - ands r0, r7 - lsls r0, 1 - adds r0, r1 - strh r6, [r0] - ldr r0, _0814AD04 @ =gUnknown_0842F248 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0814ACAC - ldr r5, _0814AD08 @ =0x0000fff1 - movs r4, 0 -_0814ACAC: - movs r6, 0xF - adds r0, r7, 0 - ands r0, r6 - lsls r0, 3 - ldr r1, _0814AD0C @ =gUnknown_0842F1C0 - adds r0, r1 - bl LoadSpriteSheetDeferred - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, _0814AD10 @ =gSpriteTemplate_842F298 - adds r0, r1 - movs r1, 0 - movs r2, 0xA0 - mov r3, r8 - bl CreateSprite - ldr r1, _0814ACF8 @ =gUnknown_0203A3D2 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0814AD2A - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AD14 @ =gSprites - adds r4, r0, r1 - ldr r0, _0814ACFC @ =0x0000ffff - cmp r5, r0 - bne _0814AD18 - ldrb r1, [r4, 0x5] - adds r0, r6, 0 - ands r0, r1 - strb r0, [r4, 0x5] - b _0814AD2A - .align 2, 0 -_0814ACF8: .4byte gUnknown_0203A3D2 -_0814ACFC: .4byte 0x0000ffff -_0814AD00: .4byte gUnknown_0203A360 -_0814AD04: .4byte gUnknown_0842F248 -_0814AD08: .4byte 0x0000fff1 -_0814AD0C: .4byte gUnknown_0842F1C0 -_0814AD10: .4byte gSpriteTemplate_842F298 -_0814AD14: .4byte gSprites -_0814AD18: - adds r0, r5, 0 - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r4, 0x5] - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x5] -_0814AD2A: - mov r0, r9 - bl sub_814ADF4 - ldr r0, _0814AD40 @ =gUnknown_0203A3D2 - ldrb r0, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0814AD40: .4byte gUnknown_0203A3D2 - thumb_func_end CreateBlendedOutlineCursor - - thumb_func_start sub_814AD44 -sub_814AD44: @ 814AD44 - push {r4,lr} - ldr r4, _0814AD70 @ =gUnknown_0203A3D2 - ldrb r0, [r4] - cmp r0, 0x40 - beq _0814AD68 - ldr r0, _0814AD74 @ =gUnknown_0842F1C0 - bl LoadTilesForSpriteSheet - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AD78 @ =gSprites - adds r0, r1 - bl DestroySpriteAndFreeResources - movs r0, 0x40 - strb r0, [r4] -_0814AD68: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814AD70: .4byte gUnknown_0203A3D2 -_0814AD74: .4byte gUnknown_0842F1C0 -_0814AD78: .4byte gSprites - thumb_func_end sub_814AD44 - - thumb_func_start sub_814AD7C -sub_814AD7C: @ 814AD7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r1, _0814ADC0 @ =gUnknown_0203A3D2 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814ADB8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814ADC4 @ =gSprites - adds r2, r0, r1 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - adds r0, r2, 0 - adds r0, 0x28 - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - strb r1, [r0] - strh r5, [r2, 0x20] - strh r4, [r2, 0x22] -_0814ADB8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814ADC0: .4byte gUnknown_0203A3D2 -_0814ADC4: .4byte gSprites - thumb_func_end sub_814AD7C - - thumb_func_start sub_814ADC8 -sub_814ADC8: @ 814ADC8 - push {lr} - ldr r1, _0814ADEC @ =gUnknown_0203A3D2 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814ADE8 - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814ADF0 @ =gSprites - adds r0, r1 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0814ADE8: - pop {r0} - bx r0 - .align 2, 0 -_0814ADEC: .4byte gUnknown_0203A3D2 -_0814ADF0: .4byte gSprites - thumb_func_end sub_814ADC8 - - thumb_func_start sub_814ADF4 -sub_814ADF4: @ 814ADF4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x12 - bls _0814AE00 - movs r2, 0 -_0814AE00: - ldr r1, _0814AE24 @ =gUnknown_0203A3D2 - ldrb r0, [r1] - cmp r0, 0x40 - beq _0814AE1E - adds r1, r0, 0 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814AE28 @ =gSprites - adds r0, r1 - lsls r1, r2, 3 - ldr r2, _0814AE2C @ =gUnknown_0842F6C0 - adds r1, r2 - bl SetSubspriteTables -_0814AE1E: - pop {r0} - bx r0 - .align 2, 0 -_0814AE24: .4byte gUnknown_0203A3D2 -_0814AE28: .4byte gSprites -_0814AE2C: .4byte gUnknown_0842F6C0 - thumb_func_end sub_814ADF4 - .align 2, 0 @ Don't pad with nop. diff --git a/ld_script.txt b/ld_script.txt index 645ef8f37..243966685 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -181,6 +181,7 @@ SECTIONS { asm/rom_81473B8.o(.text); src/clear_save_data_menu.o(.text); asm/rom_8148B8C.o(.text); + asm/menu_cursor.o(.text); } =0 script_data : |