Decompile 4 more pokedex.c functions
Some checks are pending
CI / build (push) Waiting to run

This commit is contained in:
Marcus Huderle 2025-02-03 18:59:28 -06:00
parent 7df2f9bdd2
commit 56bc2e5a6e
7 changed files with 122 additions and 386 deletions

View File

@ -5,383 +5,6 @@
.text
thumb_func_start sub_5E60
sub_5E60: @ 0x08005E60
ldr r1, _08005E84 @ =gUnknown_0202C5F0
movs r2, #0
ldr r0, _08005E88 @ =0x0000DDDD
strh r0, [r1]
ldr r0, _08005E8C @ =gUnknown_0202C5B4
movs r1, #1
strh r1, [r0]
ldr r0, _08005E90 @ =gUnknown_0201C180
strh r1, [r0]
ldr r0, _08005E94 @ =gUnknown_0201B128
strb r2, [r0]
ldr r0, _08005E98 @ =gUnknown_0201C1BC
strb r2, [r0]
ldr r0, _08005E9C @ =gUnknown_0202C544
strb r2, [r0]
ldr r0, _08005EA0 @ =gUnknown_0202BECC
strb r2, [r0]
bx lr
.align 2, 0
_08005E84: .4byte gUnknown_0202C5F0
_08005E88: .4byte 0x0000DDDD
_08005E8C: .4byte gUnknown_0202C5B4
_08005E90: .4byte gUnknown_0201C180
_08005E94: .4byte gUnknown_0201B128
_08005E98: .4byte gUnknown_0201C1BC
_08005E9C: .4byte gUnknown_0202C544
_08005EA0: .4byte gUnknown_0202BECC
thumb_func_start sub_5EA4
sub_5EA4: @ 0x08005EA4
push {lr}
ldr r0, _08005EB4 @ =gLink
ldrb r0, [r0]
cmp r0, #0
beq _08005EB8
bl sub_639C
b _08005EBC
.align 2, 0
_08005EB4: .4byte gLink
_08005EB8:
bl sub_65DC
_08005EBC:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r0, r0, #0x10
asrs r0, r0, #0x10
pop {r1}
bx r1
thumb_func_start sub_5EC8
sub_5EC8: @ 0x08005EC8
push {lr}
ldr r0, _08005ED8 @ =gLink
ldrb r0, [r0]
cmp r0, #0
beq _08005EDC
bl sub_5EEC
b _08005EE0
.align 2, 0
_08005ED8: .4byte gLink
_08005EDC:
bl sub_6144
_08005EE0:
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
lsls r0, r0, #0x10
asrs r0, r0, #0x10
pop {r1}
bx r1
thumb_func_start sub_5EEC
sub_5EEC: @ 0x08005EEC
push {r4, r5, lr}
ldr r0, _08005F0C @ =gUnknown_0201B128
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08005F5C
ldr r0, _08005F10 @ =gUnknown_0201C1BC
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08005F14
cmp r0, #1
beq _08005F4C
b _08006136
.align 2, 0
_08005F0C: .4byte gUnknown_0201B128
_08005F10: .4byte gUnknown_0201C1BC
_08005F14:
ldr r0, _08005F28 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08005F34
ldr r1, _08005F2C @ =gUnknown_0202C5F0
ldr r0, _08005F30 @ =0x0000FEFE
strh r0, [r1]
b _08006136
.align 2, 0
_08005F28: .4byte gMain
_08005F2C: .4byte gUnknown_0202C5F0
_08005F30: .4byte 0x0000FEFE
_08005F34:
ldr r1, _08005F48 @ =gUnknown_0202C5F0
movs r2, #0
adds r0, r1, #0
adds r0, #0xe
_08005F3C:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _08005F3C
b _08006136
.align 2, 0
_08005F48: .4byte gUnknown_0202C5F0
_08005F4C:
ldr r1, _08005F54 @ =gUnknown_0202C5F0
ldr r0, _08005F58 @ =0x0000ECEC
strh r0, [r1]
b _08006136
.align 2, 0
_08005F54: .4byte gUnknown_0202C5F0
_08005F58: .4byte 0x0000ECEC
_08005F5C:
ldr r0, _08005F78 @ =gUnknown_0201C180
ldrh r1, [r0]
adds r5, r0, #0
cmp r1, #7
bhi _08005F84
ldr r1, _08005F7C @ =gUnknown_0202C5F0
ldr r2, _08005F80 @ =0x0000DDDD
adds r0, r1, #0
adds r0, #0xe
_08005F6E:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _08005F6E
b _08006130
.align 2, 0
_08005F78: .4byte gUnknown_0201C180
_08005F7C: .4byte gUnknown_0202C5F0
_08005F80: .4byte 0x0000DDDD
_08005F84:
cmp r1, #0xf
bls _08005F8A
b _08006120
_08005F8A:
ldrh r2, [r5]
adds r1, r2, #0
subs r1, #8
lsls r0, r1, #3
subs r0, r0, r1
lsls r0, r0, #0x12
lsrs r0, r0, #0x10
mov ip, r0
ldr r4, _08006118 @ =gUnknown_0202C5F0
strh r2, [r4]
ldr r3, _0800611C @ =gUnknown_0202A1C0
lsls r2, r0, #1
adds r2, r2, r3
adds r0, #1
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
lsls r1, r1, #4
ldrh r0, [r2]
orrs r1, r0
mov r0, ip
adds r0, #2
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #8
orrs r1, r0
mov r0, ip
adds r0, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #0xc
orrs r1, r0
strh r1, [r4, #2]
mov r2, ip
adds r2, #4
lsls r2, r2, #1
adds r2, r2, r3
mov r0, ip
adds r0, #5
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
lsls r1, r1, #4
ldrh r0, [r2]
orrs r1, r0
mov r0, ip
adds r0, #6
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #8
orrs r1, r0
mov r0, ip
adds r0, #7
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #0xc
orrs r1, r0
strh r1, [r4, #4]
mov r2, ip
adds r2, #8
lsls r2, r2, #1
adds r2, r2, r3
mov r0, ip
adds r0, #9
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
lsls r1, r1, #4
ldrh r0, [r2]
orrs r1, r0
mov r0, ip
adds r0, #0xa
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #8
orrs r1, r0
mov r0, ip
adds r0, #0xb
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #0xc
orrs r1, r0
strh r1, [r4, #6]
mov r2, ip
adds r2, #0xc
lsls r2, r2, #1
adds r2, r2, r3
mov r0, ip
adds r0, #0xd
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
lsls r1, r1, #4
ldrh r0, [r2]
orrs r1, r0
mov r0, ip
adds r0, #0xe
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #8
orrs r1, r0
mov r0, ip
adds r0, #0xf
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #0xc
orrs r1, r0
strh r1, [r4, #8]
mov r2, ip
adds r2, #0x10
lsls r2, r2, #1
adds r2, r2, r3
mov r0, ip
adds r0, #0x11
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
lsls r1, r1, #4
ldrh r0, [r2]
orrs r1, r0
mov r0, ip
adds r0, #0x12
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #8
orrs r1, r0
mov r0, ip
adds r0, #0x13
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #0xc
orrs r1, r0
strh r1, [r4, #0xa]
mov r2, ip
adds r2, #0x14
lsls r2, r2, #1
adds r2, r2, r3
mov r0, ip
adds r0, #0x15
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
lsls r1, r1, #4
ldrh r0, [r2]
orrs r1, r0
mov r0, ip
adds r0, #0x16
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #8
orrs r1, r0
mov r0, ip
adds r0, #0x17
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #0xc
orrs r1, r0
strh r1, [r4, #0xc]
mov r2, ip
adds r2, #0x18
lsls r2, r2, #1
adds r2, r2, r3
mov r0, ip
adds r0, #0x19
lsls r0, r0, #1
adds r0, r0, r3
ldrh r1, [r0]
lsls r1, r1, #4
ldrh r0, [r2]
orrs r1, r0
mov r0, ip
adds r0, #0x1a
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #8
orrs r1, r0
mov r0, ip
adds r0, #0x1b
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
lsls r0, r0, #0xc
orrs r1, r0
strh r1, [r4, #0xe]
b _08006130
.align 2, 0
_08006118: .4byte gUnknown_0202C5F0
_0800611C: .4byte gUnknown_0202A1C0
_08006120:
ldr r1, _08006140 @ =gUnknown_0202C5F0
movs r2, #0
adds r0, r1, #0
adds r0, #0xe
_08006128:
strh r2, [r0]
subs r0, #2
cmp r0, r1
bge _08006128
_08006130:
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
_08006136:
movs r0, #0
pop {r4, r5}
pop {r1}
bx r1
.align 2, 0
_08006140: .4byte gUnknown_0202C5F0
thumb_func_start sub_6144
sub_6144: @ 0x08006144
push {r4, r5, lr}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -352,13 +352,6 @@ extern void sub_3FAC(void);
//extern ? sub_4BB4();
//extern ? sub_4C80();
//extern ? sub_4D50();
extern void sub_5E60(void);
//extern ? sub_5EA4();
//extern ? sub_5EC8();
//extern ? sub_5EEC();
//extern ? sub_6144();
//extern ? sub_639C();
//extern ? sub_65DC();
extern void sub_681C();
extern void sub_6BEC();
extern void sub_6CA0(s16);

View File

@ -15,12 +15,23 @@ void sub_4F50(void);
void sub_4FC8(void);
void sub_5064(void);
void sub_51CC(void);
s16 sub_5EA4(void); // TODO Pretty sure it's s16, but could be u16
void sub_5EC8(void);
static s16 sub_5EA4(void);
s16 sub_5EC8(void);
void sub_70E0(s16, s32);
void sub_88E4(void);
void sub_51FC(void);
static void sub_599C(void);
static void sub_5E60(void);
int sub_639C(void);
int sub_65DC(void);
int sub_5EEC(void);
int sub_6144(void);
extern u16 gUnknown_0201C180;
extern u16 gUnknown_0202C5B4;
extern s8 gUnknown_0201C1BC;
extern u8 gUnknown_0202C544;
extern u8 gUnknown_0202BECC;
extern const struct SpriteSet *const gUnknown_086A6148[];
extern u16 gUnknown_0202BF08;
@ -1298,3 +1309,112 @@ static void sub_599C(void)
group7->available = 0;
}
static void sub_5E60(void)
{
gUnknown_0202C5F0[0] = 0xDDDD;
gUnknown_0202C5B4 = 1;
gUnknown_0201C180 = 1;
gUnknown_0201B128 = 0;
gUnknown_0201C1BC = 0;
gUnknown_0202C544 = 0;
gUnknown_0202BECC = 0;
}
static s16 sub_5EA4(void)
{
s16 result;
if (gLink.isMaster)
result = sub_639C();
else
result = sub_65DC();
return result;
}
s16 sub_5EC8(void)
{
s16 result;
if (gLink.isMaster)
result = sub_5EEC();
else
result = sub_6144();
return result;
}
int sub_5EEC(void)
{
int i;
u16 var0;
if (gUnknown_0201B128 == 0)
{
switch (gUnknown_0201C1BC)
{
case 0:
if (JOY_NEW(A_BUTTON))
{
gUnknown_0202C5F0[0] = 0xFEFE;
}
else
{
for (i = 0; i < 8; i++)
gUnknown_0202C5F0[i] = 0;
}
return 0;
case 1:
gUnknown_0202C5F0[0] = 0xECEC;
return 0;
}
return 0;
}
else if (gUnknown_0201C180 < 8)
{
for (i = 0; i < 8; i++)
gUnknown_0202C5F0[i] = 0xDDDD;
}
else if (gUnknown_0201C180 < 16)
{
var0 = (gUnknown_0201C180 - 8) * 28;
gUnknown_0202C5F0[0] = gUnknown_0201C180;
gUnknown_0202C5F0[1] = gUnknown_0202A1C0[var0] |
(gUnknown_0202A1C0[var0 + 1] << 4) |
(gUnknown_0202A1C0[var0 + 2] << 8) |
(gUnknown_0202A1C0[var0 + 3] << 12);
gUnknown_0202C5F0[2] = gUnknown_0202A1C0[var0 + 4] |
(gUnknown_0202A1C0[var0 + 5] << 4) |
(gUnknown_0202A1C0[var0 + 6] << 8) |
(gUnknown_0202A1C0[var0 + 7] << 12);
gUnknown_0202C5F0[3] = gUnknown_0202A1C0[var0 + 8] |
(gUnknown_0202A1C0[var0 + 9] << 4) |
(gUnknown_0202A1C0[var0 + 10] << 8) |
(gUnknown_0202A1C0[var0 + 11] << 12);
gUnknown_0202C5F0[4] = gUnknown_0202A1C0[var0 + 12] |
(gUnknown_0202A1C0[var0 + 13] << 4) |
(gUnknown_0202A1C0[var0 + 14] << 8) |
(gUnknown_0202A1C0[var0 + 15] << 12);
gUnknown_0202C5F0[5] = gUnknown_0202A1C0[var0 + 16] |
(gUnknown_0202A1C0[var0 + 17] << 4) |
(gUnknown_0202A1C0[var0 + 18] << 8) |
(gUnknown_0202A1C0[var0 + 19] << 12);
gUnknown_0202C5F0[6] = gUnknown_0202A1C0[var0 + 20] |
(gUnknown_0202A1C0[var0 + 21] << 4) |
(gUnknown_0202A1C0[var0 + 22] << 8) |
(gUnknown_0202A1C0[var0 + 23] << 12);
gUnknown_0202C5F0[7] = gUnknown_0202A1C0[var0 + 24] |
(gUnknown_0202A1C0[var0 + 25] << 4) |
(gUnknown_0202A1C0[var0 + 26] << 8) |
(gUnknown_0202A1C0[var0 + 27] << 12);
}
else
{
for (i = 0; i < 8; i++)
gUnknown_0202C5F0[i] = 0;
}
gUnknown_0201C180++;
return 0;
}