diff options
author | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
---|---|---|
committer | sceptillion <33798691+sceptillion@users.noreply.github.com> | 2017-12-16 23:54:22 -0800 |
commit | 670fef77ac4d9116d5fdc28c0da40622919a062b (patch) | |
tree | 61c0e925f059404473826ac775305ba5e2706ab1 /asm/window_8bpp.s |
first commit
Diffstat (limited to 'asm/window_8bpp.s')
-rw-r--r-- | asm/window_8bpp.s | 447 |
1 files changed, 447 insertions, 0 deletions
diff --git a/asm/window_8bpp.s b/asm/window_8bpp.s new file mode 100644 index 000000000..7ae02dc9e --- /dev/null +++ b/asm/window_8bpp.s @@ -0,0 +1,447 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start nullsub_7 +nullsub_7: @ 8005034 + bx lr + thumb_func_end nullsub_7 + + thumb_func_start sub_8005038 +sub_8005038: @ 8005038 + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r9, r0 + movs r6, 0 + ldr r1, _08005100 @ =gUnknown_20204B4 + ldrb r0, [r1] + cmp r0, 0xFF + beq _08005066 +_0800504E: + adds r0, r6, 0x1 + lsls r0, 16 + lsrs r6, r0, 16 + cmp r6, 0x1F + bhi _08005066 + lsls r0, r6, 1 + adds r0, r6 + lsls r0, 2 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0xFF + bne _0800504E +_08005066: + cmp r6, 0x20 + beq _080050FA + mov r0, r9 + ldrb r7, [r0] + ldr r1, _08005104 @ =gUnknown_3003E40 + mov r10, r1 + lsls r2, r7, 2 + mov r8, r2 + mov r0, r8 + add r0, r10 + ldr r0, [r0] + cmp r0, 0 + bne _080050C2 + adds r0, r7, 0 + movs r1, 0x8 + bl sub_8001AA8 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _08005108 @ =0x0000ffff + cmp r5, r0 + beq _080050C2 + adds r0, r5, 0 + bl sub_8002B9C + adds r4, r0, 0 + cmp r4, 0 + beq _080050FA + movs r1, 0 + mov r12, r10 + mov r3, r8 + cmp r1, r5 + bge _080050B4 + movs r2, 0 +_080050AA: + adds r0, r4, r1 + strb r2, [r0] + adds r1, 0x1 + cmp r1, r5 + blt _080050AA +_080050B4: + mov r1, r12 + adds r0, r3, r1 + str r4, [r0] + adds r0, r7, 0 + adds r1, r4, 0 + bl sub_8001FA0 +_080050C2: + mov r2, r9 + ldrb r1, [r2, 0x3] + ldrb r0, [r2, 0x4] + muls r0, r1 + lsls r0, 22 + lsrs r0, 16 + bl sub_8002B9C + adds r4, r0, 0 + cmp r4, 0 + bne _08005110 + adds r0, r7, 0 + bl sub_8005350 + lsls r0, 24 + cmp r0, 0 + bne _080050FA + ldr r0, _08005104 @ =gUnknown_3003E40 + lsls r1, r7, 2 + adds r5, r1, r0 + ldr r1, [r5] + ldr r0, _0800510C @ =nullsub_7 + cmp r1, r0 + beq _080050FA + adds r0, r1, 0 + bl sub_8002BC4 + str r4, [r5] +_080050FA: + movs r0, 0xFF + b _0800512E + .align 2, 0 +_08005100: .4byte gUnknown_20204B4 +_08005104: .4byte gUnknown_3003E40 +_08005108: .4byte 0x0000ffff +_0800510C: .4byte nullsub_7 +_08005110: + ldr r1, _0800513C @ =gUnknown_20204B4 + lsls r2, r6, 1 + adds r2, r6 + lsls r2, 2 + adds r0, r1, 0 + adds r0, 0x8 + adds r0, r2, r0 + str r4, [r0] + adds r2, r1 + mov r3, r9 + ldr r0, [r3] + ldr r1, [r3, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + adds r0, r6, 0 +_0800512E: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0800513C: .4byte gUnknown_20204B4 + thumb_func_end sub_8005038 + + thumb_func_start sub_8005140 +sub_8005140: @ 8005140 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r5, r1, 24 + ldr r6, _0800517C @ =gUnknown_20204B4 + lsls r1, r0, 1 + adds r1, r0 + lsls r4, r1, 2 + adds r0, r4, r6 + ldrb r1, [r0, 0x3] + ldrb r0, [r0, 0x4] + muls r0, r1 + lsls r0, 22 + lsrs r3, r0, 16 + movs r2, 0 + cmp r2, r3 + bge _08005176 + adds r0, r6, 0 + adds r0, 0x8 + adds r1, r4, r0 +_0800516A: + ldr r0, [r1] + adds r0, r2 + strb r5, [r0] + adds r2, 0x1 + cmp r2, r3 + blt _0800516A +_08005176: + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0800517C: .4byte gUnknown_20204B4 + thumb_func_end sub_8005140 + + thumb_func_start sub_8005180 +sub_8005180: @ 8005180 + push {r4-r6,lr} + mov r6, r9 + mov r5, r8 + push {r5,r6} + sub sp, 0x10 + mov r9, r3 + ldr r3, [sp, 0x28] + ldr r4, [sp, 0x2C] + mov r8, r4 + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r1, 24 + lsls r2, 16 + lsrs r2, 16 + mov r4, r9 + lsls r4, 16 + lsrs r4, 16 + mov r9, r4 + lsls r3, 16 + lsrs r3, 16 + mov r4, r8 + lsls r4, 16 + lsrs r4, 16 + mov r8, r4 + ldr r5, _08005200 @ =gUnknown_20204B4 + lsls r4, r0, 1 + adds r4, r0 + lsls r4, 2 + adds r0, r5, 0 + adds r0, 0x8 + adds r0, r4, r0 + ldr r0, [r0] + str r0, [sp, 0x8] + adds r4, r5 + ldrb r0, [r4, 0x3] + lsls r0, 3 + ldr r6, _08005204 @ =0xffff0000 + ldr r5, [sp, 0xC] + ands r5, r6 + orrs r5, r0 + str r5, [sp, 0xC] + ldrb r4, [r4, 0x4] + lsls r4, 19 + ldr r0, _08005208 @ =0x0000ffff + ands r0, r5 + orrs r0, r4 + str r0, [sp, 0xC] + mov r0, r8 + str r0, [sp] + str r1, [sp, 0x4] + add r0, sp, 0x8 + adds r1, r2, 0 + mov r2, r9 + bl sub_8004F90 + add sp, 0x10 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08005200: .4byte gUnknown_20204B4 +_08005204: .4byte 0xffff0000 +_08005208: .4byte 0x0000ffff + thumb_func_end sub_8005180 + + thumb_func_start sub_800520C +sub_800520C: @ 800520C + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + ldr r4, [sp, 0x4C] + ldr r5, [sp, 0x50] + ldr r6, [sp, 0x54] + mov r8, r6 + ldr r7, [sp, 0x58] + mov r9, r7 + ldr r6, [sp, 0x5C] + mov r10, r6 + ldr r7, [sp, 0x60] + mov r12, r7 + ldr r6, [sp, 0x64] + lsls r0, 24 + lsrs r0, 24 + lsls r2, 16 + lsrs r2, 16 + lsls r3, 16 + lsrs r3, 16 + lsls r4, 16 + mov r7, r8 + lsls r7, 16 + lsrs r7, 16 + mov r8, r7 + mov r7, r9 + lsls r7, 16 + lsrs r7, 16 + mov r9, r7 + mov r7, r10 + lsls r7, 16 + lsrs r7, 16 + mov r10, r7 + mov r7, r12 + lsls r7, 16 + lsrs r7, 16 + mov r12, r7 + lsls r6, 24 + lsrs r6, 24 + str r6, [sp, 0x28] + str r1, [sp, 0x18] + lsls r5, 16 + ldr r6, _080052CC @ =0x0000ffff + lsrs r4, 16 + orrs r4, r5 + str r4, [sp, 0x1C] + ldr r1, _080052D0 @ =gUnknown_20204B4 + lsls r5, r0, 1 + adds r5, r0 + lsls r5, 2 + adds r0, r1, 0 + adds r0, 0x8 + adds r0, r5, r0 + ldr r0, [r0] + str r0, [sp, 0x20] + adds r5, r1 + ldrb r0, [r5, 0x3] + lsls r0, 3 + add r1, sp, 0x20 + ldr r4, [r1, 0x4] + ldr r7, _080052D4 @ =0xffff0000 + ands r4, r7 + orrs r4, r0 + str r4, [r1, 0x4] + ldrb r0, [r5, 0x4] + lsls r0, 19 + ands r6, r4 + orrs r6, r0 + str r6, [r1, 0x4] + mov r0, r8 + str r0, [sp] + mov r6, r9 + str r6, [sp, 0x4] + mov r7, r10 + str r7, [sp, 0x8] + mov r0, r12 + str r0, [sp, 0xC] + movs r0, 0 + str r0, [sp, 0x10] + ldr r6, [sp, 0x28] + str r6, [sp, 0x14] + add r0, sp, 0x18 + bl sub_8004D40 + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080052CC: .4byte 0x0000ffff +_080052D0: .4byte gUnknown_20204B4 +_080052D4: .4byte 0xffff0000 + thumb_func_end sub_800520C + + thumb_func_start sub_80052D8 +sub_80052D8: @ 80052D8 + push {r4-r6,lr} + lsls r0, 24 + lsrs r0, 24 + lsls r1, 24 + lsrs r2, r1, 24 + adds r5, r2, 0 + ldr r6, _0800530C @ =gUnknown_2020634 + lsls r1, r0, 1 + adds r1, r0 + lsls r1, 2 + ldr r0, _08005310 @ =gUnknown_20204B4 + adds r3, r1, r0 + str r3, [r6] + ldr r4, _08005314 @ =gUnknown_2020638 + ldrb r1, [r3, 0x3] + ldrb r0, [r3, 0x4] + muls r0, r1 + lsls r0, 6 + strh r0, [r4] + cmp r2, 0x2 + beq _08005326 + cmp r2, 0x2 + bgt _08005318 + cmp r2, 0x1 + beq _0800531E + b _08005348 + .align 2, 0 +_0800530C: .4byte gUnknown_2020634 +_08005310: .4byte gUnknown_20204B4 +_08005314: .4byte gUnknown_2020638 +_08005318: + cmp r5, 0x3 + beq _08005334 + b _08005348 +_0800531E: + ldrb r0, [r3] + bl sub_80020BC + b _08005348 +_08005326: + ldrb r0, [r3] + ldr r1, [r3, 0x8] + ldrh r2, [r4] + ldrh r3, [r3, 0x6] + bl sub_80017D0 + b _08005348 +_08005334: + ldrb r0, [r3] + ldr r1, [r3, 0x8] + ldrh r2, [r4] + ldrh r3, [r3, 0x6] + bl sub_80017D0 + ldr r0, [r6] + ldrb r0, [r0] + bl sub_80020BC +_08005348: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80052D8 + + thumb_func_start sub_8005350 +sub_8005350: @ 8005350 + push {r4,lr} + lsls r0, 24 + lsrs r4, r0, 24 + movs r3, 0 + ldr r2, _08005378 @ =gUnknown_20204B4 + movs r1, 0x1F +_0800535C: + ldrb r0, [r2] + cmp r0, r4 + bne _08005368 + adds r0, r3, 0x1 + lsls r0, 24 + lsrs r3, r0, 24 +_08005368: + adds r2, 0xC + subs r1, 0x1 + cmp r1, 0 + bge _0800535C + adds r0, r3, 0 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_08005378: .4byte gUnknown_20204B4 + thumb_func_end sub_8005350 + + .align 2, 0 @ Don't pad with nop. |