more decomping

This commit is contained in:
Seth Barberee 2020-09-26 18:30:40 -05:00
parent fdc874029e
commit 93ed788787
4 changed files with 98 additions and 131 deletions

View File

@ -5,41 +5,6 @@
.text
thumb_func_start sub_8012A64
sub_8012A64:
push {r4,lr}
adds r4, r0, 0
cmp r4, 0
beq _08012A94
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08012A7A
adds r0, r4, 0
bl nullsub_34
_08012A7A:
ldrb r1, [r4, 0x1]
cmp r1, 0
beq _08012A88
movs r0, 0
strb r0, [r4, 0x1]
movs r0, 0x1
b _08012A98
_08012A88:
ldrb r0, [r4, 0x2]
cmp r0, 0
beq _08012A94
strb r1, [r4, 0x2]
movs r0, 0x2
b _08012A98
_08012A94:
bl sub_8012AE8
_08012A98:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8012A64
thumb_func_start GetKeyPress
GetKeyPress:
push {lr}

View File

@ -5,101 +5,6 @@
.text
@ thumb_func_start sub_8092334
@sub_8092334:
@ lsls r0, 24
@ ldr r1, _08092340
@ lsrs r0, 22
@ adds r0, r1
@ ldr r0, [r0]
@ bx lr
@ .align 2, 0
@_08092340: .4byte gUnknown_810AD4C
@ thumb_func_end sub_8092334
@ thumb_func_start sub_8092344
@sub_8092344:
@ lsls r0, 24
@ ldr r1, _08092350
@ lsrs r0, 22
@ adds r0, r1
@ ldr r0, [r0]
@ bx lr
@ .align 2, 0
@_08092350: .4byte gUnknown_810AE24
@ thumb_func_end sub_8092344
@ thumb_func_start sub_8092354
@sub_8092354:
@ lsls r0, 24
@ lsrs r0, 24
@ ldr r1, _08092360
@ adds r0, r1
@ ldrb r0, [r0]
@ bx lr
@ .align 2, 0
@_08092360: .4byte gUnknown_810AC7C
@ thumb_func_end sub_8092354
@ thumb_func_start sub_8092364
@sub_8092364:
@ lsls r0, 24
@ lsrs r0, 24
@ ldr r1, _08092370
@ adds r0, r1
@ ldrb r0, [r0]
@ bx lr
@ .align 2, 0
@_08092370: .4byte gUnknown_810AC6A
@ thumb_func_end sub_8092364
thumb_func_start sub_8092374
sub_8092374:
push {lr}
lsls r1, 24
ldr r2, _0809238C
lsrs r1, 22
adds r1, r2
ldr r1, [r1]
movs r2, 0x50
bl strncpy
pop {r0}
bx r0
.align 2, 0
_0809238C: .4byte gUnknown_810B4C8
thumb_func_end sub_8092374
thumb_func_start sub_8092390
sub_8092390:
lsls r0, 24
ldr r1, _0809239C
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
bx lr
.align 2, 0
_0809239C: .4byte gUnknown_810B988
thumb_func_end sub_8092390
thumb_func_start sub_80923A0
sub_80923A0:
ldr r1, _080923A8
ldr r0, _080923AC
str r0, [r1]
bx lr
.align 2, 0
_080923A8: .4byte gUnknown_203B468
_080923AC: .4byte gUnknown_2038C28
thumb_func_end sub_80923A0
thumb_func_start sub_80923B0
sub_80923B0:
ldr r0, _080923B4
bx lr
.align 2, 0
_080923B4: .4byte gUnknown_2038C28
thumb_func_end sub_80923B0
thumb_func_start sub_80923B8
sub_80923B8:
push {lr}

View File

@ -4,6 +4,10 @@ extern u32 gUnformattedTypeStrings[]; // unformatted type names
extern u32 gFormattedTypeStrings[]; // formatted type names
extern u8 gUnknown_810AC7C[];
extern u8 gUnknown_810AC6A[];
extern u8 *gUnknown_810B4C8[];
extern u8 *gUnknown_810B988[];
extern u32 gUnknown_2038C28;
extern u32 *gUnknown_203B468;
u32 GetUnformattedTypeString(u8 type)
{
@ -24,3 +28,23 @@ u8 sub_8092364(u8 r0)
{
return gUnknown_810AC6A[r0];
}
void sub_8092374(char *r0, u8 r1)
{
strncpy(r0, gUnknown_810B4C8[r1], 0x50);
}
u8 *sub_8092390(u8 r0)
{
return gUnknown_810B988[r0];
}
void sub_80923A0(void)
{
gUnknown_203B468 = &gUnknown_2038C28;
}
u32 *sub_80923B0(void)
{
return &gUnknown_2038C28;
}

View File

@ -9,6 +9,28 @@ struct UnkSaveStruct1
/* 0xA */ u8 unkA;
};
struct UnkStruct
{
/* 0x0 */ u8 unk0;
/* 0x1 */ u8 unk1;
/* 0x2 */ u8 unk2;
/* 0x3 */ u8 unk3;
/* 0x4 */ u8 unk4;
/* 0x5 */ u32 unk5;
/* 0x9 */ u32 unk9;
/* 0xD */ u32 unkD;
/* 0x12 */ u32 unk11;
/* 0x16 */ u32 unk15;
/* 0x1A */ u32 unk19;
/* 0x1E */ u32 unk1D;
/* 0x24 */ u32 unk24;
/* 0x28 */ u8 unk28;
/* 0x29 */ u8 unk29;
/* 0x2A */ u8 unk2A;
/* 0x2B */ u8 unk2B;
/* 0x2C */ u8 unk2C;
};
extern void MemoryFree(void *);
extern void sub_8011860();
extern void xxx_draw_string_80144C4();
@ -24,7 +46,8 @@ extern void xxx_call_update_bg_vram();
extern void sub_8009908();
extern void xxx_call_update_bg_sound_input();
extern void ResetSprites(u8 r0);
extern u32 sub_8012AE8(void);
extern void nullsub_34(struct UnkStruct *r0);
extern struct UnkSaveStruct1 *gUnknown_203B46C;
@ -55,3 +78,53 @@ void sub_8012A18()
xxx_call_update_bg_sound_input();
ResetSprites(0);
}
u32 sub_8012A64(struct UnkStruct *r0, u32 r1)
{
if(r0 == NULL)
{
return sub_8012AE8();
}
if(r1 != -1)
{
nullsub_34(r0);
}
if(r0->unk1 != 0)
{
r0->unk1 = 0;
return 1;
}
if(r0->unk2 == 0)
{
return sub_8012AE8();
}
r0->unk2 = r0->unk1;
return 2;
}
// TODO match that one line
//u32 GetKeyPress(struct UnkStruct *r0)
//{
// if(r0 == NULL)
// {
// return sub_8012AE8();
// }
// // TODO it's not a struct access..
// if(r0->unk29 != 0)
// {
// return 1;
// }
// if(r0->unk2A != 0)
// {
// return 2;
// }
// if(r0->unk2C != 0)
// {
// return 9;
// }
// if(r0->unk2B == 0)
// {
// return sub_8012AE8();
// }
// return 0xA;
//}