mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-27 19:24:58 -05:00
more decomp work on some funcs
This commit is contained in:
@@ -5,132 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8098D1C
|
||||
sub_8098D1C:
|
||||
push {r4-r7,lr}
|
||||
adds r7, r1, 0
|
||||
adds r4, r2, 0
|
||||
lsls r0, 16
|
||||
asrs r5, r0, 16
|
||||
ldr r6, _08098D34
|
||||
ldr r0, [r6]
|
||||
cmp r0, 0
|
||||
beq _08098D38
|
||||
movs r0, 0
|
||||
b _08098D60
|
||||
.align 2, 0
|
||||
_08098D34: .4byte gUnknown_20398A8
|
||||
_08098D38:
|
||||
ldr r1, _08098D68
|
||||
movs r0, 0
|
||||
adds r2, r5, 0
|
||||
adds r3, r4, 0
|
||||
bl Log
|
||||
movs r1, 0x1
|
||||
str r1, [r6]
|
||||
ldr r0, _08098D6C
|
||||
str r1, [r0]
|
||||
ldr r0, _08098D70
|
||||
str r4, [r0]
|
||||
ldr r1, _08098D74
|
||||
movs r0, 0x2
|
||||
str r0, [r1]
|
||||
ldr r0, _08098D78
|
||||
strh r5, [r0]
|
||||
ldr r0, _08098D7C
|
||||
str r7, [r0]
|
||||
movs r0, 0x1
|
||||
_08098D60:
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08098D68: .4byte gUnknown_8115F5C
|
||||
_08098D6C: .4byte gUnknown_20398AC
|
||||
_08098D70: .4byte gUnknown_20398B0
|
||||
_08098D74: .4byte gUnknown_20398B4
|
||||
_08098D78: .4byte gUnknown_20398BE
|
||||
_08098D7C: .4byte gUnknown_20398C0
|
||||
thumb_func_end sub_8098D1C
|
||||
|
||||
thumb_func_start sub_8098D80
|
||||
sub_8098D80:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r1, _08098DB8
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08098DC4
|
||||
movs r0, 0x3
|
||||
str r0, [r1]
|
||||
ldr r1, _08098DBC
|
||||
movs r0, 0x1
|
||||
str r0, [r1]
|
||||
ldr r0, _08098DC0
|
||||
str r4, [r0]
|
||||
bl sub_809C730
|
||||
movs r0, 0xD
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08098DB2
|
||||
lsls r0, r4, 16
|
||||
lsrs r0, 16
|
||||
bl sub_80118C4
|
||||
_08098DB2:
|
||||
movs r0, 0x1
|
||||
b _08098DC6
|
||||
.align 2, 0
|
||||
_08098DB8: .4byte gUnknown_20398A8
|
||||
_08098DBC: .4byte gUnknown_20398AC
|
||||
_08098DC0: .4byte gUnknown_20398B0
|
||||
_08098DC4:
|
||||
movs r0, 0
|
||||
_08098DC6:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8098D80
|
||||
|
||||
thumb_func_start sub_8098DCC
|
||||
sub_8098DCC:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r1, _08098E04
|
||||
ldr r0, [r1]
|
||||
cmp r0, 0
|
||||
bne _08098E10
|
||||
movs r0, 0x4
|
||||
str r0, [r1]
|
||||
ldr r1, _08098E08
|
||||
movs r0, 0x1
|
||||
str r0, [r1]
|
||||
ldr r0, _08098E0C
|
||||
str r4, [r0]
|
||||
bl sub_809C730
|
||||
movs r0, 0xD
|
||||
bl sub_80023E4
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08098DFE
|
||||
lsls r0, r4, 16
|
||||
lsrs r0, 16
|
||||
bl sub_80118C4
|
||||
_08098DFE:
|
||||
movs r0, 0x1
|
||||
b _08098E12
|
||||
.align 2, 0
|
||||
_08098E04: .4byte gUnknown_20398A8
|
||||
_08098E08: .4byte gUnknown_20398AC
|
||||
_08098E0C: .4byte gUnknown_20398B0
|
||||
_08098E10:
|
||||
movs r0, 0
|
||||
_08098E12:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_8098DCC
|
||||
|
||||
thumb_func_start sub_8098E18
|
||||
sub_8098E18:
|
||||
push {r4-r6,lr}
|
||||
@@ -8713,97 +8587,4 @@ _0809D0A6:
|
||||
bx r1
|
||||
thumb_func_end sub_809D058
|
||||
|
||||
thumb_func_start sub_809D0AC
|
||||
sub_809D0AC:
|
||||
push {lr}
|
||||
bl sub_809D0BC
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_809D0AC
|
||||
|
||||
thumb_func_start nullsub_119
|
||||
nullsub_119:
|
||||
bx lr
|
||||
thumb_func_end nullsub_119
|
||||
|
||||
thumb_func_start sub_809D0BC
|
||||
sub_809D0BC:
|
||||
push {r4,r5,lr}
|
||||
ldr r5, _0809D0F8
|
||||
ldr r1, _0809D0FC
|
||||
ldr r2, [r1]
|
||||
ldr r3, [r1, 0x4]
|
||||
str r2, [r5, 0x3C]
|
||||
str r3, [r5, 0x40]
|
||||
adds r0, r5, 0
|
||||
adds r0, 0x44
|
||||
movs r4, 0
|
||||
strb r4, [r0]
|
||||
movs r0, 0
|
||||
bl sub_809D158
|
||||
str r4, [r5, 0x8]
|
||||
str r4, [r5, 0xC]
|
||||
str r4, [r5, 0x10]
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r0, [r5, 0x4]
|
||||
str r4, [r5, 0x24]
|
||||
str r4, [r5, 0x28]
|
||||
str r4, [r5, 0x2C]
|
||||
str r4, [r5, 0x30]
|
||||
str r4, [r5, 0x34]
|
||||
str r4, [r5, 0x38]
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809D0F8: .4byte gUnknown_20399E8
|
||||
_0809D0FC: .4byte gUnknown_8116478
|
||||
thumb_func_end sub_809D0BC
|
||||
|
||||
thumb_func_start sub_809D100
|
||||
sub_809D100:
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
ldr r1, _0809D120
|
||||
ldr r0, [r1, 0x24]
|
||||
cmp r0, r2
|
||||
beq _0809D11A
|
||||
str r2, [r1, 0x24]
|
||||
movs r0, 0
|
||||
str r0, [r1, 0x28]
|
||||
str r0, [r1, 0x2C]
|
||||
str r0, [r1, 0x30]
|
||||
str r0, [r1, 0x34]
|
||||
str r0, [r1, 0x38]
|
||||
_0809D11A:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809D120: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D100
|
||||
|
||||
thumb_func_start sub_809D124
|
||||
sub_809D124:
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r3, _0809D144
|
||||
ldr r0, [r3, 0x24]
|
||||
cmp r0, r4
|
||||
beq _0809D13A
|
||||
str r4, [r3, 0x24]
|
||||
movs r0, 0
|
||||
str r0, [r3, 0x30]
|
||||
str r0, [r3, 0x34]
|
||||
str r0, [r3, 0x38]
|
||||
_0809D13A:
|
||||
str r1, [r3, 0x28]
|
||||
str r2, [r3, 0x2C]
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0809D144: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D124
|
||||
|
||||
.align 2,0
|
||||
|
||||
@@ -5,182 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_809D148
|
||||
sub_809D148:
|
||||
ldr r1, _0809D154
|
||||
str r0, [r1]
|
||||
movs r0, 0
|
||||
str r0, [r1, 0x8]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D154: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D148
|
||||
|
||||
thumb_func_start sub_809D158
|
||||
sub_809D158:
|
||||
ldr r2, _0809D16C
|
||||
str r0, [r2]
|
||||
movs r0, 0
|
||||
str r0, [r2, 0x8]
|
||||
ldr r0, [r1]
|
||||
ldr r1, [r1, 0x4]
|
||||
str r0, [r2, 0x1C]
|
||||
str r1, [r2, 0x20]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D16C: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D158
|
||||
|
||||
thumb_func_start sub_809D170
|
||||
sub_809D170:
|
||||
ldr r2, _0809D17C
|
||||
str r0, [r2]
|
||||
movs r0, 0
|
||||
str r0, [r2, 0x8]
|
||||
str r1, [r2, 0x4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D17C: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D170
|
||||
|
||||
thumb_func_start sub_809D180
|
||||
sub_809D180:
|
||||
ldr r2, _0809D18C
|
||||
str r0, [r2]
|
||||
movs r0, 0x1
|
||||
str r0, [r2, 0x8]
|
||||
str r1, [r2, 0xC]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D18C: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D180
|
||||
|
||||
thumb_func_start sub_809D190
|
||||
sub_809D190:
|
||||
ldr r3, _0809D1A4
|
||||
str r0, [r3]
|
||||
movs r0, 0x1
|
||||
str r0, [r3, 0x8]
|
||||
str r2, [r3, 0xC]
|
||||
ldr r0, [r1]
|
||||
ldr r1, [r1, 0x4]
|
||||
str r0, [r3, 0x14]
|
||||
str r1, [r3, 0x18]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D1A4: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D190
|
||||
|
||||
thumb_func_start sub_809D1A8
|
||||
sub_809D1A8:
|
||||
ldr r3, _0809D1B8
|
||||
str r0, [r3]
|
||||
movs r0, 0x1
|
||||
str r0, [r3, 0x8]
|
||||
str r2, [r3, 0xC]
|
||||
str r1, [r3, 0x4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D1B8: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D1A8
|
||||
|
||||
thumb_func_start sub_809D1BC
|
||||
sub_809D1BC:
|
||||
ldr r2, _0809D1C8
|
||||
str r0, [r2]
|
||||
movs r0, 0x2
|
||||
str r0, [r2, 0x8]
|
||||
str r1, [r2, 0x10]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D1C8: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D1BC
|
||||
|
||||
thumb_func_start sub_809D1CC
|
||||
sub_809D1CC:
|
||||
ldr r3, _0809D1E0
|
||||
str r0, [r3]
|
||||
movs r0, 0x2
|
||||
str r0, [r3, 0x8]
|
||||
str r2, [r3, 0x10]
|
||||
ldr r0, [r1]
|
||||
ldr r1, [r1, 0x4]
|
||||
str r0, [r3, 0x14]
|
||||
str r1, [r3, 0x18]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D1E0: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D1CC
|
||||
|
||||
thumb_func_start sub_809D1E4
|
||||
sub_809D1E4:
|
||||
ldr r3, _0809D1F4
|
||||
str r0, [r3]
|
||||
movs r0, 0x2
|
||||
str r0, [r3, 0x8]
|
||||
str r2, [r3, 0x10]
|
||||
str r1, [r3, 0x4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D1F4: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D1E4
|
||||
|
||||
thumb_func_start sub_809D1F8
|
||||
sub_809D1F8:
|
||||
ldr r2, _0809D204
|
||||
str r0, [r2]
|
||||
movs r0, 0x3
|
||||
str r0, [r2, 0x8]
|
||||
str r1, [r2, 0xC]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D204: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D1F8
|
||||
|
||||
thumb_func_start sub_809D208
|
||||
sub_809D208:
|
||||
ldr r3, _0809D21C
|
||||
str r0, [r3]
|
||||
movs r0, 0x3
|
||||
str r0, [r3, 0x8]
|
||||
str r2, [r3, 0xC]
|
||||
ldr r0, [r1]
|
||||
ldr r1, [r1, 0x4]
|
||||
str r0, [r3, 0x14]
|
||||
str r1, [r3, 0x18]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D21C: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D208
|
||||
|
||||
thumb_func_start sub_809D220
|
||||
sub_809D220:
|
||||
ldr r3, _0809D230
|
||||
str r0, [r3]
|
||||
movs r0, 0x3
|
||||
str r0, [r3, 0x8]
|
||||
str r2, [r3, 0xC]
|
||||
str r1, [r3, 0x4]
|
||||
bx lr
|
||||
.align 2, 0
|
||||
_0809D230: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D220
|
||||
|
||||
thumb_func_start sub_809D234
|
||||
sub_809D234:
|
||||
push {lr}
|
||||
ldr r0, _0809D244
|
||||
ldr r0, [r0, 0x8]
|
||||
cmp r0, 0
|
||||
beq _0809D240
|
||||
movs r0, 0x1
|
||||
_0809D240:
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_0809D244: .4byte gUnknown_20399E8
|
||||
thumb_func_end sub_809D234
|
||||
|
||||
thumb_func_start sub_809D248
|
||||
sub_809D248:
|
||||
ldr r3, _0809D258
|
||||
|
||||
@@ -125,6 +125,7 @@ SECTIONS {
|
||||
asm/code_8098468.o(.text);
|
||||
src/code_8098BDC.o(.text);
|
||||
asm/code_8098BDC.o(.text);
|
||||
src/code_809D148.o(.text);
|
||||
asm/code_809D148.o(.text);
|
||||
asm/code_80A26CC.o(.text);
|
||||
src/code_80A7714.o(.text);
|
||||
|
||||
@@ -1,6 +1,15 @@
|
||||
#include "global.h"
|
||||
|
||||
extern u32 gUnknown_203B47C;
|
||||
extern u32 gUnknown_20398A8;
|
||||
extern u32 gUnknown_8115F5C;
|
||||
extern u32 gUnknown_20398AC;
|
||||
extern u32 gUnknown_20398B0;
|
||||
extern u32 gUnknown_20398B4;
|
||||
extern u32 gUnknown_20398C0;
|
||||
extern u16 gUnknown_20398BE;
|
||||
|
||||
extern void Log(u32, u32*, s32, u32);
|
||||
|
||||
extern void sub_809B57C();
|
||||
extern void GroundScript_Unlock();
|
||||
@@ -44,6 +53,10 @@ extern void sub_8091FB4();
|
||||
extern u8 sub_8001CC4(u8, u8, u8);
|
||||
extern void sub_8091980(u32);
|
||||
|
||||
extern u8 sub_80023E4(u32);
|
||||
extern void sub_80118C4(u32);
|
||||
extern void sub_809C730();
|
||||
|
||||
void sub_8098BDC(void)
|
||||
{
|
||||
sub_809B57C();
|
||||
@@ -148,19 +161,57 @@ void sub_8098CC8(void)
|
||||
sub_8091FB4();
|
||||
}
|
||||
|
||||
// TODO lsrs should be asrs on my first arg
|
||||
//u8 sub_8098D1C(u16 r0, u32 r1, s32 r2)
|
||||
//{
|
||||
// if(gUnknown_20398A8 == 0)
|
||||
// {
|
||||
// Log(0, &gUnknown_8115F5C, r0, r2);
|
||||
// gUnknown_20398A8 = 1;
|
||||
// gUnknown_20398AC = 1;
|
||||
// gUnknown_20398B0 = r2;
|
||||
// gUnknown_20398B4 = 2;
|
||||
// gUnknown_20398BE = r0;
|
||||
// gUnknown_20398C0 = r1;
|
||||
// return 1;
|
||||
// }
|
||||
// return 0;
|
||||
//}
|
||||
bool8 sub_8098D1C(s16 r0, u32 r1, u32 r2)
|
||||
{
|
||||
s32 temp;
|
||||
temp = r0; // force a asr shift
|
||||
if(gUnknown_20398A8 == 0)
|
||||
{
|
||||
Log(0, &gUnknown_8115F5C, temp, r2);
|
||||
gUnknown_20398A8 = 1;
|
||||
gUnknown_20398AC = 1;
|
||||
gUnknown_20398B0 = r2;
|
||||
gUnknown_20398B4 = 2;
|
||||
gUnknown_20398BE = temp;
|
||||
gUnknown_20398C0 = r1;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8098D80(u32 r0)
|
||||
{
|
||||
if(gUnknown_20398A8 == 0)
|
||||
{
|
||||
gUnknown_20398A8 = 3;
|
||||
gUnknown_20398AC = 1;
|
||||
gUnknown_20398B0 = r0;
|
||||
sub_809C730();
|
||||
if(sub_80023E4(0xD) == 0)
|
||||
{
|
||||
// Terrible hack but meh
|
||||
sub_80118C4((r0 << 16) >> 16);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_8098DCC(u32 r0)
|
||||
{
|
||||
if(gUnknown_20398A8 == 0)
|
||||
{
|
||||
gUnknown_20398A8 = 4;
|
||||
gUnknown_20398AC = 1;
|
||||
gUnknown_20398B0 = r0;
|
||||
sub_809C730();
|
||||
if(sub_80023E4(0xD) == 0)
|
||||
{
|
||||
// Terrible hack but meh
|
||||
sub_80118C4((r0 << 16) >> 16);
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
277
src/code_809D148.c
Normal file
277
src/code_809D148.c
Normal file
@@ -0,0 +1,277 @@
|
||||
#include "global.h"
|
||||
|
||||
struct unkStruct_20399E8
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
u32 unk8;
|
||||
u32 unkC;
|
||||
u32 unk10;
|
||||
u32 unk14;
|
||||
u32 unk18;
|
||||
u32 unk1C;
|
||||
u32 unk20;
|
||||
|
||||
u32 unk24;
|
||||
u32 unk28;
|
||||
u32 unk2C;
|
||||
u32 unk30;
|
||||
u32 unk34;
|
||||
u32 unk38;
|
||||
};
|
||||
|
||||
struct unkStruct_809D158
|
||||
{
|
||||
u32 unk0;
|
||||
u32 unk4;
|
||||
};
|
||||
|
||||
extern struct unkStruct_20399E8 gUnknown_20399E8;
|
||||
|
||||
void sub_809D0BC(void);
|
||||
|
||||
|
||||
void sub_809D0AC(void)
|
||||
{
|
||||
sub_809D0BC();
|
||||
}
|
||||
|
||||
void nullsub_119(void)
|
||||
{
|
||||
}
|
||||
|
||||
#ifndef NONMATCHING
|
||||
NAKED
|
||||
#endif
|
||||
void sub_809D0BC(void)
|
||||
{
|
||||
#ifdef NONMATCHING
|
||||
struct unkStruct_20399E8 *pre_load_203;
|
||||
|
||||
u32 temp;
|
||||
u32 temp1;
|
||||
|
||||
pre_load_203 = &gUnknown_20399E8;
|
||||
|
||||
// TODO regswap.. should be r2/r3, not r0, r1
|
||||
temp = gUnknown_8116478.unk0;
|
||||
temp1 = gUnknown_8116478.unk4;
|
||||
|
||||
pre_load_203->unk3C = temp;
|
||||
pre_load_203->unk40 = temp1;
|
||||
pre_load_203->unk44 = 0;
|
||||
sub_809D158(0);
|
||||
pre_load_203->unk8 = 0;
|
||||
pre_load_203->unkC = 0;
|
||||
pre_load_203->unk10 = 0;
|
||||
pre_load_203->unk4 = -1;
|
||||
pre_load_203->unk24 = 0;
|
||||
pre_load_203->unk28 = 0;
|
||||
pre_load_203->unk2C = 0;
|
||||
pre_load_203->unk30 = 0;
|
||||
pre_load_203->unk34 = 0;
|
||||
pre_load_203->unk38 = 0;
|
||||
#else
|
||||
asm_unified("\tpush {r4,r5,lr}\n"
|
||||
"\tldr r5, _0809D0F8\n"
|
||||
"\tldr r1, _0809D0FC\n"
|
||||
"\tldr r2, [r1]\n"
|
||||
"\tldr r3, [r1, 0x4]\n"
|
||||
"\tstr r2, [r5, 0x3C]\n"
|
||||
"\tstr r3, [r5, 0x40]\n"
|
||||
"\tadds r0, r5, 0\n"
|
||||
"\tadds r0, 0x44\n"
|
||||
"\tmovs r4, 0\n"
|
||||
"\tstrb r4, [r0]\n"
|
||||
"\tmovs r0, 0\n"
|
||||
"\tbl sub_809D158\n"
|
||||
"\tstr r4, [r5, 0x8]\n"
|
||||
"\tstr r4, [r5, 0xC]\n"
|
||||
"\tstr r4, [r5, 0x10]\n"
|
||||
"\tmovs r0, 0x1\n"
|
||||
"\tnegs r0, r0\n"
|
||||
"\tstr r0, [r5, 0x4]\n"
|
||||
"\tstr r4, [r5, 0x24]\n"
|
||||
"\tstr r4, [r5, 0x28]\n"
|
||||
"\tstr r4, [r5, 0x2C]\n"
|
||||
"\tstr r4, [r5, 0x30]\n"
|
||||
"\tstr r4, [r5, 0x34]\n"
|
||||
"\tstr r4, [r5, 0x38]\n"
|
||||
"\tpop {r4,r5}\n"
|
||||
"\tpop {r0}\n"
|
||||
"\tbx r0\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0809D0F8: .4byte gUnknown_20399E8\n"
|
||||
"_0809D0FC: .4byte gUnknown_8116478\n");
|
||||
#endif
|
||||
}
|
||||
|
||||
void sub_809D100(u32 r0)
|
||||
{
|
||||
if(gUnknown_20399E8.unk24 != r0)
|
||||
{
|
||||
gUnknown_20399E8.unk24 = r0;
|
||||
gUnknown_20399E8.unk28 = 0;
|
||||
gUnknown_20399E8.unk2C = 0;
|
||||
gUnknown_20399E8.unk30 = 0;
|
||||
gUnknown_20399E8.unk34 = 0;
|
||||
gUnknown_20399E8.unk38 = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_809D124(u32 r0, u32 r1, u32 r2)
|
||||
{
|
||||
if(gUnknown_20399E8.unk24 != r0)
|
||||
{
|
||||
gUnknown_20399E8.unk24 = r0;
|
||||
gUnknown_20399E8.unk30 = 0;
|
||||
gUnknown_20399E8.unk34 = 0;
|
||||
gUnknown_20399E8.unk38 = 0;
|
||||
}
|
||||
gUnknown_20399E8.unk28 = r1;
|
||||
gUnknown_20399E8.unk2C = r2;
|
||||
}
|
||||
|
||||
void sub_809D148(u32 r0)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 0;
|
||||
|
||||
}
|
||||
|
||||
void sub_809D158(u32 r0, struct unkStruct_809D158 *r1)
|
||||
{
|
||||
u32 temp;
|
||||
u32 temp1;
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 0;
|
||||
|
||||
// Load both first and then store
|
||||
temp = r1->unk0;
|
||||
temp1 = r1->unk4;
|
||||
gUnknown_20399E8.unk1C = temp;
|
||||
gUnknown_20399E8.unk20 = temp1;
|
||||
}
|
||||
|
||||
void sub_809D170(u32 r0, u32 r1)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 0;
|
||||
gUnknown_20399E8.unk4 = r1;
|
||||
}
|
||||
|
||||
void sub_809D180(u32 r0, u32 r1)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 1;
|
||||
gUnknown_20399E8.unkC = r1;
|
||||
}
|
||||
|
||||
void sub_809D190(u32 r0, struct unkStruct_809D158 *r1, u32 r2)
|
||||
{
|
||||
u32 temp;
|
||||
u32 temp1;
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 1;
|
||||
gUnknown_20399E8.unkC = r2;
|
||||
|
||||
// Load both first and then store
|
||||
temp = r1->unk0;
|
||||
temp1 = r1->unk4;
|
||||
gUnknown_20399E8.unk14 = temp;
|
||||
gUnknown_20399E8.unk18 = temp1;
|
||||
}
|
||||
|
||||
void sub_809D1A8(u32 r0, u32 r1, u32 r2)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 1;
|
||||
gUnknown_20399E8.unkC = r2;
|
||||
gUnknown_20399E8.unk4 = r1;
|
||||
}
|
||||
|
||||
void sub_809D1BC(u32 r0, u32 r1)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 2;
|
||||
gUnknown_20399E8.unk10 = r1;
|
||||
}
|
||||
|
||||
void sub_809D1CC(u32 r0, struct unkStruct_809D158 *r1, u32 r2)
|
||||
{
|
||||
u32 temp;
|
||||
u32 temp1;
|
||||
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 2;
|
||||
gUnknown_20399E8.unk10 = r2;
|
||||
|
||||
// Load both first and then store
|
||||
temp = r1->unk0;
|
||||
temp1 = r1->unk4;
|
||||
gUnknown_20399E8.unk14 = temp;
|
||||
gUnknown_20399E8.unk18 = temp1;
|
||||
}
|
||||
|
||||
void sub_809D1E4(u32 r0, u32 r1, u32 r2)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 2;
|
||||
gUnknown_20399E8.unk10 = r2;
|
||||
gUnknown_20399E8.unk4 = r1;
|
||||
}
|
||||
|
||||
void sub_809D1F8(u32 r0, u32 r1)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 3;
|
||||
gUnknown_20399E8.unkC = r1;
|
||||
}
|
||||
|
||||
void sub_809D208(u32 r0, struct unkStruct_809D158 *r1, u32 r2)
|
||||
{
|
||||
u32 temp;
|
||||
u32 temp1;
|
||||
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 3;
|
||||
gUnknown_20399E8.unkC = r2;
|
||||
|
||||
// Load both first and then store
|
||||
temp = r1->unk0;
|
||||
temp1 = r1->unk4;
|
||||
gUnknown_20399E8.unk14 = temp;
|
||||
gUnknown_20399E8.unk18 = temp1;
|
||||
}
|
||||
|
||||
void sub_809D220(u32 r0, u32 r1, u32 r2)
|
||||
{
|
||||
gUnknown_20399E8.unk0 = r0;
|
||||
gUnknown_20399E8.unk8 = 3;
|
||||
gUnknown_20399E8.unkC = r2;
|
||||
gUnknown_20399E8.unk4 = r1;
|
||||
}
|
||||
|
||||
u32 sub_809D234(void)
|
||||
{
|
||||
u32 temp;
|
||||
temp = gUnknown_20399E8.unk8;
|
||||
if(temp != 0)
|
||||
{
|
||||
temp = 1;
|
||||
}
|
||||
return temp;
|
||||
}
|
||||
|
||||
// TODO regswap but matches otherwise
|
||||
//u8 sub_809D248(struct unkStruct_809D158 *r0)
|
||||
//{
|
||||
// u32 temp;
|
||||
// u32 temp1;
|
||||
//
|
||||
// temp = gUnknown_20399E8.unk3C;
|
||||
// temp1 = gUnknown_20399E8.unk40;
|
||||
// r0->unk0 = temp;
|
||||
// r0->unk4 = temp1;
|
||||
// return gUnknown_20399E8.unk44;
|
||||
//}
|
||||
Reference in New Issue
Block a user