diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-10 12:21:48 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2020-05-10 12:21:48 -0400 |
commit | ca2e39c684eada4aec909f6f222806b7914b97d0 (patch) | |
tree | bb40c93d89c64714a581a7d84438004ec3db2e52 /arm9/modules/34 | |
parent | fc6f621d01f371f03ae49862819352bfc71abd05 (diff) |
Dism modules 34-36; meaningful elf
Diffstat (limited to 'arm9/modules/34')
-rw-r--r-- | arm9/modules/34/asm/module_34.s | 601 |
1 files changed, 601 insertions, 0 deletions
diff --git a/arm9/modules/34/asm/module_34.s b/arm9/modules/34/asm/module_34.s new file mode 100644 index 00000000..a12d1a4a --- /dev/null +++ b/arm9/modules/34/asm/module_34.s @@ -0,0 +1,601 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD34_02254840 +MOD34_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD34_02254854 + ldr r1, _02254850 ; =MOD34_02254948 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD34_02254854 +_02254850: .word MOD34_02254948 + thumb_func_end MOD34_02254840 + + thumb_func_start MOD34_02254854 +MOD34_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x38 + 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 MOD34_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD34_0225490C + 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 MOD34_0225490C + thumb_func_end MOD34_02254854 + + thumb_func_start MOD34_0225489C +MOD34_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #0x24 + add r1, r5, #4 + bl MOD34_02254A5C + cmp r0, #0 + beq _022548DC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0x28] + mov r0, #8 + str r0, [sp] + ldr r0, _022548E0 ; =0x02254C7C + ldr r2, _022548E4 ; =MOD34_02254904 + mov r1, #6 + add r3, r5, #0 + bl MOD20_02254130 + str r0, [r5, #0x2c] + mov r1, #0 + str r1, [r5, #0x30] + mov r0, #1 +_022548D0: + add r1, r1, #1 + str r0, [r5, #8] + add r5, r5, #4 + cmp r1, #6 + blt _022548D0 + pop {r3, r4, r5, pc} +_022548DC: + mov r0, #0 + pop {r3, r4, r5, pc} + .align 2, 0 +_022548E0: .word 0x02254C7C +_022548E4: .word MOD34_02254904 + thumb_func_end MOD34_0225489C + + thumb_func_start MOD34_022548E8 +MOD34_022548E8: ; 0x022548E8 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x2c] + cmp r0, #0 + beq _022548F6 + bl MOD20_02254198 +_022548F6: + ldr r0, [r4, #0x24] + bl MOD34_02254A8C + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + thumb_func_end MOD34_022548E8 + + thumb_func_start MOD34_02254904 +MOD34_02254904: ; 0x02254904 + str r1, [r3, #0x30] + str r0, [r3, #0x34] + bx lr + .align 2, 0 + thumb_func_end MOD34_02254904 + + thumb_func_start MOD34_0225490C +MOD34_0225490C: ; 0x0225490C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #3 + bhs _02254942 + ldr r0, [r4, #0x28] + ldr r1, [r4, #0x2c] + bl MOD20_02252C14 + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _02254944 ; =0x02254C70 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254942 + add r0, r4, #0 + bl MOD34_022548E8 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0x28] + bl MOD20_022529A0 +_02254942: + pop {r3, r4, r5, pc} + .align 2, 0 +_02254944: .word 0x02254C70 + thumb_func_end MOD34_0225490C + + thumb_func_start MOD34_02254948 +MOD34_02254948: ; 0x02254948 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD34_02254948 + + thumb_func_start MOD34_02254950 +MOD34_02254950: ; 0x02254950 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254958 + b _0225495A +_02254958: + mov r1, #2 +_0225495A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD34_02254950 + + thumb_func_start MOD34_02254964 +MOD34_02254964: ; 0x02254964 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254974 + cmp r0, #1 + beq _02254984 + b _0225499E +_02254974: + ldr r0, [r4, #0x24] + mov r1, #0 + bl MOD34_02254A98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225499E +_02254984: + ldr r0, [r4, #0x24] + mov r1, #0 + bl MOD34_02254ABC + cmp r0, #0 + beq _0225499E + ldr r0, [r4, #0x28] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD34_02254950 +_0225499E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD34_02254964 + + thumb_func_start MOD34_022549A4 +MOD34_022549A4: ; 0x022549A4 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #2] + cmp r1, #0 + beq _022549B8 + mov r1, #2 + bl MOD34_02254950 + mov r0, #0 + pop {r4, pc} +_022549B8: + ldrb r0, [r4, #1] + cmp r0, #0 + beq _022549C4 + cmp r0, #1 + beq _022549F6 + b _02254A1A +_022549C4: + ldr r0, [r4, #0x30] + cmp r0, #1 + bne _02254A1A + ldr r1, [r4, #0x34] + lsl r0, r1, #2 + add r0, r4, r0 + ldr r0, [r0, #8] + cmp r0, #0 + beq _022549EE + strh r1, [r4, #0x20] + ldr r0, [r4, #0x24] + mov r1, #2 + bl MOD34_02254A98 + ldr r0, _02254A20 ; =0x00000663 + bl MOD20_02252B28 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A1A +_022549EE: + ldr r0, _02254A24 ; =0x0000066E + bl MOD20_02252B28 + b _02254A1A +_022549F6: + ldr r0, [r4, #0x30] + cmp r0, #2 + bne _02254A0A + ldr r0, [r4, #0x24] + mov r1, #3 + bl MOD34_02254A98 + mov r0, #0 + strb r0, [r4, #1] + b _02254A1A +_02254A0A: + cmp r0, #3 + bne _02254A1A + ldr r0, [r4, #0x24] + mov r1, #3 + bl MOD34_02254A98 + mov r0, #0 + strb r0, [r4, #1] +_02254A1A: + mov r0, #0 + pop {r4, pc} + nop +_02254A20: .word 0x00000663 +_02254A24: .word 0x0000066E + thumb_func_end MOD34_022549A4 + + thumb_func_start MOD34_02254A28 +MOD34_02254A28: ; 0x02254A28 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254A38 + cmp r0, #1 + beq _02254A48 + b _02254A56 +_02254A38: + ldr r0, [r4, #0x24] + mov r1, #1 + bl MOD34_02254A98 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _02254A56 +_02254A48: + ldr r0, [r4, #0x24] + bl MOD34_02254AC8 + cmp r0, #0 + beq _02254A56 + mov r0, #1 + pop {r4, pc} +_02254A56: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD34_02254A28 + + thumb_func_start MOD34_02254A5C +MOD34_02254A5C: ; 0x02254A5C + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x20 + bl FUN_02016998 + add r4, r0, #0 + beq _02254A88 + add r0, #8 + mov r1, #4 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _02254A88 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_02254A88: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD34_02254A5C + + thumb_func_start MOD34_02254A8C +MOD34_02254A8C: ; 0x02254A8C + push {r3, lr} + cmp r0, #0 + beq _02254A96 + bl FUN_02016A18 +_02254A96: + pop {r3, pc} + thumb_func_end MOD34_02254A8C + + thumb_func_start MOD34_02254A98 +MOD34_02254A98: ; 0x02254A98 + 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, _02254AB8 ; =0x02254CBC + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254AB8: .word 0x02254CBC + thumb_func_end MOD34_02254A98 + + thumb_func_start MOD34_02254ABC +MOD34_02254ABC: ; 0x02254ABC + ldr r3, _02254AC4 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254AC4: .word MOD20_02253794 + thumb_func_end MOD34_02254ABC + + thumb_func_start MOD34_02254AC8 +MOD34_02254AC8: ; 0x02254AC8 + ldr r3, _02254AD0 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254AD0: .word MOD20_022537B8 + thumb_func_end MOD34_02254AC8 + + thumb_func_start MOD34_02254AD4 +MOD34_02254AD4: ; 0x02254AD4 + 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 MOD34_02254AD4 + + thumb_func_start MOD34_02254AE8 +MOD34_02254AE8: ; 0x02254AE8 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + add r0, r1, #0 + bl MOD20_022538A0 + add r6, r0, #0 + ldr r0, [sp, #0x10] + bl MOD20_022538A4 + add r5, r0, #0 + ldr r0, [r6, #4] + ldr r2, _02254B8C ; =0x02254CA0 + 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, [r6, #4] + mov r0, #0xc + mov r1, #0x3b + 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, [r6, #4] + mov r0, #0xc + mov r1, #0x3a + mov r3, #6 + bl FUN_020068C8 + mov r0, #0 + add r1, r0, #0 + bl MOD20_02252D7C + mov r4, #0 + add r7, r4, #0 +_02254B4A: + ldr r2, [r5, #4] + add r0, r6, #0 + add r1, r4, #0 + add r3, r7, #0 + bl MOD34_02254C1C + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #6 + blt _02254B4A + ldr r0, [r6, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r0, _02254B90 ; =0x04001000 + ldr r1, _02254B94 ; =0xFFFFE0FF + ldr r2, [r0] + ldr r4, [r0] + add r3, r2, #0 + and r3, r1 + lsl r1, r4, #0x13 + lsr r2, r1, #0x1b + mov r1, #4 + orr r1, r2 + lsl r1, r1, #8 + orr r1, r3 + str r1, [r0] + ldr r0, [sp, #0x10] + str r4, [sp, #0x14] + bl MOD34_02254AD4 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254B8C: .word 0x02254CA0 +_02254B90: .word 0x04001000 +_02254B94: .word 0xFFFFE0FF + thumb_func_end MOD34_02254AE8 + + thumb_func_start MOD34_02254B98 +MOD34_02254B98: ; 0x02254B98 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD34_02254AD4 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD34_02254B98 + + thumb_func_start MOD34_02254BB4 +MOD34_02254BB4: ; 0x02254BB4 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r3, r0, #0 + ldrh r1, [r3, #0x1c] + add r0, r4, #0 + lsl r2, r1, #2 + add r2, r3, r2 + ldr r2, [r2, #4] + mov r3, #1 + bl MOD34_02254C1C + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_02017CD0 + add r0, r5, #0 + bl MOD34_02254AD4 + pop {r3, r4, r5, pc} + thumb_func_end MOD34_02254BB4 + + thumb_func_start MOD34_02254BE8 +MOD34_02254BE8: ; 0x02254BE8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538A4 + add r3, r0, #0 + ldrh r1, [r3, #0x1c] + add r0, r4, #0 + lsl r2, r1, #2 + add r2, r3, r2 + ldr r2, [r2, #4] + mov r3, #0 + bl MOD34_02254C1C + ldr r0, [r4, #4] + mov r1, #6 + bl FUN_02017CD0 + add r0, r5, #0 + bl MOD34_02254AD4 + pop {r3, r4, r5, pc} + thumb_func_end MOD34_02254BE8 + + thumb_func_start MOD34_02254C1C +MOD34_02254C1C: ; 0x02254C1C + push {r4, r5, r6, lr} + ldr r0, [r0, #4] + add r5, r1, #0 + mov r1, #6 + add r4, r2, #0 + add r6, r3, #0 + bl FUN_0201886C + ldr r1, _02254C6C ; =0x02254C94 + lsl r2, r5, #1 + ldrh r1, [r1, r2] + lsl r1, r1, #1 + add r2, r0, r1 + cmp r4, #0 + beq _02254C44 + add r1, r5, #1 + mov r0, #0x48 + add r5, r1, #0 + mul r5, r0 + b _02254C46 +_02254C44: + mov r5, #0 +_02254C46: + cmp r6, #0 + beq _02254C4C + add r5, #0x24 +_02254C4C: + mov r3, #0 + add r0, r3, #0 +_02254C50: + add r1, r0, #0 + add r4, r2, #0 +_02254C54: + add r1, r1, #1 + strh r5, [r4] + add r5, r5, #1 + add r4, r4, #2 + cmp r1, #6 + blt _02254C54 + add r3, r3, #1 + add r2, #0x40 + cmp r3, #6 + blt _02254C50 + pop {r4, r5, r6, pc} + nop +_02254C6C: .word 0x02254C94 + thumb_func_end MOD34_02254C1C + + .section .rodata + ; 0x02254C70 + .incbin "baserom.nds", 0x28e630, 0x88 + + ; .section .sinit + .global SDK_OVERLAY.MODULE_34.SINIT_START + .global SDK_OVERLAY.MODULE_34.SINIT_END +SDK_OVERLAY.MODULE_34.SINIT_START: + .word MOD34_02254840 + .word 0 +SDK_OVERLAY.MODULE_34.SINIT_END: |