diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2020-12-13 16:48:05 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-13 16:48:05 -0600 |
commit | 4b7009286856fea6a6727dc09169e8ba7b3eefc0 (patch) | |
tree | 77f8dbd111b582ddcc327dcda0bfb178197f14fd /src/pokemon_1.c | |
parent | c1606fc87ed78f04708bbb6ea8c61496a7764149 (diff) | |
parent | b02a392e94e05d98a6c8fa2b20bdca99861c7df8 (diff) |
Merge pull request #9 from mateon1/nonmatchings
Fix a lot of nonmatchings
Diffstat (limited to 'src/pokemon_1.c')
-rw-r--r-- | src/pokemon_1.c | 109 |
1 files changed, 7 insertions, 102 deletions
diff --git a/src/pokemon_1.c b/src/pokemon_1.c index 5a1eb88..ebb24d7 100644 --- a/src/pokemon_1.c +++ b/src/pokemon_1.c @@ -6,7 +6,7 @@ extern int sprintf(char *, const char *, ...); extern struct gPokemon *gMonsterParameters; extern struct FileArchive gUnknown_8510000; -extern const char gUnknown_8107684; +extern const char gUnknown_8107684[]; struct unkEvolve { @@ -14,35 +14,16 @@ struct unkEvolve /* 0x4 */ struct EvolveNeeds needs; }; -#ifndef NONMATCHING -NAKED -#endif -void sub_808DD48(s16 r0, struct unkEvolve *r1) +s16 sub_808DD48(s16 r0, struct unkEvolve *r1) { -#ifdef NONMATCHING struct EvolveStruct1 temp2; struct EvolveNeeds temp1; temp1 = gMonsterParameters[r0].need; - temp2 = gMonsterParameters[r0].pre; // TODO should be using r2 but it uses r0 + temp2 = gMonsterParameters[r0].pre; r1->conditions = temp2; r1->needs = temp1; -#else - asm_unified("\tlsls r0, 16\n" - "\tasrs r0, 16\n" - "\tldr r2, _0808DD64\n" - "\tldr r3, [r2]\n" - "\tlsls r2, r0, 3\n" - "\tadds r2, r0\n" - "\tlsls r2, 3\n" - "\tadds r2, r3\n" - "\tldr r3, [r2, 0x38]\n" - "\tldr r2, [r2, 0x34]\n" - "\tstr r2, [r1]\n" - "\tstr r3, [r1, 0x4]\n" - "\tbx lr\n" - "\t.align 2, 0\n" -"_0808DD64: .4byte gMonsterParameters"); -#endif + // The return value is not used anywhere, but necessary for the function to match. + return r0; } u8 sub_808DD68(s16 r0, u32 r1) @@ -60,106 +41,30 @@ u8 sub_808DD68(s16 r0, u32 r1) } } -#ifndef NONMATCHING -NAKED -#endif struct OpenedFile *sub_808DD90(s16 r0) { -#ifdef NONMATCHING // Looks like this loads the dialogue sprite for the pokemon - // Two words: register memes... else it matches - // Fix this and then one after matches too char buffer[0xC]; if(gMonsterParameters[r0].dialogue_sprites == 0) { return NULL; } - sprintf(buffer, &gUnknown_8107684); + sprintf(buffer, gUnknown_8107684, r0); // "kao%03d" return OpenFile(buffer, &gUnknown_8510000); -#else - asm_unified("\tpush {lr}\n" - "\tsub sp, 0xC\n" - "\tlsls r0, 16\n" - "\tasrs r2, r0, 16\n" - "\tldr r0, _0808DDBC\n" - "\tldr r1, [r0]\n" - "\tlsls r0, r2, 3\n" - "\tadds r0, r2\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x10]\n" - "\tcmp r0, 0\n" - "\tbeq _0808DDC8\n" - "\tldr r1, _0808DDC0\n" - "\tmov r0, sp\n" - "\tbl sprintf\n" - "\tldr r1, _0808DDC4\n" - "\tmov r0, sp\n" - "\tbl OpenFile\n" - "\tb _0808DDCA\n" - "\t.align 2, 0\n" -"_0808DDBC: .4byte gMonsterParameters\n" -"_0808DDC0: .4byte gUnknown_8107684\n" -"_0808DDC4: .4byte gUnknown_8510000\n" -"_0808DDC8:\n" - "\tmovs r0, 0\n" -"_0808DDCA:\n" - "\tadd sp, 0xC\n" - "\tpop {r1}\n" - "\tbx r1"); -#endif } -#ifndef NONMATCHING -NAKED -#endif struct OpenedFile *sub_808DDD0(s16 r0) { -#ifdef NONMATCHING // Looks like this loads the dialogue sprite for the pokemon - // Two words: register memes... else it matches char buffer[0xC]; if(gMonsterParameters[r0].dialogue_sprites == 0) { return NULL; } - sprintf(buffer, &gUnknown_8107684); + sprintf(buffer, gUnknown_8107684, r0); // "kao%03d" return OpenFileAndGetFileDataPtr(buffer, &gUnknown_8510000); -#else - asm_unified("\tpush {lr}\n" - "\tsub sp, 0xC\n" - "\tlsls r0, 16\n" - "\tasrs r2, r0, 16\n" - "\tldr r0, _0808DDFC\n" - "\tldr r1, [r0]\n" - "\tlsls r0, r2, 3\n" - "\tadds r0, r2\n" - "\tlsls r0, 3\n" - "\tadds r0, r1\n" - "\tldrh r0, [r0, 0x10]\n" - "\tcmp r0, 0\n" - "\tbeq _0808DE08\n" - "\tldr r1, _0808DE00\n" - "\tmov r0, sp\n" - "\tbl sprintf\n" - "\tldr r1, _0808DE04\n" - "\tmov r0, sp\n" - "\tbl OpenFileAndGetFileDataPtr\n" - "\tb _0808DE0A\n" - "\t.align 2, 0\n" - "_0808DDFC: .4byte gMonsterParameters\n" - "_0808DE00: .4byte gUnknown_8107684\n" - "_0808DE04: .4byte gUnknown_8510000\n" - "_0808DE08:\n" - "\tmovs r0, 0\n" - "_0808DE0A:\n" - "\tadd sp, 0xC\n" - "\tpop {r1}\n" - "\tbx r1"); - -#endif } bool8 sub_808DE10(s16 r0, s32 r1) |