mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-13 11:35:57 -05:00
More menu work (#33)
* split adventure log menu out and decompile * add most adventure log matchings w/ 2 nonmatchings and move some relevant data * more work on other menus * fully decomp debug stuff around 203B3F0 * more debug menu work * fix CreatePartnerSelectionMenu nonmatch * move more data and clean some data up
This commit is contained in:
@@ -106,8 +106,8 @@ _080006B8:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08000708: .4byte gUnknown_80B69F8
|
||||
_0800070C: .4byte gUnknown_80B6A28
|
||||
_08000708: .4byte gLoadScreenBackgroundFileNames
|
||||
_0800070C: .4byte gLoadScreenBackgroundPaletteFileNames
|
||||
_08000710: .4byte 0x00005b20
|
||||
_08000714: .4byte gTitleMenuFileArchive
|
||||
_08000718: .4byte gTitlePaletteFile
|
||||
|
||||
1428
asm/debug_menu.s
1428
asm/debug_menu.s
File diff suppressed because it is too large
Load Diff
686
asm/debug_menu_1.s
Normal file
686
asm/debug_menu_1.s
Normal file
@@ -0,0 +1,686 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803AA34
|
||||
sub_803AA34:
|
||||
push {r4,r5,lr}
|
||||
movs r4, 0
|
||||
ldr r0, _0803AA64
|
||||
ldr r1, [r0]
|
||||
ldr r2, _0803AA68
|
||||
ldr r3, [r2]
|
||||
ldrb r0, [r3, 0x4]
|
||||
adds r1, r0
|
||||
ldrb r0, [r1]
|
||||
adds r5, r2, 0
|
||||
cmp r0, 0
|
||||
beq _0803AA7A
|
||||
ldr r0, _0803AA6C
|
||||
str r0, [r3, 0xC]
|
||||
bl sub_803ABC8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0803AA70
|
||||
ldr r1, [r5]
|
||||
movs r0, 0x3
|
||||
str r0, [r1, 0x10]
|
||||
b _0803AA82
|
||||
.align 2, 0
|
||||
_0803AA64: .4byte gFriendAreas
|
||||
_0803AA68: .4byte gUnknown_203B3F4
|
||||
_0803AA6C: .4byte gDebug_CloseText
|
||||
_0803AA70:
|
||||
ldr r1, [r5]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [r1, 0x10]
|
||||
b _0803AA82
|
||||
_0803AA7A:
|
||||
ldr r0, _0803AABC
|
||||
str r0, [r3, 0xC]
|
||||
movs r0, 0x2
|
||||
str r0, [r3, 0x10]
|
||||
_0803AA82:
|
||||
adds r4, 0x1
|
||||
ldr r5, [r5]
|
||||
mov r12, r5
|
||||
lsls r1, r4, 3
|
||||
mov r3, r12
|
||||
adds r3, 0xC
|
||||
adds r2, r3, r1
|
||||
ldr r0, _0803AAC0
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
mov r2, r12
|
||||
adds r2, 0x10
|
||||
adds r1, r2, r1
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
adds r4, 0x1
|
||||
lsls r1, r4, 3
|
||||
adds r3, r1
|
||||
movs r0, 0
|
||||
str r0, [r3]
|
||||
adds r2, r1
|
||||
movs r0, 0x1
|
||||
str r0, [r2]
|
||||
mov r1, r12
|
||||
ldr r0, [r1, 0x10]
|
||||
str r0, [r1, 0x8]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803AABC: .4byte gDebug_OpenText
|
||||
_0803AAC0: .4byte gUnknown_80D4970
|
||||
thumb_func_end sub_803AA34
|
||||
|
||||
thumb_func_start sub_803AAC4
|
||||
sub_803AAC4:
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_8021274
|
||||
cmp r0, 0x4
|
||||
bhi _0803AB2E
|
||||
lsls r0, 2
|
||||
ldr r1, _0803AADC
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0803AADC: .4byte _0803AAE0
|
||||
.align 2, 0
|
||||
_0803AAE0:
|
||||
.4byte _0803AB2E
|
||||
.4byte _0803AB2E
|
||||
.4byte _0803AB24
|
||||
.4byte _0803AAF4
|
||||
.4byte _0803AB0C
|
||||
_0803AAF4:
|
||||
bl sub_802132C
|
||||
ldr r1, _0803AB08
|
||||
ldr r1, [r1]
|
||||
strb r0, [r1, 0x4]
|
||||
movs r0, 0x2
|
||||
bl sub_803A924
|
||||
b _0803AB2E
|
||||
.align 2, 0
|
||||
_0803AB08: .4byte gUnknown_203B3F4
|
||||
_0803AB0C:
|
||||
bl sub_802132C
|
||||
ldr r1, _0803AB20
|
||||
ldr r1, [r1]
|
||||
strb r0, [r1, 0x4]
|
||||
movs r0, 0x3
|
||||
bl sub_803A924
|
||||
b _0803AB2E
|
||||
.align 2, 0
|
||||
_0803AB20: .4byte gUnknown_203B3F4
|
||||
_0803AB24:
|
||||
bl sub_80213A0
|
||||
movs r0, 0x4
|
||||
bl sub_803A924
|
||||
_0803AB2E:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_803AAC4
|
||||
|
||||
thumb_func_start sub_803AB34
|
||||
sub_803AB34:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
bl sub_8021274
|
||||
ldr r4, _0803AB6C
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x4C
|
||||
bl sub_8012FD8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0803AB5A
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x4C
|
||||
mov r1, sp
|
||||
bl sub_8013114
|
||||
_0803AB5A:
|
||||
ldr r0, [sp]
|
||||
cmp r0, 0x2
|
||||
beq _0803AB7A
|
||||
cmp r0, 0x2
|
||||
bgt _0803AB70
|
||||
cmp r0, 0x1
|
||||
beq _0803AB9E
|
||||
b _0803ABA4
|
||||
.align 2, 0
|
||||
_0803AB6C: .4byte gUnknown_203B3F4
|
||||
_0803AB70:
|
||||
cmp r0, 0x3
|
||||
beq _0803AB84
|
||||
cmp r0, 0x4
|
||||
beq _0803AB96
|
||||
b _0803ABA4
|
||||
_0803AB7A:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x4]
|
||||
bl UnlockFriendArea
|
||||
b _0803AB8E
|
||||
_0803AB84:
|
||||
ldr r0, [r4]
|
||||
ldrb r0, [r0, 0x4]
|
||||
movs r1, 0x1
|
||||
bl sub_809249C
|
||||
_0803AB8E:
|
||||
movs r0, 0x1
|
||||
bl sub_803A924
|
||||
b _0803ABA4
|
||||
_0803AB96:
|
||||
movs r0, 0x3
|
||||
bl sub_803A924
|
||||
b _0803ABA4
|
||||
_0803AB9E:
|
||||
movs r0, 0x1
|
||||
bl sub_803A924
|
||||
_0803ABA4:
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_803AB34
|
||||
|
||||
thumb_func_start sub_803ABAC
|
||||
sub_803ABAC:
|
||||
push {lr}
|
||||
bl sub_80217EC
|
||||
cmp r0, 0x1
|
||||
bls _0803ABC4
|
||||
cmp r0, 0x3
|
||||
bhi _0803ABC4
|
||||
bl sub_8021830
|
||||
movs r0, 0x1
|
||||
bl sub_803A924
|
||||
_0803ABC4:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_803ABAC
|
||||
|
||||
thumb_func_start sub_803ABC8
|
||||
sub_803ABC8:
|
||||
push {r4-r6,lr}
|
||||
movs r5, 0
|
||||
movs r6, 0x1
|
||||
_0803ABCE:
|
||||
ldr r2, _0803AC08
|
||||
movs r0, 0x58
|
||||
adds r1, r5, 0
|
||||
muls r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r2, r0, r1
|
||||
ldrh r1, [r2]
|
||||
adds r0, r6, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0803AC10
|
||||
lsrs r0, r1, 1
|
||||
ands r0, r6
|
||||
cmp r0, 0
|
||||
beq _0803AC10
|
||||
ldr r0, _0803AC0C
|
||||
ldr r4, [r0]
|
||||
movs r1, 0x8
|
||||
ldrsh r0, [r2, r1]
|
||||
bl GetFriendArea
|
||||
ldrb r1, [r4, 0x4]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r1, r0
|
||||
bne _0803AC10
|
||||
movs r0, 0
|
||||
b _0803AC1C
|
||||
.align 2, 0
|
||||
_0803AC08: .4byte gUnknown_203B45C
|
||||
_0803AC0C: .4byte gUnknown_203B3F4
|
||||
_0803AC10:
|
||||
adds r5, 0x1
|
||||
movs r0, 0xCE
|
||||
lsls r0, 1
|
||||
cmp r5, r0
|
||||
ble _0803ABCE
|
||||
movs r0, 0x1
|
||||
_0803AC1C:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_803ABC8
|
||||
|
||||
thumb_func_start sub_803AC24
|
||||
sub_803AC24:
|
||||
push {r4,lr}
|
||||
ldr r4, _0803AC44
|
||||
movs r0, 0xA0
|
||||
lsls r0, 1
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
movs r0, 0
|
||||
bl sub_803ACD0
|
||||
movs r0, 0x1
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0803AC44: .4byte gUnknown_203B3F8
|
||||
thumb_func_end sub_803AC24
|
||||
|
||||
thumb_func_start sub_803AC48
|
||||
sub_803AC48:
|
||||
push {lr}
|
||||
ldr r0, _0803AC60
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x7
|
||||
bhi _0803ACA8
|
||||
lsls r0, 2
|
||||
ldr r1, _0803AC64
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0803AC60: .4byte gUnknown_203B3F8
|
||||
_0803AC64: .4byte _0803AC68
|
||||
.align 2, 0
|
||||
_0803AC68:
|
||||
.4byte _0803AC88
|
||||
.4byte _0803AC90
|
||||
.4byte _0803AC90
|
||||
.4byte _0803AC96
|
||||
.4byte _0803ACA8
|
||||
.4byte _0803AC9C
|
||||
.4byte _0803ACA2
|
||||
.4byte _0803ACA8
|
||||
_0803AC88:
|
||||
movs r0, 0x1
|
||||
bl sub_803ACD0
|
||||
b _0803ACAC
|
||||
_0803AC90:
|
||||
bl sub_803AF38
|
||||
b _0803ACAC
|
||||
_0803AC96:
|
||||
bl sub_803AF88
|
||||
b _0803ACAC
|
||||
_0803AC9C:
|
||||
bl sub_803AFE8
|
||||
b _0803ACAC
|
||||
_0803ACA2:
|
||||
bl sub_803B034
|
||||
b _0803ACAC
|
||||
_0803ACA8:
|
||||
movs r0, 0x3
|
||||
b _0803ACAE
|
||||
_0803ACAC:
|
||||
movs r0, 0
|
||||
_0803ACAE:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_803AC48
|
||||
|
||||
thumb_func_start sub_803ACB4
|
||||
sub_803ACB4:
|
||||
push {r4,lr}
|
||||
ldr r4, _0803ACCC
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
beq _0803ACC6
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_0803ACC6:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803ACCC: .4byte gUnknown_203B3F8
|
||||
thumb_func_end sub_803ACB4
|
||||
|
||||
thumb_func_start sub_803ACD0
|
||||
sub_803ACD0:
|
||||
push {lr}
|
||||
ldr r1, _0803ACE4
|
||||
ldr r1, [r1]
|
||||
str r0, [r1]
|
||||
bl sub_803ACE8
|
||||
bl sub_803AD88
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803ACE4: .4byte gUnknown_203B3F8
|
||||
thumb_func_end sub_803ACD0
|
||||
|
||||
thumb_func_start sub_803ACE8
|
||||
sub_803ACE8:
|
||||
push {r4-r7,lr}
|
||||
ldr r4, _0803AD08
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xE0
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x3
|
||||
beq _0803AD10
|
||||
cmp r0, 0x5
|
||||
beq _0803AD38
|
||||
movs r2, 0
|
||||
ldr r3, _0803AD0C
|
||||
b _0803AD50
|
||||
.align 2, 0
|
||||
_0803AD08: .4byte gUnknown_203B3F8
|
||||
_0803AD0C: .4byte gUnknown_80E7ED4
|
||||
_0803AD10:
|
||||
bl sub_803AEB0
|
||||
ldr r2, [r4]
|
||||
movs r0, 0x88
|
||||
lsls r0, 1
|
||||
adds r2, r0
|
||||
ldr r1, _0803AD34
|
||||
ldm r1!, {r3,r5,r6}
|
||||
stm r2!, {r3,r5,r6}
|
||||
ldm r1!, {r3,r5,r7}
|
||||
stm r2!, {r3,r5,r7}
|
||||
ldr r1, [r4]
|
||||
adds r0, r1, r0
|
||||
adds r1, 0x90
|
||||
bl sub_8012CAC
|
||||
b _0803AD6C
|
||||
.align 2, 0
|
||||
_0803AD34: .4byte gUnknown_80E7EEC
|
||||
_0803AD38:
|
||||
movs r6, 0x94
|
||||
lsls r6, 1
|
||||
adds r1, r6
|
||||
ldr r0, _0803AD4C
|
||||
ldm r0!, {r2,r3,r7}
|
||||
stm r1!, {r2,r3,r7}
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
b _0803AD6C
|
||||
.align 2, 0
|
||||
_0803AD4C: .4byte gUnknown_80E7F04
|
||||
_0803AD50:
|
||||
ldr r0, [r4]
|
||||
lsls r1, r2, 1
|
||||
adds r1, r2
|
||||
lsls r1, 3
|
||||
adds r0, r1
|
||||
adds r0, 0xE0
|
||||
adds r1, r3, 0
|
||||
ldm r1!, {r5-r7}
|
||||
stm r0!, {r5-r7}
|
||||
ldm r1!, {r5-r7}
|
||||
stm r0!, {r5-r7}
|
||||
adds r2, 0x1
|
||||
cmp r2, 0x3
|
||||
ble _0803AD50
|
||||
_0803AD6C:
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, _0803AD84
|
||||
ldr r0, [r0]
|
||||
adds r0, 0xE0
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803AD84: .4byte gUnknown_203B3F8
|
||||
thumb_func_end sub_803ACE8
|
||||
|
||||
thumb_func_start sub_803AD88
|
||||
sub_803AD88:
|
||||
push {lr}
|
||||
sub sp, 0x8
|
||||
ldr r1, _0803ADA4
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0]
|
||||
adds r2, r1, 0
|
||||
cmp r0, 0x7
|
||||
bhi _0803AE50
|
||||
lsls r0, 2
|
||||
ldr r1, _0803ADA8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0803ADA4: .4byte gUnknown_203B3F8
|
||||
_0803ADA8: .4byte _0803ADAC
|
||||
.align 2, 0
|
||||
_0803ADAC:
|
||||
.4byte _0803AE50
|
||||
.4byte _0803ADCC
|
||||
.4byte _0803ADDA
|
||||
.4byte _0803ADE2
|
||||
.4byte _0803AE50
|
||||
.4byte _0803AE0C
|
||||
.4byte _0803AE44
|
||||
.4byte _0803AE50
|
||||
_0803ADCC:
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0xA
|
||||
bl sub_8023868
|
||||
b _0803AE50
|
||||
_0803ADDA:
|
||||
movs r0, 0x1
|
||||
bl sub_8023B7C
|
||||
b _0803AE50
|
||||
_0803ADE2:
|
||||
bl sub_8023DA4
|
||||
ldr r0, _0803AE08
|
||||
ldr r2, [r0]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x10
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x90
|
||||
adds r3, r2, 0
|
||||
adds r3, 0xD0
|
||||
ldr r2, [r2, 0xC]
|
||||
str r2, [sp]
|
||||
movs r2, 0x2
|
||||
str r2, [sp, 0x4]
|
||||
movs r2, 0
|
||||
bl sub_8012D60
|
||||
b _0803AE50
|
||||
.align 2, 0
|
||||
_0803AE08: .4byte gUnknown_203B3F8
|
||||
_0803AE0C:
|
||||
ldr r2, [r2]
|
||||
movs r1, 0x3
|
||||
str r1, [r2, 0x70]
|
||||
movs r0, 0x1
|
||||
str r0, [r2, 0x68]
|
||||
movs r0, 0x64
|
||||
str r0, [r2, 0x6C]
|
||||
ldr r0, [r2, 0x8]
|
||||
ldrb r0, [r0, 0x3]
|
||||
str r0, [r2, 0x64]
|
||||
str r1, [r2, 0x74]
|
||||
movs r1, 0x94
|
||||
lsls r1, 1
|
||||
adds r0, r2, r1
|
||||
str r0, [r2, 0x78]
|
||||
movs r0, 0x2C
|
||||
str r0, [r2, 0x7C]
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x80
|
||||
movs r0, 0x12
|
||||
str r0, [r1]
|
||||
adds r0, r2, 0
|
||||
adds r0, 0x60
|
||||
bl sub_8013AA0
|
||||
bl sub_803AE58
|
||||
b _0803AE50
|
||||
_0803AE44:
|
||||
ldr r0, [r2]
|
||||
ldr r1, [r0, 0x8]
|
||||
adds r1, 0x4C
|
||||
movs r0, 0x2
|
||||
bl sub_801602C
|
||||
_0803AE50:
|
||||
add sp, 0x8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_803AD88
|
||||
|
||||
thumb_func_start sub_803AE58
|
||||
sub_803AE58:
|
||||
push {r4,lr}
|
||||
sub sp, 0x4
|
||||
ldr r4, _0803AEA8
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x74]
|
||||
bl sub_8008C54
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x74]
|
||||
bl sub_80073B8
|
||||
ldr r2, _0803AEAC
|
||||
ldr r0, [r4]
|
||||
ldr r3, [r0, 0x74]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x60
|
||||
bl sub_8013C68
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0, 0x74]
|
||||
bl sub_80073E0
|
||||
bl sub_8023DA4
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x10
|
||||
movs r1, 0
|
||||
bl sub_8012EA4
|
||||
add sp, 0x4
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803AEA8: .4byte gUnknown_203B3F8
|
||||
_0803AEAC: .4byte gDebug_NumberText2
|
||||
thumb_func_end sub_803AE58
|
||||
|
||||
thumb_func_start sub_803AEB0
|
||||
sub_803AEB0:
|
||||
push {r4-r6,lr}
|
||||
ldr r4, _0803AEFC
|
||||
ldr r0, [r4]
|
||||
adds r0, 0xD0
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
bl MemoryFill16
|
||||
ldr r4, [r4]
|
||||
movs r3, 0
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x90
|
||||
ldr r0, _0803AF00
|
||||
str r0, [r1]
|
||||
adds r5, r4, 0
|
||||
adds r5, 0x94
|
||||
movs r0, 0x4
|
||||
str r0, [r5]
|
||||
movs r2, 0x1
|
||||
adds r1, 0x8
|
||||
ldr r0, _0803AF04
|
||||
str r0, [r1]
|
||||
adds r1, 0x4
|
||||
movs r0, 0x5
|
||||
str r0, [r1]
|
||||
movs r6, 0x2
|
||||
adds r0, r4, 0
|
||||
adds r0, 0xA0
|
||||
str r3, [r0]
|
||||
adds r0, 0x4
|
||||
str r2, [r0]
|
||||
adds r0, 0x2C
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0803AF08
|
||||
ldr r0, [r5]
|
||||
str r0, [r4, 0xC]
|
||||
b _0803AF2C
|
||||
.align 2, 0
|
||||
_0803AEFC: .4byte gUnknown_203B3F8
|
||||
_0803AF00: .4byte gDebug_LevelText
|
||||
_0803AF04: .4byte gUnknown_80E7F2C
|
||||
_0803AF08:
|
||||
adds r3, 0x1
|
||||
cmp r3, r6
|
||||
bge _0803AF2C
|
||||
ldr r0, _0803AF34
|
||||
ldr r2, [r0]
|
||||
lsls r1, r3, 1
|
||||
adds r0, r2, 0
|
||||
adds r0, 0xD0
|
||||
adds r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _0803AF08
|
||||
lsls r0, r3, 3
|
||||
adds r1, r2, 0
|
||||
adds r1, 0x94
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
str r0, [r2, 0xC]
|
||||
_0803AF2C:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803AF34: .4byte gUnknown_203B3F8
|
||||
thumb_func_end sub_803AEB0
|
||||
|
||||
thumb_func_start sub_803AF38
|
||||
sub_803AF38:
|
||||
push {lr}
|
||||
movs r0, 0x1
|
||||
bl sub_8023A94
|
||||
cmp r0, 0x2
|
||||
beq _0803AF78
|
||||
cmp r0, 0x2
|
||||
bcc _0803AF82
|
||||
cmp r0, 0x3
|
||||
bne _0803AF82
|
||||
bl sub_8023B44
|
||||
ldr r1, _0803AF70
|
||||
ldr r1, [r1]
|
||||
strh r0, [r1, 0x4]
|
||||
ldr r3, _0803AF74
|
||||
movs r0, 0x4
|
||||
ldrsh r2, [r1, r0]
|
||||
movs r0, 0x58
|
||||
muls r2, r0
|
||||
ldr r0, [r3]
|
||||
adds r0, r2
|
||||
str r0, [r1, 0x8]
|
||||
movs r0, 0x3
|
||||
bl sub_803ACD0
|
||||
b _0803AF82
|
||||
.align 2, 0
|
||||
_0803AF70: .4byte gUnknown_203B3F8
|
||||
_0803AF74: .4byte gUnknown_203B45C
|
||||
_0803AF78:
|
||||
bl sub_8023C60
|
||||
movs r0, 0x7
|
||||
bl sub_803ACD0
|
||||
_0803AF82:
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_803AF38
|
||||
|
||||
.align 2,0
|
||||
1309
asm/other_menus.s
1309
asm/other_menus.s
File diff suppressed because it is too large
Load Diff
@@ -100,7 +100,7 @@ _080389A0:
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080389B8: .4byte gUnknown_203B370
|
||||
_080389B8: .4byte gRescuePasswordMenu
|
||||
_080389BC: .4byte gUnknown_80E71E4
|
||||
_080389C0: .4byte gUnknown_203B368
|
||||
_080389C4: .4byte gUnknown_203B36C
|
||||
@@ -163,7 +163,7 @@ _08038A36:
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08038A54: .4byte gUnknown_202EC50
|
||||
_08038A58: .4byte gUnknown_203B370
|
||||
_08038A58: .4byte gRescuePasswordMenu
|
||||
thumb_func_end CreateRescuePasswordMenu
|
||||
|
||||
thumb_func_start CleanRescuePasswordMenu
|
||||
@@ -189,7 +189,7 @@ _08038A86:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08038A8C: .4byte gUnknown_203B370
|
||||
_08038A8C: .4byte gRescuePasswordMenu
|
||||
thumb_func_end CleanRescuePasswordMenu
|
||||
|
||||
thumb_func_start UpdateRescuePasswordMenu
|
||||
@@ -214,7 +214,7 @@ _08038AA8:
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08038AB4: .4byte 0x0000ffdc
|
||||
_08038AB8: .4byte gUnknown_203B370
|
||||
_08038AB8: .4byte gRescuePasswordMenu
|
||||
_08038ABC: .4byte _08038AC0
|
||||
.align 2, 0
|
||||
_08038AC0:
|
||||
@@ -277,7 +277,7 @@ _08038B38:
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08038B44: .4byte gUnknown_203B370
|
||||
_08038B44: .4byte gRescuePasswordMenu
|
||||
_08038B48: .4byte gUnknown_202EC50
|
||||
_08038B4C: .4byte _08038B50
|
||||
.align 2, 0
|
||||
@@ -328,7 +328,7 @@ _08038BA8:
|
||||
bl sub_80951BC
|
||||
b _08038DB0
|
||||
.align 2, 0
|
||||
_08038BCC: .4byte gUnknown_203B370
|
||||
_08038BCC: .4byte gRescuePasswordMenu
|
||||
_08038BD0: .4byte 0x0000ffdc
|
||||
_08038BD4:
|
||||
movs r0, 0x13
|
||||
@@ -362,7 +362,7 @@ _08038BDC:
|
||||
bl MemoryFill8
|
||||
b _08038DB0
|
||||
.align 2, 0
|
||||
_08038C18: .4byte gUnknown_203B370
|
||||
_08038C18: .4byte gRescuePasswordMenu
|
||||
_08038C1C: .4byte 0x0000ffdc
|
||||
_08038C20: .4byte gUnknown_203B484
|
||||
_08038C24:
|
||||
@@ -396,13 +396,13 @@ _08038C2C:
|
||||
stm r2!, {r3,r4,r6}
|
||||
movs r1, 0x6
|
||||
strb r1, [r0]
|
||||
bl sub_8035D4C
|
||||
bl GetMainMenu
|
||||
adds r0, 0x3A
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
b _08038DB0
|
||||
.align 2, 0
|
||||
_08038C70: .4byte gUnknown_203B370
|
||||
_08038C70: .4byte gRescuePasswordMenu
|
||||
_08038C74: .4byte 0x0000ffdc
|
||||
_08038C78:
|
||||
bl sub_8031DCC
|
||||
@@ -438,7 +438,7 @@ _08038CB0:
|
||||
ldr r5, _08038CB8
|
||||
b _08038DB0
|
||||
.align 2, 0
|
||||
_08038CB4: .4byte gUnknown_203B370
|
||||
_08038CB4: .4byte gRescuePasswordMenu
|
||||
_08038CB8: .4byte 0x0000ffdc
|
||||
_08038CBC:
|
||||
bl sub_8031E00
|
||||
@@ -488,7 +488,7 @@ _08038CEE:
|
||||
b _08038C84
|
||||
.align 2, 0
|
||||
_08038D1C: .4byte gUnknown_202EC50
|
||||
_08038D20: .4byte gUnknown_203B370
|
||||
_08038D20: .4byte gRescuePasswordMenu
|
||||
_08038D24:
|
||||
ldr r1, [r6]
|
||||
movs r0, 0x8
|
||||
@@ -547,7 +547,7 @@ _08038D66:
|
||||
b _08038DB0
|
||||
.align 2, 0
|
||||
_08038D9C: .4byte gUnknown_202EC50
|
||||
_08038DA0: .4byte gUnknown_203B370
|
||||
_08038DA0: .4byte gRescuePasswordMenu
|
||||
_08038DA4:
|
||||
ldr r1, [r6]
|
||||
movs r0, 0x9
|
||||
@@ -592,7 +592,7 @@ _08038DEE:
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08038DF8: .4byte gUnknown_203B370
|
||||
_08038DF8: .4byte gRescuePasswordMenu
|
||||
_08038DFC: .4byte _08038E00
|
||||
.align 2, 0
|
||||
_08038E00:
|
||||
@@ -623,7 +623,7 @@ _08038E3C:
|
||||
ldr r2, _08038E58
|
||||
b _08038F2E
|
||||
.align 2, 0
|
||||
_08038E50: .4byte gUnknown_203B370
|
||||
_08038E50: .4byte gRescuePasswordMenu
|
||||
_08038E54: .4byte gUnknown_80E71FC
|
||||
_08038E58: .4byte gUnknown_80E7214
|
||||
_08038E5C:
|
||||
@@ -638,7 +638,7 @@ _08038E5C:
|
||||
ldr r2, _08038E78
|
||||
b _08038F2E
|
||||
.align 2, 0
|
||||
_08038E70: .4byte gUnknown_203B370
|
||||
_08038E70: .4byte gRescuePasswordMenu
|
||||
_08038E74: .4byte gUnknown_80E72EC
|
||||
_08038E78: .4byte gUnknown_80E7304
|
||||
_08038E7C:
|
||||
@@ -653,7 +653,7 @@ _08038E7C:
|
||||
ldr r2, _08038E98
|
||||
b _08038F2E
|
||||
.align 2, 0
|
||||
_08038E90: .4byte gUnknown_203B370
|
||||
_08038E90: .4byte gRescuePasswordMenu
|
||||
_08038E94: .4byte gUnknown_80E7344
|
||||
_08038E98: .4byte gUnknown_80E735C
|
||||
_08038E9C:
|
||||
@@ -668,7 +668,7 @@ _08038E9C:
|
||||
ldr r2, _08038EB8
|
||||
b _08038F2E
|
||||
.align 2, 0
|
||||
_08038EB0: .4byte gUnknown_203B370
|
||||
_08038EB0: .4byte gRescuePasswordMenu
|
||||
_08038EB4: .4byte gUnknown_80E7588
|
||||
_08038EB8: .4byte gUnknown_80E75A0
|
||||
_08038EBC:
|
||||
@@ -683,7 +683,7 @@ _08038EBC:
|
||||
ldr r2, _08038ED8
|
||||
b _08038F2E
|
||||
.align 2, 0
|
||||
_08038ED0: .4byte gUnknown_203B370
|
||||
_08038ED0: .4byte gRescuePasswordMenu
|
||||
_08038ED4: .4byte gUnknown_80E73AC
|
||||
_08038ED8: .4byte gUnknown_80E73C4
|
||||
_08038EDC:
|
||||
@@ -698,7 +698,7 @@ _08038EDC:
|
||||
ldr r2, _08038EF8
|
||||
b _08038F2E
|
||||
.align 2, 0
|
||||
_08038EF0: .4byte gUnknown_203B370
|
||||
_08038EF0: .4byte gRescuePasswordMenu
|
||||
_08038EF4: .4byte gUnknown_80E7408
|
||||
_08038EF8: .4byte gUnknown_80E7420
|
||||
_08038EFC:
|
||||
@@ -713,7 +713,7 @@ _08038EFC:
|
||||
ldr r2, _08038F18
|
||||
b _08038F2E
|
||||
.align 2, 0
|
||||
_08038F10: .4byte gUnknown_203B370
|
||||
_08038F10: .4byte gRescuePasswordMenu
|
||||
_08038F14: .4byte gUnknown_80E7468
|
||||
_08038F18: .4byte gUnknown_80E7480
|
||||
_08038F1C:
|
||||
@@ -737,7 +737,7 @@ _08038F2E:
|
||||
bl SetMenuItems
|
||||
b _08038F74
|
||||
.align 2, 0
|
||||
_08038F44: .4byte gUnknown_203B370
|
||||
_08038F44: .4byte gRescuePasswordMenu
|
||||
_08038F48: .4byte gUnknown_80E74C8
|
||||
_08038F4C: .4byte gUnknown_80E74E0
|
||||
_08038F50:
|
||||
@@ -770,7 +770,7 @@ _08038F74:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08038F8C: .4byte gUnknown_203B370
|
||||
_08038F8C: .4byte gRescuePasswordMenu
|
||||
_08038F90: .4byte gUnknown_80E752C
|
||||
_08038F94: .4byte gUnknown_80E7544
|
||||
thumb_func_end sub_8038DC0
|
||||
@@ -817,7 +817,7 @@ sub_8038F98:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08038FF4: .4byte gUnknown_203B370
|
||||
_08038FF4: .4byte gRescuePasswordMenu
|
||||
_08038FF8: .4byte gUnknown_80E7278
|
||||
_08038FFC: .4byte gUnknown_80E7290
|
||||
thumb_func_end sub_8038F98
|
||||
@@ -838,7 +838,7 @@ sub_8039000:
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0803901C: .4byte gUnknown_203B370
|
||||
_0803901C: .4byte gRescuePasswordMenu
|
||||
_08039020: .4byte _08039024
|
||||
.align 2, 0
|
||||
_08039024:
|
||||
@@ -1075,7 +1075,7 @@ sub_8039174:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080391D8: .4byte gUnknown_203B370
|
||||
_080391D8: .4byte gRescuePasswordMenu
|
||||
_080391DC: .4byte 0x0000feff
|
||||
_080391E0: .4byte 0x0000fdff
|
||||
_080391E4: .4byte 0x0000f3ff
|
||||
@@ -1131,7 +1131,7 @@ _0803923C:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08039250: .4byte gUnknown_203B370
|
||||
_08039250: .4byte gRescuePasswordMenu
|
||||
thumb_func_end sub_80391F8
|
||||
|
||||
.align 2,0
|
||||
|
||||
76
asm/unk_menu_203B360.s
Normal file
76
asm/unk_menu_203B360.s
Normal file
@@ -0,0 +1,76 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8038440
|
||||
sub_8038440:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
ldr r0, _080384B0
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0xD4
|
||||
lsls r3, 1
|
||||
add r3, r12
|
||||
ldrh r1, [r3]
|
||||
ldr r0, _080384B4
|
||||
ands r0, r1
|
||||
ldr r1, _080384B8
|
||||
ands r0, r1
|
||||
ldr r4, _080384BC
|
||||
ands r0, r4
|
||||
ldr r1, _080384C0
|
||||
ands r0, r1
|
||||
ldr r1, _080384C4
|
||||
ands r0, r1
|
||||
movs r2, 0x80
|
||||
lsls r2, 7
|
||||
ldr r1, _080384C8
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r3]
|
||||
movs r2, 0xFC
|
||||
lsls r2, 2
|
||||
ldrh r1, [r3, 0x4]
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
ands r0, r4
|
||||
movs r2, 0xF
|
||||
movs r4, 0xF0
|
||||
lsls r4, 8
|
||||
ldr r1, _080384CC
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
strh r0, [r3, 0x4]
|
||||
movs r0, 0x70
|
||||
strh r0, [r3, 0x2]
|
||||
movs r1, 0xE0
|
||||
lsls r1, 3
|
||||
ldrh r0, [r3, 0x6]
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
strh r2, [r3, 0x6]
|
||||
movs r0, 0xD8
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r5, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080384B0: .4byte gUnknown_203B360
|
||||
_080384B4: .4byte 0x0000feff
|
||||
_080384B8: .4byte 0x0000fdff
|
||||
_080384BC: .4byte 0x0000f3ff
|
||||
_080384C0: .4byte 0x0000efff
|
||||
_080384C4: .4byte 0x0000dfff
|
||||
_080384C8: .4byte 0x00003fff
|
||||
_080384CC: .4byte 0x00000fff
|
||||
thumb_func_end sub_8038440
|
||||
|
||||
.align 2,0
|
||||
364
asm/unk_menu_203B364.s
Normal file
364
asm/unk_menu_203B364.s
Normal file
@@ -0,0 +1,364 @@
|
||||
.include "constants/gba_constants.inc"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8038630
|
||||
sub_8038630:
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x18
|
||||
ldr r5, _080386A8
|
||||
movs r0, 0x3
|
||||
str r0, [sp, 0x14]
|
||||
ldr r6, _080386AC
|
||||
ldr r0, [r6]
|
||||
ldr r4, [r0, 0x4]
|
||||
cmp r4, 0x1
|
||||
bne _08038646
|
||||
b _08038798
|
||||
_08038646:
|
||||
cmp r4, 0x1
|
||||
bcc _0803864C
|
||||
b _08038824
|
||||
_0803864C:
|
||||
adds r0, 0x8
|
||||
bl sub_8012FD8
|
||||
movs r5, 0
|
||||
str r5, [sp, 0x10]
|
||||
bl sub_80140F8
|
||||
bl sub_8011C1C
|
||||
adds r1, r0, 0
|
||||
add r0, sp, 0x10
|
||||
bl sub_801203C
|
||||
adds r4, r0, 0
|
||||
bl sub_8014114
|
||||
cmp r4, 0
|
||||
beq _080386B8
|
||||
cmp r4, 0x1
|
||||
beq _08038738
|
||||
ldr r0, [r6]
|
||||
movs r4, 0xA4
|
||||
lsls r4, 1
|
||||
adds r0, r4
|
||||
movs r1, 0
|
||||
bl sub_8035CC0
|
||||
ldr r1, [r6]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x2E
|
||||
bne _08038750
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
adds r1, r4
|
||||
ldr r3, _080386B0
|
||||
ldr r2, _080386B4
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
b _0803876E
|
||||
.align 2, 0
|
||||
_080386A8: .4byte 0x0000ffdc
|
||||
_080386AC: .4byte gUnknown_203B364
|
||||
_080386B0: .4byte gUnknown_80E6F38
|
||||
_080386B4: .4byte gUnknown_80E7114
|
||||
_080386B8:
|
||||
ldr r0, [r6]
|
||||
movs r1, 0xA4
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
movs r1, 0
|
||||
bl sub_8035CC0
|
||||
ldr r1, [r6]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x2E
|
||||
bne _080386F8
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
movs r2, 0xA4
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
ldr r3, _080386F0
|
||||
ldr r2, _080386F4
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
b _08038716
|
||||
.align 2, 0
|
||||
_080386F0: .4byte gUnknown_80E6F38
|
||||
_080386F4: .4byte gUnknown_80E70CC
|
||||
_080386F8:
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
movs r2, 0xA4
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
ldr r3, _08038728
|
||||
ldr r2, _0803872C
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
_08038716:
|
||||
ldr r4, _08038730
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x2D
|
||||
bne _08038734
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r0, 0x13
|
||||
b _08038826
|
||||
.align 2, 0
|
||||
_08038728: .4byte gUnknown_80E6F38
|
||||
_0803872C: .4byte gUnknown_80E6FBC
|
||||
_08038730: .4byte gUnknown_203B364
|
||||
_08038734:
|
||||
adds r0, r1, 0
|
||||
b _08038772
|
||||
_08038738:
|
||||
ldr r0, _0803874C
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl sub_80141B4
|
||||
ldr r1, [r6]
|
||||
movs r0, 0x5
|
||||
b _08038780
|
||||
.align 2, 0
|
||||
_0803874C: .4byte gUnknown_80E7178
|
||||
_08038750:
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x8
|
||||
movs r2, 0xA4
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
ldr r3, _08038788
|
||||
ldr r2, _0803878C
|
||||
str r2, [sp]
|
||||
str r5, [sp, 0x4]
|
||||
movs r2, 0x6
|
||||
str r2, [sp, 0x8]
|
||||
str r5, [sp, 0xC]
|
||||
movs r2, 0
|
||||
bl SetMenuItems
|
||||
_0803876E:
|
||||
ldr r4, _08038790
|
||||
ldr r0, [r4]
|
||||
_08038772:
|
||||
adds r0, 0x8
|
||||
movs r1, 0
|
||||
movs r2, 0x1
|
||||
bl sub_8035CF4
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
_08038780:
|
||||
str r0, [r1, 0x4]
|
||||
ldr r5, _08038794
|
||||
b _08038824
|
||||
.align 2, 0
|
||||
_08038788: .4byte gUnknown_80E6F38
|
||||
_0803878C: .4byte gUnknown_80E701C
|
||||
_08038790: .4byte gUnknown_203B364
|
||||
_08038794: .4byte 0x0000ffdc
|
||||
_08038798:
|
||||
adds r0, 0x8
|
||||
bl sub_80130A8
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080387AE
|
||||
ldr r0, [r6]
|
||||
adds r0, 0x8
|
||||
add r1, sp, 0x14
|
||||
bl sub_8013114
|
||||
_080387AE:
|
||||
ldr r0, [sp, 0x14]
|
||||
cmp r0, 0x3
|
||||
beq _0803881C
|
||||
cmp r0, 0x3
|
||||
bhi _080387BE
|
||||
cmp r0, 0x2
|
||||
beq _080387C2
|
||||
b _08038820
|
||||
_080387BE:
|
||||
cmp r0, 0x4
|
||||
bne _08038820
|
||||
_080387C2:
|
||||
ldr r4, _080387D8
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x29
|
||||
beq _080387D0
|
||||
cmp r0, 0x2E
|
||||
bne _080387DC
|
||||
_080387D0:
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x1
|
||||
b _08038820
|
||||
.align 2, 0
|
||||
_080387D8: .4byte gUnknown_203B364
|
||||
_080387DC:
|
||||
cmp r0, 0x2D
|
||||
bne _080387E8
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x13
|
||||
b _08038820
|
||||
_080387E8:
|
||||
cmp r0, 0x2C
|
||||
bne _080387F4
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x1F
|
||||
b _08038820
|
||||
_080387F4:
|
||||
bl GetMainMenu
|
||||
adds r0, 0x3A
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0803880A
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x1
|
||||
str r0, [r1, 0x4]
|
||||
movs r5, 0x35
|
||||
b _08038820
|
||||
_0803880A:
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1
|
||||
str r1, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
movs r5, 0xB
|
||||
cmp r0, 0x2B
|
||||
bne _08038820
|
||||
movs r5, 0xD
|
||||
b _08038820
|
||||
_0803881C:
|
||||
ldr r0, [r6]
|
||||
str r4, [r0, 0x4]
|
||||
_08038820:
|
||||
bl sub_80388C4
|
||||
_08038824:
|
||||
adds r0, r5, 0
|
||||
_08038826:
|
||||
add sp, 0x18
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8038630
|
||||
|
||||
thumb_func_start sub_8038830
|
||||
sub_8038830:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0
|
||||
ldr r0, _080388A4
|
||||
ldr r0, [r0]
|
||||
mov r12, r0
|
||||
movs r3, 0xD4
|
||||
lsls r3, 1
|
||||
add r3, r12
|
||||
ldrh r1, [r3]
|
||||
ldr r0, _080388A8
|
||||
ands r0, r1
|
||||
ldr r1, _080388AC
|
||||
ands r0, r1
|
||||
ldr r4, _080388B0
|
||||
ands r0, r4
|
||||
ldr r1, _080388B4
|
||||
ands r0, r1
|
||||
ldr r1, _080388B8
|
||||
ands r0, r1
|
||||
movs r2, 0x80
|
||||
lsls r2, 7
|
||||
ldr r1, _080388BC
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r3]
|
||||
movs r2, 0xFC
|
||||
lsls r2, 2
|
||||
ldrh r1, [r3, 0x4]
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
ands r0, r4
|
||||
movs r2, 0xF
|
||||
movs r4, 0xF0
|
||||
lsls r4, 8
|
||||
ldr r1, _080388C0
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
strh r0, [r3, 0x4]
|
||||
movs r0, 0x70
|
||||
strh r0, [r3, 0x2]
|
||||
movs r1, 0xD0
|
||||
lsls r1, 3
|
||||
ldrh r0, [r3, 0x6]
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
strh r2, [r3, 0x6]
|
||||
movs r0, 0xD8
|
||||
lsls r0, 1
|
||||
add r0, r12
|
||||
str r5, [r0]
|
||||
movs r0, 0
|
||||
bl ResetSprites
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080388A4: .4byte gUnknown_203B364
|
||||
_080388A8: .4byte 0x0000feff
|
||||
_080388AC: .4byte 0x0000fdff
|
||||
_080388B0: .4byte 0x0000f3ff
|
||||
_080388B4: .4byte 0x0000efff
|
||||
_080388B8: .4byte 0x0000dfff
|
||||
_080388BC: .4byte 0x00003fff
|
||||
_080388C0: .4byte 0x00000fff
|
||||
thumb_func_end sub_8038830
|
||||
|
||||
thumb_func_start sub_80388C4
|
||||
sub_80388C4:
|
||||
push {r4,r5,lr}
|
||||
ldr r5, _080388FC
|
||||
ldr r2, [r5]
|
||||
movs r4, 0xD8
|
||||
lsls r4, 1
|
||||
adds r0, r2, r4
|
||||
ldr r0, [r0]
|
||||
movs r1, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080388EA
|
||||
movs r1, 0xD4
|
||||
lsls r1, 1
|
||||
adds r0, r2, r1
|
||||
subs r1, 0xA8
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddSprite
|
||||
_080388EA:
|
||||
ldr r1, [r5]
|
||||
adds r1, r4
|
||||
ldr r0, [r1]
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080388FC: .4byte gUnknown_203B364
|
||||
thumb_func_end sub_80388C4
|
||||
|
||||
.align 2,0
|
||||
@@ -15555,371 +15555,5 @@ _08031F00:
|
||||
_08031F5C: .4byte gUnknown_203B334
|
||||
thumb_func_end sub_8031E74
|
||||
|
||||
thumb_func_start CreateAdventureLogScreen
|
||||
CreateAdventureLogScreen:
|
||||
push {r4-r6,lr}
|
||||
adds r5, r0, 0
|
||||
ldr r4, _08031FD0
|
||||
movs r0, 0xA0
|
||||
movs r1, 0x8
|
||||
bl MemoryAlloc
|
||||
str r0, [r4]
|
||||
str r5, [r0, 0x34]
|
||||
lsls r1, r5, 1
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r1, 0x3C
|
||||
adds r1, r0, r1
|
||||
str r1, [r0, 0x38]
|
||||
adds r0, 0x3C
|
||||
bl sub_8006518
|
||||
ldr r1, [r4]
|
||||
ldr r2, [r1, 0x34]
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
adds r1, 0x3C
|
||||
ldr r0, _08031FD4
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldr r0, [r4]
|
||||
ldr r1, [r0, 0x38]
|
||||
adds r0, 0x9C
|
||||
str r0, [r1, 0x14]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x20
|
||||
movs r2, 0x8
|
||||
adds r3, r5, 0
|
||||
bl sub_8013818
|
||||
bl sub_8032084
|
||||
bl DisplayAdventureLog
|
||||
movs r0, 0x1
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08031FD0: .4byte gUnknown_203B338
|
||||
_08031FD4: .4byte gUnknown_80E2008
|
||||
thumb_func_end CreateAdventureLogScreen
|
||||
|
||||
thumb_func_start HandleAdventureLogInput
|
||||
HandleAdventureLogInput:
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08031FF0
|
||||
ldr r0, _08031FEC
|
||||
ldr r0, [r0]
|
||||
bl sub_8013660
|
||||
movs r0, 0
|
||||
b _08032034
|
||||
.align 2, 0
|
||||
_08031FEC: .4byte gUnknown_203B338
|
||||
_08031FF0:
|
||||
ldr r4, _0803200C
|
||||
ldr r0, [r4]
|
||||
bl GetKeyPress
|
||||
cmp r0, 0x1
|
||||
beq _08032010
|
||||
cmp r0, 0x2
|
||||
bne _0803201A
|
||||
movs r0, 0x1
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x2
|
||||
b _08032034
|
||||
.align 2, 0
|
||||
_0803200C: .4byte gUnknown_203B338
|
||||
_08032010:
|
||||
movs r0, 0
|
||||
bl PlayMenuSoundEffect
|
||||
movs r0, 0x3
|
||||
b _08032034
|
||||
_0803201A:
|
||||
ldr r0, [r4]
|
||||
bl sub_8013938
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0803202A
|
||||
movs r0, 0
|
||||
b _08032034
|
||||
_0803202A:
|
||||
bl sub_8032084
|
||||
bl DisplayAdventureLog
|
||||
movs r0, 0x1
|
||||
_08032034:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end HandleAdventureLogInput
|
||||
|
||||
thumb_func_start sub_803203C
|
||||
sub_803203C:
|
||||
push {r4,r5,lr}
|
||||
ldr r4, _0803207C
|
||||
ldr r2, [r4]
|
||||
cmp r2, 0
|
||||
beq _08032076
|
||||
ldr r0, [r2, 0x34]
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x3C
|
||||
ldr r0, _08032080
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
ldm r0!, {r2,r3,r5}
|
||||
stm r1!, {r2,r3,r5}
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
ldr r0, [r4]
|
||||
bl MemoryFree
|
||||
movs r0, 0
|
||||
str r0, [r4]
|
||||
_08032076:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803207C: .4byte gUnknown_203B338
|
||||
_08032080: .4byte gUnknown_80E1FF0
|
||||
thumb_func_end sub_803203C
|
||||
|
||||
thumb_func_start sub_8032084
|
||||
sub_8032084:
|
||||
push {r4,lr}
|
||||
ldr r4, _080320F4
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x20]
|
||||
adds r0, 0x9C
|
||||
movs r2, 0
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, 0x1E]
|
||||
adds r0, 0x9D
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9E
|
||||
movs r1, 0xB
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x9F
|
||||
strb r2, [r0]
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r0, r1]
|
||||
movs r1, 0xC
|
||||
bl sub_80095E4
|
||||
adds r0, 0x2
|
||||
lsls r0, 16
|
||||
ldr r2, [r4]
|
||||
ldr r3, [r2, 0x34]
|
||||
lsls r1, r3, 1
|
||||
adds r1, r3
|
||||
lsls r1, 3
|
||||
adds r1, r2, r1
|
||||
adds r1, 0x4A
|
||||
asrs r3, r0, 16
|
||||
lsrs r0, 16
|
||||
strh r0, [r1]
|
||||
ldr r1, [r2, 0x34]
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r2, r0
|
||||
adds r3, 0x2
|
||||
adds r2, 0x4C
|
||||
strh r3, [r2]
|
||||
bl ResetUnusedInputStruct
|
||||
ldr r0, [r4]
|
||||
adds r0, 0x3C
|
||||
movs r1, 0x1
|
||||
movs r2, 0x1
|
||||
bl sub_800641C
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080320F4: .4byte gUnknown_203B338
|
||||
thumb_func_end sub_8032084
|
||||
|
||||
thumb_func_start DisplayAdventureLog
|
||||
DisplayAdventureLog:
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0x8
|
||||
ldr r5, _08032158
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_8008C54
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073B8
|
||||
ldr r0, [r5]
|
||||
movs r1, 0x1E
|
||||
ldrsh r4, [r0, r1]
|
||||
lsls r4, 3
|
||||
adds r6, r4, 0
|
||||
adds r6, 0xA
|
||||
ldr r2, _0803215C
|
||||
ldr r3, [r0, 0x34]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
bl xxx_call_draw_string
|
||||
adds r4, 0x4
|
||||
ldr r1, [r5]
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x9E
|
||||
ldrb r0, [r0]
|
||||
lsls r0, 3
|
||||
adds r6, r4, r0
|
||||
movs r0, 0x1E
|
||||
ldrsh r2, [r1, r0]
|
||||
adds r2, 0x1
|
||||
movs r0, 0x7
|
||||
str r0, [sp]
|
||||
ldr r0, [r1, 0x34]
|
||||
str r0, [sp, 0x4]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
movs r3, 0x1
|
||||
bl sub_8012BC4
|
||||
movs r7, 0
|
||||
ldr r0, [r5]
|
||||
b _0803223A
|
||||
.align 2, 0
|
||||
_08032158: .4byte gUnknown_203B338
|
||||
_0803215C: .4byte gUnknown_80E2020
|
||||
_08032160:
|
||||
ldr r5, _08032194
|
||||
ldr r0, [r5]
|
||||
movs r2, 0x1E
|
||||
ldrsh r1, [r0, r2]
|
||||
movs r2, 0x1C
|
||||
ldrsh r0, [r0, r2]
|
||||
muls r0, r1
|
||||
adds r0, r7
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
adds r0, r6, 0
|
||||
bl sub_8097710
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0
|
||||
beq _0803221C
|
||||
subs r0, r6, 0x7
|
||||
cmp r0, 0x5
|
||||
bhi _080321EC
|
||||
lsls r0, 2
|
||||
ldr r1, _08032198
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08032194: .4byte gUnknown_203B338
|
||||
_08032198: .4byte _0803219C
|
||||
.align 2, 0
|
||||
_0803219C:
|
||||
.4byte _080321BA
|
||||
.4byte _080321C6
|
||||
.4byte _080321D4
|
||||
.4byte _080321E0
|
||||
.4byte _080321C0
|
||||
.4byte _080321B4
|
||||
_080321B4:
|
||||
bl sub_80978B8
|
||||
b _080321E4
|
||||
_080321BA:
|
||||
bl sub_8097880
|
||||
b _080321E4
|
||||
_080321C0:
|
||||
bl sub_8097838
|
||||
b _080321E4
|
||||
_080321C6:
|
||||
bl sub_80977B8
|
||||
ldr r1, _080321D0
|
||||
b _080321EA
|
||||
.align 2, 0
|
||||
_080321D0: .4byte gUnknown_202DE30
|
||||
_080321D4:
|
||||
bl sub_80977F8
|
||||
ldr r1, _080321DC
|
||||
b _080321EA
|
||||
.align 2, 0
|
||||
_080321DC: .4byte gUnknown_202DE30
|
||||
_080321E0:
|
||||
bl sub_8097870
|
||||
_080321E4:
|
||||
ldr r1, _08032214
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
_080321EA:
|
||||
str r0, [r1]
|
||||
_080321EC:
|
||||
ldr r4, _08032218
|
||||
ldr r0, [r4]
|
||||
adds r1, r7, 0
|
||||
bl sub_8013800
|
||||
adds r5, r0, 0
|
||||
adds r0, r6, 0
|
||||
bl GetAdventureLogLine
|
||||
adds r2, r0, 0
|
||||
ldr r0, [r4]
|
||||
ldr r3, [r0, 0x34]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x8
|
||||
adds r1, r5, 0
|
||||
bl sub_8014FF0
|
||||
b _08032234
|
||||
.align 2, 0
|
||||
_08032214: .4byte gUnknown_202DE30
|
||||
_08032218: .4byte gUnknown_203B338
|
||||
_0803221C:
|
||||
ldr r0, [r5]
|
||||
adds r1, r7, 0
|
||||
bl sub_8013800
|
||||
adds r1, r0, 0
|
||||
ldr r2, _08032254
|
||||
ldr r0, [r5]
|
||||
ldr r3, [r0, 0x34]
|
||||
str r4, [sp]
|
||||
movs r0, 0x8
|
||||
bl xxx_call_draw_string
|
||||
_08032234:
|
||||
adds r7, 0x1
|
||||
ldr r0, _08032258
|
||||
ldr r0, [r0]
|
||||
_0803223A:
|
||||
movs r1, 0x1A
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r7, r0
|
||||
blt _08032160
|
||||
ldr r0, _08032258
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, 0x34]
|
||||
bl sub_80073E0
|
||||
add sp, 0x8
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08032254: .4byte gUnknown_80E2030
|
||||
_08032258: .4byte gUnknown_203B338
|
||||
thumb_func_end DisplayAdventureLog
|
||||
|
||||
.align 2,0
|
||||
|
||||
18
data/data.s
18
data/data.s
@@ -72,8 +72,8 @@ gPMDBuildVersion: @ 80B69BC
|
||||
.string "titlen2\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B69F8
|
||||
gUnknown_80B69F8: @ 80B69F8
|
||||
.global gLoadScreenBackgroundFileNames
|
||||
gLoadScreenBackgroundFileNames: @ 80B69F8
|
||||
.4byte titlen0_text
|
||||
.4byte titlen1_text
|
||||
.4byte titlen2_text
|
||||
@@ -93,8 +93,8 @@ gUnknown_80B69F8: @ 80B69F8
|
||||
.string "titlen2p\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B6A28
|
||||
gUnknown_80B6A28: @ 80B6A28
|
||||
.global gLoadScreenBackgroundPaletteFileNames
|
||||
gLoadScreenBackgroundPaletteFileNames: @ 80B6A28
|
||||
.4byte titlen0p_text
|
||||
.4byte titlen1p_text
|
||||
.4byte titlen2p_text
|
||||
@@ -455,13 +455,19 @@ gUnknown_80B7318: @ 80B7318
|
||||
|
||||
.global gUnknown_80B7324
|
||||
gUnknown_80B7324: @ 80B7324
|
||||
.incbin "baserom.gba", 0xB7324, 0x2C
|
||||
.string "event flag expansion error %d\0"
|
||||
.align 2,0
|
||||
|
||||
.global FlagJudge_Text
|
||||
FlagJudge_Text:
|
||||
.string "_FlagJudge\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_80B7350
|
||||
gUnknown_80B7350: @ 80B7350
|
||||
.4byte EventFlagFile_Text
|
||||
.byte 0x7C, 0x05, 0x00, 0x00
|
||||
.byte 0x44, 0x73, 0x0B, 0x08 @ Pointer to _FlagJudge
|
||||
.4byte FlagJudge_Text
|
||||
|
||||
.global gUnknown_80B735C
|
||||
gUnknown_80B735C: @ 80B735C
|
||||
|
||||
2226
data/data_80DED44.s
2226
data/data_80DED44.s
File diff suppressed because it is too large
Load Diff
2203
data/data_80E2068.s
Normal file
2203
data/data_80E2068.s
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,9 +1,5 @@
|
||||
.section .rodata
|
||||
|
||||
.global gFormattedTypeStrings
|
||||
gFormattedTypeStrings: @ 810AE24
|
||||
.incbin "baserom.gba", 0x10AE24, 0x12C
|
||||
|
||||
.global gUnknown_810AF50
|
||||
gUnknown_810AF50: @ 810AF50
|
||||
.incbin "baserom.gba", 0x10AF50, 0xFC
|
||||
@@ -1656,24 +1652,42 @@ gUnknown_8118218: @ 8118218
|
||||
.byte 0xC8, 0x06, 0x00, 0x00
|
||||
.4byte ExecutePlayerScript_Text
|
||||
|
||||
.global ExecutePlayerScriptActionLives_Text
|
||||
ExecutePlayerScriptActionLives_Text:
|
||||
.string "GroundLives_ExecutePlayerScriptActionLives\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_8118250
|
||||
gUnknown_8118250: @ 8118250
|
||||
.incbin "baserom.gba", 0x118250, 0xC
|
||||
.4byte GroundLivesFile_Text
|
||||
.byte 0xF9, 0x06, 0x00, 0x00
|
||||
.4byte ExecutePlayerScriptActionLives_Text
|
||||
|
||||
.global gUnknown_811825C
|
||||
gUnknown_811825C: @ 811825C
|
||||
.incbin "baserom.gba", 0x11825C, 0x24
|
||||
.string "#CWinvalidity#R\0"
|
||||
.align 2,0
|
||||
|
||||
.global GroundLives_ActionText
|
||||
GroundLives_ActionText:
|
||||
.string "GroundLives_Action\0"
|
||||
.align 2,0
|
||||
|
||||
|
||||
.global gUnknown_8118280
|
||||
gUnknown_8118280: @ 8118280
|
||||
.incbin "baserom.gba", 0x118280, 0xC
|
||||
.4byte GroundLivesFile_Text
|
||||
.byte 0xA2, 0x11, 0x00, 0x00
|
||||
.4byte GroundLives_ActionText
|
||||
|
||||
.global gUnknown_811828C
|
||||
gUnknown_811828C: @ 811828C
|
||||
.incbin "baserom.gba", 0x11828C, 0x14
|
||||
.4byte GroundLivesFile_Text
|
||||
.byte 0x0E, 0x12, 0x00, 0x00
|
||||
.4byte GroundLives_ActionText
|
||||
|
||||
.string "pksdir0\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_81182A0
|
||||
gUnknown_81182A0: @ 81182A0
|
||||
@@ -1714,6 +1728,9 @@ gUnknown_811842C: @ 811842C
|
||||
gUnknown_8118448: @ 8118448
|
||||
.string "GroundObject Add id %3d kind %3d[%3d] type %3d group %3d sector %3d\0"
|
||||
.align 2,0
|
||||
|
||||
.global GroundObject_AddText
|
||||
GroundObject_AddText:
|
||||
.string "GroundObject_Add\0"
|
||||
.align 2,0
|
||||
|
||||
@@ -1759,15 +1776,18 @@ gUnknown_8118610: @ 8118610
|
||||
|
||||
.global gUnknown_811861C
|
||||
gUnknown_811861C: @ 811861C
|
||||
.incbin "baserom.gba", 0x11861C, 0x24
|
||||
.string "GroundEffect Select %3d %3d %3d"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_8118640
|
||||
gUnknown_8118640: @ 8118640
|
||||
.incbin "baserom.gba", 0x118640, 0x18
|
||||
.string "GroundEffect Cancel %3d"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_8118658
|
||||
gUnknown_8118658: @ 8118658
|
||||
.incbin "baserom.gba", 0x118658, 0x1C
|
||||
.string "GroundEffect CancelBlank\0"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_8118674
|
||||
gUnknown_8118674: @ 8118674
|
||||
@@ -1779,11 +1799,16 @@ gUnknown_81186CC: @ 81186CC
|
||||
|
||||
.global gUnknown_81186D8
|
||||
gUnknown_81186D8: @ 81186D8
|
||||
.incbin "baserom.gba", 0x1186D8, 0x1C
|
||||
.string "GroundEffect Delete id %3d"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_81186F4
|
||||
gUnknown_81186F4: @ 81186F4
|
||||
.incbin "baserom.gba", 0x1186F4, 0x38
|
||||
.string "GroundEffect Execute %3d "
|
||||
.align 2,0
|
||||
|
||||
.string "GroundEffect_ExecuteScript"
|
||||
.align 2,0
|
||||
|
||||
.global gUnknown_811872C
|
||||
gUnknown_811872C: @ 811872C
|
||||
|
||||
8
include/adventure_log.h
Normal file
8
include/adventure_log.h
Normal file
@@ -0,0 +1,8 @@
|
||||
#ifndef ADVENTURE_LOG_H
|
||||
#define ADVENTURE_LOG_H
|
||||
|
||||
void CreateAdventureLogMenu(void);
|
||||
void CleanAdventureLogMenu(void);
|
||||
u32 UpdateAdventureLogMenu(void);
|
||||
|
||||
#endif
|
||||
@@ -5,7 +5,8 @@
|
||||
|
||||
struct unkData
|
||||
{
|
||||
s16 unk0[12];
|
||||
s16 unk0[10];
|
||||
u8 *unk14;
|
||||
};
|
||||
|
||||
// Definitely wrong but need to figure out better structure later
|
||||
@@ -63,7 +64,7 @@ struct PersonalityStruct_203B404
|
||||
u32 unk4C;
|
||||
/* 0x50 */ struct unkData *unk50;
|
||||
/* 0x54 */ struct unkData unk54[4];
|
||||
/* 0xB4 */ struct PersonalitySubStruct sub;
|
||||
/* 0xB4 */ u8 unkb4[4];
|
||||
};
|
||||
extern struct PersonalityStruct_203B404 *gUnknown_203B404;
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ SECTIONS {
|
||||
src/wonder_mail.o(.text);
|
||||
src/wonder_mail_mid.o(.text);
|
||||
asm/wonder_mail_1.o(.text);
|
||||
src/adventure_log.o(.text);
|
||||
src/friend_rescue.o(.text);
|
||||
asm/friend_rescue.o(.text);
|
||||
src/friend_rescue_1.o(.text);
|
||||
@@ -104,15 +105,24 @@ SECTIONS {
|
||||
src/main_menu_mid.o(.text);
|
||||
asm/main_menu_1.o(.text);
|
||||
src/trade_items_menu.o(.text);
|
||||
src/other_menus.o(.text);
|
||||
asm/other_menus.o(.text);
|
||||
src/adventure_log_menu.o(.text);
|
||||
src/unk_menu_203B360.o(.text);
|
||||
asm/unk_menu_203B360.o(.text);
|
||||
src/unk_menu_203B360_1.o(.text);
|
||||
src/unk_menu_203B364.o(.text);
|
||||
asm/unk_menu_203B364.o(.text);
|
||||
asm/rescue_password_menu.o(.text);
|
||||
asm/load_screen.o(.text);
|
||||
src/main_menu_1.o(.text);
|
||||
src/load_screen.o(.text);
|
||||
src/wonder_mail_main_menu_pre.o(.text);
|
||||
asm/wonder_mail_main_menu.o(.text);
|
||||
src/wonder_mail_main_menu.o(.text);
|
||||
src/debug_menu.o(.text);
|
||||
asm/debug_menu.o(.text);
|
||||
src/debug_menu_mid.o(.text);
|
||||
asm/debug_menu_1.o(.text);
|
||||
src/debug_menu_1.o(.text);
|
||||
asm/code_803B050.o(.text);
|
||||
src/pokemon_mail.o(.text);
|
||||
@@ -237,6 +247,8 @@ SECTIONS {
|
||||
data/data_80B9BB8.o(.rodata);
|
||||
src/wonder_mail.o(.rodata);
|
||||
data/data_80DED44.o(.rodata);
|
||||
src/adventure_log.o(.rodata);
|
||||
data/data_80E2068.o(.rodata);
|
||||
data/pokemon_mail.o(.rodata);
|
||||
data/personality_test.o(.rodata);
|
||||
src/personality_test.o(.rodata);
|
||||
|
||||
425
src/adventure_log.c
Normal file
425
src/adventure_log.c
Normal file
@@ -0,0 +1,425 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "gba/io_reg.h"
|
||||
|
||||
struct unkData
|
||||
{
|
||||
u8 unk0[14];
|
||||
u16 unkD;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u8 *unk14;
|
||||
};
|
||||
|
||||
struct AdventureLog
|
||||
{
|
||||
// size: 0xA0
|
||||
u8 fill0[0x1A];
|
||||
/* 0x1A */ s16 unk1A;
|
||||
/* 0x1C */ s16 unk1C;
|
||||
/* 0x1E */ s16 currPage;
|
||||
u16 unk20;
|
||||
u8 fill22[0x34 - 0x22];
|
||||
u32 unk34;
|
||||
struct unkData *unk38;
|
||||
struct unkData unk3C[3];
|
||||
u8 fill84[0x9C - 0x84];
|
||||
u8 unk9C;
|
||||
/* 0x9D */ u8 currPage_u8;
|
||||
u8 unk9E;
|
||||
u8 unk9F;
|
||||
};
|
||||
|
||||
extern struct AdventureLog *gAdventureLog;
|
||||
extern struct unkData gUnknown_80E2008;
|
||||
extern struct unkData gUnknown_80E1FF0;
|
||||
|
||||
// Adventure Log Text
|
||||
const u8 gAdventureLogHeaderText[] = "Adventure Log";
|
||||
const u8 gUnknown_80E2030[] = "~95~95~95~95~95~95~95~95~95~95~95~95~95~95~95 "; // string of ???????
|
||||
const u8 fill_adven[] = "pksdir0";
|
||||
|
||||
extern void *MemoryAlloc(u32, u32);
|
||||
extern void MemoryFree(void *);
|
||||
extern void sub_8006518(struct unkData *);
|
||||
extern void sub_800641C(void *, u32, u32);
|
||||
extern void sub_8032084();
|
||||
extern void DisplayAdventureLog();
|
||||
extern void sub_8013818(void *, u32, u32, u32);
|
||||
extern u8 sub_8013938(void *);
|
||||
extern void sub_8013660(void *);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern u32 GetKeyPress(void *);
|
||||
extern u8 sub_8097710(u8);
|
||||
|
||||
extern s16 sub_80978B8();
|
||||
extern s16 sub_8097880();
|
||||
extern s16 sub_8097838();
|
||||
extern s16 sub_8097870();
|
||||
extern s32 sub_80977B8();
|
||||
extern s32 sub_80977F8();
|
||||
extern void xxx_call_draw_string(s32, u32, u32 *, u32, u32);
|
||||
extern u32 gUnknown_202DE30;
|
||||
|
||||
u32 CreateAdventureLogScreen(u32 param_1)
|
||||
{
|
||||
gAdventureLog = MemoryAlloc(0xa0,8);
|
||||
gAdventureLog->unk34 = param_1;
|
||||
gAdventureLog->unk38 = &gAdventureLog->unk3C[param_1];
|
||||
sub_8006518(gAdventureLog->unk3C);
|
||||
gAdventureLog->unk3C[gAdventureLog->unk34] = gUnknown_80E2008;
|
||||
gAdventureLog->unk38->unk14 = &gAdventureLog->unk9C;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gAdventureLog->unk3C,1,1);
|
||||
sub_8013818(gAdventureLog,0x20,8,param_1);
|
||||
sub_8032084();
|
||||
DisplayAdventureLog();
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 HandleAdventureLogInput(u8 param_1)
|
||||
{
|
||||
if (param_1 == 0) {
|
||||
sub_8013660(gAdventureLog);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
switch(GetKeyPress(gAdventureLog))
|
||||
{
|
||||
case B_BUTTON:
|
||||
PlayMenuSoundEffect(1);
|
||||
return 2;
|
||||
case A_BUTTON:
|
||||
PlayMenuSoundEffect(0);
|
||||
return 3;
|
||||
default:
|
||||
if (sub_8013938(gAdventureLog) != '\0') {
|
||||
sub_8032084();
|
||||
DisplayAdventureLog();
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void CleanAdventureLogScreen(void)
|
||||
{
|
||||
if (gAdventureLog != NULL) {
|
||||
gAdventureLog->unk3C[gAdventureLog->unk34] = gUnknown_80E1FF0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gAdventureLog->unk3C,1,1);
|
||||
MemoryFree(gAdventureLog);
|
||||
gAdventureLog = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8032084(void)
|
||||
{
|
||||
u32 sVar2;
|
||||
|
||||
gAdventureLog->unk9C = gAdventureLog->unk20;
|
||||
gAdventureLog->currPage_u8 = gAdventureLog->currPage;
|
||||
gAdventureLog->unk9E = 0xb;
|
||||
gAdventureLog->unk9F = 0;
|
||||
// So a sign extend..
|
||||
sVar2 = sub_80095E4(gAdventureLog->unk1A,0xc) + 2 << 0x10;
|
||||
// TODO needs asr r3, r0, r16
|
||||
// and lsr r0, r0, r16
|
||||
gAdventureLog->unk3C[gAdventureLog->unk34].unkD = sVar2;
|
||||
// Good past here except regs for this store
|
||||
gAdventureLog->unk3C[gAdventureLog->unk34].unk10 = sVar2 + 2;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gAdventureLog->unk3C,1,1);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_8032084(void)
|
||||
{
|
||||
asm_unified("\tpush {r4,lr}\n"
|
||||
"\tldr r4, _080320F4\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x20]\n"
|
||||
"\tadds r0, 0x9C\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldrh r1, [r0, 0x1E]\n"
|
||||
"\tadds r0, 0x9D\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9E\n"
|
||||
"\tmovs r1, 0xB\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x9F\n"
|
||||
"\tstrb r2, [r0]\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tmovs r1, 0xC\n"
|
||||
"\tbl sub_80095E4\n"
|
||||
"\tadds r0, 0x2\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tldr r2, [r4]\n"
|
||||
"\tldr r3, [r2, 0x34]\n"
|
||||
"\tlsls r1, r3, 1\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tlsls r1, 3\n"
|
||||
"\tadds r1, r2, r1\n"
|
||||
"\tadds r1, 0x4A\n"
|
||||
"\tasrs r3, r0, 16\n"
|
||||
"\tlsrs r0, 16\n"
|
||||
"\tstrh r0, [r1]\n"
|
||||
"\tldr r1, [r2, 0x34]\n"
|
||||
"\tlsls r0, r1, 1\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r2, r0\n"
|
||||
"\tadds r3, 0x2\n"
|
||||
"\tadds r2, 0x4C\n"
|
||||
"\tstrh r3, [r2]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r0, 0x3C\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080320F4: .4byte gAdventureLog");
|
||||
}
|
||||
#endif
|
||||
|
||||
// Uses 1 too many regs
|
||||
#ifdef NONMATCHING
|
||||
void DisplayAdventureLog(void)
|
||||
{
|
||||
s32 counter;
|
||||
s32 iVar5;
|
||||
u32 uVar6;
|
||||
u8 temp;
|
||||
|
||||
sub_8008C54(gAdventureLog->unk34);
|
||||
sub_80073B8(gAdventureLog->unk34);
|
||||
iVar5 = gAdventureLog->currPage * 8;
|
||||
iVar5 += 10;
|
||||
// Draw Header
|
||||
xxx_call_draw_string(iVar5, 0, &gAdventureLogHeaderText, gAdventureLog->unk34, 0);
|
||||
iVar5 += 4;
|
||||
iVar5 += gAdventureLog->unk9E * 8;
|
||||
// Draw Page #
|
||||
sub_8012BC4(iVar5, 0, gAdventureLog->currPage + 1, 1, 7, gAdventureLog->unk34);
|
||||
counter = 0;
|
||||
do {
|
||||
uVar6 = gAdventureLog->currPage * gAdventureLog->unk1C + counter;
|
||||
temp = uVar6; // Having another var in middle gets close (does a u8 cast)
|
||||
if(sub_8097710(temp) != 0){
|
||||
switch(temp) {
|
||||
case 0xc:
|
||||
gUnknown_202DE30 = sub_80978B8();
|
||||
break;
|
||||
case 7:
|
||||
gUnknown_202DE30 = sub_8097880();
|
||||
break;
|
||||
case 0xb:
|
||||
gUnknown_202DE30 = sub_8097838();
|
||||
break;
|
||||
case 8:
|
||||
gUnknown_202DE30 = sub_80977B8();
|
||||
break;
|
||||
case 9:
|
||||
gUnknown_202DE30 = sub_80977F8();
|
||||
break;
|
||||
case 10:
|
||||
gUnknown_202DE30 = sub_8097870();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sub_8014FF0(8, sub_8013800(gAdventureLog, counter), GetAdventureLogLine(uVar6), gAdventureLog->unk34, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Draw the ?????????? across the row
|
||||
xxx_call_draw_string(8, sub_8013800(gAdventureLog, counter), &gUnknown_80E2030, gAdventureLog->unk34, 0);
|
||||
}
|
||||
counter++;
|
||||
} while(counter < gAdventureLog->unk1A);
|
||||
sub_80073E0(gAdventureLog->unk34);
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void DisplayAdventureLog(void)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tsub sp, 0x8\n"
|
||||
"\tldr r5, _08032158\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r0, [r0, 0x34]\n"
|
||||
"\tbl sub_8008C54\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r0, [r0, 0x34]\n"
|
||||
"\tbl sub_80073B8\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r1, 0x1E\n"
|
||||
"\tldrsh r4, [r0, r1]\n"
|
||||
"\tlsls r4, 3\n"
|
||||
"\tadds r6, r4, 0\n"
|
||||
"\tadds r6, 0xA\n"
|
||||
"\tldr r2, _0803215C\n"
|
||||
"\tldr r3, [r0, 0x34]\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tbl xxx_call_draw_string\n"
|
||||
"\tadds r4, 0x4\n"
|
||||
"\tldr r1, [r5]\n"
|
||||
"\tadds r0, r1, 0\n"
|
||||
"\tadds r0, 0x9E\n"
|
||||
"\tldrb r0, [r0]\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tadds r6, r4, r0\n"
|
||||
"\tmovs r0, 0x1E\n"
|
||||
"\tldrsh r2, [r1, r0]\n"
|
||||
"\tadds r2, 0x1\n"
|
||||
"\tmovs r0, 0x7\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tldr r0, [r1, 0x34]\n"
|
||||
"\tstr r0, [sp, 0x4]\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tmovs r3, 0x1\n"
|
||||
"\tbl sub_8012BC4\n"
|
||||
"\tmovs r7, 0\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tb _0803223A\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032158: .4byte gAdventureLog\n"
|
||||
"_0803215C: .4byte gAdventureLogHeaderText\n"
|
||||
"_08032160:\n"
|
||||
"\tldr r5, _08032194\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r2, 0x1E\n"
|
||||
"\tldrsh r1, [r0, r2]\n"
|
||||
"\tmovs r2, 0x1C\n"
|
||||
"\tldrsh r0, [r0, r2]\n"
|
||||
"\tmuls r0, r1\n"
|
||||
"\tadds r0, r7\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r6, r0, 24\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tbl sub_8097710\n"
|
||||
"\tlsls r0, 24\n"
|
||||
"\tlsrs r4, r0, 24\n"
|
||||
"\tcmp r4, 0\n"
|
||||
"\tbeq _0803221C\n"
|
||||
"\tsubs r0, r6, 0x7\n"
|
||||
"\tcmp r0, 0x5\n"
|
||||
"\tbhi _080321EC\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tldr r1, _08032198\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tmov pc, r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032194: .4byte gAdventureLog\n"
|
||||
"_08032198: .4byte _0803219C\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0803219C:\n"
|
||||
"\t.4byte _080321BA\n"
|
||||
"\t.4byte _080321C6\n"
|
||||
"\t.4byte _080321D4\n"
|
||||
"\t.4byte _080321E0\n"
|
||||
"\t.4byte _080321C0\n"
|
||||
"\t.4byte _080321B4\n"
|
||||
"_080321B4:\n"
|
||||
"\tbl sub_80978B8\n"
|
||||
"\tb _080321E4\n"
|
||||
"_080321BA:\n"
|
||||
"\tbl sub_8097880\n"
|
||||
"\tb _080321E4\n"
|
||||
"_080321C0:\n"
|
||||
"\tbl sub_8097838\n"
|
||||
"\tb _080321E4\n"
|
||||
"_080321C6:\n"
|
||||
"\tbl sub_80977B8\n"
|
||||
"\tldr r1, _080321D0\n"
|
||||
"\tb _080321EA\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080321D0: .4byte gUnknown_202DE30\n"
|
||||
"_080321D4:\n"
|
||||
"\tbl sub_80977F8\n"
|
||||
"\tldr r1, _080321DC\n"
|
||||
"\tb _080321EA\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080321DC: .4byte gUnknown_202DE30\n"
|
||||
"_080321E0:\n"
|
||||
"\tbl sub_8097870\n"
|
||||
"_080321E4:\n"
|
||||
"\tldr r1, _08032214\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tasrs r0, 16\n"
|
||||
"_080321EA:\n"
|
||||
"\tstr r0, [r1]\n"
|
||||
"_080321EC:\n"
|
||||
"\tldr r4, _08032218\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tadds r1, r7, 0\n"
|
||||
"\tbl sub_8013800\n"
|
||||
"\tadds r5, r0, 0\n"
|
||||
"\tadds r0, r6, 0\n"
|
||||
"\tbl GetAdventureLogLine\n"
|
||||
"\tadds r2, r0, 0\n"
|
||||
"\tldr r0, [r4]\n"
|
||||
"\tldr r3, [r0, 0x34]\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tstr r0, [sp]\n"
|
||||
"\tmovs r0, 0x8\n"
|
||||
"\tadds r1, r5, 0\n"
|
||||
"\tbl sub_8014FF0\n"
|
||||
"\tb _08032234\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032214: .4byte gUnknown_202DE30\n"
|
||||
"_08032218: .4byte gAdventureLog\n"
|
||||
"_0803221C:\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r1, r7, 0\n"
|
||||
"\tbl sub_8013800\n"
|
||||
"\tadds r1, r0, 0\n"
|
||||
"\tldr r2, _08032254\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r3, [r0, 0x34]\n"
|
||||
"\tstr r4, [sp]\n"
|
||||
"\tmovs r0, 0x8\n"
|
||||
"\tbl xxx_call_draw_string\n"
|
||||
"_08032234:\n"
|
||||
"\tadds r7, 0x1\n"
|
||||
"\tldr r0, _08032258\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"_0803223A:\n"
|
||||
"\tmovs r1, 0x1A\n"
|
||||
"\tldrsh r0, [r0, r1]\n"
|
||||
"\tcmp r7, r0\n"
|
||||
"\tblt _08032160\n"
|
||||
"\tldr r0, _08032258\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tldr r0, [r0, 0x34]\n"
|
||||
"\tbl sub_80073E0\n"
|
||||
"\tadd sp, 0x8\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_08032254: .4byte gUnknown_80E2030\n"
|
||||
"_08032258: .4byte gAdventureLog");
|
||||
}
|
||||
#endif
|
||||
40
src/adventure_log_menu.c
Normal file
40
src/adventure_log_menu.c
Normal file
@@ -0,0 +1,40 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
#include "adventure_log.h"
|
||||
|
||||
extern void sub_800641C(u8 *, u32, u32);
|
||||
extern void CreateAdventureLogScreen(u32);
|
||||
extern u32 HandleAdventureLogInput(u32);
|
||||
extern void CleanAdventureLogScreen();
|
||||
|
||||
void CreateAdventureLogMenu(void)
|
||||
{
|
||||
CreateAdventureLogScreen(0);
|
||||
}
|
||||
|
||||
void CleanAdventureLogMenu(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0, 1, 1);
|
||||
}
|
||||
|
||||
u32 UpdateAdventureLogMenu(void)
|
||||
{
|
||||
u32 nextMenu;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
|
||||
switch(HandleAdventureLogInput(1))
|
||||
{
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
CleanAdventureLogScreen();
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return nextMenu;
|
||||
}
|
||||
18
src/data/formatted_type_names.h
Normal file
18
src/data/formatted_type_names.h
Normal file
@@ -0,0 +1,18 @@
|
||||
ALIGNED(4) const char gFormattedSteelText[] = "#c6Steel#r";
|
||||
ALIGNED(4) const char gFormattedDarkText[] = "#c6Dark#r";
|
||||
ALIGNED(4) const char gFormattedDragonText[] = "#c6Dragon#r";
|
||||
ALIGNED(4) const char gFormattedGhostText[] = "#c6Ghost#r";
|
||||
ALIGNED(4) const char gFormattedRockText[] = "#c6Rock#r";
|
||||
ALIGNED(4) const char gFormattedBugText[] = "#c6Bug#r";
|
||||
ALIGNED(4) const char gFormattedPsychicText[] = "#c6Psychic#r";
|
||||
ALIGNED(4) const char gFormattedFlyingText[] = "#c6Flying#r";
|
||||
ALIGNED(4) const char gFormattedGroundText[] = "#c6Ground#r";
|
||||
ALIGNED(4) const char gFormattedPoisonText[] = "#c6Poison#r";
|
||||
ALIGNED(4) const char gFormattedFightingText[] = "#c6Fighting#r";
|
||||
ALIGNED(4) const char gFormattedIceText[] = "#c6Ice#r ";
|
||||
ALIGNED(4) const char gFormattedElectricText[] = "#c6Electric#r";
|
||||
ALIGNED(4) const char gFormattedGrassText[] = "#c6Grass#r";
|
||||
ALIGNED(4) const char gFormattedWaterText[] = "#c6Water#r";
|
||||
ALIGNED(4) const char gFormattedFireText[] = "#c6Fire#r ";
|
||||
ALIGNED(4) const char gFormattedNormalText[] = "#c6Normal#r";
|
||||
ALIGNED(4) const char gFormattedNoneText[] = "#c6None#r";
|
||||
439
src/debug_menu_mid.c
Normal file
439
src/debug_menu_mid.c
Normal file
@@ -0,0 +1,439 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
|
||||
struct unkData
|
||||
{
|
||||
u8 unk0[14];
|
||||
u16 unkD;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u8 *unk14;
|
||||
};
|
||||
|
||||
struct unkStruct_203B3F0
|
||||
{
|
||||
// size: 0x138
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
u8 fill5[0x8 - 5];
|
||||
u32 unk8;
|
||||
u32 *unkC;
|
||||
u32 unk10;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u32 unk1C;
|
||||
u32 unk20;
|
||||
u8 fill24[0x4C - 0x24];
|
||||
u32 unk4C;
|
||||
u8 fill50[0x9C - 0x50];
|
||||
u32 unk9C;
|
||||
u32 unkA0;
|
||||
u32 unkA4;
|
||||
u32 unkA8;
|
||||
u32 unkAC;
|
||||
u32 unkB0;
|
||||
struct unkData *unkB4;
|
||||
u32 unkB8;
|
||||
u32 unkBC;
|
||||
u8 fill4[0xD8 - 0xC0];
|
||||
struct unkData unkD8[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B3F0 *gUnknown_203B3F0;
|
||||
|
||||
struct unkStruct_203B3F4
|
||||
{
|
||||
// size: 0xFC
|
||||
u32 unk0;
|
||||
u8 unk4;
|
||||
u8 fill5[0x8 - 5];
|
||||
u32 unk8;
|
||||
u32 *unkC;
|
||||
u32 unk10;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u32 unk1C;
|
||||
u32 unk20;
|
||||
u8 fill24[0x4C - 0x24];
|
||||
u32 unk4C;
|
||||
u8 fill50[0x9C - 0x50];
|
||||
struct unkData unk9C[4];
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B3F4 *gUnknown_203B3F4;
|
||||
|
||||
|
||||
struct unkStruct_203B460
|
||||
{
|
||||
u8 unk0[0x50];
|
||||
u16 unk50[10];
|
||||
};
|
||||
extern struct unkStruct_203B460 *gUnknown_203B460; // TODO unify this
|
||||
extern void sub_801B3C0(u8 *);
|
||||
extern void sub_8090A8C(u8 *, u8, u32);
|
||||
extern void sub_8013AA0(u32 *);
|
||||
|
||||
extern struct unkData gUnknown_80E7E4C;
|
||||
extern struct unkData gUnknown_80E7E34;
|
||||
extern struct unkData gUnknown_80E7E64;
|
||||
extern struct unkData gUnknown_80E7EA4;
|
||||
extern struct unkData gUnknown_80E7E8C;
|
||||
|
||||
extern u32 gDebug_NumberText;
|
||||
extern u32 gDebug_NumberText;
|
||||
extern u32 gUnknown_80D4970;
|
||||
|
||||
|
||||
extern void *MemoryAlloc(u32, u32);
|
||||
extern void MemoryFree(void *);
|
||||
extern void sub_800641C(void *, u32, u32);
|
||||
extern void sub_8006518(void *);
|
||||
extern void sub_801C8C4(u32, u32, u32, u32);
|
||||
extern void sub_801CB5C(u32);
|
||||
extern void sub_801CCD8();
|
||||
extern void sub_8012D60(u32 *, u32 **, u32, u32, u32, u32);
|
||||
extern void sub_8008C54(u32);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void sub_8012EA4(u32 *, u32);
|
||||
extern void sub_80073E0(u32);
|
||||
extern void sub_8013C68(u32 *);
|
||||
extern void xxx_call_draw_string(s32, u32, u32 *, u32, u32);
|
||||
extern u8 sub_8091524(u8);
|
||||
extern u32 sub_801CA08(u32);
|
||||
extern u8 sub_801CB24();
|
||||
extern void sub_801CBB8();
|
||||
extern u8 sub_8012FD8(u32 *);
|
||||
extern void sub_8013114(u32 *, s32 *);
|
||||
extern u32 sub_8013BBC(u32 *);
|
||||
extern u32 sub_801B410();
|
||||
extern void sub_801B450();
|
||||
extern void sub_80211AC(u32, u32);
|
||||
extern void sub_8021354(u32);
|
||||
extern void sub_8021494();
|
||||
extern void sub_803AA34();
|
||||
extern void sub_8021774(u8,u32, u32);
|
||||
|
||||
|
||||
extern void sub_803AAC4();
|
||||
extern void sub_803AB34();
|
||||
extern void sub_803ABAC();
|
||||
|
||||
void sub_803A924(u32);
|
||||
void sub_803A93C();
|
||||
void sub_803A9AC();
|
||||
|
||||
void sub_803A504(u32);
|
||||
void sub_803A51C();
|
||||
void sub_803A5A0();
|
||||
void sub_803A690();
|
||||
void sub_803A6F0();
|
||||
void sub_803A740();
|
||||
void sub_803A7B0();
|
||||
void sub_803A810();
|
||||
void sub_803A86C();
|
||||
|
||||
|
||||
u32 sub_803A45C(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
gUnknown_203B3F0 = MemoryAlloc(sizeof(struct unkStruct_203B3F0), 8);
|
||||
sub_803A504(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_803A48C(void)
|
||||
{
|
||||
switch(gUnknown_203B3F0->unk0) {
|
||||
case 0:
|
||||
case 1:
|
||||
sub_803A740();
|
||||
break;
|
||||
case 2:
|
||||
sub_803A7B0();
|
||||
break;
|
||||
case 3:
|
||||
sub_803A810();
|
||||
break;
|
||||
case 4:
|
||||
sub_803A86C();
|
||||
break;
|
||||
case 5:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_803A4E8(void)
|
||||
{
|
||||
if(gUnknown_203B3F0 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B3F0);
|
||||
gUnknown_203B3F0 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803A504(u32 newState)
|
||||
{
|
||||
gUnknown_203B3F0->unk0 = newState;
|
||||
sub_803A51C();
|
||||
sub_803A5A0();
|
||||
}
|
||||
|
||||
void sub_803A51C(void)
|
||||
{
|
||||
s32 iVar4;
|
||||
|
||||
sub_8006518(gUnknown_203B3F0->unkD8);
|
||||
switch(gUnknown_203B3F0->unk0)
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B3F0->unkD8[1] = gUnknown_80E7E64;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_203B3F0->unkD8[2] = gUnknown_80E7E4C;
|
||||
break;
|
||||
default:
|
||||
for(iVar4 = 0; iVar4 < 4; iVar4++)
|
||||
{
|
||||
gUnknown_203B3F0->unkD8[iVar4] = gUnknown_80E7E34;
|
||||
}
|
||||
break;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3F0->unkD8, 1, 1);
|
||||
}
|
||||
|
||||
void sub_803A5A0(void)
|
||||
{
|
||||
u8 auStack8 [4];
|
||||
|
||||
switch(gUnknown_203B3F0->unk0) {
|
||||
case 0:
|
||||
sub_801C8C4(2,3,0,10);
|
||||
break;
|
||||
case 1:
|
||||
sub_801CB5C(1);
|
||||
break;
|
||||
case 2:
|
||||
sub_801CCD8();
|
||||
sub_803A6F0();
|
||||
sub_8012D60(&gUnknown_203B3F0->unk4C, &gUnknown_203B3F0->unkC, 0, 0, gUnknown_203B3F0->unk8, 2);
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B3F0->unkAC = 3;
|
||||
gUnknown_203B3F0->unkA4 = 0;
|
||||
gUnknown_203B3F0->unkA8 = 0x3e7;
|
||||
gUnknown_203B3F0->unkA0 = gUnknown_203B460->unk50[gUnknown_203B3F0->unk4];
|
||||
gUnknown_203B3F0->unkB0 = 1;
|
||||
gUnknown_203B3F0->unkB4 = &gUnknown_203B3F0->unkD8[1];
|
||||
gUnknown_203B3F0->unkB8 = 0x2C;
|
||||
gUnknown_203B3F0->unkBC = 0x12;
|
||||
sub_8013AA0(&gUnknown_203B3F0->unk9C);
|
||||
sub_803A690();
|
||||
break;
|
||||
case 4:
|
||||
sub_8090A8C(auStack8,gUnknown_203B3F0->unk4,0);
|
||||
sub_801B3C0(auStack8);
|
||||
break;
|
||||
case 5:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803A690(void)
|
||||
{
|
||||
sub_8008C54(gUnknown_203B3F0->unkB0);
|
||||
sub_80073B8(gUnknown_203B3F0->unkB0);
|
||||
xxx_call_draw_string(4, 0, &gDebug_NumberText, gUnknown_203B3F0->unkB0, 0);
|
||||
sub_8013C68(&gUnknown_203B3F0->unk9C);
|
||||
sub_80073E0(gUnknown_203B3F0->unkB0);
|
||||
sub_801CCD8();
|
||||
sub_8012EA4(&gUnknown_203B3F0->unk4C,0);
|
||||
}
|
||||
|
||||
void sub_803A6F0(void)
|
||||
{
|
||||
s32 temp1;
|
||||
struct unkStruct_203B3F0 *preload;
|
||||
|
||||
gUnknown_203B3F0->unkC = &gDebug_NumberText;
|
||||
gUnknown_203B3F0->unk10 = 2;
|
||||
gUnknown_203B3F0->unk8 = 2;
|
||||
if (sub_8091524(gUnknown_203B3F0->unk4) == 0) {
|
||||
gUnknown_203B3F0->unk10 = -1;
|
||||
gUnknown_203B3F0->unk8 = 3;
|
||||
}
|
||||
preload = gUnknown_203B3F0;
|
||||
// this var gets loaded in between the sets... very dumb
|
||||
temp1 = 1;
|
||||
preload->unk14 = gUnknown_80D4970;
|
||||
preload->unk18 = 3;
|
||||
preload->unk1C = 0;
|
||||
preload->unk20 = temp1;
|
||||
}
|
||||
|
||||
void sub_803A740(void)
|
||||
{
|
||||
switch(sub_801CA08(1)) {
|
||||
case 0:
|
||||
case 1:
|
||||
break;
|
||||
case 3:
|
||||
gUnknown_203B3F0->unk4 = sub_801CB24();
|
||||
sub_803A504(2);
|
||||
break;
|
||||
case 4:
|
||||
gUnknown_203B3F0->unk4 = sub_801CB24();
|
||||
sub_803A504(4);
|
||||
break;
|
||||
case 2:
|
||||
sub_801CBB8();
|
||||
sub_803A504(5);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803A7B0(void)
|
||||
{
|
||||
s32 local_c;
|
||||
|
||||
local_c = 0;
|
||||
sub_801CA08(0);
|
||||
if (sub_8012FD8(&gUnknown_203B3F0->unk4C) == '\0') {
|
||||
sub_8013114(&gUnknown_203B3F0->unk4C,&local_c);
|
||||
}
|
||||
switch(local_c)
|
||||
{
|
||||
case 2:
|
||||
sub_803A504(3);
|
||||
break;
|
||||
case 3:
|
||||
sub_803A504(4);
|
||||
break;
|
||||
case 1:
|
||||
sub_803A504(1);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803A810(void)
|
||||
{
|
||||
sub_801CA08(0);
|
||||
sub_8012FD8(&gUnknown_203B3F0->unk4C);
|
||||
switch(sub_8013BBC(&gUnknown_203B3F0->unk9C))
|
||||
{
|
||||
case 3:
|
||||
gUnknown_203B460->unk50[gUnknown_203B3F0->unk4] = gUnknown_203B3F0->unk9C;
|
||||
// Fallthrough needed to match
|
||||
case 2:
|
||||
sub_803A504(1);
|
||||
break;
|
||||
case 1:
|
||||
sub_803A690();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803A86C(void)
|
||||
{
|
||||
switch(sub_801B410())
|
||||
{
|
||||
case 1:
|
||||
case 0:
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
sub_801B450();
|
||||
sub_803A504(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////
|
||||
|
||||
u32 sub_803A888(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0, 1, 1);
|
||||
gUnknown_203B3F4 = MemoryAlloc(0xFC, 8);
|
||||
sub_803A924(0);
|
||||
return 1;
|
||||
}
|
||||
|
||||
u32 sub_803A8B8(void)
|
||||
{
|
||||
switch(gUnknown_203B3F4->unk0) {
|
||||
case 0:
|
||||
case 1:
|
||||
sub_803AAC4();
|
||||
break;
|
||||
case 2:
|
||||
sub_803AB34();
|
||||
break;
|
||||
case 3:
|
||||
sub_803ABAC();
|
||||
break;
|
||||
case 4:
|
||||
return 3;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
void sub_803A908(void)
|
||||
{
|
||||
if(gUnknown_203B3F4 != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B3F4);
|
||||
gUnknown_203B3F4 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803A924(u32 newState)
|
||||
{
|
||||
gUnknown_203B3F4->unk0 = newState;
|
||||
sub_803A93C();
|
||||
sub_803A9AC();
|
||||
}
|
||||
|
||||
void sub_803A93C(void)
|
||||
{
|
||||
s32 iVar4;
|
||||
sub_8006518(gUnknown_203B3F4->unk9C);
|
||||
if(gUnknown_203B3F4->unk0 == 2)
|
||||
{
|
||||
gUnknown_203B3F4->unk9C[2] = gUnknown_80E7EA4;
|
||||
}
|
||||
else
|
||||
{
|
||||
for(iVar4 = 0; iVar4 < 4; iVar4++)
|
||||
{
|
||||
gUnknown_203B3F4->unk9C[iVar4] = gUnknown_80E7E8C;
|
||||
}
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B3F4->unk9C, 1, 1);
|
||||
}
|
||||
|
||||
void sub_803A9AC(void)
|
||||
{
|
||||
switch(gUnknown_203B3F4->unk0) {
|
||||
case 0:
|
||||
sub_80211AC(0,3);
|
||||
break;
|
||||
case 1:
|
||||
sub_8021354(1);
|
||||
break;
|
||||
case 2:
|
||||
sub_8021494();
|
||||
sub_803AA34();
|
||||
sub_8012D60(&gUnknown_203B3F4->unk4C,&gUnknown_203B3F4->unkC,0,0,gUnknown_203B3F4->unk8,2);
|
||||
break;
|
||||
case 3:
|
||||
sub_8021774(gUnknown_203B3F4->unk4,1,0);
|
||||
break;
|
||||
case 4:
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "global.h"
|
||||
#include "debug_menu.h"
|
||||
#include "main_menu.h"
|
||||
#include "adventure_log.h"
|
||||
|
||||
// NOTE: 0x13 and 0x14
|
||||
// Communication Screen?
|
||||
@@ -31,7 +32,6 @@ extern void sub_803A1E4(void);
|
||||
extern void CreateFriendRescueMenu(void);
|
||||
extern void sub_803A1D8(void);
|
||||
extern void CreateWonderMailMenu(void);
|
||||
extern void CreateAdventureLogMenu(void);
|
||||
extern void CreateLoadScreen(u32);
|
||||
extern s32 sub_8035DB4(u32);
|
||||
extern void CreateRescuePasswordMenu(u32);
|
||||
@@ -44,7 +44,6 @@ extern s32 UpdateWonderMailMenu(void);
|
||||
extern s32 sub_803A1DC(void);
|
||||
extern s32 sub_803A1E8(void);
|
||||
extern s32 UpdateRescuePasswordMenu(void);
|
||||
extern s32 UpdateAdventureLogMenu(void);
|
||||
extern s32 sub_80383D4(void);
|
||||
extern s32 sub_8038630(void);
|
||||
|
||||
@@ -57,7 +56,6 @@ extern void CleanWonderMailMenu(void);
|
||||
extern void nullsub_55(void);
|
||||
extern void sub_803A1EC(void);
|
||||
extern void CleanRescuePasswordMenu(void);
|
||||
extern void CleanAdventureLogMenu(void);
|
||||
extern void sub_80383A8(void);
|
||||
extern void sub_8038604(void);
|
||||
|
||||
|
||||
@@ -59,9 +59,9 @@ s16 sub_8035D3C(void)
|
||||
return gMainMenu->unk38;
|
||||
}
|
||||
|
||||
s32 *sub_8035D4C(void)
|
||||
struct MainMenu *GetMainMenu(void)
|
||||
{
|
||||
return &gMainMenu->currMenu;
|
||||
return gMainMenu;
|
||||
}
|
||||
|
||||
void sub_8035D58(void)
|
||||
|
||||
413
src/other_menus.c
Normal file
413
src/other_menus.c
Normal file
@@ -0,0 +1,413 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
|
||||
struct unkData
|
||||
{
|
||||
u8 unk0[14];
|
||||
u16 unkD;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u8 *unk14;
|
||||
};
|
||||
|
||||
|
||||
struct unkStruct_203B35C
|
||||
{
|
||||
// size: 0x504
|
||||
u32 unk0;
|
||||
u32 unk4; // link status?
|
||||
u32 unk8; // state var?
|
||||
u8 fillC[0x1C - 0xC];
|
||||
u32 unk1C;
|
||||
u8 fill20[0x15C - 0x20];
|
||||
struct unkData unk15C[4];
|
||||
u8 unk1BC[4];
|
||||
u32 unk1C0[9];
|
||||
};
|
||||
extern struct unkStruct_203B35C *gUnknown_203B35C;
|
||||
|
||||
extern struct unkData gUnknown_80E653C;
|
||||
|
||||
extern u32 gUnknown_80E66BC;
|
||||
extern u32 gUnknown_80E66D4;
|
||||
extern u32 gUnknown_80E6748;
|
||||
extern u32 gUnknown_80E6760;
|
||||
extern u32 gUnknown_80E67D4;
|
||||
extern u32 gUnknown_80E67EC;
|
||||
extern u32 gUnknown_80E689C;
|
||||
extern u32 gUnknown_80E68B4;
|
||||
extern u32 gUnknown_80E6938;
|
||||
extern u32 gUnknown_80E6950;
|
||||
extern u32 gUnknown_80E69B0;
|
||||
extern u32 gUnknown_80E69C8;
|
||||
extern u32 gUnknown_80E6A10;
|
||||
extern u32 gUnknown_80E6A28;
|
||||
extern u32 gUnknown_80E6A74;
|
||||
extern u32 gUnknown_80E6A8C;
|
||||
extern u32 gUnknown_80E6B78;
|
||||
extern u32 gUnknown_80E6B90;
|
||||
extern u32 gUnknown_80E6BF4;
|
||||
extern u32 gUnknown_80E6C0C;
|
||||
extern u32 gUnknown_80E6C50;
|
||||
extern u32 gUnknown_80E6C68;
|
||||
extern u32 gUnknown_80E6CD0;
|
||||
extern u32 gUnknown_80E6CE8;
|
||||
extern u32 gUnknown_80E6DDC;
|
||||
extern u32 gUnknown_80E6DF4;
|
||||
extern u32 gUnknown_80E6D54;
|
||||
extern u32 gUnknown_80E6D6C;
|
||||
|
||||
struct unkStruct_8035D94
|
||||
{
|
||||
u8 unk0;
|
||||
u8 fill[0x3];
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
extern struct unkStruct_8035D94 *sub_8035D94();
|
||||
|
||||
struct unkStruct_203B460
|
||||
{
|
||||
u8 unk0[0x50];
|
||||
u16 unk50[10];
|
||||
};
|
||||
extern struct unkStruct_203B460 *gUnknown_203B460; // TODO unify this
|
||||
|
||||
extern void sub_8037400(void);
|
||||
extern void sub_800641C(void *, u32, u32);
|
||||
extern void ResetSprites(u32);
|
||||
extern void *MemoryAlloc(u32, u32);
|
||||
extern void MemoryFill8(u8 *, u8, s32);
|
||||
extern void MemoryFree(void *);
|
||||
extern void sub_8035CF4(u32 *,u32, u32);
|
||||
extern void sub_80376CC();
|
||||
extern void sub_8035CC0(void *, u32);
|
||||
|
||||
extern u8 sub_80130A8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern u32 sub_8037C10(u32);
|
||||
extern void sub_8037748(void);
|
||||
extern void sub_80371B8(void);
|
||||
extern void sub_8037900(void);
|
||||
extern void PlayMenuSoundEffect(u32);
|
||||
extern u32 sub_8037798(void);
|
||||
extern void SetMenuItems(void *, void *, u32, u32 *, u32 *, u32, u32, u32);
|
||||
extern void sub_8005838(u32, u32);
|
||||
extern void sub_80060EC();
|
||||
extern void sub_800CB20();
|
||||
extern void TransferBGPaletteBuffer();
|
||||
extern void xxx_call_update_bg_vram();
|
||||
extern void sub_8009908();
|
||||
extern void xxx_call_update_bg_sound_input();
|
||||
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8036FDC(s32 param_1)
|
||||
{
|
||||
int iVar3;
|
||||
int iVar4;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
ResetSprites(0);
|
||||
if (gUnknown_203B35C == NULL) {
|
||||
gUnknown_203B35C = MemoryAlloc(0x504,8);
|
||||
MemoryFill8((u8 *)gUnknown_203B35C,0,0x504);
|
||||
}
|
||||
|
||||
gUnknown_203B35C->unk0 = param_1;
|
||||
gUnknown_203B35C->unk4 = 0;
|
||||
gUnknown_203B35C->unk8 = 0;
|
||||
iVar3 = 0;
|
||||
do {
|
||||
gUnknown_203B35C->unk1C0[iVar3 * 2] = 0;
|
||||
// Add statements of index flip but ends in same result
|
||||
gUnknown_203B35C->unk1BC[iVar3 * 8] = 0;
|
||||
iVar3 = iVar3 + 1;
|
||||
} while (iVar3 < 2);
|
||||
for(iVar4 = 0; iVar4 < 4; iVar4++){
|
||||
gUnknown_203B35C->unk15C[iVar4] = gUnknown_80E653C;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B35C->unk15C,1,1);
|
||||
SetMenuItems(&gUnknown_203B35C->unk1C,gUnknown_203B35C->unk15C,0,&gUnknown_80E6CD0,&gUnknown_80E6CE8,0,
|
||||
6,0);
|
||||
sub_8035CF4(&gUnknown_203B35C->unk1C,0,1);
|
||||
sub_80376CC();
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void sub_8036FDC(s32 param_1)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tmov r7, r8\n"
|
||||
"\tpush {r7}\n"
|
||||
"\tsub sp, 0x10\n"
|
||||
"\tadds r6, r0, 0\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tbl ResetSprites\n"
|
||||
"\tldr r5, _080370C0\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tcmp r0, 0\n"
|
||||
"\tbne _08037016\n"
|
||||
"\tldr r4, _080370C4\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tmovs r1, 0x8\n"
|
||||
"\tbl MemoryAlloc\n"
|
||||
"\tstr r0, [r5]\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tadds r2, r4, 0\n"
|
||||
"\tbl MemoryFill8\n"
|
||||
"_08037016:\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tstr r6, [r0]\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tstr r1, [r0, 0x4]\n"
|
||||
"\tstr r1, [r0, 0x8]\n"
|
||||
"\tmovs r3, 0\n"
|
||||
"\tadds r7, r5, 0\n"
|
||||
"\tmovs r6, 0xE0\n"
|
||||
"\tlsls r6, 1\n"
|
||||
"\tmovs r4, 0\n"
|
||||
"\tmovs r5, 0xDE\n"
|
||||
"\tlsls r5, 1\n"
|
||||
"_0803702E:\n"
|
||||
"\tldr r0, [r7]\n"
|
||||
"\tlsls r2, r3, 3\n"
|
||||
"\tadds r1, r0, r6\n"
|
||||
"\tadds r1, r2\n"
|
||||
"\tstr r4, [r1]\n"
|
||||
"\tadds r0, r2\n"
|
||||
"\tadds r0, r5\n"
|
||||
"\tstrb r4, [r0]\n"
|
||||
"\tadds r3, 0x1\n"
|
||||
"\tcmp r3, 0x1\n"
|
||||
"\tble _0803702E\n"
|
||||
"\tldr r0, _080370C0\n"
|
||||
"\tmov r12, r0\n"
|
||||
"\tmovs r5, 0xAE\n"
|
||||
"\tlsls r5, 1\n"
|
||||
"\tmov r8, r5\n"
|
||||
"\tldr r4, _080370C8\n"
|
||||
"\tmovs r3, 0\n"
|
||||
"\tmovs r2, 0x3\n"
|
||||
"_08037054:\n"
|
||||
"\tmov r6, r12\n"
|
||||
"\tldr r1, [r6]\n"
|
||||
"\tadds r1, r3\n"
|
||||
"\tadd r1, r8\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tldm r0!, {r5-r7}\n"
|
||||
"\tstm r1!, {r5-r7}\n"
|
||||
"\tldm r0!, {r5-r7}\n"
|
||||
"\tstm r1!, {r5-r7}\n"
|
||||
"\tadds r3, 0x18\n"
|
||||
"\tsubs r2, 0x1\n"
|
||||
"\tcmp r2, 0\n"
|
||||
"\tbge _08037054\n"
|
||||
"\tmovs r6, 0\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r5, _080370C0\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r4, 0xAE\n"
|
||||
"\tlsls r4, 1\n"
|
||||
"\tadds r0, r4\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tldr r1, [r5]\n"
|
||||
"\tadds r0, r1, 0\n"
|
||||
"\tadds r0, 0x1C\n"
|
||||
"\tadds r1, r4\n"
|
||||
"\tldr r3, _080370CC\n"
|
||||
"\tldr r2, _080370D0\n"
|
||||
"\tstr r2, [sp]\n"
|
||||
"\tstr r6, [sp, 0x4]\n"
|
||||
"\tmovs r2, 0x6\n"
|
||||
"\tstr r2, [sp, 0x8]\n"
|
||||
"\tstr r6, [sp, 0xC]\n"
|
||||
"\tmovs r2, 0\n"
|
||||
"\tbl SetMenuItems\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r0, 0x1C\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_8035CF4\n"
|
||||
"\tbl sub_80376CC\n"
|
||||
"\tadd sp, 0x10\n"
|
||||
"\tpop {r3}\n"
|
||||
"\tmov r8, r3\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_080370C0: .4byte gUnknown_203B35C\n"
|
||||
"_080370C4: .4byte 0x00000504\n"
|
||||
"_080370C8: .4byte gUnknown_80E653C\n"
|
||||
"_080370CC: .4byte gUnknown_80E6CD0\n"
|
||||
"_080370D0: .4byte gUnknown_80E6CE8");
|
||||
}
|
||||
#endif
|
||||
|
||||
void sub_80370D4(void)
|
||||
{
|
||||
if(gUnknown_203B35C != NULL)
|
||||
{
|
||||
MemoryFree(gUnknown_203B35C);
|
||||
gUnknown_203B35C = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
// Unused
|
||||
u32 sub_80370F0(void)
|
||||
{
|
||||
u32 nextMenu;
|
||||
int local_10;
|
||||
|
||||
local_10 = 4;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
switch(gUnknown_203B35C->unk8){
|
||||
case 0:
|
||||
if (sub_80130A8(&gUnknown_203B35C->unk1C) == '\0') {
|
||||
sub_8013114(&gUnknown_203B35C->unk1C,&local_10);
|
||||
}
|
||||
if (local_10 == 4) {
|
||||
sub_8037748();
|
||||
}
|
||||
else {
|
||||
gUnknown_203B35C->unk8 = 1;
|
||||
sub_8037900();
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
sub_80376CC();
|
||||
gUnknown_203B35C->unk8 = 2;
|
||||
sub_80371B8();
|
||||
break;
|
||||
case 2:
|
||||
if (((gUnknown_203B35C->unk0 < 2) && (gUnknown_203B35C->unk4 == 0)) && (sub_8037C10(0) == 0) ) {
|
||||
return 0x29; // TODO: what screen is this?
|
||||
}
|
||||
else {
|
||||
if (sub_80130A8(&gUnknown_203B35C->unk1C) == '\0') {
|
||||
sub_8013114(&gUnknown_203B35C->unk1C,&local_10);
|
||||
}
|
||||
if (local_10 != 4) {
|
||||
PlayMenuSoundEffect(3);
|
||||
nextMenu = sub_8037798();
|
||||
gUnknown_203B35C->unk8 = 4;
|
||||
}
|
||||
sub_8037748();
|
||||
}
|
||||
break;
|
||||
}
|
||||
return nextMenu;
|
||||
}
|
||||
|
||||
void sub_80371B8(void)
|
||||
{
|
||||
struct unkStruct_8035D94 *pbVar2;
|
||||
u32 *ppuVar4;
|
||||
u32 *puVar5;
|
||||
|
||||
puVar5 = NULL;
|
||||
ppuVar4 = NULL;
|
||||
sub_8037400();
|
||||
if ((gUnknown_203B35C->unk0 < 2) &&(gUnknown_203B35C->unk4 == 0)) {
|
||||
if (sub_8037C10(0) != 0) {
|
||||
sub_80376CC();
|
||||
sub_8035CC0(&gUnknown_203B35C->unk15C,0);
|
||||
SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, &gUnknown_80E6C50,
|
||||
&gUnknown_80E6C68, 0, 6, 0);
|
||||
sub_8035CF4(&gUnknown_203B35C->unk1C, 0, 1);
|
||||
}
|
||||
}
|
||||
else {
|
||||
sub_80376CC();
|
||||
sub_8035CC0(&gUnknown_203B35C->unk15C, 0);
|
||||
switch(gUnknown_203B35C->unk4) {
|
||||
case 0:
|
||||
puVar5 = &gUnknown_80E66BC;
|
||||
ppuVar4 = &gUnknown_80E66D4;
|
||||
break;
|
||||
case 3:
|
||||
puVar5 = &gUnknown_80E6D54;
|
||||
ppuVar4 = &gUnknown_80E6D6C;
|
||||
break;
|
||||
case 2:
|
||||
puVar5 = &gUnknown_80E6DDC;
|
||||
ppuVar4 = &gUnknown_80E6DF4;
|
||||
break;
|
||||
case 4:
|
||||
puVar5 = &gUnknown_80E67D4;
|
||||
ppuVar4 = &gUnknown_80E67EC;
|
||||
break;
|
||||
case 1:
|
||||
case 5:
|
||||
puVar5 = &gUnknown_80E6748;
|
||||
ppuVar4 = &gUnknown_80E6760;
|
||||
break;
|
||||
case 6:
|
||||
puVar5 = &gUnknown_80E689C;
|
||||
ppuVar4 = &gUnknown_80E68B4;
|
||||
break;
|
||||
case 7:
|
||||
puVar5 = &gUnknown_80E6938;
|
||||
ppuVar4 = &gUnknown_80E6950;
|
||||
break;
|
||||
case 9:
|
||||
puVar5 = &gUnknown_80E69B0;
|
||||
ppuVar4 = &gUnknown_80E69C8;
|
||||
break;
|
||||
case 0xb:
|
||||
puVar5 = &gUnknown_80E6A10;
|
||||
ppuVar4 = &gUnknown_80E6A28;
|
||||
break;
|
||||
case 0xd:
|
||||
puVar5 = &gUnknown_80E6A74;
|
||||
ppuVar4 = &gUnknown_80E6A8C;
|
||||
break;
|
||||
case 0xe:
|
||||
puVar5 = &gUnknown_80E6B78;
|
||||
ppuVar4 = &gUnknown_80E6B90;
|
||||
break;
|
||||
case 0xf:
|
||||
puVar5 = &gUnknown_80E6BF4;
|
||||
ppuVar4 = &gUnknown_80E6C0C;
|
||||
break;
|
||||
}
|
||||
SetMenuItems(&gUnknown_203B35C->unk1C, gUnknown_203B35C->unk15C, 0, puVar5, ppuVar4, 0, 6, 0);
|
||||
sub_8035CF4(&gUnknown_203B35C->unk1C, 0, 1);
|
||||
// TODO clean this if statement up...
|
||||
if ((((gUnknown_203B35C->unk4 != 0) &&(gUnknown_203B35C->unk0 == 0)) &&
|
||||
(pbVar2 = sub_8035D94(), pbVar2->unk0 != 0)) && (pbVar2->unk4 != 0)) {
|
||||
// We received something..
|
||||
gUnknown_203B460->unk50[pbVar2->unk0] += pbVar2->unk4;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80373C4(void)
|
||||
{
|
||||
sub_8005838(0,0);
|
||||
sub_80060EC();
|
||||
sub_800CB20();
|
||||
LoadBufferedInputs();
|
||||
TransferBGPaletteBuffer();
|
||||
xxx_call_update_bg_vram();
|
||||
sub_8009908();
|
||||
xxx_call_update_bg_sound_input();
|
||||
ResetSprites(0);
|
||||
}
|
||||
|
||||
// Unused
|
||||
struct unkStruct_203B35C *sub_80373F4(void)
|
||||
{
|
||||
return gUnknown_203B35C;
|
||||
}
|
||||
@@ -40,7 +40,7 @@ extern void sub_800836C(u32, u8 *r0, u32);
|
||||
extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray);
|
||||
|
||||
extern void RedrawPartnerSelectionMenu(void);
|
||||
extern void sub_8013818(u32 *r0, s32, u32, u32);
|
||||
extern void sub_8013818(struct UnkInputStruct **r0, s32, u32, u32);
|
||||
|
||||
extern u32 GetKeyPress(struct UnkInputStruct **r0);
|
||||
extern u8 sub_80138B8(struct UnkInputStruct **r0, u32);
|
||||
@@ -142,7 +142,7 @@ struct unkData gUnknown_80F4244 =
|
||||
0xC, 6,
|
||||
5, 5,
|
||||
5,0,
|
||||
0, 0
|
||||
NULL
|
||||
};
|
||||
|
||||
const char filler[] = "pksdir0"; // CHUNSOFT inserted for aligning data
|
||||
@@ -168,7 +168,7 @@ const struct unkData gUnknown_80F4278 =
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00,
|
||||
0x00, 0x00
|
||||
NULL
|
||||
};
|
||||
|
||||
const struct unkData gUnknown_80F4290 =
|
||||
@@ -178,7 +178,7 @@ const struct unkData gUnknown_80F4290 =
|
||||
0x02, 0x02,
|
||||
0x09, 0x0B,
|
||||
0x0D, 0x00,
|
||||
0x00, 0x00
|
||||
NULL
|
||||
};
|
||||
|
||||
const struct unkData gUnknown_80F42A8 =
|
||||
@@ -188,7 +188,7 @@ const struct unkData gUnknown_80F42A8 =
|
||||
0x0E, 0x04,
|
||||
0x05, 0x05,
|
||||
0x05, 0x00,
|
||||
0x00, 0x00
|
||||
NULL
|
||||
};
|
||||
|
||||
|
||||
@@ -586,7 +586,6 @@ void sub_803CB5C(void)
|
||||
|
||||
void sub_803CB7C(void)
|
||||
{
|
||||
|
||||
CopyStringtoBuffer(gUnknown_203B400->PartnerNick, GetMonSpecies(gUnknown_203B400->PartnerID));
|
||||
sub_801602C(3, gUnknown_203B400->PartnerNick);
|
||||
gUnknown_203B400->TestState = 13;
|
||||
@@ -652,7 +651,6 @@ void PersonalityTest_DisplayStarterSprite(void)
|
||||
sub_80073E0(1);
|
||||
}
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void CreatePartnerSelectionMenu(s16 starterID)
|
||||
{
|
||||
s32 starterID_s32;
|
||||
@@ -661,114 +659,26 @@ void CreatePartnerSelectionMenu(s16 starterID)
|
||||
sub_803CEAC(); // creates 203B404
|
||||
gUnknown_203B404->StarterID = starterID_s32;
|
||||
gUnknown_203B404->unk4C = 0;
|
||||
gUnknown_203B404->unk50 = &gUnknown_203B404->unk54;
|
||||
gUnknown_203B404->unk50 = gUnknown_203B404->unk54;
|
||||
|
||||
gUnknown_203B404->unk54[0] = gUnknown_80F4290;
|
||||
gUnknown_203B404->unk54[1] = gUnknown_80F42A8;
|
||||
gUnknown_203B404->unk54[2] = gUnknown_80F4278;
|
||||
gUnknown_203B404->unk54[3] = gUnknown_80F4278;
|
||||
|
||||
// TODO this is the problem area
|
||||
//gUnknown_203B404->unk50[5] = (u32 *) &gUnknown_203B404->sub; // so weird but think they store the substruct
|
||||
gUnknown_203B404->unk50->unk14 = gUnknown_203B404->unkb4;
|
||||
|
||||
gUnknown_203B404->sub.unkb4 = 1;
|
||||
gUnknown_203B404->sub.unkb5 = 0;
|
||||
gUnknown_203B404->sub.unkb6 = 6;
|
||||
gUnknown_203B404->sub.unkb7 = 0;
|
||||
gUnknown_203B404->unkb4[0] = 1;
|
||||
gUnknown_203B404->unkb4[1] = 0;
|
||||
gUnknown_203B404->unkb4[2] = 6;
|
||||
gUnknown_203B404->unkb4[3] = 0;
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B404->unk54, 1, 1);
|
||||
sub_8013818(&gUnknown_203B404->unk18, GetValidPartners(), 0xA, gUnknown_203B404->unk4C);
|
||||
RedrawPartnerSelectionMenu();
|
||||
PersonalityTest_DisplayPartnerSprite();
|
||||
}
|
||||
#else
|
||||
NAKED
|
||||
void CreatePartnerSelectionMenu(s16 starterID)
|
||||
{
|
||||
asm_unified("\tpush {r4-r7,lr}\n"
|
||||
"\tadds r4, r0, 0\n"
|
||||
"\tlsls r4, 16\n"
|
||||
"\tasrs r4, 16\n"
|
||||
"\tbl sub_803CEAC\n"
|
||||
"\tldr r5, _0803CDB0\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tmovs r3, 0\n"
|
||||
"\tmovs r1, 0\n"
|
||||
"\tstrh r4, [r0]\n"
|
||||
"\tstr r1, [r0, 0x4C]\n"
|
||||
"\tadds r1, r0, 0\n"
|
||||
"\tadds r1, 0x54\n"
|
||||
"\tstr r1, [r0, 0x50]\n"
|
||||
"\tldr r0, _0803CDB4\n"
|
||||
"\tldm r0!, {r2,r4,r6}\n"
|
||||
"\tstm r1!, {r2,r4,r6}\n"
|
||||
"\tldm r0!, {r2,r4,r7}\n"
|
||||
"\tstm r1!, {r2,r4,r7}\n"
|
||||
"\tldr r1, [r5]\n"
|
||||
"\tadds r1, 0x6C\n"
|
||||
"\tldr r0, _0803CDB8\n"
|
||||
"\tldm r0!, {r2,r6,r7}\n"
|
||||
"\tstm r1!, {r2,r6,r7}\n"
|
||||
"\tldm r0!, {r4,r6,r7}\n"
|
||||
"\tstm r1!, {r4,r6,r7}\n"
|
||||
"\tldr r1, [r5]\n"
|
||||
"\tldr r2, _0803CDBC\n"
|
||||
"\tadds r1, 0x84\n"
|
||||
"\tadds r0, r2, 0\n"
|
||||
"\tldm r0!, {r4,r6,r7}\n"
|
||||
"\tstm r1!, {r4,r6,r7}\n"
|
||||
"\tldm r0!, {r4,r6,r7}\n"
|
||||
"\tstm r1!, {r4,r6,r7}\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r0, 0x9C\n"
|
||||
"\tldm r2!, {r1,r4,r6}\n"
|
||||
"\tstm r0!, {r1,r4,r6}\n"
|
||||
"\tldm r2!, {r1,r4,r7}\n"
|
||||
"\tstm r0!, {r1,r4,r7}\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r1, [r0, 0x50]\n"
|
||||
"\tadds r0, 0xB4\n"
|
||||
"\tstr r0, [r1, 0x14]\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r0, 0xB5\n"
|
||||
"\tstrb r3, [r0]\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r0, 0xB6\n"
|
||||
"\tmovs r1, 0x6\n"
|
||||
"\tstrb r1, [r0]\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r0, 0xB7\n"
|
||||
"\tstrb r3, [r0]\n"
|
||||
"\tbl ResetUnusedInputStruct\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tadds r0, 0x54\n"
|
||||
"\tmovs r1, 0x1\n"
|
||||
"\tmovs r2, 0x1\n"
|
||||
"\tbl sub_800641C\n"
|
||||
"\tldr r4, [r5]\n"
|
||||
"\tadds r4, 0x18\n"
|
||||
"\tbl GetValidPartners\n"
|
||||
"\tadds r1, r0, 0\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldr r3, [r0, 0x4C]\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tmovs r2, 0xA\n"
|
||||
"\tbl sub_8013818\n"
|
||||
"\tbl RedrawPartnerSelectionMenu\n"
|
||||
"\tbl PersonalityTest_DisplayPartnerSprite\n"
|
||||
"\tpop {r4-r7}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0803CDB0: .4byte gUnknown_203B404\n"
|
||||
"_0803CDB4: .4byte gUnknown_80F4290\n"
|
||||
"_0803CDB8: .4byte gUnknown_80F42A8\n"
|
||||
"_0803CDBC: .4byte gUnknown_80F4278");
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
u16 HandlePartnerSelectionInput(void)
|
||||
{
|
||||
|
||||
@@ -21,6 +21,26 @@ extern const char gDragonText[];
|
||||
extern const char gDarkText[];
|
||||
extern const char gSteelText[];
|
||||
|
||||
extern const char gFormattedNoneText[];
|
||||
extern const char gFormattedNormalText[];
|
||||
extern const char gFormattedFireText[];
|
||||
extern const char gFormattedWaterText[];
|
||||
extern const char gFormattedGrassText[];
|
||||
extern const char gFormattedElectricText[];
|
||||
extern const char gFormattedIceText[];
|
||||
extern const char gFormattedFightingText[];
|
||||
extern const char gFormattedPoisonText[];
|
||||
extern const char gFormattedGroundText[];
|
||||
extern const char gFormattedFlyingText[];
|
||||
extern const char gFormattedPsychicText[];
|
||||
extern const char gFormattedBugText[];
|
||||
extern const char gFormattedRockText[];
|
||||
extern const char gFormattedGhostText[];
|
||||
extern const char gFormattedDragonText[];
|
||||
extern const char gFormattedDarkText[];
|
||||
extern const char gFormattedSteelText[];
|
||||
|
||||
|
||||
const char * const gUnformattedTypeStrings[NUM_POKEMON_TYPES] =
|
||||
{
|
||||
gNoneText,
|
||||
@@ -45,7 +65,29 @@ const char * const gUnformattedTypeStrings[NUM_POKEMON_TYPES] =
|
||||
|
||||
#include "data/unformatted_type_names.h"
|
||||
|
||||
extern const char * gFormattedTypeStrings[NUM_POKEMON_TYPES]; // formatted type names
|
||||
const char * const gFormattedTypeStrings[NUM_POKEMON_TYPES] =
|
||||
{
|
||||
gFormattedNoneText,
|
||||
gFormattedNormalText,
|
||||
gFormattedFireText,
|
||||
gFormattedWaterText,
|
||||
gFormattedGrassText,
|
||||
gFormattedElectricText,
|
||||
gFormattedIceText,
|
||||
gFormattedFightingText,
|
||||
gFormattedPoisonText,
|
||||
gFormattedGroundText,
|
||||
gFormattedFlyingText,
|
||||
gFormattedPsychicText,
|
||||
gFormattedBugText,
|
||||
gFormattedRockText,
|
||||
gFormattedGhostText,
|
||||
gFormattedDragonText,
|
||||
gFormattedDarkText,
|
||||
gFormattedSteelText,
|
||||
};
|
||||
|
||||
#include "data/formatted_type_names.h"
|
||||
|
||||
|
||||
extern u8 *gAbilityNames[];
|
||||
|
||||
104
src/unk_menu_203B360.c
Normal file
104
src/unk_menu_203B360.c
Normal file
@@ -0,0 +1,104 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
#include "main_menu.h"
|
||||
|
||||
struct unkData
|
||||
{
|
||||
u8 unk0[14];
|
||||
u16 unkD;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u8 *unk14;
|
||||
};
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4; // state
|
||||
u32 unk8;
|
||||
u8 fill8[0x148 - 0xC];
|
||||
struct unkData unk148[4];
|
||||
u32 unk1A8;
|
||||
u32 unk1AC;
|
||||
u32 unk1B0; // sprite count?
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B360 *gUnknown_203B360;
|
||||
extern struct unkData gUnknown_80E6E7C;
|
||||
extern u32 gUnknown_80E6E94;
|
||||
extern u32 gUnknown_80E6EAC;
|
||||
|
||||
extern void *MemoryAlloc(u32, u32);
|
||||
extern void MemoryFill8(u8 *, u8, u32);
|
||||
extern void MemoryFree(void *);
|
||||
extern void sub_8038440();
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void sub_800641C(void *, u32, u32);
|
||||
extern void SetMenuItems(void *, void *, u32, u32 *, u32 *, u32, u32, u32);
|
||||
extern u8 sub_80130A8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern void sub_80384D0();
|
||||
|
||||
void sub_80382E4(s32 param_1)
|
||||
{
|
||||
s32 iVar4;
|
||||
|
||||
if (gUnknown_203B360 == NULL) {
|
||||
gUnknown_203B360 = MemoryAlloc(sizeof(struct unkStruct_203B360), 8);
|
||||
MemoryFill8((u8 *)gUnknown_203B360, 0, sizeof(struct unkStruct_203B360));
|
||||
}
|
||||
for(iVar4 = 0; iVar4 < 4; iVar4++){
|
||||
gUnknown_203B360->unk148[iVar4] = gUnknown_80E6E7C;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B360->unk148,1,1);
|
||||
if (param_1 == 0x25) {
|
||||
SetMenuItems(&gUnknown_203B360->unk8,gUnknown_203B360->unk148,0,&gUnknown_80E6E94,&gUnknown_80E6EAC,
|
||||
0,4,0);
|
||||
}
|
||||
sub_8035CF4(&gUnknown_203B360->unk8,0,1);
|
||||
gUnknown_203B360->currMenu = param_1;
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
sub_8038440();
|
||||
}
|
||||
|
||||
void sub_80383A8(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
if (gUnknown_203B360 != 0) {
|
||||
MemoryFree(gUnknown_203B360);
|
||||
gUnknown_203B360 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
u32 sub_80383D4(void)
|
||||
{
|
||||
u32 nextMenu;
|
||||
u32 menuAction;
|
||||
|
||||
menuAction = 2;
|
||||
nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
|
||||
if (gUnknown_203B360->unk4 == 0){
|
||||
if (sub_80130A8(&gUnknown_203B360->unk8) == '\0') {
|
||||
sub_8013114(&gUnknown_203B360->unk8, &menuAction);
|
||||
}
|
||||
switch(menuAction)
|
||||
{
|
||||
case 3:
|
||||
case 1:
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 2:
|
||||
gUnknown_203B360->unk4 = 0;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sub_80384D0();
|
||||
}
|
||||
|
||||
return nextMenu;
|
||||
}
|
||||
36
src/unk_menu_203B360_1.c
Normal file
36
src/unk_menu_203B360_1.c
Normal file
@@ -0,0 +1,36 @@
|
||||
#include "global.h"
|
||||
|
||||
struct unkData
|
||||
{
|
||||
u8 unk0[14];
|
||||
u16 unkD;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u8 *unk14;
|
||||
};
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u8 fill8[0x148 - 0xC];
|
||||
struct unkData unk148[4];
|
||||
u16 unk1A8;
|
||||
u16 unk1AA;
|
||||
u16 unk1AC;
|
||||
u16 unk1AE;
|
||||
u32 unk1B0; // Sprite count?
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B360 *gUnknown_203B360;
|
||||
extern void AddSprite(u16 *, u32, u32, u32);
|
||||
|
||||
void sub_80384D0(void)
|
||||
{
|
||||
if ((gUnknown_203B360->unk1B0 & 8) != 0) {
|
||||
AddSprite(&gUnknown_203B360->unk1A8, 0x100, 0, 0);
|
||||
}
|
||||
gUnknown_203B360->unk1B0++;
|
||||
}
|
||||
85
src/unk_menu_203B364.c
Normal file
85
src/unk_menu_203B364.c
Normal file
@@ -0,0 +1,85 @@
|
||||
#include "global.h"
|
||||
#include "input.h"
|
||||
|
||||
struct unkData
|
||||
{
|
||||
u8 unk0[14];
|
||||
u16 unkD;
|
||||
u16 unk10;
|
||||
u16 unk12;
|
||||
u8 *unk14;
|
||||
};
|
||||
|
||||
struct unkStruct_203B360
|
||||
{
|
||||
// size: 0x1b4
|
||||
u32 currMenu;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u8 fill8[0x148 - 0xC];
|
||||
struct unkData unk148[4];
|
||||
u16 unk1A8;
|
||||
u16 unk1AA;
|
||||
u16 unk1AC;
|
||||
u16 unk1AE;
|
||||
u32 unk1B0; // Sprite count?
|
||||
};
|
||||
|
||||
extern struct unkStruct_203B360 *gUnknown_203B364;
|
||||
extern struct unkData gUnknown_80E6F20;
|
||||
extern u32 gUnknown_80E6F38;
|
||||
extern u32 gUnknown_80E7090;
|
||||
extern u32 gUnknown_80E6F50;
|
||||
|
||||
extern void *MemoryAlloc(u32, u32);
|
||||
extern void MemoryFill8(u8 *, u8, u32);
|
||||
extern void MemoryFree(void *);
|
||||
extern void sub_8038440();
|
||||
extern void sub_8035CF4(u32 *, u32, u32);
|
||||
extern void sub_800641C(void *, u32, u32);
|
||||
extern void SetMenuItems(void *, void *, u32, u32 *, u32 *, u32, u32, u32);
|
||||
extern u8 sub_80130A8(u32 *);
|
||||
extern void sub_8013114(u32 *, u32 *);
|
||||
extern void sub_80384D0();
|
||||
extern void sub_8038830();
|
||||
|
||||
void sub_803850C(s32 param_1)
|
||||
{
|
||||
s32 iVar4;
|
||||
|
||||
if (gUnknown_203B364 == NULL) {
|
||||
gUnknown_203B364 = MemoryAlloc(sizeof(struct unkStruct_203B360),8);
|
||||
MemoryFill8((u8 *)gUnknown_203B364,0,sizeof(struct unkStruct_203B360));
|
||||
}
|
||||
for(iVar4 = 0; iVar4 < 4; iVar4++){
|
||||
gUnknown_203B364->unk148[iVar4] = gUnknown_80E6F20;
|
||||
}
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(gUnknown_203B364->unk148,1,1);
|
||||
|
||||
if (param_1 == 0x2e) {
|
||||
// Beware, Deleting your Adventure
|
||||
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,&gUnknown_80E7090,
|
||||
0,6,0);
|
||||
}
|
||||
else {
|
||||
// Saving your Adventure
|
||||
SetMenuItems(&gUnknown_203B364->unk8,gUnknown_203B364->unk148,0,&gUnknown_80E6F38,&gUnknown_80E6F50,
|
||||
0,6,0);
|
||||
}
|
||||
sub_8035CF4(&gUnknown_203B364->unk8,0,1);
|
||||
gUnknown_203B364->unk4 = 0;
|
||||
gUnknown_203B364->currMenu = param_1;
|
||||
sub_8038830();
|
||||
}
|
||||
|
||||
void sub_8038604(void)
|
||||
{
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
if (gUnknown_203B364 != 0) {
|
||||
MemoryFree(gUnknown_203B364);
|
||||
gUnknown_203B364 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -449,7 +449,7 @@ gUnknown_203B330 = .; /* 203B330 */
|
||||
gUnknown_203B334 = .; /* 203B334 */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_203B338 = .; /* 203B338 */
|
||||
gAdventureLog = .; /* 203B338 */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_203B33C = .; /* 203B33C */
|
||||
@@ -491,7 +491,7 @@ gUnknown_203B368 = .; /* 203B368 */
|
||||
gUnknown_203B36C = .; /* 203B36C */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_203B370 = .; /* 203B370 */
|
||||
gRescuePasswordMenu = .; /* 203B370 */
|
||||
. += 0x4;
|
||||
|
||||
gUnknown_203B374 = .; /* 203B374 */
|
||||
|
||||
Reference in New Issue
Block a user