mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-25 07:28:17 -05:00
some more decomp
This commit is contained in:
parent
86196330be
commit
ad9c25598d
|
|
@ -5,137 +5,6 @@
|
|||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8098FCC
|
||||
sub_8098FCC:
|
||||
push {r4,lr}
|
||||
movs r0, 0
|
||||
movs r1, 0x13
|
||||
bl sub_8001658
|
||||
lsls r0, 16
|
||||
asrs r1, r0, 16
|
||||
adds r2, r1, 0
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r1, r0
|
||||
beq _0809909E
|
||||
cmp r1, 0x51
|
||||
bne _08098FF6
|
||||
movs r0, 0
|
||||
movs r1, 0x14
|
||||
bl sub_8001658
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
b _08098FF8
|
||||
_08098FF6:
|
||||
adds r0, r2, 0
|
||||
_08098FF8:
|
||||
bl sub_80A2608
|
||||
adds r4, r0, 0
|
||||
ldr r0, _0809900C
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x9
|
||||
bne _08099010
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
b _080990B2
|
||||
.align 2, 0
|
||||
_0809900C: .4byte gUnknown_20398B4
|
||||
_08099010:
|
||||
ldrh r0, [r4, 0x4]
|
||||
subs r0, 0xB2
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x17
|
||||
bhi _080990AE
|
||||
lsls r0, 2
|
||||
ldr r1, _08099028
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08099028: .4byte _0809902C
|
||||
.align 2, 0
|
||||
_0809902C:
|
||||
.4byte _0809908C
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990A2
|
||||
.4byte _080990AE
|
||||
.4byte _080990A2
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990A2
|
||||
.4byte _080990AE
|
||||
.4byte _080990AE
|
||||
.4byte _080990A2
|
||||
_0809908C:
|
||||
movs r2, 0x1
|
||||
negs r2, r2
|
||||
movs r0, 0x3
|
||||
movs r1, 0x2
|
||||
bl sub_8001D44
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080990AE
|
||||
_0809909E:
|
||||
movs r0, 0xC
|
||||
b _080990B2
|
||||
_080990A2:
|
||||
movs r0, 0x5
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _0809909E
|
||||
_080990AE:
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
_080990B2:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8098FCC
|
||||
|
||||
thumb_func_start sub_80990B8
|
||||
sub_80990B8:
|
||||
push {lr}
|
||||
movs r0, 0xB
|
||||
bl sub_8098FCC
|
||||
lsls r0, 16
|
||||
asrs r2, r0, 16
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
cmp r2, r0
|
||||
bne _080990D2
|
||||
bl sub_8098FB4
|
||||
b _080990E4
|
||||
_080990D2:
|
||||
ldr r1, _080990E8
|
||||
lsls r0, r2, 1
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r0, r1]
|
||||
bl sub_80A2B18
|
||||
_080990E4:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_080990E8: .4byte gUnknown_811BAF4
|
||||
thumb_func_end sub_80990B8
|
||||
|
||||
thumb_func_start sub_80990EC
|
||||
sub_80990EC:
|
||||
push {r4-r7,lr}
|
||||
|
|
@ -8230,126 +8099,4 @@ _0809CFDA:
|
|||
bx r1
|
||||
thumb_func_end sub_809CDC8
|
||||
|
||||
thumb_func_start sub_809CFE8
|
||||
sub_809CFE8:
|
||||
push {lr}
|
||||
lsls r0, 16
|
||||
lsrs r1, r0, 16
|
||||
adds r2, r1, 0
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809D014
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809D004
|
||||
movs r0, 0x3
|
||||
b _0809D052
|
||||
_0809D004:
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809D010
|
||||
movs r0, 0x5
|
||||
b _0809D052
|
||||
_0809D010:
|
||||
movs r0, 0x4
|
||||
b _0809D052
|
||||
_0809D014:
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809D038
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809D028
|
||||
movs r0, 0x1
|
||||
b _0809D052
|
||||
_0809D028:
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809D034
|
||||
movs r0, 0x7
|
||||
b _0809D052
|
||||
_0809D034:
|
||||
movs r0, 0
|
||||
b _0809D052
|
||||
_0809D038:
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _0809D044
|
||||
movs r0, 0x2
|
||||
b _0809D052
|
||||
_0809D044:
|
||||
movs r0, 0x20
|
||||
ands r2, r0
|
||||
cmp r2, 0
|
||||
bne _0809D050
|
||||
subs r0, 0x21
|
||||
b _0809D052
|
||||
_0809D050:
|
||||
movs r0, 0x6
|
||||
_0809D052:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_809CFE8
|
||||
|
||||
thumb_func_start sub_809D058
|
||||
sub_809D058:
|
||||
push {lr}
|
||||
ldr r1, [r0, 0x4]
|
||||
cmp r1, 0x3F
|
||||
bgt _0809D076
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x67
|
||||
bgt _0809D06A
|
||||
movs r0, 0x5
|
||||
b _0809D0A6
|
||||
_0809D06A:
|
||||
cmp r0, 0x88
|
||||
ble _0809D072
|
||||
movs r0, 0x3
|
||||
b _0809D0A6
|
||||
_0809D072:
|
||||
movs r0, 0x4
|
||||
b _0809D0A6
|
||||
_0809D076:
|
||||
cmp r1, 0x60
|
||||
ble _0809D090
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x67
|
||||
bgt _0809D084
|
||||
movs r0, 0x7
|
||||
b _0809D0A6
|
||||
_0809D084:
|
||||
cmp r0, 0x88
|
||||
ble _0809D08C
|
||||
movs r0, 0x1
|
||||
b _0809D0A6
|
||||
_0809D08C:
|
||||
movs r0, 0
|
||||
b _0809D0A6
|
||||
_0809D090:
|
||||
ldr r0, [r0]
|
||||
cmp r0, 0x67
|
||||
bgt _0809D09A
|
||||
movs r0, 0x6
|
||||
b _0809D0A6
|
||||
_0809D09A:
|
||||
cmp r0, 0x88
|
||||
bgt _0809D0A4
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
b _0809D0A6
|
||||
_0809D0A4:
|
||||
movs r0, 0x2
|
||||
_0809D0A6:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_809D058
|
||||
|
||||
.align 2,0
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
#include "play_time.h"
|
||||
#include "input.h"
|
||||
#include "debug.h"
|
||||
#include "code_80A26CC.h"
|
||||
|
||||
extern u32 gUnknown_20398A8;
|
||||
extern u32 gUnknown_20398AC;
|
||||
|
|
@ -21,6 +22,15 @@ extern const char gUnknown_8115FA4;
|
|||
extern const char gUnknown_8115FC8;
|
||||
extern const char gUnknown_8115FE8;
|
||||
|
||||
struct unkStruct_811BAF4
|
||||
{
|
||||
u16 unk0;
|
||||
s16 unk2;
|
||||
u8 fill4[8];
|
||||
};
|
||||
|
||||
extern struct unkStruct_811BAF4 gUnknown_811BAF4[10];
|
||||
|
||||
extern void sub_809B57C();
|
||||
extern void GroundScript_Unlock();
|
||||
extern void sub_809D25C();
|
||||
|
|
@ -61,11 +71,11 @@ extern void ClearAllItems_8091FB4();
|
|||
extern const char *sub_80A2B18(s16);
|
||||
extern u8 sub_8001CC4(u8, u8, u8);
|
||||
extern void xxx_inv_unk250_random_8091980(u32);
|
||||
|
||||
extern u8 sub_80023E4(u32);
|
||||
extern void sub_80118C4(u16);
|
||||
extern u8 sub_809C730();
|
||||
extern s16 sub_80A2750(s16);
|
||||
extern u8 sub_8001D44(u32, u32, s32);
|
||||
|
||||
void sub_8098BDC(void)
|
||||
{
|
||||
|
|
@ -319,3 +329,54 @@ const char *sub_8098FB4(void)
|
|||
{
|
||||
return sub_80A2B18(sub_8001658(0, 0x11));
|
||||
}
|
||||
|
||||
|
||||
s32 sub_8098FCC(u32 unused)
|
||||
{
|
||||
s32 iVar4;
|
||||
s32 iVar5;
|
||||
s32 iVar6;
|
||||
struct unkStruct_80A2608 *iVar3;
|
||||
|
||||
iVar5 = (s16)sub_8001658(0,0x13);
|
||||
iVar6 = iVar5;
|
||||
if (iVar5 == -1) return 0xC;
|
||||
|
||||
if (iVar5 == 0x51)
|
||||
iVar4 = (s16)sub_8001658(0,0x14);
|
||||
else
|
||||
iVar4 = iVar6;
|
||||
|
||||
iVar3 = sub_80A2608(iVar4);
|
||||
if (gUnknown_20398B4 == 9) {
|
||||
return iVar3->unk2;
|
||||
}
|
||||
switch((s16)(iVar3->unk4 - 0xb2)) {
|
||||
case 0:
|
||||
if (sub_8001D44(3,2,-1) != 0) return 0xc;
|
||||
break;
|
||||
case 0xf:
|
||||
case 0x11:
|
||||
case 0x14:
|
||||
case 0x17:
|
||||
if (sub_80023E4(5) == 0) return 0xC;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return iVar3->unk4;
|
||||
}
|
||||
|
||||
const char *sub_80990B8(void)
|
||||
{
|
||||
s16 index;
|
||||
index = sub_8098FCC(0xB);
|
||||
if(index != -1)
|
||||
{
|
||||
return sub_80A2B18(gUnknown_811BAF4[index].unk2);
|
||||
}
|
||||
else
|
||||
{
|
||||
return sub_8098FB4();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,6 +33,67 @@ extern struct unkStruct_20399E8 gUnknown_20399E8;
|
|||
|
||||
void sub_809D0BC(void);
|
||||
|
||||
s32 sub_809CFE8(u16 param_1)
|
||||
{
|
||||
if ((param_1 & 0x40) != 0) {
|
||||
if ((param_1 & 0x10) != 0)
|
||||
return 3;
|
||||
else if ((param_1 & 0x20) != 0)
|
||||
return 5;
|
||||
else
|
||||
return 4;
|
||||
}
|
||||
else if ((param_1 & 0x80) != 0) {
|
||||
if ((param_1 & 0x10) != 0)
|
||||
return 1;
|
||||
else if ((param_1 & 0x20) != 0)
|
||||
return 7;
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
else if ((param_1 & 0x10) != 0)
|
||||
return 2;
|
||||
else if ((param_1 & 0x20) != 0)
|
||||
return 6;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Unused
|
||||
s32 sub_809D058(s32 *param_1)
|
||||
{
|
||||
if (param_1[1] < 0x40) {
|
||||
if (param_1[0] < 0x68) {
|
||||
return 5;
|
||||
}
|
||||
else if (param_1[0] > 0x88) {
|
||||
return 3;
|
||||
}
|
||||
else {
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
else if (param_1[1] > 0x60) {
|
||||
if (param_1[0] < 0x68) {
|
||||
return 7;
|
||||
}
|
||||
else if (param_1[0] > 0x88) {
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if (param_1[0] < 0x68) {
|
||||
return 6;
|
||||
}
|
||||
else if (param_1[0] > 0x88) {
|
||||
return 2;
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809D0AC(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,18 +1,5 @@
|
|||
#include "global.h"
|
||||
|
||||
struct unkStruct_80A2608
|
||||
{
|
||||
/* 0x0 */ s16 unk0;
|
||||
/* 0x2 */ u16 padding;
|
||||
/* 0x4 */ u32 padding2;
|
||||
/* 0x8 */ u16 padding3;
|
||||
/* 0xA */ u16 padding4;
|
||||
/* 0xC */ u8 unkC;
|
||||
/* 0xD */ u8 padding5;
|
||||
/* 0xE */ s16 unkE;
|
||||
/* 0x10 */ u8 unk10;
|
||||
/* 0x11 */ u8 unk11;
|
||||
};
|
||||
#include "code_80A26CC.h"
|
||||
|
||||
extern u8 sub_80023E4(u32);
|
||||
extern u8 sub_80973F4(s16);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user