diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-20 01:04:58 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-20 01:04:58 -0800 |
commit | 236f91e6f0e30197d44fa8352350f4cbf9218a59 (patch) | |
tree | 871fb766a4c76af36ffcd4bc9012c912d29272f2 /asm/sprite.s | |
parent | bdbc89bcea6eda0b0083b627ba83d822cec3ebf0 (diff) |
decompile sprite
Diffstat (limited to 'asm/sprite.s')
-rw-r--r-- | asm/sprite.s | 4672 |
1 files changed, 0 insertions, 4672 deletions
diff --git a/asm/sprite.s b/asm/sprite.s deleted file mode 100644 index bfc58820c..000000000 --- a/asm/sprite.s +++ /dev/null @@ -1,4672 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ResetSpriteData -ResetSpriteData: @ 8006B10 - push {r4,lr} - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - bl ResetAllSprites - bl ClearSpriteCopyRequests - bl ResetAffineAnimData - bl FreeSpriteTileRanges - ldr r1, _08006B4C @ =gUnknown_2021B44 - movs r0, 0x40 - strb r0, [r1] - ldr r0, _08006B50 @ =gUnknown_2021B46 - movs r4, 0 - strh r4, [r0] - movs r0, 0 - bl AllocSpriteTiles - ldr r0, _08006B54 @ =gUnknown_2021BC8 - strh r4, [r0] - ldr r0, _08006B58 @ =gUnknown_2021BCA - strh r4, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08006B4C: .4byte gUnknown_2021B44 -_08006B50: .4byte gUnknown_2021B46 -_08006B54: .4byte gUnknown_2021BC8 -_08006B58: .4byte gUnknown_2021BCA - thumb_func_end ResetSpriteData - - thumb_func_start AnimateSprites -AnimateSprites: @ 8006B5C - push {r4-r7,lr} - movs r6, 0 - movs r7, 0x1 -_08006B62: - lsls r0, r6, 4 - adds r0, r6 - lsls r0, 2 - ldr r1, _08006BA4 @ =gUnknown_202063C - 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 _08006B92 - 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 _08006B92 - adds r0, r4, 0 - bl AnimateSprite -_08006B92: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x3F - bls _08006B62 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08006BA4: .4byte gUnknown_202063C - thumb_func_end AnimateSprites - - thumb_func_start BuildOamBuffer -BuildOamBuffer: @ 8006BA8 - push {r4,r5,lr} - bl UpdateOamCoords - bl BuildSpritePriorities - bl SortSprites - ldr r5, _08006BE8 @ =gMain - ldr r0, _08006BEC @ =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, _08006BF0 @ =gUnknown_2021840 - strb r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08006BE8: .4byte gMain -_08006BEC: .4byte 0x00000439 -_08006BF0: .4byte gUnknown_2021840 - thumb_func_end BuildOamBuffer - - thumb_func_start UpdateOamCoords -UpdateOamCoords: @ 8006BF4 - push {r4-r7,lr} - movs r4, 0 - ldr r7, _08006C60 @ =gUnknown_202063C - ldr r0, _08006C64 @ =0x000001ff - adds r5, r0, 0 - ldr r6, _08006C68 @ =0xfffffe00 -_08006C00: - 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 _08006CA6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08006C74 - 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, _08006C6C @ =gUnknown_2021BC8 - 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, _08006C70 @ =gUnknown_2021BCA - adds r0, r1 - ldrb r2, [r2] - adds r0, r2 - b _08006CA4 - .align 2, 0 -_08006C60: .4byte gUnknown_202063C -_08006C64: .4byte 0x000001ff -_08006C68: .4byte 0xfffffe00 -_08006C6C: .4byte gUnknown_2021BC8 -_08006C70: .4byte gUnknown_2021BCA -_08006C74: - 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 -_08006CA4: - strb r0, [r3] -_08006CA6: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3F - bls _08006C00 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end UpdateOamCoords - - thumb_func_start BuildSpritePriorities -BuildSpritePriorities: @ 8006CB8 - push {r4,lr} - movs r2, 0 - ldr r4, _08006CF0 @ =gUnknown_202063C - ldr r3, _08006CF4 @ =gUnknown_2021780 -_08006CC0: - 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 _08006CC0 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08006CF0: .4byte gUnknown_202063C -_08006CF4: .4byte gUnknown_2021780 - thumb_func_end BuildSpritePriorities - - thumb_func_start SortSprites -SortSprites: @ 8006CF8 - 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, _08006DC0 @ =gUnknown_2021800 - mov r10, r1 - ldr r3, _08006DC4 @ =0xffffff00 - mov r9, r3 - ldr r6, _08006DC8 @ =0xc0000300 - mov r8, r6 -_08006D14: - 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, _08006DCC @ =gUnknown_202063C - 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, _08006DD0 @ =gUnknown_2021780 - 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 _08006D56 - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006D56: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _08006D64 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006D64: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _08006D88 - ldrb r0, [r3, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006D7A - cmp r0, 0x2 - bne _08006D88 -_08006D7A: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006D88 - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006D88: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _08006DAC - ldrb r0, [r4, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006D9E - cmp r0, 0x2 - bne _08006DAC -_08006D9E: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006DAC - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006DAC: - movs r7, 0x1 - add r12, r7 - cmp r5, 0 - beq _08006E92 - ldr r0, [sp] - cmp r0, r6 - bhi _08006DD4 - cmp r0, r6 - bne _08006E92 - b _08006E8A - .align 2, 0 -_08006DC0: .4byte gUnknown_2021800 -_08006DC4: .4byte 0xffffff00 -_08006DC8: .4byte 0xc0000300 -_08006DCC: .4byte gUnknown_202063C -_08006DD0: .4byte gUnknown_2021780 -_08006DD4: - 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, _08006EB0 @ =gUnknown_202063C - 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, _08006EB4 @ =gUnknown_2021780 - 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 _08006E26 - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006E26: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x9F - ble _08006E34 - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006E34: - ldr r0, [r3] - mov r7, r8 - ands r0, r7 - cmp r0, r8 - bne _08006E58 - ldrb r0, [r3, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006E4A - cmp r0, 0x2 - bne _08006E58 -_08006E4A: - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006E58 - add r0, r9 - lsls r0, 16 - lsrs r1, r0, 16 -_08006E58: - ldr r0, [r4] - mov r3, r8 - ands r0, r3 - cmp r0, r8 - bne _08006E7C - ldrb r0, [r4, 0x1] - lsrs r0, 6 - cmp r0, 0 - beq _08006E6E - cmp r0, 0x2 - bne _08006E7C -_08006E6E: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x80 - ble _08006E7C - add r0, r9 - lsls r0, 16 - lsrs r2, r0, 16 -_08006E7C: - cmp r5, 0 - beq _08006E92 - ldr r7, [sp] - cmp r7, r6 - bhi _08006DD4 - cmp r7, r6 - bne _08006E92 -_08006E8A: - lsls r1, 16 - lsls r0, r2, 16 - cmp r1, r0 - blt _08006DD4 -_08006E92: - mov r1, r12 - lsls r0, r1, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x3F - bhi _08006EA0 - b _08006D14 -_08006EA0: - 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 -_08006EB0: .4byte gUnknown_202063C -_08006EB4: .4byte gUnknown_2021780 - thumb_func_end SortSprites - - thumb_func_start CopyMatricesToOamBuffer -CopyMatricesToOamBuffer: @ 8006EB8 - push {r4-r6,lr} - movs r4, 0 - ldr r5, _08006EFC @ =gMain - ldr r6, _08006F00 @ =gUnknown_2021BCC -_08006EC0: - 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 _08006EC0 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08006EFC: .4byte gMain -_08006F00: .4byte gUnknown_2021BCC - thumb_func_end CopyMatricesToOamBuffer - - thumb_func_start AddSpritesToOamBuffer -AddSpritesToOamBuffer: @ 8006F04 - push {r4-r6,lr} - sub sp, 0x4 - movs r4, 0 - mov r0, sp - strb r4, [r0] -_08006F0E: - ldr r0, _08006F78 @ =gUnknown_2021800 - adds r0, r4, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08006F7C @ =gUnknown_202063C - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x5 - ands r0, r1 - cmp r0, 0x1 - bne _08006F3A - adds r0, r2, 0 - mov r1, sp - bl AddSpriteToOamBuffer - lsls r0, 24 - cmp r0, 0 - bne _08006F70 -_08006F3A: - adds r4, 0x1 - cmp r4, 0x3F - ble _08006F0E - mov r0, sp - ldr r4, _08006F80 @ =gUnknown_2021B44 - ldrb r0, [r0] - ldrb r1, [r4] - cmp r0, r1 - bcs _08006F70 - mov r1, sp - ldr r5, _08006F84 @ =gMain + 0x38 - ldr r0, _08006F88 @ =gUnknown_8231CE4 - ldr r2, [r0] - ldr r3, [r0, 0x4] -_08006F56: - ldrb r0, [r1] - lsls r0, 3 - adds r0, r5 - str r2, [r0] - str r3, [r0, 0x4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - ldrb r6, [r4] - cmp r0, r6 - bcc _08006F56 -_08006F70: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08006F78: .4byte gUnknown_2021800 -_08006F7C: .4byte gUnknown_202063C -_08006F80: .4byte gUnknown_2021B44 -_08006F84: .4byte gMain + 0x38 -_08006F88: .4byte gUnknown_8231CE4 - thumb_func_end AddSpritesToOamBuffer - - thumb_func_start CreateSprite -CreateSprite: @ 8006F8C - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - lsls r3, 24 - lsrs r4, r3, 24 - movs r3, 0 - ldr r0, _08006FC8 @ =gUnknown_202063C - mov r12, r0 - lsls r5, r1, 16 - lsls r6, r2, 16 -_08006FA0: - lsls r0, r3, 4 - adds r0, r3 - lsls r0, 2 - add r0, r12 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08006FCC - str r4, [sp] - adds r0, r3, 0 - adds r1, r7, 0 - asrs r2, r5, 16 - asrs r3, r6, 16 - bl CreateSpriteAt - lsls r0, 24 - lsrs r0, 24 - b _08006FD8 - .align 2, 0 -_08006FC8: .4byte gUnknown_202063C -_08006FCC: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3F - bls _08006FA0 - movs r0, 0x40 -_08006FD8: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CreateSprite - - thumb_func_start CreateSpriteAtEnd -CreateSpriteAtEnd: @ 8006FE0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - lsls r3, 24 - lsrs r6, r3, 24 - movs r3, 0x3F - ldr r0, _0800702C @ =gUnknown_202063C - mov r8, r0 - movs r0, 0x1 - negs r0, r0 - mov r12, r0 - lsls r4, r1, 16 - lsls r5, r2, 16 -_08006FFE: - lsls r0, r3, 16 - asrs r1, r0, 16 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - add r0, r8 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - bne _08007030 - lsls r0, r3, 24 - lsrs r0, 24 - str r6, [sp] - adds r1, r7, 0 - asrs r2, r4, 16 - asrs r3, r5, 16 - bl CreateSpriteAt - lsls r0, 24 - lsrs r0, 24 - b _0800703E - .align 2, 0 -_0800702C: .4byte gUnknown_202063C -_08007030: - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - asrs r0, 16 - cmp r0, r12 - bgt _08006FFE - movs r0, 0x40 -_0800703E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CreateSpriteAtEnd - - thumb_func_start CreateInvisibleSprite -CreateInvisibleSprite: @ 800704C - push {r4-r6,lr} - adds r6, r0, 0 - ldr r0, _08007084 @ =gUnknown_8231D00 - movs r1, 0 - movs r2, 0 - movs r3, 0x1F - bl CreateSprite - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _0800708C - ldr r4, _08007088 @ =gUnknown_202063C - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - adds r2, r1, r4 - adds r2, 0x3E - ldrb r0, [r2] - movs r3, 0x4 - orrs r0, r3 - strb r0, [r2] - adds r4, 0x1C - adds r1, r4 - str r6, [r1] - adds r0, r5, 0 - b _0800708E - .align 2, 0 -_08007084: .4byte gUnknown_8231D00 -_08007088: .4byte gUnknown_202063C -_0800708C: - movs r0, 0x40 -_0800708E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end CreateInvisibleSprite - - thumb_func_start CreateSpriteAt -CreateSpriteAt: @ 8007094 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r8, r1 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r4, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 4 - add r0, r10 - lsls r0, 2 - ldr r1, _08007158 @ =gUnknown_202063C - adds r7, r0, r1 - adds r0, r7, 0 - bl ResetSprite - adds r2, r7, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x3F - adds r0, r7 - mov r9, r0 - ldrb r0, [r0] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x40 - orrs r0, r1 - mov r1, r9 - strb r0, [r1] - adds r0, r7, 0 - adds r0, 0x43 - strb r4, [r0] - mov r1, r8 - ldr r0, [r1, 0x4] - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r7] - str r1, [r7, 0x4] - mov r1, r8 - ldr r0, [r1, 0x8] - str r0, [r7, 0x8] - ldr r0, [r1, 0x10] - str r0, [r7, 0x10] - str r1, [r7, 0x14] - ldr r0, [r1, 0x14] - str r0, [r7, 0x1C] - strh r5, [r7, 0x20] - strh r6, [r7, 0x22] - ldrb r3, [r7, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r7, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r7, 0 - bl CalcCenterToCornerVec - mov r0, r8 - ldrh r1, [r0] - ldr r4, _0800715C @ =0xffff0000 - lsrs r0, r4, 16 - cmp r1, r0 - bne _08007190 - mov r1, r8 - ldr r0, [r1, 0xC] - str r0, [r7, 0xC] - ldrh r0, [r0, 0x4] - lsrs r0, 5 - lsls r0, 24 - lsrs r0, 24 - bl AllocSpriteTiles - lsls r0, 16 - lsrs r2, r0, 16 - asrs r0, 16 - asrs r1, r4, 16 - cmp r0, r1 - bne _08007160 - adds r0, r7, 0 - bl ResetSprite - movs r0, 0x40 - b _080071D8 - .align 2, 0 -_08007158: .4byte gUnknown_202063C -_0800715C: .4byte 0xffff0000 -_08007160: - ldr r1, _08007188 @ =0x000003ff - adds r0, r1, 0 - ands r2, r0 - ldrh r1, [r7, 0x4] - ldr r0, _0800718C @ =0xfffffc00 - ands r0, r1 - orrs r0, r2 - strh r0, [r7, 0x4] - mov r0, r9 - ldrb r1, [r0] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - mov r1, r9 - strb r0, [r1] - adds r1, r7, 0 - adds r1, 0x40 - movs r0, 0 - strh r0, [r1] - b _080071A4 - .align 2, 0 -_08007188: .4byte 0x000003ff -_0800718C: .4byte 0xfffffc00 -_08007190: - mov r1, r8 - ldrh r0, [r1] - bl GetSpriteTileStartByTag - adds r1, r7, 0 - adds r1, 0x40 - strh r0, [r1] - adds r0, r7, 0 - bl SetSpriteSheetFrameTileNum -_080071A4: - ldrb r0, [r7, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080071B8 - adds r0, r7, 0 - bl InitSpriteAffineAnim -_080071B8: - mov r0, r8 - ldrh r1, [r0, 0x2] - ldr r0, _080071E8 @ =0x0000ffff - cmp r1, r0 - beq _080071D6 - mov r1, r8 - ldrh r0, [r1, 0x2] - bl IndexOfSpritePaletteTag - lsls r0, 4 - ldrb r2, [r7, 0x5] - movs r1, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] -_080071D6: - mov r0, r10 -_080071D8: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080071E8: .4byte 0x0000ffff - thumb_func_end CreateSpriteAt - - thumb_func_start CreateSpriteAndAnimate -CreateSpriteAndAnimate: @ 80071EC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - mov r10, r0 - lsls r3, 24 - lsrs r3, 24 - mov r9, r3 - movs r3, 0 - ldr r5, _0800725C @ =gUnknown_202063C - lsls r1, 16 - mov r12, r1 - lsls r2, 16 - mov r8, r2 -_0800720C: - lsls r0, r3, 4 - adds r0, r3 - lsls r6, r0, 2 - adds r4, r6, r5 - adds r7, r4, 0 - adds r7, 0x3E - ldrb r0, [r7] - lsls r0, 31 - cmp r0, 0 - bne _08007264 - mov r0, r9 - str r0, [sp] - adds r0, r3, 0 - mov r1, r10 - mov r3, r12 - asrs r2, r3, 16 - mov r5, r8 - asrs r3, r5, 16 - bl CreateSpriteAt - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r5, 0x40 - beq _0800726E - ldr r1, _08007260 @ =gUnknown_2020658 - adds r0, r6, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - ldrb r0, [r7] - lsls r0, 31 - cmp r0, 0 - beq _08007258 - adds r0, r4, 0 - bl AnimateSprite -_08007258: - adds r0, r5, 0 - b _08007270 - .align 2, 0 -_0800725C: .4byte gUnknown_202063C -_08007260: .4byte gUnknown_2020658 -_08007264: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3F - bls _0800720C -_0800726E: - movs r0, 0x40 -_08007270: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end CreateSpriteAndAnimate - - thumb_func_start DestroySprite -DestroySprite: @ 8007280 - push {r4-r7,lr} - adds r5, r0, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080072DC - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080072D6 - ldr r0, [r5, 0xC] - ldrh r2, [r0, 0x4] - lsrs r2, 5 - ldrh r0, [r5, 0x4] - lsls r0, 22 - lsrs r1, r0, 22 - adds r4, r1, r2 - adds r3, r1, 0 - cmp r3, r4 - bcs _080072D6 - ldr r0, _080072E4 @ =gUnknown_2021B48 - mov r12, r0 - movs r6, 0x7 - movs r7, 0x1 -_080072BA: - lsrs r2, r3, 3 - add r2, r12 - adds r0, r3, 0 - ands r0, r6 - adds r1, r7, 0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bcc _080072BA -_080072D6: - adds r0, r5, 0 - bl ResetSprite -_080072DC: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080072E4: .4byte gUnknown_2021B48 - thumb_func_end DestroySprite - - thumb_func_start ResetOamRange -ResetOamRange: @ 80072E8 - push {r4-r6,lr} - lsls r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcs _08007310 - ldr r6, _08007318 @ =gMain + 0x38 - ldr r5, _0800731C @ =gUnknown_8231CE4 -_080072FA: - lsls r0, r3, 3 - adds r0, r6 - ldr r1, [r5] - ldr r2, [r5, 0x4] - str r1, [r0] - str r2, [r0, 0x4] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcc _080072FA -_08007310: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08007318: .4byte gMain + 0x38 -_0800731C: .4byte gUnknown_8231CE4 - thumb_func_end ResetOamRange - - thumb_func_start LoadOam -LoadOam: @ 8007320 - push {lr} - ldr r2, _08007344 @ =gMain - ldr r1, _08007348 @ =0x00000439 - adds r0, r2, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08007340 - adds r0, r2, 0 - adds r0, 0x38 - movs r1, 0xE0 - lsls r1, 19 - ldr r2, _0800734C @ =0x04000100 - bl CpuSet -_08007340: - pop {r0} - bx r0 - .align 2, 0 -_08007344: .4byte gMain -_08007348: .4byte 0x00000439 -_0800734C: .4byte 0x04000100 - thumb_func_end LoadOam - - thumb_func_start ClearSpriteCopyRequests -ClearSpriteCopyRequests: @ 8007350 - push {r4,r5,lr} - ldr r0, _08007384 @ =gUnknown_2021840 - movs r1, 0 - strb r1, [r0] - ldr r0, _08007388 @ =gUnknown_2021841 - strb r1, [r0] - movs r2, 0 - ldr r4, _0800738C @ =gUnknown_2021844 - movs r3, 0 - adds r5, r4, 0x4 -_08007364: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r4 - str r3, [r1] - adds r0, r5 - str r3, [r0] - strh r3, [r1, 0x8] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _08007364 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08007384: .4byte gUnknown_2021840 -_08007388: .4byte gUnknown_2021841 -_0800738C: .4byte gUnknown_2021844 - thumb_func_end ClearSpriteCopyRequests - - thumb_func_start ResetOamMatrices -ResetOamMatrices: @ 8007390 - push {r4,lr} - movs r1, 0 - ldr r4, _080073B8 @ =gUnknown_2021BCC - movs r3, 0 - movs r2, 0x80 - lsls r2, 1 -_0800739C: - lsls r0, r1, 3 - adds r0, r4 - strh r2, [r0] - strh r3, [r0, 0x2] - strh r3, [r0, 0x4] - strh r2, [r0, 0x6] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _0800739C - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080073B8: .4byte gUnknown_2021BCC - thumb_func_end ResetOamMatrices - - thumb_func_start SetOamMatrix -SetOamMatrix: @ 80073BC - push {r4,r5,lr} - ldr r5, [sp, 0xC] - lsls r0, 24 - ldr r4, _080073D8 @ =gUnknown_2021BCC - lsrs r0, 21 - adds r0, r4 - strh r1, [r0] - strh r2, [r0, 0x2] - strh r3, [r0, 0x4] - strh r5, [r0, 0x6] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080073D8: .4byte gUnknown_2021BCC - thumb_func_end SetOamMatrix - - thumb_func_start ResetSprite -ResetSprite: @ 80073DC - push {lr} - ldr r1, _080073EC @ =gUnknown_8231CA0 - movs r2, 0x44 - bl memcpy - pop {r0} - bx r0 - .align 2, 0 -_080073EC: .4byte gUnknown_8231CA0 - thumb_func_end ResetSprite - - thumb_func_start CalcCenterToCornerVec -CalcCenterToCornerVec: @ 80073F0 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsls r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, _08007430 @ =gUnknown_8231C85 - lsrs r2, 23 - lsrs r1, 21 - adds r2, r1 - adds r0, r2, r4 - ldrb r5, [r0] - adds r4, 0x1 - adds r2, r4 - ldrb r1, [r2] - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - beq _0800741E - lsls r0, r5, 25 - lsrs r5, r0, 24 - lsls r0, r1, 25 - lsrs r1, r0, 24 -_0800741E: - adds r0, r6, 0 - adds r0, 0x28 - strb r5, [r0] - adds r0, 0x1 - strb r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08007430: .4byte gUnknown_8231C85 - thumb_func_end CalcCenterToCornerVec - - thumb_func_start AllocSpriteTiles -AllocSpriteTiles: @ 8007434 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - bne _0800748A - ldr r0, _08007478 @ =gUnknown_2021B46 - ldrh r3, [r0] - ldr r0, _0800747C @ =0x000003ff - cmp r3, r0 - bhi _08007472 - ldr r7, _08007480 @ =gUnknown_2021B48 - movs r6, 0x7 - adds r4, r0, 0 - movs r5, 0x1 -_08007456: - lsrs r2, r3, 3 - adds r2, r7 - adds r0, r3, 0 - ands r0, r6 - adds r1, r5, 0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - bls _08007456 -_08007472: - movs r0, 0 - b _0800753C - .align 2, 0 -_08007478: .4byte gUnknown_2021B46 -_0800747C: .4byte 0x000003ff -_08007480: .4byte gUnknown_2021B48 -_08007484: - movs r0, 0x1 - negs r0, r0 - b _0800753C -_0800748A: - ldr r0, _08007548 @ =gUnknown_2021B46 - ldrh r3, [r0] - ldr r0, _0800754C @ =gUnknown_2021B48 - mov r9, r0 - movs r7, 0x7 - movs r6, 0x1 -_08007496: - lsrs r0, r3, 3 - add r0, r9 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, 0 - beq _080074CA - movs r5, 0x80 - lsls r5, 3 - ldr r2, _0800754C @ =gUnknown_2021B48 -_080074AE: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r5 - beq _08007484 - lsrs r0, 19 - adds r0, r2 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, 0 - bne _080074AE -_080074CA: - mov r8, r3 - movs r2, 0x1 - cmp r2, r4 - beq _08007504 - movs r1, 0x80 - lsls r1, 3 - mov r12, r1 - ldr r5, _0800754C @ =gUnknown_2021B48 -_080074DA: - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r12 - beq _08007484 - lsrs r0, 19 - adds r0, r5 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r7 - asrs r1, r0 - ands r1, r6 - cmp r1, 0 - bne _08007500 - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, r4 - bne _080074DA -_08007500: - cmp r2, r4 - bne _08007496 -_08007504: - mov r1, r8 - lsls r0, r1, 16 - lsrs r3, r0, 16 - asrs r1, r0, 16 - adds r1, r4, r1 - adds r6, r0, 0 - cmp r3, r1 - bge _0800753A - ldr r0, _0800754C @ =gUnknown_2021B48 - mov r8, r0 - movs r7, 0x7 - adds r4, r1, 0 - movs r5, 0x1 -_0800751E: - lsrs r2, r3, 3 - add r2, r8 - adds r1, r3, 0 - ands r1, r7 - adds r0, r5, 0 - lsls r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _0800751E -_0800753A: - asrs r0, r6, 16 -_0800753C: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08007548: .4byte gUnknown_2021B46 -_0800754C: .4byte gUnknown_2021B48 - thumb_func_end AllocSpriteTiles - - thumb_func_start SpriteTileAllocBitmapOp -SpriteTileAllocBitmapOp: @ 8007550 - push {r4-r6,lr} - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsrs r0, 19 - lsls r0, 24 - lsrs r3, r0, 24 - adds r6, r3, 0 - movs r0, 0x7 - ands r2, r0 - adds r4, r2, 0 - movs r5, 0 - cmp r1, 0 - bne _08007588 - movs r0, 0x1 - lsls r0, r2 - mvns r0, r0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, _08007584 @ =gUnknown_2021B48 - adds r0, r3, r0 - ldrb r1, [r0] - ands r2, r1 - strb r2, [r0] - b _080075B4 - .align 2, 0 -_08007584: .4byte gUnknown_2021B48 -_08007588: - cmp r1, 0x1 - bne _080075A4 - lsls r1, r2 - lsls r0, r1, 24 - lsrs r2, r0, 24 - ldr r0, _080075A0 @ =gUnknown_2021B48 - adds r0, r3, r0 - ldrb r1, [r0] - orrs r2, r1 - strb r2, [r0] - b _080075B4 - .align 2, 0 -_080075A0: .4byte gUnknown_2021B48 -_080075A4: - movs r0, 0x80 - lsls r0, 17 - lsls r0, r4 - lsrs r5, r0, 24 - ldr r0, _080075BC @ =gUnknown_2021B48 - adds r0, r6, r0 - ldrb r0, [r0] - ands r5, r0 -_080075B4: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080075BC: .4byte gUnknown_2021B48 - thumb_func_end SpriteTileAllocBitmapOp - - thumb_func_start sub_80075C0 -sub_80075C0: @ 80075C0 - push {r4-r7,lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08007602 - ldr r0, [r3, 0xC] - ldrh r2, [r0, 0x4] - lsrs r2, 5 - ldrh r0, [r3, 0x4] - lsls r0, 22 - lsrs r1, r0, 22 - adds r4, r2, r1 - adds r3, r1, 0 - cmp r3, r4 - bge _08007602 - ldr r7, _08007608 @ =gUnknown_2021B48 - movs r5, 0x7 - movs r6, 0x1 -_080075EA: - asrs r2, r3, 3 - adds r2, r7 - adds r0, r3, 0 - ands r0, r5 - adds r1, r6, 0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r3, 0x1 - cmp r3, r4 - blt _080075EA -_08007602: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08007608: .4byte gUnknown_2021B48 - thumb_func_end sub_80075C0 - - thumb_func_start nullsub_8 -nullsub_8: @ 800760C - bx lr - thumb_func_end nullsub_8 - - thumb_func_start ProcessSpriteCopyRequests -ProcessSpriteCopyRequests: @ 8007610 - push {r4-r7,lr} - ldr r0, _08007660 @ =gUnknown_2021840 - ldrb r0, [r0] - cmp r0, 0 - beq _08007658 - movs r4, 0 - ldr r1, _08007664 @ =gUnknown_2021841 - ldrb r0, [r1] - cmp r0, 0 - beq _08007652 - ldr r6, _08007668 @ =gUnknown_2021844 - adds r7, r6, 0x4 - adds r5, r1, 0 -_0800762A: - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r2, r1, r6 - ldr r0, [r2] - adds r1, r7 - ldr r1, [r1] - ldrh r2, [r2, 0x8] - lsrs r2, 1 - bl CpuSet - ldrb r1, [r5] - subs r1, 0x1 - strb r1, [r5] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 24 - cmp r1, 0 - bne _0800762A -_08007652: - ldr r1, _08007660 @ =gUnknown_2021840 - movs r0, 0 - strb r0, [r1] -_08007658: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08007660: .4byte gUnknown_2021840 -_08007664: .4byte gUnknown_2021841 -_08007668: .4byte gUnknown_2021844 - thumb_func_end ProcessSpriteCopyRequests - - thumb_func_start RequestSpriteFrameImageCopy -RequestSpriteFrameImageCopy: @ 800766C - push {r4-r6,lr} - adds r5, r2, 0 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 16 - lsrs r6, r1, 16 - ldr r4, _080076C4 @ =gUnknown_2021841 - ldrb r0, [r4] - cmp r0, 0x3F - bhi _080076BC - ldr r3, _080076C8 @ =gUnknown_2021844 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - lsls r2, 3 - adds r2, r5 - ldr r1, [r2] - str r1, [r0] - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r0, r3, 0x4 - adds r1, r0 - lsls r0, r6, 5 - ldr r5, _080076CC @ =0x06010000 - adds r0, r5 - str r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r2, 0x4] - strh r1, [r0, 0x8] - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] -_080076BC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080076C4: .4byte gUnknown_2021841 -_080076C8: .4byte gUnknown_2021844 -_080076CC: .4byte 0x06010000 - thumb_func_end RequestSpriteFrameImageCopy - - thumb_func_start RequestSpriteCopy -RequestSpriteCopy: @ 80076D0 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r3, _08007718 @ =gUnknown_2021841 - ldrb r0, [r3] - cmp r0, 0x3F - bhi _08007710 - ldr r2, _0800771C @ =gUnknown_2021844 - adds r1, r0, 0 - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - str r4, [r0] - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r1, r2, 0x4 - adds r0, r1 - str r5, [r0] - ldrb r1, [r3] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - strh r6, [r0, 0x8] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] -_08007710: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08007718: .4byte gUnknown_2021841 -_0800771C: .4byte gUnknown_2021844 - thumb_func_end RequestSpriteCopy - - thumb_func_start CopyFromSprites -CopyFromSprites: @ 8007720 - push {r4,lr} - adds r1, r0, 0 - ldr r3, _08007740 @ =gUnknown_202063C - movs r2, 0 - ldr r4, _08007744 @ =0x000010ff -_0800772A: - ldrb r0, [r3] - strb r0, [r1] - adds r1, 0x1 - adds r3, 0x1 - adds r2, 0x1 - cmp r2, r4 - bls _0800772A - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08007740: .4byte gUnknown_202063C -_08007744: .4byte 0x000010ff - thumb_func_end CopyFromSprites - - thumb_func_start CopyToSprites -CopyToSprites: @ 8007748 - push {r4,lr} - adds r1, r0, 0 - ldr r3, _08007768 @ =gUnknown_202063C - movs r2, 0 - ldr r4, _0800776C @ =0x000010ff -_08007752: - ldrb r0, [r1] - strb r0, [r3] - adds r1, 0x1 - adds r3, 0x1 - adds r2, 0x1 - cmp r2, r4 - bls _08007752 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08007768: .4byte gUnknown_202063C -_0800776C: .4byte 0x000010ff - thumb_func_end CopyToSprites - - thumb_func_start ResetAllSprites -ResetAllSprites: @ 8007770 - push {r4,r5,lr} - movs r4, 0 -_08007774: - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r5, _080077A4 @ =gUnknown_202063C - adds r0, r5 - bl ResetSprite - ldr r0, _080077A8 @ =gUnknown_2021800 - adds r0, r4, r0 - strb r4, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3F - bls _08007774 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r0, r5 - bl ResetSprite - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080077A4: .4byte gUnknown_202063C -_080077A8: .4byte gUnknown_2021800 - thumb_func_end ResetAllSprites - - thumb_func_start FreeSpriteTiles -FreeSpriteTiles: @ 80077AC - push {lr} - ldr r2, [r0, 0x14] - ldrh r1, [r2] - ldr r0, _080077C4 @ =0x0000ffff - cmp r1, r0 - beq _080077BE - adds r0, r1, 0 - bl FreeSpriteTilesByTag -_080077BE: - pop {r0} - bx r0 - .align 2, 0 -_080077C4: .4byte 0x0000ffff - thumb_func_end FreeSpriteTiles - - thumb_func_start FreeSpritePalette -FreeSpritePalette: @ 80077C8 - push {lr} - ldr r0, [r0, 0x14] - ldrh r0, [r0, 0x2] - bl FreeSpritePaletteByTag - pop {r0} - bx r0 - thumb_func_end FreeSpritePalette - - thumb_func_start FreeSpriteOamMatrix -FreeSpriteOamMatrix: @ 80077D8 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080077FE - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] -_080077FE: - pop {r4} - pop {r0} - bx r0 - thumb_func_end FreeSpriteOamMatrix - - thumb_func_start DestroySpriteAndFreeResources -DestroySpriteAndFreeResources: @ 8007804 - push {r4,lr} - adds r4, r0, 0 - bl FreeSpriteTiles - adds r0, r4, 0 - bl FreeSpritePalette - adds r0, r4, 0 - bl FreeSpriteOamMatrix - adds r0, r4, 0 - bl DestroySprite - pop {r4} - pop {r0} - bx r0 - thumb_func_end DestroySpriteAndFreeResources - - thumb_func_start AnimateSprite -AnimateSprite: @ 8007824 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, _08007860 @ =gUnknown_8231D18 - adds r5, r4, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r0, 0x4 - ands r0, r1 - adds r0, r2 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - ldr r0, _08007864 @ =gUnknown_2021CCC - ldrb r0, [r0] - cmp r0, 0 - bne _0800785A - ldr r0, _08007868 @ =gUnknown_8231D20 - ldrb r1, [r5] - lsls r1, 28 - lsrs r1, 31 - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 -_0800785A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08007860: .4byte gUnknown_8231D18 -_08007864: .4byte gUnknown_2021CCC -_08007868: .4byte gUnknown_8231D20 - thumb_func_end AnimateSprite - - thumb_func_start BeginAnim -BeginAnim: @ 800786C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2B - movs r2, 0 - strb r2, [r3] - adds r5, r4, 0 - adds r5, 0x3F - ldrb r1, [r5] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r5] - adds r0, r4, 0 - adds r0, 0x2D - strb r2, [r0] - adds r2, r4, 0 - adds r2, 0x2A - ldrb r1, [r2] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0] - mov r9, r0 - lsls r0, 16 - mov r8, r0 - asrs r1, r0, 16 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08007950 - ldrb r1, [r5] - subs r0, 0x4 - ands r0, r1 - strb r0, [r5] - ldrb r1, [r2] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r0, 10 - lsrs r3, r1, 26 - lsls r1, r0, 9 - lsrs r7, r1, 31 - lsls r0, 8 - lsrs r6, r0, 31 - cmp r3, 0 - beq _080078E8 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080078E8: - adds r2, r4, 0 - adds r2, 0x2C - movs r0, 0x3F - ands r3, r0 - ldrb r1, [r2] - subs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08007912 - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl SetSpriteOamFlipBits -_08007912: - ldrb r1, [r5] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08007940 - adds r0, r4, 0 - adds r0, 0x40 - ldrh r1, [r0] - add r1, r9 - ldr r2, _08007938 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, _0800793C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - b _08007950 - .align 2, 0 -_08007938: .4byte 0x000003ff -_0800793C: .4byte 0xfffffc00 -_08007940: - mov r1, r8 - lsrs r0, r1, 16 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldr r2, [r4, 0xC] - bl RequestSpriteFrameImageCopy -_08007950: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end BeginAnim - - thumb_func_start ContinueAnim -ContinueAnim: @ 800795C - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - cmp r0, 0 - beq _080079AC - adds r0, r4, 0 - bl DecrementAnimDelayCounter - adds r0, r4, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r1, r0, 9 - lsrs r3, r1, 31 - lsls r0, 8 - lsrs r2, r0, 31 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080079F2 - adds r0, r4, 0 - adds r1, r3, 0 - bl SetSpriteOamFlipBits - b _080079F2 -_080079AC: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080079F2 - adds r2, r4, 0 - adds r2, 0x2B - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - adds r0, r4, 0 - adds r0, 0x2A - ldrb r0, [r0] - ldr r1, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r2] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - movs r2, 0x3 - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bge _080079E2 - adds r0, 0x3 - lsls r0, 16 - lsrs r2, r0, 16 -_080079E2: - ldr r0, _080079F8 @ =gUnknown_8231D28 - lsls r1, r2, 16 - asrs r1, 14 - adds r1, r0 - ldr r1, [r1] - adds r0, r4, 0 - bl _call_via_r1 -_080079F2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080079F8: .4byte gUnknown_8231D28 - thumb_func_end ContinueAnim - - thumb_func_start AnimCmd_frame -AnimCmd_frame: @ 80079FC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r7, [r0] - mov r8, r7 - ldr r0, [r0] - lsls r1, r0, 10 - lsrs r3, r1, 26 - lsls r1, r0, 9 - lsrs r6, r1, 31 - lsls r0, 8 - lsrs r5, r0, 31 - cmp r3, 0 - beq _08007A36 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_08007A36: - adds r2, r4, 0 - adds r2, 0x2C - movs r0, 0x3F - ands r3, r0 - ldrb r1, [r2] - subs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08007A60 - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl SetSpriteOamFlipBits -_08007A60: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08007A90 - adds r0, r4, 0 - adds r0, 0x40 - ldrh r1, [r0] - adds r1, r7 - ldr r2, _08007A88 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, _08007A8C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - b _08007A9E - .align 2, 0 -_08007A88: .4byte 0x000003ff -_08007A8C: .4byte 0xfffffc00 -_08007A90: - mov r0, r8 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldr r2, [r4, 0xC] - bl RequestSpriteFrameImageCopy -_08007A9E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end AnimCmd_frame - - thumb_func_start AnimCmd_end -AnimCmd_end: @ 8007AA8 - adds r2, r0, 0 - adds r2, 0x2B - ldrb r1, [r2] - subs r1, 0x1 - strb r1, [r2] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x10 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end AnimCmd_end - - thumb_func_start AnimCmd_jump -AnimCmd_jump: @ 8007AC0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x2A - ldrb r1, [r3] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r2, r4, 0 - adds r2, 0x2B - ldrb r0, [r2] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 10 - lsrs r0, 26 - strb r0, [r2] - ldrb r0, [r3] - ldr r1, [r4, 0x8] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r2] - ldr r0, [r0] - lsls r1, 2 - adds r1, r0 - ldrh r7, [r1] - mov r8, r7 - ldr r0, [r1] - lsls r1, r0, 10 - lsrs r3, r1, 26 - lsls r1, r0, 9 - lsrs r6, r1, 31 - lsls r0, 8 - lsrs r5, r0, 31 - cmp r3, 0 - beq _08007B14 - subs r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_08007B14: - adds r2, r4, 0 - adds r2, 0x2C - movs r0, 0x3F - ands r3, r0 - ldrb r1, [r2] - subs r0, 0x7F - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08007B3E - adds r0, r4, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl SetSpriteOamFlipBits -_08007B3E: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08007B70 - adds r0, r4, 0 - adds r0, 0x40 - ldrh r1, [r0] - adds r1, r7 - ldr r2, _08007B68 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r4, 0x4] - ldr r0, _08007B6C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - b _08007B7E - .align 2, 0 -_08007B68: .4byte 0x000003ff -_08007B6C: .4byte 0xfffffc00 -_08007B70: - mov r0, r8 - ldrh r1, [r4, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldr r2, [r4, 0xC] - bl RequestSpriteFrameImageCopy -_08007B7E: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end AnimCmd_jump - - thumb_func_start AnimCmd_loop -AnimCmd_loop: @ 8007B88 - push {lr} - adds r1, r0, 0 - adds r0, 0x2D - ldrb r0, [r0] - cmp r0, 0 - beq _08007B9C - adds r0, r1, 0 - bl ContinueAnimLoop - b _08007BA2 -_08007B9C: - adds r0, r1, 0 - bl BeginAnimLoop -_08007BA2: - pop {r0} - bx r0 - thumb_func_end AnimCmd_loop - - thumb_func_start BeginAnimLoop -BeginAnimLoop: @ 8007BA8 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r4, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - lsls r0, 10 - lsrs r0, 26 - adds r1, r4, 0 - adds r1, 0x2D - strb r0, [r1] - adds r0, r4, 0 - bl JumpToTopOfAnimLoop - adds r0, r4, 0 - bl ContinueAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end BeginAnimLoop - - thumb_func_start ContinueAnimLoop -ContinueAnimLoop: @ 8007BE0 - push {r4,lr} - adds r4, r0, 0 - adds r1, r4, 0 - adds r1, 0x2D - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl JumpToTopOfAnimLoop - adds r0, r4, 0 - bl ContinueAnim - pop {r4} - pop {r0} - bx r0 - thumb_func_end ContinueAnimLoop - - thumb_func_start JumpToTopOfAnimLoop -JumpToTopOfAnimLoop: @ 8007C00 - push {r4-r7,lr} - mov r12, r0 - adds r0, 0x2D - ldrb r0, [r0] - cmp r0, 0 - beq _08007C6C - mov r3, r12 - adds r3, 0x2B - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] - mov r5, r12 - adds r5, 0x2A - ldrb r1, [r5] - mov r2, r12 - ldr r0, [r2, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r3] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - subs r0, 0x4 - movs r7, 0 - ldrsh r0, [r0, r7] - movs r1, 0x3 - negs r1, r1 - adds r4, r3, 0 - cmp r0, r1 - beq _08007C66 - adds r6, r1, 0 - adds r2, r4, 0 -_08007C40: - ldrb r0, [r2] - cmp r0, 0 - beq _08007C66 - subs r0, 0x1 - strb r0, [r3] - ldrb r1, [r5] - mov r7, r12 - ldr r0, [r7, 0x8] - lsls r1, 2 - adds r1, r0 - ldrb r0, [r2] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - subs r0, 0x4 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, r6 - bne _08007C40 -_08007C66: - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] -_08007C6C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end JumpToTopOfAnimLoop - - thumb_func_start BeginAffineAnim -BeginAffineAnim: @ 8007C74 - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - ldrb r0, [r6, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007CF6 - ldr r0, [r6, 0x10] - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _08007D00 @ =0x00007fff - cmp r1, r0 - beq _08007CF6 - adds r0, r6, 0 - bl GetSpriteMatrixNum - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl AffineAnimStateRestartAnim - mov r5, sp - adds r0, r4, 0 - adds r1, r6, 0 - mov r2, sp - bl GetAffineAnimFrame - adds r7, r6, 0 - adds r7, 0x3F - ldrb r1, [r7] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r7] - adds r0, r4, 0 - mov r1, sp - bl ApplyAffineAnimFrame - ldr r1, _08007D04 @ =gUnknown_3000C68 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r5, 0x5] - strb r1, [r0, 0x2] - ldrb r1, [r7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08007CF6 - movs r0, 0x3A - ldrsh r1, [r6, r0] - movs r0, 0x3C - ldrsh r2, [r6, r0] - adds r0, r6, 0 - bl obj_update_pos2 -_08007CF6: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08007D00: .4byte 0x00007fff -_08007D04: .4byte gUnknown_3000C68 - thumb_func_end BeginAffineAnim - - thumb_func_start ContinueAffineAnim -ContinueAffineAnim: @ 8007D08 - push {r4,r5,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007DAA - adds r0, r4, 0 - bl GetSpriteMatrixNum - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r2, 0 - ldr r1, _08007D40 @ =gUnknown_3000C68 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r1 - ldrb r0, [r3, 0x2] - cmp r0, 0 - beq _08007D44 - adds r0, r2, 0 - adds r1, r4, 0 - bl AffineAnimDelay - b _08007D8E - .align 2, 0 -_08007D40: .4byte gUnknown_3000C68 -_08007D44: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08007DAA - ldrb r0, [r3, 0x1] - adds r0, 0x1 - strb r0, [r3, 0x1] - ldrb r0, [r3] - ldr r1, [r4, 0x10] - lsls r0, 2 - adds r0, r1 - ldrb r1, [r3, 0x1] - ldr r0, [r0] - lsls r1, 3 - adds r1, r0 - movs r2, 0x3 - movs r0, 0 - ldrsh r1, [r1, r0] - ldr r0, _08007DB0 @ =0x00007ffc - cmp r1, r0 - ble _08007D7C - ldr r2, _08007DB4 @ =0xffff8003 - adds r0, r1, r2 - lsls r0, 16 - lsrs r2, r0, 16 -_08007D7C: - ldr r0, _08007DB8 @ =gUnknown_8231D38 - lsls r1, r2, 16 - asrs r1, 14 - adds r1, r0 - ldr r2, [r1] - adds r0, r5, 0 - adds r1, r4, 0 - bl _call_via_r2 -_08007D8E: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08007DAA - movs r0, 0x3A - ldrsh r1, [r4, r0] - movs r0, 0x3C - ldrsh r2, [r4, r0] - adds r0, r4, 0 - bl obj_update_pos2 -_08007DAA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08007DB0: .4byte 0x00007ffc -_08007DB4: .4byte 0xffff8003 -_08007DB8: .4byte gUnknown_8231D38 - thumb_func_end ContinueAffineAnim - - thumb_func_start AffineAnimDelay -AffineAnimDelay: @ 8007DBC - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl DecrementAffineAnimDelayCounter - lsls r0, 24 - cmp r0, 0 - bne _08007DE6 - adds r0, r4, 0 - adds r1, r5, 0 - mov r2, sp - bl GetAffineAnimFrame - adds r0, r4, 0 - mov r1, sp - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix -_08007DE6: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end AffineAnimDelay - - thumb_func_start AffineAnimCmd_loop -AffineAnimCmd_loop: @ 8007DF0 - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, _08007E14 @ =gUnknown_3000C68 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x3] - cmp r0, 0 - beq _08007E18 - adds r0, r2, 0 - adds r1, r3, 0 - bl ContinueAffineAnimLoop - b _08007E20 - .align 2, 0 -_08007E14: .4byte gUnknown_3000C68 -_08007E18: - adds r0, r2, 0 - adds r1, r3, 0 - bl BeginAffineAnimLoop -_08007E20: - pop {r0} - bx r0 - thumb_func_end AffineAnimCmd_loop - - thumb_func_start BeginAffineAnimLoop -BeginAffineAnimLoop: @ 8007E24 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08007E5C @ =gUnknown_3000C68 - lsls r3, r0, 1 - adds r3, r0 - lsls r3, 2 - adds r3, r1 - ldrb r2, [r3] - ldr r1, [r4, 0x10] - lsls r2, 2 - adds r2, r1 - ldrb r1, [r3, 0x1] - ldr r2, [r2] - lsls r1, 3 - adds r1, r2 - ldrh r1, [r1, 0x2] - strb r1, [r3, 0x3] - adds r1, r4, 0 - bl JumpToTopOfAffineAnimLoop - adds r0, r4, 0 - bl ContinueAffineAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08007E5C: .4byte gUnknown_3000C68 - thumb_func_end BeginAffineAnimLoop - - thumb_func_start ContinueAffineAnimLoop -ContinueAffineAnimLoop: @ 8007E60 - push {r4,lr} - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08007E8C @ =gUnknown_3000C68 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x3] - subs r2, 0x1 - strb r2, [r1, 0x3] - adds r1, r4, 0 - bl JumpToTopOfAffineAnimLoop - adds r0, r4, 0 - bl ContinueAffineAnim - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08007E8C: .4byte gUnknown_3000C68 - thumb_func_end ContinueAffineAnimLoop - - thumb_func_start JumpToTopOfAffineAnimLoop -JumpToTopOfAffineAnimLoop: @ 8007E90 - push {r4-r7,lr} - mov r12, r1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08007EB4 @ =gUnknown_3000C68 - lsls r3, r5, 1 - adds r0, r3, r5 - lsls r0, 2 - adds r2, r0, r1 - ldrb r0, [r2, 0x3] - adds r6, r1, 0 - cmp r0, 0 - beq _08007EF0 - ldrb r0, [r2, 0x1] - subs r0, 0x1 - strb r0, [r2, 0x1] - adds r4, r3, 0 - b _08007EC0 - .align 2, 0 -_08007EB4: .4byte gUnknown_3000C68 -_08007EB8: - cmp r2, 0 - beq _08007EE4 - subs r0, r2, 0x1 - strb r0, [r3, 0x1] -_08007EC0: - adds r0, r4, r5 - lsls r0, 2 - adds r3, r0, r6 - ldrb r0, [r3] - mov r2, r12 - ldr r1, [r2, 0x10] - lsls r0, 2 - adds r0, r1 - ldrb r2, [r3, 0x1] - ldr r1, [r0] - lsls r0, r2, 3 - adds r0, r1 - subs r0, 0x8 - movs r7, 0 - ldrsh r1, [r0, r7] - ldr r0, _08007EF8 @ =0x00007ffd - cmp r1, r0 - bne _08007EB8 -_08007EE4: - adds r1, r4, r5 - lsls r1, 2 - adds r1, r6 - ldrb r0, [r1, 0x1] - subs r0, 0x1 - strb r0, [r1, 0x1] -_08007EF0: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08007EF8: .4byte 0x00007ffd - thumb_func_end JumpToTopOfAffineAnimLoop - - thumb_func_start AffineAnimCmd_jump -AffineAnimCmd_jump: @ 8007EFC - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _08007F44 @ =gUnknown_3000C68 - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 2 - adds r4, r0 - ldrb r2, [r4] - ldr r0, [r1, 0x10] - lsls r2, 2 - adds r2, r0 - ldrb r0, [r4, 0x1] - ldr r2, [r2] - lsls r0, 3 - adds r0, r2 - ldrh r0, [r0, 0x2] - strb r0, [r4, 0x1] - mov r6, sp - adds r0, r5, 0 - mov r2, sp - bl GetAffineAnimFrame - adds r0, r5, 0 - mov r1, sp - bl ApplyAffineAnimFrame - ldrb r0, [r6, 0x5] - strb r0, [r4, 0x2] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08007F44: .4byte gUnknown_3000C68 - thumb_func_end AffineAnimCmd_jump - - thumb_func_start AffineAnimCmd_end -AffineAnimCmd_end: @ 8007F48 - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - movs r3, 0 - str r2, [sp] - str r3, [sp, 0x4] - adds r1, 0x3F - ldrb r2, [r1] - movs r3, 0x20 - orrs r2, r3 - strb r2, [r1] - ldr r2, _08007F80 @ =gUnknown_3000C68 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x1] - subs r2, 0x1 - strb r2, [r1, 0x1] - mov r1, sp - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix - add sp, 0x8 - pop {r0} - bx r0 - .align 2, 0 -_08007F80: .4byte gUnknown_3000C68 - thumb_func_end AffineAnimCmd_end - - thumb_func_start AffineAnimCmd_frame -AffineAnimCmd_frame: @ 8007F84 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r5, sp - adds r0, r4, 0 - mov r2, sp - bl GetAffineAnimFrame - adds r0, r4, 0 - mov r1, sp - bl ApplyAffineAnimFrame - ldr r1, _08007FB8 @ =gUnknown_3000C68 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r5, 0x5] - strb r1, [r0, 0x2] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08007FB8: .4byte gUnknown_3000C68 - thumb_func_end AffineAnimCmd_frame - - thumb_func_start CopyOamMatrix -CopyOamMatrix: @ 8007FBC - lsls r0, 24 - ldr r2, _08007FD8 @ =gUnknown_2021BCC - lsrs r0, 21 - adds r0, r2 - ldrh r2, [r1] - strh r2, [r0] - ldrh r2, [r1, 0x2] - strh r2, [r0, 0x2] - ldrh r2, [r1, 0x4] - strh r2, [r0, 0x4] - ldrh r1, [r1, 0x6] - strh r1, [r0, 0x6] - bx lr - .align 2, 0 -_08007FD8: .4byte gUnknown_2021BCC - thumb_func_end CopyOamMatrix - - thumb_func_start GetSpriteMatrixNum -GetSpriteMatrixNum: @ 8007FDC - push {lr} - adds r2, r0, 0 - movs r3, 0 - ldrb r0, [r2, 0x1] - lsls r0, 30 - lsrs r0, 30 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08007FF6 - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r3, r0, 27 -_08007FF6: - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end GetSpriteMatrixNum - - thumb_func_start sub_8007FFC -sub_8007FFC: @ 8007FFC - strh r1, [r0, 0x3A] - strh r2, [r0, 0x3C] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - bx lr - thumb_func_end sub_8007FFC - - thumb_func_start sub_800800C -sub_800800C: @ 800800C - push {r4,r5,lr} - adds r3, r0, 0 - adds r5, r2, 0 - subs r0, r1, r3 - cmp r0, 0 - bge _0800801E - negs r0, r0 - asrs r4, r0, 9 - b _08008022 -_0800801E: - asrs r0, 9 - negs r4, r0 -_08008022: - adds r0, r5, 0 - muls r0, r1 - adds r1, r3, 0 - bl __udivsi3 - adds r0, r4 - subs r0, r5, r0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_800800C - - thumb_func_start obj_update_pos2 -obj_update_pos2: @ 8008038 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - adds r6, r1, 0 - mov r8, r2 - ldrb r1, [r5, 0x3] - lsls r0, r1, 26 - lsrs r7, r0, 27 - movs r0, 0x80 - lsls r0, 4 - mov r9, r0 - cmp r6, r9 - beq _08008086 - ldr r2, _080080CC @ =gUnknown_8231D48 - lsrs r1, 6 - lsls r1, 3 - ldrb r0, [r5, 0x1] - lsrs r0, 6 - lsls r0, 5 - adds r1, r0 - adds r1, r2 - ldr r0, [r1] - lsls r4, r0, 8 - lsls r0, 16 - ldr r2, _080080D0 @ =gUnknown_2021BCC - lsls r1, r7, 3 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0 - adds r0, r4, 0 - adds r2, r6, 0 - bl sub_800800C - strh r0, [r5, 0x24] -_08008086: - cmp r8, r9 - beq _080080BE - ldr r2, _080080CC @ =gUnknown_8231D48 - ldrb r1, [r5, 0x3] - lsrs r1, 6 - lsls r1, 3 - ldrb r0, [r5, 0x1] - lsrs r0, 6 - lsls r0, 5 - adds r1, r0 - adds r2, 0x4 - adds r1, r2 - ldr r0, [r1] - lsls r4, r0, 8 - lsls r0, 16 - ldr r2, _080080D0 @ =gUnknown_2021BCC - lsls r1, r7, 3 - adds r1, r2 - movs r2, 0x6 - ldrsh r1, [r1, r2] - bl __divsi3 - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r8 - bl sub_800800C - strh r0, [r5, 0x26] -_080080BE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080080CC: .4byte gUnknown_8231D48 -_080080D0: .4byte gUnknown_2021BCC - thumb_func_end obj_update_pos2 - - thumb_func_start SetSpriteOamFlipBits -SetSpriteOamFlipBits: @ 80080D4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldrb r6, [r0, 0x3] - lsls r3, r6, 26 - lsrs r3, 27 - movs r4, 0x7 - ands r3, r4 - lsls r3, 1 - subs r4, 0x46 - mov r8, r4 - mov r5, r8 - ands r5, r6 - orrs r5, r3 - strb r5, [r0, 0x3] - lsls r4, r5, 26 - lsrs r4, 27 - movs r6, 0x3F - adds r6, r0 - mov r12, r6 - ldrb r3, [r6] - lsls r3, 31 - lsrs r3, 31 - eors r1, r3 - movs r6, 0x1 - ands r1, r6 - lsls r1, 3 - orrs r4, r1 - lsls r4, 1 - mov r3, r8 - ands r3, r5 - orrs r3, r4 - strb r3, [r0, 0x3] - lsls r4, r3, 26 - lsrs r4, 27 - mov r5, r12 - ldrb r1, [r5] - lsls r1, 30 - lsrs r1, 31 - eors r2, r1 - ands r2, r6 - lsls r2, 4 - orrs r4, r2 - lsls r4, 1 - mov r6, r8 - ands r3, r6 - orrs r3, r4 - strb r3, [r0, 0x3] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end SetSpriteOamFlipBits - - thumb_func_start AffineAnimStateRestartAnim -AffineAnimStateRestartAnim: @ 8008148 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08008160 @ =gUnknown_3000C68 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - strb r0, [r1, 0x3] - bx lr - .align 2, 0 -_08008160: .4byte gUnknown_3000C68 - thumb_func_end AffineAnimStateRestartAnim - - thumb_func_start AffineAnimStateStartAnim -AffineAnimStateStartAnim: @ 8008164 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08008188 @ =gUnknown_3000C68 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - movs r3, 0 - strb r1, [r2] - strb r3, [r2, 0x1] - strb r3, [r2, 0x2] - strb r3, [r2, 0x3] - movs r0, 0x80 - lsls r0, 1 - strh r0, [r2, 0x4] - strh r0, [r2, 0x6] - strh r3, [r2, 0x8] - bx lr - .align 2, 0 -_08008188: .4byte gUnknown_3000C68 - thumb_func_end AffineAnimStateStartAnim - - thumb_func_start AffineAnimStateReset -AffineAnimStateReset: @ 800818C - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080081B0 @ =gUnknown_3000C68 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - strb r0, [r1, 0x2] - strb r0, [r1, 0x3] - movs r2, 0x80 - lsls r2, 1 - strh r2, [r1, 0x4] - strh r2, [r1, 0x6] - strh r0, [r1, 0x8] - bx lr - .align 2, 0 -_080081B0: .4byte gUnknown_3000C68 - thumb_func_end AffineAnimStateReset - - thumb_func_start ApplyAffineAnimFrameAbsolute -ApplyAffineAnimFrameAbsolute: @ 80081B4 - lsls r0, 24 - lsrs r0, 24 - ldr r3, _080081D4 @ =gUnknown_3000C68 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrh r0, [r1] - strh r0, [r2, 0x4] - ldrh r0, [r1, 0x2] - strh r0, [r2, 0x6] - ldrb r0, [r1, 0x4] - lsls r0, 8 - strh r0, [r2, 0x8] - bx lr - .align 2, 0 -_080081D4: .4byte gUnknown_3000C68 - thumb_func_end ApplyAffineAnimFrameAbsolute - - thumb_func_start DecrementAnimDelayCounter -DecrementAnimDelayCounter: @ 80081D8 - push {lr} - adds r3, r0, 0 - adds r3, 0x2C - ldrb r2, [r3] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - bne _080081FC - lsls r0, r2, 26 - lsrs r0, 26 - subs r0, 0x1 - movs r1, 0x3F - ands r0, r1 - movs r1, 0x40 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r3] -_080081FC: - pop {r0} - bx r0 - thumb_func_end DecrementAnimDelayCounter - - thumb_func_start DecrementAffineAnimDelayCounter -DecrementAffineAnimDelayCounter: @ 8008200 - push {lr} - lsls r1, 24 - lsrs r2, r1, 24 - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08008224 - ldr r0, _0800822C @ =gUnknown_3000C68 - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x2] - subs r0, 0x1 - strb r0, [r1, 0x2] -_08008224: - ldrb r0, [r3] - lsrs r0, 7 - pop {r1} - bx r1 - .align 2, 0 -_0800822C: .4byte gUnknown_3000C68 - thumb_func_end DecrementAffineAnimDelayCounter - - thumb_func_start ApplyAffineAnimFrameRelativeAndUpdateMatrix -ApplyAffineAnimFrameRelativeAndUpdateMatrix: @ 8008230 - push {r4-r6,lr} - sub sp, 0x10 - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, _080082B8 @ =gUnknown_3000C68 - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 2 - adds r4, r0 - ldrh r0, [r1] - ldrh r2, [r4, 0x4] - adds r0, r2 - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x2] - ldrh r2, [r4, 0x6] - adds r0, r2 - strh r0, [r4, 0x6] - ldrb r0, [r1, 0x4] - lsls r0, 8 - ldrh r1, [r4, 0x8] - adds r0, r1 - ldr r2, _080082BC @ =0xffffff00 - adds r1, r2, 0 - ands r0, r1 - strh r0, [r4, 0x8] - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl ConvertScaleParam - lsls r0, 16 - lsrs r0, 16 - ldr r6, _080082C0 @ =0xffff0000 - ldr r1, [sp] - ands r1, r6 - orrs r1, r0 - str r1, [sp] - movs r2, 0x6 - ldrsh r0, [r4, r2] - bl ConvertScaleParam - lsls r0, 16 - ldr r2, _080082C4 @ =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldrh r1, [r4, 0x8] - ldr r0, [sp, 0x4] - ands r0, r6 - orrs r0, r1 - str r0, [sp, 0x4] - add r4, sp, 0x8 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - adds r0, r5, 0 - adds r1, r4, 0 - bl CopyOamMatrix - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080082B8: .4byte gUnknown_3000C68 -_080082BC: .4byte 0xffffff00 -_080082C0: .4byte 0xffff0000 -_080082C4: .4byte 0x0000ffff - thumb_func_end ApplyAffineAnimFrameRelativeAndUpdateMatrix - - thumb_func_start ConvertScaleParam -ConvertScaleParam: @ 80082C8 - push {lr} - adds r1, r0, 0 - movs r0, 0x80 - lsls r0, 9 - lsls r1, 16 - asrs r1, 16 - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end ConvertScaleParam - - thumb_func_start GetAffineAnimFrame -GetAffineAnimFrame: @ 80082E0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r3, _08008348 @ =gUnknown_3000C68 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - adds r4, r3 - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r3, [r3] - lsls r0, 3 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2] - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r3, [r3] - lsls r0, 3 - adds r0, r3 - ldrh r0, [r0, 0x2] - strh r0, [r2, 0x2] - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r3, [r3] - lsls r0, 3 - adds r0, r3 - ldrb r0, [r0, 0x4] - strb r0, [r2, 0x4] - ldrb r3, [r4] - ldr r0, [r1, 0x10] - lsls r3, 2 - adds r3, r0 - ldrb r0, [r4, 0x1] - ldr r1, [r3] - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x5] - strb r0, [r2, 0x5] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08008348: .4byte gUnknown_3000C68 - thumb_func_end GetAffineAnimFrame - - thumb_func_start ApplyAffineAnimFrame -ApplyAffineAnimFrame: @ 800834C - push {r4,lr} - sub sp, 0x8 - adds r2, r1, 0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - ldrb r0, [r2, 0x5] - cmp r0, 0 - beq _08008372 - subs r0, 0x1 - strb r0, [r2, 0x5] - adds r0, r4, 0 - adds r1, r2, 0 - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix - b _08008382 -_08008372: - adds r0, r4, 0 - adds r1, r2, 0 - bl ApplyAffineAnimFrameAbsolute - adds r0, r4, 0 - mov r1, sp - bl ApplyAffineAnimFrameRelativeAndUpdateMatrix -_08008382: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end ApplyAffineAnimFrame - - thumb_func_start StartSpriteAnim -StartSpriteAnim: @ 800838C - adds r2, r0, 0 - adds r2, 0x2A - strb r1, [r2] - adds r0, 0x3F - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - movs r2, 0x11 - negs r2, r2 - ands r1, r2 - strb r1, [r0] - bx lr - thumb_func_end StartSpriteAnim - - thumb_func_start StartSpriteAnimIfDifferent -StartSpriteAnimIfDifferent: @ 80083A4 - push {lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, r1 - beq _080083BA - adds r0, r2, 0 - bl StartSpriteAnim -_080083BA: - pop {r0} - bx r0 - thumb_func_end StartSpriteAnimIfDifferent - - thumb_func_start SeekSpriteAnim -SeekSpriteAnim: @ 80083C0 - push {r4-r7,lr} - adds r3, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r4, r3, 0 - adds r4, 0x2C - ldrb r0, [r4] - lsls r0, 25 - lsrs r6, r0, 31 - subs r1, 0x1 - adds r0, r3, 0 - adds r0, 0x2B - strb r1, [r0] - ldrb r1, [r4] - movs r7, 0x40 - negs r7, r7 - adds r0, r7, 0 - ands r0, r1 - strb r0, [r4] - adds r2, r3, 0 - adds r2, 0x3F - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r2] - ldrb r1, [r4] - movs r5, 0x41 - negs r5, r5 - adds r0, r5, 0 - ands r0, r1 - strb r0, [r4] - adds r0, r3, 0 - bl ContinueAnim - ldrb r2, [r4] - movs r0, 0x3F - ands r0, r2 - cmp r0, 0 - beq _08008428 - lsls r0, r2, 26 - lsrs r0, 26 - adds r0, 0x1 - movs r1, 0x3F - ands r0, r1 - adds r1, r7, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4] -_08008428: - lsls r2, r6, 6 - ldrb r1, [r4] - adds r0, r5, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4] - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SeekSpriteAnim - - thumb_func_start StartSpriteAffineAnim -StartSpriteAffineAnim: @ 800843C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl GetSpriteMatrixNum - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl AffineAnimStateStartAnim - adds r5, 0x3F - ldrb r0, [r5] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end StartSpriteAffineAnim - - thumb_func_start StartSpriteAffineAnimIfDifferent -StartSpriteAffineAnimIfDifferent: @ 8008468 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl GetSpriteMatrixNum - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08008498 @ =gUnknown_3000C68 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - cmp r0, r4 - beq _08008490 - adds r0, r5, 0 - adds r1, r4, 0 - bl StartSpriteAffineAnim -_08008490: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08008498: .4byte gUnknown_3000C68 - thumb_func_end StartSpriteAffineAnimIfDifferent - - thumb_func_start ChangeSpriteAffineAnim -ChangeSpriteAffineAnim: @ 800849C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - bl GetSpriteMatrixNum - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080084D0 @ =gUnknown_3000C68 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - strb r4, [r1] - adds r5, 0x3F - ldrb r0, [r5] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - strb r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080084D0: .4byte gUnknown_3000C68 - thumb_func_end ChangeSpriteAffineAnim - - thumb_func_start ChangeSpriteAffineAnimIfDifferent -ChangeSpriteAffineAnimIfDifferent: @ 80084D4 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl GetSpriteMatrixNum - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08008504 @ =gUnknown_3000C68 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1] - cmp r0, r4 - beq _080084FC - adds r0, r5, 0 - adds r1, r4, 0 - bl ChangeSpriteAffineAnim -_080084FC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08008504: .4byte gUnknown_3000C68 - thumb_func_end ChangeSpriteAffineAnimIfDifferent - - thumb_func_start SetSpriteSheetFrameTileNum -SetSpriteSheetFrameTileNum: @ 8008508 - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08008554 - adds r0, r3, 0 - adds r0, 0x2A - ldrb r1, [r0] - ldr r0, [r3, 0x8] - lsls r1, 2 - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x2B - ldrb r0, [r0] - ldr r1, [r1] - lsls r0, 2 - adds r0, r1 - ldrh r2, [r0] - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _0800853C - movs r2, 0 -_0800853C: - adds r0, r3, 0 - adds r0, 0x40 - ldrh r1, [r0] - adds r1, r2 - ldr r2, _08008558 @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, _0800855C @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] -_08008554: - pop {r0} - bx r0 - .align 2, 0 -_08008558: .4byte 0x000003ff -_0800855C: .4byte 0xfffffc00 - thumb_func_end SetSpriteSheetFrameTileNum - - thumb_func_start ResetAffineAnimData -ResetAffineAnimData: @ 8008560 - push {r4,lr} - ldr r1, _0800858C @ =gUnknown_2021CCC - movs r0, 0 - strb r0, [r1] - ldr r1, _08008590 @ =gUnknown_3003E54 - movs r0, 0 - str r0, [r1] - bl ResetOamMatrices - movs r4, 0 -_08008574: - adds r0, r4, 0 - bl AffineAnimStateReset - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1F - bls _08008574 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800858C: .4byte gUnknown_2021CCC -_08008590: .4byte gUnknown_3003E54 - thumb_func_end ResetAffineAnimData - - thumb_func_start AllocOamMatrix -AllocOamMatrix: @ 8008594 - push {r4,lr} - movs r2, 0 - movs r1, 0x1 - ldr r0, _080085B4 @ =gUnknown_3003E54 - ldr r4, [r0] - adds r3, r0, 0 -_080085A0: - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _080085B8 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r0, r2, 0 - b _080085C6 - .align 2, 0 -_080085B4: .4byte gUnknown_3003E54 -_080085B8: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 1 - cmp r2, 0x1F - bls _080085A0 - movs r0, 0xFF -_080085C6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AllocOamMatrix - - thumb_func_start FreeOamMatrix -FreeOamMatrix: @ 80085CC - push {lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0 - movs r1, 0x1 - ldr r3, _08008608 @ =gUnknown_3003E54 - cmp r0, r2 - bcs _080085EA -_080085DE: - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 1 - cmp r0, r2 - bcc _080085DE -_080085EA: - ldr r0, [r3] - bics r0, r1 - str r0, [r3] - movs r1, 0x80 - lsls r1, 1 - str r1, [sp] - adds r0, r2, 0 - movs r2, 0 - movs r3, 0 - bl SetOamMatrix - add sp, 0x4 - pop {r0} - bx r0 - .align 2, 0 -_08008608: .4byte gUnknown_3003E54 - thumb_func_end FreeOamMatrix - - thumb_func_start InitSpriteAffineAnim -InitSpriteAffineAnim: @ 800860C - push {r4,r5,lr} - adds r4, r0, 0 - bl AllocOamMatrix - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xFF - beq _08008654 - ldrb r3, [r4, 0x1] - lsrs r1, r3, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - lsls r3, 30 - lsrs r3, 30 - adds r0, r4, 0 - bl CalcCenterToCornerVec - movs r0, 0x1F - adds r1, r5, 0 - ands r1, r0 - lsls r1, 1 - ldrb r2, [r4, 0x3] - movs r0, 0x3F - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x3] - adds r2, r4, 0 - adds r2, 0x3F - ldrb r0, [r2] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0 - bl AffineAnimStateReset -_08008654: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end InitSpriteAffineAnim - - thumb_func_start SetOamMatrixRotationScaling -SetOamMatrixRotationScaling: @ 800865C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x10 - adds r6, r0, 0 - adds r0, r1, 0 - adds r4, r2, 0 - adds r5, r3, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r0, 16 - asrs r0, 16 - bl ConvertScaleParam - lsls r0, 16 - lsrs r0, 16 - ldr r1, _080086D4 @ =0xffff0000 - mov r8, r1 - ldr r1, [sp] - mov r2, r8 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl ConvertScaleParam - lsls r0, 16 - ldr r2, _080086D8 @ =0x0000ffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - ldr r0, [sp, 0x4] - mov r1, r8 - ands r0, r1 - orrs r0, r5 - str r0, [sp, 0x4] - add r4, sp, 0x8 - mov r0, sp - adds r1, r4, 0 - movs r2, 0x1 - movs r3, 0x2 - bl ObjAffineSet - adds r0, r6, 0 - adds r1, r4, 0 - bl CopyOamMatrix - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080086D4: .4byte 0xffff0000 -_080086D8: .4byte 0x0000ffff - thumb_func_end SetOamMatrixRotationScaling - - thumb_func_start LoadSpriteSheet -LoadSpriteSheet: @ 80086DC - push {r4-r6,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x4] - lsrs r0, 5 - bl AllocSpriteTiles - lsls r4, r0, 16 - asrs r6, r4, 16 - cmp r6, 0 - blt _08008718 - ldrh r0, [r5, 0x6] - lsrs r4, 16 - ldrh r2, [r5, 0x4] - lsrs r2, 5 - adds r1, r4, 0 - bl AllocSpriteTileRange - ldr r0, [r5] - lsls r1, r6, 5 - ldr r2, _08008714 @ =0x06010000 - adds r1, r2 - ldrh r2, [r5, 0x4] - lsrs r2, 1 - bl CpuSet - adds r0, r4, 0 - b _0800871A - .align 2, 0 -_08008714: .4byte 0x06010000 -_08008718: - movs r0, 0 -_0800871A: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end LoadSpriteSheet - - thumb_func_start LoadSpriteSheets -LoadSpriteSheets: @ 8008720 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - ldr r0, [r5] - cmp r0, 0 - beq _08008744 -_0800872C: - lsls r0, r4, 3 - adds r0, r5, r0 - bl LoadSpriteSheet - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 3 - adds r0, r5 - ldr r0, [r0] - cmp r0, 0 - bne _0800872C -_08008744: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadSpriteSheets - - thumb_func_start FreeSpriteTilesByTag -FreeSpriteTilesByTag: @ 800874C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfSpriteTileTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080087AA - ldr r0, _080087B4 @ =gUnknown_3000B68 - lsls r1, r4, 2 - adds r2, r1, r0 - adds r0, 0x2 - adds r1, r0 - ldrh r0, [r1] - ldrh r3, [r2] - adds r0, r3, r0 - ldr r1, _080087B8 @ =gUnknown_3000AE8 - mov r8, r1 - lsls r5, r4, 1 - cmp r3, r0 - bge _080087A2 - ldr r1, _080087BC @ =gUnknown_2021B48 - mov r12, r1 - movs r6, 0x7 - movs r7, 0x1 - adds r4, r0, 0 -_08008786: - lsrs r2, r3, 3 - add r2, r12 - adds r0, r3, 0 - ands r0, r6 - adds r1, r7, 0 - lsls r1, r0 - ldrb r0, [r2] - bics r0, r1 - strb r0, [r2] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, r4 - blt _08008786 -_080087A2: - mov r0, r8 - adds r1, r5, r0 - ldr r0, _080087C0 @ =0x0000ffff - strh r0, [r1] -_080087AA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080087B4: .4byte gUnknown_3000B68 -_080087B8: .4byte gUnknown_3000AE8 -_080087BC: .4byte gUnknown_2021B48 -_080087C0: .4byte 0x0000ffff - thumb_func_end FreeSpriteTilesByTag - - thumb_func_start FreeSpriteTileRanges -FreeSpriteTileRanges: @ 80087C4 - push {r4-r7,lr} - movs r2, 0 - ldr r7, _080087F8 @ =gUnknown_3000AE8 - ldr r0, _080087FC @ =0x0000ffff - adds r6, r0, 0 - ldr r4, _08008800 @ =gUnknown_3000B68 - movs r3, 0 - adds r5, r4, 0x2 -_080087D4: - lsls r1, r2, 1 - adds r1, r7 - ldrh r0, [r1] - orrs r0, r6 - strh r0, [r1] - lsls r1, r2, 2 - adds r0, r1, r4 - strh r3, [r0] - adds r1, r5 - strh r3, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _080087D4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080087F8: .4byte gUnknown_3000AE8 -_080087FC: .4byte 0x0000ffff -_08008800: .4byte gUnknown_3000B68 - thumb_func_end FreeSpriteTileRanges - - thumb_func_start GetSpriteTileStartByTag -GetSpriteTileStartByTag: @ 8008804 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfSpriteTileTag - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _08008824 - ldr r0, _08008820 @ =gUnknown_3000B68 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - b _08008826 - .align 2, 0 -_08008820: .4byte gUnknown_3000B68 -_08008824: - ldr r0, _0800882C @ =0x0000ffff -_08008826: - pop {r1} - bx r1 - .align 2, 0 -_0800882C: .4byte 0x0000ffff - thumb_func_end GetSpriteTileStartByTag - - thumb_func_start IndexOfSpriteTileTag -IndexOfSpriteTileTag: @ 8008830 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - ldr r3, _08008848 @ =gUnknown_3000AE8 -_0800883A: - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0800884C - adds r0, r1, 0 - b _08008858 - .align 2, 0 -_08008848: .4byte gUnknown_3000AE8 -_0800884C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3F - bls _0800883A - movs r0, 0xFF -_08008858: - pop {r1} - bx r1 - thumb_func_end IndexOfSpriteTileTag - - thumb_func_start GetSpriteTileTagByTileStart -GetSpriteTileTagByTileStart: @ 800885C - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r6, _08008884 @ =gUnknown_3000AE8 - ldr r5, _08008888 @ =0x0000ffff - ldr r4, _0800888C @ =gUnknown_3000B68 -_0800886A: - lsls r0, r2, 1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r5 - beq _08008890 - lsls r0, r2, 2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - bne _08008890 - ldrh r0, [r1] - b _0800889C - .align 2, 0 -_08008884: .4byte gUnknown_3000AE8 -_08008888: .4byte 0x0000ffff -_0800888C: .4byte gUnknown_3000B68 -_08008890: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _0800886A - ldr r0, _080088A4 @ =0x0000ffff -_0800889C: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080088A4: .4byte 0x0000ffff - thumb_func_end GetSpriteTileTagByTileStart - - thumb_func_start AllocSpriteTileRange -AllocSpriteTileRange: @ 80088A8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _080088E4 @ =0x0000ffff - bl IndexOfSpriteTileTag - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080088E8 @ =gUnknown_3000AE8 - lsls r1, r0, 1 - adds r1, r2 - strh r4, [r1] - ldr r1, _080088EC @ =gUnknown_3000B68 - lsls r0, 2 - adds r2, r0, r1 - strh r5, [r2] - adds r1, 0x2 - adds r0, r1 - strh r6, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080088E4: .4byte 0x0000ffff -_080088E8: .4byte gUnknown_3000AE8 -_080088EC: .4byte gUnknown_3000B68 - thumb_func_end AllocSpriteTileRange - - thumb_func_start FreeAllSpritePalettes -FreeAllSpritePalettes: @ 80088F0 - push {r4,lr} - ldr r1, _0800891C @ =gUnknown_3003E58 - movs r0, 0 - strb r0, [r1] - movs r2, 0 - ldr r4, _08008920 @ =gUnknown_3000DE8 - ldr r0, _08008924 @ =0x0000ffff - adds r3, r0, 0 -_08008900: - lsls r0, r2, 1 - adds r0, r4 - ldrh r1, [r0] - orrs r1, r3 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _08008900 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0800891C: .4byte gUnknown_3003E58 -_08008920: .4byte gUnknown_3000DE8 -_08008924: .4byte 0x0000ffff - thumb_func_end FreeAllSpritePalettes - - thumb_func_start LoadSpritePalette -LoadSpritePalette: @ 8008928 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _0800893E - adds r0, r4, 0 - b _0800896E -_0800893E: - ldr r0, _08008964 @ =0x0000ffff - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _0800896C - ldr r1, _08008968 @ =gUnknown_3000DE8 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r5, 0x4] - strh r1, [r0] - ldr r0, [r5] - lsls r1, r4, 4 - bl DoLoadSpritePalette - adds r0, r4, 0 - b _0800896E - .align 2, 0 -_08008964: .4byte 0x0000ffff -_08008968: .4byte gUnknown_3000DE8 -_0800896C: - movs r0, 0xFF -_0800896E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end LoadSpritePalette - - thumb_func_start LoadSpritePalettes -LoadSpritePalettes: @ 8008974 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - b _08008982 -_0800897C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08008982: - lsls r0, r4, 3 - adds r1, r0, r5 - ldr r0, [r1] - cmp r0, 0 - beq _0800899A - adds r0, r1, 0 - bl LoadSpritePalette - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0800897C -_0800899A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadSpritePalettes - - thumb_func_start DoLoadSpritePalette -DoLoadSpritePalette: @ 80089A0 - push {lr} - lsls r1, 16 - movs r2, 0x80 - lsls r2, 17 - adds r1, r2 - lsrs r1, 16 - movs r2, 0x20 - bl LoadPalette - pop {r0} - bx r0 - thumb_func_end DoLoadSpritePalette - - thumb_func_start AllocSpritePalette -AllocSpritePalette: @ 80089B8 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, _080089D8 @ =0x0000ffff - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080089E0 - ldr r1, _080089DC @ =gUnknown_3000DE8 - lsls r0, r2, 1 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - b _080089E2 - .align 2, 0 -_080089D8: .4byte 0x0000ffff -_080089DC: .4byte gUnknown_3000DE8 -_080089E0: - movs r0, 0xFF -_080089E2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AllocSpritePalette - - thumb_func_start IndexOfSpritePaletteTag -IndexOfSpritePaletteTag: @ 80089E8 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, _08008A08 @ =gUnknown_3003E58 - ldrb r1, [r0] - cmp r1, 0xF - bhi _08008A1A - ldr r3, _08008A0C @ =gUnknown_3000DE8 -_080089F8: - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08008A10 - adds r0, r1, 0 - b _08008A1C - .align 2, 0 -_08008A08: .4byte gUnknown_3003E58 -_08008A0C: .4byte gUnknown_3000DE8 -_08008A10: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080089F8 -_08008A1A: - movs r0, 0xFF -_08008A1C: - pop {r1} - bx r1 - thumb_func_end IndexOfSpritePaletteTag - - thumb_func_start GetSpritePaletteTagByPaletteNum -GetSpritePaletteTagByPaletteNum: @ 8008A20 - lsls r0, 24 - ldr r1, _08008A2C @ =gUnknown_3000DE8 - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - bx lr - .align 2, 0 -_08008A2C: .4byte gUnknown_3000DE8 - thumb_func_end GetSpritePaletteTagByPaletteNum - - thumb_func_start FreeSpritePaletteByTag -FreeSpritePaletteByTag: @ 8008A30 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _08008A4C - ldr r0, _08008A50 @ =gUnknown_3000DE8 - lsls r1, 1 - adds r1, r0 - ldr r0, _08008A54 @ =0x0000ffff - strh r0, [r1] -_08008A4C: - pop {r0} - bx r0 - .align 2, 0 -_08008A50: .4byte gUnknown_3000DE8 -_08008A54: .4byte 0x0000ffff - thumb_func_end FreeSpritePaletteByTag - - thumb_func_start SetSubspriteTables -SetSubspriteTables: @ 8008A58 - str r1, [r0, 0x18] - adds r0, 0x42 - movs r1, 0x40 - strb r1, [r0] - bx lr - thumb_func_end SetSubspriteTables - - thumb_func_start AddSpriteToOamBuffer -AddSpriteToOamBuffer: @ 8008A64 - push {r4,lr} - adds r4, r0, 0 - adds r3, r1, 0 - ldr r1, _08008A78 @ =gUnknown_2021B44 - ldrb r0, [r3] - ldrb r1, [r1] - cmp r0, r1 - bcc _08008A7C - movs r0, 0x1 - b _08008AC4 - .align 2, 0 -_08008A78: .4byte gUnknown_2021B44 -_08008A7C: - ldr r0, [r4, 0x18] - cmp r0, 0 - beq _08008A90 - adds r0, r4, 0 - adds r0, 0x42 - ldrb r1, [r0] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _08008AB0 -_08008A90: - ldr r0, _08008AAC @ =gMain - ldrb r2, [r3] - lsls r2, 3 - adds r0, 0x38 - adds r2, r0 - ldr r0, [r4] - ldr r1, [r4, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - movs r0, 0 - b _08008AC4 - .align 2, 0 -_08008AAC: .4byte gMain -_08008AB0: - ldrb r1, [r3] - lsls r1, 3 - ldr r0, _08008ACC @ =gMain + 0x38 - adds r1, r0 - adds r0, r4, 0 - adds r2, r3, 0 - bl AddSubspritesToOamBuffer - lsls r0, 24 - lsrs r0, 24 -_08008AC4: - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08008ACC: .4byte gMain + 0x38 - thumb_func_end AddSpriteToOamBuffer - - thumb_func_start AddSubspritesToOamBuffer -AddSubspritesToOamBuffer: @ 8008AD0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r3, r0, 0 - str r1, [sp] - mov r8, r2 - ldr r0, _08008AF0 @ =gUnknown_2021B44 - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bcc _08008AF4 -_08008AEC: - movs r0, 0x1 - b _08008CCA - .align 2, 0 -_08008AF0: .4byte gUnknown_2021B44 -_08008AF4: - adds r0, r3, 0 - adds r0, 0x42 - ldrb r1, [r0] - lsls r1, 26 - lsrs r1, 23 - ldr r2, [r3, 0x18] - adds r7, r2, r1 - mov r12, r3 - str r0, [sp, 0x18] - cmp r7, 0 - beq _08008B10 - ldr r0, [r7, 0x4] - cmp r0, 0 - bne _08008B26 -_08008B10: - mov r2, r12 - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [sp] - str r0, [r2] - str r1, [r2, 0x4] - mov r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08008CC8 -_08008B26: - mov r2, r12 - ldrh r0, [r2, 0x4] - lsls r0, 22 - lsrs r0, 22 - str r0, [sp, 0x4] - ldrb r0, [r7] - str r0, [sp, 0xC] - ldrb r0, [r2, 0x3] - lsls r0, 26 - lsrs r0, 27 - asrs r1, r0, 3 - str r1, [sp, 0x10] - movs r1, 0x1 - ldr r2, [sp, 0x10] - ands r2, r1 - str r2, [sp, 0x10] - asrs r0, 4 - mov r10, r0 - ands r0, r1 - mov r10, r0 - mov r1, r12 - ldrh r0, [r1, 0x2] - lsls r0, 23 - lsrs r0, 23 - adds r1, 0x28 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 16 - lsrs r2, r0, 16 - mov r1, r12 - ldrb r0, [r1] - adds r1, 0x29 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - subs r0, r1 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - movs r0, 0 - mov r9, r0 - ldr r1, [sp, 0xC] - cmp r9, r1 - bcc _08008B84 - b _08008CC8 -_08008B84: - lsls r0, r2, 16 - asrs r0, 16 - str r0, [sp, 0x14] -_08008B8A: - mov r2, r8 - ldrb r0, [r2] - ldr r1, _08008CDC @ =gUnknown_2021B44 - ldrb r1, [r1] - cmp r0, r1 - bcs _08008AEC - ldr r0, [r7, 0x4] - mov r2, r9 - lsls r6, r2, 2 - adds r2, r6, r0 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0x1 - ldrsb r0, [r2, r0] - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, [sp, 0x10] - cmp r0, 0 - beq _08008BE0 - ldr r0, [r2] - lsls r1, r0, 12 - lsrs r1, 30 - lsls r1, 2 - lsls r0, 14 - lsrs r0, 30 - lsls r0, 4 - adds r1, r0 - ldr r0, _08008CE0 @ =gUnknown_8231DA8 - adds r1, r0 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - lsls r0, r4, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r4, r0, 16 - mvns r0, r4 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_08008BE0: - mov r1, r10 - cmp r1, 0 - beq _08008C12 - ldr r0, [r2] - lsls r1, r0, 12 - lsrs r1, 30 - lsls r1, 2 - lsls r0, 14 - lsrs r0, 30 - lsls r0, 4 - adds r1, r0 - ldr r2, _08008CE0 @ =gUnknown_8231DA8 - adds r1, r2 - ldrb r1, [r1, 0x1] - lsls r1, 24 - asrs r1, 24 - lsls r0, r5, 16 - asrs r0, 16 - adds r0, r1 - lsls r0, 16 - lsrs r5, r0, 16 - mvns r0, r5 - adds r0, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_08008C12: - mov r1, r9 - lsls r0, r1, 3 - ldr r2, [sp] - adds r3, r0, r2 - mov r2, r12 - ldr r0, [r2] - ldr r1, [r2, 0x4] - str r0, [r3] - str r1, [r3, 0x4] - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, 14 - lsrs r1, 30 - lsls r1, 6 - ldrb r2, [r3, 0x1] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x1] - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, 12 - lsrs r1, 30 - lsls r1, 6 - ldrb r2, [r3, 0x3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x3] - lsls r1, r4, 16 - asrs r1, 16 - ldr r0, [sp, 0x14] - adds r1, r0, r1 - ldr r2, _08008CE4 @ =0x000001ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x2] - ldr r0, _08008CE8 @ =0xfffffe00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x2] - ldr r1, [sp, 0x8] - adds r0, r1, r5 - strb r0, [r3] - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsls r1, 2 - lsrs r1, 22 - ldr r2, [sp, 0x4] - adds r1, r2, r1 - ldr r2, _08008CEC @ =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, _08008CF0 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r3, 0x4] - ldr r0, [sp, 0x18] - ldrb r1, [r0] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0x80 - beq _08008CAE - ldr r0, [r7, 0x4] - adds r0, r6, r0 - ldr r1, [r0] - lsrs r1, 30 - lsls r1, 2 - ldrb r2, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] -_08008CAE: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r1, r8 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r2, [sp, 0xC] - cmp r9, r2 - bcs _08008CC8 - b _08008B8A -_08008CC8: - movs r0, 0 -_08008CCA: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08008CDC: .4byte gUnknown_2021B44 -_08008CE0: .4byte gUnknown_8231DA8 -_08008CE4: .4byte 0x000001ff -_08008CE8: .4byte 0xfffffe00 -_08008CEC: .4byte 0x000003ff -_08008CF0: .4byte 0xfffffc00 - thumb_func_end AddSubspritesToOamBuffer - - .align 2, 0 @ Don't pad with nop. |