sub_800DBF8
This commit is contained in:
parent
e2244831a7
commit
c282e4fa59
3 changed files with 68 additions and 168 deletions
168
asm/link_rfu.s
168
asm/link_rfu.s
|
@ -7,174 +7,6 @@
|
|||
|
||||
@ file boundary?
|
||||
|
||||
thumb_func_start sub_800DB84
|
||||
sub_800DB84: @ 800DB84
|
||||
push {r4,r5,lr}
|
||||
adds r3, r0, 0
|
||||
adds r5, r1, 0
|
||||
movs r1, 0x80
|
||||
lsls r1, 2
|
||||
adds r0, r3, r1
|
||||
adds r1, 0x1
|
||||
adds r4, r3, r1
|
||||
ldrb r1, [r0]
|
||||
ldrb r0, [r4]
|
||||
cmp r1, r0
|
||||
beq _0800DBA6
|
||||
ldr r1, =0x00000203
|
||||
adds r0, r3, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _0800DBB0
|
||||
_0800DBA6:
|
||||
movs r0, 0
|
||||
b _0800DBEA
|
||||
.pool
|
||||
_0800DBB0:
|
||||
movs r2, 0
|
||||
_0800DBB2:
|
||||
adds r0, r5, r2
|
||||
ldrb r1, [r4]
|
||||
lsls r1, 8
|
||||
adds r1, r2, r1
|
||||
adds r1, r3, r1
|
||||
ldrb r1, [r1]
|
||||
strb r1, [r0]
|
||||
adds r2, 0x1
|
||||
cmp r2, 0xFF
|
||||
ble _0800DBB2
|
||||
ldr r0, =0x00000201
|
||||
adds r1, r3, r0
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
ldrb r2, [r1]
|
||||
strb r0, [r1]
|
||||
ldrb r2, [r1]
|
||||
movs r0, 0x1
|
||||
ands r0, r2
|
||||
ldrb r2, [r1]
|
||||
strb r0, [r1]
|
||||
ldr r0, =0x00000202
|
||||
adds r1, r3, r0
|
||||
ldrb r0, [r1]
|
||||
subs r0, 0x1
|
||||
ldrb r2, [r1]
|
||||
strb r0, [r1]
|
||||
movs r0, 0x1
|
||||
_0800DBEA:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_800DB84
|
||||
|
||||
thumb_func_start sub_800DBF8
|
||||
sub_800DBF8: @ 800DBF8
|
||||
push {r4-r7,lr}
|
||||
adds r6, r0, 0
|
||||
lsls r1, 24
|
||||
lsrs r1, 24
|
||||
adds r0, r1, 0
|
||||
movs r5, 0
|
||||
cmp r1, 0x1
|
||||
beq _0800DC36
|
||||
cmp r1, 0x1
|
||||
bgt _0800DC12
|
||||
cmp r1, 0
|
||||
beq _0800DC1C
|
||||
b _0800DCAA
|
||||
_0800DC12:
|
||||
cmp r0, 0x2
|
||||
beq _0800DC56
|
||||
cmp r0, 0x3
|
||||
beq _0800DC76
|
||||
b _0800DCAA
|
||||
_0800DC1C:
|
||||
movs r4, 0
|
||||
_0800DC1E:
|
||||
adds r0, r6, r4
|
||||
adds r1, r4, 0x1
|
||||
strb r1, [r0]
|
||||
lsls r0, r5, 16
|
||||
asrs r0, 16
|
||||
adds r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
adds r4, r1, 0
|
||||
cmp r4, 0xC7
|
||||
ble _0800DC1E
|
||||
b _0800DC70
|
||||
_0800DC36:
|
||||
movs r4, 0
|
||||
adds r2, r6, 0
|
||||
adds r2, 0xC8
|
||||
_0800DC3C:
|
||||
adds r0, r6, r4
|
||||
adds r1, r4, 0x1
|
||||
strb r1, [r0]
|
||||
lsls r0, r5, 16
|
||||
asrs r0, 16
|
||||
adds r0, r1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
adds r4, r1, 0
|
||||
cmp r4, 0x63
|
||||
ble _0800DC3C
|
||||
strh r5, [r2]
|
||||
b _0800DCAA
|
||||
_0800DC56:
|
||||
movs r4, 0
|
||||
_0800DC58:
|
||||
bl Random
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
adds r1, r6, r4
|
||||
strb r0, [r1]
|
||||
adds r0, r5, r0
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
adds r4, 0x1
|
||||
cmp r4, 0xC7
|
||||
ble _0800DC58
|
||||
_0800DC70:
|
||||
adds r0, r6, r4
|
||||
strh r5, [r0]
|
||||
b _0800DCAA
|
||||
_0800DC76:
|
||||
movs r4, 0
|
||||
ldr r3, =gUnknown_03000D74
|
||||
ldrb r1, [r3]
|
||||
ldrb r0, [r3]
|
||||
adds r7, r0, 0x1
|
||||
adds r2, r1, 0x1
|
||||
movs r0, 0xFF
|
||||
mov r12, r0
|
||||
_0800DC86:
|
||||
adds r0, r6, r4
|
||||
adds r1, r4, 0x1
|
||||
strb r2, [r0]
|
||||
adds r0, r4, r7
|
||||
mov r4, r12
|
||||
ands r0, r4
|
||||
adds r0, r5, r0
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
adds r2, 0x1
|
||||
adds r4, r1, 0
|
||||
cmp r1, 0xC7
|
||||
ble _0800DC86
|
||||
adds r0, r6, r1
|
||||
strh r5, [r0]
|
||||
ldrb r0, [r3]
|
||||
adds r0, 0x1
|
||||
strb r0, [r3]
|
||||
_0800DCAA:
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_800DBF8
|
||||
|
||||
thumb_func_start sub_800DCB4
|
||||
sub_800DCB4: @ 800DCB4
|
||||
push {r4,r5,lr}
|
||||
|
|
|
@ -109,6 +109,11 @@ struct UnkRfuStruct_Sub_Unused {
|
|||
/* 0x203 */ vu8 unk_203;
|
||||
};
|
||||
|
||||
struct UnkRfuStruct_Sub_Unused2 {
|
||||
/* 0x000 */ u8 unk_00[200];
|
||||
/* 0x0c8 */ u16 unk_c8;
|
||||
};
|
||||
|
||||
struct UnkRfuStruct_2 {
|
||||
/* 0x000 */ u8 filler_00[13];
|
||||
/* 0x00d */ u8 playerCount;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
|
||||
// Includes
|
||||
#include "global.h"
|
||||
#include "rng.h"
|
||||
#include "link.h"
|
||||
#include "librfu.h"
|
||||
#include "link_rfu.h"
|
||||
|
@ -1665,3 +1666,65 @@ void sub_800DB18(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2)
|
|||
q1->unk_203 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
bool8 sub_800DB84(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (q1->unk_200 == q1->unk_201 || q1->unk_203)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
q2[i] = q1->unk_00[q1->unk_201][i];
|
||||
}
|
||||
q1->unk_201++;
|
||||
q1->unk_201 %= 2;
|
||||
q1->unk_202--;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void sub_800DBF8(struct UnkRfuStruct_Sub_Unused2 *q1, u8 mode)
|
||||
{
|
||||
int i;
|
||||
u8 rval;
|
||||
u16 r5 = 0;
|
||||
switch (mode)
|
||||
{
|
||||
case 0:
|
||||
for (i = 0; i < 200; i++)
|
||||
{
|
||||
q1->unk_00[i] = i + 1;
|
||||
r5 += i + 1;
|
||||
}
|
||||
*((u16 *)(q1->unk_00 + i)) = r5;
|
||||
break;
|
||||
case 1:
|
||||
for (i = 0; i < 100; i++)
|
||||
{
|
||||
q1->unk_00[i] = i + 1;
|
||||
r5 += i + 1;
|
||||
}
|
||||
*((u16 *)(q1->unk_00 + 200)) = r5;
|
||||
break;
|
||||
case 2:
|
||||
for (i = 0; i < 200; i++)
|
||||
{
|
||||
rval = Random();
|
||||
q1->unk_00[i] = rval;
|
||||
r5 += rval;
|
||||
}
|
||||
*((u16 *)(q1->unk_00 + i)) = r5;
|
||||
break;
|
||||
case 3:
|
||||
for (i = 0; i < 200; i++)
|
||||
{
|
||||
q1->unk_00[i] = i + 1 + gUnknown_03000D74;
|
||||
r5 += (i + 1 + gUnknown_03000D74) & 0xFF;
|
||||
}
|
||||
*((u16 *)(q1->unk_00 + i)) = r5;
|
||||
gUnknown_03000D74++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue