mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-04 09:45:02 -05:00
Match sub_80069CC
This commit is contained in:
parent
e83709c20e
commit
e31da7df5c
128
asm/text.s
128
asm/text.s
|
|
@ -5,134 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80069CC
|
||||
sub_80069CC:
|
||||
push {r4-r6,lr}
|
||||
adds r6, r0, 0
|
||||
adds r4, r1, 0
|
||||
adds r5, r3, 0
|
||||
ldr r3, [sp, 0x10]
|
||||
cmp r2, 0x1C
|
||||
bgt _08006ABA
|
||||
cmp r2, 0
|
||||
blt _08006ABA
|
||||
ldr r0, [r6, 0xC]
|
||||
cmp r0, 0x7
|
||||
bhi _08006ABA
|
||||
lsls r0, 2
|
||||
ldr r1, _080069F0
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080069F0: .4byte _080069F4
|
||||
.align 2, 0
|
||||
_080069F4:
|
||||
.4byte _08006A14
|
||||
.4byte _08006ABA
|
||||
.4byte _08006ABA
|
||||
.4byte _08006A60
|
||||
.4byte _08006A7C
|
||||
.4byte _08006A9C
|
||||
.4byte _08006A60
|
||||
.4byte _08006AAC
|
||||
_08006A14:
|
||||
cmp r5, 0
|
||||
bne _08006A34
|
||||
lsls r1, r4, 1
|
||||
lsls r0, r2, 6
|
||||
adds r0, r3
|
||||
adds r1, r0
|
||||
ldr r2, _08006A30
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
adds r2, 0x44
|
||||
b _08006A92
|
||||
.align 2, 0
|
||||
_08006A30: .4byte 0x0000f297
|
||||
_08006A34:
|
||||
movs r1, 0x6
|
||||
ldrsh r0, [r6, r1]
|
||||
subs r0, 0x1
|
||||
cmp r5, r0
|
||||
bne _08006A60
|
||||
lsls r1, r4, 1
|
||||
lsls r0, r2, 6
|
||||
adds r0, r3
|
||||
adds r1, r0
|
||||
ldr r2, _08006A58
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
ldr r2, _08006A5C
|
||||
b _08006A92
|
||||
.align 2, 0
|
||||
_08006A58: .4byte 0x0000fa97
|
||||
_08006A5C: .4byte 0x0000f2db
|
||||
_08006A60:
|
||||
lsls r1, r4, 1
|
||||
lsls r0, r2, 6
|
||||
adds r0, r3
|
||||
adds r1, r0
|
||||
ldr r2, _08006A78
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
adds r2, 0x1
|
||||
b _08006A92
|
||||
.align 2, 0
|
||||
_08006A78: .4byte 0x0000f2da
|
||||
_08006A7C:
|
||||
lsls r1, r4, 1
|
||||
lsls r0, r2, 6
|
||||
adds r0, r3
|
||||
adds r1, r0
|
||||
ldr r2, _08006A98
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
movs r0, 0x80
|
||||
lsls r0, 4
|
||||
adds r1, r0
|
||||
subs r2, 0xF
|
||||
_08006A92:
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
b _08006ABA
|
||||
.align 2, 0
|
||||
_08006A98: .4byte 0x0000f2ea
|
||||
_08006A9C:
|
||||
lsls r0, r4, 1
|
||||
lsls r1, r2, 6
|
||||
adds r1, r3
|
||||
adds r0, r1
|
||||
ldr r2, _08006AA8
|
||||
b _08006AB6
|
||||
.align 2, 0
|
||||
_08006AA8: .4byte 0x0000f2de
|
||||
_08006AAC:
|
||||
lsls r0, r4, 1
|
||||
lsls r1, r2, 6
|
||||
adds r1, r3
|
||||
adds r0, r1
|
||||
ldr r2, _08006AC0
|
||||
_08006AB6:
|
||||
adds r1, r2, 0
|
||||
strh r1, [r0]
|
||||
_08006ABA:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08006AC0: .4byte 0x0000f2b6
|
||||
thumb_func_end sub_80069CC
|
||||
|
||||
thumb_func_start sub_8006AC4
|
||||
sub_8006AC4:
|
||||
push {r4,r5,lr}
|
||||
|
|
|
|||
47
src/text2.c
47
src/text2.c
|
|
@ -6,14 +6,15 @@
|
|||
extern const u32 gUnknown_80B8814[];
|
||||
|
||||
// text.s
|
||||
extern void sub_800677C(struct UnkTextStruct1 *, s32, u16 *, u8);
|
||||
extern void sub_80069CC(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
|
||||
extern void sub_8006AC4(struct UnkTextStruct1 *, s32, s32, u32, u16 *);
|
||||
extern void sub_8006B70(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
|
||||
extern void sub_8006C44(struct UnkTextStruct1 *, s32, u16 *, u8);
|
||||
extern void sub_8006E94(struct UnkTextStruct1 *, s32, u32, const u8 *, u16 *);
|
||||
extern void sub_8008C6C(struct UnkTextStruct1 *, u32);
|
||||
|
||||
void sub_800677C(struct UnkTextStruct1 *, s32, u16 *, u8);
|
||||
void sub_80069CC(struct UnkTextStruct1 *, s32, s32, s32, u16 *);
|
||||
|
||||
void nullsub_152(void)
|
||||
{
|
||||
}
|
||||
|
|
@ -200,4 +201,46 @@ void sub_800677C(struct UnkTextStruct1 *a0, s32 a1, u16 *a2, u8 a3)
|
|||
(a2 + a1 * 0x20)[iVar5] = 0xF693;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80069CC(struct UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, u16 *a4)
|
||||
{
|
||||
if (a2 > 28)
|
||||
return;
|
||||
// Cannot combine these ifs for matching
|
||||
if (a2 < 0)
|
||||
return;
|
||||
|
||||
switch (a0->unkC) {
|
||||
case 1:
|
||||
case 2:
|
||||
break;
|
||||
case 0:
|
||||
if (a3 == 0) {
|
||||
(a4 + a2 * 0x20)[a1] = 0xF297;
|
||||
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
|
||||
break;
|
||||
}
|
||||
if (a3 == a0->unk6 - 1) {
|
||||
(a4 + a2 * 0x20)[a1] = 0xFA97;
|
||||
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
|
||||
break;
|
||||
}
|
||||
// Fallthrough
|
||||
case 3:
|
||||
case 6:
|
||||
(a4 + a2 * 0x20)[a1] = 0xF2DA;
|
||||
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
|
||||
break;
|
||||
case 4:
|
||||
(a4 + a2 * 0x20)[a1] = 0xF2EA;
|
||||
(a4 + a2 * 0x20)[a1 + 0x400] = 0xF2DB;
|
||||
break;
|
||||
case 5:
|
||||
(a4 + a2 * 0x20)[a1] = 0xF2DE;
|
||||
break;
|
||||
case 7:
|
||||
(a4 + a2 * 0x20)[a1] = 0xF2B6;
|
||||
break;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user