summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_80118A4.s32
-rw-r--r--asm/code_80521D0.s23
-rw-r--r--src/code_80118A4.c62
-rw-r--r--src/pokemon.c17
4 files changed, 79 insertions, 55 deletions
diff --git a/asm/code_80118A4.s b/asm/code_80118A4.s
index 1969c48..4fbfa06 100644
--- a/asm/code_80118A4.s
+++ b/asm/code_80118A4.s
@@ -5,38 +5,6 @@
.text
- @ Unused
- thumb_func_start PrintFuncFileLineOrNotEntry
-PrintFuncFileLineOrNotEntry:
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, r1, 0
- cmp r0, 0
- beq _08011A90
- ldr r1, _08011A8C
- ldr r2, [r0, 0x8]
- ldr r3, [r0]
- ldr r0, [r0, 0x4]
- str r0, [sp]
- adds r0, r4, 0
- bl sprintf
- b _08011A98
- .align 2, 0
-_08011A8C: .4byte gUnknown_80D418C
-_08011A90:
- ldr r1, _08011AA0
- adds r0, r4, 0
- bl sprintf
-_08011A98:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08011AA0: .4byte gNotEntryText
- thumb_func_end PrintFuncFileLineOrNotEntry
-
thumb_func_start PrintFuncFileLine
PrintFuncFileLine:
push {r4,r5,lr}
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index c7b0327..d6930c2 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -116336,27 +116336,4 @@ _0808CD94: .4byte sub_8086A3C
_0808CD98: .4byte gUnknown_202E038
thumb_func_end sub_808CD44
- thumb_func_start sub_808CD9C
-sub_808CD9C:
- push {lr}
- bl sub_8086448
- ldr r0, _0808CDAC
- bl sub_80866C4
- pop {r0}
- bx r0
- .align 2, 0
-_0808CDAC: .4byte gUnknown_810697C
- thumb_func_end sub_808CD9C
-
- thumb_func_start sub_808CDB0
-sub_808CDB0:
- lsls r0, 24
- lsrs r0, 21
- ldr r1, _0808CDBC
- adds r0, r1
- bx lr
- .align 2, 0
-_0808CDBC: .4byte gUnknown_8107544
- thumb_func_end sub_808CDB0
-
.align 2,0 @ Don't pad with nop
diff --git a/src/code_80118A4.c b/src/code_80118A4.c
index c809bdb..aedcb2e 100644
--- a/src/code_80118A4.c
+++ b/src/code_80118A4.c
@@ -25,18 +25,31 @@ extern void nullsub_31(void);
extern void nullsub_32(void);
extern void nullsub_28(void);
+extern int sprintf(char *, const char *, ...);
+
struct UnkStructType
{
/* 0x0 */ s16 unk0;
};
+
+struct unkFileStruct
+{
+ u32 unk0;
+ u32 unk4;
+ u32 unk8;
+};
+
+
extern u16 gUnknown_80D4144[];
extern struct UnkStructType gUnknown_202DE20;
extern struct UnkStructType gUnknown_202DE22;
extern struct UnkStructType gUnknown_202DE24;
extern u32 gUnknown_202DE1C;
extern u32 gUnknown_203B14C;
+extern const char gNotEntryText;
+extern const char gUnknown_80D418C;
void sub_8011760(void)
{
@@ -281,3 +294,52 @@ void nullsub_25(void)
void nullsub_26(void)
{
}
+
+#ifndef NONMATCHING
+NAKED
+#endif
+// Unused
+void PrintFuncFileLineOrNotEntry(char * r0, struct unkFileStruct *r1)
+{
+#ifdef NONMATCHING
+ u32 temp;
+ if(r1 != 0)
+ {
+ // TODO fix regswap here.. otherwise looks good
+ temp = r1->unk4;
+ sprintf(r0, &gUnknown_80D418C, r1->unk8, r1->unk0, temp);
+ }
+ else
+ {
+ sprintf(r0, &gNotEntryText);
+ }
+#else
+ asm_unified("\tpush {r4,lr}\n"
+ "\tsub sp, 0x4\n"
+ "\tadds r4, r0, 0\n"
+ "\tadds r0, r1, 0\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _08011A90\n"
+ "\tldr r1, _08011A8C\n"
+ "\tldr r2, [r0, 0x8]\n"
+ "\tldr r3, [r0]\n"
+ "\tldr r0, [r0, 0x4]\n"
+ "\tstr r0, [sp]\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sprintf\n"
+ "\tb _08011A98\n"
+ "\t.align 2, 0\n"
+"_08011A8C: .4byte gUnknown_80D418C\n"
+"_08011A90:\n"
+ "\tldr r1, _08011AA0\n"
+ "\tadds r0, r4, 0\n"
+ "\tbl sprintf\n"
+"_08011A98:\n"
+ "\tadd sp, 0x4\n"
+ "\tpop {r4}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.align 2, 0\n"
+"_08011AA0: .4byte gNotEntryText");
+#endif
+}
diff --git a/src/pokemon.c b/src/pokemon.c
index 55316d6..454751e 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -10,6 +10,22 @@ extern struct OpenedFile *gMonsterParametersFile;
extern u16 gUnknown_20384E8;
extern struct gPokemon gMonsterParameters;
+extern u64 gUnknown_8107544[];
+extern u32 gUnknown_810697C;
+extern void sub_8086448();
+extern void sub_80866C4(u32 *r0);
+
+void sub_808CD9C(u8 r0)
+{
+ sub_8086448();
+ sub_80866C4(&gUnknown_810697C);
+}
+
+u64 *sub_808CDB0(u8 r0)
+{
+ return &gUnknown_8107544[r0];
+}
+
void LoadMonsterParameters(void)
{
gUnknown_203B45C = &gUnknown_202F400;
@@ -24,3 +40,4 @@ u32 *sub_808CE00(void)
return &gUnknown_202F400;
}
+