Disassemble overlay 06

This commit is contained in:
PikalaxALT
2020-04-30 20:12:51 -04:00
parent c7dd102f62
commit 70dcdeff9a
4 changed files with 329 additions and 2 deletions

View File

@@ -16,7 +16,7 @@ MEMORY {
MODULE_03 (RWX) : ORIGIN=0, LENGTH=0
MODULE_04 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
MODULE_05 (RWX) : ORIGIN=0, LENGTH=0
MODULE_06 (RWX) : ORIGIN=0, LENGTH=0
MODULE_06 (RWX) : ORIGIN=0x022396A0, LENGTH=0
MODULE_07 (RWX) : ORIGIN=0, LENGTH=0
MODULE_08 (RWX) : ORIGIN=0, LENGTH=0
MODULE_09 (RWX) : ORIGIN=0, LENGTH=0
@@ -345,15 +345,30 @@ SECTIONS {
{
thumb_04.o (.text)
arm_04.o (.text)
thumb_04.o (.data)
arm_04.o (.data)
} > MODULE_04
.MODULE.04.bss :
{
thumb_04.o (.sbss)
arm_04.o (.sbss)
thumb_04.o (.bss)
arm_04.o (.bss)
} >> MODULE_04
OVERLAY_FILE(05, 0x141400, FILE_145400.o)
OVERLAY_FILE(06, 0x167600, FILE_16B600.o)
.MODULE.06 : AT (0x167600)
{
module_06.o (.text)
module_06.o (.data)
} > MODULE_06
.MODULE.06.bss :
{
module_06.o (.sbss)
module_06.o (.bss)
} >> MODULE_06
OVERLAY_FILE(07, 0x180400, FILE_184400.o)
OVERLAY_FILE(08, 0x183800, FILE_187800.o)
OVERLAY_FILE(09, 0x19F000, FILE_1A3000.o)

View File

@@ -3802,3 +3802,14 @@
.extern thunk_FUN_020afda0_2
.extern thunk_FUN_020b5040
.extern wcslen
.extern FUN_0200CA98
.extern FUN_020C5D8C
.extern FUN_021D7A20
.extern FUN_021D7A28
.extern FUN_021E8648
.extern GX_GetBankForBGExtPltt
.extern GX_GetBankForBGExtPltt_2
.extern GX_GetBankForSubOBJ
.extern GX_GetBankForSubBGExtPltt
.extern GX_GetBankForSubBGExtPltt_2
.extern GX_GetBankForTexPltt

View File

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

View File

@@ -501,6 +501,9 @@ FUN_02213B08 = 0x02213B08;
FUN_02213D80 = 0x02213D80;
FUN_02213DBC = 0x02213DBC;
FUN_02213E24 = 0x02213E24;
FUN_021D7A20 = 0x021D7A20;
FUN_021D7A28 = 0x021D7A28;
FUN_021E8648 = 0x021E8648;
// ???
SDK_MAIN_ARENA_LO = 0x0225FFA0;