mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-24 17:54:43 -05:00
actually add both files
This commit is contained in:
@@ -5,93 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8011940
|
||||
sub_8011940:
|
||||
push {r4,lr}
|
||||
lsls r0, 16
|
||||
lsrs r4, r0, 16
|
||||
bl sub_800C068
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
ldr r0, _08011960
|
||||
cmp r4, r0
|
||||
bne _08011964
|
||||
eors r1, r4
|
||||
negs r0, r1
|
||||
orrs r0, r1
|
||||
lsrs r0, 31
|
||||
b _0801196C
|
||||
.align 2, 0
|
||||
_08011960: .4byte 0x000003e7
|
||||
_08011964:
|
||||
movs r0, 0
|
||||
cmp r1, r4
|
||||
bne _0801196C
|
||||
movs r0, 0x1
|
||||
_0801196C:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8011940
|
||||
|
||||
thumb_func_start sub_8011974
|
||||
sub_8011974:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
bl sub_800C074
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8011974
|
||||
|
||||
thumb_func_start sub_8011988
|
||||
sub_8011988:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
movs r1, 0x80
|
||||
lsls r1, 1
|
||||
bl sub_800C074
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8011988
|
||||
|
||||
thumb_func_start sub_801199C
|
||||
sub_801199C:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
bl sub_800C298
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_801199C
|
||||
|
||||
thumb_func_start sub_80119AC
|
||||
sub_80119AC:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
bl sub_800C3F8
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80119AC
|
||||
|
||||
thumb_func_start sub_80119C0
|
||||
sub_80119C0:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
bl sub_800C5D0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_80119C0
|
||||
|
||||
thumb_func_start sub_80119D4
|
||||
sub_80119D4:
|
||||
push {r4,lr}
|
||||
|
||||
@@ -9,7 +9,19 @@ extern void sub_800BF80(void);
|
||||
extern void sub_800BFD0(u16 r0);
|
||||
extern void sub_800C3F8(u16 r0, u16 r1);
|
||||
extern void sub_801199C(u16 r0);
|
||||
extern void sub_800C068(u16 r0);
|
||||
extern u16 sub_800C068();
|
||||
extern void sub_800C074(u16 r0, u16 r1);
|
||||
extern void sub_800C298(u16 r0);
|
||||
extern u8 sub_800C5D0(u16 r0);
|
||||
|
||||
struct UnkStructType
|
||||
{
|
||||
/* 0x0 */ s16 unk0;
|
||||
|
||||
};
|
||||
|
||||
extern u16 gUnknown_80D4144[];
|
||||
extern struct UnkStructType gUnknown_202DE20;
|
||||
|
||||
void sub_80118A4(void)
|
||||
{
|
||||
@@ -49,3 +61,88 @@ void sub_8011930(u16 r0)
|
||||
{
|
||||
sub_800BFD0(r0);
|
||||
}
|
||||
|
||||
// TODO fix this nonmatching
|
||||
#ifndef NONMATCHING
|
||||
NAKED
|
||||
#endif
|
||||
u32 sub_8011940(u16 r0)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
u32 temp;
|
||||
temp = sub_800C068();
|
||||
|
||||
if(r0 == 0x3e7)
|
||||
{
|
||||
temp ^= r0;
|
||||
// TODO this OR/NEG apparently is close
|
||||
temp |= -temp;
|
||||
return temp >> 31;
|
||||
}
|
||||
|
||||
if(temp != r0)
|
||||
return 0;
|
||||
else
|
||||
return 1;
|
||||
#else
|
||||
asm_unified("\tpush {r4,lr}\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r4, r0, 16\n"
|
||||
"\tbl sub_800C068\n"
|
||||
"\tlsls r0, 16\n"
|
||||
"\tlsrs r1, r0, 16\n"
|
||||
"\tldr r0, _08011960\n"
|
||||
"\tcmp r4, r0\n"
|
||||
"\tbne _08011964\n"
|
||||
"\teors r1, r4\n"
|
||||
"\tnegs r0, r1\n"
|
||||
"\torrs r0, r1\n"
|
||||
"\tlsrs r0, 31\n"
|
||||
"\tb _0801196C\n"
|
||||
"\t.align 2,0\n"
|
||||
"_08011960: .4byte 0x000003e7\n"
|
||||
"_08011964:\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tcmp r1, r4\n"
|
||||
"\tbne _0801196C\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"_0801196C:\n"
|
||||
"\tpop {r4}\n"
|
||||
"\tpop {r1}\n"
|
||||
"\tbx r1");
|
||||
#endif
|
||||
}
|
||||
|
||||
void sub_8011974(u16 r0, u16 r1)
|
||||
{
|
||||
sub_800C074(r0, r1);
|
||||
}
|
||||
|
||||
void sub_8011988(u16 r0)
|
||||
{
|
||||
sub_800C074(r0, 0x80 << 1);
|
||||
}
|
||||
|
||||
void sub_801199C(u16 r0)
|
||||
{
|
||||
sub_800C298(r0);
|
||||
}
|
||||
|
||||
void sub_80119AC(u16 r0, u16 r1)
|
||||
{
|
||||
sub_800C3F8(r0, r1);
|
||||
}
|
||||
|
||||
u8 sub_80119C0(u16 r0)
|
||||
{
|
||||
return sub_800C5D0(r0);
|
||||
}
|
||||
|
||||
// TODO pretty close except r4's where should be r2's
|
||||
//void sub_80119D4(u32 r0)
|
||||
//{
|
||||
// if(gUnknown_202DE20.unk0 > 0)
|
||||
// return;
|
||||
// sub_800C074(gUnknown_80D4144[r0], 0x80 << 1);
|
||||
// gUnknown_80D4144[r0] = 0x4;
|
||||
//}
|
||||
|
||||
Reference in New Issue
Block a user