diff options
author | who-knows-who <j.williams.8@warwick.ac.uk> | 2018-08-01 22:25:49 +0100 |
---|---|---|
committer | who-knows-who <j.williams.8@warwick.ac.uk> | 2018-08-01 22:25:49 +0100 |
commit | 3abc9e3a7e7eb83e42c1cbcb5a64052b1e693466 (patch) | |
tree | be7626e78ecbfd722bacb403af48b93812e0e659 | |
parent | 574454555454ecbe0b508c0cf90bea3853ed8d5b (diff) |
start
-rw-r--r-- | asm/flying.s | 846 | ||||
-rw-r--r-- | src/battle/anim/flying.c | 23 |
2 files changed, 20 insertions, 849 deletions
diff --git a/asm/flying.s b/asm/flying.s index 29192b7b3..aa9833f7e 100644 --- a/asm/flying.s +++ b/asm/flying.s @@ -8,852 +8,6 @@ @ flying - thumb_func_start sub_80DA6F0 -sub_80DA6F0: @ 80DA6F0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - movs r6, 0 - movs r0, 0x2E - adds r0, r5 - mov r12, r0 - ldrb r2, [r0] - movs r7, 0x1 - movs r1, 0x1 - mov r9, r1 - mov r0, r9 - ands r0, r2 - cmp r0, 0 - beq _080DA730 - mov r3, r12 - ldrb r0, [r3, 0x1] - adds r1, r0, 0 - adds r1, 0xFF - strb r1, [r3, 0x1] - lsls r0, 24 - cmp r0, 0 - beq _080DA724 - b _080DAD1A -_080DA724: - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAD1A -_080DA730: - mov r4, r12 - ldrh r0, [r4, 0x2] - lsrs r4, r0, 6 - mov r8, r0 - cmp r4, 0x1 - bne _080DA73E - b _080DA896 -_080DA73E: - cmp r4, 0x1 - bgt _080DA748 - cmp r4, 0 - beq _080DA756 - b _080DAC52 -_080DA748: - cmp r4, 0x2 - bne _080DA74E - b _080DA9C8 -_080DA74E: - cmp r4, 0x3 - bne _080DA754 - b _080DAB0E -_080DA754: - b _080DAC52 -_080DA756: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA76C - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r1, r12 - strb r0, [r1] - strb r6, [r1, 0x1] - b _080DA88A -_080DA76C: - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA790 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r2, r12 - strb r1, [r2] - strb r6, [r2, 0x1] - b _080DA88A -_080DA790: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA88A - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA87A - ldr r0, _080DA80C @ =gMain - ldr r1, _080DA810 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA82E - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA814 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA868 - .align 2, 0 -_080DA80C: .4byte gMain -_080DA810: .4byte 0x0000043d -_080DA814: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA866 -_080DA82E: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA85C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DA87A -_080DA85C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA866: - mov r3, r12 -_080DA868: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DA87A: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DA88A: - mov r2, r12 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - strb r0, [r2] - b _080DAC52 -_080DA896: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DA8AC - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DA9BC -_080DA8AC: - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DA8BE - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DA9BC -_080DA8BE: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DA9BC - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DA9AC - ldr r0, _080DA940 @ =gMain - ldr r1, _080DA944 @ =0x0000043d - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DA962 - mov r2, r12 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA948 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r3, r12 - b _080DA978 - .align 2, 0 -_080DA940: .4byte gMain -_080DA944: .4byte 0x0000043d -_080DA948: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DA996 -_080DA962: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DA98C - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] -_080DA978: - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DA9AC -_080DA98C: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DA996: - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] -_080DA9AC: - mov r3, r12 - ldrb r1, [r3] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - ldrh r4, [r3, 0x2] - mov r8, r4 -_080DA9BC: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x10 - b _080DAC4C -_080DA9C8: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x3 - bne _080DA9DE - movs r0, 0x8 - orrs r0, r2 - orrs r0, r7 - mov r3, r12 - strb r0, [r3] - strb r6, [r3, 0x1] - b _080DAAFE -_080DA9DE: - lsrs r0, r1, 28 - cmp r0, 0x1 - bne _080DA9F0 - adds r0, r2, 0 - orrs r0, r7 - mov r4, r12 - strb r0, [r4] - strb r6, [r4, 0x1] - b _080DAAFE -_080DA9F0: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - bne _080DA9FA - b _080DAAFE -_080DA9FA: - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r6, 0x1 - eors r1, r6 - ands r1, r7 - movs r0, 0x2 - negs r0, r0 - mov r8, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAAEC - ldr r0, _080DAA6C @ =gMain - ldr r3, _080DAA70 @ =0x0000043d - adds r0, r3 - ldrb r0, [r0] - ands r4, r0 - cmp r4, 0 - beq _080DAAA4 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAA74 - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAAD8 - .align 2, 0 -_080DAA6C: .4byte gMain -_080DAA70: .4byte 0x0000043d -_080DAA74: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAAEC -_080DAAA4: - mov r3, r12 - ldrb r1, [r3, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAACE - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] - b _080DAAEC -_080DAACE: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAAD8: - mov r4, r12 - ldrb r2, [r4, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r6 - ands r0, r7 - mov r1, r8 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xE] -_080DAAEC: - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r2, [r1, 0x2] - mov r8, r2 -_080DAAFE: - mov r3, r12 - ldrb r0, [r3] - movs r1, 0xF - ands r1, r0 - movs r0, 0x20 - orrs r1, r0 - strb r1, [r3] - b _080DAC52 -_080DAB0E: - lsls r1, r2, 24 - lsrs r0, r1, 28 - cmp r0, 0x2 - bne _080DAB20 - movs r0, 0x8 - orrs r0, r2 - mov r4, r12 - strb r0, [r4] - b _080DAC42 -_080DAB20: - lsrs r0, r1, 28 - cmp r0, 0 - bne _080DAB44 - lsls r0, r2, 30 - lsrs r0, 31 - movs r1, 0x1 - eors r0, r1 - ands r0, r7 - lsls r0, 1 - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - orrs r1, r7 - mov r0, r12 - strb r1, [r0] - strb r6, [r0, 0x1] - b _080DAC42 -_080DAB44: - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _080DAC42 - adds r3, r5, 0 - adds r3, 0x3F - ldrb r2, [r3] - lsls r1, r2, 31 - lsrs r1, 31 - movs r4, 0x1 - eors r1, r4 - ands r1, r7 - movs r6, 0x2 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - lsls r0, 31 - lsrs r0, 31 - adds r1, r5, 0 - adds r1, 0x2A - strb r0, [r1] - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x11 - negs r1, r1 - ands r0, r1 - strb r0, [r3] - mov r2, r12 - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080DAC32 - ldr r0, _080DABC4 @ =gMain - ldr r3, _080DABC8 @ =0x0000043d - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080DABE6 - ldrb r1, [r2, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DABCC - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - subs r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - mov r0, r12 - ldrb r2, [r0, 0xE] - b _080DAC00 - .align 2, 0 -_080DABC4: .4byte gMain -_080DABC8: .4byte 0x0000043d -_080DABCC: - ldrb r2, [r5, 0x5] - lsls r1, r2, 28 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x3 - ands r1, r0 - lsls r1, 2 - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r5, 0x5] - b _080DAC1E -_080DABE6: - mov r0, r12 - ldrb r1, [r0, 0xE] - mov r0, r9 - ands r0, r1 - cmp r0, 0 - bne _080DAC14 - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0xC - strb r0, [r1] - mov r1, r12 - ldrb r2, [r1, 0xE] -_080DAC00: - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - mov r2, r12 - strb r1, [r2, 0xE] - b _080DAC32 -_080DAC14: - adds r1, r5, 0 - adds r1, 0x43 - ldrb r0, [r1] - adds r0, 0xC - strb r0, [r1] -_080DAC1E: - mov r3, r12 - ldrb r2, [r3, 0xE] - lsls r0, r2, 31 - lsrs r0, 31 - eors r0, r4 - ands r0, r7 - adds r1, r6, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r3, 0xE] -_080DAC32: - mov r4, r12 - ldrb r1, [r4] - movs r0, 0x9 - negs r0, r0 - ands r0, r1 - strb r0, [r4] - ldrh r0, [r4, 0x2] - mov r8, r0 -_080DAC42: - mov r1, r12 - ldrb r0, [r1] - movs r1, 0xF - ands r1, r0 - movs r0, 0x30 -_080DAC4C: - orrs r1, r0 - mov r2, r12 - strb r1, [r2] -_080DAC52: - mov r3, r12 - ldrb r1, [r3] - lsls r1, 30 - lsrs r1, 31 - mov r0, r12 - adds r0, 0xC - adds r0, r1 - ldrb r1, [r0] - ldr r3, _080DACE0 @ =gSineTable - mov r4, r8 - lsls r0, r4, 1 - adds r0, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r0, r1 - asrs r0, 8 - strh r0, [r5, 0x24] - ldrb r2, [r5, 0x3] - lsls r2, 26 - lsrs r2, 27 - movs r4, 0x24 - ldrsh r0, [r5, r4] - negs r0, r0 - asrs r0, 1 - mov r1, r12 - ldrb r1, [r1, 0xA] - adds r0, r1 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 1 - adds r1, r3 - ldrh r6, [r1] - ldr r1, _080DACE4 @ =gOamMatrices - lsls r2, 3 - adds r2, r1 - adds r0, 0x40 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x6] - strh r0, [r2] - strh r6, [r2, 0x2] - lsls r0, r6, 16 - asrs r0, 16 - negs r0, r0 - strh r0, [r2, 0x4] - mov r2, r12 - ldrh r0, [r2, 0x6] - ldrh r3, [r2, 0x8] - adds r0, r3 - strh r0, [r2, 0x8] - lsls r0, 16 - lsrs r0, 24 - strh r0, [r5, 0x22] - movs r4, 0x4 - ldrsh r0, [r2, r4] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - beq _080DACE8 - ldrh r0, [r2, 0x4] - subs r1, 0x1 - ands r1, r0 - ldrh r0, [r2, 0x2] - subs r0, r1 - movs r1, 0xFF - ands r0, r1 - strh r0, [r2, 0x2] - b _080DACFE - .align 2, 0 -_080DACE0: .4byte gSineTable -_080DACE4: .4byte gOamMatrices -_080DACE8: - mov r1, r12 - ldrh r0, [r1, 0x4] - ldr r1, _080DAD28 @ =0x00007fff - ands r1, r0 - mov r2, r12 - ldrh r2, [r2, 0x2] - adds r1, r2 - movs r0, 0xFF - ands r1, r0 - mov r3, r12 - strh r1, [r3, 0x2] -_080DACFE: - movs r4, 0x22 - ldrsh r1, [r5, r4] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - mov r3, r12 - ldrh r0, [r3, 0xE] - lsrs r0, 1 - cmp r1, r0 - blt _080DAD1A - movs r0, 0 - strh r0, [r5, 0x2E] - ldr r0, _080DAD2C @ =sub_80DA48C - str r0, [r5, 0x1C] -_080DAD1A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAD28: .4byte 0x00007fff -_080DAD2C: .4byte sub_80DA48C - thumb_func_end sub_80DA6F0 - thumb_func_start sub_80DAD30 sub_80DAD30: @ 80DAD30 push {r4,r5,lr} diff --git a/src/battle/anim/flying.c b/src/battle/anim/flying.c index ca4b61771..957975123 100644 --- a/src/battle/anim/flying.c +++ b/src/battle/anim/flying.c @@ -36,8 +36,6 @@ void sub_80DB5E4(struct Sprite *sprite); void sub_80DA0DC(u8 taskId); -u32 sub_80DA6F0(u32 a1); - const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA380 = { .tileTag = 10009, @@ -699,7 +697,7 @@ void sub_80DA4D8(struct Sprite *sprite ) { if ((u16)(arg2byte - 64) <= 0x7f){ if (gMain.inBattle) { - sprite->oam.priority = sub_8079ED4(bank) + 1; + sprite->oam.priority = sub_8079ED4(bank) + 1u; } else { sprite->oam.priority = sub_8079ED4(bank); } @@ -753,3 +751,22 @@ void sub_80DA4D8(struct Sprite *sprite ) { sprite->callback = (SpriteCallback) sub_80DA6F0; } + +void sub_80DA6F0(struct Sprite *sprite) { + + int r6 = 0; + s16* data = sprite->data; + u8 dataByte; + + dataByte = (u8)data[0]; + r7 = 1; + r1 = 1; + r9 = r1; + + if (dataByte & 1) { + r3 = data; + dataByte = data[1]; + data[1] = dataByte + 0xff; + } + +}; |