summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_8012A18.s35
-rw-r--r--asm/code_8092334.s95
-rw-r--r--src/code_8092334.c24
-rw-r--r--src/save1.c75
4 files changed, 98 insertions, 131 deletions
diff --git a/asm/code_8012A18.s b/asm/code_8012A18.s
index 655d6c8..2cd92ca 100644
--- a/asm/code_8012A18.s
+++ b/asm/code_8012A18.s
@@ -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}
diff --git a/asm/code_8092334.s b/asm/code_8092334.s
index f3275fc..012f3fb 100644
--- a/asm/code_8092334.s
+++ b/asm/code_8092334.s
@@ -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}
diff --git a/src/code_8092334.c b/src/code_8092334.c
index cb9acff..88a9c5a 100644
--- a/src/code_8092334.c
+++ b/src/code_8092334.c
@@ -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;
+}
diff --git a/src/save1.c b/src/save1.c
index 1063c66..5b8ad19 100644
--- a/src/save1.c
+++ b/src/save1.c
@@ -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;
+//}