summaryrefslogtreecommitdiff
path: root/src/unk_text_8095904.c
diff options
context:
space:
mode:
authorGriffinR <griffin.g.richards@gmail.com>2020-09-01 13:54:16 -0400
committerGitHub <noreply@github.com>2020-09-01 13:54:16 -0400
commit4412f9f6979fd9fbdcab58b1a96799f2f557b02c (patch)
tree32883aaf23c727f3d27a8960b8a1498d5fb7d1a6 /src/unk_text_8095904.c
parent69ce45f71f49c859ca7adc07902842503c07d405 (diff)
parent403b8546684d4a8074220d27aa32471ec546abf0 (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.c208
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)
{