through sub_800DD94

This commit is contained in:
PikalaxALT 2017-12-03 20:04:54 -05:00
parent c282e4fa59
commit 519c8d42f8
6 changed files with 250 additions and 344 deletions

View File

@ -7,250 +7,6 @@
@ file boundary?
thumb_func_start sub_800DCB4
sub_800DCB4: @ 800DCB4
push {r4,r5,lr}
adds r4, r0, 0
movs r3, 0
ldrb r0, [r1]
cmp r0, 0xFF
beq _0800DCD8
ldr r5, =gUnknown_082ED470
adds r2, r1, 0
_0800DCC4:
adds r1, r4, r3
ldrb r0, [r2]
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
adds r3, 0x1
ldrb r0, [r2]
cmp r0, 0xFF
bne _0800DCC4
_0800DCD8:
adds r1, r4, r3
movs r0, 0
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800DCB4
thumb_func_start sub_800DCE8
sub_800DCE8: @ 800DCE8
push {r4,r5,lr}
adds r4, r0, 0
movs r3, 0
ldrb r0, [r1]
cmp r0, 0
beq _0800DD0C
ldr r5, =gUnknown_082ED370
adds r2, r1, 0
_0800DCF8:
adds r1, r4, r3
ldrb r0, [r2]
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
adds r3, 0x1
ldrb r0, [r2]
cmp r0, 0
bne _0800DCF8
_0800DD0C:
adds r1, r4, r3
movs r0, 0xFF
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end sub_800DCE8
thumb_func_start sub_800DD1C
sub_800DD1C: @ 800DD1C
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
ldr r0, =gUnknown_03007890
ldr r4, [r0]
ldrb r2, [r4, 0x2]
ldrb r1, [r4]
adds r7, r0, 0
cmp r1, 0x1
bne _0800DD72
movs r3, 0
ands r1, r2
cmp r1, 0
beq _0800DD4E
cmp r5, 0x1
bne _0800DD48
ldrb r0, [r4, 0xA]
b _0800DD8C
.pool
_0800DD48:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_0800DD4E:
lsrs r2, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bhi _0800DD8A
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _0800DD4E
adds r0, r6, 0x1
cmp r5, r0
bne _0800DD48
_0800DD68:
ldr r0, [r7]
adds r0, 0xA
adds r0, r3
ldrb r0, [r0]
b _0800DD8C
_0800DD72:
movs r3, 0
movs r1, 0x1
_0800DD76:
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _0800DD68
lsrs r2, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _0800DD76
_0800DD8A:
movs r0, 0
_0800DD8C:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_800DD1C
thumb_func_start sub_800DD94
sub_800DD94: @ 800DD94
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
lsls r1, 24
lsrs r1, 24
mov r9, r1
movs r4, 0
ldr r0, =gSaveBlock2Ptr
mov r8, r0
adds r6, r7, 0x2
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0xA
_0800DDB2:
adds r0, r6, r4
adds r1, r5, r4
ldrb r1, [r1]
strb r1, [r0]
adds r4, 0x1
cmp r4, 0x1
ble _0800DDB2
movs r4, 0
lsls r2, 7
mov r12, r2
adds r1, r7, 0x4
_0800DDC8:
adds r0, r1, r4
strb r3, [r0]
asrs r3, 8
adds r4, 0x1
cmp r4, 0x3
ble _0800DDC8
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, 0x8]
movs r6, 0x1
movs r1, 0x1
ands r1, r0
ldrb r2, [r7, 0xB]
movs r5, 0x2
negs r5, r5
adds r0, r5, 0
ands r0, r2
orrs r0, r1
strb r0, [r7, 0xB]
movs r4, 0x7F
mov r1, r9
ands r1, r4
ldrb r2, [r7, 0xA]
movs r0, 0x80
negs r0, r0
ands r0, r2
orrs r0, r1
ands r0, r4
mov r1, r12
orrs r0, r1
strb r0, [r7, 0xA]
ldrb r0, [r7]
movs r1, 0x10
negs r1, r1
ands r1, r0
movs r0, 0x2
orrs r1, r0
ldrb r2, [r7, 0x1]
movs r0, 0x3D
negs r0, r0
ands r0, r2
movs r2, 0xC
orrs r0, r2
strb r0, [r7, 0x1]
movs r0, 0x11
negs r0, r0
ands r1, r0
subs r0, 0x10
ands r1, r0
subs r0, 0x20
ands r1, r0
strb r1, [r7]
ldr r0, =0x0000087f
bl FlagGet
lsls r0, 7
ldrb r1, [r7]
ands r4, r1
orrs r4, r0
strb r4, [r7]
bl IsNationalPokedexEnabled
ands r0, r6
ldrb r1, [r7, 0x1]
ands r5, r1
orrs r5, r0
strb r5, [r7, 0x1]
ldr r0, =0x00000864
bl FlagGet
ands r6, r0
lsls r6, 1
ldrb r1, [r7, 0x1]
movs r0, 0x3
negs r0, r0
ands r0, r1
orrs r0, r6
strb r0, [r7, 0x1]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end sub_800DD94
thumb_func_start sub_800DE7C
sub_800DE7C: @ 800DE7C
push {r4-r7,lr}

View File

@ -3,84 +3,6 @@
.section .rodata
.align 2
gWirelessLinkIconPalette:: @ 82ED22C
.incbin "graphics/interface/wireless_link_icon.gbapal"
.align 2
gWirelessLinkIconPic:: @ 82ED22C
.incbin "graphics/interface/wireless_link_icon.4bpp.lz"
.align 2
gUnknown_082ED370:: @ 82ED370
.byte 0xff, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37
.byte 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f
.byte 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47
.byte 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f
.byte 0x00, 0xab, 0xb5, 0xb6, 0xb1, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0xb2, 0xf1, 0x00, 0xae, 0xad, 0xba
.byte 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8
.byte 0xa9, 0xaa, 0x00, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f
.byte 0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1
.byte 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9
.byte 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1
.byte 0xd2, 0xd3, 0xd4, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6
.byte 0x00, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb
.byte 0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3
.byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb
.byte 0xec, 0xed, 0xee, 0x2d, 0x2f, 0x30, 0x31, 0x32
.byte 0x33, 0x34, 0x35, 0x36, 0x50, 0x00, 0x01, 0x02
.byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a
.byte 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12
.byte 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a
.byte 0x1b, 0xad, 0xb3, 0xb4, 0x00, 0xaf, 0x7d, 0x7f
.byte 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xa0
.byte 0xae, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57
.byte 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f
.byte 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67
.byte 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f
.byte 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77
.byte 0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0xb0, 0xac
.byte 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23
.byte 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b
.byte 0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c
.byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94
.align 2
gUnknown_082ED470:: @ 82ED470
.byte 0x20, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c
.byte 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94
.byte 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c
.byte 0x9d, 0x9e, 0x9f, 0xa0, 0xe0, 0xe1, 0xe2, 0xe3
.byte 0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb
.byte 0xec, 0xed, 0xee, 0xef, 0xf0, 0x7b, 0xf1, 0x7c
.byte 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x07
.byte 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f
.byte 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17
.byte 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f
.byte 0x84, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7
.byte 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf
.byte 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7
.byte 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf
.byte 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7
.byte 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xa6, 0xdd, 0xa7
.byte 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xf2
.byte 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa
.byte 0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x01, 0x02, 0x03
.byte 0x04, 0x05, 0x06, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f
.byte 0xaf, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36
.byte 0x37, 0x38, 0x39, 0x21, 0xdf, 0xa1, 0xb0, 0xa5
.byte 0xde, 0x24, 0x2a, 0xa2, 0xa3, 0x22, 0x23, 0x20
.byte 0xa4, 0x20, 0x2f, 0x41, 0x42, 0x43, 0x44, 0x45
.byte 0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d
.byte 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55
.byte 0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63
.byte 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b
.byte 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73
.byte 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20
.byte 0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20
.byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00
.align 2
gUnknown_082ED570:: @ 82ED570
.byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00

View File

@ -152,7 +152,9 @@ struct RfuUnk5
u8 unk_06;
u8 unk_07;
u8 unk_08;
u8 filler_09[11];
u8 filler_09[1];
u8 unk_0a[4];
u8 filler_0e[6];
struct RfuUnk5Sub {
u16 unk_00;
u8 unk_02;

View File

@ -5,17 +5,22 @@
struct UnkLinkRfuStruct_02022B14
{
u8 unk_00_0:4;
u8 unk_00_4:1;
u8 unk_00_5:1;
u8 unk_00_6:2;
u8 filler_01[2];
u8 unk_03[4];
u16 unk_00_0:4;
u16 unk_00_4:1;
u16 unk_00_5:1;
u16 unk_00_6:1;
u16 unk_00_7:1;
u16 unk_01_0:1;
u16 unk_01_1:1;
u16 unk_01_2:4;
u16 unk_01_6:2;
u8 playerTrainerId[2];
u8 unk_04[4];
u16 unk_08_0:10;
u16 unk_09_2:6;
u8 unk_0a_0:7;
u8 unk_0a_7:1;
u8 unk_0b_0:1;
u8 playerGender:1;
u8 unk_0b_1:7;
u8 unk_0c;
u8 unk_0d;
@ -109,11 +114,6 @@ 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

@ -331,6 +331,7 @@ SECTIONS {
data/io_reg.o(.rodata);
src/string_util.o(.rodata);
src/link.o(.rodata);
src/link_rfu.o(.rodata);
data/link_rfu.o(.rodata);
data/rom_8011DC0.o(.rodata);
src/rtc.o(.rodata);

View File

@ -2,6 +2,8 @@
// Includes
#include "global.h"
#include "rng.h"
#include "text.h"
#include "event_data.h"
#include "link.h"
#include "librfu.h"
#include "link_rfu.h"
@ -43,6 +45,77 @@ bool8 sub_800DAC8(struct UnkRfuStruct_2_Sub_c1c *q1, u8 *q2);
// .rodata
const u16 gWirelessLinkIconPalette[] = INCBIN_U16("graphics/interface/wireless_link_icon.gbapal");
const u8 gWirelessLinkIconPic[] = INCBIN_U8("graphics/interface/wireless_link_icon.4bpp.lz");
const u8 gUnknown_082ED370[] = {
0xff, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x37,
0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
0x00, 0xab, 0xb5, 0xb6, 0xb1, 0x00, 0x00, 0x00,
0x00, 0x00, 0xb2, 0xf1, 0x00, 0xae, 0xad, 0xba,
0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8,
0xa9, 0xaa, 0x00, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f,
0x00, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1,
0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1,
0xd2, 0xd3, 0xd4, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6,
0x00, 0xd5, 0xd6, 0xd7, 0xd8, 0xd9, 0xda, 0xdb,
0xdc, 0xdd, 0xde, 0xdf, 0xe0, 0xe1, 0xe2, 0xe3,
0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,
0xec, 0xed, 0xee, 0x2d, 0x2f, 0x30, 0x31, 0x32,
0x33, 0x34, 0x35, 0x36, 0x50, 0x00, 0x01, 0x02,
0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12,
0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a,
0x1b, 0xad, 0xb3, 0xb4, 0x00, 0xaf, 0x7d, 0x7f,
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0xa0,
0xae, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f,
0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7e, 0xb0, 0xac,
0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23,
0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b,
0x2c, 0x2e, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c,
0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94
};
const u8 gUnknown_082ED470[] = {
0x20, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c,
0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94,
0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c,
0x9d, 0x9e, 0x9f, 0xa0, 0xe0, 0xe1, 0xe2, 0xe3,
0xe4, 0xe5, 0xe6, 0xe7, 0xe8, 0xe9, 0xea, 0xeb,
0xec, 0xed, 0xee, 0xef, 0xf0, 0x7b, 0xf1, 0x7c,
0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x07,
0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
0x84, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf,
0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xa6, 0xdd, 0xa7,
0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xf2,
0xf3, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9, 0xfa,
0xfb, 0xfc, 0xfd, 0xfe, 0xff, 0x01, 0x02, 0x03,
0x04, 0x05, 0x06, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
0xaf, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
0x37, 0x38, 0x39, 0x21, 0xdf, 0xa1, 0xb0, 0xa5,
0xde, 0x24, 0x2a, 0xa2, 0xa3, 0x22, 0x23, 0x20,
0xa4, 0x20, 0x2f, 0x41, 0x42, 0x43, 0x44, 0x45,
0x46, 0x47, 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d,
0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55,
0x56, 0x57, 0x58, 0x59, 0x5a, 0x61, 0x62, 0x63,
0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b,
0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73,
0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7a, 0x20,
0x20, 0x2b, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x20,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00
};
// .text
u32 sub_800BEC0(void)
@ -1685,7 +1758,7 @@ bool8 sub_800DB84(struct UnkRfuStruct_Sub_Unused *q1, u8 *q2)
return TRUE;
}
void sub_800DBF8(struct UnkRfuStruct_Sub_Unused2 *q1, u8 mode)
void sub_800DBF8(u8 *q1, u8 mode)
{
int i;
u8 rval;
@ -1695,36 +1768,188 @@ void sub_800DBF8(struct UnkRfuStruct_Sub_Unused2 *q1, u8 mode)
case 0:
for (i = 0; i < 200; i++)
{
q1->unk_00[i] = i + 1;
q1[i] = i + 1;
r5 += i + 1;
}
*((u16 *)(q1->unk_00 + i)) = r5;
*((u16 *)(q1 + i)) = r5;
break;
case 1:
for (i = 0; i < 100; i++)
{
q1->unk_00[i] = i + 1;
q1[i] = i + 1;
r5 += i + 1;
}
*((u16 *)(q1->unk_00 + 200)) = r5;
*((u16 *)(q1 + 200)) = r5;
break;
case 2:
for (i = 0; i < 200; i++)
{
rval = Random();
q1->unk_00[i] = rval;
q1[i] = rval;
r5 += rval;
}
*((u16 *)(q1->unk_00 + i)) = r5;
*((u16 *)(q1 + i)) = r5;
break;
case 3:
for (i = 0; i < 200; i++)
{
q1->unk_00[i] = i + 1 + gUnknown_03000D74;
q1[i] = i + 1 + gUnknown_03000D74;
r5 += (i + 1 + gUnknown_03000D74) & 0xFF;
}
*((u16 *)(q1->unk_00 + i)) = r5;
*((u16 *)(q1 + i)) = r5;
gUnknown_03000D74++;
break;
}
}
void PkmnStrToASCII(u8 *q1, const u8 *q2)
{
int i;
for (i = 0; q2[i] != EOS; i++)
{
q1[i] = gUnknown_082ED470[q2[i]];
}
q1[i] = 0;
}
void ASCIIToPkmnStr(u8 *q1, const u8 *q2)
{
int i;
for (i = 0; q2[i] != 0; i++)
{
q1[i] = gUnknown_082ED370[q2[i]];
}
q1[i] = EOS;
}
#ifdef NONMATCHING
u8 sub_800DD1C(u8 maxFlags)
{
u8 flagCount = 0;
u8 flags = gUnknown_03007890->unk_02;
u8 i;
if (gUnknown_03007890->unk_00 == 1)
{
i = 0;
for (i = 0; i < 4; flags >>= 1, i++)
{
if (flags & 1)
{
if (maxFlags == flagCount + 1)
{
return gUnknown_03007890->unk_0a[i];
}
flagCount++;
}
}
}
else
{
for (i = 0; i < 4; flags >>= 1, i++)
{
if (flags & 1)
{
return gUnknown_03007890->unk_0a[i];
}
}
}
return 0;
}
#else
__attribute__((naked)) u8 sub_800DD1C(u8 maxFlags)
{
asm_unified("\tpush {r4-r7,lr}\n"
"\tlsls r0, 24\n"
"\tlsrs r5, r0, 24\n"
"\tmovs r6, 0\n"
"\tldr r0, =gUnknown_03007890\n"
"\tldr r4, [r0]\n"
"\tldrb r2, [r4, 0x2]\n"
"\tldrb r1, [r4]\n"
"\tadds r7, r0, 0\n"
"\tcmp r1, 0x1\n"
"\tbne _0800DD72\n"
"\tmovs r3, 0\n"
"\tands r1, r2\n"
"\tcmp r1, 0\n"
"\tbeq _0800DD4E\n"
"\tcmp r5, 0x1\n"
"\tbne _0800DD48\n"
"\tldrb r0, [r4, 0xA]\n"
"\tb _0800DD8C\n"
"\t.pool\n"
"_0800DD48:\n"
"\tadds r0, r6, 0x1\n"
"\tlsls r0, 24\n"
"\tlsrs r6, r0, 24\n"
"_0800DD4E:\n"
"\tlsrs r2, 1\n"
"\tadds r0, r3, 0x1\n"
"\tlsls r0, 24\n"
"\tlsrs r3, r0, 24\n"
"\tcmp r3, 0x3\n"
"\tbhi _0800DD8A\n"
"\tmovs r0, 0x1\n"
"\tands r0, r2\n"
"\tcmp r0, 0\n"
"\tbeq _0800DD4E\n"
"\tadds r0, r6, 0x1\n"
"\tcmp r5, r0\n"
"\tbne _0800DD48\n"
"_0800DD68:\n"
"\tldr r0, [r7]\n"
"\tadds r0, 0xA\n"
"\tadds r0, r3\n"
"\tldrb r0, [r0]\n"
"\tb _0800DD8C\n"
"_0800DD72:\n"
"\tmovs r3, 0\n"
"\tmovs r1, 0x1\n"
"_0800DD76:\n"
"\tadds r0, r2, 0\n"
"\tands r0, r1\n"
"\tcmp r0, 0\n"
"\tbne _0800DD68\n"
"\tlsrs r2, 1\n"
"\tadds r0, r3, 0x1\n"
"\tlsls r0, 24\n"
"\tlsrs r3, r0, 24\n"
"\tcmp r3, 0x3\n"
"\tbls _0800DD76\n"
"_0800DD8A:\n"
"\tmovs r0, 0\n"
"_0800DD8C:\n"
"\tpop {r4-r7}\n"
"\tpop {r1}\n"
"\tbx r1");
}
#endif
void sub_800DD94(struct UnkLinkRfuStruct_02022B14 *data, u8 r9, bool32 r2, int r3)
{
int i;
for (i = 0; i < 2; i++)
{
data->playerTrainerId[i] = gSaveBlock2Ptr->playerTrainerId[i];
}
for (i = 0; i < 4; i++)
{
data->unk_04[i] = r3;
r3 >>= 8;
}
data->playerGender = gSaveBlock2Ptr->playerGender;
data->unk_0a_0 = r9;
data->unk_0a_7 = r2;
data->unk_00_0 = 2;
data->unk_01_2 = 3;
data->unk_00_4 = 0;
data->unk_00_5 = 0;
data->unk_00_6 = 0;
data->unk_00_7 = FlagGet(FLAG_SYS_UNKNOWN_87F);
data->unk_01_0 = IsNationalPokedexEnabled();
data->unk_01_1 = FlagGet(FLAG_SYS_GAME_CLEAR);
}