summaryrefslogtreecommitdiff
path: root/arm9/modules/32/asm/module_32.s
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules/32/asm/module_32.s')
-rw-r--r--arm9/modules/32/asm/module_32.s576
1 files changed, 576 insertions, 0 deletions
diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s
new file mode 100644
index 00000000..135a9b15
--- /dev/null
+++ b/arm9/modules/32/asm/module_32.s
@@ -0,0 +1,576 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD32_02254840
+MOD32_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD32_02254854
+ ldr r1, _02254850 ; =MOD32_0225495C
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD32_02254854
+_02254850: .word MOD32_0225495C
+ thumb_func_end MOD32_02254840
+
+ thumb_func_start MOD32_02254854
+MOD32_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x1c
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254892
+ ldr r3, [sp]
+ add r1, r6, #0
+ add r2, r7, #0
+ bl MOD32_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD32_02254920
+ add r1, r4, #0
+ mov r2, #1
+ bl FUN_0200CA44
+ cmp r0, #0
+ beq _0225488C
+ str r4, [r5]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225488C:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254892:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254898: .word MOD32_02254920
+ thumb_func_end MOD32_02254854
+
+ thumb_func_start MOD32_0225489C
+MOD32_0225489C: ; 0x0225489C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ add r1, sp, #4
+ add r6, r2, #0
+ bl PM_GetBackLight
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548B8
+ mov r0, #1
+ b _022548BA
+_022548B8:
+ mov r0, #0
+_022548BA:
+ str r0, [r5, #4]
+ add r0, r5, #0
+ add r0, #8
+ add r1, r5, #4
+ add r2, r6, #0
+ bl MOD32_02254A54
+ cmp r0, #0
+ beq _022548F2
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022548F8 ; =0x02254C54
+ ldr r2, _022548FC ; =MOD32_02254918
+ mov r1, #2
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [r5, #0x14]
+ add sp, #8
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022548F2:
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022548F8: .word 0x02254C54
+_022548FC: .word MOD32_02254918
+ thumb_func_end MOD32_0225489C
+
+ thumb_func_start MOD32_02254900
+MOD32_02254900: ; 0x02254900
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD20_02254198
+ ldr r0, [r4, #8]
+ bl MOD32_02254A90
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD32_02254900
+
+ thumb_func_start MOD32_02254918
+MOD32_02254918: ; 0x02254918
+ str r0, [r3, #0x18]
+ str r1, [r3, #0x14]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD32_02254918
+
+ thumb_func_start MOD32_02254920
+MOD32_02254920: ; 0x02254920
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254956
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254958 ; =0x02254C5C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254956
+ add r0, r4, #0
+ bl MOD32_02254900
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254956:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254958: .word 0x02254C5C
+ thumb_func_end MOD32_02254920
+
+ thumb_func_start MOD32_0225495C
+MOD32_0225495C: ; 0x0225495C
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD32_0225495C
+
+ thumb_func_start MOD32_02254964
+MOD32_02254964: ; 0x02254964
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _0225496C
+ b _0225496E
+_0225496C:
+ mov r1, #2
+_0225496E:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD32_02254964
+
+ thumb_func_start MOD32_02254978
+MOD32_02254978: ; 0x02254978
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254988
+ cmp r0, #1
+ beq _02254998
+ b _022549B2
+_02254988:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD32_02254B08
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549B2
+_02254998:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD32_02254B2C
+ cmp r0, #0
+ beq _022549B2
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD32_02254964
+_022549B2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254978
+
+ thumb_func_start MOD32_022549B8
+MOD32_022549B8: ; 0x022549B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549CC
+ mov r1, #2
+ bl MOD32_02254964
+ mov r0, #0
+ pop {r4, pc}
+_022549CC:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549D8
+ cmp r0, #1
+ beq _02254A0C
+ b _02254A1C
+_022549D8:
+ ldr r0, [r4, #0x14]
+ cmp r0, #1
+ bne _02254A1C
+ ldr r1, [r4, #0x18]
+ cmp r1, #0
+ bne _022549EA
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022549F4
+_022549EA:
+ cmp r1, #1
+ bne _02254A04
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _02254A04
+_022549F4:
+ ldr r1, [r4, #4]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD32_02254B08
+_02254A04:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A1C
+_02254A0C:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD32_02254B2C
+ cmp r0, #0
+ beq _02254A1C
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254A1C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD32_022549B8
+
+ thumb_func_start MOD32_02254A20
+MOD32_02254A20: ; 0x02254A20
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A30
+ cmp r0, #1
+ beq _02254A40
+ b _02254A4E
+_02254A30:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD32_02254B08
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A4E
+_02254A40:
+ ldr r0, [r4, #8]
+ bl MOD32_02254B38
+ cmp r0, #0
+ beq _02254A4E
+ mov r0, #1
+ pop {r4, pc}
+_02254A4E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254A20
+
+ thumb_func_start MOD32_02254A54
+MOD32_02254A54: ; 0x02254A54
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A8A
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD32_02254A9C
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A8A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254A54
+
+ thumb_func_start MOD32_02254A90
+MOD32_02254A90: ; 0x02254A90
+ push {r3, lr}
+ cmp r0, #0
+ beq _02254A9A
+ bl FUN_02016A18
+_02254A9A:
+ pop {r3, pc}
+ thumb_func_end MOD32_02254A90
+
+ thumb_func_start MOD32_02254A9C
+MOD32_02254A9C: ; 0x02254A9C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x68
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x28
+ mov r1, #0xc
+ mov r2, #0x66
+ mov r3, #0x67
+ bl MOD20_02253FBC
+ add r2, r5, #0
+ ldr r0, [r5, #0x20]
+ ldr r1, _02254AEC ; =0x02254C68
+ add r2, #0x28
+ bl MOD20_02253E74
+ str r0, [r5, #0x24]
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _02254AE6
+ ldr r0, [r5, #0x24]
+ mov r1, #1
+ bl MOD20_02253F28
+_02254AE6:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02254AEC: .word 0x02254C68
+ thumb_func_end MOD32_02254A9C
+
+ thumb_func_start MOD32_02254AF0
+MOD32_02254AF0: ; 0x02254AF0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x24]
+ bl MOD20_02253F14
+ add r4, #0x28
+ add r0, r4, #0
+ bl MOD20_02254014
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254AF0
+
+ thumb_func_start MOD32_02254B08
+MOD32_02254B08: ; 0x02254B08
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, #8
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ ldr r0, _02254B28 ; =0x02254C94
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254B28: .word 0x02254C94
+ thumb_func_end MOD32_02254B08
+
+ thumb_func_start MOD32_02254B2C
+MOD32_02254B2C: ; 0x02254B2C
+ ldr r3, _02254B34 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254B34: .word MOD20_02253794
+ thumb_func_end MOD32_02254B2C
+
+ thumb_func_start MOD32_02254B38
+MOD32_02254B38: ; 0x02254B38
+ ldr r3, _02254B40 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254B40: .word MOD20_022537B8
+ thumb_func_end MOD32_02254B38
+
+ thumb_func_start MOD32_02254B44
+MOD32_02254B44: ; 0x02254B44
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, #8
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254B44
+
+ thumb_func_start MOD32_02254B58
+MOD32_02254B58: ; 0x02254B58
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254BDC ; =0x02254C78
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x65
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x64
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254BE0 ; =0x04001000
+ ldr r0, _02254BE4 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x10]
+ and r0, r2
+ lsl r2, r3, #0x13
+ lsr r3, r2, #0x1b
+ mov r2, #4
+ orr r2, r3
+ lsl r2, r2, #8
+ orr r0, r2
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD32_02254B44
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254BDC: .word 0x02254C78
+_02254BE0: .word 0x04001000
+_02254BE4: .word 0xFFFFE0FF
+ thumb_func_end MOD32_02254B58
+
+ thumb_func_start MOD32_02254BE8
+MOD32_02254BE8: ; 0x02254BE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ bl MOD32_02254AF0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD32_02254B44
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD32_02254BE8
+
+ thumb_func_start MOD32_02254C08
+MOD32_02254C08: ; 0x02254C08
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ ldr r0, _02254C50 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, [r4]
+ cmp r0, #0
+ ldr r0, [r5, #0x24]
+ beq _02254C3A
+ mov r1, #0
+ bl MOD20_02253F28
+ mov r0, #1
+ add r1, r0, #0
+ bl PM_SetBackLight
+ b _02254C48
+_02254C3A:
+ mov r1, #1
+ bl MOD20_02253F28
+ mov r0, #1
+ mov r1, #0
+ bl PM_SetBackLight
+_02254C48:
+ add r0, r6, #0
+ bl MOD32_02254B44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254C50: .word 0x00000663
+ thumb_func_end MOD32_02254C08
+
+ .section .data
+ ; 0x02254C54
+ .incbin "baserom.nds", 0x28DC14, 0x8C