Pokenav unk 1 almost done
This commit is contained in:
+1
-242
@@ -3,248 +3,7 @@
|
|||||||
|
|
||||||
.syntax unified
|
.syntax unified
|
||||||
|
|
||||||
thumb_func_start sub_81C963C
|
thumb_func_start sub_81C9814
|
||||||
sub_81C963C: @ 81C963C
|
|
||||||
push {r4-r6,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
bl sub_81C9814
|
|
||||||
adds r3, r0, 0
|
|
||||||
cmp r3, 0
|
|
||||||
beq _081C964E
|
|
||||||
movs r0, 0x1
|
|
||||||
b _081C96F6
|
|
||||||
_081C964E:
|
|
||||||
ldr r2, =gMain
|
|
||||||
ldrh r1, [r2, 0x2E]
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
adds r6, r2, 0
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C96B8
|
|
||||||
ldr r5, =gUnknown_0861FC59
|
|
||||||
movs r1, 0x2
|
|
||||||
ldrsh r0, [r4, r1]
|
|
||||||
ldrh r2, [r4]
|
|
||||||
lsls r1, r2, 1
|
|
||||||
adds r1, r2
|
|
||||||
lsls r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
adds r0, r5
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r0, 0x6
|
|
||||||
beq _081C968E
|
|
||||||
cmp r0, 0x6
|
|
||||||
bgt _081C9688
|
|
||||||
cmp r0, 0x5
|
|
||||||
beq _081C96A4
|
|
||||||
b _081C96B8
|
|
||||||
.pool
|
|
||||||
_081C9688:
|
|
||||||
cmp r0, 0x7
|
|
||||||
beq _081C96E4
|
|
||||||
b _081C96B8
|
|
||||||
_081C968E:
|
|
||||||
movs r0, 0x4
|
|
||||||
strh r0, [r4]
|
|
||||||
strh r3, [r4, 0x2]
|
|
||||||
ldrb r0, [r5, 0x18]
|
|
||||||
strh r0, [r4, 0x4]
|
|
||||||
ldr r0, =sub_81C96FC
|
|
||||||
str r0, [r4, 0xC]
|
|
||||||
movs r0, 0x4
|
|
||||||
b _081C96F6
|
|
||||||
.pool
|
|
||||||
_081C96A4:
|
|
||||||
strh r3, [r4, 0x6]
|
|
||||||
ldr r1, =0x000186a7
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_81C97B0
|
|
||||||
movs r0, 0x8
|
|
||||||
b _081C96F6
|
|
||||||
.pool
|
|
||||||
_081C96B8:
|
|
||||||
ldrh r1, [r6, 0x2E]
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C96F4
|
|
||||||
movs r0, 0x2
|
|
||||||
ldrsh r2, [r4, r0]
|
|
||||||
ldr r1, =gUnknown_0861FC54
|
|
||||||
ldrh r0, [r4]
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r2, r0
|
|
||||||
beq _081C96E4
|
|
||||||
strh r0, [r4, 0x2]
|
|
||||||
ldr r0, =sub_81C9798
|
|
||||||
str r0, [r4, 0xC]
|
|
||||||
movs r0, 0x1
|
|
||||||
b _081C96F6
|
|
||||||
.pool
|
|
||||||
_081C96E4:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_81C97C0
|
|
||||||
movs r0, 0x3
|
|
||||||
b _081C96F6
|
|
||||||
_081C96F4:
|
|
||||||
movs r0, 0
|
|
||||||
_081C96F6:
|
|
||||||
pop {r4-r6}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_81C963C
|
|
||||||
|
|
||||||
thumb_func_start sub_81C96FC
|
|
||||||
sub_81C96FC: @ 81C96FC
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
bl sub_81C9814
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C970C
|
|
||||||
movs r0, 0x1
|
|
||||||
b _081C9792
|
|
||||||
_081C970C:
|
|
||||||
ldr r0, =gMain
|
|
||||||
ldrh r1, [r0, 0x2E]
|
|
||||||
movs r0, 0x1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C9754
|
|
||||||
ldr r3, =gUnknown_0861FC59
|
|
||||||
movs r0, 0x2
|
|
||||||
ldrsh r1, [r4, r0]
|
|
||||||
ldrh r2, [r4]
|
|
||||||
lsls r0, r2, 1
|
|
||||||
adds r0, r2
|
|
||||||
lsls r0, 1
|
|
||||||
adds r1, r0
|
|
||||||
adds r1, r3
|
|
||||||
ldrb r0, [r1]
|
|
||||||
cmp r0, 0xD
|
|
||||||
beq _081C9780
|
|
||||||
subs r0, 0x8
|
|
||||||
bl sub_81C7694
|
|
||||||
ldr r1, =0x000186a8
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_81C97B0
|
|
||||||
movs r0, 0x3
|
|
||||||
strh r0, [r4, 0x6]
|
|
||||||
movs r0, 0x8
|
|
||||||
b _081C9792
|
|
||||||
.pool
|
|
||||||
_081C9754:
|
|
||||||
movs r0, 0x2
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, 0
|
|
||||||
beq _081C9790
|
|
||||||
movs r0, 0x2
|
|
||||||
ldrsh r2, [r4, r0]
|
|
||||||
ldr r1, =gUnknown_0861FC54
|
|
||||||
ldrh r0, [r4]
|
|
||||||
adds r0, r1
|
|
||||||
ldrb r0, [r0]
|
|
||||||
cmp r2, r0
|
|
||||||
beq _081C9780
|
|
||||||
strh r0, [r4, 0x2]
|
|
||||||
ldr r0, =sub_81C97A4
|
|
||||||
str r0, [r4, 0xC]
|
|
||||||
movs r0, 0x1
|
|
||||||
b _081C9792
|
|
||||||
.pool
|
|
||||||
_081C9780:
|
|
||||||
movs r0, 0x5
|
|
||||||
bl PlaySE
|
|
||||||
adds r0, r4, 0
|
|
||||||
bl sub_81C97F8
|
|
||||||
movs r0, 0x5
|
|
||||||
b _081C9792
|
|
||||||
_081C9790:
|
|
||||||
movs r0, 0
|
|
||||||
_081C9792:
|
|
||||||
pop {r4}
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_81C96FC
|
|
||||||
|
|
||||||
thumb_func_start sub_81C9798
|
|
||||||
sub_81C9798: @ 81C9798
|
|
||||||
push {lr}
|
|
||||||
bl sub_81C97C0
|
|
||||||
movs r0, 0x3
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_81C9798
|
|
||||||
|
|
||||||
thumb_func_start sub_81C97A4
|
|
||||||
sub_81C97A4: @ 81C97A4
|
|
||||||
push {lr}
|
|
||||||
bl sub_81C97F8
|
|
||||||
movs r0, 0x5
|
|
||||||
pop {r1}
|
|
||||||
bx r1
|
|
||||||
thumb_func_end sub_81C97A4
|
|
||||||
|
|
||||||
thumb_func_start sub_81C97B0
|
|
||||||
sub_81C97B0: @ 81C97B0
|
|
||||||
str r1, [r0, 0x8]
|
|
||||||
ldr r1, =sub_81C97BC
|
|
||||||
str r1, [r0, 0xC]
|
|
||||||
bx lr
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_81C97B0
|
|
||||||
|
|
||||||
thumb_func_start sub_81C97BC
|
|
||||||
sub_81C97BC: @ 81C97BC
|
|
||||||
ldr r0, [r0, 0x8]
|
|
||||||
bx lr
|
|
||||||
thumb_func_end sub_81C97BC
|
|
||||||
|
|
||||||
thumb_func_start sub_81C97C0
|
|
||||||
sub_81C97C0: @ 81C97C0
|
|
||||||
push {r4,lr}
|
|
||||||
adds r4, r0, 0
|
|
||||||
bl sub_81C9268
|
|
||||||
lsls r0, 24
|
|
||||||
lsrs r0, 24
|
|
||||||
strh r0, [r4]
|
|
||||||
movs r0, 0x1
|
|
||||||
strh r0, [r4, 0x2]
|
|
||||||
ldr r2, =gUnknown_0861FC59
|
|
||||||
ldrh r1, [r4]
|
|
||||||
lsls r0, r1, 1
|
|
||||||
adds r0, r1
|
|
||||||
lsls r0, 1
|
|
||||||
adds r0, 0x1
|
|
||||||
adds r0, r2
|
|
||||||
ldrb r0, [r0]
|
|
||||||
strh r0, [r4, 0x4]
|
|
||||||
ldr r0, =sub_81C943C
|
|
||||||
str r0, [r4, 0xC]
|
|
||||||
pop {r4}
|
|
||||||
pop {r0}
|
|
||||||
bx r0
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_81C97C0
|
|
||||||
|
|
||||||
thumb_func_start sub_81C97F8
|
|
||||||
sub_81C97F8: @ 81C97F8
|
|
||||||
movs r1, 0x3
|
|
||||||
strh r1, [r0]
|
|
||||||
movs r1, 0x1
|
|
||||||
strh r1, [r0, 0x2]
|
|
||||||
ldr r1, =gUnknown_0861FC59
|
|
||||||
ldrb r1, [r1, 0x13]
|
|
||||||
strh r1, [r0, 0x4]
|
|
||||||
ldr r1, =sub_81C963C
|
|
||||||
str r1, [r0, 0xC]
|
|
||||||
bx lr
|
|
||||||
.pool
|
|
||||||
thumb_func_end sub_81C97F8
|
|
||||||
|
|
||||||
thumb_func_start sub_81C9814
|
|
||||||
sub_81C9814: @ 81C9814
|
sub_81C9814: @ 81C9814
|
||||||
push {r4,r5,lr}
|
push {r4,r5,lr}
|
||||||
adds r4, r0, 0
|
adds r4, r0, 0
|
||||||
|
|||||||
+135
-4
@@ -17,11 +17,17 @@ struct Pokenav1Struct
|
|||||||
|
|
||||||
|
|
||||||
extern u32 sub_81C76AC(void);
|
extern u32 sub_81C76AC(void);
|
||||||
extern u32 sub_81C963C(struct Pokenav1Struct *a0);
|
extern void sub_81C7694(u32 a0);
|
||||||
extern u32 sub_81C96FC(struct Pokenav1Struct *a0);
|
|
||||||
extern u32 sub_81C9814(void);
|
|
||||||
extern void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1);
|
|
||||||
|
|
||||||
|
u32 sub_81C9814(void);
|
||||||
|
void sub_81C97F8(struct Pokenav1Struct *a0);
|
||||||
|
void sub_81C97C0(struct Pokenav1Struct *a0);
|
||||||
|
u32 sub_81C97BC(struct Pokenav1Struct *a0);
|
||||||
|
void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1);
|
||||||
|
u32 sub_81C97A4(struct Pokenav1Struct *a0);
|
||||||
|
u32 sub_81C9798(struct Pokenav1Struct *a0);
|
||||||
|
u32 sub_81C96FC(struct Pokenav1Struct *a0);
|
||||||
|
u32 sub_81C963C(struct Pokenav1Struct *a0);
|
||||||
u32 sub_81C9600(struct Pokenav1Struct *a0);
|
u32 sub_81C9600(struct Pokenav1Struct *a0);
|
||||||
u32 sub_81C9588(struct Pokenav1Struct *a0);
|
u32 sub_81C9588(struct Pokenav1Struct *a0);
|
||||||
u32 sub_81C9520(struct Pokenav1Struct *a0);
|
u32 sub_81C9520(struct Pokenav1Struct *a0);
|
||||||
@@ -29,6 +35,7 @@ u32 sub_81C943C(struct Pokenav1Struct *a0);
|
|||||||
u32 (*sub_81C93EC(void))(struct Pokenav1Struct*);
|
u32 (*sub_81C93EC(void))(struct Pokenav1Struct*);
|
||||||
void sub_81C939C(struct Pokenav1Struct *state);
|
void sub_81C939C(struct Pokenav1Struct *state);
|
||||||
|
|
||||||
|
extern u8 gUnknown_0861FC54[];
|
||||||
extern u8 gUnknown_0861FC59[];
|
extern u8 gUnknown_0861FC59[];
|
||||||
|
|
||||||
u8 sub_81C9268(void)
|
u8 sub_81C9268(void)
|
||||||
@@ -294,3 +301,127 @@ u32 sub_81C9600(struct Pokenav1Struct *a0)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
u32 sub_81C963C(struct Pokenav1Struct *a0)
|
||||||
|
{
|
||||||
|
u32 v0 = sub_81C9814();
|
||||||
|
if (v0)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (gMain.newKeys & A_BUTTON)
|
||||||
|
{
|
||||||
|
switch (gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6])
|
||||||
|
{
|
||||||
|
case 6:
|
||||||
|
a0->unk0 = 4;
|
||||||
|
a0->unk2 = v0;
|
||||||
|
a0->unk4 = gUnknown_0861FC59[24];
|
||||||
|
a0->unkC = sub_81C96FC;
|
||||||
|
return 4;
|
||||||
|
case 5:
|
||||||
|
a0->unk6 = v0;
|
||||||
|
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 7);
|
||||||
|
return 8;
|
||||||
|
case 7:
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_81C97C0(a0);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gMain.newKeys & B_BUTTON)
|
||||||
|
{
|
||||||
|
if (a0->unk2 != gUnknown_0861FC54[a0->unk0])
|
||||||
|
{
|
||||||
|
a0->unk2 = gUnknown_0861FC54[a0->unk0];
|
||||||
|
a0->unkC = sub_81C9798;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_81C97C0(a0);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 sub_81C96FC(struct Pokenav1Struct *a0)
|
||||||
|
{
|
||||||
|
if (sub_81C9814())
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (gMain.newKeys & A_BUTTON)
|
||||||
|
{
|
||||||
|
u8 v0 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6];
|
||||||
|
if (v0 != 13)
|
||||||
|
{
|
||||||
|
sub_81C7694(v0 - 8);
|
||||||
|
sub_81C97B0(a0, UNKNOWN_POKENAV_OFFSET + 8);
|
||||||
|
a0->unk6 = 3;
|
||||||
|
return 8;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_81C97F8(a0);
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gMain.newKeys & B_BUTTON)
|
||||||
|
{
|
||||||
|
if (a0->unk2 != gUnknown_0861FC54[a0->unk0])
|
||||||
|
{
|
||||||
|
a0->unk2 = gUnknown_0861FC54[a0->unk0];
|
||||||
|
a0->unkC = sub_81C97A4;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PlaySE(SE_SELECT);
|
||||||
|
sub_81C97F8(a0);
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 sub_81C9798(struct Pokenav1Struct *a0)
|
||||||
|
{
|
||||||
|
sub_81C97C0(a0);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 sub_81C97A4(struct Pokenav1Struct *a0)
|
||||||
|
{
|
||||||
|
sub_81C97F8(a0);
|
||||||
|
return 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81C97B0(struct Pokenav1Struct *a0, u32 a1)
|
||||||
|
{
|
||||||
|
a0->unk8 = a1;
|
||||||
|
a0->unkC = sub_81C97BC;
|
||||||
|
}
|
||||||
|
|
||||||
|
u32 sub_81C97BC(struct Pokenav1Struct *a0)
|
||||||
|
{
|
||||||
|
return a0->unk8;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81C97C0(struct Pokenav1Struct *a0)
|
||||||
|
{
|
||||||
|
a0->unk0 = sub_81C9268();
|
||||||
|
a0->unk2 = 1;
|
||||||
|
a0->unk4 = gUnknown_0861FC59[a0->unk2 + a0->unk0 * 6];
|
||||||
|
a0->unkC = sub_81C943C;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_81C97F8(struct Pokenav1Struct *a0)
|
||||||
|
{
|
||||||
|
a0->unk0 = 3;
|
||||||
|
a0->unk2 = 1;
|
||||||
|
a0->unk4 = gUnknown_0861FC59[19];
|
||||||
|
a0->unkC = sub_81C963C;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user