nonmatching sub_81BF7A4
This commit is contained in:
parent
c5dddf41f5
commit
097a38f054
2 changed files with 68 additions and 37 deletions
|
@ -5,42 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_81BF7A4
|
||||
sub_81BF7A4: @ 81BF7A4
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r5, =gUnknown_030012B8
|
||||
ldr r0, [r5]
|
||||
ldrb r0, [r0, 0x1]
|
||||
cmp r0, r4
|
||||
bne _081BF7BC
|
||||
adds r0, r4, 0
|
||||
b _081BF7DC
|
||||
.pool
|
||||
_081BF7BC:
|
||||
cmp r0, 0x6
|
||||
bne _081BF7CC
|
||||
adds r0, r4, 0
|
||||
bl sub_81BF7E8
|
||||
ldr r0, [r5]
|
||||
strb r4, [r0, 0x1]
|
||||
b _081BF7D6
|
||||
_081BF7CC:
|
||||
bl sub_81BF8D8
|
||||
ldr r1, [r5]
|
||||
movs r0, 0x6
|
||||
strb r0, [r1, 0x1]
|
||||
_081BF7D6:
|
||||
ldr r0, =gUnknown_030012B8
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x1]
|
||||
_081BF7DC:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_81BF7A4
|
||||
|
||||
thumb_func_start sub_81BF7E8
|
||||
sub_81BF7E8: @ 81BF7E8
|
||||
push {r4-r6,lr}
|
||||
|
|
|
@ -30,7 +30,9 @@ extern berryfix_t *gUnknown_030012B8;
|
|||
|
||||
static void sub_81BF3DC(void);
|
||||
static void sub_81BF5A4(void);
|
||||
u32 sub_81BF7A4(u8);
|
||||
static int sub_81BF7A4(int);
|
||||
void sub_81BF7E8(int);
|
||||
void sub_81BF8D8(int);
|
||||
|
||||
// .rodata
|
||||
|
||||
|
@ -179,6 +181,32 @@ static void sub_81BF5A4(void)
|
|||
CopyWindowToVram(3, 2);
|
||||
CopyWindowToVram(0, 2);
|
||||
}
|
||||
|
||||
static int sub_81BF7A4(int checkval)
|
||||
{
|
||||
int retval;
|
||||
|
||||
retval = gUnknown_030012B8->unk1;
|
||||
if (retval == checkval)
|
||||
{
|
||||
retval = checkval;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (retval == 6)
|
||||
{
|
||||
sub_81BF7E8(checkval);
|
||||
gUnknown_030012B8->unk1 = checkval;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_81BF8D8(gUnknown_030012B8->unk1);
|
||||
gUnknown_030012B8->unk1 = 6;
|
||||
}
|
||||
retval = gUnknown_030012B8->unk1;
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
#else
|
||||
__attribute__((naked)) static void sub_81BF5A4(void)
|
||||
{
|
||||
|
@ -386,4 +414,43 @@ __attribute__((naked)) static void sub_81BF5A4(void)
|
|||
"\t.pool\n"
|
||||
".syntax divided");
|
||||
}
|
||||
|
||||
__attribute__((naked)) static int sub_81BF7A4(int checkval)
|
||||
{
|
||||
asm(".syntax unified\n"
|
||||
"\tpush {r4,r5,lr}\n"
|
||||
"\tadds r4, r0, 0\n"
|
||||
"\tldr r5, =gUnknown_030012B8\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tldrb r0, [r0, 0x1]\n"
|
||||
"\tcmp r0, r4\n"
|
||||
"\tbne _081BF7BC\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tb _081BF7DC\n"
|
||||
"\t.pool\n"
|
||||
"_081BF7BC:\n"
|
||||
"\tcmp r0, 0x6\n"
|
||||
"\tbne _081BF7CC\n"
|
||||
"\tadds r0, r4, 0\n"
|
||||
"\tbl sub_81BF7E8\n"
|
||||
"\tldr r0, [r5]\n"
|
||||
"\tstrb r4, [r0, 0x1]\n"
|
||||
"\tb _081BF7D6\n"
|
||||
"_081BF7CC:\n"
|
||||
"\tbl sub_81BF8D8\n"
|
||||
"\tldr r1, [r5]\n"
|
||||
"\tmovs r0, 0x6\n"
|
||||
"\tstrb r0, [r1, 0x1]\n"
|
||||
"_081BF7D6:\n"
|
||||
"\tldr r0, =gUnknown_030012B8\n"
|
||||
"\tldr r0, [r0]\n"
|
||||
"\tldrb r0, [r0, 0x1]\n"
|
||||
"_081BF7DC:\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1\n"
|
||||
"\t.pool\n"
|
||||
".syntax divided");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
Loading…
Reference in a new issue