Skip to content

Commit

Permalink
Decompile 4 high_scores functions
Browse files Browse the repository at this point in the history
  • Loading branch information
huderlem committed Feb 13, 2024
1 parent eca5101 commit 4da84cd
Show file tree
Hide file tree
Showing 4 changed files with 97 additions and 239 deletions.
234 changes: 0 additions & 234 deletions asm/high_scores.s
Original file line number Diff line number Diff line change
Expand Up @@ -4,240 +4,6 @@

.text

thumb_func_start sub_D9F8
sub_D9F8: @ 0x0800D9F8
push {lr}
bl sub_19B4
bl sub_E908
ldr r1, _0800DA18 @ =gUnknown_0201B124
movs r0, #0
strb r0, [r1]
bl sub_E464
ldr r1, _0800DA1C @ =gMain
movs r0, #6
strb r0, [r1, #3]
pop {r0}
bx r0
.align 2, 0
_0800DA18: .4byte gUnknown_0201B124
_0800DA1C: .4byte gMain

thumb_func_start sub_DA20
sub_DA20: @ 0x0800DA20
push {r4, r5, lr}
bl sub_E464
ldr r4, _0800DA4C @ =gMain
ldrh r1, [r4, #0x18]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0800DA58
movs r0, #0x66
bl m4aSongNumStart
ldr r0, _0800DA50 @ =gUnknown_0201B178
movs r1, #0
strb r1, [r0]
ldr r0, _0800DA54 @ =gUnknown_0202BEBC
strb r1, [r0]
bl sub_2568
movs r0, #3
strb r0, [r4, #3]
b _0800DB2E
.align 2, 0
_0800DA4C: .4byte gMain
_0800DA50: .4byte gUnknown_0201B178
_0800DA54: .4byte gUnknown_0202BEBC
_0800DA58:
ldr r5, _0800DAB8 @ =gUnknown_0202ADD0
ldr r0, _0800DABC @ =gUnknown_0202BEC8
ldr r1, _0800DAC0 @ =gUnknown_0202C5F0
ldr r2, _0800DAC4 @ =gUnknown_0201A4D0
bl sub_1B04
str r0, [r5]
ldr r1, _0800DAC8 @ =gUnknown_0202BDF0
movs r3, #3
ands r3, r0
str r3, [r1]
ldr r2, _0800DACC @ =gUnknown_0201C1AC
movs r1, #0x1c
ands r1, r0
lsrs r1, r1, #2
strb r1, [r2]
ldr r2, _0800DAD0 @ =gUnknown_0202ADDC
movs r1, #0xe0
lsls r1, r1, #4
ands r1, r0
lsrs r1, r1, #9
strb r1, [r2]
movs r1, #0x40
ands r1, r0
cmp r1, #0
beq _0800DB2E
cmp r3, #1
bhi _0800DB2E
bl sub_E970
ldr r0, [r5]
movs r1, #0x80
lsls r1, r1, #1
ands r0, r1
cmp r0, #0
bne _0800DAE8
bl sub_E94C
lsls r0, r0, #0x10
asrs r1, r0, #0x10
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0800DAD4
movs r0, #8
strb r0, [r4, #3]
b _0800DAE8
.align 2, 0
_0800DAB8: .4byte gUnknown_0202ADD0
_0800DABC: .4byte gUnknown_0202BEC8
_0800DAC0: .4byte gUnknown_0202C5F0
_0800DAC4: .4byte gUnknown_0201A4D0
_0800DAC8: .4byte gUnknown_0202BDF0
_0800DACC: .4byte gUnknown_0201C1AC
_0800DAD0: .4byte gUnknown_0202ADDC
_0800DAD4:
cmp r1, #1
bne _0800DAE8
ldr r0, _0800DB34 @ =gUnknown_0202BEBC
movs r1, #2
strb r1, [r0]
movs r0, #7
strb r0, [r4, #3]
movs r0, #0x8a
bl m4aSongNumStart
_0800DAE8:
ldr r1, _0800DB38 @ =gUnknown_0201A510
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldr r0, _0800DB3C @ =gUnknown_0202ADD0
ldr r0, [r0]
movs r1, #0xfe
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _0800DB2E
ldr r0, _0800DB40 @ =gUnknown_0202ADE4
movs r1, #0
ldrsb r1, [r0, r1]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
bne _0800DB2E
ldr r1, _0800DB44 @ =gUnknown_0201A444
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0xb4
ble _0800DB2E
ldr r1, _0800DB34 @ =gUnknown_0202BEBC
movs r0, #2
strb r0, [r1]
ldr r1, _0800DB48 @ =gMain
movs r0, #7
strb r0, [r1, #3]
movs r0, #0x8a
bl m4aSongNumStart
_0800DB2E:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0800DB34: .4byte gUnknown_0202BEBC
_0800DB38: .4byte gUnknown_0201A510
_0800DB3C: .4byte gUnknown_0202ADD0
_0800DB40: .4byte gUnknown_0202ADE4
_0800DB44: .4byte gUnknown_0201A444
_0800DB48: .4byte gMain

thumb_func_start sub_DB4C
sub_DB4C: @ 0x0800DB4C
ldr r1, _0800DB68 @ =gUnknown_0201A444
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #2
ble _0800DB66
movs r0, #0
strh r0, [r1]
ldr r1, _0800DB6C @ =gMain
movs r0, #5
strb r0, [r1, #3]
_0800DB66:
bx lr
.align 2, 0
_0800DB68: .4byte gUnknown_0201A444
_0800DB6C: .4byte gMain

thumb_func_start sub_DB70
sub_DB70: @ 0x0800DB70
push {r4, r5, r6, lr}
bl sub_E464
ldr r1, _0800DBDC @ =gUnknown_02002858
ldrh r0, [r1, #0x22]
adds r0, #1
movs r2, #0
strh r0, [r1, #0x22]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #0x5a
ble _0800DBD4
movs r0, #0
strh r0, [r1, #0x22]
ldr r0, _0800DBE0 @ =gUnknown_0201B178
strb r2, [r0]
ldr r0, _0800DBE4 @ =gUnknown_0202BEBC
strb r2, [r0]
bl sub_2568
bl sub_1AA4
movs r1, #0
ldr r6, _0800DBE8 @ =gUnknown_0202C550
ldr r5, _0800DBEC @ =gUnknown_0202C610
_0800DBA2:
lsls r0, r1, #1
adds r4, r1, #1
adds r0, r0, r1
lsls r1, r0, #3
lsls r0, r0, #6
adds r3, r0, r5
adds r1, r1, r6
movs r2, #5
_0800DBB2:
ldm r3!, {r0}
stm r1!, {r0}
subs r2, #1
cmp r2, #0
bge _0800DBB2
adds r1, r4, #0
cmp r1, #1
ble _0800DBA2
movs r4, #0
bl sub_02B4
bl m4aMPlayAllStop
bl sub_0D10
ldr r0, _0800DBF0 @ =gMain
strb r4, [r0, #3]
_0800DBD4:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0800DBDC: .4byte gUnknown_02002858
_0800DBE0: .4byte gUnknown_0201B178
_0800DBE4: .4byte gUnknown_0202BEBC
_0800DBE8: .4byte gUnknown_0202C550
_0800DBEC: .4byte gUnknown_0202C610
_0800DBF0: .4byte gMain

thumb_func_start sub_DBF4
sub_DBF4: @ 0x0800DBF4
push {r4, r5, r6, r7, lr}
Expand Down
7 changes: 3 additions & 4 deletions include/functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ extern void sub_D4B8(void);

extern void sub_D664(void);
extern void sub_D9F8(void);
extern void sub_DA20(void);
//extern ? sub_DB4C();
//extern ? sub_DB70();
//extern ? sub_DBF4();
Expand All @@ -146,9 +145,9 @@ extern void sub_DA20(void);
extern void sub_E3A8(void);
extern void sub_E464(void);
extern void sub_E860(void);
//extern ? sub_E908();
//extern ? sub_E94C();
//extern ? sub_E970();
extern void sub_E908(void);
extern s16 sub_E94C(void);
extern void sub_E970(void);
//extern ? sub_E994();
//extern ? sub_EAC0();
//extern ? sub_EBEC();
Expand Down
1 change: 1 addition & 0 deletions include/variables.h
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,7 @@ extern struct Coord16 gUnknown_086A96C0[];
extern u16 gUnknown_02019C40[];
extern s16 gUnknown_0201A514;
extern s16 gUnknown_0202ADE0;
extern s8 gUnknown_0202ADE4;
extern s16 gUnknown_0202BEB8;
extern s16 gUnknown_0202C5B0;

Expand Down
94 changes: 93 additions & 1 deletion src/high_scores.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ struct unkStruct_2002858
struct unkStruct_2002858 gUnknown_02002858;

extern struct HighScoreEntry gUnknown_0202C610[2][NUM_HIGH_SCORES];
extern struct HighScoreEntry gUnknown_0202C550[2];
extern u8 gUnknown_0809AFC0[];
extern u8 gUnknown_080947A0[];
extern u8 gUnknown_0809DDE0[];
Expand Down Expand Up @@ -582,7 +583,8 @@ void sub_D4B8(void)
gMain.unk2E8[2].unk0 = gUnknown_02002882;
}

void sub_D664(void) {
void sub_D664(void)
{
int i, j, k;

sub_E3A8();
Expand Down Expand Up @@ -710,3 +712,93 @@ void sub_D664(void) {
if (gUnknown_02002858.unk20 > 0)
gUnknown_02002858.unk20--;
}

void sub_D9F8(void)
{
sub_19B4();
sub_E908();
gUnknown_0201B124 = 0;
sub_E464();
gMain.subState = 6;
}

void sub_DA20(void)
{
sub_E464();
if (gMain.newKeys & B_BUTTON)
{
m4aSongNumStart(0x66);
gUnknown_0201B178 = 0;
gUnknown_0202BEBC = 0;
sub_2568();
gMain.subState = 3;
}
else
{
gUnknown_0202ADD0 = sub_1B04(&gUnknown_0202BEC8, gUnknown_0202C5F0, gUnknown_0201A4D0);
gUnknown_0202BDF0 = gUnknown_0202ADD0 & 3;
gUnknown_0201C1AC = (gUnknown_0202ADD0 & 0x1c) >> 2;
gUnknown_0202ADDC = (gUnknown_0202ADD0 & 0xe00) >> 9;
if (((gUnknown_0202ADD0 & 0x40) != 0) && gUnknown_0202BDF0 < 2)
{
sub_E970();
if ((gUnknown_0202ADD0 & 0x100) == 0)
{
s16 var0 = sub_E94C();
if (var0 == -1)
{
gMain.subState = 8;
}
else if (var0 == 1)
{
gUnknown_0202BEBC = 2;
gMain.subState = 7;
m4aSongNumStart(0x8A);
}
}

gUnknown_0201A510++;
if ((gUnknown_0202ADD0 & 0x7f0000) != 0 && gUnknown_0202ADE4 == -1 && ++gUnknown_0201A444 > 180)
{
gUnknown_0202BEBC = 2;
gMain.subState = 7;
m4aSongNumStart(0x8A);
}
}
}
}

void sub_DB4C(void)
{
if (++gUnknown_0201A444 > 2)
{
gUnknown_0201A444 = 0;
gMain.subState = 5;
}
}

void sub_DB70(void)
{
int i, j;

sub_E464();
if (++gUnknown_02002858.unk22 > 90)
{
gUnknown_02002858.unk22 = 0;
gUnknown_0201B178 = 0;
gUnknown_0202BEBC = 0;
sub_2568();
sub_1AA4();
for (i = 0; i < 2; i++)
{
for (j = 0; j < 6; j++)
{
gUnknown_0202C550[i].data.raw[j] = gUnknown_0202C610[i][0].data.raw[j];
}
}
sub_02B4();
m4aMPlayAllStop();
sub_0D10();
gMain.subState = 0;
}
}

0 comments on commit 4da84cd

Please sign in to comment.