diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-09-01 13:54:16 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-01 13:54:16 -0400 |
commit | 4412f9f6979fd9fbdcab58b1a96799f2f557b02c (patch) | |
tree | 32883aaf23c727f3d27a8960b8a1498d5fb7d1a6 /src/unk_text_8095904.c | |
parent | 69ce45f71f49c859ca7adc07902842503c07d405 (diff) | |
parent | 403b8546684d4a8074220d27aa32471ec546abf0 (diff) |
Merge pull request #800 from PokeCodec/matchRubyTime
Match more functions
Diffstat (limited to 'src/unk_text_8095904.c')
-rw-r--r-- | src/unk_text_8095904.c | 208 |
1 files changed, 20 insertions, 188 deletions
diff --git a/src/unk_text_8095904.c b/src/unk_text_8095904.c index b619cbbe4..6d79b2586 100644 --- a/src/unk_text_8095904.c +++ b/src/unk_text_8095904.c @@ -11,18 +11,17 @@ extern const u32 gFont3LatinGlyphs[]; // text - -// some CSE stuff + register swaps (possibly DUE to CSE) -#ifdef NONMATCHING void sub_8095904(const u8 *src, u8 *dest, u8 bgOverride, u16 width, u8 bg, u8 *buffer) { - u16 strlen = StringLength(src); + const u8 *glyphs; + u16 i, strlen = StringLength(src); + if (bgOverride == 0) { - u16 i; for (i = 0; i < strlen; i++) { - const u8 *glyphs = (const u8 *)(gFont3LatinGlyphs + ((src[i] & 0xfff0) * 16) + ((src[i] & 0xf) * 8)); + glyphs = (const u8 *)((u32)(gFont3LatinGlyphs) + + (u32)((src[i] & 0xfff0) * 0x40 + (src[i] & 0xf) * 0x20)); CpuCopy16(glyphs, dest, 32); CpuCopy16(glyphs + 0x200, dest + width, 32); dest += 32; @@ -30,22 +29,23 @@ void sub_8095904(const u8 *src, u8 *dest, u8 bgOverride, u16 width, u8 bg, u8 *b } else { - u16 i; // sp18 - u16 r9 = 0; - u8 bgHi = bg << 4; - u16 size = strlen * 32; - for (i = 0; i < 2; i++) + u8 bgHi, r3, r2; + u16 size, j, r9, k; + k = 0; + bgHi = bg << 4; + size = strlen * 32; + for (j = 0; j < 2; j++) { - u16 j; - for (j = 0; j < strlen; j++) // r5 + for (i = 0; i < strlen; i++) // r5 { - const u32 *glyphs = (const u32 *)(gFont3LatinGlyphs + (i * 0x80) + ((src[j] & 0xfff0) * 16) + ((src[j] & 0xf) * 8)); + glyphs = (const u8 *)((u32)(gFont3LatinGlyphs) + + (u32)((src[i] & 0xfff0) * 0x40 + (src[i] & 0xf) * 0x20)) + + (j * 0x200); - u16 k; // r6 - for (k = 0; k < 32; k++) + for (r9 = 0; r9 < 32; r9++) { - u8 r3 = *glyphs & 0xf0; - u8 r2 = *glyphs & 0x0f; + r3 = *glyphs & 0xf0; + r2 = *glyphs & 0x0f; if (r3 == 0) { r3 = bgHi; @@ -54,184 +54,16 @@ void sub_8095904(const u8 *src, u8 *dest, u8 bgOverride, u16 width, u8 bg, u8 *b { r2 = bg; } - buffer[r9++] = r3 | r2; + buffer[k++] = r3 | r2; glyphs++; } } CpuCopy16(buffer, dest, size); dest += width; - r9 = 0; + k = 0; } } } -#else -NAKED void sub_8095904(const u8 *src, u8 *dest, u8 bgOverride, u16 width, u8 bg, u8 *buffer) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x1C\n" - "\tstr r0, [sp]\n" - "\tadds r7, r1, 0\n" - "\tadds r4, r2, 0\n" - "\tldr r0, [sp, 0x3C]\n" - "\tlsls r4, 24\n" - "\tlsrs r4, 24\n" - "\tlsls r3, 16\n" - "\tlsrs r3, 16\n" - "\tstr r3, [sp, 0x4]\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tstr r0, [sp, 0x8]\n" - "\tldr r0, [sp]\n" - "\tbl StringLength\n" - "\tlsls r0, 16\n" - "\tlsrs r0, 16\n" - "\tmov r8, r0\n" - "\tcmp r4, 0\n" - "\tbne _08095988\n" - "\tmovs r5, 0\n" - "\tcmp r5, r8\n" - "\tbcs _08095A2E\n" - "_0809593E:\n" - "\tldr r1, [sp]\n" - "\tadds r0, r1, r5\n" - "\tldrb r2, [r0]\n" - "\tldr r0, _08095980 @ =0x0000fff0\n" - "\tands r0, r2\n" - "\tlsls r0, 6\n" - "\tmovs r1, 0xF\n" - "\tands r2, r1\n" - "\tlsls r2, 5\n" - "\tadds r0, r2\n" - "\tldr r1, _08095984 @ =gFont3LatinGlyphs\n" - "\tadds r4, r0, r1\n" - "\tadds r0, r4, 0\n" - "\tadds r1, r7, 0\n" - "\tmovs r2, 0x10\n" - "\tbl CpuSet\n" - "\tmovs r2, 0x80\n" - "\tlsls r2, 2\n" - "\tadds r0, r4, r2\n" - "\tldr r3, [sp, 0x4]\n" - "\tadds r1, r7, r3\n" - "\tmovs r2, 0x10\n" - "\tbl CpuSet\n" - "\tadds r7, 0x20\n" - "\tadds r0, r5, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r5, r0, 16\n" - "\tcmp r5, r8\n" - "\tbcc _0809593E\n" - "\tb _08095A2E\n" - "\t.align 2, 0\n" - "_08095980: .4byte 0x0000fff0\n" - "_08095984: .4byte gFont3LatinGlyphs\n" - "_08095988:\n" - "\tmovs r0, 0\n" - "\tmov r9, r0\n" - "\tldr r1, [sp, 0x8]\n" - "\tlsls r0, r1, 28\n" - "\tlsrs r0, 24\n" - "\tstr r0, [sp, 0xC]\n" - "\tmov r2, r8\n" - "\tlsls r0, r2, 21\n" - "\tmovs r1, 0\n" - "\tlsrs r0, 1\n" - "\tstr r0, [sp, 0x10]\n" - "_0809599E:\n" - "\tmovs r5, 0\n" - "\tldr r3, [sp, 0x4]\n" - "\tadds r3, r7, r3\n" - "\tstr r3, [sp, 0x14]\n" - "\tadds r0, r1, 0x1\n" - "\tstr r0, [sp, 0x18]\n" - "\tcmp r5, r8\n" - "\tbcs _08095A12\n" - "\tmovs r2, 0xF\n" - "\tmov r12, r2\n" - "\tlsls r1, 9\n" - "\tldr r0, _08095A40 @ =gFont3LatinGlyphs\n" - "\tadds r1, r0\n" - "\tmov r10, r1\n" - "_080959BA:\n" - "\tldr r3, [sp]\n" - "\tadds r0, r3, r5\n" - "\tldrb r1, [r0]\n" - "\tldr r0, _08095A44 @ =0x0000fff0\n" - "\tands r0, r1\n" - "\tlsls r0, 6\n" - "\tmov r2, r12\n" - "\tands r1, r2\n" - "\tlsls r1, 5\n" - "\tadds r0, r1\n" - "\tmov r3, r10\n" - "\tadds r4, r0, r3\n" - "\tmovs r6, 0\n" - "\tadds r5, 0x1\n" - "_080959D6:\n" - "\tldrb r0, [r4]\n" - "\tmovs r3, 0xF0\n" - "\tands r3, r0\n" - "\tmov r2, r12\n" - "\tands r2, r0\n" - "\tcmp r3, 0\n" - "\tbne _080959E6\n" - "\tldr r3, [sp, 0xC]\n" - "_080959E6:\n" - "\tcmp r2, 0\n" - "\tbne _080959EC\n" - "\tldr r2, [sp, 0x8]\n" - "_080959EC:\n" - "\tmov r0, r9\n" - "\tadds r1, r0, 0x1\n" - "\tlsls r1, 16\n" - "\tlsrs r1, 16\n" - "\tmov r9, r1\n" - "\tldr r1, [sp, 0x40]\n" - "\tadds r0, r1, r0\n" - "\torrs r3, r2\n" - "\tstrb r3, [r0]\n" - "\tadds r4, 0x1\n" - "\tadds r0, r6, 0x1\n" - "\tlsls r0, 16\n" - "\tlsrs r6, r0, 16\n" - "\tcmp r6, 0x1F\n" - "\tbls _080959D6\n" - "\tlsls r0, r5, 16\n" - "\tlsrs r5, r0, 16\n" - "\tcmp r5, r8\n" - "\tbcc _080959BA\n" - "_08095A12:\n" - "\tldr r0, [sp, 0x40]\n" - "\tadds r1, r7, 0\n" - "\tldr r3, [sp, 0x10]\n" - "\tlsrs r2, r3, 16\n" - "\tbl CpuSet\n" - "\tldr r7, [sp, 0x14]\n" - "\tmovs r0, 0\n" - "\tmov r9, r0\n" - "\tldr r1, [sp, 0x18]\n" - "\tlsls r0, r1, 16\n" - "\tlsrs r1, r0, 16\n" - "\tcmp r1, 0x1\n" - "\tbls _0809599E\n" - "_08095A2E:\n" - "\tadd sp, 0x1C\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" - "_08095A40: .4byte gFont3LatinGlyphs\n" - "_08095A44: .4byte 0x0000fff0"); -} -#endif void unref_sub_8095A48(const u8 *src, u8 *dest, u8 bgOverride, u8 width, u8 *buffer) { |