diff options
Diffstat (limited to 'asm/sprite.s')
-rw-r--r-- | asm/sprite.s | 778 |
1 files changed, 0 insertions, 778 deletions
diff --git a/asm/sprite.s b/asm/sprite.s deleted file mode 100644 index 9e7d5880e..000000000 --- a/asm/sprite.s +++ /dev/null @@ -1,778 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start FreeSpriteTilesByTag -@ void FreeSpriteTilesByTag(u16 tag) -FreeSpriteTilesByTag: @ 8008568 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfObjectTilesTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _080085C6 - ldr r0, =gUnknown_03000A70 - 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, =gUnknown_030009F0 - mov r8, r1 - lsls r5, r4, 1 - cmp r3, r0 - bge _080085BE - ldr r1, =gSpriteTileAllocBitmap - mov r12, r1 - movs r6, 0x7 - movs r7, 0x1 - adds r4, r0, 0 -_080085A2: - 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 _080085A2 -_080085BE: - mov r0, r8 - adds r1, r5, r0 - ldr r0, =0x0000ffff - strh r0, [r1] -_080085C6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end FreeSpriteTilesByTag - - thumb_func_start FreeSpriteTileRanges -@ void FreeSpriteTileRanges() -FreeSpriteTileRanges: @ 80085E0 - push {r4-r7,lr} - movs r2, 0 - ldr r7, =gUnknown_030009F0 - ldr r0, =0x0000ffff - adds r6, r0, 0 - ldr r4, =gUnknown_03000A70 - movs r3, 0 - adds r5, r4, 0x2 -_080085F0: - 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 _080085F0 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end FreeSpriteTileRanges - - thumb_func_start GetSpriteTileStartByTag -@ u16 GetSpriteTileStartByTag(u16 tag) -GetSpriteTileStartByTag: @ 8008620 - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfObjectTilesTag - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _08008640 - ldr r0, =gUnknown_03000A70 - lsls r1, 2 - adds r1, r0 - ldrh r0, [r1] - b _08008642 - .pool -_08008640: - ldr r0, =0x0000ffff -_08008642: - pop {r1} - bx r1 - .pool - thumb_func_end GetSpriteTileStartByTag - - thumb_func_start IndexOfObjectTilesTag -@ u8 IndexOfObjectTilesTag(u16 tag) -IndexOfObjectTilesTag: @ 800864C - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0 - ldr r3, =gUnknown_030009F0 -_08008656: - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _08008668 - adds r0, r1, 0 - b _08008674 - .pool -_08008668: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x3F - bls _08008656 - movs r0, 0xFF -_08008674: - pop {r1} - bx r1 - thumb_func_end IndexOfObjectTilesTag - - thumb_func_start GetTagByObjectTileRangeStart -@ u16 GetTagByObjectTileRangeStart(u16 rangeStart) -GetTagByObjectTileRangeStart: @ 8008678 - push {r4-r6,lr} - lsls r0, 16 - lsrs r3, r0, 16 - movs r2, 0 - ldr r6, =gUnknown_030009F0 - ldr r5, =0x0000ffff - ldr r4, =gUnknown_03000A70 -_08008686: - lsls r0, r2, 1 - adds r1, r0, r6 - ldrh r0, [r1] - cmp r0, r5 - beq _080086AC - lsls r0, r2, 2 - adds r0, r4 - ldrh r0, [r0] - cmp r0, r3 - bne _080086AC - ldrh r0, [r1] - b _080086B8 - .pool -_080086AC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _08008686 - ldr r0, =0x0000ffff -_080086B8: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end GetTagByObjectTileRangeStart - - thumb_func_start AllocSpriteTileRange -@ void AllocSpriteTileRange(u16 tag, u16 start, u16 count) -AllocSpriteTileRange: @ 80086C4 - 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, =0x0000ffff - bl IndexOfObjectTilesTag - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gUnknown_030009F0 - lsls r1, r0, 1 - adds r1, r2 - strh r4, [r1] - ldr r1, =gUnknown_03000A70 - 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 - .pool - thumb_func_end AllocSpriteTileRange - - thumb_func_start ResetObjectPaletteAllocator -@ void ResetObjectPaletteAllocator() -ResetObjectPaletteAllocator: @ 800870C - push {r4,lr} - ldr r1, =gUnknown_0300301C - movs r0, 0 - strb r0, [r1] - movs r2, 0 - ldr r4, =gUnknown_03000CF0 - ldr r0, =0x0000ffff - adds r3, r0, 0 -_0800871C: - 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 _0800871C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ResetObjectPaletteAllocator - - thumb_func_start LoadTaggedObjectPalette -@ u8 LoadTaggedObjectPalette(struct TaggedObjectPalette *palette) -LoadTaggedObjectPalette: @ 8008744 - 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 _0800875A - adds r0, r4, 0 - b _0800878A -_0800875A: - ldr r0, =0x0000ffff - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xFF - beq _08008788 - ldr r1, =gUnknown_03000CF0 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r5, 0x4] - strh r1, [r0] - ldr r0, [r5] - lsls r1, r4, 4 - bl LoadObjectPalette - adds r0, r4, 0 - b _0800878A - .pool -_08008788: - movs r0, 0xFF -_0800878A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end LoadTaggedObjectPalette - - thumb_func_start LoadTaggedObjectPalettes -@ void LoadTaggedObjectPalettes(struct TaggedObjectPalette *palettes) -LoadTaggedObjectPalettes: @ 8008790 - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - b _0800879E -_08008798: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_0800879E: - lsls r0, r4, 3 - adds r1, r0, r5 - ldr r0, [r1] - cmp r0, 0 - beq _080087B6 - adds r0, r1, 0 - bl LoadTaggedObjectPalette - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _08008798 -_080087B6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end LoadTaggedObjectPalettes - - thumb_func_start LoadObjectPalette -@ void LoadObjectPalette(void *src, u16 destOffset) -LoadObjectPalette: @ 80087BC - 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 LoadObjectPalette - - thumb_func_start AllocObjectPalette -@ u8 AllocObjectPalette(u16 tag) -AllocObjectPalette: @ 80087D4 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x0000ffff - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - beq _080087FC - ldr r1, =gUnknown_03000CF0 - lsls r0, r2, 1 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - b _080087FE - .pool -_080087FC: - movs r0, 0xFF -_080087FE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end AllocObjectPalette - - thumb_func_start IndexOfSpritePaletteTag -@ u8 IndexOfSpritePaletteTag(u16 tag) -IndexOfSpritePaletteTag: @ 8008804 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gUnknown_0300301C - ldrb r1, [r0] - cmp r1, 0xF - bhi _08008836 - ldr r3, =gUnknown_03000CF0 -_08008814: - lsls r0, r1, 1 - adds r0, r3 - ldrh r0, [r0] - cmp r0, r2 - bne _0800882C - adds r0, r1, 0 - b _08008838 - .pool -_0800882C: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _08008814 -_08008836: - movs r0, 0xFF -_08008838: - pop {r1} - bx r1 - thumb_func_end IndexOfSpritePaletteTag - - thumb_func_start GetObjectPaletteTagBySlot -@ u16 GetObjectPaletteTagBySlot(u8 paletteSlot) -GetObjectPaletteTagBySlot: @ 800883C - lsls r0, 24 - ldr r1, =gUnknown_03000CF0 - lsrs r0, 23 - adds r0, r1 - ldrh r0, [r0] - bx lr - .pool - thumb_func_end GetObjectPaletteTagBySlot - - thumb_func_start FreeSpritePaletteByTag -@ void FreeSpritePaletteByTag(int tag) -FreeSpritePaletteByTag: @ 800884C - push {lr} - lsls r0, 16 - lsrs r0, 16 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - beq _08008868 - ldr r0, =gUnknown_03000CF0 - lsls r1, 1 - adds r1, r0 - ldr r0, =0x0000ffff - strh r0, [r1] -_08008868: - pop {r0} - bx r0 - .pool - thumb_func_end FreeSpritePaletteByTag - - thumb_func_start SetSpriteOamTables_NoPriorityFromTable -@ void SetSpriteOamTables_NoPriorityFromTable(struct obj *object, u32 spriteOamTables) -SetSpriteOamTables_NoPriorityFromTable: @ 8008874 - str r1, [r0, 0x18] - adds r0, 0x42 - movs r1, 0x40 - strb r1, [r0] - bx lr - thumb_func_end SetSpriteOamTables_NoPriorityFromTable - - thumb_func_start AddSpriteToOamBuffer -@ u8 AddSpriteToOamBuffer(struct obj *obj, u8 *spriteIndex) -AddSpriteToOamBuffer: @ 8008880 - push {r4,lr} - adds r4, r0, 0 - adds r3, r1, 0 - ldr r1, =gOamLimit - ldrb r0, [r3] - ldrb r1, [r1] - cmp r0, r1 - bcc _08008898 - movs r0, 0x1 - b _080088E0 - .pool -_08008898: - ldr r0, [r4, 0x18] - cmp r0, 0 - beq _080088AC - adds r0, r4, 0 - adds r0, 0x42 - ldrb r1, [r0] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - bne _080088CC -_080088AC: - ldr r0, =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 _080088E0 - .pool -_080088CC: - ldrb r1, [r3] - lsls r1, 3 - ldr r0, =gUnknown_030022F8 - adds r1, r0 - adds r0, r4, 0 - adds r2, r3, 0 - bl AddSubspritesToOamBuffer - lsls r0, 24 - lsrs r0, 24 -_080088E0: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end AddSpriteToOamBuffer - - thumb_func_start AddSubspritesToOamBuffer -@ u8 AddSubspritesToOamBuffer(struct obj *object, struct sprite *sprite, u8 *spriteIndex) -AddSubspritesToOamBuffer: @ 80088EC - 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, =gOamLimit - ldrb r1, [r2] - ldrb r0, [r0] - cmp r1, r0 - bcc _08008910 -_08008908: - movs r0, 0x1 - b _08008AE6 - .pool -_08008910: - 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 _0800892C - ldr r0, [r7, 0x4] - cmp r0, 0 - bne _08008942 -_0800892C: - 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 _08008AE4 -_08008942: - 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 _080089A0 - b _08008AE4 -_080089A0: - lsls r0, r2, 16 - asrs r0, 16 - str r0, [sp, 0x14] -_080089A6: - mov r2, r8 - ldrb r0, [r2] - ldr r1, =gOamLimit - ldrb r1, [r1] - cmp r0, r1 - bcs _08008908 - 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 _080089FC - 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, =gUnknown_082EC754 - 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 -_080089FC: - mov r1, r10 - cmp r1, 0 - beq _08008A2E - 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, =gUnknown_082EC754 - 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 -_08008A2E: - 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, =0x000001ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x2] - ldr r0, =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, =0x000003ff - adds r0, r2, 0 - ands r1, r0 - ldrh r2, [r3, 0x4] - ldr r0, =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 _08008ACA - 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] -_08008ACA: - 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 _08008AE4 - b _080089A6 -_08008AE4: - movs r0, 0 -_08008AE6: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end AddSubspritesToOamBuffer - - .align 2, 0 @ Don't pad with nop. |