mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-28 03:34:38 -05:00
@@ -852,7 +852,12 @@ Overlay MODULE_20
|
||||
{
|
||||
##Pokétch##
|
||||
After MODULE_06
|
||||
Object module_20.o
|
||||
Object mod20_02252440.o
|
||||
Object mod20_02252C5C.o
|
||||
Object mod20_022536F4.o
|
||||
Object mod20_02253BA4.o
|
||||
Object mod20_02254130.o
|
||||
Object mod20_02254420.o
|
||||
}
|
||||
|
||||
Overlay MODULE_21
|
||||
|
||||
@@ -7614,6 +7614,7 @@
|
||||
.extern MOD20_0225298C
|
||||
.extern MOD20_022529A0
|
||||
.extern MOD20_022529B4
|
||||
.extern MOD20_02252B1C
|
||||
.extern MOD20_02252B28
|
||||
.extern MOD20_02252B48
|
||||
.extern MOD20_02252B68
|
||||
@@ -7625,11 +7626,17 @@
|
||||
.extern MOD20_02252C38
|
||||
.extern MOD20_02252C3C
|
||||
.extern MOD20_02252C40
|
||||
.extern MOD20_02252C44
|
||||
.extern MOD20_02252C5C
|
||||
.extern MOD20_02252D24
|
||||
.extern MOD20_02252D34
|
||||
.extern MOD20_02252D7C
|
||||
.extern MOD20_02252DB4
|
||||
.extern MOD20_02252DEC
|
||||
.extern MOD20_02252E18
|
||||
.extern MOD20_02252E80
|
||||
.extern MOD20_02252EA4
|
||||
.extern MOD20_02252EB0
|
||||
.extern MOD20_022536F4
|
||||
.extern MOD20_02253794
|
||||
.extern MOD20_022537B8
|
||||
@@ -7646,10 +7653,14 @@
|
||||
.extern MOD20_022539C4
|
||||
.extern MOD20_02253A04
|
||||
.extern MOD20_02253AA4
|
||||
.extern MOD20_02253BA4
|
||||
.extern MOD20_02253C4C
|
||||
.extern MOD20_02253C78
|
||||
.extern MOD20_02253E74
|
||||
.extern MOD20_02253F14
|
||||
.extern MOD20_02253F28
|
||||
.extern MOD20_02253F44
|
||||
.extern MOD20_02253F54
|
||||
.extern MOD20_02253F64
|
||||
.extern MOD20_02253F6C
|
||||
.extern MOD20_02253F78
|
||||
@@ -7662,8 +7673,10 @@
|
||||
.extern MOD20_02254014
|
||||
.extern MOD20_02254130
|
||||
.extern MOD20_02254198
|
||||
.extern MOD20_022541B4
|
||||
.extern MOD20_022542AC
|
||||
.extern MOD20_022542C0
|
||||
.extern MOD20_022542CC
|
||||
.extern MOD20_02254420
|
||||
.extern MOD20_02254460
|
||||
.extern MOD20_02254488
|
||||
|
||||
1245
arm9/modules/20/asm/mod20_02252440.s
Normal file
1245
arm9/modules/20/asm/mod20_02252440.s
Normal file
File diff suppressed because it is too large
Load Diff
1400
arm9/modules/20/asm/mod20_02252C5C.s
Normal file
1400
arm9/modules/20/asm/mod20_02252C5C.s
Normal file
File diff suppressed because it is too large
Load Diff
682
arm9/modules/20/asm/mod20_022536F4.s
Normal file
682
arm9/modules/20/asm/mod20_022536F4.s
Normal file
@@ -0,0 +1,682 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
.section .text
|
||||
.balign 2, 0
|
||||
|
||||
thumb_func_start MOD20_022536F4
|
||||
MOD20_022536F4: ; 0x022536F4
|
||||
ldr r2, _02253710 ; =0x12345678
|
||||
str r1, [r0]
|
||||
mov r3, #0
|
||||
str r2, [r0, #4]
|
||||
cmp r1, #0
|
||||
bls _0225370C
|
||||
sub r2, r3, #1
|
||||
_02253702:
|
||||
add r3, r3, #1
|
||||
str r2, [r0, #8]
|
||||
add r0, r0, #4
|
||||
cmp r3, r1
|
||||
blo _02253702
|
||||
_0225370C:
|
||||
bx lr
|
||||
nop
|
||||
_02253710: .word 0x12345678
|
||||
thumb_func_end MOD20_022536F4
|
||||
|
||||
thumb_func_start MOD20_02253714
|
||||
MOD20_02253714: ; 0x02253714
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
ldr r1, [r5, #4]
|
||||
ldr r0, _02253750 ; =0x12345678
|
||||
cmp r1, r0
|
||||
beq _02253726
|
||||
bl GF_AssertFail
|
||||
_02253726:
|
||||
ldr r6, [r5]
|
||||
mov r2, #0
|
||||
cmp r6, #0
|
||||
bls _0225374A
|
||||
add r3, r5, #0
|
||||
sub r0, r2, #1
|
||||
_02253732:
|
||||
ldr r1, [r3, #8]
|
||||
cmp r1, r0
|
||||
bne _02253742
|
||||
lsl r0, r2, #2
|
||||
add r0, r5, r0
|
||||
str r4, [r0, #8]
|
||||
mov r0, #1
|
||||
pop {r4, r5, r6, pc}
|
||||
_02253742:
|
||||
add r2, r2, #1
|
||||
add r3, r3, #4
|
||||
cmp r2, r6
|
||||
blo _02253732
|
||||
_0225374A:
|
||||
mov r0, #0
|
||||
pop {r4, r5, r6, pc}
|
||||
nop
|
||||
_02253750: .word 0x12345678
|
||||
thumb_func_end MOD20_02253714
|
||||
|
||||
thumb_func_start MOD20_02253754
|
||||
MOD20_02253754: ; 0x02253754
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
ldr r1, [r5, #4]
|
||||
ldr r0, _02253790 ; =0x12345678
|
||||
cmp r1, r0
|
||||
beq _02253766
|
||||
bl GF_AssertFail
|
||||
_02253766:
|
||||
ldr r3, [r5]
|
||||
mov r2, #0
|
||||
cmp r3, #0
|
||||
bls _0225378A
|
||||
add r1, r5, #0
|
||||
_02253770:
|
||||
ldr r0, [r1, #8]
|
||||
cmp r4, r0
|
||||
bne _02253782
|
||||
mov r1, #0
|
||||
lsl r0, r2, #2
|
||||
mvn r1, r1
|
||||
add r0, r5, r0
|
||||
str r1, [r0, #8]
|
||||
pop {r3, r4, r5, pc}
|
||||
_02253782:
|
||||
add r2, r2, #1
|
||||
add r1, r1, #4
|
||||
cmp r2, r3
|
||||
blo _02253770
|
||||
_0225378A:
|
||||
bl GF_AssertFail
|
||||
pop {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
_02253790: .word 0x12345678
|
||||
thumb_func_end MOD20_02253754
|
||||
|
||||
thumb_func_start MOD20_02253794
|
||||
MOD20_02253794: ; 0x02253794
|
||||
push {r3, r4}
|
||||
ldr r4, [r0]
|
||||
mov r3, #0
|
||||
cmp r4, #0
|
||||
bls _022537B2
|
||||
_0225379E:
|
||||
ldr r2, [r0, #8]
|
||||
cmp r1, r2
|
||||
bne _022537AA
|
||||
mov r0, #0
|
||||
pop {r3, r4}
|
||||
bx lr
|
||||
_022537AA:
|
||||
add r3, r3, #1
|
||||
add r0, r0, #4
|
||||
cmp r3, r4
|
||||
blo _0225379E
|
||||
_022537B2:
|
||||
mov r0, #1
|
||||
pop {r3, r4}
|
||||
bx lr
|
||||
thumb_func_end MOD20_02253794
|
||||
|
||||
thumb_func_start MOD20_022537B8
|
||||
MOD20_022537B8: ; 0x022537B8
|
||||
push {r3, r4}
|
||||
ldr r4, [r0]
|
||||
mov r3, #0
|
||||
cmp r4, #0
|
||||
bls _022537D8
|
||||
sub r1, r3, #1
|
||||
_022537C4:
|
||||
ldr r2, [r0, #8]
|
||||
cmp r2, r1
|
||||
beq _022537D0
|
||||
mov r0, #0
|
||||
pop {r3, r4}
|
||||
bx lr
|
||||
_022537D0:
|
||||
add r3, r3, #1
|
||||
add r0, r0, #4
|
||||
cmp r3, r4
|
||||
blo _022537C4
|
||||
_022537D8:
|
||||
mov r0, #1
|
||||
pop {r3, r4}
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_022537B8
|
||||
|
||||
thumb_func_start MOD20_022537E0
|
||||
MOD20_022537E0: ; 0x022537E0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0xc
|
||||
add r7, r0, #0
|
||||
str r2, [sp]
|
||||
mov r0, #0
|
||||
add r5, r1, #0
|
||||
ldr r2, [r7]
|
||||
sub r1, r0, #1
|
||||
str r3, [sp, #4]
|
||||
cmp r2, r1
|
||||
beq _02253880
|
||||
add r3, r7, #0
|
||||
sub r1, r0, #1
|
||||
_022537FA:
|
||||
ldr r2, [r3]
|
||||
cmp r5, r2
|
||||
bne _02253876
|
||||
add r6, r0, #0
|
||||
add r0, r7, #0
|
||||
str r0, [sp, #8]
|
||||
add r0, #8
|
||||
mov r1, #0xc
|
||||
str r0, [sp, #8]
|
||||
mul r6, r1
|
||||
ldr r1, [sp, #8]
|
||||
ldr r0, [sp, #0x28]
|
||||
ldr r1, [r1, r6]
|
||||
add r1, #0x18
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0
|
||||
beq _02253870
|
||||
ldr r0, [sp, #8]
|
||||
ldr r0, [r0, r6]
|
||||
cmp r0, #0
|
||||
beq _0225382C
|
||||
add r0, r4, #0
|
||||
add r0, #0x18
|
||||
b _0225382E
|
||||
_0225382C:
|
||||
mov r0, #0
|
||||
_0225382E:
|
||||
str r0, [r4, #0xc]
|
||||
ldr r0, [sp, #0x20]
|
||||
add r1, r5, #0
|
||||
bl MOD20_02253714
|
||||
cmp r0, #0
|
||||
beq _02253866
|
||||
ldr r0, [sp]
|
||||
ldr r2, [sp, #0x24]
|
||||
str r0, [r4, #8]
|
||||
mov r0, #0
|
||||
str r0, [r4, #4]
|
||||
str r5, [r4]
|
||||
ldr r0, [sp, #4]
|
||||
add r5, r7, #4
|
||||
str r0, [r4, #0x10]
|
||||
ldr r0, [r5, r6]
|
||||
add r1, r4, #0
|
||||
bl FUN_0200CA44
|
||||
str r0, [r4, #0x14]
|
||||
cmp r0, #0
|
||||
beq _02253884
|
||||
ldr r2, [r5, r6]
|
||||
add r1, r4, #0
|
||||
blx r2
|
||||
add sp, #0xc
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_02253866:
|
||||
add r0, r4, #0
|
||||
bl FreeToHeap
|
||||
add sp, #0xc
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
_02253870:
|
||||
bl GF_AssertFail
|
||||
b _02253880
|
||||
_02253876:
|
||||
add r3, #0xc
|
||||
ldr r2, [r3]
|
||||
add r0, r0, #1
|
||||
cmp r2, r1
|
||||
bne _022537FA
|
||||
_02253880:
|
||||
bl GF_AssertFail
|
||||
_02253884:
|
||||
add sp, #0xc
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
thumb_func_end MOD20_022537E0
|
||||
|
||||
thumb_func_start MOD20_02253888
|
||||
MOD20_02253888: ; 0x02253888
|
||||
push {r4, lr}
|
||||
add r4, r1, #0
|
||||
ldr r1, [r4]
|
||||
bl MOD20_02253754
|
||||
ldr r0, [r4, #0x14]
|
||||
bl FUN_0200CAB4
|
||||
add r0, r4, #0
|
||||
bl FreeToHeap
|
||||
pop {r4, pc}
|
||||
thumb_func_end MOD20_02253888
|
||||
|
||||
thumb_func_start MOD20_022538A0
|
||||
MOD20_022538A0: ; 0x022538A0
|
||||
ldr r0, [r0, #8]
|
||||
bx lr
|
||||
thumb_func_end MOD20_022538A0
|
||||
|
||||
thumb_func_start MOD20_022538A4
|
||||
MOD20_022538A4: ; 0x022538A4
|
||||
ldr r0, [r0, #0x10]
|
||||
bx lr
|
||||
thumb_func_end MOD20_022538A4
|
||||
|
||||
thumb_func_start MOD20_022538A8
|
||||
MOD20_022538A8: ; 0x022538A8
|
||||
ldr r0, [r0, #0xc]
|
||||
bx lr
|
||||
thumb_func_end MOD20_022538A8
|
||||
|
||||
thumb_func_start MOD20_022538AC
|
||||
MOD20_022538AC: ; 0x022538AC
|
||||
ldr r0, [r0, #4]
|
||||
bx lr
|
||||
thumb_func_end MOD20_022538AC
|
||||
|
||||
thumb_func_start MOD20_022538B0
|
||||
MOD20_022538B0: ; 0x022538B0
|
||||
ldr r1, [r0, #4]
|
||||
add r1, r1, #1
|
||||
str r1, [r0, #4]
|
||||
bx lr
|
||||
thumb_func_end MOD20_022538B0
|
||||
|
||||
thumb_func_start MOD20_022538B8
|
||||
MOD20_022538B8: ; 0x022538B8
|
||||
str r1, [r0, #4]
|
||||
bx lr
|
||||
thumb_func_end MOD20_022538B8
|
||||
|
||||
thumb_func_start MOD20_022538BC
|
||||
MOD20_022538BC: ; 0x022538BC
|
||||
push {r3, r4, r5, r6}
|
||||
mul r2, r3
|
||||
ldr r4, [sp, #0x18]
|
||||
add r1, r1, r2
|
||||
lsl r6, r1, #1
|
||||
lsl r4, r4, #0xc
|
||||
ldr r1, [sp, #0x10]
|
||||
add r5, r4, #0
|
||||
orr r5, r1
|
||||
add r2, r0, r6
|
||||
strh r5, [r0, r6]
|
||||
add r0, r1, #1
|
||||
orr r0, r4
|
||||
strh r0, [r2, #2]
|
||||
ldr r0, [sp, #0x14]
|
||||
lsl r3, r3, #1
|
||||
add r1, r1, r0
|
||||
add r0, r4, #0
|
||||
orr r0, r1
|
||||
strh r0, [r2, r3]
|
||||
add r0, r1, #1
|
||||
add r1, r4, #0
|
||||
orr r1, r0
|
||||
add r0, r2, r3
|
||||
strh r1, [r0, #2]
|
||||
pop {r3, r4, r5, r6}
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_022538BC
|
||||
|
||||
thumb_func_start MOD20_022538F4
|
||||
MOD20_022538F4: ; 0x022538F4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x20
|
||||
bl AllocFromHeap
|
||||
add r7, r0, #0
|
||||
beq _02253960
|
||||
bl MOD20_02252DEC
|
||||
mov r4, #0
|
||||
cmp r6, #0
|
||||
bls _0225395A
|
||||
_02253910:
|
||||
ldrh r3, [r5]
|
||||
mov r0, #0x1f
|
||||
lsl r0, r0, #0xa
|
||||
and r0, r3
|
||||
asr r0, r0, #0xa
|
||||
add r2, r0, #0
|
||||
mov r1, #0x72
|
||||
mov r0, #0x1f
|
||||
mul r2, r1
|
||||
and r0, r3
|
||||
add r1, #0xb9
|
||||
mul r1, r0
|
||||
mov r0, #0x3e
|
||||
lsl r0, r0, #4
|
||||
and r0, r3
|
||||
asr r3, r0, #5
|
||||
ldr r0, _02253964 ; =0x0000024B
|
||||
mul r0, r3
|
||||
add r0, r1, r0
|
||||
mov r1, #0xfa
|
||||
add r0, r2, r0
|
||||
lsl r1, r1, #2
|
||||
bl _u32_div_f
|
||||
lsr r1, r0, #3
|
||||
cmp r1, #3
|
||||
bls _02253948
|
||||
mov r1, #3
|
||||
_02253948:
|
||||
ldr r0, _02253968 ; =MOD20_0225470C
|
||||
add r4, r4, #1
|
||||
ldrb r0, [r0, r1]
|
||||
lsl r0, r0, #1
|
||||
ldrh r0, [r7, r0]
|
||||
strh r0, [r5]
|
||||
add r5, r5, #2
|
||||
cmp r4, r6
|
||||
blo _02253910
|
||||
_0225395A:
|
||||
add r0, r7, #0
|
||||
bl FreeToHeap
|
||||
_02253960:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02253964: .word 0x0000024B
|
||||
_02253968: .word MOD20_0225470C
|
||||
thumb_func_end MOD20_022538F4
|
||||
|
||||
thumb_func_start MOD20_0225396C
|
||||
MOD20_0225396C: ; 0x0225396C
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r6, r0, #0
|
||||
add r7, r1, #0
|
||||
mov r0, #8
|
||||
mov r1, #0x20
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0
|
||||
beq _022539C2
|
||||
mov r0, #8
|
||||
mov r1, #0x20
|
||||
bl AllocFromHeap
|
||||
add r5, r0, #0
|
||||
add r0, r4, #0
|
||||
bl MOD20_02252DEC
|
||||
cmp r5, #0
|
||||
beq _022539BC
|
||||
mov r0, #0
|
||||
add r1, r5, #0
|
||||
lsl r3, r6, #1
|
||||
_02253998:
|
||||
ldrh r2, [r4, r3]
|
||||
add r0, r0, #1
|
||||
strh r2, [r1]
|
||||
add r1, r1, #2
|
||||
cmp r0, #0x10
|
||||
blt _02253998
|
||||
add r0, r5, #0
|
||||
mov r1, #0x20
|
||||
bl DC_FlushRange
|
||||
add r0, r5, #0
|
||||
lsl r1, r7, #5
|
||||
mov r2, #0x20
|
||||
bl GXS_LoadOBJPltt
|
||||
add r0, r5, #0
|
||||
bl FreeToHeap
|
||||
_022539BC:
|
||||
add r0, r4, #0
|
||||
bl FreeToHeap
|
||||
_022539C2:
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end MOD20_0225396C
|
||||
|
||||
thumb_func_start MOD20_022539C4
|
||||
MOD20_022539C4: ; 0x022539C4
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
bl FUN_0206B888
|
||||
add r1, r0, #0
|
||||
mov r0, #0x13
|
||||
add r2, sp, #0
|
||||
mov r3, #8
|
||||
bl GfGfxLoader_GetPlttData
|
||||
add r4, r0, #0
|
||||
beq _02253A02
|
||||
ldr r0, [sp]
|
||||
mov r1, #0x40
|
||||
ldr r0, [r0, #0xc]
|
||||
bl MOD20_022538F4
|
||||
ldr r0, [sp]
|
||||
mov r1, #0x80
|
||||
ldr r0, [r0, #0xc]
|
||||
bl DC_FlushRange
|
||||
ldr r0, [sp]
|
||||
lsl r1, r5, #5
|
||||
ldr r0, [r0, #0xc]
|
||||
mov r2, #0x80
|
||||
bl GXS_LoadOBJPltt
|
||||
add r0, r4, #0
|
||||
bl FreeToHeap
|
||||
_02253A02:
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end MOD20_022539C4
|
||||
|
||||
thumb_func_start MOD20_02253A04
|
||||
MOD20_02253A04: ; 0x02253A04
|
||||
push {r4, r5, r6, r7, lr}
|
||||
sub sp, #0x24
|
||||
str r0, [sp, #4]
|
||||
lsl r0, r3, #1
|
||||
str r0, [sp, #0xc]
|
||||
add r6, r1, #0
|
||||
str r2, [sp, #8]
|
||||
ldr r2, _02253A9C ; =MOD20_02254708
|
||||
ldr r1, [sp, #0xc]
|
||||
mov r0, #8
|
||||
ldrh r1, [r2, r1]
|
||||
bl AllocFromHeap
|
||||
add r7, r0, #0
|
||||
beq _02253A98
|
||||
mov r0, #0x13
|
||||
mov r1, #8
|
||||
bl NARC_ctor
|
||||
str r0, [sp, #0x1c]
|
||||
cmp r0, #0
|
||||
beq _02253A92
|
||||
mov r0, #0
|
||||
str r0, [sp, #0x18]
|
||||
ldr r0, [sp, #8]
|
||||
cmp r0, #0
|
||||
bls _02253A8C
|
||||
ldr r1, _02253AA0 ; =MOD20_02254704
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r4, [sp, #0x18]
|
||||
ldrh r5, [r1, r0]
|
||||
ldr r1, _02253A9C ; =MOD20_02254708
|
||||
ldrh r0, [r1, r0]
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [sp, #4]
|
||||
lsl r0, r0, #5
|
||||
str r0, [sp, #0x10]
|
||||
_02253A4E:
|
||||
str r7, [sp]
|
||||
ldr r0, [sp, #0x1c]
|
||||
ldr r1, [r6]
|
||||
ldr r3, [sp, #0x14]
|
||||
mov r2, #0
|
||||
bl NARC_ReadFromMember
|
||||
add r0, r7, #0
|
||||
add r1, sp, #0x20
|
||||
bl NNS_G2dGetUnpackedCharacterData
|
||||
ldr r0, [sp, #0x20]
|
||||
add r1, r5, #0
|
||||
ldr r0, [r0, #0x14]
|
||||
bl DC_FlushRange
|
||||
ldr r0, [sp, #0x20]
|
||||
ldr r1, [sp, #0x10]
|
||||
ldr r0, [r0, #0x14]
|
||||
add r1, r1, r4
|
||||
add r2, r5, #0
|
||||
bl GXS_LoadOBJ
|
||||
ldr r0, [sp, #0x18]
|
||||
add r6, r6, #4
|
||||
add r1, r0, #1
|
||||
ldr r0, [sp, #8]
|
||||
add r4, r4, r5
|
||||
str r1, [sp, #0x18]
|
||||
cmp r1, r0
|
||||
blo _02253A4E
|
||||
_02253A8C:
|
||||
ldr r0, [sp, #0x1c]
|
||||
bl NARC_dtor
|
||||
_02253A92:
|
||||
add r0, r7, #0
|
||||
bl FreeToHeap
|
||||
_02253A98:
|
||||
add sp, #0x24
|
||||
pop {r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02253A9C: .word MOD20_02254708
|
||||
_02253AA0: .word MOD20_02254704
|
||||
thumb_func_end MOD20_02253A04
|
||||
|
||||
thumb_func_start MOD20_02253AA4
|
||||
MOD20_02253AA4: ; 0x02253AA4
|
||||
push {r3, r4, r5, r6, lr}
|
||||
sub sp, #0x14
|
||||
add r5, r1, #0
|
||||
add r4, r2, #0
|
||||
mov r1, #2
|
||||
add r2, sp, #0xc
|
||||
strh r1, [r2]
|
||||
mov r3, #3
|
||||
strh r3, [r2, #2]
|
||||
mov r3, #0xa
|
||||
strh r3, [r2, #4]
|
||||
mov r3, #0xb
|
||||
strh r3, [r2, #6]
|
||||
str r3, [sp]
|
||||
str r1, [sp, #4]
|
||||
str r1, [sp, #8]
|
||||
lsl r1, r4, #0x18
|
||||
lsr r1, r1, #0x18
|
||||
add r2, sp, #0xc
|
||||
mov r3, #9
|
||||
add r6, r0, #0
|
||||
bl LoadRectToBgTilemapRect
|
||||
mov r1, #4
|
||||
add r0, sp, #0xc
|
||||
strh r1, [r0]
|
||||
mov r1, #5
|
||||
strh r1, [r0, #2]
|
||||
mov r1, #0xc
|
||||
strh r1, [r0, #4]
|
||||
mov r1, #0xd
|
||||
strh r1, [r0, #6]
|
||||
mov r3, #0xb
|
||||
lsl r1, r4, #0x18
|
||||
str r3, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
str r0, [sp, #8]
|
||||
add r0, r6, #0
|
||||
lsr r1, r1, #0x18
|
||||
add r2, sp, #0xc
|
||||
bl LoadRectToBgTilemapRect
|
||||
mov r1, #6
|
||||
add r0, sp, #0xc
|
||||
strh r1, [r0]
|
||||
mov r1, #7
|
||||
strh r1, [r0, #2]
|
||||
mov r1, #0xe
|
||||
strh r1, [r0, #4]
|
||||
mov r1, #0xf
|
||||
strh r1, [r0, #6]
|
||||
mov r0, #0xb
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
lsl r1, r4, #0x18
|
||||
str r0, [sp, #8]
|
||||
add r0, r6, #0
|
||||
lsr r1, r1, #0x18
|
||||
add r2, sp, #0xc
|
||||
mov r3, #0xd
|
||||
bl LoadRectToBgTilemapRect
|
||||
add r0, r5, #0
|
||||
mov r1, #0xa
|
||||
bl _u32_div_f
|
||||
mov r1, #0xa
|
||||
mul r1, r0
|
||||
add r0, r0, #4
|
||||
sub r5, r5, r1
|
||||
lsr r1, r0, #2
|
||||
lsl r0, r0, #0x1e
|
||||
lsl r1, r1, #4
|
||||
lsr r0, r0, #0x1d
|
||||
add r2, r1, r0
|
||||
add r0, sp, #0xc
|
||||
strh r2, [r0]
|
||||
add r1, r2, #1
|
||||
strh r1, [r0, #2]
|
||||
add r1, r2, #0
|
||||
add r1, #8
|
||||
strh r1, [r0, #4]
|
||||
add r2, #9
|
||||
strh r2, [r0, #6]
|
||||
mov r0, #0xb
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
lsl r1, r4, #0x18
|
||||
str r0, [sp, #8]
|
||||
add r0, r6, #0
|
||||
lsr r1, r1, #0x18
|
||||
add r2, sp, #0xc
|
||||
mov r3, #0xf
|
||||
bl LoadRectToBgTilemapRect
|
||||
add r0, r5, #4
|
||||
lsr r1, r0, #2
|
||||
lsl r0, r0, #0x1e
|
||||
lsl r1, r1, #4
|
||||
lsr r0, r0, #0x1d
|
||||
add r2, r1, r0
|
||||
add r0, sp, #0xc
|
||||
strh r2, [r0]
|
||||
add r1, r2, #1
|
||||
strh r1, [r0, #2]
|
||||
add r1, r2, #0
|
||||
add r1, #8
|
||||
strh r1, [r0, #4]
|
||||
add r2, #9
|
||||
strh r2, [r0, #6]
|
||||
mov r0, #0xb
|
||||
str r0, [sp]
|
||||
mov r0, #2
|
||||
str r0, [sp, #4]
|
||||
lsl r1, r4, #0x18
|
||||
str r0, [sp, #8]
|
||||
add r0, r6, #0
|
||||
lsr r1, r1, #0x18
|
||||
add r2, sp, #0xc
|
||||
mov r3, #0x11
|
||||
bl LoadRectToBgTilemapRect
|
||||
add sp, #0x14
|
||||
pop {r3, r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253AA4
|
||||
|
||||
.section .rodata
|
||||
|
||||
.global MOD20_02254704
|
||||
MOD20_02254704: ; 0x02254704
|
||||
.byte 0x00, 0x02, 0x00, 0x04
|
||||
|
||||
.global MOD20_02254708
|
||||
MOD20_02254708: ; 0x02254708
|
||||
.byte 0x80, 0x02, 0x80, 0x04
|
||||
|
||||
.global MOD20_0225470C
|
||||
MOD20_0225470C: ; 0x0225470C
|
||||
.byte 0x01, 0x08, 0x0F, 0x04
|
||||
808
arm9/modules/20/asm/mod20_02253BA4.s
Normal file
808
arm9/modules/20/asm/mod20_02253BA4.s
Normal file
@@ -0,0 +1,808 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
.section .text
|
||||
.balign 2, 0
|
||||
|
||||
thumb_func_start MOD20_02253BA4
|
||||
MOD20_02253BA4: ; 0x02253BA4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r1, #0
|
||||
add r7, r0, #0
|
||||
add r0, r5, #0
|
||||
mov r1, #0x1c
|
||||
mov r6, #0
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0
|
||||
beq _02253C0E
|
||||
add r0, r6, #0
|
||||
str r0, [r4, #0x14]
|
||||
str r0, [r4, #0xc]
|
||||
str r0, [r4, #4]
|
||||
str r7, [r4]
|
||||
str r5, [r4, #0x18]
|
||||
add r0, r7, #0
|
||||
bl NNS_G2dGetOamManagerOamCapacity
|
||||
strh r0, [r4, #0x10]
|
||||
ldrh r1, [r4, #0x10]
|
||||
add r0, r5, #0
|
||||
lsl r1, r1, #3
|
||||
bl AllocFromHeap
|
||||
str r0, [r4, #0x14]
|
||||
cmp r0, #0
|
||||
beq _02253C0E
|
||||
ldrh r2, [r4, #0x10]
|
||||
mov r1, #0x90
|
||||
add r0, r5, #0
|
||||
mul r1, r2
|
||||
bl AllocFromHeap
|
||||
str r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
beq _02253C0E
|
||||
ldrh r1, [r4, #0x10]
|
||||
add r0, r5, #0
|
||||
lsl r1, r1, #2
|
||||
bl AllocFromHeap
|
||||
str r0, [r4, #4]
|
||||
cmp r0, #0
|
||||
beq _02253C0E
|
||||
ldrh r2, [r4, #0x10]
|
||||
ldr r1, [r4, #0xc]
|
||||
bl MOD20_0225403C
|
||||
add r0, r6, #0
|
||||
strh r0, [r4, #0x12]
|
||||
str r0, [r4, #8]
|
||||
mov r6, #1
|
||||
_02253C0E:
|
||||
cmp r6, #0
|
||||
bne _02253C46
|
||||
cmp r4, #0
|
||||
beq _02253C42
|
||||
ldr r1, [r4, #0x14]
|
||||
cmp r1, #0
|
||||
beq _02253C22
|
||||
add r0, r5, #0
|
||||
bl FreeToHeapExplicit
|
||||
_02253C22:
|
||||
ldr r1, [r4, #0xc]
|
||||
cmp r1, #0
|
||||
beq _02253C2E
|
||||
add r0, r5, #0
|
||||
bl FreeToHeapExplicit
|
||||
_02253C2E:
|
||||
ldr r1, [r4, #4]
|
||||
cmp r1, #0
|
||||
beq _02253C3A
|
||||
add r0, r5, #0
|
||||
bl FreeToHeapExplicit
|
||||
_02253C3A:
|
||||
add r0, r5, #0
|
||||
add r1, r4, #0
|
||||
bl FreeToHeapExplicit
|
||||
_02253C42:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02253C46:
|
||||
add r0, r4, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253BA4
|
||||
|
||||
thumb_func_start MOD20_02253C4C
|
||||
MOD20_02253C4C: ; 0x02253C4C
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
beq _02253C76
|
||||
ldr r0, [r4, #0x14]
|
||||
cmp r0, #0
|
||||
beq _02253C5C
|
||||
bl FreeToHeap
|
||||
_02253C5C:
|
||||
ldr r0, [r4, #0xc]
|
||||
cmp r0, #0
|
||||
beq _02253C66
|
||||
bl FreeToHeap
|
||||
_02253C66:
|
||||
ldr r0, [r4, #4]
|
||||
cmp r0, #0
|
||||
beq _02253C70
|
||||
bl FreeToHeap
|
||||
_02253C70:
|
||||
add r0, r4, #0
|
||||
bl FreeToHeap
|
||||
_02253C76:
|
||||
pop {r4, pc}
|
||||
thumb_func_end MOD20_02253C4C
|
||||
|
||||
thumb_func_start MOD20_02253C78
|
||||
MOD20_02253C78: ; 0x02253C78
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #0x20
|
||||
str r0, [sp, #0xc]
|
||||
ldrh r0, [r0, #0x12]
|
||||
cmp r0, #0
|
||||
bne _02253C86
|
||||
b _02253E52
|
||||
_02253C86:
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r4, [r0, #8]
|
||||
ldr r5, [r0, #0x14]
|
||||
ldrh r0, [r0, #0x10]
|
||||
cmp r4, #0
|
||||
str r0, [sp, #0x10]
|
||||
bne _02253C96
|
||||
b _02253E38
|
||||
_02253C96:
|
||||
add r0, r4, #0
|
||||
mov r1, #2
|
||||
add r0, #8
|
||||
lsl r1, r1, #0xc
|
||||
bl NNS_G2dTickCellAnimation
|
||||
add r0, r4, #0
|
||||
add r0, #0x86
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _02253CAE
|
||||
b _02253E30
|
||||
_02253CAE:
|
||||
add r6, r4, #0
|
||||
add r6, #0x40
|
||||
mov r0, #0xc
|
||||
ldrsh r0, [r6, r0]
|
||||
ldr r1, [r4, #0x64]
|
||||
lsl r0, r0, #0xc
|
||||
add r0, r1, r0
|
||||
str r0, [sp, #0x18]
|
||||
mov r0, #0xe
|
||||
ldrsh r0, [r6, r0]
|
||||
ldr r1, [r4, #0x68]
|
||||
lsl r0, r0, #0xc
|
||||
add r0, r1, r0
|
||||
str r0, [sp, #0x1c]
|
||||
add r0, r4, #0
|
||||
add r0, #0x87
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _02253CEE
|
||||
add r0, sp, #0x18
|
||||
str r0, [sp]
|
||||
mov r3, #0
|
||||
str r3, [sp, #4]
|
||||
ldr r1, [sp, #0x10]
|
||||
str r3, [sp, #8]
|
||||
lsl r1, r1, #0x10
|
||||
ldr r2, [r4, #0x34]
|
||||
add r0, r5, #0
|
||||
lsr r1, r1, #0x10
|
||||
bl NNS_G2dMakeCellToOams
|
||||
b _02253D86
|
||||
_02253CEE:
|
||||
ldr r0, [r4, #0x6c]
|
||||
bl MTX_Identity22_
|
||||
ldrh r1, [r6, #0x12]
|
||||
mov r0, #4
|
||||
tst r0, r1
|
||||
beq _02253D20
|
||||
add r0, r4, #0
|
||||
add r0, #0x8c
|
||||
ldrh r2, [r6, #0x10]
|
||||
ldrh r0, [r0]
|
||||
ldr r1, _02253E58 ; =FX_SinCosTable_
|
||||
add r0, r2, r0
|
||||
lsl r0, r0, #0x10
|
||||
lsr r0, r0, #0x10
|
||||
asr r0, r0, #4
|
||||
lsl r3, r0, #2
|
||||
add r2, r1, r3
|
||||
ldrsh r1, [r1, r3]
|
||||
mov r3, #2
|
||||
ldrsh r2, [r2, r3]
|
||||
ldr r0, [r4, #0x6c]
|
||||
bl MTX_Rot22_
|
||||
b _02253D3E
|
||||
_02253D20:
|
||||
add r0, r4, #0
|
||||
add r0, #0x8c
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _02253D3E
|
||||
asr r0, r0, #4
|
||||
lsl r3, r0, #2
|
||||
ldr r1, _02253E58 ; =FX_SinCosTable_
|
||||
ldr r0, [r4, #0x6c]
|
||||
add r2, r1, r3
|
||||
ldrsh r1, [r1, r3]
|
||||
mov r3, #2
|
||||
ldrsh r2, [r2, r3]
|
||||
bl MTX_Rot22_
|
||||
_02253D3E:
|
||||
ldrh r1, [r6, #0x12]
|
||||
mov r0, #2
|
||||
tst r0, r1
|
||||
beq _02253D62
|
||||
ldr r0, [r6, #4]
|
||||
ldr r7, [r4, #0x6c]
|
||||
bl FX_Inv
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [r6, #8]
|
||||
bl FX_Inv
|
||||
add r3, r0, #0
|
||||
ldr r2, [sp, #0x14]
|
||||
add r0, r7, #0
|
||||
add r1, r7, #0
|
||||
bl MTX_ScaleApply22
|
||||
_02253D62:
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r1, [r4, #0x6c]
|
||||
ldr r0, [r0]
|
||||
bl NNS_G2dEntryOamManagerAffine
|
||||
add r1, sp, #0x18
|
||||
str r1, [sp]
|
||||
str r0, [sp, #4]
|
||||
mov r0, #1
|
||||
str r0, [sp, #8]
|
||||
ldr r1, [sp, #0x10]
|
||||
ldr r2, [r4, #0x34]
|
||||
lsl r1, r1, #0x10
|
||||
ldr r3, [r4, #0x6c]
|
||||
add r0, r5, #0
|
||||
lsr r1, r1, #0x10
|
||||
bl NNS_G2dMakeCellToOams
|
||||
_02253D86:
|
||||
ldr r1, [sp, #0x10]
|
||||
sub r1, r1, r0
|
||||
str r1, [sp, #0x10]
|
||||
add r1, r0, #0
|
||||
sub r0, r0, #1
|
||||
cmp r1, #0
|
||||
beq _02253E30
|
||||
ldr r7, _02253E5C ; =0xDFFFFFFF
|
||||
asr r1, r7, #0x11
|
||||
_02253D98:
|
||||
ldr r3, [r5, #4]
|
||||
ldr r2, _02253E60 ; =0xFFFFF3FF
|
||||
add r6, r4, #0
|
||||
and r2, r3
|
||||
add r3, r4, #0
|
||||
add r3, #0x82
|
||||
ldrh r3, [r3]
|
||||
add r6, #0x84
|
||||
lsl r3, r3, #0x1e
|
||||
lsr r3, r3, #0x14
|
||||
orr r2, r3
|
||||
str r2, [r5, #4]
|
||||
ldr r3, _02253E64 ; =0xFFFF0FFF
|
||||
ldrh r6, [r6]
|
||||
and r3, r2
|
||||
lsl r2, r2, #0x10
|
||||
lsr r2, r2, #0x1c
|
||||
add r2, r2, r6
|
||||
lsl r2, r2, #0x1c
|
||||
lsr r2, r2, #0x10
|
||||
orr r2, r3
|
||||
add r6, r4, #0
|
||||
ldr r3, _02253E68 ; =0xFFFFFC00
|
||||
str r2, [r5, #4]
|
||||
add r6, #0x88
|
||||
and r3, r2
|
||||
lsl r2, r2, #0x16
|
||||
ldrh r6, [r6]
|
||||
lsr r2, r2, #0x16
|
||||
add r6, r2, r6
|
||||
ldr r2, _02253E6C ; =0x000003FF
|
||||
and r2, r6
|
||||
orr r2, r3
|
||||
add r6, r4, #0
|
||||
str r2, [r5, #4]
|
||||
add r6, #0x8a
|
||||
ldr r2, [r5]
|
||||
ldr r3, _02253E70 ; =0xEFFFFFFF
|
||||
ldrb r6, [r6]
|
||||
and r3, r2
|
||||
lsl r2, r2, #3
|
||||
lsr r2, r2, #0x1f
|
||||
eor r2, r6
|
||||
lsl r2, r2, #0x1f
|
||||
lsr r2, r2, #3
|
||||
orr r2, r3
|
||||
add r6, r4, #0
|
||||
add r3, r2, #0
|
||||
str r2, [r5]
|
||||
add r6, #0x8b
|
||||
lsl r2, r2, #2
|
||||
ldrb r6, [r6]
|
||||
lsr r2, r2, #0x1f
|
||||
and r3, r7
|
||||
eor r2, r6
|
||||
lsl r2, r2, #0x1f
|
||||
lsr r2, r2, #2
|
||||
orr r2, r3
|
||||
add r6, r4, #0
|
||||
add r3, r2, #0
|
||||
str r2, [r5]
|
||||
add r6, #0x8e
|
||||
lsl r2, r2, #0x13
|
||||
ldrb r6, [r6]
|
||||
lsr r2, r2, #0x1f
|
||||
and r3, r1
|
||||
eor r2, r6
|
||||
lsl r2, r2, #0x1f
|
||||
lsr r2, r2, #0x13
|
||||
orr r2, r3
|
||||
str r2, [r5]
|
||||
add r2, r0, #0
|
||||
add r5, #8
|
||||
sub r0, r0, #1
|
||||
cmp r2, #0
|
||||
bne _02253D98
|
||||
_02253E30:
|
||||
ldr r4, [r4, #0x5c]
|
||||
cmp r4, #0
|
||||
beq _02253E38
|
||||
b _02253C96
|
||||
_02253E38:
|
||||
ldr r0, [sp, #0xc]
|
||||
ldr r1, [r0, #0x14]
|
||||
cmp r5, r1
|
||||
bls _02253E52
|
||||
sub r3, r5, r1
|
||||
asr r2, r3, #2
|
||||
lsr r2, r2, #0x1d
|
||||
add r2, r3, r2
|
||||
lsl r2, r2, #0xd
|
||||
ldr r0, [r0]
|
||||
lsr r2, r2, #0x10
|
||||
bl NNS_G2dEntryOamManagerOam
|
||||
_02253E52:
|
||||
add sp, #0x20
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_02253E58: .word FX_SinCosTable_
|
||||
_02253E5C: .word 0xDFFFFFFF
|
||||
_02253E60: .word 0xFFFFF3FF
|
||||
_02253E64: .word 0xFFFF0FFF
|
||||
_02253E68: .word 0xFFFFFC00
|
||||
_02253E6C: .word 0x000003FF
|
||||
_02253E70: .word 0xEFFFFFFF
|
||||
thumb_func_end MOD20_02253C78
|
||||
|
||||
thumb_func_start MOD20_02253E74
|
||||
MOD20_02253E74: ; 0x02253E74
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r7, r0, #0
|
||||
add r5, r1, #0
|
||||
add r6, r2, #0
|
||||
bl MOD20_02254068
|
||||
add r4, r0, #0
|
||||
beq _02253F10
|
||||
ldrb r1, [r5, #0xb]
|
||||
add r0, #0x82
|
||||
strh r1, [r0]
|
||||
add r0, r4, #0
|
||||
ldrb r1, [r5, #0xc]
|
||||
add r0, #0x80
|
||||
strh r1, [r0]
|
||||
add r0, r7, #0
|
||||
add r1, r4, #0
|
||||
bl MOD20_022540A4
|
||||
ldr r0, [r6, #8]
|
||||
str r0, [r4]
|
||||
ldr r0, [r6, #0xc]
|
||||
str r0, [r4, #4]
|
||||
ldrh r1, [r5, #8]
|
||||
bl NNS_G2dGetAnimSequenceByIdx
|
||||
add r1, r0, #0
|
||||
add r0, r4, #0
|
||||
ldr r2, [r4]
|
||||
add r0, #8
|
||||
bl NNS_G2dInitCellAnimation
|
||||
ldr r1, [r5]
|
||||
ldr r0, [r5, #4]
|
||||
str r1, [r4, #0x64]
|
||||
add r1, r4, #0
|
||||
str r0, [r4, #0x68]
|
||||
mov r0, #0
|
||||
add r1, #0x84
|
||||
strh r0, [r1]
|
||||
add r1, r4, #0
|
||||
add r1, #0x88
|
||||
strh r0, [r1]
|
||||
ldrb r2, [r5, #0xa]
|
||||
mov r1, #1
|
||||
tst r2, r1
|
||||
beq _02253ED4
|
||||
add r0, r1, #0
|
||||
_02253ED4:
|
||||
add r1, r4, #0
|
||||
add r1, #0x8a
|
||||
strb r0, [r1]
|
||||
ldrb r1, [r5, #0xa]
|
||||
mov r0, #2
|
||||
tst r0, r1
|
||||
beq _02253EE6
|
||||
mov r1, #1
|
||||
b _02253EE8
|
||||
_02253EE6:
|
||||
mov r1, #0
|
||||
_02253EE8:
|
||||
add r0, r4, #0
|
||||
add r0, #0x8b
|
||||
strb r1, [r0]
|
||||
add r1, r4, #0
|
||||
mov r0, #0
|
||||
add r1, #0x8e
|
||||
strb r0, [r1]
|
||||
add r1, r4, #0
|
||||
add r1, #0x8c
|
||||
strh r0, [r1]
|
||||
add r1, r4, #0
|
||||
add r1, #0x70
|
||||
str r1, [r4, #0x6c]
|
||||
add r1, r4, #0
|
||||
ldrb r2, [r5, #0xd]
|
||||
add r1, #0x87
|
||||
strb r2, [r1]
|
||||
add r1, r4, #0
|
||||
add r1, #0x86
|
||||
strb r0, [r1]
|
||||
_02253F10:
|
||||
add r0, r4, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end MOD20_02253E74
|
||||
|
||||
thumb_func_start MOD20_02253F14
|
||||
MOD20_02253F14: ; 0x02253F14
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
bl MOD20_022540FC
|
||||
add r0, r5, #0
|
||||
add r1, r4, #0
|
||||
bl MOD20_02254080
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end MOD20_02253F14
|
||||
|
||||
thumb_func_start MOD20_02253F28
|
||||
MOD20_02253F28: ; 0x02253F28
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
lsl r1, r1, #0x10
|
||||
ldr r0, [r4, #4]
|
||||
lsr r1, r1, #0x10
|
||||
bl NNS_G2dGetAnimSequenceByIdx
|
||||
add r1, r0, #0
|
||||
add r0, r4, #0
|
||||
ldr r2, [r4]
|
||||
add r0, #8
|
||||
bl NNS_G2dInitCellAnimation
|
||||
pop {r4, pc}
|
||||
thumb_func_end MOD20_02253F28
|
||||
|
||||
thumb_func_start MOD20_02253F44
|
||||
MOD20_02253F44: ; 0x02253F44
|
||||
ldr r0, [r0, #0x10]
|
||||
cmp r0, #0
|
||||
bne _02253F4E
|
||||
mov r0, #1
|
||||
bx lr
|
||||
_02253F4E:
|
||||
mov r0, #0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253F44
|
||||
|
||||
thumb_func_start MOD20_02253F54
|
||||
MOD20_02253F54: ; 0x02253F54
|
||||
ldr r3, [r0, #0x64]
|
||||
add r1, r3, r1
|
||||
str r1, [r0, #0x64]
|
||||
ldr r1, [r0, #0x68]
|
||||
add r1, r1, r2
|
||||
str r1, [r0, #0x68]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253F54
|
||||
|
||||
thumb_func_start MOD20_02253F64
|
||||
MOD20_02253F64: ; 0x02253F64
|
||||
str r1, [r0, #0x64]
|
||||
str r2, [r0, #0x68]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253F64
|
||||
|
||||
thumb_func_start MOD20_02253F6C
|
||||
MOD20_02253F6C: ; 0x02253F6C
|
||||
ldr r3, [r0, #0x64]
|
||||
str r3, [r1]
|
||||
ldr r0, [r0, #0x68]
|
||||
str r0, [r2]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253F6C
|
||||
|
||||
thumb_func_start MOD20_02253F78
|
||||
MOD20_02253F78: ; 0x02253F78
|
||||
add r0, #0x86
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253F78
|
||||
|
||||
thumb_func_start MOD20_02253F80
|
||||
MOD20_02253F80: ; 0x02253F80
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r1, #0
|
||||
add r6, r0, #0
|
||||
add r4, r2, #0
|
||||
bl MOD20_022540FC
|
||||
add r0, r5, #0
|
||||
add r0, #0x80
|
||||
strh r4, [r0]
|
||||
add r0, r6, #0
|
||||
add r1, r5, #0
|
||||
bl MOD20_022540A4
|
||||
pop {r4, r5, r6, pc}
|
||||
thumb_func_end MOD20_02253F80
|
||||
|
||||
thumb_func_start MOD20_02253F9C
|
||||
MOD20_02253F9C: ; 0x02253F9C
|
||||
add r0, #0x84
|
||||
strh r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253F9C
|
||||
|
||||
thumb_func_start MOD20_02253FA4
|
||||
MOD20_02253FA4: ; 0x02253FA4
|
||||
add r0, #0x88
|
||||
strh r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253FA4
|
||||
|
||||
thumb_func_start MOD20_02253FAC
|
||||
MOD20_02253FAC: ; 0x02253FAC
|
||||
add r0, #0x8e
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253FAC
|
||||
|
||||
thumb_func_start MOD20_02253FB4
|
||||
MOD20_02253FB4: ; 0x02253FB4
|
||||
add r0, #0x8c
|
||||
strh r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253FB4
|
||||
|
||||
thumb_func_start MOD20_02253FBC
|
||||
MOD20_02253FBC: ; 0x02253FBC
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
ldr r4, [sp, #0x18]
|
||||
add r5, r0, #0
|
||||
add r6, r1, #0
|
||||
add r1, r2, #0
|
||||
add r7, r3, #0
|
||||
str r4, [r5, #0x10]
|
||||
add r0, r6, #0
|
||||
add r2, r4, #0
|
||||
bl GfGfxLoader_UncompressFromNarc
|
||||
str r0, [r5]
|
||||
add r0, r6, #0
|
||||
add r1, r7, #0
|
||||
add r2, r4, #0
|
||||
bl GfGfxLoader_UncompressFromNarc
|
||||
str r0, [r5, #4]
|
||||
ldr r0, [r5]
|
||||
cmp r0, #0
|
||||
beq _0225400E
|
||||
ldr r1, [r5, #4]
|
||||
cmp r1, #0
|
||||
beq _0225400E
|
||||
add r1, r5, #0
|
||||
add r1, #8
|
||||
bl NNS_G2dGetUnpackedCellBank
|
||||
cmp r0, #0
|
||||
bne _02253FFC
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_02253FFC:
|
||||
ldr r0, [r5, #4]
|
||||
add r5, #0xc
|
||||
add r1, r5, #0
|
||||
bl NNS_G2dGetUnpackedMCAnimBank
|
||||
cmp r0, #0
|
||||
bne _0225400E
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
_0225400E:
|
||||
mov r0, #1
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02253FBC
|
||||
|
||||
thumb_func_start MOD20_02254014
|
||||
MOD20_02254014: ; 0x02254014
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
ldr r1, [r4]
|
||||
cmp r1, #0
|
||||
beq _02254028
|
||||
ldr r0, [r4, #0x10]
|
||||
bl FreeToHeapExplicit
|
||||
mov r0, #0
|
||||
str r0, [r4]
|
||||
_02254028:
|
||||
ldr r1, [r4, #4]
|
||||
cmp r1, #0
|
||||
beq _02254038
|
||||
ldr r0, [r4, #0x10]
|
||||
bl FreeToHeapExplicit
|
||||
mov r0, #0
|
||||
str r0, [r4, #4]
|
||||
_02254038:
|
||||
pop {r4, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02254014
|
||||
|
||||
thumb_func_start MOD20_0225403C
|
||||
MOD20_0225403C: ; 0x0225403C
|
||||
push {r4, r5, r6, lr}
|
||||
add r6, r2, #0
|
||||
add r5, r0, #0
|
||||
add r0, r6, #0
|
||||
add r4, r1, #0
|
||||
sub r6, r6, #1
|
||||
cmp r0, #0
|
||||
beq _0225405E
|
||||
_0225404C:
|
||||
add r0, r4, #0
|
||||
stmia r5!, {r4}
|
||||
bl MOD20_02254060
|
||||
add r0, r6, #0
|
||||
add r4, #0x90
|
||||
sub r6, r6, #1
|
||||
cmp r0, #0
|
||||
bne _0225404C
|
||||
_0225405E:
|
||||
pop {r4, r5, r6, pc}
|
||||
thumb_func_end MOD20_0225403C
|
||||
|
||||
thumb_func_start MOD20_02254060
|
||||
MOD20_02254060: ; 0x02254060
|
||||
mov r1, #0
|
||||
str r1, [r0, #0x5c]
|
||||
str r1, [r0, #0x60]
|
||||
bx lr
|
||||
thumb_func_end MOD20_02254060
|
||||
|
||||
thumb_func_start MOD20_02254068
|
||||
MOD20_02254068: ; 0x02254068
|
||||
ldrh r2, [r0, #0x12]
|
||||
ldrh r1, [r0, #0x10]
|
||||
cmp r2, r1
|
||||
bhs _0225407C
|
||||
add r1, r2, #1
|
||||
strh r1, [r0, #0x12]
|
||||
ldr r1, [r0, #4]
|
||||
lsl r0, r2, #2
|
||||
ldr r0, [r1, r0]
|
||||
bx lr
|
||||
_0225407C:
|
||||
mov r0, #0
|
||||
bx lr
|
||||
thumb_func_end MOD20_02254068
|
||||
|
||||
thumb_func_start MOD20_02254080
|
||||
MOD20_02254080: ; 0x02254080
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
ldrh r0, [r5, #0x12]
|
||||
add r4, r1, #0
|
||||
cmp r0, #0
|
||||
beq _022540A0
|
||||
add r0, r4, #0
|
||||
bl MOD20_02254060
|
||||
ldrh r0, [r5, #0x12]
|
||||
sub r0, r0, #1
|
||||
strh r0, [r5, #0x12]
|
||||
ldrh r0, [r5, #0x12]
|
||||
ldr r1, [r5, #4]
|
||||
lsl r0, r0, #2
|
||||
str r4, [r1, r0]
|
||||
_022540A0:
|
||||
pop {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02254080
|
||||
|
||||
thumb_func_start MOD20_022540A4
|
||||
MOD20_022540A4: ; 0x022540A4
|
||||
push {r4, r5}
|
||||
ldr r3, [r0, #8]
|
||||
cmp r3, #0
|
||||
bne _022540B8
|
||||
str r1, [r0, #8]
|
||||
mov r0, #0
|
||||
str r0, [r1, #0x5c]
|
||||
str r0, [r1, #0x60]
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
_022540B8:
|
||||
add r4, r1, #0
|
||||
add r4, #0x80
|
||||
ldr r5, [r4]
|
||||
add r2, r3, #0
|
||||
_022540C0:
|
||||
add r4, r2, #0
|
||||
add r4, #0x80
|
||||
ldr r4, [r4]
|
||||
cmp r5, r4
|
||||
bhs _022540E2
|
||||
cmp r2, r3
|
||||
bne _022540D0
|
||||
str r1, [r0, #8]
|
||||
_022540D0:
|
||||
ldr r0, [r2, #0x60]
|
||||
str r0, [r1, #0x60]
|
||||
cmp r0, #0
|
||||
beq _022540DA
|
||||
str r1, [r0, #0x5c]
|
||||
_022540DA:
|
||||
str r2, [r1, #0x5c]
|
||||
str r1, [r2, #0x60]
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
_022540E2:
|
||||
ldr r4, [r2, #0x5c]
|
||||
cmp r4, #0
|
||||
bne _022540F4
|
||||
str r1, [r2, #0x5c]
|
||||
str r2, [r1, #0x60]
|
||||
mov r0, #0
|
||||
str r0, [r1, #0x5c]
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
_022540F4:
|
||||
add r2, r4, #0
|
||||
b _022540C0
|
||||
thumb_func_end MOD20_022540A4
|
||||
|
||||
thumb_func_start MOD20_022540F8
|
||||
MOD20_022540F8: ; 0x022540F8
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
thumb_func_end MOD20_022540F8
|
||||
|
||||
thumb_func_start MOD20_022540FC
|
||||
MOD20_022540FC: ; 0x022540FC
|
||||
ldr r2, [r1, #0x60]
|
||||
cmp r2, #0
|
||||
beq _02254118
|
||||
ldr r0, [r1, #0x5c]
|
||||
cmp r0, #0
|
||||
beq _02254112
|
||||
str r0, [r2, #0x5c]
|
||||
ldr r2, [r1, #0x60]
|
||||
ldr r0, [r1, #0x5c]
|
||||
str r2, [r0, #0x60]
|
||||
bx lr
|
||||
_02254112:
|
||||
mov r0, #0
|
||||
str r0, [r2, #0x5c]
|
||||
bx lr
|
||||
_02254118:
|
||||
ldr r3, [r1, #0x5c]
|
||||
cmp r3, #0
|
||||
beq _02254128
|
||||
mov r2, #0
|
||||
str r2, [r3, #0x60]
|
||||
ldr r1, [r1, #0x5c]
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
_02254128:
|
||||
mov r1, #0
|
||||
str r1, [r0, #8]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_022540FC
|
||||
458
arm9/modules/20/asm/mod20_02254130.s
Normal file
458
arm9/modules/20/asm/mod20_02254130.s
Normal file
@@ -0,0 +1,458 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
.section .text
|
||||
.balign 2, 0
|
||||
|
||||
thumb_func_start MOD20_02254130
|
||||
MOD20_02254130: ; 0x02254130
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #8
|
||||
add r6, r0, #0
|
||||
add r7, r1, #0
|
||||
str r2, [sp]
|
||||
str r3, [sp, #4]
|
||||
ldr r5, [sp, #0x20]
|
||||
bne _02254144
|
||||
bl GF_AssertFail
|
||||
_02254144:
|
||||
add r0, r5, #0
|
||||
mov r1, #0x18
|
||||
bl AllocFromHeap
|
||||
add r4, r0, #0
|
||||
beq _02254192
|
||||
ldr r0, [sp]
|
||||
str r5, [r4, #8]
|
||||
str r0, [r4, #4]
|
||||
str r6, [r4]
|
||||
mov r1, #0xe
|
||||
ldr r0, [sp, #4]
|
||||
str r7, [r4, #0xc]
|
||||
str r0, [r4, #0x10]
|
||||
add r0, r5, #0
|
||||
mul r1, r7
|
||||
bl AllocFromHeap
|
||||
str r0, [r4, #0x14]
|
||||
cmp r0, #0
|
||||
beq _02254188
|
||||
mov r6, #0
|
||||
cmp r7, #0
|
||||
bls _02254192
|
||||
add r5, r6, #0
|
||||
_02254176:
|
||||
ldr r0, [r4, #0x14]
|
||||
add r0, r0, r5
|
||||
bl MOD20_022542E4
|
||||
add r6, r6, #1
|
||||
add r5, #0xe
|
||||
cmp r6, r7
|
||||
blo _02254176
|
||||
b _02254192
|
||||
_02254188:
|
||||
add r0, r5, #0
|
||||
add r1, r4, #0
|
||||
bl FreeToHeapExplicit
|
||||
mov r4, #0
|
||||
_02254192:
|
||||
add r0, r4, #0
|
||||
add sp, #8
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
thumb_func_end MOD20_02254130
|
||||
|
||||
thumb_func_start MOD20_02254198
|
||||
MOD20_02254198: ; 0x02254198
|
||||
push {r4, lr}
|
||||
add r4, r0, #0
|
||||
bne _022541A2
|
||||
bl GF_AssertFail
|
||||
_022541A2:
|
||||
ldr r0, [r4, #8]
|
||||
ldr r1, [r4, #0x14]
|
||||
bl FreeToHeapExplicit
|
||||
ldr r0, [r4, #8]
|
||||
add r1, r4, #0
|
||||
bl FreeToHeapExplicit
|
||||
pop {r4, pc}
|
||||
thumb_func_end MOD20_02254198
|
||||
|
||||
thumb_func_start MOD20_022541B4
|
||||
MOD20_022541B4: ; 0x022541B4
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
sub sp, #8
|
||||
add r5, r0, #0
|
||||
bl FUN_02020A98
|
||||
str r0, [sp, #4]
|
||||
cmp r0, #0
|
||||
beq _0225420C
|
||||
bl FUN_02020AA4
|
||||
ldr r1, [r5, #0xc]
|
||||
mov r7, #0
|
||||
str r0, [sp]
|
||||
cmp r1, #0
|
||||
bls _02254232
|
||||
add r4, r7, #0
|
||||
add r6, r7, #0
|
||||
_022541D6:
|
||||
ldr r0, [r5, #0x14]
|
||||
add r1, r0, r4
|
||||
ldrb r0, [r1, #1]
|
||||
strb r0, [r1, #2]
|
||||
ldr r0, [r5, #0x14]
|
||||
add r0, r0, r4
|
||||
ldrb r0, [r0, #1]
|
||||
cmp r0, #0
|
||||
ldr r0, [r5]
|
||||
beq _022541F2
|
||||
add r0, r0, r6
|
||||
bl FUN_02020A40
|
||||
b _022541F8
|
||||
_022541F2:
|
||||
add r0, r0, r6
|
||||
bl FUN_02020A6C
|
||||
_022541F8:
|
||||
ldr r1, [r5, #0x14]
|
||||
add r7, r7, #1
|
||||
add r1, r1, r4
|
||||
strb r0, [r1, #1]
|
||||
ldr r1, [r5, #0xc]
|
||||
add r4, #0xe
|
||||
add r6, r6, #4
|
||||
cmp r7, r1
|
||||
blo _022541D6
|
||||
b _02254232
|
||||
_0225420C:
|
||||
ldr r1, [r5, #0xc]
|
||||
mov r2, #0
|
||||
str r2, [sp]
|
||||
cmp r1, #0
|
||||
bls _02254232
|
||||
add r0, r2, #0
|
||||
add r3, r2, #0
|
||||
_0225421A:
|
||||
ldr r1, [r5, #0x14]
|
||||
add r2, r2, #1
|
||||
add r4, r1, r0
|
||||
ldrb r1, [r4, #1]
|
||||
strb r1, [r4, #2]
|
||||
ldr r1, [r5, #0x14]
|
||||
add r1, r1, r0
|
||||
strb r3, [r1, #1]
|
||||
ldr r1, [r5, #0xc]
|
||||
add r0, #0xe
|
||||
cmp r2, r1
|
||||
blo _0225421A
|
||||
_02254232:
|
||||
mov r6, #0
|
||||
cmp r1, #0
|
||||
bls _02254278
|
||||
ldr r7, _022542A8 ; =MOD20_02254710
|
||||
add r4, r6, #0
|
||||
_0225423C:
|
||||
ldr r3, [r5, #0x14]
|
||||
ldr r1, [sp, #4]
|
||||
add r0, r3, r4
|
||||
ldrb r3, [r3, r4]
|
||||
ldr r2, [sp]
|
||||
lsl r3, r3, #2
|
||||
ldr r3, [r7, r3]
|
||||
blx r3
|
||||
add r1, r0, #0
|
||||
ldr r0, [r5, #0x14]
|
||||
add r0, r0, r4
|
||||
ldrb r2, [r0, #1]
|
||||
ldrb r0, [r0, #2]
|
||||
cmp r2, r0
|
||||
bne _0225425C
|
||||
mov r2, #2
|
||||
_0225425C:
|
||||
cmp r1, #0
|
||||
bne _02254264
|
||||
cmp r2, #2
|
||||
beq _0225426E
|
||||
_02254264:
|
||||
ldr r3, [r5, #0x10]
|
||||
ldr r4, [r5, #4]
|
||||
add r0, r6, #0
|
||||
blx r4
|
||||
b _02254278
|
||||
_0225426E:
|
||||
ldr r0, [r5, #0xc]
|
||||
add r6, r6, #1
|
||||
add r4, #0xe
|
||||
cmp r6, r0
|
||||
blo _0225423C
|
||||
_02254278:
|
||||
ldr r0, [r5, #0xc]
|
||||
add r6, r6, #1
|
||||
cmp r6, r0
|
||||
bhs _022542A2
|
||||
mov r0, #0xe
|
||||
add r4, r6, #0
|
||||
ldr r7, _022542A8 ; =MOD20_02254710
|
||||
mul r4, r0
|
||||
_02254288:
|
||||
ldr r3, [r5, #0x14]
|
||||
ldr r1, [sp, #4]
|
||||
add r0, r3, r4
|
||||
ldrb r3, [r3, r4]
|
||||
ldr r2, [sp]
|
||||
lsl r3, r3, #2
|
||||
ldr r3, [r7, r3]
|
||||
blx r3
|
||||
ldr r0, [r5, #0xc]
|
||||
add r6, r6, #1
|
||||
add r4, #0xe
|
||||
cmp r6, r0
|
||||
blo _02254288
|
||||
_022542A2:
|
||||
add sp, #8
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
nop
|
||||
_022542A8: .word MOD20_02254710
|
||||
thumb_func_end MOD20_022541B4
|
||||
|
||||
thumb_func_start MOD20_022542AC
|
||||
MOD20_022542AC: ; 0x022542AC
|
||||
push {r3, r4}
|
||||
ldr r4, [r0, #0x14]
|
||||
mov r0, #0xe
|
||||
mul r0, r1
|
||||
add r1, r4, r0
|
||||
lsl r0, r2, #1
|
||||
add r0, r1, r0
|
||||
strh r3, [r0, #8]
|
||||
pop {r3, r4}
|
||||
bx lr
|
||||
thumb_func_end MOD20_022542AC
|
||||
|
||||
thumb_func_start MOD20_022542C0
|
||||
MOD20_022542C0: ; 0x022542C0
|
||||
ldr r3, [r0, #0x14]
|
||||
mov r0, #0xe
|
||||
mul r0, r1
|
||||
add r0, r3, r0
|
||||
strh r2, [r0, #0xc]
|
||||
bx lr
|
||||
thumb_func_end MOD20_022542C0
|
||||
|
||||
thumb_func_start MOD20_022542CC
|
||||
MOD20_022542CC: ; 0x022542CC
|
||||
add r3, r1, #0
|
||||
mov r2, #0xe
|
||||
mul r3, r2
|
||||
ldr r1, [r0, #0x14]
|
||||
mov r2, #0
|
||||
add r1, r1, r3
|
||||
strh r2, [r1, #4]
|
||||
ldr r0, [r0, #0x14]
|
||||
mov r1, #4
|
||||
strb r1, [r0, r3]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_022542CC
|
||||
|
||||
thumb_func_start MOD20_022542E4
|
||||
MOD20_022542E4: ; 0x022542E4
|
||||
mov r2, #0
|
||||
strb r2, [r0]
|
||||
strb r2, [r0, #1]
|
||||
strb r2, [r0, #2]
|
||||
strh r2, [r0, #4]
|
||||
strh r2, [r0, #6]
|
||||
add r3, r0, #0
|
||||
add r1, r2, #0
|
||||
_022542F4:
|
||||
add r2, r2, #1
|
||||
strh r1, [r3, #8]
|
||||
add r3, r3, #2
|
||||
cmp r2, #2
|
||||
blo _022542F4
|
||||
strh r1, [r0, #0xc]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_022542E4
|
||||
|
||||
thumb_func_start MOD20_02254304
|
||||
MOD20_02254304: ; 0x02254304
|
||||
strb r1, [r0]
|
||||
mov r1, #0
|
||||
strh r1, [r0, #4]
|
||||
bx lr
|
||||
thumb_func_end MOD20_02254304
|
||||
|
||||
thumb_func_start MOD20_0225430C
|
||||
MOD20_0225430C: ; 0x0225430C
|
||||
strb r1, [r0]
|
||||
bx lr
|
||||
thumb_func_end MOD20_0225430C
|
||||
|
||||
thumb_func_start MOD20_02254310
|
||||
MOD20_02254310: ; 0x02254310
|
||||
ldrh r2, [r0, #4]
|
||||
ldr r1, _02254320 ; =0x0000FFFF
|
||||
cmp r2, r1
|
||||
bhs _0225431C
|
||||
add r1, r2, #1
|
||||
strh r1, [r0, #4]
|
||||
_0225431C:
|
||||
bx lr
|
||||
nop
|
||||
_02254320: .word 0x0000FFFF
|
||||
thumb_func_end MOD20_02254310
|
||||
|
||||
thumb_func_start MOD20_02254324
|
||||
MOD20_02254324: ; 0x02254324
|
||||
ldrh r3, [r0, #4]
|
||||
mov r2, #0
|
||||
_02254328:
|
||||
ldrh r1, [r0, #8]
|
||||
cmp r3, r1
|
||||
bne _02254332
|
||||
add r0, r2, #5
|
||||
bx lr
|
||||
_02254332:
|
||||
add r2, r2, #1
|
||||
add r0, r0, #2
|
||||
cmp r2, #2
|
||||
blo _02254328
|
||||
mov r0, #0
|
||||
bx lr
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02254324
|
||||
|
||||
thumb_func_start MOD20_02254340
|
||||
MOD20_02254340: ; 0x02254340
|
||||
push {r3, lr}
|
||||
ldrb r1, [r0, #1]
|
||||
cmp r1, #0
|
||||
beq _02254356
|
||||
cmp r2, #0
|
||||
beq _02254356
|
||||
mov r1, #1
|
||||
bl MOD20_02254304
|
||||
mov r0, #1
|
||||
pop {r3, pc}
|
||||
_02254356:
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_02254340
|
||||
|
||||
thumb_func_start MOD20_0225435C
|
||||
MOD20_0225435C: ; 0x0225435C
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
bl MOD20_02254310
|
||||
ldrb r0, [r5, #1]
|
||||
cmp r0, #0
|
||||
beq _0225438A
|
||||
add r0, r5, #0
|
||||
bl MOD20_02254324
|
||||
cmp r0, #0
|
||||
bne _022543B8
|
||||
ldrh r1, [r5, #0xc]
|
||||
cmp r1, #0
|
||||
beq _022543B6
|
||||
ldrh r0, [r5, #4]
|
||||
cmp r0, r1
|
||||
blo _022543B6
|
||||
mov r0, #0
|
||||
strh r0, [r5, #4]
|
||||
mov r0, #7
|
||||
pop {r3, r4, r5, pc}
|
||||
_0225438A:
|
||||
cmp r4, #0
|
||||
beq _0225439A
|
||||
add r0, r5, #0
|
||||
mov r1, #0
|
||||
bl MOD20_02254304
|
||||
mov r0, #2
|
||||
pop {r3, r4, r5, pc}
|
||||
_0225439A:
|
||||
ldrh r0, [r5, #6]
|
||||
cmp r0, #0
|
||||
beq _022543AA
|
||||
add r0, r5, #0
|
||||
mov r1, #2
|
||||
bl MOD20_0225430C
|
||||
b _022543B6
|
||||
_022543AA:
|
||||
add r0, r5, #0
|
||||
mov r1, #0
|
||||
bl MOD20_02254304
|
||||
mov r0, #3
|
||||
pop {r3, r4, r5, pc}
|
||||
_022543B6:
|
||||
mov r0, #0
|
||||
_022543B8:
|
||||
pop {r3, r4, r5, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_0225435C
|
||||
|
||||
thumb_func_start MOD20_022543BC
|
||||
MOD20_022543BC: ; 0x022543BC
|
||||
push {r3, r4, r5, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r2, #0
|
||||
bl MOD20_02254310
|
||||
ldrh r1, [r5, #4]
|
||||
ldrh r0, [r5, #6]
|
||||
cmp r1, r0
|
||||
bls _022543DA
|
||||
add r0, r5, #0
|
||||
mov r1, #0
|
||||
bl MOD20_02254304
|
||||
mov r0, #3
|
||||
pop {r3, r4, r5, pc}
|
||||
_022543DA:
|
||||
ldrb r0, [r5, #1]
|
||||
cmp r0, #0
|
||||
beq _022543F0
|
||||
cmp r4, #0
|
||||
beq _022543F0
|
||||
add r0, r5, #0
|
||||
mov r1, #3
|
||||
bl MOD20_02254304
|
||||
mov r0, #4
|
||||
pop {r3, r4, r5, pc}
|
||||
_022543F0:
|
||||
mov r0, #0
|
||||
pop {r3, r4, r5, pc}
|
||||
thumb_func_end MOD20_022543BC
|
||||
|
||||
thumb_func_start MOD20_022543F4
|
||||
MOD20_022543F4: ; 0x022543F4
|
||||
push {r3, lr}
|
||||
ldrb r1, [r0, #1]
|
||||
cmp r1, #0
|
||||
beq _02254402
|
||||
bl MOD20_02254310
|
||||
b _02254408
|
||||
_02254402:
|
||||
mov r1, #0
|
||||
bl MOD20_02254304
|
||||
_02254408:
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
thumb_func_end MOD20_022543F4
|
||||
|
||||
thumb_func_start MOD20_0225440C
|
||||
MOD20_0225440C: ; 0x0225440C
|
||||
push {r3, lr}
|
||||
ldrb r1, [r0, #1]
|
||||
cmp r1, #0
|
||||
bne _0225441A
|
||||
mov r1, #0
|
||||
bl MOD20_02254304
|
||||
_0225441A:
|
||||
mov r0, #0
|
||||
pop {r3, pc}
|
||||
.align 2, 0
|
||||
thumb_func_end MOD20_0225440C
|
||||
|
||||
.section .rodata
|
||||
|
||||
.global MOD20_02254710
|
||||
MOD20_02254710: ; 0x02254710
|
||||
.word MOD20_02254340, MOD20_0225435C, MOD20_022543BC, MOD20_022543F4
|
||||
.word MOD20_0225440C
|
||||
185
arm9/modules/20/asm/mod20_02254420.s
Normal file
185
arm9/modules/20/asm/mod20_02254420.s
Normal file
@@ -0,0 +1,185 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "global.inc"
|
||||
.section .text
|
||||
.balign 2, 0
|
||||
|
||||
thumb_func_start MOD20_02254420
|
||||
MOD20_02254420: ; 0x02254420
|
||||
push {r3, r4, r5, r6, r7, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
add r6, r2, #0
|
||||
add r7, r3, #0
|
||||
cmp r5, #0x1e
|
||||
blo _02254432
|
||||
bl GF_AssertFail
|
||||
_02254432:
|
||||
cmp r4, #0x21
|
||||
blo _0225443A
|
||||
bl GF_AssertFail
|
||||
_0225443A:
|
||||
cmp r5, #0x1e
|
||||
blo _02254440
|
||||
mov r5, #0
|
||||
_02254440:
|
||||
cmp r4, #0x21
|
||||
blo _02254446
|
||||
mov r4, #0
|
||||
_02254446:
|
||||
ldr r0, _02254458 ; =MOD20_02254744
|
||||
lsl r1, r5, #1
|
||||
ldrh r0, [r0, r1]
|
||||
lsl r1, r4, #1
|
||||
str r0, [r6]
|
||||
ldr r0, _0225445C ; =MOD20_02254780
|
||||
ldrh r0, [r0, r1]
|
||||
str r0, [r7]
|
||||
pop {r3, r4, r5, r6, r7, pc}
|
||||
.align 2, 0
|
||||
_02254458: .word MOD20_02254744
|
||||
_0225445C: .word MOD20_02254780
|
||||
thumb_func_end MOD20_02254420
|
||||
|
||||
thumb_func_start MOD20_02254460
|
||||
MOD20_02254460: ; 0x02254460
|
||||
push {r4, r5, r6, lr}
|
||||
add r5, r0, #0
|
||||
add r4, r1, #0
|
||||
add r6, r2, #0
|
||||
cmp r5, #4
|
||||
blo _02254470
|
||||
bl GF_AssertFail
|
||||
_02254470:
|
||||
ldr r0, _02254480 ; =MOD20_02254724
|
||||
lsl r1, r5, #3
|
||||
ldr r0, [r0, r1]
|
||||
str r0, [r4]
|
||||
ldr r0, _02254484 ; =MOD20_02254724 + 4
|
||||
ldr r0, [r0, r1]
|
||||
str r0, [r6]
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
_02254480: .word MOD20_02254724
|
||||
_02254484: .word MOD20_02254724 + 4
|
||||
thumb_func_end MOD20_02254460
|
||||
|
||||
thumb_func_start MOD20_02254488
|
||||
MOD20_02254488: ; 0x02254488
|
||||
push {r4, r5}
|
||||
ldr r5, _022544B8 ; =MOD20_022547C2
|
||||
mov r4, #0
|
||||
_0225448E:
|
||||
ldrh r3, [r5]
|
||||
cmp r0, r3
|
||||
bne _022544A8
|
||||
ldr r0, _022544BC ; =MOD20_022547C2 + 2
|
||||
lsl r3, r4, #2
|
||||
ldrb r0, [r0, r3]
|
||||
str r0, [r1]
|
||||
ldr r0, _022544C0 ; =MOD20_022547C2 + 3
|
||||
ldrb r0, [r0, r3]
|
||||
str r0, [r2]
|
||||
mov r0, #1
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
_022544A8:
|
||||
add r4, r4, #1
|
||||
add r5, r5, #4
|
||||
cmp r4, #0x1d
|
||||
blo _0225448E
|
||||
mov r0, #0
|
||||
pop {r4, r5}
|
||||
bx lr
|
||||
nop
|
||||
_022544B8: .word MOD20_022547C2
|
||||
_022544BC: .word MOD20_022547C2 + 2
|
||||
_022544C0: .word MOD20_022547C2 + 3
|
||||
thumb_func_end MOD20_02254488
|
||||
|
||||
.section .rodata
|
||||
|
||||
.global MOD20_02254724
|
||||
MOD20_02254724: ; 0x02254724
|
||||
.word 0x00000020, 0x0000002A
|
||||
.word 0x00000032, 0x0000002A
|
||||
.word 0x000000A8, 0x0000007A
|
||||
.word 0x000000C2, 0x0000003A
|
||||
|
||||
.global MOD20_02254744
|
||||
MOD20_02254744: ; 0x02254744
|
||||
.short 0x001A, 0x0020, 0x0026, 0x002C, 0x0032, 0x0038, 0x003E, 0x0044
|
||||
.short 0x004A, 0x0050, 0x0056, 0x005C, 0x0062, 0x0068, 0x006E, 0x0074
|
||||
.short 0x007A, 0x0080, 0x0086, 0x008C, 0x0092, 0x0098, 0x009E, 0x00A4
|
||||
.short 0x00AA, 0x00B0, 0x00B6, 0x00BC, 0x00C2, 0x00C8
|
||||
|
||||
.global MOD20_02254780
|
||||
MOD20_02254780: ; 0x02254780
|
||||
.short 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, 0x001E, 0x0024
|
||||
.short 0x002A, 0x0030, 0x0036, 0x003C, 0x0042, 0x0048, 0x004E, 0x0054
|
||||
.short 0x005A, 0x0060, 0x0066, 0x006C, 0x0072, 0x0078, 0x007E, 0x0084
|
||||
.short 0x008A, 0x0090, 0x0096, 0x009C, 0x00A2, 0x00A8, 0x00AE, 0x00B4
|
||||
.short 0x00BA
|
||||
|
||||
.global MOD20_022547C2
|
||||
MOD20_022547C2: ; 0x022547C2
|
||||
.short 0x0156
|
||||
.byte 0x2F, 0x96
|
||||
.short 0x0157
|
||||
.byte 0x38, 0x90
|
||||
.short 0x0158
|
||||
.byte 0x41, 0x84
|
||||
.short 0x0159
|
||||
.byte 0x32, 0x7E
|
||||
.short 0x015A
|
||||
.byte 0x32, 0x78
|
||||
.short 0x015B
|
||||
.byte 0x3E, 0x6C
|
||||
.short 0x015D
|
||||
.byte 0x4A, 0x5A
|
||||
.short 0x015E
|
||||
.byte 0x50, 0x6F
|
||||
.short 0x0161
|
||||
.byte 0x53, 0x7E
|
||||
.short 0x0162
|
||||
.byte 0x65, 0x7E
|
||||
.short 0x0164
|
||||
.byte 0x7D, 0x7E
|
||||
.short 0x016A
|
||||
.byte 0x80, 0x66
|
||||
.short 0x016B
|
||||
.byte 0x7A, 0x5A
|
||||
.short 0x016D
|
||||
.byte 0x5C, 0x5A
|
||||
.short 0x016E
|
||||
.byte 0x68, 0x5A
|
||||
.short 0x016F
|
||||
.byte 0x6E, 0x8A
|
||||
.short 0x0173
|
||||
.byte 0x77, 0x96
|
||||
.short 0x0175
|
||||
.byte 0x98, 0x93
|
||||
.short 0x017C
|
||||
.byte 0x98, 0x78
|
||||
.short 0x017E
|
||||
.byte 0x8C, 0x66
|
||||
.short 0x017F
|
||||
.byte 0x56, 0x42
|
||||
.short 0x0181
|
||||
.byte 0x50, 0x33
|
||||
.short 0x0184
|
||||
.byte 0x29, 0x84
|
||||
.short 0x0187
|
||||
.byte 0x38, 0x9C
|
||||
.short 0x01D3
|
||||
.byte 0x3B, 0xA2
|
||||
.short 0x0188
|
||||
.byte 0x4A, 0xA2
|
||||
.short 0x018B
|
||||
.byte 0xAA, 0x8A
|
||||
.short 0x00C8
|
||||
.byte 0x44, 0x72
|
||||
.short 0x00CC
|
||||
.byte 0x38, 0x66
|
||||
|
||||
.data
|
||||
.bss
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user