mirror of
https://github.com/pret/pmd-red.git
synced 2026-07-02 00:21:28 -05:00
more decomp
This commit is contained in:
parent
28f0516f56
commit
1098955bee
|
|
@ -1,335 +0,0 @@
|
|||
#include "asm/constants/gba_constants.inc"
|
||||
#include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8094558
|
||||
sub_8094558:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0xCC
|
||||
adds r7, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r6, r2, 0
|
||||
bl sub_80073B8
|
||||
movs r5, 0
|
||||
str r5, [sp]
|
||||
movs r0, 0x10
|
||||
movs r1, 0
|
||||
adds r2, r4, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
ldr r4, _080945D0
|
||||
adds r1, r6, 0
|
||||
adds r1, 0x18
|
||||
adds r0, r4, 0
|
||||
bl PrintYellowDungeonNametoBuffer
|
||||
ldr r0, _080945D4
|
||||
ldr r2, [r0]
|
||||
str r5, [sp]
|
||||
movs r0, 0x4
|
||||
movs r1, 0x10
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
movs r5, 0x1A
|
||||
adds r0, r4, 0
|
||||
adds r1, r6, 0
|
||||
movs r2, 0xA
|
||||
bl sub_80922B4
|
||||
adds r4, 0x50
|
||||
adds r1, r6, 0
|
||||
adds r1, 0xA
|
||||
adds r0, r4, 0
|
||||
movs r2, 0xA
|
||||
bl sub_80922B4
|
||||
movs r1, 0x14
|
||||
ldrsh r0, [r6, r1]
|
||||
bl sub_8094528
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080945DC
|
||||
ldr r0, _080945D8
|
||||
ldr r0, [r0]
|
||||
add r2, sp, 0xCC
|
||||
add r1, sp, 0x4
|
||||
movs r3, 0
|
||||
bl xxx_format_string
|
||||
b _080945EA
|
||||
.align 2, 0
|
||||
_080945D0: .4byte gAvailablePokemonNames
|
||||
_080945D4: .4byte gUnknown_8113850
|
||||
_080945D8: .4byte gUnknown_8113868
|
||||
_080945DC:
|
||||
ldr r0, _0809465C
|
||||
ldr r0, [r0]
|
||||
add r2, sp, 0xCC
|
||||
add r1, sp, 0x4
|
||||
movs r3, 0
|
||||
bl xxx_format_string
|
||||
_080945EA:
|
||||
add r0, sp, 0x4
|
||||
bl sub_8008ED0
|
||||
movs r4, 0xB0
|
||||
subs r0, r4, r0
|
||||
lsrs r1, r0, 31
|
||||
adds r0, r1
|
||||
asrs r0, 1
|
||||
movs r1, 0
|
||||
mov r8, r1
|
||||
str r1, [sp]
|
||||
adds r1, r5, 0
|
||||
add r2, sp, 0x4
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r5, 0xA
|
||||
movs r1, 0x14
|
||||
ldrsh r0, [r6, r1]
|
||||
add r1, sp, 0x4
|
||||
bl sub_80944BC
|
||||
add r0, sp, 0x4
|
||||
bl sub_8008ED0
|
||||
subs r4, r0
|
||||
lsrs r0, r4, 31
|
||||
adds r4, r0
|
||||
asrs r0, r4, 1
|
||||
mov r1, r8
|
||||
str r1, [sp]
|
||||
adds r1, r5, 0
|
||||
add r2, sp, 0x4
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r5, 0x10
|
||||
ldr r1, _08094660
|
||||
ldr r0, [r6, 0x20]
|
||||
str r0, [r1]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2A
|
||||
ldrb r0, [r0]
|
||||
str r0, [r1, 0x4]
|
||||
cmp r0, 0x63
|
||||
ble _08094668
|
||||
ldr r0, _08094664
|
||||
ldr r2, [r0]
|
||||
mov r0, r8
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _0809467A
|
||||
.align 2, 0
|
||||
_0809465C: .4byte gUnknown_8113870
|
||||
_08094660: .4byte gUnknown_202DE30
|
||||
_08094664: .4byte gUnknown_81138C0
|
||||
_08094668:
|
||||
ldr r0, _080946CC
|
||||
ldr r2, [r0]
|
||||
mov r1, r8
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_0809467A:
|
||||
adds r5, 0xA
|
||||
ldr r4, _080946D0
|
||||
movs r1, 0x24
|
||||
ldrsh r0, [r6, r1]
|
||||
str r0, [r4]
|
||||
ldr r0, _080946D4
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
mov r8, r0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r5, 0xA
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x26
|
||||
ldrb r2, [r0]
|
||||
str r2, [r4]
|
||||
adds r0, 0x2
|
||||
ldrb r0, [r0]
|
||||
str r0, [r4, 0x4]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2B
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _080946DC
|
||||
adds r0, r1, 0
|
||||
adds r0, r2, r0
|
||||
str r0, [r4]
|
||||
ldr r0, _080946D8
|
||||
ldr r2, [r0]
|
||||
mov r1, r8
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _080946EC
|
||||
.align 2, 0
|
||||
_080946CC: .4byte gUnknown_8113898
|
||||
_080946D0: .4byte gUnknown_202DE30
|
||||
_080946D4: .4byte gUnknown_81138D0
|
||||
_080946D8: .4byte gUnknown_8113950
|
||||
_080946DC:
|
||||
ldr r0, _08094714
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_080946EC:
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2D
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _08094720
|
||||
ldr r2, _08094718
|
||||
ldr r0, [r2, 0x4]
|
||||
adds r0, r1
|
||||
str r0, [r2, 0x4]
|
||||
ldr r0, _0809471C
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _08094730
|
||||
.align 2, 0
|
||||
_08094714: .4byte gUnknown_81138E4
|
||||
_08094718: .4byte gUnknown_202DE30
|
||||
_0809471C: .4byte gUnknown_8113974
|
||||
_08094720:
|
||||
ldr r0, _08094768
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_08094730:
|
||||
adds r5, 0xA
|
||||
ldr r2, _0809476C
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x27
|
||||
ldrb r3, [r0]
|
||||
str r3, [r2]
|
||||
adds r0, 0x2
|
||||
ldrb r0, [r0]
|
||||
str r0, [r2, 0x4]
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2C
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _08094774
|
||||
adds r0, r1, 0
|
||||
adds r0, r3, r0
|
||||
str r0, [r2]
|
||||
ldr r0, _08094770
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _08094784
|
||||
.align 2, 0
|
||||
_08094768: .4byte gUnknown_8113900
|
||||
_0809476C: .4byte gUnknown_202DE30
|
||||
_08094770: .4byte gUnknown_8113990
|
||||
_08094774:
|
||||
ldr r0, _080947AC
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_08094784:
|
||||
adds r0, r6, 0
|
||||
adds r0, 0x2E
|
||||
ldrb r1, [r0]
|
||||
cmp r1, 0
|
||||
beq _080947B8
|
||||
ldr r2, _080947B0
|
||||
ldr r0, [r2, 0x4]
|
||||
adds r0, r1
|
||||
str r0, [r2, 0x4]
|
||||
ldr r0, _080947B4
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
b _080947C8
|
||||
.align 2, 0
|
||||
_080947AC: .4byte gUnknown_8113918
|
||||
_080947B0: .4byte gUnknown_202DE30
|
||||
_080947B4: .4byte gUnknown_81139B4
|
||||
_080947B8:
|
||||
ldr r0, _080947E4
|
||||
ldr r2, [r0]
|
||||
str r1, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
_080947C8:
|
||||
adds r5, 0x10
|
||||
adds r2, r6, 0
|
||||
adds r2, 0x1C
|
||||
ldrb r1, [r6, 0x1C]
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080947EC
|
||||
ldr r0, _080947E8
|
||||
adds r1, r2, 0
|
||||
movs r2, 0
|
||||
bl sub_8090E14
|
||||
b _080947F6
|
||||
.align 2, 0
|
||||
_080947E4: .4byte gUnknown_8113934
|
||||
_080947E8: .4byte gUnknown_202DE58
|
||||
_080947EC:
|
||||
ldr r0, _0809481C
|
||||
ldr r1, _08094820
|
||||
ldr r1, [r1]
|
||||
bl strcpy
|
||||
_080947F6:
|
||||
ldr r0, _08094824
|
||||
ldr r2, [r0]
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
movs r0, 0x4
|
||||
adds r1, r5, 0
|
||||
adds r3, r7, 0
|
||||
bl xxx_format_and_draw
|
||||
adds r0, r7, 0
|
||||
bl sub_80073E0
|
||||
add sp, 0xCC
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809481C: .4byte gUnknown_202DE58
|
||||
_08094820: .4byte gUnknown_81139B8
|
||||
_08094824: .4byte gUnknown_81139CC
|
||||
thumb_func_end sub_8094558
|
||||
|
||||
.align 2,0
|
||||
|
|
@ -5,505 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8037400
|
||||
sub_8037400:
|
||||
push {r4-r6,lr}
|
||||
movs r6, 0
|
||||
movs r5, 0
|
||||
bl sub_8037810
|
||||
bl sub_8011830
|
||||
ldr r4, _08037434
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0]
|
||||
bl sub_8037B28
|
||||
ldr r4, [r4]
|
||||
str r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _08037422
|
||||
b _080376BE
|
||||
_08037422:
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0xA
|
||||
bls _0803742A
|
||||
b _080375E8
|
||||
_0803742A:
|
||||
lsls r0, 2
|
||||
ldr r1, _08037438
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08037434: .4byte gUnknown_203B35C
|
||||
_08037438: .4byte _0803743C
|
||||
.align 2, 0
|
||||
_0803743C:
|
||||
.4byte _08037494
|
||||
.4byte _080374B8
|
||||
.4byte _08037534
|
||||
.4byte _0803751C
|
||||
.4byte _0803756C
|
||||
.4byte _080375D8
|
||||
.4byte _080374E4
|
||||
.4byte _080374D0
|
||||
.4byte _080375E8
|
||||
.4byte _08037480
|
||||
.4byte _08037468
|
||||
_08037468:
|
||||
ldr r0, _0803747C
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xE7
|
||||
lsls r1, 2
|
||||
adds r6, r0, r1
|
||||
movs r2, 0x8A
|
||||
lsls r2, 3
|
||||
adds r5, r0, r2
|
||||
b _080375E8
|
||||
.align 2, 0
|
||||
_0803747C: .4byte gUnknown_203B35C
|
||||
_08037480:
|
||||
ldr r0, _08037490
|
||||
ldr r0, [r0]
|
||||
movs r3, 0xE7
|
||||
lsls r3, 2
|
||||
adds r6, r0, r3
|
||||
movs r4, 0x8A
|
||||
lsls r4, 3
|
||||
b _080375E6
|
||||
.align 2, 0
|
||||
_08037490: .4byte gUnknown_203B35C
|
||||
_08037494:
|
||||
bl sub_8035D94
|
||||
ldr r1, _080374B4
|
||||
ldr r3, [r1]
|
||||
movs r5, 0xDE
|
||||
lsls r5, 1
|
||||
adds r2, r3, r5
|
||||
ldr r1, [r0, 0x4]
|
||||
ldr r0, [r0]
|
||||
str r0, [r2]
|
||||
str r1, [r2, 0x4]
|
||||
adds r6, r2, 0
|
||||
movs r0, 0xE2
|
||||
lsls r0, 1
|
||||
adds r5, r3, r0
|
||||
b _080375E8
|
||||
.align 2, 0
|
||||
_080374B4: .4byte gUnknown_203B35C
|
||||
_080374B8:
|
||||
ldr r0, _080374CC
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xDE
|
||||
lsls r1, 1
|
||||
adds r6, r0, r1
|
||||
movs r2, 0xE2
|
||||
lsls r2, 1
|
||||
adds r5, r0, r2
|
||||
b _080375E8
|
||||
.align 2, 0
|
||||
_080374CC: .4byte gUnknown_203B35C
|
||||
_080374D0:
|
||||
ldr r0, _080374E0
|
||||
ldr r0, [r0]
|
||||
movs r3, 0xE6
|
||||
lsls r3, 1
|
||||
adds r6, r0, r3
|
||||
movs r4, 0xFE
|
||||
lsls r4, 1
|
||||
b _080375E6
|
||||
.align 2, 0
|
||||
_080374E0: .4byte gUnknown_203B35C
|
||||
_080374E4:
|
||||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetMailatIndex
|
||||
ldr r3, _08037518
|
||||
ldr r1, [r3]
|
||||
movs r2, 0xE6
|
||||
lsls r2, 1
|
||||
adds r1, r2
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldr r0, [r3]
|
||||
adds r6, r0, r2
|
||||
movs r1, 0xFE
|
||||
lsls r1, 1
|
||||
adds r5, r0, r1
|
||||
b _080375E8
|
||||
.align 2, 0
|
||||
_08037518: .4byte gUnknown_203B35C
|
||||
_0803751C:
|
||||
ldr r0, _08037530
|
||||
ldr r0, [r0]
|
||||
movs r2, 0x8B
|
||||
lsls r2, 2
|
||||
adds r6, r0, r2
|
||||
movs r3, 0x97
|
||||
lsls r3, 2
|
||||
adds r5, r0, r3
|
||||
b _080375E8
|
||||
.align 2, 0
|
||||
_08037530: .4byte gUnknown_203B35C
|
||||
_08037534:
|
||||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetMailatIndex
|
||||
ldr r3, _08037568
|
||||
ldr r1, [r3]
|
||||
movs r2, 0x8B
|
||||
lsls r2, 2
|
||||
adds r1, r2
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldm r0!, {r4-r6}
|
||||
stm r1!, {r4-r6}
|
||||
ldr r0, [r3]
|
||||
adds r6, r0, r2
|
||||
movs r1, 0x97
|
||||
lsls r1, 2
|
||||
adds r5, r0, r1
|
||||
b _080375E8
|
||||
.align 2, 0
|
||||
_08037568: .4byte gUnknown_203B35C
|
||||
_0803756C:
|
||||
bl sub_8035D74
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetMailatIndex
|
||||
ldr r4, _080375CC
|
||||
ldr r1, [r4]
|
||||
movs r5, 0xA3
|
||||
lsls r5, 2
|
||||
adds r1, r5
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
ldm r0!, {r2,r3,r6}
|
||||
stm r1!, {r2,r3,r6}
|
||||
bl sub_8035D3C
|
||||
lsls r0, 16
|
||||
ldr r1, _080375D0
|
||||
cmp r0, r1
|
||||
beq _080375BE
|
||||
bl sub_8035D3C
|
||||
ldr r3, [r4]
|
||||
movs r1, 0xAF
|
||||
lsls r1, 2
|
||||
adds r3, r1
|
||||
ldr r1, _080375D4
|
||||
ldr r1, [r1]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
movs r2, 0x58
|
||||
muls r0, r2
|
||||
adds r1, r0
|
||||
adds r0, r3, 0
|
||||
bl memcpy
|
||||
_080375BE:
|
||||
ldr r0, [r4]
|
||||
adds r6, r0, r5
|
||||
movs r2, 0xC5
|
||||
lsls r2, 2
|
||||
adds r5, r0, r2
|
||||
b _080375E8
|
||||
.align 2, 0
|
||||
_080375CC: .4byte gUnknown_203B35C
|
||||
_080375D0: .4byte 0xffff0000
|
||||
_080375D4: .4byte gRecruitedPokemonRef
|
||||
_080375D8:
|
||||
ldr r0, _08037610
|
||||
ldr r0, [r0]
|
||||
movs r3, 0xA3
|
||||
lsls r3, 2
|
||||
adds r6, r0, r3
|
||||
movs r4, 0xC5
|
||||
lsls r4, 2
|
||||
_080375E6:
|
||||
adds r5, r0, r4
|
||||
_080375E8:
|
||||
ldr r4, _08037610
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0]
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
bl sub_8037D64
|
||||
ldr r1, [r4]
|
||||
str r0, [r1, 0x4]
|
||||
cmp r0, 0
|
||||
bne _080376BE
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0xA
|
||||
bhi _080376AE
|
||||
lsls r0, 2
|
||||
ldr r1, _08037614
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08037610: .4byte gUnknown_203B35C
|
||||
_08037614: .4byte _08037618
|
||||
.align 2, 0
|
||||
_08037618:
|
||||
.4byte _08037644
|
||||
.4byte _08037644
|
||||
.4byte _08037658
|
||||
.4byte _08037658
|
||||
.4byte _0803766C
|
||||
.4byte _0803766C
|
||||
.4byte _08037684
|
||||
.4byte _08037684
|
||||
.4byte _080376AE
|
||||
.4byte _0803769C
|
||||
.4byte _0803769C
|
||||
_08037644:
|
||||
ldr r0, _08037654
|
||||
ldr r2, [r0]
|
||||
movs r5, 0xDE
|
||||
lsls r5, 1
|
||||
adds r6, r2, r5
|
||||
movs r1, 0xE2
|
||||
lsls r1, 1
|
||||
b _0803767A
|
||||
.align 2, 0
|
||||
_08037654: .4byte gUnknown_203B35C
|
||||
_08037658:
|
||||
ldr r0, _08037668
|
||||
ldr r2, [r0]
|
||||
movs r3, 0x8B
|
||||
lsls r3, 2
|
||||
adds r6, r2, r3
|
||||
movs r4, 0x97
|
||||
lsls r4, 2
|
||||
b _08037692
|
||||
.align 2, 0
|
||||
_08037668: .4byte gUnknown_203B35C
|
||||
_0803766C:
|
||||
ldr r0, _08037680
|
||||
ldr r2, [r0]
|
||||
movs r5, 0xA3
|
||||
lsls r5, 2
|
||||
adds r6, r2, r5
|
||||
movs r1, 0xC5
|
||||
lsls r1, 2
|
||||
_0803767A:
|
||||
adds r5, r2, r1
|
||||
adds r4, r0, 0
|
||||
b _080376AE
|
||||
.align 2, 0
|
||||
_08037680: .4byte gUnknown_203B35C
|
||||
_08037684:
|
||||
ldr r0, _08037698
|
||||
ldr r2, [r0]
|
||||
movs r3, 0xE6
|
||||
lsls r3, 1
|
||||
adds r6, r2, r3
|
||||
movs r4, 0xFE
|
||||
lsls r4, 1
|
||||
_08037692:
|
||||
adds r5, r2, r4
|
||||
adds r4, r0, 0
|
||||
b _080376AE
|
||||
.align 2, 0
|
||||
_08037698: .4byte gUnknown_203B35C
|
||||
_0803769C:
|
||||
ldr r1, _080376C8
|
||||
ldr r0, [r1]
|
||||
movs r5, 0xE7
|
||||
lsls r5, 2
|
||||
adds r6, r0, r5
|
||||
movs r2, 0x8A
|
||||
lsls r2, 3
|
||||
adds r5, r0, r2
|
||||
adds r4, r1, 0
|
||||
_080376AE:
|
||||
ldr r0, [r4]
|
||||
ldr r0, [r0]
|
||||
adds r1, r6, 0
|
||||
adds r2, r5, 0
|
||||
bl sub_80381F4
|
||||
ldr r1, [r4]
|
||||
str r0, [r1, 0x4]
|
||||
_080376BE:
|
||||
bl xxx_call_start_bg_music
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080376C8: .4byte gUnknown_203B35C
|
||||
thumb_func_end sub_8037400
|
||||
|
||||
thumb_func_start sub_80376CC
|
||||
sub_80376CC:
|
||||
push {r4,lr}
|
||||
ldr r0, _08037728
|
||||
ldr r3, [r0]
|
||||
ldrh r1, [r3, 0xC]
|
||||
ldr r0, _0803772C
|
||||
ands r0, r1
|
||||
ldr r1, _08037730
|
||||
ands r0, r1
|
||||
ldr r4, _08037734
|
||||
ands r0, r4
|
||||
ldr r1, _08037738
|
||||
ands r0, r1
|
||||
ldr r1, _0803773C
|
||||
ands r0, r1
|
||||
movs r2, 0x80
|
||||
lsls r2, 7
|
||||
ldr r1, _08037740
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r3, 0xC]
|
||||
movs r2, 0xFC
|
||||
lsls r2, 2
|
||||
ldrh r1, [r3, 0x10]
|
||||
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, _08037744
|
||||
ands r0, r1
|
||||
orrs r0, r4
|
||||
strh r0, [r3, 0x10]
|
||||
movs r0, 0
|
||||
strh r0, [r3, 0xE]
|
||||
movs r1, 0xC0
|
||||
lsls r1, 4
|
||||
ldrh r0, [r3, 0x12]
|
||||
ands r2, r0
|
||||
orrs r2, r1
|
||||
strh r2, [r3, 0x12]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08037728: .4byte gUnknown_203B35C
|
||||
_0803772C: .4byte 0x0000feff
|
||||
_08037730: .4byte 0x0000fdff
|
||||
_08037734: .4byte 0x0000f3ff
|
||||
_08037738: .4byte 0x0000efff
|
||||
_0803773C: .4byte 0x0000dfff
|
||||
_08037740: .4byte 0x00003fff
|
||||
_08037744: .4byte 0x00000fff
|
||||
thumb_func_end sub_80376CC
|
||||
|
||||
thumb_func_start sub_8037748
|
||||
sub_8037748:
|
||||
push {r4,lr}
|
||||
ldr r4, _08037794
|
||||
ldr r3, [r4]
|
||||
ldrh r1, [r3, 0xE]
|
||||
movs r0, 0xFE
|
||||
lsls r0, 8
|
||||
ands r0, r1
|
||||
movs r1, 0x70
|
||||
orrs r0, r1
|
||||
strh r0, [r3, 0xE]
|
||||
movs r2, 0xD0
|
||||
lsls r2, 3
|
||||
ldrh r1, [r3, 0x12]
|
||||
movs r0, 0xF
|
||||
ands r0, r1
|
||||
orrs r0, r2
|
||||
strh r0, [r3, 0x12]
|
||||
ldr r0, [r3, 0x14]
|
||||
movs r1, 0x8
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08037782
|
||||
adds r0, r3, 0
|
||||
adds r0, 0xC
|
||||
adds r1, 0xF8
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl AddSprite
|
||||
_08037782:
|
||||
bl xxx_draw_string_80144C4
|
||||
ldr r1, [r4]
|
||||
ldr r0, [r1, 0x14]
|
||||
adds r0, 0x1
|
||||
str r0, [r1, 0x14]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08037794: .4byte gUnknown_203B35C
|
||||
thumb_func_end sub_8037748
|
||||
|
||||
thumb_func_start sub_8037798
|
||||
sub_8037798:
|
||||
push {lr}
|
||||
ldr r2, _080377B4
|
||||
ldr r1, _080377B8
|
||||
ldr r0, [r1]
|
||||
ldr r0, [r0]
|
||||
adds r3, r1, 0
|
||||
cmp r0, 0xA
|
||||
bhi _0803780A
|
||||
lsls r0, 2
|
||||
ldr r1, _080377BC
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080377B4: .4byte 0x0000ffdc
|
||||
_080377B8: .4byte gUnknown_203B35C
|
||||
_080377BC: .4byte _080377C0
|
||||
.align 2, 0
|
||||
_080377C0:
|
||||
.4byte _080377EC
|
||||
.4byte _080377EC
|
||||
.4byte _080377F0
|
||||
.4byte _080377F0
|
||||
.4byte _080377F0
|
||||
.4byte _080377F0
|
||||
.4byte _080377F0
|
||||
.4byte _080377F0
|
||||
.4byte _0803780A
|
||||
.4byte _080377FE
|
||||
.4byte _080377FE
|
||||
_080377EC:
|
||||
movs r2, 0x1
|
||||
b _0803780A
|
||||
_080377F0:
|
||||
ldr r0, [r3]
|
||||
ldr r0, [r0, 0x4]
|
||||
movs r2, 0x1
|
||||
cmp r0, 0
|
||||
bne _0803780A
|
||||
movs r2, 0x2A
|
||||
b _0803780A
|
||||
_080377FE:
|
||||
ldr r0, [r3]
|
||||
ldr r0, [r0, 0x4]
|
||||
movs r2, 0xD
|
||||
cmp r0, 0
|
||||
bne _0803780A
|
||||
movs r2, 0x2B
|
||||
_0803780A:
|
||||
adds r0, r2, 0
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8037798
|
||||
|
||||
thumb_func_start sub_8037810
|
||||
sub_8037810:
|
||||
push {r4-r6,lr}
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ struct unkDungeonGlobal_unk1CE98_sub
|
|||
{
|
||||
/* 0x0 */ u8 buffer1[10];
|
||||
/* 0xA */ u8 buffer2[10];
|
||||
s16 unk14;
|
||||
u8 fill16[0x18 - 0x16];
|
||||
/* 0x14 */ s16 moveID;
|
||||
/* 0x16 */ u8 fill16[0x2];
|
||||
/* 0x18 */ struct DungeonLocation dungeonLocation;
|
||||
/* 0x1C */ struct Item heldItem;
|
||||
/* 0x20 */ u32 exp;
|
||||
|
|
|
|||
|
|
@ -284,7 +284,6 @@ SECTIONS {
|
|||
asm/code_8094148.o(.text);
|
||||
src/number_util.o(.text);
|
||||
src/code_809447C.o(.text);
|
||||
asm/code_809447C.o(.text);
|
||||
src/code_8092334.o(.text);
|
||||
src/game_options.o(.text);
|
||||
asm/code_8094D28.o(.text);
|
||||
|
|
|
|||
|
|
@ -3,20 +3,46 @@
|
|||
#include "code_809447C.h"
|
||||
#include "item.h"
|
||||
#include "moves.h"
|
||||
#include "dungeon_global_data.h"
|
||||
|
||||
struct unkStruct_8113080
|
||||
{
|
||||
u8 unk0;
|
||||
u8 *unk4; // some string
|
||||
u8 *text;
|
||||
};
|
||||
|
||||
extern u8 gUnknown_202DE58[];
|
||||
extern u8 gAvailablePokemonNames[];
|
||||
extern s32 gUnknown_202DE30[2];
|
||||
|
||||
extern u8 *gUnknown_811383C[];
|
||||
extern u8 *gUnknown_8113850[];
|
||||
extern u8 *gUnknown_8113868[];
|
||||
extern u8 *gUnknown_8113898[];
|
||||
extern u8 *gUnknown_81138C0[];
|
||||
extern u8 *gUnknown_81138D0[];
|
||||
extern u8 *gUnknown_81138E4[];
|
||||
extern u8 *gUnknown_8113950[];
|
||||
extern u8 *gUnknown_8113900[];
|
||||
extern u8 *gUnknown_8113974[];
|
||||
extern u8 *gUnknown_8113918[];
|
||||
extern u8 *gUnknown_8113990[];
|
||||
extern u8 *gUnknown_8113934[];
|
||||
extern u8 *gUnknown_81139B4[];
|
||||
extern u8 *gUnknown_81139B8[];
|
||||
extern u8 *gUnknown_81139CC[];
|
||||
extern u8 *gUnknown_8113870[];
|
||||
|
||||
extern struct unkStruct_8113080 gUnknown_8113080[];
|
||||
|
||||
void sub_80928C0(u8 *buffer, struct Move *move, struct unkStruct_80928C0 *param_3);
|
||||
extern void xxx_format_string(const char *, u8 *, void *, u32);
|
||||
void PrintYellowDungeonNametoBuffer(u8 *buffer, struct DungeonLocation *dungeonLocation);
|
||||
extern void sub_80073B8(u32);
|
||||
extern void xxx_format_and_draw(s32, s32, const u8 *, ...);
|
||||
extern s32 sub_8008ED0(u8 *);
|
||||
void sub_80922B4(u8 *buffer, u8 *string, s32 size);
|
||||
extern void sub_80073E0(u32);
|
||||
|
||||
void sub_809447C(struct unkStruct_8094924 *r0, u8 *r1)
|
||||
{
|
||||
|
|
@ -30,24 +56,24 @@ void sub_809449C(struct unkStruct_8094924 *r0, u8 *r1)
|
|||
SaveIntegerBits(r0, r1 + 2, 0x10);
|
||||
}
|
||||
|
||||
void sub_80944BC(s16 moveID, u8 *arg2)
|
||||
static void sub_80944BC(s16 moveID, u8 *buffer)
|
||||
{
|
||||
u16 moveID_u16;
|
||||
s32 moveID_s32 = moveID;
|
||||
struct Move stack;
|
||||
struct Move move;
|
||||
|
||||
if (moveID_s32 < 0x1F4) {
|
||||
// Needed this cast/variable to match
|
||||
moveID_u16 = moveID_s32;
|
||||
sub_8092AA8(&stack, moveID_u16);
|
||||
sub_80928C0(gUnknown_202DE58, &stack, NULL);
|
||||
xxx_format_string(*gUnknown_811383C, arg2, arg2 + 200, 0);
|
||||
sub_8092AA8(&move, moveID_u16);
|
||||
sub_80928C0(gUnknown_202DE58, &move, NULL);
|
||||
xxx_format_string(*gUnknown_811383C, buffer, buffer + 200, 0); // $m0's $i0
|
||||
} else {
|
||||
strncpy(arg2, gUnknown_8113080[moveID - 0x1F4].unk4, 200);
|
||||
strncpy(buffer, gUnknown_8113080[moveID - 0x1F4].text, 200);
|
||||
}
|
||||
}
|
||||
|
||||
u8 sub_8094528(s16 moveID)
|
||||
static u8 sub_8094528(s16 moveID)
|
||||
{
|
||||
if(moveID < 0x1F4)
|
||||
{
|
||||
|
|
@ -59,3 +85,95 @@ u8 sub_8094528(s16 moveID)
|
|||
}
|
||||
}
|
||||
|
||||
void sub_8094558(u32 param_1,u8 *param_2,struct unkDungeonGlobal_unk1CE98_sub *param_3)
|
||||
{
|
||||
int iVar2;
|
||||
u8 buffer [200];
|
||||
s32 y;
|
||||
struct Item *item;
|
||||
s32 var;
|
||||
|
||||
sub_80073B8(param_1);
|
||||
xxx_format_and_draw(0x10,0,param_2,param_1,0);
|
||||
PrintYellowDungeonNametoBuffer(gAvailablePokemonNames, ¶m_3->dungeonLocation);
|
||||
xxx_format_and_draw(4,0x10,*gUnknown_8113850,param_1,0); // #+Place: $m0
|
||||
y = 0x1A;
|
||||
sub_80922B4(gAvailablePokemonNames, param_3->buffer1, POKEMON_NAME_LENGTH);
|
||||
sub_80922B4(gAvailablePokemonNames + 0x50, param_3->buffer2, POKEMON_NAME_LENGTH);
|
||||
if (sub_8094528(param_3->moveID) != 0) {
|
||||
// $m1 was defeated by
|
||||
xxx_format_string(*gUnknown_8113868,buffer,(u32 **)&buffer + 50,0); // TODO: fix this hack
|
||||
}
|
||||
else {
|
||||
// $m1
|
||||
xxx_format_string(*gUnknown_8113870,buffer,(u32 **)&buffer + 50,0); // TODO: fix this hack
|
||||
}
|
||||
iVar2 = sub_8008ED0(buffer);
|
||||
xxx_format_and_draw(((0xb0 - iVar2) / 2),y,buffer,param_1,0);
|
||||
y += 0xA;
|
||||
sub_80944BC(param_3->moveID, buffer);
|
||||
#ifndef NONMATCHING
|
||||
var = 0xb0 - sub_8008ED0(buffer);
|
||||
var += (var < 0);
|
||||
xxx_format_and_draw(var >> 1,y,buffer,param_1,0);
|
||||
asm(""::"r"(var));
|
||||
#else
|
||||
xxx_format_and_draw((0xb0 - sub_8008ED0(buffer) / 2),y,buffer,param_1,0);
|
||||
#endif
|
||||
y += 0x10;
|
||||
gUnknown_202DE30[0] = param_3->exp;
|
||||
gUnknown_202DE30[1] = param_3->level;
|
||||
if (gUnknown_202DE30[1] >= 100) {
|
||||
xxx_format_and_draw(4,y,*gUnknown_81138C0,param_1,0);
|
||||
}
|
||||
else {
|
||||
xxx_format_and_draw(4,y,*gUnknown_8113898,param_1,0);
|
||||
}
|
||||
y += 0xA;
|
||||
gUnknown_202DE30[0] = param_3->maxHPStat;
|
||||
xxx_format_and_draw(4,y,*gUnknown_81138D0,param_1,0);
|
||||
y += 0xA;
|
||||
gUnknown_202DE30[0] = param_3->atk;
|
||||
gUnknown_202DE30[1] = param_3->def;
|
||||
if (param_3->attBoost) {
|
||||
gUnknown_202DE30[0] = gUnknown_202DE30[0] + param_3->attBoost;
|
||||
xxx_format_and_draw(4,y,*gUnknown_8113950,param_1,0);
|
||||
}
|
||||
else {
|
||||
xxx_format_and_draw(4,y,*gUnknown_81138E4,param_1,0);
|
||||
}
|
||||
if (param_3->defBoost) {
|
||||
gUnknown_202DE30[1] = gUnknown_202DE30[1] + param_3->defBoost;
|
||||
xxx_format_and_draw(4,y,*gUnknown_8113974,param_1,0);
|
||||
}
|
||||
else {
|
||||
xxx_format_and_draw(4,y,*gUnknown_8113900,param_1,0);
|
||||
}
|
||||
y += 0xA;
|
||||
gUnknown_202DE30[0] = param_3->spAtk;
|
||||
gUnknown_202DE30[1] = param_3->spDef;
|
||||
if (param_3->spAttBoost) {
|
||||
gUnknown_202DE30[0] = gUnknown_202DE30[0] + param_3->spAttBoost;
|
||||
xxx_format_and_draw(4,y,*gUnknown_8113990,param_1,0);
|
||||
}
|
||||
else {
|
||||
xxx_format_and_draw(4,y,*gUnknown_8113918,param_1,0);
|
||||
}
|
||||
if (param_3->spDefBoost) {
|
||||
gUnknown_202DE30[1] = gUnknown_202DE30[1] + param_3->spDefBoost;
|
||||
xxx_format_and_draw(4,y,*gUnknown_81139B4,param_1,0);
|
||||
}
|
||||
else {
|
||||
xxx_format_and_draw(4,y,*gUnknown_8113934,param_1,0);
|
||||
}
|
||||
y += 0x10;
|
||||
item = &(param_3->heldItem);
|
||||
if ((param_3->heldItem.flags & ITEM_FLAG_EXISTS)) {
|
||||
sub_8090E14(gUnknown_202DE58,item,0);
|
||||
}
|
||||
else {
|
||||
strcpy(gUnknown_202DE58,*gUnknown_81139B8);
|
||||
}
|
||||
xxx_format_and_draw(4,y,*gUnknown_81139CC,param_1,0);
|
||||
sub_80073E0(param_1);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ void sub_8083AB0(s16 param_0, struct Entity * target, struct Entity * entity)
|
|||
}
|
||||
sub_80709C8(buffer,entityInfo);
|
||||
CopyStringtoBuffer(temp->buffer2, buffer);
|
||||
temp->unk14 = param_0_s32;
|
||||
temp->moveID = param_0_s32;
|
||||
temp->heldItem = entityInfo->heldItem;
|
||||
temp->exp = entityInfo->exp;
|
||||
temp->level = entityInfo->level;
|
||||
|
|
@ -108,7 +108,7 @@ bool8 sub_8083C24(void)
|
|||
|
||||
temp = &gDungeon->unk1CE98;
|
||||
|
||||
if (temp->unk14 < 0x226) {
|
||||
if (temp->moveID < 0x226) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
|
|
@ -122,7 +122,7 @@ bool8 sub_8083C50(void)
|
|||
|
||||
temp = &gDungeon->unk1CE98;
|
||||
|
||||
if ((temp->unk14 == 0x227) || (temp->unk14 == 0x22A) || (temp->unk14 == 0x228)) {
|
||||
if ((temp->moveID == 0x227) || (temp->moveID == 0x22A) || (temp->moveID == 0x228)) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
|
|
@ -138,7 +138,7 @@ bool8 sub_8083C88(u8 param_1)
|
|||
|
||||
if ((!HasCheckpoint(gDungeon->dungeonLocation.id) &&
|
||||
((gDungeon->unk65C != 0) || (param_1 != 0))) ||
|
||||
(temp->unk14 != 0x227)) {
|
||||
(temp->moveID != 0x227)) {
|
||||
return TRUE;
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -8,6 +8,18 @@
|
|||
#include "memory.h"
|
||||
#include "text.h"
|
||||
#include "menu_input.h"
|
||||
#include "dungeon_global_data.h"
|
||||
#include "pokemon.h"
|
||||
#include "code_8094F88.h"
|
||||
|
||||
struct unkSprite
|
||||
{
|
||||
u16 unk0;
|
||||
u16 unk2;
|
||||
u16 unk4;
|
||||
u16 unk6;
|
||||
};
|
||||
|
||||
|
||||
struct unkStruct_203B35C
|
||||
{
|
||||
|
|
@ -15,11 +27,23 @@ struct unkStruct_203B35C
|
|||
u32 unk0;
|
||||
u32 linkStatus;
|
||||
u32 state;
|
||||
u8 fillC[0x1C - 0xC];
|
||||
struct unkSprite unkC;
|
||||
u32 unk14;
|
||||
u8 fill18[0x1C - 0x18];
|
||||
struct MenuStruct unk1C[4];
|
||||
struct UnkTextStruct2 unk15C[4];
|
||||
u8 unk1BC[4];
|
||||
u32 unk1C0[9];
|
||||
struct unkStruct_8035D94 unk1BC[2];
|
||||
struct unkStruct_203B480 unk1CC;
|
||||
struct unkStruct_203B480 unk1FC;
|
||||
struct unkStruct_203B480 unk22C;
|
||||
struct unkStruct_203B480 unk25C;
|
||||
struct unkStruct_203B480 unk28C;
|
||||
struct PokemonStruct unk2BC;
|
||||
struct unkStruct_203B480 unk314;
|
||||
struct PokemonStruct unk344;
|
||||
s32 unk39C;
|
||||
u8 fill3A0[0x450 - 0x3A0];
|
||||
s32 unk450;
|
||||
};
|
||||
extern struct unkStruct_203B35C *gUnknown_203B35C;
|
||||
|
||||
|
|
@ -440,13 +464,21 @@ extern void TransferBGPaletteBuffer();
|
|||
extern void xxx_call_update_bg_vram();
|
||||
extern void sub_8009908();
|
||||
extern void xxx_call_update_bg_sound_input();
|
||||
extern s32 sub_8037D64(u32, void *, void *);
|
||||
extern s32 sub_80381F4(u32, void *, void *);
|
||||
extern void sub_8037810(void);
|
||||
extern void sub_8011830(void);
|
||||
extern s32 sub_8037B28(u32);
|
||||
s32 sub_8035D3C(void);
|
||||
extern s32 sub_8035D74(void);
|
||||
extern void xxx_call_start_bg_music(void);
|
||||
extern void xxx_draw_string_80144C4(void);
|
||||
extern void AddSprite(struct unkSprite *, u32, u32, u32);
|
||||
|
||||
|
||||
#ifdef NONMATCHING
|
||||
void sub_8036FDC(s32 param_1)
|
||||
{
|
||||
int iVar3;
|
||||
int iVar4;
|
||||
int index1;
|
||||
int index2;
|
||||
|
||||
ResetUnusedInputStruct();
|
||||
sub_800641C(0,1,1);
|
||||
|
|
@ -457,143 +489,22 @@ void sub_8036FDC(s32 param_1)
|
|||
}
|
||||
|
||||
gUnknown_203B35C->unk0 = param_1;
|
||||
gUnknown_203B35C->linkStatus = 0;
|
||||
gUnknown_203B35C->linkStatus = COMMS_GOOD;
|
||||
gUnknown_203B35C->state = 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;
|
||||
for(index1 = 0; index1 < 2; index1++)
|
||||
{
|
||||
gUnknown_203B35C->unk1BC[index1].numItems = 0;
|
||||
gUnknown_203B35C->unk1BC[index1].itemIndex.itemIndex_u8 = ITEM_NOTHING;
|
||||
}
|
||||
for(index2 = 0; index2 < 4; index2++){
|
||||
gUnknown_203B35C->unk15C[index2] = 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);
|
||||
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)
|
||||
{
|
||||
|
|
@ -753,3 +664,209 @@ struct unkStruct_203B35C *sub_80373F4(void)
|
|||
{
|
||||
return gUnknown_203B35C;
|
||||
}
|
||||
|
||||
void sub_8037400(void)
|
||||
{
|
||||
u8 mailIndex;
|
||||
void *r5;
|
||||
void *r6;
|
||||
s32 species;
|
||||
struct unkStruct_8035D94 *puVar5;
|
||||
struct unkStruct_8035D94 *puVar6;
|
||||
|
||||
r6 = NULL;
|
||||
r5 = NULL;
|
||||
sub_8037810();
|
||||
sub_8011830();
|
||||
gUnknown_203B35C->linkStatus = sub_8037B28(gUnknown_203B35C->unk0);
|
||||
if (gUnknown_203B35C->linkStatus == COMMS_GOOD)
|
||||
{
|
||||
switch(gUnknown_203B35C->unk0) {
|
||||
case 10:
|
||||
r6 = &gUnknown_203B35C->unk39C;
|
||||
r5 = &gUnknown_203B35C->unk450;
|
||||
break;
|
||||
case 9:
|
||||
r6 = &gUnknown_203B35C->unk39C;
|
||||
r5 = &gUnknown_203B35C->unk450;
|
||||
break;
|
||||
case 0:
|
||||
{
|
||||
#ifndef NONMATCING
|
||||
register u32 temp1 asm("r1");
|
||||
#else
|
||||
u32 temp1;
|
||||
#endif
|
||||
puVar5 = sub_8035D94();
|
||||
puVar6 = &gUnknown_203B35C->unk1BC[0];
|
||||
temp1 = puVar5->numItems;
|
||||
puVar6->itemIndex.itemIndex_u32 = puVar5->itemIndex.itemIndex_u32;
|
||||
puVar6->numItems = temp1;
|
||||
}
|
||||
r6 = &gUnknown_203B35C->unk1BC[0];
|
||||
r5 = &gUnknown_203B35C->unk1BC[1];
|
||||
break;
|
||||
case 1:
|
||||
r6 = &gUnknown_203B35C->unk1BC[0];
|
||||
r5 = &gUnknown_203B35C->unk1BC[1];
|
||||
break;
|
||||
case 7:
|
||||
r6 = &gUnknown_203B35C->unk1CC;
|
||||
r5 = &gUnknown_203B35C->unk1FC;
|
||||
break;
|
||||
case 6:
|
||||
mailIndex = sub_8035D74();
|
||||
gUnknown_203B35C->unk1CC = *GetMailatIndex(mailIndex);
|
||||
r6 = &gUnknown_203B35C->unk1CC;
|
||||
r5 = &gUnknown_203B35C->unk1FC;
|
||||
break;
|
||||
case 3:
|
||||
r6 = &gUnknown_203B35C->unk22C;
|
||||
r5 = &gUnknown_203B35C->unk25C;
|
||||
break;
|
||||
case 2:
|
||||
mailIndex = sub_8035D74();
|
||||
gUnknown_203B35C->unk22C = *GetMailatIndex(mailIndex);
|
||||
r6 = &gUnknown_203B35C->unk22C;
|
||||
r5 = &gUnknown_203B35C->unk25C;
|
||||
break;
|
||||
case 4:
|
||||
mailIndex = sub_8035D74();
|
||||
gUnknown_203B35C->unk28C = *GetMailatIndex(mailIndex);
|
||||
if( sub_8035D3C() << 0x10 != 0xffff0000)
|
||||
{
|
||||
species = sub_8035D3C();
|
||||
gUnknown_203B35C->unk2BC = gRecruitedPokemonRef->pokemon[(s16)species];
|
||||
}
|
||||
r6 = &gUnknown_203B35C->unk28C;
|
||||
r5 = &gUnknown_203B35C->unk314;
|
||||
break;
|
||||
case 5:
|
||||
r6 = &gUnknown_203B35C->unk28C;
|
||||
r5 = &gUnknown_203B35C->unk314;
|
||||
break;
|
||||
}
|
||||
gUnknown_203B35C->linkStatus = sub_8037D64(gUnknown_203B35C->unk0, r6, r5);
|
||||
|
||||
if (gUnknown_203B35C->linkStatus == COMMS_GOOD)
|
||||
{
|
||||
switch(gUnknown_203B35C->unk0) {
|
||||
case 0:
|
||||
case 1:
|
||||
r6 = &gUnknown_203B35C->unk1BC[0];
|
||||
r5 = &gUnknown_203B35C->unk1BC[1];
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
r6 = &gUnknown_203B35C->unk22C;
|
||||
r5 = &gUnknown_203B35C->unk25C;
|
||||
break;
|
||||
case 4:
|
||||
case 5:
|
||||
r6 = &gUnknown_203B35C->unk28C;
|
||||
r5 = &gUnknown_203B35C->unk314;
|
||||
break;
|
||||
case 6:
|
||||
case 7:
|
||||
r6 = &gUnknown_203B35C->unk1CC;
|
||||
r5 = &gUnknown_203B35C->unk1FC;
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
r6 = &gUnknown_203B35C->unk39C;
|
||||
r5 = &gUnknown_203B35C->unk450;
|
||||
break;
|
||||
}
|
||||
gUnknown_203B35C->linkStatus = sub_80381F4(gUnknown_203B35C->unk0, r6, r5);
|
||||
}
|
||||
}
|
||||
xxx_call_start_bg_music();
|
||||
}
|
||||
|
||||
void sub_80376CC(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 r0;
|
||||
u32 r2;
|
||||
#else
|
||||
register u32 r0 asm("r0");
|
||||
register u32 r2 asm("r2");
|
||||
#endif
|
||||
u32 r1;
|
||||
u32 r4;
|
||||
|
||||
|
||||
r1 = gUnknown_203B35C->unkC.unk0;
|
||||
r0 = 0xfeff;
|
||||
r0 &= r1;
|
||||
r0 &= 0xfdff;
|
||||
r0 &= 0xf3ff;
|
||||
r0 &= 0xefff;
|
||||
r0 &= 0xdfff;
|
||||
r2 = 0x4000;
|
||||
r0 &= 0x3fff;
|
||||
r0 |= r2;
|
||||
gUnknown_203B35C->unkC.unk0 = r0;
|
||||
|
||||
r2 = 0x3F0;
|
||||
r1 = gUnknown_203B35C->unkC.unk4;
|
||||
r0 = 0xFC00;
|
||||
r0 &= r1;
|
||||
r0 |= r2;
|
||||
r0 &= 0xf3ff;
|
||||
r2 = 0xF;
|
||||
r4 = 0xF000;
|
||||
r0 &= 0xfff;
|
||||
r0 |= r4;
|
||||
|
||||
gUnknown_203B35C->unkC.unk4 = r0;
|
||||
r0 = 0;
|
||||
gUnknown_203B35C->unkC.unk2 = r0;
|
||||
|
||||
r1 = 0xC00;
|
||||
r0 = gUnknown_203B35C->unkC.unk6;
|
||||
r2 &= r0;
|
||||
r2 |= r1;
|
||||
gUnknown_203B35C->unkC.unk6 = r2;
|
||||
|
||||
}
|
||||
|
||||
void sub_8037748(void)
|
||||
{
|
||||
u32 temp2;
|
||||
|
||||
gUnknown_203B35C->unkC.unk2 = (gUnknown_203B35C->unkC.unk2 & 0xfe00) | 0x70;
|
||||
|
||||
temp2 = 0x680;
|
||||
gUnknown_203B35C->unkC.unk6 = (gUnknown_203B35C->unkC.unk6 & 0xf) | temp2;
|
||||
|
||||
if ((gUnknown_203B35C->unk14 & 8) != 0) {
|
||||
AddSprite(&gUnknown_203B35C->unkC,0x100,0,0x0);
|
||||
}
|
||||
xxx_draw_string_80144C4();
|
||||
gUnknown_203B35C->unk14++;
|
||||
}
|
||||
|
||||
u32 sub_8037798(void)
|
||||
{
|
||||
u32 nextMenu = MENU_NO_SCREEN_CHANGE;
|
||||
switch(gUnknown_203B35C->unk0) {
|
||||
case 0:
|
||||
case 1:
|
||||
nextMenu = MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 2:
|
||||
case 3:
|
||||
case 4:
|
||||
case 5:
|
||||
case 6:
|
||||
case 7:
|
||||
nextMenu = (gUnknown_203B35C->linkStatus == COMMS_GOOD) ? 0x2A : MENU_MAIN_SCREEN;
|
||||
break;
|
||||
case 9:
|
||||
case 10:
|
||||
nextMenu = (gUnknown_203B35C->linkStatus == COMMS_GOOD) ? 0x2B : MENU_WONDER_MAIL;
|
||||
break;
|
||||
}
|
||||
return nextMenu;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user