mirror of
https://github.com/pret/pmd-red.git
synced 2026-09-30 21:08:47 -05:00
InterpretColorChar
This commit is contained in:
331
asm/text.s
331
asm/text.s
@@ -7,337 +7,6 @@
|
||||
|
||||
|
||||
|
||||
thumb_func_start sub_8009488
|
||||
sub_8009488:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
lsls r1, r0, 3
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _08009514
|
||||
adds r4, r1, r0
|
||||
movs r0, 0x2
|
||||
ldrsh r1, [r4, r0]
|
||||
movs r3, 0
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r3, r0
|
||||
bge _08009506
|
||||
ldr r6, _08009518
|
||||
mov r9, r6
|
||||
ldr r0, _0800951C
|
||||
mov r8, r0
|
||||
movs r2, 0x80
|
||||
lsls r2, 4
|
||||
add r2, r8
|
||||
mov r10, r2
|
||||
_080094BA:
|
||||
movs r6, 0
|
||||
ldrsh r2, [r4, r6]
|
||||
movs r5, 0
|
||||
movs r6, 0x4
|
||||
ldrsh r0, [r4, r6]
|
||||
adds r6, r1, 0x1
|
||||
adds r7, r3, 0x1
|
||||
cmp r5, r0
|
||||
bge _080094FA
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
mov r12, r0
|
||||
lsls r2, 1
|
||||
lsls r1, 6
|
||||
mov r3, r10
|
||||
adds r0, r1, r3
|
||||
adds r3, r2, r0
|
||||
add r1, r8
|
||||
adds r2, r1
|
||||
_080094E0:
|
||||
ldrh r0, [r2]
|
||||
mov r1, r12
|
||||
ands r1, r0
|
||||
strh r1, [r2]
|
||||
mov r0, r9
|
||||
strh r0, [r3]
|
||||
adds r3, 0x2
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r5, r0
|
||||
blt _080094E0
|
||||
_080094FA:
|
||||
adds r1, r6, 0
|
||||
adds r3, r7, 0
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r3, r0
|
||||
blt _080094BA
|
||||
_08009506:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08009514: .4byte gUnknown_2027370
|
||||
_08009518: .4byte 0x0000f27a
|
||||
_0800951C: .4byte gUnknown_202B038
|
||||
thumb_func_end sub_8009488
|
||||
|
||||
thumb_func_start nullsub_172
|
||||
nullsub_172:
|
||||
bx lr
|
||||
thumb_func_end nullsub_172
|
||||
|
||||
thumb_func_start sub_8009524
|
||||
sub_8009524:
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
lsls r1, r0, 3
|
||||
adds r1, r0
|
||||
lsls r1, 3
|
||||
ldr r0, _080095BC
|
||||
adds r4, r1, r0
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
subs r1, r0, 0x1
|
||||
movs r3, 0
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
adds r0, 0x2
|
||||
cmp r3, r0
|
||||
bge _080095AE
|
||||
ldr r6, _080095C0
|
||||
mov r9, r6
|
||||
ldr r0, _080095C4
|
||||
mov r8, r0
|
||||
movs r2, 0x80
|
||||
lsls r2, 4
|
||||
add r2, r8
|
||||
mov r10, r2
|
||||
_0800955A:
|
||||
movs r6, 0
|
||||
ldrsh r0, [r4, r6]
|
||||
subs r2, r0, 0x1
|
||||
movs r5, 0
|
||||
movs r6, 0x4
|
||||
ldrsh r0, [r4, r6]
|
||||
adds r0, 0x2
|
||||
adds r6, r1, 0x1
|
||||
adds r7, r3, 0x1
|
||||
cmp r5, r0
|
||||
bge _080095A0
|
||||
movs r0, 0xFC
|
||||
lsls r0, 8
|
||||
mov r12, r0
|
||||
lsls r2, 1
|
||||
lsls r1, 6
|
||||
mov r3, r10
|
||||
adds r0, r1, r3
|
||||
adds r3, r2, r0
|
||||
add r1, r8
|
||||
adds r2, r1
|
||||
_08009584:
|
||||
ldrh r0, [r2]
|
||||
mov r1, r12
|
||||
ands r1, r0
|
||||
strh r1, [r2]
|
||||
mov r0, r9
|
||||
strh r0, [r3]
|
||||
adds r3, 0x2
|
||||
adds r2, 0x2
|
||||
adds r5, 0x1
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
adds r0, 0x2
|
||||
cmp r5, r0
|
||||
blt _08009584
|
||||
_080095A0:
|
||||
adds r1, r6, 0
|
||||
adds r3, r7, 0
|
||||
movs r2, 0x6
|
||||
ldrsh r0, [r4, r2]
|
||||
adds r0, 0x2
|
||||
cmp r3, r0
|
||||
blt _0800955A
|
||||
_080095AE:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080095BC: .4byte gUnknown_2027370
|
||||
_080095C0: .4byte 0x0000f27a
|
||||
_080095C4: .4byte gUnknown_202B038
|
||||
thumb_func_end sub_8009524
|
||||
|
||||
thumb_func_start nullsub_173
|
||||
nullsub_173:
|
||||
bx lr
|
||||
thumb_func_end nullsub_173
|
||||
|
||||
thumb_func_start sub_80095CC
|
||||
sub_80095CC:
|
||||
ldr r2, _080095D8
|
||||
str r0, [r2]
|
||||
ldr r0, _080095DC
|
||||
str r1, [r0]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_080095D8: .4byte gUnknown_202B020
|
||||
_080095DC: .4byte gUnknown_202B024
|
||||
thumb_func_end sub_80095CC
|
||||
|
||||
thumb_func_start nullsub_174
|
||||
nullsub_174:
|
||||
bx lr
|
||||
thumb_func_end nullsub_174
|
||||
|
||||
@ https://decomp.me/scratch/A63Io
|
||||
thumb_func_start sub_80095E4
|
||||
sub_80095E4:
|
||||
push {lr}
|
||||
cmp r1, 0
|
||||
bne _080095EC
|
||||
movs r1, 0xA
|
||||
_080095EC:
|
||||
muls r1, r0
|
||||
movs r0, 0x7
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08009604
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _080095FE
|
||||
adds r0, r1, 0x7
|
||||
_080095FE:
|
||||
asrs r0, 3
|
||||
adds r0, 0x1
|
||||
b _0800960E
|
||||
_08009604:
|
||||
adds r0, r1, 0
|
||||
cmp r0, 0
|
||||
bge _0800960C
|
||||
adds r0, 0x7
|
||||
_0800960C:
|
||||
asrs r0, 3
|
||||
_0800960E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80095E4
|
||||
|
||||
thumb_func_start sub_8009614
|
||||
sub_8009614:
|
||||
push {lr}
|
||||
muls r1, r0
|
||||
movs r0, 0x7
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0800962E
|
||||
adds r0, r1, 0
|
||||
cmp r1, 0
|
||||
bge _08009628
|
||||
adds r0, r1, 0x7
|
||||
_08009628:
|
||||
asrs r0, 3
|
||||
adds r0, 0x1
|
||||
b _08009638
|
||||
_0800962E:
|
||||
adds r0, r1, 0
|
||||
cmp r0, 0
|
||||
bge _08009636
|
||||
adds r0, 0x7
|
||||
_08009636:
|
||||
asrs r0, 3
|
||||
_08009638:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8009614
|
||||
|
||||
thumb_func_start InterpretColorChar
|
||||
InterpretColorChar:
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
adds r2, r0, 0
|
||||
cmp r0, 0xF
|
||||
bls _080096DA
|
||||
adds r1, r0, 0
|
||||
subs r1, 0x30
|
||||
lsls r0, r1, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0xF
|
||||
bhi _08009658
|
||||
adds r0, r1, 0
|
||||
b _080096DA
|
||||
_08009658:
|
||||
adds r0, r2, 0
|
||||
subs r0, 0x43
|
||||
cmp r0, 0x14
|
||||
bhi _080096D8
|
||||
lsls r0, 2
|
||||
ldr r1, _0800966C
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0800966C: .4byte _08009670
|
||||
.align 2, 0
|
||||
_08009670:
|
||||
.4byte _080096D0
|
||||
.4byte _080096D0
|
||||
.4byte _080096C8
|
||||
.4byte _080096D8
|
||||
.4byte _080096CC
|
||||
.4byte _080096C4
|
||||
.4byte _080096C4
|
||||
.4byte _080096D8
|
||||
.4byte _080096D8
|
||||
.4byte _080096D8
|
||||
.4byte _080096CC
|
||||
.4byte _080096D0
|
||||
.4byte _080096D8
|
||||
.4byte _080096D8
|
||||
.4byte _080096D8
|
||||
.4byte _080096D8
|
||||
.4byte _080096C8
|
||||
.4byte _080096C8
|
||||
.4byte _080096D8
|
||||
.4byte _080096D8
|
||||
.4byte _080096D4
|
||||
_080096C4:
|
||||
movs r0, 0x4
|
||||
b _080096DA
|
||||
_080096C8:
|
||||
movs r0, 0xF
|
||||
b _080096DA
|
||||
_080096CC:
|
||||
movs r0, 0x5
|
||||
b _080096DA
|
||||
_080096D0:
|
||||
movs r0, 0x6
|
||||
b _080096DA
|
||||
_080096D4:
|
||||
movs r0, 0x2
|
||||
b _080096DA
|
||||
_080096D8:
|
||||
movs r0, 0x7
|
||||
_080096DA:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end InterpretColorChar
|
||||
|
||||
thumb_func_start InitGraphics
|
||||
InitGraphics:
|
||||
push {r4-r6,lr}
|
||||
|
||||
104
src/text2.c
104
src/text2.c
@@ -3531,7 +3531,7 @@ UNUSED s32 sub_80091A8(s32 a0)
|
||||
extern u8 gUnknown_202749A[];
|
||||
extern u8 gUnknown_20274A6[];
|
||||
|
||||
s32 InterpretColorChar(s32 a0);
|
||||
s32 InterpretColorChar(u8 a0);
|
||||
|
||||
#ifdef NONMATCHING
|
||||
// https://decomp.me/scratch/AJ2km
|
||||
@@ -3965,3 +3965,105 @@ void sub_8009408(s32 from, s32 to)
|
||||
gUnknown_20274A5 = 1;
|
||||
}
|
||||
|
||||
UNUSED void sub_8009488(s32 strArrId)
|
||||
{
|
||||
s32 i, j;
|
||||
s32 id0, id1;
|
||||
UnkTextStruct1 *strPtr = &gUnknown_2027370[strArrId];
|
||||
|
||||
id0 = strPtr->unk2;
|
||||
for (i = 0; i < strPtr->unk6; i++) {
|
||||
id1 = strPtr->unk0;
|
||||
for (j = 0; j < strPtr->unk4; j++) {
|
||||
gUnknown_202B038[0][id0][id1] &= 0xFC00;
|
||||
gUnknown_202B038[1][id0][id1] = 0xF27A;
|
||||
id1++;
|
||||
}
|
||||
id0++;
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED void nullsub_172(void) {}
|
||||
|
||||
void sub_8009524(s32 strArrId)
|
||||
{
|
||||
s32 i, j;
|
||||
UnkTextStruct1 *strPtr = &gUnknown_2027370[strArrId];
|
||||
s32 id0 = strPtr->unk2 - 1;
|
||||
|
||||
for (i = 0; i < strPtr->unk6 + 2; i++) {
|
||||
s32 id1 = strPtr->unk0 - 1;
|
||||
for (j = 0; j < strPtr->unk4 + 2; j++) {
|
||||
gUnknown_202B038[0][id0][id1] &= 0xFC00;
|
||||
gUnknown_202B038[1][id0][id1] = 0xF27A;
|
||||
id1++;
|
||||
}
|
||||
id0++;
|
||||
}
|
||||
}
|
||||
|
||||
UNUSED void nullsub_173(void) {}
|
||||
|
||||
void sub_80095CC(s32 a0, s32 a1)
|
||||
{
|
||||
gUnknown_202B020 = a0;
|
||||
gUnknown_202B024 = a1;
|
||||
}
|
||||
|
||||
UNUSED void nullsub_174(void) {}
|
||||
|
||||
s32 sub_80095E4(s32 a0, s32 a1)
|
||||
{
|
||||
s32 r1;
|
||||
|
||||
if (a1 == 0)
|
||||
a1 = 10;
|
||||
r1 = a0 * a1;
|
||||
|
||||
if ((r1 % 8) != 0)
|
||||
return (r1 / 8) + 1;
|
||||
else
|
||||
return r1 / 8;
|
||||
}
|
||||
|
||||
// Same as sub_80095E4 except it doesn't check for a1 == 0
|
||||
s32 sub_8009614(s32 a0, s32 a1)
|
||||
{
|
||||
s32 r1;
|
||||
|
||||
r1 = a0 * a1;
|
||||
|
||||
if ((r1 % 8) != 0)
|
||||
return (r1 / 8) + 1;
|
||||
else
|
||||
return r1 / 8;
|
||||
}
|
||||
|
||||
s32 InterpretColorChar(u8 a0)
|
||||
{
|
||||
if (a0 < 16)
|
||||
return a0;
|
||||
if (a0 >= 48 && a0 <= 63)
|
||||
return a0 - 48;
|
||||
|
||||
switch (a0) {
|
||||
case 72:
|
||||
case 73:
|
||||
return 4;
|
||||
case 69:
|
||||
case 83:
|
||||
case 84:
|
||||
return 15;
|
||||
case 71:
|
||||
case 77:
|
||||
return 5;
|
||||
case 67:
|
||||
case 68:
|
||||
case 78:
|
||||
return 6;
|
||||
case 87:
|
||||
return 2;
|
||||
|
||||
}
|
||||
return 7;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user