mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-28 19:55:09 -05:00
Decomp up to sub_803E830
This commit is contained in:
@@ -5,176 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_803E724
|
||||
sub_803E724:
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r5, _0803E744
|
||||
movs r6, 0xF0
|
||||
_0803E72C:
|
||||
adds r0, r4, 0
|
||||
bl sub_803E46C
|
||||
ldrh r1, [r5]
|
||||
adds r0, r6, 0
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0803E72C
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E744: .4byte gRealInputs
|
||||
thumb_func_end sub_803E724
|
||||
|
||||
thumb_func_start sub_803E748
|
||||
sub_803E748:
|
||||
push {r4,r5,lr}
|
||||
movs r5, 0x1F
|
||||
ldr r1, _0803E7B8
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r1, _0803E7BC
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
movs r0, 0x1
|
||||
movs r1, 0x1F
|
||||
bl sub_803E874
|
||||
movs r4, 0
|
||||
_0803E762:
|
||||
cmp r4, 0x1F
|
||||
bgt _0803E780
|
||||
subs r5, 0x2
|
||||
cmp r5, 0
|
||||
bgt _0803E780
|
||||
movs r5, 0
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
ldr r0, _0803E7C0
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0803E7C4
|
||||
adds r0, r1
|
||||
strb r5, [r0]
|
||||
_0803E780:
|
||||
cmp r4, 0xB
|
||||
ble _0803E790
|
||||
ldr r1, _0803E7BC
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0x1E
|
||||
bgt _0803E790
|
||||
adds r0, 0x1
|
||||
str r0, [r1]
|
||||
_0803E790:
|
||||
movs r0, 0x1
|
||||
adds r1, r5, 0
|
||||
bl sub_803E874
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
adds r4, 0x1
|
||||
cmp r4, 0x2B
|
||||
ble _0803E762
|
||||
ldr r1, _0803E7B8
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
ldr r1, _0803E7BC
|
||||
movs r0, 0x1F
|
||||
str r0, [r1]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E7B8: .4byte gUnknown_203B40D
|
||||
_0803E7BC: .4byte gUnknown_202EDC8
|
||||
_0803E7C0: .4byte gDungeon
|
||||
_0803E7C4: .4byte 0x00018217
|
||||
thumb_func_end sub_803E748
|
||||
|
||||
thumb_func_start sub_803E7C8
|
||||
sub_803E7C8:
|
||||
push {r4,r5,lr}
|
||||
movs r4, 0x1F
|
||||
ldr r1, _0803E820
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r1, _0803E824
|
||||
movs r0, 0
|
||||
str r0, [r1]
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
movs r5, 0
|
||||
_0803E7E0:
|
||||
movs r0, 0x1
|
||||
adds r1, r4, 0
|
||||
bl sub_803E874
|
||||
cmp r5, 0x1F
|
||||
bgt _0803E806
|
||||
subs r4, 0x2
|
||||
cmp r4, 0
|
||||
bgt _0803E806
|
||||
movs r4, 0
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
bl sub_803EAF0
|
||||
ldr r0, _0803E828
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0803E82C
|
||||
adds r0, r1
|
||||
strb r4, [r0]
|
||||
_0803E806:
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x2B
|
||||
ble _0803E7E0
|
||||
ldr r1, _0803E820
|
||||
movs r0, 0
|
||||
strb r0, [r1]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E820: .4byte gUnknown_203B40D
|
||||
_0803E824: .4byte gUnknown_202EDC8
|
||||
_0803E828: .4byte gDungeon
|
||||
_0803E82C: .4byte 0x00018217
|
||||
thumb_func_end sub_803E7C8
|
||||
|
||||
thumb_func_start sub_803E830
|
||||
sub_803E830:
|
||||
push {r4,r5,lr}
|
||||
ldr r1, _0803E86C
|
||||
movs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r5, _0803E870
|
||||
movs r4, 0x1F
|
||||
_0803E83C:
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl sub_803E874
|
||||
movs r0, 0x5
|
||||
bl sub_803E46C
|
||||
ldr r0, [r5]
|
||||
cmp r0, 0
|
||||
ble _0803E854
|
||||
subs r0, 0x1
|
||||
str r0, [r5]
|
||||
_0803E854:
|
||||
subs r4, 0x1
|
||||
cmp r4, 0
|
||||
bge _0803E83C
|
||||
ldr r0, _0803E870
|
||||
movs r1, 0
|
||||
str r1, [r0]
|
||||
ldr r0, _0803E86C
|
||||
strb r1, [r0]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803E86C: .4byte gUnknown_203B40D
|
||||
_0803E870: .4byte gUnknown_202EDC8
|
||||
thumb_func_end sub_803E830
|
||||
|
||||
thumb_func_start sub_803E874
|
||||
sub_803E874:
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
extern u8 gUnknown_203B40C;
|
||||
extern u8 gUnknown_203B40D;
|
||||
extern u32 gUnknown_202EDC8;
|
||||
extern s32 gUnknown_202EDC8;
|
||||
extern s32 gUnknown_202EDCC;
|
||||
extern u32 gUnknown_202EDD0;
|
||||
extern s32 gUnknown_202EDD4;
|
||||
@@ -39,6 +39,8 @@ void sub_8042E5C();
|
||||
void sub_8040B60();
|
||||
void sub_8040788();
|
||||
void sub_800F7D0(Position *);
|
||||
void sub_803E874(s32, s32);
|
||||
void sub_803EAF0(s32, s32);
|
||||
|
||||
void sub_803E46C(u32 a0)
|
||||
{
|
||||
@@ -152,3 +154,89 @@ void sub_803E708(s32 a0, u32 a1)
|
||||
}
|
||||
}
|
||||
|
||||
void sub_803E724(s32 r0)
|
||||
{
|
||||
do
|
||||
{
|
||||
sub_803E46C(r0);
|
||||
} while (gRealInputs.held & 0xF0);
|
||||
}
|
||||
|
||||
void sub_803E748(void) {
|
||||
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
|
||||
index2 = 0x1F;
|
||||
gUnknown_203B40D = 1;
|
||||
gUnknown_202EDC8 = 0;
|
||||
|
||||
sub_803E874(1, 0x1F);
|
||||
|
||||
for(index1 = 0; index1 < 0x2C; index1++)
|
||||
{
|
||||
if(index1 < 0x20)
|
||||
{
|
||||
index2 -= 2;
|
||||
if(index2 <= 0)
|
||||
{
|
||||
index2 = 0;
|
||||
sub_803EAF0(1, 0);
|
||||
gDungeon->unk181e8.unk18217 = index2;
|
||||
}
|
||||
}
|
||||
if(index1 > 0xB)
|
||||
if(gUnknown_202EDC8 <= 0x1E)
|
||||
gUnknown_202EDC8++;
|
||||
sub_803E874(1, index2);
|
||||
sub_803E46C(5);
|
||||
}
|
||||
gUnknown_203B40D = 0;
|
||||
gUnknown_202EDC8 = 0x1F;
|
||||
}
|
||||
|
||||
void sub_803E7C8(void)
|
||||
{
|
||||
|
||||
s32 index1;
|
||||
s32 index2;
|
||||
|
||||
index2 = 0x1F;
|
||||
gUnknown_203B40D = 1;
|
||||
gUnknown_202EDC8 = 0;
|
||||
|
||||
sub_803E46C(5);
|
||||
|
||||
for(index1 = 0; index1 < 0x2C; index1++)
|
||||
{
|
||||
sub_803E874(1, index2);
|
||||
if(index1 < 0x20)
|
||||
{
|
||||
index2 -= 2;
|
||||
if(index2 <= 0)
|
||||
{
|
||||
index2 = 0;
|
||||
sub_803EAF0(1, 0);
|
||||
gDungeon->unk181e8.unk18217 = index2;
|
||||
}
|
||||
}
|
||||
sub_803E46C(5);
|
||||
}
|
||||
gUnknown_203B40D = 0;
|
||||
}
|
||||
|
||||
void sub_803E830(void)
|
||||
{
|
||||
s32 index;
|
||||
|
||||
gUnknown_203B40D = 1;
|
||||
for(index = 0; index < 0x20; index++)
|
||||
{
|
||||
sub_803E874(0, 0);
|
||||
sub_803E46C(5);
|
||||
if(gUnknown_202EDC8 > 0)
|
||||
gUnknown_202EDC8--;
|
||||
}
|
||||
gUnknown_202EDC8 = 0;
|
||||
gUnknown_203B40D = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user