diff options
author | nullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com> | 2018-10-17 11:28:27 +0800 |
---|---|---|
committer | void <30564701+nullableVoidPtr@users.noreply.github.com> | 2018-11-18 18:29:52 +0800 |
commit | 961ab7ccaf4d175189cd42fcddca1336f3d91bad (patch) | |
tree | a223139bf9282e5a3636810ae78dccf5095e2100 /asm/memory.s | |
parent | 9e5147a9adf9dc0aba908f38637cd0b4da2cbbcc (diff) |
Fix makefile and decompile some functions.
Partial memory.c, save.c and bg_palette_buffer.c decompilation, along with some asm/ cleanup.
Diffstat (limited to 'asm/memory.s')
-rw-r--r-- | asm/memory.s | 242 |
1 files changed, 38 insertions, 204 deletions
diff --git a/asm/memory.s b/asm/memory.s index e364f1b..418056c 100644 --- a/asm/memory.s +++ b/asm/memory.s @@ -4,177 +4,21 @@ .syntax unified .text - - thumb_func_start InitHeap -InitHeap: - push {lr} - bl InitHeapInternal - pop {r0} - bx r0 - thumb_func_end InitHeap - - thumb_func_start MemoryClear8 -MemoryClear8: - push {lr} - cmp r1, 0 - ble _08002EAA - movs r2, 0 -_08002EA0: - subs r1, 0x1 - strb r2, [r0] - adds r0, 0x1 - cmp r1, 0 - bgt _08002EA0 -_08002EAA: - pop {r0} - bx r0 - thumb_func_end MemoryClear8 - - thumb_func_start MemoryClear16 -MemoryClear16: - push {lr} - cmp r1, 0 - ble _08002EC2 - movs r2, 0 -_08002EB8: - subs r1, 0x2 - strh r2, [r0] - adds r0, 0x2 - cmp r1, 0 - bgt _08002EB8 -_08002EC2: - pop {r0} - bx r0 - thumb_func_end MemoryClear16 - - thumb_func_start MemoryClear32 -MemoryClear32: - push {lr} - bl CpuClear - pop {r0} - bx r0 - thumb_func_end MemoryClear32 - - thumb_func_start MemoryFill8 -MemoryFill8: - push {lr} - lsls r1, 24 - lsrs r1, 24 - cmp r2, 0 - ble _08002EE8 -_08002EDE: - subs r2, 0x1 - strb r1, [r0] - adds r0, 0x1 - cmp r2, 0 - bgt _08002EDE -_08002EE8: - pop {r0} - bx r0 - thumb_func_end MemoryFill8 - - thumb_func_start MemoryFill16 -MemoryFill16: - push {lr} - lsls r1, 16 - lsrs r1, 16 - cmp r2, 0 - ble _08002F00 -_08002EF6: - subs r2, 0x2 - strh r1, [r0] - adds r0, 0x2 - cmp r2, 0 - bgt _08002EF6 -_08002F00: - pop {r0} - bx r0 - thumb_func_end MemoryFill16 - - thumb_func_start MemoryFill32 -MemoryFill32: - push {lr} - cmp r2, 0 - ble _08002F12 -_08002F0A: - subs r2, 0x4 - stm r0!, {r1} - cmp r2, 0 - bgt _08002F0A -_08002F12: - pop {r0} - bx r0 - thumb_func_end MemoryFill32 - - thumb_func_start MemoryCopy8 -MemoryCopy8: - push {lr} - adds r3, r0, 0 - cmp r2, 0 - ble _08002F2E -_08002F20: - subs r2, 0x1 - ldrb r0, [r1] - strb r0, [r3] - adds r1, 0x1 - adds r3, 0x1 - cmp r2, 0 - bgt _08002F20 -_08002F2E: - pop {r0} - bx r0 - thumb_func_end MemoryCopy8 - - thumb_func_start MemoryCopy16 -MemoryCopy16: - push {lr} - adds r3, r0, 0 - cmp r2, 0 - ble _08002F4A -_08002F3C: - subs r2, 0x2 - ldrh r0, [r1] - strh r0, [r3] - adds r1, 0x2 - adds r3, 0x2 - cmp r2, 0 - bgt _08002F3C -_08002F4A: - pop {r0} - bx r0 - thumb_func_end MemoryCopy16 - - thumb_func_start MemoryCopy32 -MemoryCopy32: - push {lr} - adds r3, r0, 0 - cmp r2, 0 - ble _08002F62 -_08002F58: - subs r2, 0x4 - ldm r1!, {r0} - stm r3!, {r0} - cmp r2, 0 - bgt _08002F58 -_08002F62: - pop {r0} - bx r0 - thumb_func_end MemoryCopy32 - + thumb_func_start InitHeapInternal InitHeapInternal: push {lr} sub sp, 0x8 - ldr r0, _08002F90 + ldr r0, =gHeap str r0, [sp] movs r0, 0x90 lsls r0, 10 str r0, [sp, 0x4] - ldr r1, _08002F94 + ldr r1, =gUnknown_2000EA8 movs r0, 0 str r0, [r1] - ldr r0, _08002F98 - ldr r2, _08002F9C + ldr r0, =gUnknown_2000EB0 + ldr r2, =gHeapHeader mov r1, sp movs r3, 0x20 bl DoInitHeap @@ -182,10 +26,7 @@ InitHeapInternal: pop {r0} bx r0 .align 2, 0 -_08002F90: .4byte gUnknown_20011D0 -_08002F94: .4byte gUnknown_2000EA8 -_08002F98: .4byte gUnknown_2000EB0 -_08002F9C: .4byte gUnknown_2000ED0 + .pool thumb_func_end InitHeapInternal thumb_func_start DoInitHeap @@ -201,8 +42,8 @@ DoInitHeap: mov r5, r9 ands r5, r4 mov r9, r5 - ldr r6, _08002FFC - ldr r4, _08003000 + ldr r6, =gUnknown_2000E88 + ldr r4, =gUnknown_2000EA8 mov r8, r4 ldr r5, [r4] lsls r4, r5, 2 @@ -237,8 +78,7 @@ DoInitHeap: pop {r0} bx r0 .align 2, 0 -_08002FFC: .4byte gUnknown_2000E88 -_08003000: .4byte gUnknown_2000EA8 + .pool thumb_func_end DoInitHeap thumb_func_start InitSubHeap @@ -361,7 +201,7 @@ _080030C2: _080030CC: movs r7, 0x1 negs r7, r7 - ldr r1, _08003100 + ldr r1, =0x24001 movs r4, 0 ldr r3, [r5, 0x8] ldr r2, [r5, 0xC] @@ -389,7 +229,7 @@ _080030FC: adds r0, r7, 0 b _08003108 .align 2, 0 -_08003100: .4byte 0x00024001 + .pool _08003104: movs r0, 0x1 negs r0, r0 @@ -454,7 +294,7 @@ _0800315E: _08003168: movs r7, 0x1 negs r7, r7 - ldr r6, _080031A4 + ldr r6, =0x24001 ldr r0, [r4, 0xC] subs r3, r0, 0x1 lsls r0, r3, 1 @@ -486,7 +326,7 @@ _080031A0: adds r0, r7, 0 b _080031AC .align 2, 0 -_080031A4: .4byte 0x00024001 + .pool _080031A8: movs r0, 0x1 negs r0, r0 @@ -561,13 +401,12 @@ _08003222: str r2, [r1, 0xC] cmp r2, r8 ble _08003240 - ldr r0, _08003238 - ldr r1, _0800323C + ldr r0, =gUnknown_80B7EB8 + ldr r1, =gUnknown_80B7EC4 mov r3, r8 bl FatalError .align 2, 0 -_08003238: .4byte gUnknown_80B7EB8 -_0800323C: .4byte gUnknown_80B7EC4 + .pool _08003240: ldr r0, [sp, 0xC] add r0, r9 @@ -671,13 +510,12 @@ _080032F6: str r2, [r7, 0xC] cmp r2, r8 ble _08003314 - ldr r0, _0800330C - ldr r1, _08003310 + ldr r0, =gUnknown_80B7EFC + ldr r1, =gUnknown_80B7EC4 mov r3, r8 bl FatalError .align 2, 0 -_0800330C: .4byte gUnknown_80B7EFC -_08003310: .4byte gUnknown_80B7EC4 + .pool _08003314: ldr r0, [r4, 0x10] ldr r1, [sp, 0x10] @@ -717,7 +555,7 @@ _LocateSet: adds r6, r2, 0 cmp r5, 0 bne _0800335C - ldr r5, _08003390 + ldr r5, =gUnknown_2000EB0 _0800335C: asrs r4, r6, 8 movs r0, 0x1 @@ -743,7 +581,7 @@ _0800335C: ldr r0, [r0, 0xC] b _080033CC .align 2, 0 -_08003390: .4byte gUnknown_2000EB0 + .pool _08003394: adds r0, r5, 0 adds r1, r4, 0 @@ -760,16 +598,15 @@ _08003394: ldr r0, [r0, 0xC] b _080033CC _080033B4: - ldr r0, _080033C4 - ldr r1, _080033C8 + ldr r0, =gUnknown_80B7F14 + ldr r1, =gUnknown_80B7F20 str r4, [sp] str r6, [sp, 0x4] adds r2, r5, 0 adds r3, r7, 0 bl FatalError .align 2, 0 -_080033C4: .4byte gUnknown_80B7F14 -_080033C8: .4byte gUnknown_80B7F20 + .pool _080033CC: add sp, 0x8 pop {r4-r7} @@ -782,25 +619,25 @@ MemoryAlloc: push {lr} adds r3, r0, 0 adds r2, r1, 0 - ldr r0, _080033E8 + ldr r0, =gUnknown_2000EB0 adds r1, r3, 0 bl DoAlloc pop {r1} bx r1 .align 2, 0 -_080033E8: .4byte gUnknown_2000EB0 + .pool thumb_func_end MemoryAlloc thumb_func_start MemoryFree MemoryFree: push {lr} adds r1, r0, 0 - ldr r0, _080033FC + ldr r0, =gUnknown_2000EB0 bl DoFree pop {r0} bx r0 .align 2, 0 -_080033FC: .4byte gUnknown_2000EB0 + .pool thumb_func_end MemoryFree thumb_func_start MemoryLocate_LocalCreate @@ -813,7 +650,7 @@ MemoryLocate_LocalCreate: adds r6, r3, 0 cmp r4, 0 bne _08003412 - ldr r4, _0800342C + ldr r4, =gUnknown_2000EB0 _08003412: adds r0, r4, 0 movs r1, 0x9 @@ -822,14 +659,12 @@ _08003412: adds r1, r0, 0 cmp r1, 0 bge _08003438 - ldr r0, _08003430 - ldr r1, _08003434 + ldr r0, =gUnknown_80B7F88 + ldr r1, =gUnknown_80B7F94 adds r2, r5, 0 bl FatalError .align 2, 0 -_0800342C: .4byte gUnknown_2000EB0 -_08003430: .4byte gUnknown_80B7F88 -_08003434: .4byte gUnknown_80B7F94 + .pool _08003438: str r6, [sp] adds r0, r4, 0 @@ -893,11 +728,11 @@ _080034A2: movs r0, 0 mov r12, r0 movs r3, 0 - ldr r6, _080034E0 + ldr r6, =gUnknown_2000EA8 ldr r0, [r6] cmp r12, r0 bge _080034F2 - ldr r5, _080034E4 + ldr r5, =gUnknown_2000E88 adds r1, r6, 0 adds r7, r5, 0 movs r2, 0 @@ -911,7 +746,7 @@ _080034BC: str r0, [r1] cmp r3, r0 bge _080034F8 - ldr r1, _080034E0 + ldr r1, =gUnknown_2000EA8 adds r2, r7 _080034D2: ldr r0, [r2, 0x4] @@ -922,8 +757,7 @@ _080034D2: blt _080034D2 b _080034F8 .align 2, 0 -_080034E0: .4byte gUnknown_2000EA8 -_080034E4: .4byte gUnknown_2000E88 + .pool _080034E8: adds r2, 0x4 adds r3, 0x1 @@ -966,7 +800,7 @@ DoFree: adds r4, r0, 0 cmp r4, 0 bne _0800352E - ldr r4, _080035D4 + ldr r4, =gUnknown_2000EB0 _0800352E: cmp r1, 0 beq _080035E4 @@ -1056,7 +890,7 @@ _080035BA: blt _080035BA b _080035E4 .align 2, 0 -_080035D4: .4byte gUnknown_2000EB0 + .pool _080035D8: movs r0, 0x1 add r8, r0 |