sub_800DBF8

This commit is contained in:
PikalaxALT 2017-12-02 10:19:02 -05:00
parent e2244831a7
commit c282e4fa59
3 changed files with 68 additions and 168 deletions

View file

@ -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}

View file

@ -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;

View file

@ -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;
}
}