diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2017-09-02 00:21:11 +0200 |
---|---|---|
committer | DizzyEggg <jajkodizzy@wp.pl> | 2017-09-02 00:21:11 +0200 |
commit | 26bf61e06fb4c29e9a297d88dbe42942ba0c96b9 (patch) | |
tree | cba71f429712e34a9f98c119d6f17f3d166a0407 /asm/sprite.s | |
parent | bc5acf7394d9e0058d52df1872133cac385694c7 (diff) |
start decompiling sprite.s
Diffstat (limited to 'asm/sprite.s')
-rw-r--r-- | asm/sprite.s | 508 |
1 files changed, 0 insertions, 508 deletions
diff --git a/asm/sprite.s b/asm/sprite.s index 88e97f1ca..278c0ed17 100644 --- a/asm/sprite.s +++ b/asm/sprite.s @@ -5,514 +5,6 @@ .text - thumb_func_start ResetAllObjectData -@ void ResetAllObjectData() -ResetAllObjectData: @ 8006974 - push {r4,lr} - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - bl ResetAllSprites - bl ClearSpriteCopyRequests - bl ResetAffineAnimData - bl FreeSpriteTileRanges - ldr r1, =gOamLimit - movs r0, 0x40 - strb r0, [r1] - ldr r0, =gReservedSpriteTileCount - movs r4, 0 - strh r4, [r0] - movs r0, 0 - bl AllocSpriteTiles - ldr r0, =gSpriteCoordOffsetX - strh r4, [r0] - ldr r0, =gSpriteCoordOffsetY - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ResetAllObjectData - - thumb_func_start AnimateSprites -@ void AnimateSprites() -AnimateSprites: @ 80069C0 - push {r4-r7,lr} - movs r6, 0 - movs r7, 0x1 -_080069C6: - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - adds r5, r4, 0 - adds r5, 0x3E - ldrb r1, [r5] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080069F6 - ldr r1, [r4, 0x1C] - adds r0, r4, 0 - bl _call_via_r1 - ldrb r1, [r5] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080069F6 - adds r0, r4, 0 - bl AnimateSprite -_080069F6: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3F - bls _080069C6 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end AnimateSprites - - thumb_func_start BuildOamBuffer -@ void BuildOamBuffer() -BuildOamBuffer: @ 8006A0C - push {r4,r5,lr} - bl UpdateOamCoords - bl BuildSpritePriorities - bl SortSprites - ldr r5, =gMain - ldr r0, =0x00000439 - adds r5, r0 - ldrb r0, [r5] - lsls r4, r0, 31 - lsrs r4, 31 - movs r1, 0x1 - orrs r0, r1 - strb r0, [r5] - bl AddSpritesToOamBuffer - bl CopyMatricesToOamBuffer - movs r2, 0x1 - ldrb r1, [r5] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - orrs r4, r0 - strb r4, [r5] - ldr r0, =gShouldProcessSpriteCopyRequests - strb r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end BuildOamBuffer - - thumb_func_start UpdateOamCoords -@ void UpdateOamCoords() -UpdateOamCoords: @ 8006A58 - push {r4-r7,lr} - movs r4, 0 - ldr r7, =gSprites - ldr r0, =0x000001ff - adds r5, r0, 0 - ldr r6, =0xfffffe00 -_08006A64: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r3, r0, r7 - adds r0, r3, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0x1 - bne _08006B0A - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08006AD8 - movs r2, 0x20 - ldrsh r1, [r3, r2] - movs r2, 0x24 - ldrsh r0, [r3, r2] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r0 - ldr r0, =gSpriteCoordOffsetX - movs r2, 0 - ldrsh r0, [r0, r2] - adds r1, r0 - ands r1, r5 - ldrh r2, [r3, 0x2] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x2] - ldrh r1, [r3, 0x26] - ldrh r0, [r3, 0x22] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x29 - ldrb r0, [r0] - ldr r2, =gSpriteCoordOffsetY - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - b _08006B08 - .pool -_08006AD8: - movs r2, 0x20 - ldrsh r1, [r3, r2] - movs r2, 0x24 - ldrsh r0, [r3, r2] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x28 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - adds r1, r0 - ands r1, r5 - ldrh r2, [r3, 0x2] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x2] - ldrh r1, [r3, 0x26] - ldrh r0, [r3, 0x22] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x29 - ldrb r0, [r0] - adds r0, r1 -_08006B08: - strb r0, [r3] -_08006B0A: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3F - bls _08006A64 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end UpdateOamCoords - - thumb_func_start BuildSpritePriorities -@ void BuildSpritePriorities() -BuildSpritePriorities: @ 8006B1C - push {r4,lr} - movs r2, 0 - ldr r4, =gSprites - ldr r3, =gSpritePriorities -_08006B24: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r4 - adds r1, r0, 0 - adds r1, 0x43 - ldrb r1, [r1] - ldrb r0, [r0, 0x5] - lsls r0, 28 - lsrs r0, 30 - lsls r0, 8 - orrs r1, r0 - lsls r0, r2, 1 - adds r0, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x3F - bls _08006B24 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end BuildSpritePriorities - - thumb_func_start SortSprites -@ void SortSprites() -SortSprites: @ 8006B5C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0x1 - mov r12, r0 - ldr r1, =gSpriteOrder - mov r10, r1 - ldr r3, =0xffffff00 - mov r9, r3 - ldr r6, =0xc0000300 - mov r8, r6 -_08006B78: - mov r5, r12 - mov r0, r12 - subs r0, 0x1 - add r0, r10 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r7, =gSprites - adds r3, r0, r7 - mov r0, r12 - add r0, r10 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r7 - lsls r2, 1 - ldr r0, =gSpritePriorities - adds r2, r0 - ldrh r2, [r2] - str r2, [sp] - lsls r1, 1 - adds r1, r0 - ldrh r6, [r1] - ldrb r1, [r3] - ldrb r2, [r4] - adds r0, r1, 0 - cmp r0, 0x9F - ble _08006BBA - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006BBA: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _08006BC8 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006BC8: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _08006BEC - ldrb r0, [r3, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006BDE - cmp r0, 0x2 - bne _08006BEC -_08006BDE: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006BEC - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006BEC: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _08006C10 - ldrb r0, [r4, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006C02 - cmp r0, 0x2 - bne _08006C10 -_08006C02: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006C10 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006C10: - movs r7, 0x1 - add r12, r7 - cmp r5, 0 - beq _08006CF6 - ldr r0, [sp] - cmp r0, r6 - bhi _08006C38 - cmp r0, r6 - bne _08006CF6 - b _08006CEE - .pool -_08006C38: - mov r1, r10 - adds r3, r5, r1 - ldrb r4, [r3] - subs r2, r5, 0x1 - adds r1, r2, r1 - ldrb r0, [r1] - strb r0, [r3] - strb r4, [r1] - lsls r2, 24 - lsrs r5, r2, 24 - subs r0, r5, 0x1 - add r0, r10 - ldrb r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r6, =gSprites - adds r3, r0, r6 - mov r7, r10 - adds r0, r5, r7 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r6 - lsls r2, 1 - ldr r0, =gSpritePriorities - adds r2, r0 - ldrh r2, [r2] - str r2, [sp] - lsls r1, 1 - adds r1, r0 - ldrh r6, [r1] - ldrb r1, [r3] - ldrb r2, [r4] - adds r0, r1, 0 - cmp r0, 0x9F - ble _08006C8A - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006C8A: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _08006C98 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006C98: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _08006CBC - ldrb r0, [r3, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006CAE - cmp r0, 0x2 - bne _08006CBC -_08006CAE: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006CBC - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006CBC: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _08006CE0 - ldrb r0, [r4, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006CD2 - cmp r0, 0x2 - bne _08006CE0 -_08006CD2: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006CE0 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006CE0: - cmp r5, 0 - beq _08006CF6 - ldr r7, [sp] - cmp r7, r6 - bhi _08006C38 - cmp r7, r6 - bne _08006CF6 -_08006CEE: - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _08006C38 -_08006CF6: - mov r1, r12 - lsls r0, r1, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x3F - bhi _08006D04 - b _08006B78 -_08006D04: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end SortSprites - - thumb_func_start CopyMatricesToOamBuffer -@ void CopyMatricesToOamBuffer() -CopyMatricesToOamBuffer: @ 8006D1C - push {r4-r6,lr} - movs r4, 0 - ldr r5, =gMain - ldr r6, =gOamMatrices -_08006D24: - lsls r2, r4, 2 - lsls r1, r4, 5 - adds r1, r5 - lsls r3, r4, 3 - adds r3, r6 - ldrh r0, [r3] - strh r0, [r1, 0x3E] - adds r0, r2, 0x1 - lsls r0, 3 - adds r0, r5 - ldrh r1, [r3, 0x2] - strh r1, [r0, 0x3E] - adds r0, r2, 0x2 - lsls r0, 3 - adds r0, r5 - ldrh r1, [r3, 0x4] - strh r1, [r0, 0x3E] - adds r2, 0x3 - lsls r2, 3 - adds r2, r5 - ldrh r0, [r3, 0x6] - strh r0, [r2, 0x3E] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _08006D24 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end CopyMatricesToOamBuffer - thumb_func_start AddSpritesToOamBuffer @ void AddSpritesToOamBuffer() AddSpritesToOamBuffer: @ 8006D68 |