diff options
-rw-r--r-- | asm/code_80118A4.s | 32 | ||||
-rw-r--r-- | asm/code_80521D0.s | 23 | ||||
-rw-r--r-- | src/code_80118A4.c | 62 | ||||
-rw-r--r-- | src/pokemon.c | 17 |
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; } + |