mirror of
https://github.com/pret/pmd-sky.git
synced 2026-03-21 17:25:15 -05:00
Decomped ov28_0238A58C
Decomped by @taxicat1
This commit is contained in:
parent
92cde4bc3f
commit
520ae97054
|
|
@ -1,23 +1,15 @@
|
|||
#pragma once
|
||||
.public DrawTextInWindow
|
||||
.public GetStringFromFileVeneer
|
||||
.public MemAlloc
|
||||
.public MemFree
|
||||
.public NewWindow
|
||||
.public ov11_022E6E8C
|
||||
.public ov11_022E6EC8
|
||||
.public ov28_0238ABD4
|
||||
.public ov28_0238ACFC
|
||||
.public ov28_0238AD0C
|
||||
.public ov28_0238AD24
|
||||
.public ov28_0238AD28
|
||||
.public ov28_0238AD2C
|
||||
.public ov28_0238AD80
|
||||
.public ov28_0238ADA0
|
||||
.public strcpy
|
||||
.public sub_02025B80
|
||||
.public sub_02025B90
|
||||
.public sub_02025C14
|
||||
.public sub_02027170
|
||||
.public sub_02027228
|
||||
.public sub_0202810C
|
||||
.public sub_0202822C
|
||||
.public sub_0202825C
|
||||
.public sub_02028270
|
||||
.public sub_02028354
|
||||
.public sub_02028EE8
|
||||
.public sub_02028F88
|
||||
.public sub_02028FA0
|
||||
.public sub_020348E4
|
||||
|
|
|
|||
22
asm/include/overlay_28_0238A5CC.inc
Normal file
22
asm/include/overlay_28_0238A5CC.inc
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#pragma once
|
||||
.public DrawTextInWindow
|
||||
.public NewWindow
|
||||
.public ov11_022E6E8C
|
||||
.public ov11_022E6EC8
|
||||
.public ov28_0238A140
|
||||
.public ov28_0238A184
|
||||
.public ov28_0238A490
|
||||
.public ov28_0238A58C
|
||||
.public ov28_0238AD0C
|
||||
.public ov28_0238AD80
|
||||
.public ov28_0238ADA0
|
||||
.public sub_02025B80
|
||||
.public sub_02025B90
|
||||
.public sub_0202810C
|
||||
.public sub_0202822C
|
||||
.public sub_0202825C
|
||||
.public sub_02028270
|
||||
.public sub_02028354
|
||||
.public sub_02028EE8
|
||||
.public sub_02028F88
|
||||
.public sub_02028FA0
|
||||
593
asm/overlay_28.s
593
asm/overlay_28.s
|
|
@ -319,596 +319,3 @@ _0238A580: .word ov28_0238ADA0
|
|||
_0238A584: .word ov28_0238AD24
|
||||
_0238A588: .word ov28_0238AD2C
|
||||
arm_func_end ov28_0238A490
|
||||
|
||||
arm_func_start ov28_0238A58C
|
||||
ov28_0238A58C: ; 0x0238A58C
|
||||
stmdb sp!, {r3, lr}
|
||||
mov r0, #0
|
||||
bl ov28_0238AB5C
|
||||
bl sub_02025C14
|
||||
bl sub_02027170
|
||||
bl sub_02027228
|
||||
ldr r0, _0238A5C8 ; =ov28_0238AD80
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
ldmeqia sp!, {r3, pc}
|
||||
bl MemFree
|
||||
ldr r0, _0238A5C8 ; =ov28_0238AD80
|
||||
mov r1, #0
|
||||
str r1, [r0]
|
||||
ldmia sp!, {r3, pc}
|
||||
.align 2, 0
|
||||
_0238A5C8: .word ov28_0238AD80
|
||||
arm_func_end ov28_0238A58C
|
||||
|
||||
arm_func_start ov28_0238A5CC
|
||||
ov28_0238A5CC: ; 0x0238A5CC
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0x18
|
||||
ldr r6, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r1, [r6]
|
||||
ldr r0, [r1]
|
||||
cmp r0, #6
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _0238AB44
|
||||
_0238A5EC: ; jump table
|
||||
b _0238A608 ; case 0
|
||||
b _0238A6BC ; case 1
|
||||
b _0238A6C8 ; case 2
|
||||
b _0238A6A0 ; case 3
|
||||
b _0238A678 ; case 4
|
||||
b _0238AAC0 ; case 5
|
||||
b _0238AA90 ; case 6
|
||||
_0238A608:
|
||||
bl ov11_022E6EC8
|
||||
cmp r0, #0
|
||||
beq _0238AB44
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
mov r1, r6
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0238A648
|
||||
ldr r2, [r1]
|
||||
mov r0, #1
|
||||
add r2, r2, #0x58
|
||||
add r3, r2, #0x800
|
||||
mov r1, #0x10
|
||||
mov r2, #0x68
|
||||
bl ov28_0238ABD4
|
||||
b _0238A664
|
||||
_0238A648:
|
||||
ldr r2, [r1]
|
||||
mov r0, #0
|
||||
add r2, r2, #0x58
|
||||
add r3, r2, #0x800
|
||||
mov r1, #0x10
|
||||
mov r2, #0x60
|
||||
bl ov28_0238ABD4
|
||||
_0238A664:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
mov r1, #4
|
||||
ldr r0, [r0]
|
||||
str r1, [r0]
|
||||
b _0238AB44
|
||||
_0238A678:
|
||||
bl ov11_022E6EC8
|
||||
cmp r0, #0
|
||||
beq _0238AB44
|
||||
mov r0, #1
|
||||
bl ov11_022E6E8C
|
||||
mov r0, r6
|
||||
ldr r0, [r0]
|
||||
mov r1, #3
|
||||
str r1, [r0]
|
||||
b _0238AB44
|
||||
_0238A6A0:
|
||||
bl ov11_022E6EC8
|
||||
cmp r0, #0
|
||||
movne r0, r6
|
||||
ldrne r0, [r0]
|
||||
movne r1, #1
|
||||
strne r1, [r0]
|
||||
b _0238AB44
|
||||
_0238A6BC:
|
||||
mov r0, #2
|
||||
str r0, [r1]
|
||||
b _0238AB44
|
||||
_0238A6C8:
|
||||
mov r4, #0
|
||||
mvn r7, #1
|
||||
_0238A6D0:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r4
|
||||
ldrsb r8, [r0, #9]
|
||||
cmp r8, r7
|
||||
beq _0238A718
|
||||
mov r0, r8
|
||||
bl sub_02028354
|
||||
cmp r0, #2
|
||||
bne _0238A718
|
||||
mov r0, r8
|
||||
bl sub_02028FA0
|
||||
cmp r0, #0
|
||||
bne _0238A718
|
||||
mov r0, r8
|
||||
bl sub_0202822C
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r4
|
||||
strb r7, [r0, #9]
|
||||
_0238A718:
|
||||
add r4, r4, #1
|
||||
cmp r4, #0x14
|
||||
blt _0238A6D0
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r2, [r0]
|
||||
cmp r2, #0
|
||||
bne _0238A854
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x20
|
||||
bl ov28_0238A184
|
||||
ldr r1, _0238AB50 ; =ov28_0238AD80
|
||||
mov r5, r0
|
||||
ldr r1, [r1]
|
||||
ldr r0, [r1, #0x24]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #0xc0
|
||||
blt _0238A774
|
||||
add r0, r1, #0x3c
|
||||
add r0, r0, #0x400
|
||||
bl ov28_0238A184
|
||||
orr r5, r5, r0
|
||||
b _0238AA48
|
||||
_0238A774:
|
||||
add r4, r1, #0x3c
|
||||
ldr r0, [r4, #0x410]
|
||||
cmp r0, #0
|
||||
beq _0238A790
|
||||
cmp r0, #1
|
||||
beq _0238A814
|
||||
b _0238AA48
|
||||
_0238A790:
|
||||
mvn r0, #3
|
||||
str r0, [sp, #0x10]
|
||||
ldr r0, [r4, #0x404]
|
||||
add r1, sp, #0x10
|
||||
mov r0, r0, asr #0x10
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [r4, #0x40c]
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x404]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x404]
|
||||
ldr r0, [sp, #0x14]
|
||||
cmp r0, #0x88
|
||||
ble _0238AA48
|
||||
ldr r0, [r4, #0x40c]
|
||||
mov r2, #0x20
|
||||
add r1, sp, #0x10
|
||||
mov r3, r2
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028EE8
|
||||
ldr r0, [r4, #0x40c]
|
||||
mov r1, #1
|
||||
and r0, r0, #0xff
|
||||
bl sub_0202825C
|
||||
ldr r0, [r4, #0x410]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x410]
|
||||
b _0238AA48
|
||||
_0238A814:
|
||||
ldr r1, [r4, #0x40c]
|
||||
add r0, r4, #0x400
|
||||
and r1, r1, #0xff
|
||||
bl ov28_0238A140
|
||||
mvn r1, #3
|
||||
mov r0, #0
|
||||
str r1, [sp, #0x10]
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [r4, #0x40c]
|
||||
add r1, sp, #0x10
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, [r4, #0x410]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x410]
|
||||
b _0238AA48
|
||||
_0238A854:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r4, [r0]
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #8
|
||||
blt _0238A87C
|
||||
add r0, r4, #0x20
|
||||
bl ov28_0238A184
|
||||
mov r5, r0
|
||||
b _0238A924
|
||||
_0238A87C:
|
||||
ldr r0, [r4, #0x30]
|
||||
cmp r0, #0
|
||||
beq _0238A8A4
|
||||
cmp r0, #1
|
||||
ldreq r0, _0238AB58 ; =ov28_0238AD0C
|
||||
ldreq r1, [r4, #0x24]
|
||||
ldreq r0, [r0, r2, lsl #2]
|
||||
addeq r0, r1, r0
|
||||
streq r0, [r4, #0x24]
|
||||
b _0238A924
|
||||
_0238A8A4:
|
||||
mvn r0, #3
|
||||
str r0, [sp, #8]
|
||||
ldr r0, [r4, #0x24]
|
||||
add r1, sp, #8
|
||||
mov r0, r0, asr #0x10
|
||||
str r0, [sp, #0xc]
|
||||
ldr r0, [r4, #0x2c]
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x24]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x24]
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0x88
|
||||
ble _0238A924
|
||||
ldr r0, [r4, #0x2c]
|
||||
mov r2, #0x20
|
||||
add r1, sp, #8
|
||||
mov r3, r2
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028EE8
|
||||
ldr r0, [r4, #0x2c]
|
||||
mov r1, #1
|
||||
and r0, r0, #0xff
|
||||
bl sub_0202825C
|
||||
ldr r0, [r4, #0x30]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x30]
|
||||
_0238A924:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r4, [r0]
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #0x60
|
||||
blt _0238AA48
|
||||
ldr r0, [r4, #0x440]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #0x68
|
||||
blt _0238A960
|
||||
add r0, r4, #0x3c
|
||||
add r0, r0, #0x400
|
||||
bl ov28_0238A184
|
||||
orr r5, r5, r0
|
||||
b _0238AA48
|
||||
_0238A960:
|
||||
ldr r0, [r4, #0x44c]
|
||||
cmp r0, #0
|
||||
beq _0238A980
|
||||
cmp r0, #1
|
||||
beq _0238A9A8
|
||||
cmp r0, #2
|
||||
beq _0238AA2C
|
||||
b _0238AA48
|
||||
_0238A980:
|
||||
add r0, r4, #0x58
|
||||
mov r1, #0x10
|
||||
sub r2, r1, #0x50
|
||||
add r3, r0, #0x800
|
||||
mov r0, #1
|
||||
bl ov28_0238ABD4
|
||||
ldr r0, [r4, #0x44c]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x44c]
|
||||
b _0238AA48
|
||||
_0238A9A8:
|
||||
mvn r0, #3
|
||||
str r0, [sp]
|
||||
ldr r0, [r4, #0x440]
|
||||
add r1, sp, #0
|
||||
mov r0, r0, asr #0x10
|
||||
str r0, [sp, #4]
|
||||
ldr r0, [r4, #0x448]
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x440]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x440]
|
||||
ldr r0, [sp, #4]
|
||||
cmp r0, #0xd0
|
||||
ble _0238AA48
|
||||
ldr r0, [r4, #0x448]
|
||||
mov r2, #0x20
|
||||
add r1, sp, #0
|
||||
mov r3, r2
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028EE8
|
||||
ldr r0, [r4, #0x448]
|
||||
mov r1, #1
|
||||
and r0, r0, #0xff
|
||||
bl sub_0202825C
|
||||
ldr r0, [r4, #0x44c]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x44c]
|
||||
b _0238AA48
|
||||
_0238AA2C:
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x440]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x440]
|
||||
_0238AA48:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r2, [r0]
|
||||
ldrb r0, [r2, #8]
|
||||
cmp r0, #0
|
||||
bne _0238AA78
|
||||
ldr r0, [r2, #0x20]
|
||||
cmp r0, #3
|
||||
blt _0238AA78
|
||||
mov r1, #1
|
||||
mov r0, #2
|
||||
strb r1, [r2, #8]
|
||||
bl ov11_022E6E8C
|
||||
_0238AA78:
|
||||
cmp r5, #0
|
||||
ldreq r0, _0238AB50 ; =ov28_0238AD80
|
||||
moveq r1, #6
|
||||
ldreq r0, [r0]
|
||||
streq r1, [r0]
|
||||
b _0238AB44
|
||||
_0238AA90:
|
||||
mov r0, #0
|
||||
mov r1, #1
|
||||
bl sub_0202825C
|
||||
mov r0, #1
|
||||
mov r1, r0
|
||||
bl sub_0202825C
|
||||
mov r0, #0
|
||||
bl sub_02025B80
|
||||
mov r0, #0
|
||||
bl ov11_022E6E8C
|
||||
mov r0, #4
|
||||
b _0238AB48
|
||||
_0238AAC0:
|
||||
mvn r0, #3
|
||||
bl ov28_0238AB5C
|
||||
mov r0, #0
|
||||
bl ov11_022E6E8C
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r0, [r0]
|
||||
cmp r0, #5
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _0238AB2C
|
||||
_0238AAE4: ; jump table
|
||||
b _0238AAFC ; case 0
|
||||
b _0238AB04 ; case 1
|
||||
b _0238AB0C ; case 2
|
||||
b _0238AB14 ; case 3
|
||||
b _0238AB1C ; case 4
|
||||
b _0238AB24 ; case 5
|
||||
_0238AAFC:
|
||||
mov r0, #0
|
||||
b _0238AB30
|
||||
_0238AB04:
|
||||
mov r0, #1
|
||||
b _0238AB30
|
||||
_0238AB0C:
|
||||
mov r0, #2
|
||||
b _0238AB30
|
||||
_0238AB14:
|
||||
mov r0, #3
|
||||
b _0238AB30
|
||||
_0238AB1C:
|
||||
mov r0, #4
|
||||
b _0238AB30
|
||||
_0238AB24:
|
||||
mov r0, #5
|
||||
b _0238AB30
|
||||
_0238AB2C:
|
||||
mvn r0, #0
|
||||
_0238AB30:
|
||||
bl sub_02025B90
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
mov r1, #0
|
||||
ldr r0, [r0]
|
||||
str r1, [r0]
|
||||
_0238AB44:
|
||||
mov r0, #1
|
||||
_0238AB48:
|
||||
add sp, sp, #0x18
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_0238AB50: .word ov28_0238AD80
|
||||
_0238AB54: .word ov28_0238ADA0
|
||||
_0238AB58: .word ov28_0238AD0C
|
||||
arm_func_end ov28_0238A5CC
|
||||
|
||||
arm_func_start ov28_0238AB5C
|
||||
ov28_0238AB5C: ; 0x0238AB5C
|
||||
stmdb sp!, {r4, lr}
|
||||
sub sp, sp, #8
|
||||
mov r2, #0x20
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
add r1, sp, #0
|
||||
mov r3, r2
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
bl sub_02028EE8
|
||||
mov r2, #0x20
|
||||
add r1, sp, #0
|
||||
mov r3, r2
|
||||
mov r0, #1
|
||||
bl sub_02028EE8
|
||||
add r1, sp, #0
|
||||
mov r0, #0
|
||||
str r4, [sp]
|
||||
bl sub_02028F88
|
||||
add r1, sp, #0
|
||||
mov r0, #1
|
||||
bl sub_02028F88
|
||||
mov r0, #0
|
||||
mov r1, #1
|
||||
bl sub_0202825C
|
||||
mov r0, #1
|
||||
mov r1, r0
|
||||
bl sub_0202825C
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end ov28_0238AB5C
|
||||
|
||||
arm_func_start ov28_0238ABD4
|
||||
ov28_0238ABD4: ; 0x0238ABD4
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r5, r1
|
||||
mov r1, r5, asr #2
|
||||
mov r7, #0
|
||||
mov r6, r0
|
||||
add r1, r5, r1, lsr #29
|
||||
mov r1, r1, asr #3
|
||||
mov r4, r2, asr #2
|
||||
add r4, r2, r4, lsr #29
|
||||
mov lr, r4, asr #3
|
||||
mov r8, r2, lsr #0x1f
|
||||
sub r0, r7, #5
|
||||
rsb r2, r8, r2, lsl #29
|
||||
and ip, r1, #0xff
|
||||
strb r0, [sp, #9]
|
||||
rsb ip, ip, #0x1d
|
||||
str r7, [sp]
|
||||
str r7, [sp, #0xc]
|
||||
adds r8, r8, r2, ror #29
|
||||
ldr r0, _0238ACF8 ; =ov28_0238AD80
|
||||
movne r7, #1
|
||||
strb r1, [sp, #4]
|
||||
add r1, r7, #2
|
||||
ldr r2, [r0]
|
||||
mov r4, r3
|
||||
strb r6, [sp, #8]
|
||||
strb lr, [sp, #5]
|
||||
strb ip, [sp, #6]
|
||||
strb r1, [sp, #7]
|
||||
mov r7, #0
|
||||
mvn r0, #1
|
||||
b _0238AC6C
|
||||
_0238AC58:
|
||||
add r1, r2, r7
|
||||
ldrsb r1, [r1, #9]
|
||||
cmp r1, r0
|
||||
beq _0238AC74
|
||||
add r7, r7, #1
|
||||
_0238AC6C:
|
||||
cmp r7, #0x14
|
||||
blt _0238AC58
|
||||
_0238AC74:
|
||||
mov r0, r6
|
||||
bl sub_02028270
|
||||
ldrb r2, [sp, #6]
|
||||
ldrb r1, [sp, #7]
|
||||
mla r0, r2, r1, r0
|
||||
cmp r0, #0x300
|
||||
blt _0238AC9C
|
||||
mov r0, r6
|
||||
mov r1, #1
|
||||
bl sub_0202825C
|
||||
_0238AC9C:
|
||||
add r0, sp, #0
|
||||
mov r1, #3
|
||||
bl NewWindow
|
||||
ldr r1, _0238ACF8 ; =ov28_0238AD80
|
||||
ldr r2, [r1]
|
||||
add r2, r2, r7
|
||||
strb r0, [r2, #9]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, r7
|
||||
ldrsb r0, [r0, #9]
|
||||
bl sub_0202810C
|
||||
ldr r0, _0238ACF8 ; =ov28_0238AD80
|
||||
mov r6, r5, lsr #0x1f
|
||||
ldr r0, [r0]
|
||||
rsb r1, r6, r5, lsl #29
|
||||
add r0, r0, r7
|
||||
ldrsb r0, [r0, #9]
|
||||
mov r2, r8
|
||||
mov r3, r4
|
||||
add r1, r6, r1, ror #29
|
||||
bl DrawTextInWindow
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_0238ACF8: .word ov28_0238AD80
|
||||
arm_func_end ov28_0238ABD4
|
||||
; 0x0238ACFC
|
||||
|
||||
.rodata
|
||||
.global ov28_0238ACFC
|
||||
ov28_0238ACFC:
|
||||
.byte 0x0D, 0x00, 0x00, 0x00
|
||||
.word ov28_0238A490
|
||||
.word ov28_0238A58C
|
||||
.word ov28_0238A5CC
|
||||
.global ov28_0238AD0C
|
||||
ov28_0238AD0C:
|
||||
.byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
|
||||
.byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
|
||||
.global ov28_0238AD24
|
||||
ov28_0238AD24:
|
||||
#if defined(EUROPE)
|
||||
#define OV28_DATA_OFFSET_1 2
|
||||
#define OV28_DATA_OFFSET_2 0x1F
|
||||
#define OV28_DATA_OFFSET_3 OV28_DATA_OFFSET_2
|
||||
#define OV28_DATA_OFFSET_4 OV28_DATA_OFFSET_2
|
||||
#define OV28_DATA_OFFSET_5 OV28_DATA_OFFSET_2
|
||||
#define OV28_DATA_OFFSET_6 OV28_DATA_OFFSET_2
|
||||
#elif defined(JAPAN)
|
||||
#define OV28_DATA_OFFSET_1 -0x14C8
|
||||
#define OV28_DATA_OFFSET_2 -0x14EF
|
||||
#define OV28_DATA_OFFSET_3 -0xC49
|
||||
#define OV28_DATA_OFFSET_4 -0xD5D
|
||||
#define OV28_DATA_OFFSET_5 -0xC86
|
||||
#define OV28_DATA_OFFSET_6 -0xB72
|
||||
#else
|
||||
#define OV28_DATA_OFFSET_1 0
|
||||
#define OV28_DATA_OFFSET_2 0
|
||||
#define OV28_DATA_OFFSET_3 0
|
||||
#define OV28_DATA_OFFSET_4 0
|
||||
#define OV28_DATA_OFFSET_5 0
|
||||
#define OV28_DATA_OFFSET_6 0
|
||||
#endif
|
||||
.word 0x44BF + OV28_DATA_OFFSET_1
|
||||
.global ov28_0238AD28
|
||||
ov28_0238AD28:
|
||||
.word 0x44C0 + OV28_DATA_OFFSET_1
|
||||
.global ov28_0238AD2C
|
||||
ov28_0238AD2C:
|
||||
.word 0x4575 + OV28_DATA_OFFSET_2, 0x4629 + OV28_DATA_OFFSET_3, 0x462A + OV28_DATA_OFFSET_3, 0x4684 + OV28_DATA_OFFSET_3
|
||||
.word 0x4799 + OV28_DATA_OFFSET_4, 0x479A + OV28_DATA_OFFSET_4, 0x4813 + OV28_DATA_OFFSET_4, 0x473D + OV28_DATA_OFFSET_5
|
||||
.word 0x473E + OV28_DATA_OFFSET_5, 0x4798 + OV28_DATA_OFFSET_5, 0x4685 + OV28_DATA_OFFSET_6, 0x4686 + OV28_DATA_OFFSET_6
|
||||
.word 0x46E0 + OV28_DATA_OFFSET_6, 0x46E1 + OV28_DATA_OFFSET_6, 0x46E2 + OV28_DATA_OFFSET_6, 0x473C + OV28_DATA_OFFSET_6
|
||||
|
||||
.data
|
||||
.global ov28_0238AD80
|
||||
ov28_0238AD80:
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.bss
|
||||
.global ov28_0238ADA0
|
||||
ov28_0238ADA0:
|
||||
.space 0x20
|
||||
|
|
|
|||
576
asm/overlay_28_0238A5CC.s
Normal file
576
asm/overlay_28_0238A5CC.s
Normal file
|
|
@ -0,0 +1,576 @@
|
|||
.include "asm/macros.inc"
|
||||
.include "overlay_28_0238A5CC.inc"
|
||||
|
||||
.text
|
||||
|
||||
arm_func_start ov28_0238A5CC
|
||||
ov28_0238A5CC: ; 0x0238A5CC
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0x18
|
||||
ldr r6, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r1, [r6]
|
||||
ldr r0, [r1]
|
||||
cmp r0, #6
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _0238AB44
|
||||
_0238A5EC: ; jump table
|
||||
b _0238A608 ; case 0
|
||||
b _0238A6BC ; case 1
|
||||
b _0238A6C8 ; case 2
|
||||
b _0238A6A0 ; case 3
|
||||
b _0238A678 ; case 4
|
||||
b _0238AAC0 ; case 5
|
||||
b _0238AA90 ; case 6
|
||||
_0238A608:
|
||||
bl ov11_022E6EC8
|
||||
cmp r0, #0
|
||||
beq _0238AB44
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
mov r1, r6
|
||||
ldr r0, [r0]
|
||||
cmp r0, #0
|
||||
bne _0238A648
|
||||
ldr r2, [r1]
|
||||
mov r0, #1
|
||||
add r2, r2, #0x58
|
||||
add r3, r2, #0x800
|
||||
mov r1, #0x10
|
||||
mov r2, #0x68
|
||||
bl ov28_0238ABD4
|
||||
b _0238A664
|
||||
_0238A648:
|
||||
ldr r2, [r1]
|
||||
mov r0, #0
|
||||
add r2, r2, #0x58
|
||||
add r3, r2, #0x800
|
||||
mov r1, #0x10
|
||||
mov r2, #0x60
|
||||
bl ov28_0238ABD4
|
||||
_0238A664:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
mov r1, #4
|
||||
ldr r0, [r0]
|
||||
str r1, [r0]
|
||||
b _0238AB44
|
||||
_0238A678:
|
||||
bl ov11_022E6EC8
|
||||
cmp r0, #0
|
||||
beq _0238AB44
|
||||
mov r0, #1
|
||||
bl ov11_022E6E8C
|
||||
mov r0, r6
|
||||
ldr r0, [r0]
|
||||
mov r1, #3
|
||||
str r1, [r0]
|
||||
b _0238AB44
|
||||
_0238A6A0:
|
||||
bl ov11_022E6EC8
|
||||
cmp r0, #0
|
||||
movne r0, r6
|
||||
ldrne r0, [r0]
|
||||
movne r1, #1
|
||||
strne r1, [r0]
|
||||
b _0238AB44
|
||||
_0238A6BC:
|
||||
mov r0, #2
|
||||
str r0, [r1]
|
||||
b _0238AB44
|
||||
_0238A6C8:
|
||||
mov r4, #0
|
||||
mvn r7, #1
|
||||
_0238A6D0:
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r4
|
||||
ldrsb r8, [r0, #9]
|
||||
cmp r8, r7
|
||||
beq _0238A718
|
||||
mov r0, r8
|
||||
bl sub_02028354
|
||||
cmp r0, #2
|
||||
bne _0238A718
|
||||
mov r0, r8
|
||||
bl sub_02028FA0
|
||||
cmp r0, #0
|
||||
bne _0238A718
|
||||
mov r0, r8
|
||||
bl sub_0202822C
|
||||
ldr r0, [r6]
|
||||
add r0, r0, r4
|
||||
strb r7, [r0, #9]
|
||||
_0238A718:
|
||||
add r4, r4, #1
|
||||
cmp r4, #0x14
|
||||
blt _0238A6D0
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r2, [r0]
|
||||
cmp r2, #0
|
||||
bne _0238A854
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r0, [r0]
|
||||
add r0, r0, #0x20
|
||||
bl ov28_0238A184
|
||||
ldr r1, _0238AB50 ; =ov28_0238AD80
|
||||
mov r5, r0
|
||||
ldr r1, [r1]
|
||||
ldr r0, [r1, #0x24]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #0xc0
|
||||
blt _0238A774
|
||||
add r0, r1, #0x3c
|
||||
add r0, r0, #0x400
|
||||
bl ov28_0238A184
|
||||
orr r5, r5, r0
|
||||
b _0238AA48
|
||||
_0238A774:
|
||||
add r4, r1, #0x3c
|
||||
ldr r0, [r4, #0x410]
|
||||
cmp r0, #0
|
||||
beq _0238A790
|
||||
cmp r0, #1
|
||||
beq _0238A814
|
||||
b _0238AA48
|
||||
_0238A790:
|
||||
mvn r0, #3
|
||||
str r0, [sp, #0x10]
|
||||
ldr r0, [r4, #0x404]
|
||||
add r1, sp, #0x10
|
||||
mov r0, r0, asr #0x10
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [r4, #0x40c]
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x404]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x404]
|
||||
ldr r0, [sp, #0x14]
|
||||
cmp r0, #0x88
|
||||
ble _0238AA48
|
||||
ldr r0, [r4, #0x40c]
|
||||
mov r2, #0x20
|
||||
add r1, sp, #0x10
|
||||
mov r3, r2
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028EE8
|
||||
ldr r0, [r4, #0x40c]
|
||||
mov r1, #1
|
||||
and r0, r0, #0xff
|
||||
bl sub_0202825C
|
||||
ldr r0, [r4, #0x410]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x410]
|
||||
b _0238AA48
|
||||
_0238A814:
|
||||
ldr r1, [r4, #0x40c]
|
||||
add r0, r4, #0x400
|
||||
and r1, r1, #0xff
|
||||
bl ov28_0238A140
|
||||
mvn r1, #3
|
||||
mov r0, #0
|
||||
str r1, [sp, #0x10]
|
||||
str r0, [sp, #0x14]
|
||||
ldr r0, [r4, #0x40c]
|
||||
add r1, sp, #0x10
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, [r4, #0x410]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x410]
|
||||
b _0238AA48
|
||||
_0238A854:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r4, [r0]
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #8
|
||||
blt _0238A87C
|
||||
add r0, r4, #0x20
|
||||
bl ov28_0238A184
|
||||
mov r5, r0
|
||||
b _0238A924
|
||||
_0238A87C:
|
||||
ldr r0, [r4, #0x30]
|
||||
cmp r0, #0
|
||||
beq _0238A8A4
|
||||
cmp r0, #1
|
||||
ldreq r0, _0238AB58 ; =ov28_0238AD0C
|
||||
ldreq r1, [r4, #0x24]
|
||||
ldreq r0, [r0, r2, lsl #2]
|
||||
addeq r0, r1, r0
|
||||
streq r0, [r4, #0x24]
|
||||
b _0238A924
|
||||
_0238A8A4:
|
||||
mvn r0, #3
|
||||
str r0, [sp, #8]
|
||||
ldr r0, [r4, #0x24]
|
||||
add r1, sp, #8
|
||||
mov r0, r0, asr #0x10
|
||||
str r0, [sp, #0xc]
|
||||
ldr r0, [r4, #0x2c]
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x24]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x24]
|
||||
ldr r0, [sp, #0xc]
|
||||
cmp r0, #0x88
|
||||
ble _0238A924
|
||||
ldr r0, [r4, #0x2c]
|
||||
mov r2, #0x20
|
||||
add r1, sp, #8
|
||||
mov r3, r2
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028EE8
|
||||
ldr r0, [r4, #0x2c]
|
||||
mov r1, #1
|
||||
and r0, r0, #0xff
|
||||
bl sub_0202825C
|
||||
ldr r0, [r4, #0x30]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x30]
|
||||
_0238A924:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r4, [r0]
|
||||
ldr r0, [r4, #0x24]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #0x60
|
||||
blt _0238AA48
|
||||
ldr r0, [r4, #0x440]
|
||||
mov r0, r0, asr #0x10
|
||||
cmp r0, #0x68
|
||||
blt _0238A960
|
||||
add r0, r4, #0x3c
|
||||
add r0, r0, #0x400
|
||||
bl ov28_0238A184
|
||||
orr r5, r5, r0
|
||||
b _0238AA48
|
||||
_0238A960:
|
||||
ldr r0, [r4, #0x44c]
|
||||
cmp r0, #0
|
||||
beq _0238A980
|
||||
cmp r0, #1
|
||||
beq _0238A9A8
|
||||
cmp r0, #2
|
||||
beq _0238AA2C
|
||||
b _0238AA48
|
||||
_0238A980:
|
||||
add r0, r4, #0x58
|
||||
mov r1, #0x10
|
||||
sub r2, r1, #0x50
|
||||
add r3, r0, #0x800
|
||||
mov r0, #1
|
||||
bl ov28_0238ABD4
|
||||
ldr r0, [r4, #0x44c]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x44c]
|
||||
b _0238AA48
|
||||
_0238A9A8:
|
||||
mvn r0, #3
|
||||
str r0, [sp]
|
||||
ldr r0, [r4, #0x440]
|
||||
add r1, sp, #0
|
||||
mov r0, r0, asr #0x10
|
||||
str r0, [sp, #4]
|
||||
ldr r0, [r4, #0x448]
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028F88
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x440]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x440]
|
||||
ldr r0, [sp, #4]
|
||||
cmp r0, #0xd0
|
||||
ble _0238AA48
|
||||
ldr r0, [r4, #0x448]
|
||||
mov r2, #0x20
|
||||
add r1, sp, #0
|
||||
mov r3, r2
|
||||
and r0, r0, #0xff
|
||||
bl sub_02028EE8
|
||||
ldr r0, [r4, #0x448]
|
||||
mov r1, #1
|
||||
and r0, r0, #0xff
|
||||
bl sub_0202825C
|
||||
ldr r0, [r4, #0x44c]
|
||||
add r0, r0, #1
|
||||
str r0, [r4, #0x44c]
|
||||
b _0238AA48
|
||||
_0238AA2C:
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r1, _0238AB58 ; =ov28_0238AD0C
|
||||
ldr r0, [r0]
|
||||
ldr r2, [r4, #0x440]
|
||||
ldr r0, [r1, r0, lsl #2]
|
||||
add r0, r2, r0
|
||||
str r0, [r4, #0x440]
|
||||
_0238AA48:
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
ldr r2, [r0]
|
||||
ldrb r0, [r2, #8]
|
||||
cmp r0, #0
|
||||
bne _0238AA78
|
||||
ldr r0, [r2, #0x20]
|
||||
cmp r0, #3
|
||||
blt _0238AA78
|
||||
mov r1, #1
|
||||
mov r0, #2
|
||||
strb r1, [r2, #8]
|
||||
bl ov11_022E6E8C
|
||||
_0238AA78:
|
||||
cmp r5, #0
|
||||
ldreq r0, _0238AB50 ; =ov28_0238AD80
|
||||
moveq r1, #6
|
||||
ldreq r0, [r0]
|
||||
streq r1, [r0]
|
||||
b _0238AB44
|
||||
_0238AA90:
|
||||
mov r0, #0
|
||||
mov r1, #1
|
||||
bl sub_0202825C
|
||||
mov r0, #1
|
||||
mov r1, r0
|
||||
bl sub_0202825C
|
||||
mov r0, #0
|
||||
bl sub_02025B80
|
||||
mov r0, #0
|
||||
bl ov11_022E6E8C
|
||||
mov r0, #4
|
||||
b _0238AB48
|
||||
_0238AAC0:
|
||||
mvn r0, #3
|
||||
bl ov28_0238AB5C
|
||||
mov r0, #0
|
||||
bl ov11_022E6E8C
|
||||
ldr r0, _0238AB54 ; =ov28_0238ADA0
|
||||
ldr r0, [r0]
|
||||
cmp r0, #5
|
||||
addls pc, pc, r0, lsl #2
|
||||
b _0238AB2C
|
||||
_0238AAE4: ; jump table
|
||||
b _0238AAFC ; case 0
|
||||
b _0238AB04 ; case 1
|
||||
b _0238AB0C ; case 2
|
||||
b _0238AB14 ; case 3
|
||||
b _0238AB1C ; case 4
|
||||
b _0238AB24 ; case 5
|
||||
_0238AAFC:
|
||||
mov r0, #0
|
||||
b _0238AB30
|
||||
_0238AB04:
|
||||
mov r0, #1
|
||||
b _0238AB30
|
||||
_0238AB0C:
|
||||
mov r0, #2
|
||||
b _0238AB30
|
||||
_0238AB14:
|
||||
mov r0, #3
|
||||
b _0238AB30
|
||||
_0238AB1C:
|
||||
mov r0, #4
|
||||
b _0238AB30
|
||||
_0238AB24:
|
||||
mov r0, #5
|
||||
b _0238AB30
|
||||
_0238AB2C:
|
||||
mvn r0, #0
|
||||
_0238AB30:
|
||||
bl sub_02025B90
|
||||
ldr r0, _0238AB50 ; =ov28_0238AD80
|
||||
mov r1, #0
|
||||
ldr r0, [r0]
|
||||
str r1, [r0]
|
||||
_0238AB44:
|
||||
mov r0, #1
|
||||
_0238AB48:
|
||||
add sp, sp, #0x18
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_0238AB50: .word ov28_0238AD80
|
||||
_0238AB54: .word ov28_0238ADA0
|
||||
_0238AB58: .word ov28_0238AD0C
|
||||
arm_func_end ov28_0238A5CC
|
||||
|
||||
arm_func_start ov28_0238AB5C
|
||||
ov28_0238AB5C: ; 0x0238AB5C
|
||||
stmdb sp!, {r4, lr}
|
||||
sub sp, sp, #8
|
||||
mov r2, #0x20
|
||||
mov r4, r0
|
||||
mov r0, #0
|
||||
add r1, sp, #0
|
||||
mov r3, r2
|
||||
str r0, [sp]
|
||||
str r0, [sp, #4]
|
||||
bl sub_02028EE8
|
||||
mov r2, #0x20
|
||||
add r1, sp, #0
|
||||
mov r3, r2
|
||||
mov r0, #1
|
||||
bl sub_02028EE8
|
||||
add r1, sp, #0
|
||||
mov r0, #0
|
||||
str r4, [sp]
|
||||
bl sub_02028F88
|
||||
add r1, sp, #0
|
||||
mov r0, #1
|
||||
bl sub_02028F88
|
||||
mov r0, #0
|
||||
mov r1, #1
|
||||
bl sub_0202825C
|
||||
mov r0, #1
|
||||
mov r1, r0
|
||||
bl sub_0202825C
|
||||
add sp, sp, #8
|
||||
ldmia sp!, {r4, pc}
|
||||
arm_func_end ov28_0238AB5C
|
||||
|
||||
arm_func_start ov28_0238ABD4
|
||||
ov28_0238ABD4: ; 0x0238ABD4
|
||||
stmdb sp!, {r4, r5, r6, r7, r8, lr}
|
||||
sub sp, sp, #0x10
|
||||
mov r5, r1
|
||||
mov r1, r5, asr #2
|
||||
mov r7, #0
|
||||
mov r6, r0
|
||||
add r1, r5, r1, lsr #29
|
||||
mov r1, r1, asr #3
|
||||
mov r4, r2, asr #2
|
||||
add r4, r2, r4, lsr #29
|
||||
mov lr, r4, asr #3
|
||||
mov r8, r2, lsr #0x1f
|
||||
sub r0, r7, #5
|
||||
rsb r2, r8, r2, lsl #29
|
||||
and ip, r1, #0xff
|
||||
strb r0, [sp, #9]
|
||||
rsb ip, ip, #0x1d
|
||||
str r7, [sp]
|
||||
str r7, [sp, #0xc]
|
||||
adds r8, r8, r2, ror #29
|
||||
ldr r0, _0238ACF8 ; =ov28_0238AD80
|
||||
movne r7, #1
|
||||
strb r1, [sp, #4]
|
||||
add r1, r7, #2
|
||||
ldr r2, [r0]
|
||||
mov r4, r3
|
||||
strb r6, [sp, #8]
|
||||
strb lr, [sp, #5]
|
||||
strb ip, [sp, #6]
|
||||
strb r1, [sp, #7]
|
||||
mov r7, #0
|
||||
mvn r0, #1
|
||||
b _0238AC6C
|
||||
_0238AC58:
|
||||
add r1, r2, r7
|
||||
ldrsb r1, [r1, #9]
|
||||
cmp r1, r0
|
||||
beq _0238AC74
|
||||
add r7, r7, #1
|
||||
_0238AC6C:
|
||||
cmp r7, #0x14
|
||||
blt _0238AC58
|
||||
_0238AC74:
|
||||
mov r0, r6
|
||||
bl sub_02028270
|
||||
ldrb r2, [sp, #6]
|
||||
ldrb r1, [sp, #7]
|
||||
mla r0, r2, r1, r0
|
||||
cmp r0, #0x300
|
||||
blt _0238AC9C
|
||||
mov r0, r6
|
||||
mov r1, #1
|
||||
bl sub_0202825C
|
||||
_0238AC9C:
|
||||
add r0, sp, #0
|
||||
mov r1, #3
|
||||
bl NewWindow
|
||||
ldr r1, _0238ACF8 ; =ov28_0238AD80
|
||||
ldr r2, [r1]
|
||||
add r2, r2, r7
|
||||
strb r0, [r2, #9]
|
||||
ldr r0, [r1]
|
||||
add r0, r0, r7
|
||||
ldrsb r0, [r0, #9]
|
||||
bl sub_0202810C
|
||||
ldr r0, _0238ACF8 ; =ov28_0238AD80
|
||||
mov r6, r5, lsr #0x1f
|
||||
ldr r0, [r0]
|
||||
rsb r1, r6, r5, lsl #29
|
||||
add r0, r0, r7
|
||||
ldrsb r0, [r0, #9]
|
||||
mov r2, r8
|
||||
mov r3, r4
|
||||
add r1, r6, r1, ror #29
|
||||
bl DrawTextInWindow
|
||||
add sp, sp, #0x10
|
||||
ldmia sp!, {r4, r5, r6, r7, r8, pc}
|
||||
.align 2, 0
|
||||
_0238ACF8: .word ov28_0238AD80
|
||||
arm_func_end ov28_0238ABD4
|
||||
; 0x0238ACFC
|
||||
|
||||
.rodata
|
||||
.global ov28_0238ACFC
|
||||
ov28_0238ACFC:
|
||||
.byte 0x0D, 0x00, 0x00, 0x00
|
||||
.word ov28_0238A490
|
||||
.word ov28_0238A58C
|
||||
.word ov28_0238A5CC
|
||||
.global ov28_0238AD0C
|
||||
ov28_0238AD0C:
|
||||
.byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
|
||||
.byte 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
|
||||
.global ov28_0238AD24
|
||||
ov28_0238AD24:
|
||||
#if defined(EUROPE)
|
||||
#define OV28_DATA_OFFSET_1 2
|
||||
#define OV28_DATA_OFFSET_2 0x1F
|
||||
#define OV28_DATA_OFFSET_3 OV28_DATA_OFFSET_2
|
||||
#define OV28_DATA_OFFSET_4 OV28_DATA_OFFSET_2
|
||||
#define OV28_DATA_OFFSET_5 OV28_DATA_OFFSET_2
|
||||
#define OV28_DATA_OFFSET_6 OV28_DATA_OFFSET_2
|
||||
#elif defined(JAPAN)
|
||||
#define OV28_DATA_OFFSET_1 -0x14C8
|
||||
#define OV28_DATA_OFFSET_2 -0x14EF
|
||||
#define OV28_DATA_OFFSET_3 -0xC49
|
||||
#define OV28_DATA_OFFSET_4 -0xD5D
|
||||
#define OV28_DATA_OFFSET_5 -0xC86
|
||||
#define OV28_DATA_OFFSET_6 -0xB72
|
||||
#else
|
||||
#define OV28_DATA_OFFSET_1 0
|
||||
#define OV28_DATA_OFFSET_2 0
|
||||
#define OV28_DATA_OFFSET_3 0
|
||||
#define OV28_DATA_OFFSET_4 0
|
||||
#define OV28_DATA_OFFSET_5 0
|
||||
#define OV28_DATA_OFFSET_6 0
|
||||
#endif
|
||||
.word 0x44BF + OV28_DATA_OFFSET_1
|
||||
.global ov28_0238AD28
|
||||
ov28_0238AD28:
|
||||
.word 0x44C0 + OV28_DATA_OFFSET_1
|
||||
.global ov28_0238AD2C
|
||||
ov28_0238AD2C:
|
||||
.word 0x4575 + OV28_DATA_OFFSET_2, 0x4629 + OV28_DATA_OFFSET_3, 0x462A + OV28_DATA_OFFSET_3, 0x4684 + OV28_DATA_OFFSET_3
|
||||
.word 0x4799 + OV28_DATA_OFFSET_4, 0x479A + OV28_DATA_OFFSET_4, 0x4813 + OV28_DATA_OFFSET_4, 0x473D + OV28_DATA_OFFSET_5
|
||||
.word 0x473E + OV28_DATA_OFFSET_5, 0x4798 + OV28_DATA_OFFSET_5, 0x4685 + OV28_DATA_OFFSET_6, 0x4686 + OV28_DATA_OFFSET_6
|
||||
.word 0x46E0 + OV28_DATA_OFFSET_6, 0x46E1 + OV28_DATA_OFFSET_6, 0x46E2 + OV28_DATA_OFFSET_6, 0x473C + OV28_DATA_OFFSET_6
|
||||
|
||||
.data
|
||||
.global ov28_0238AD80
|
||||
ov28_0238AD80:
|
||||
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
.byte 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.bss
|
||||
.global ov28_0238ADA0
|
||||
ov28_0238ADA0:
|
||||
.space 0x20
|
||||
6
include/overlay_28_0238A58C.h
Normal file
6
include/overlay_28_0238A58C.h
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#ifndef PMDSKY_OVERLAY_28_0238A58C_H
|
||||
#define PMDSKY_OVERLAY_28_0238A58C_H
|
||||
|
||||
void ov28_0238A58C(void);
|
||||
|
||||
#endif //PMDSKY_OVERLAY_28_0238A58C_H
|
||||
2
main.lsf
2
main.lsf
|
|
@ -301,6 +301,8 @@ Overlay OVY_28
|
|||
{
|
||||
After OVY_11
|
||||
Object asm/overlay_28.o
|
||||
Object src/overlay_28_0238A58C.o
|
||||
Object asm/overlay_28_0238A5CC.o
|
||||
}
|
||||
Overlay OVY_29
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#include "overlay_13_EntryOverlay13.h"
|
||||
|
||||
extern void* MemAlloc(u32 len, u32 flags);
|
||||
extern void* MemFree(void *);
|
||||
extern void MemFree(void* ptr);
|
||||
void sub_0201F2E4(void);
|
||||
void sub_020348E4(const u8 *);
|
||||
extern void ov11_022E6E8C(u32);
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ extern unkStruct_ov15_0238AE6C* OVERLAY15_UNKNOWN_POINTER__NA_238B180;
|
|||
extern void ov15_0238AD78(u8);
|
||||
extern u16 ov15_0238A140(void);
|
||||
extern void Debug_Print0(const char* fmt);
|
||||
extern void MemFree(void*);
|
||||
extern void MemFree(void* ptr);
|
||||
extern int ov15_0238A234(void);
|
||||
extern int IsDialogueBoxActive(s8);
|
||||
extern void HidePortraitBox(int);
|
||||
|
|
@ -23,7 +23,7 @@ void ov15_0238AE6C(void) {
|
|||
s32 ov15_0238AE88(void) {
|
||||
|
||||
ov15_0238A140();
|
||||
return 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
const char ov15_0238B11C[] = "mes not close\n";
|
||||
|
|
@ -33,21 +33,21 @@ const char ov15_0238B150[] = "Input not close\n";
|
|||
|
||||
void ov15_0238AE98(void) {
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180 == NULL)
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180 == NULL)
|
||||
return;
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk80 != -2)
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk80 != -2)
|
||||
Debug_Print0(ov15_0238B11C);
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk82 != -2)
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk82 != -2)
|
||||
Debug_Print0(ov15_0238B12C);
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk83 != -2)
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk83 != -2)
|
||||
Debug_Print0(ov15_0238B13C);
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk84 != -2)
|
||||
|
||||
if (OVERLAY15_UNKNOWN_POINTER__NA_238B180->unk84 != -2)
|
||||
Debug_Print0(ov15_0238B150);
|
||||
|
||||
|
||||
MemFree(OVERLAY15_UNKNOWN_POINTER__NA_238B180);
|
||||
OVERLAY15_UNKNOWN_POINTER__NA_238B180 = NULL;
|
||||
}
|
||||
|
|
@ -60,7 +60,7 @@ int ov15_0238AF54(void) {
|
|||
OVERLAY15_UNKNOWN_POINTER__NA_238B180 -> unk0 = 1;
|
||||
break;
|
||||
case 1:
|
||||
if (ov15_0238A234() == 3)
|
||||
if (ov15_0238A234() == 3)
|
||||
OVERLAY15_UNKNOWN_POINTER__NA_238B180 -> unk0 = 2;
|
||||
break;
|
||||
case 2:
|
||||
|
|
@ -81,7 +81,7 @@ int ov15_0238AF54(void) {
|
|||
break;
|
||||
case 3:
|
||||
ov11_022E6E68();
|
||||
return 4;
|
||||
return 4;
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
21
src/overlay_28_0238A58C.c
Normal file
21
src/overlay_28_0238A58C.c
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#include "overlay_28_0238A58C.h"
|
||||
|
||||
extern void* ov28_0238AD80;
|
||||
|
||||
extern void ov28_0238AB5C(s32);
|
||||
extern void sub_02025C14();
|
||||
extern void sub_02027170();
|
||||
extern void sub_02027228();
|
||||
extern void MemFree(void* ptr);
|
||||
|
||||
void ov28_0238A58C(void)
|
||||
{
|
||||
ov28_0238AB5C(0);
|
||||
sub_02025C14();
|
||||
sub_02027170();
|
||||
sub_02027228();
|
||||
if (ov28_0238AD80 != NULL) {
|
||||
MemFree(ov28_0238AD80);
|
||||
ov28_0238AD80 = NULL;
|
||||
}
|
||||
}
|
||||
|
|
@ -50,7 +50,7 @@ extern struct struct_1* sub_0202ABB0(s8);
|
|||
|
||||
extern void CloseTextBox(s8);
|
||||
extern void CloseParentMenu(s8);
|
||||
extern void MemFree(void*);
|
||||
extern void MemFree(void* ptr);
|
||||
|
||||
extern void ov29_022EA428(u32, u32);
|
||||
extern void AdvanceFrame(u8);
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ extern s32 sub_020282F4(s8);
|
|||
extern void CloseInventoryMenu(s8);
|
||||
extern void ov29_0234E988(u8*);
|
||||
extern void CloseTextBox2();
|
||||
extern void MemFree(void*);
|
||||
extern void MemFree(void* ptr);
|
||||
extern void DrawTextInWindow(struct window*, u32, u32, u8*);
|
||||
|
||||
u8 ov31_0238372C(struct position* x)
|
||||
|
|
|
|||
|
|
@ -10,8 +10,7 @@ MAIN_LSF_PATH = 'main.lsf'
|
|||
|
||||
# Symbols with duplicate addresses that should be ignored.
|
||||
XMAP_SYMBOL_BLACKLIST = set([
|
||||
'AI_POTENTIAL_ATTACK_TARGET_WEIGHTS_2',
|
||||
'zeros$498'
|
||||
'AI_POTENTIAL_ATTACK_TARGET_WEIGHTS_2'
|
||||
])
|
||||
|
||||
"""
|
||||
|
|
@ -85,7 +84,7 @@ def read_xmap_symbols_for_language(language: str) -> Dict[str, Dict[int, SymbolD
|
|||
symbol_split = line[28:-1].split('\t')
|
||||
symbol_name = symbol_split[0]
|
||||
|
||||
if symbol_name in XMAP_SYMBOL_BLACKLIST:
|
||||
if symbol_name in XMAP_SYMBOL_BLACKLIST or '$' in symbol_name:
|
||||
continue
|
||||
|
||||
symbol_address = int(line[2:10], 16)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user