summaryrefslogtreecommitdiff
path: root/arm9/asm/GX_g2.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/asm/GX_g2.s')
-rw-r--r--arm9/asm/GX_g2.s121
1 files changed, 121 insertions, 0 deletions
diff --git a/arm9/asm/GX_g2.s b/arm9/asm/GX_g2.s
new file mode 100644
index 00000000..7ed2f124
--- /dev/null
+++ b/arm9/asm/GX_g2.s
@@ -0,0 +1,121 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+
+ .text
+
+ arm_func_start G2x_ChangeBlendBrightness_
+G2x_ChangeBlendBrightness_: ; 0x020C7418
+ cmp r1, #0x0
+ ldrh r3, [r0, #0x0]
+ bge _020C7444
+ and r2, r3, #0xc0
+ cmp r2, #0x80
+ biceq r2, r3, #0xc0
+ orreq r2, r2, #0xc0
+ streqh r2, [r0, #0x0]
+ rsb r1, r1, #0x0
+ strh r1, [r0, #0x4]
+ bx lr
+_020C7444:
+ and r2, r3, #0xc0
+ cmp r2, #0xc0
+ biceq r2, r3, #0xc0
+ orreq r2, r2, #0x80
+ streqh r2, [r0, #0x0]
+ strh r1, [r0, #0x4]
+ bx lr
+
+ arm_func_start G2x_SetBlendBrightnessExt_
+G2x_SetBlendBrightnessExt_: ; 0x020C7460
+ stmdb sp!, {lr}
+ sub sp, sp, #0x4
+ ldr lr, [sp, #0x8]
+ ldr r12, [sp, #0xc]
+ orr r3, r3, lr, lsl #0x8
+ cmp r12, #0x0
+ orrge r1, r1, #0x80
+ strh r3, [r0, #0x2]
+ orrge r1, r1, r2, lsl #0x8
+ strgeh r1, [r0, #0x0]
+ strgeh r12, [r0, #0x4]
+ addge sp, sp, #0x4
+ ldmgeia sp!, {lr}
+ bxge lr
+ orr r1, r1, #0xc0
+ orr r1, r1, r2, lsl #0x8
+ strh r1, [r0, #0x0]
+ rsb r1, r12, #0x0
+ strh r1, [r0, #0x4]
+ add sp, sp, #0x4
+ ldmia sp!, {lr}
+ bx lr
+
+ arm_func_start G2x_SetBlendBrightness_
+G2x_SetBlendBrightness_: ; 0x020C74B8
+ cmp r2, #0x0
+ orrlt r1, r1, #0xc0
+ strlth r1, [r0, #0x0]
+ rsblt r1, r2, #0x0
+ strlth r1, [r0, #0x4]
+ orrge r1, r1, #0x80
+ strgeh r1, [r0, #0x0]
+ strgeh r2, [r0, #0x4]
+ bx lr
+
+ arm_func_start G2x_SetBlendAlpha_
+G2x_SetBlendAlpha_: ; 0x020C74DC
+ ldr r12, [sp, #0x0]
+ orr r1, r1, #0x40
+ orr r2, r1, r2, lsl #0x8
+ orr r1, r3, r12, lsl #0x8
+ orr r1, r2, r1, lsl #0x10
+ str r1, [r0, #0x0]
+ bx lr
+
+ arm_func_start G2x_SetBGyAffine_
+G2x_SetBGyAffine_: ; 0x020C74F8
+ stmdb sp!, {r4-r6,lr}
+ ldr r5, [r1, #0x0]
+ ldr r4, [r1, #0x4]
+ mov r12, r5, lsl #0xc
+ mov lr, r4, lsl #0xc
+ mov r5, r12, asr #0x10
+ mov r4, lr, asr #0x10
+ mov r12, r5, lsl #0x10
+ mov lr, r4, lsl #0x10
+ mov r5, r12, lsr #0x10
+ mov r4, lr, lsr #0x10
+ orr r4, r5, r4, lsl #0x10
+ str r4, [r0, #0x0]
+ ldr r5, [r1, #0x8]
+ ldr r4, [r1, #0xc]
+ mov r12, r5, lsl #0xc
+ mov lr, r4, lsl #0xc
+ mov r5, r12, asr #0x10
+ mov r4, lr, asr #0x10
+ mov r12, r5, lsl #0x10
+ mov lr, r4, lsl #0x10
+ ldr r4, [sp, #0x14]
+ ldr r6, [sp, #0x10]
+ mov r12, r12, lsr #0x10
+ mov r5, lr, lsr #0x10
+ orr r5, r12, r5, lsl #0x10
+ str r5, [r0, #0x4]
+ ldr r12, [r1, #0x4]
+ sub r5, r4, r3
+ ldr r4, [r1, #0xc]
+ mul lr, r12, r5
+ mul r5, r4, r5
+ ldr r12, [r1, #0x0]
+ sub r6, r6, r2
+ ldr r4, [r1, #0x8]
+ mla r1, r12, r6, lr
+ mla r5, r4, r6, r5
+ add r1, r1, r2, lsl #0xc
+ add r2, r5, r3, lsl #0xc
+ mov r1, r1, asr #0x4
+ str r1, [r0, #0x8]
+ mov r1, r2, asr #0x4
+ str r1, [r0, #0xc]
+ ldmia sp!, {r4-r6,lr}
+ bx lr