summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/06/asm/module_06.s298
1 files changed, 298 insertions, 0 deletions
diff --git a/arm9/modules/06/asm/module_06.s b/arm9/modules/06/asm/module_06.s
new file mode 100644
index 00000000..cccb02ee
--- /dev/null
+++ b/arm9/modules/06/asm/module_06.s
@@ -0,0 +1,298 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD06_022396A0
+MOD06_022396A0: ; 0x022396A0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r0, r5, #4
+ add r4, r2, #0
+ add r6, r3, #0
+ str r1, [r5]
+ bl FUN_0223972C
+ mov r0, #0
+ str r0, [r5, #0x38]
+ str r4, [r5, #0x30]
+ str r6, [r5, #0x34]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_022396BC
+FUN_022396BC: ; 0x022396BC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4, #0x38]
+ cmp r1, #5
+ bhi _02239712
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022396D2: ; jump table
+ .short _022396DE - _022396D2 - 2 ; case 0
+ .short _022396EA - _022396D2 - 2 ; case 1
+ .short _02239712 - _022396D2 - 2 ; case 2
+ .short _022396FC - _022396D2 - 2 ; case 3
+ .short _02239708 - _022396D2 - 2 ; case 4
+ .short _02239712 - _022396D2 - 2 ; case 5
+_022396DE:
+ bl FUN_022397F4
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ pop {r4, pc}
+_022396EA:
+ ldr r0, [r4, #0x30]
+ ldr r1, [r4, #0x34]
+ bl FUN_0223987C
+ str r0, [r4, #0x2c]
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ pop {r4, pc}
+_022396FC:
+ bl FUN_022398A8
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+ pop {r4, pc}
+_02239708:
+ bl FUN_02239808
+ ldr r0, [r4, #0x38]
+ add r0, r0, #1
+ str r0, [r4, #0x38]
+_02239712:
+ pop {r4, pc}
+
+ thumb_func_start FUN_02239714
+FUN_02239714: ; 0x02239714
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ cmp r0, #2
+ beq _02239722
+ bl ErrorHandling
+_02239722:
+ mov r0, #3
+ str r0, [r4, #0x38]
+ pop {r4, pc}
+
+ thumb_func_start FUN_02239728
+FUN_02239728: ; 0x02239728
+ ldr r0, [r0, #0x38]
+ bx lr
+
+ thumb_func_start FUN_0223972C
+FUN_0223972C: ; 0x0223972C
+ push {r4, lr}
+ add r4, r0, #0
+ bl GX_GetBankForBGExtPltt_2
+ str r0, [r4]
+ bl GX_GetBankForBGExtPltt
+ str r0, [r4, #4]
+ bl GX_GetBankForSubBGExtPltt_2
+ str r0, [r4, #8]
+ bl GX_GetBankForSubBGExtPltt
+ str r0, [r4, #0xc]
+ bl GX_GetBankForOBJ
+ str r0, [r4, #0x10]
+ bl GX_GetBankForOBJExtPltt
+ str r0, [r4, #0x14]
+ bl GX_GetBankForSubOBJ
+ str r0, [r4, #0x18]
+ bl GX_GetBankForSubOBJExtPltt
+ str r0, [r4, #0x1c]
+ bl FUN_020C5D8C
+ str r0, [r4, #0x20]
+ bl GX_GetBankForTexPltt
+ str r0, [r4, #0x24]
+ pop {r4, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_02239770
+FUN_02239770: ; 0x02239770
+ push {r4, lr}
+ sub sp, #0x28
+ ldr r4, _0223978C ; =0x0224F1F4
+ add r3, sp, #0
+ mov r2, #5
+_0223977A:
+ ldmia r4!, {r0, r1}
+ stmia r3!, {r0, r1}
+ sub r2, r2, #1
+ bne _0223977A
+ add r0, sp, #0
+ bl FUN_0201E66C
+ add sp, #0x28
+ pop {r4, pc}
+ .align 2, 0
+_0223978C: .word 0x0224F1F4
+
+ thumb_func_start FUN_02239790
+FUN_02239790: ; 0x02239790
+ push {r4, r5, lr}
+ sub sp, #0x2c
+ ldr r5, _022397EC ; =0x0224F180
+ add r3, sp, #0x1c
+ add r4, r0, #0
+ add r2, r3, #0
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ add r0, r2, #0
+ bl FUN_02016BBC
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ ldr r5, _022397F0 ; =0x0224F1D8
+ add r3, sp, #0
+ ldmia r5!, {r0, r1}
+ add r2, r3, #0
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldmia r5!, {r0, r1}
+ stmia r3!, {r0, r1}
+ ldr r0, [r5]
+ mov r1, #3
+ str r0, [r3]
+ add r0, r4, #0
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #3
+ mov r1, #0x20
+ mov r2, #0
+ mov r3, #4
+ bl FUN_02017F18
+ add r0, r4, #0
+ mov r1, #3
+ bl FUN_02018744
+ add sp, #0x2c
+ pop {r4, r5, pc}
+ nop
+_022397EC: .word 0x0224F180
+_022397F0: .word 0x0224F1D8
+
+ thumb_func_start FUN_022397F4
+FUN_022397F4: ; 0x022397F4
+ ldr r3, _02239800 ; =FUN_0200CA98
+ mov r2, #1
+ add r1, r0, #0
+ ldr r0, _02239804 ; =FUN_0223981C
+ lsl r2, r2, #0xa
+ bx r3
+ .align 2, 0
+_02239800: .word FUN_0200CA98
+_02239804: .word FUN_0223981C
+
+ thumb_func_start FUN_02239808
+FUN_02239808: ; 0x02239808
+ ldr r3, _02239814 ; =FUN_0200CA98
+ mov r2, #1
+ add r1, r0, #0
+ ldr r0, _02239818 ; =FUN_02239840
+ lsl r2, r2, #0xa
+ bx r3
+ .align 2, 0
+_02239814: .word FUN_0200CA98
+_02239818: .word FUN_02239840
+
+ thumb_func_start FUN_0223981C
+FUN_0223981C: ; 0x0223981C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ bl FUN_02239770
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02239864
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02239790
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+
+ thumb_func_start FUN_02239840
+FUN_02239840: ; 0x02239840
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #4
+ bl FUN_0201E66C
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_02239864
+ ldr r0, [r4]
+ ldr r0, [r0, #8]
+ bl FUN_0223986C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ pop {r3, r4, r5, pc}
+
+ thumb_func_start FUN_02239864
+FUN_02239864: ; 0x02239864
+ ldr r3, _02239868 ; =FUN_021D7A28
+ bx r3
+ .align 2, 0
+_02239868: .word FUN_021D7A28 + 1 ; TODO: disassemble the module that defines this
+
+ thumb_func_start FUN_0223986C
+FUN_0223986C: ; 0x0223986C
+ push {r3, lr}
+ bl FUN_021D7A20
+ mov r0, #1
+ add r1, r0, #0
+ bl FUN_0201E6E4
+ pop {r3, pc}
+
+ thumb_func_start FUN_0223987C
+FUN_0223987C: ; 0x0223987C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x2c
+ ldr r6, _022398A4 ; =0x0224F21C
+ add r3, r0, #0
+ add r2, r1, #0
+ add r5, sp, #0
+ mov r4, #5
+_0223988A:
+ ldmia r6!, {r0, r1}
+ stmia r5!, {r0, r1}
+ sub r4, r4, #1
+ bne _0223988A
+ ldr r0, [r6]
+ str r0, [r5]
+ add r0, sp, #0
+ str r3, [sp, #0x20]
+ str r2, [sp, #0x24]
+ bl FUN_021E8648
+ add sp, #0x2c
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+_022398A4: .word 0x0224F21C
+
+ thumb_func_start FUN_022398A8
+FUN_022398A8: ; 0x022398A8
+ ldr r3, _022398B4 ; =FUN_0200CA98
+ mov r2, #1
+ add r1, r0, #0
+ ldr r0, _022398B8 ; =0x022398BD
+ lsl r2, r2, #0xa
+ bx r3
+ .align 2, 0
+_022398B4: .word FUN_0200CA98
+_022398B8: .word 0x022398BD
+
+ .section .data
+ ; 0x022398BC
+ .incbin "baserom.nds", 0x16b81c, 0x18b64
+
+ .section .bss
+ ; 0x02252420
+ .space 0x20