through sub_2768

This commit is contained in:
PikalaxALT 2021-07-22 15:56:24 -04:00 committed by huderlem
parent 3a4437a42d
commit a1ad5cb2d9
5 changed files with 127 additions and 306 deletions

View File

@ -4,310 +4,6 @@
.text
thumb_func_start sub_2710
sub_2710: @ 0x08002710
ldr r0, _08002740 @ =gUnknown_0201A4F8
movs r1, #0
strb r1, [r0]
ldr r0, _08002744 @ =gUnknown_0202BED0
strb r1, [r0]
ldr r0, _08002748 @ =gUnknown_0202A560
movs r1, #0
strh r1, [r0]
ldr r0, _0800274C @ =gUnknown_0202BE1C
strh r1, [r0]
ldr r0, _08002750 @ =gUnknown_0202BEE8
strb r1, [r0]
ldr r0, _08002754 @ =gUnknown_0201A4F4
strh r1, [r0]
ldr r0, _08002758 @ =gUnknown_0201A4B0
strb r1, [r0]
ldr r0, _0800275C @ =gUnknown_0202BEE4
strb r1, [r0]
ldr r1, _08002760 @ =gUnknown_0201A4C0
ldr r0, _08002764 @ =gMain+0x74
adds r0, #0xce
ldrb r0, [r0]
strb r0, [r1]
bx lr
.align 2, 0
_08002740: .4byte gUnknown_0201A4F8
_08002744: .4byte gUnknown_0202BED0
_08002748: .4byte gUnknown_0202A560
_0800274C: .4byte gUnknown_0202BE1C
_08002750: .4byte gUnknown_0202BEE8
_08002754: .4byte gUnknown_0201A4F4
_08002758: .4byte gUnknown_0201A4B0
_0800275C: .4byte gUnknown_0202BEE4
_08002760: .4byte gUnknown_0201A4C0
_08002764: .4byte gMain+0x74
thumb_func_start sub_2768
sub_2768: @ 0x08002768
push {r4, r5, r6, lr}
bl sub_29C8
ldr r6, _08002784 @ =gUnknown_0202BED0
movs r4, #0
ldrsb r4, [r6, r4]
cmp r4, #1
bne _0800277A
b _08002884
_0800277A:
cmp r4, #1
bgt _08002788
cmp r4, #0
beq _08002790
b _0800296E
.align 2, 0
_08002784: .4byte gUnknown_0202BED0
_08002788:
cmp r4, #2
bne _0800278E
b _0800291C
_0800278E:
b _0800296E
_08002790:
ldr r0, _080027B8 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080027C0
ldr r4, _080027BC @ =gUnknown_0201A4F8
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
beq _080027E2
cmp r0, #3
beq _080027E2
movs r0, #0x6d
bl m4aSongNumStart
ldrb r0, [r4]
subs r0, #1
b _080027E0
.align 2, 0
_080027B8: .4byte gMain
_080027BC: .4byte gUnknown_0201A4F8
_080027C0:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _080027E2
ldr r4, _08002804 @ =gUnknown_0201A4F8
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #2
beq _080027E2
cmp r0, #5
beq _080027E2
movs r0, #0x6d
bl m4aSongNumStart
ldrb r0, [r4]
adds r0, #1
_080027E0:
strb r0, [r4]
_080027E2:
ldr r0, _08002808 @ =gMain
ldrh r1, [r0, #0x18]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0800280C
ldr r4, _08002804 @ =gUnknown_0201A4F8
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #2
ble _0800282A
movs r0, #0x6d
bl m4aSongNumStart
ldrb r0, [r4]
subs r0, #3
b _08002828
.align 2, 0
_08002804: .4byte gUnknown_0201A4F8
_08002808: .4byte gMain
_0800280C:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0800282A
ldr r4, _0800286C @ =gUnknown_0201A4F8
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #2
bgt _0800282A
movs r0, #0x6d
bl m4aSongNumStart
ldrb r0, [r4]
adds r0, #3
_08002828:
strb r0, [r4]
_0800282A:
ldr r4, _08002870 @ =gMain
ldrh r1, [r4, #0x18]
movs r5, #1
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0800284C
movs r0, #0x65
bl m4aSongNumStart
ldr r0, _08002874 @ =gUnknown_0202BED0
strb r5, [r0]
ldr r0, _08002878 @ =gUnknown_0201A4B0
strb r5, [r0]
ldr r1, _0800287C @ =gUnknown_0202A560
movs r0, #0
strh r0, [r1]
_0800284C:
ldrh r1, [r4, #0x18]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08002858
b _0800296E
_08002858:
movs r0, #0x66
bl m4aSongNumStart
ldr r0, _08002880 @ =gUnknown_0202BEE4
strb r5, [r0]
ldrb r0, [r4, #3]
adds r0, #1
strb r0, [r4, #3]
b _0800296E
.align 2, 0
_0800286C: .4byte gUnknown_0201A4F8
_08002870: .4byte gMain
_08002874: .4byte gUnknown_0202BED0
_08002878: .4byte gUnknown_0201A4B0
_0800287C: .4byte gUnknown_0202A560
_08002880: .4byte gUnknown_0202BEE4
_08002884:
ldr r5, _08002904 @ =gMain
ldrh r1, [r5, #0x18]
movs r0, #0x30
ands r0, r1
cmp r0, #0
beq _080028A0
movs r0, #0x67
bl m4aSongNumStart
ldr r2, _08002908 @ =gUnknown_0201A4C0
ldrb r1, [r2]
movs r0, #1
subs r0, r0, r1
strb r0, [r2]
_080028A0:
ldrh r0, [r5, #0x18]
ands r4, r0
cmp r4, #0
beq _080028CC
movs r0, #0x65
bl m4aSongNumStart
ldr r0, _0800290C @ =gUnknown_0202A560
movs r1, #0
strh r1, [r0]
ldr r0, _08002910 @ =gUnknown_0202BE1C
strh r1, [r0]
ldr r0, _08002908 @ =gUnknown_0201A4C0
ldrb r0, [r0]
movs r2, #0xa1
lsls r2, r2, #1
adds r1, r5, r2
strb r0, [r1]
bl SaveFile_WriteToSram
movs r0, #2
strb r0, [r6]
_080028CC:
ldrh r1, [r5, #0x18]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080028E4
movs r0, #0x66
bl m4aSongNumStart
ldr r1, _08002914 @ =gUnknown_0201A4B0
movs r0, #0
strb r0, [r1]
strb r0, [r6]
_080028E4:
ldr r1, _0800290C @ =gUnknown_0202A560
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #4
ble _0800296E
movs r0, #0
strh r0, [r1]
ldr r2, _08002918 @ =gUnknown_0201A4F4
ldrh r1, [r2]
movs r0, #1
subs r0, r0, r1
strh r0, [r2]
b _0800296E
.align 2, 0
_08002904: .4byte gMain
_08002908: .4byte gUnknown_0201A4C0
_0800290C: .4byte gUnknown_0202A560
_08002910: .4byte gUnknown_0202BE1C
_08002914: .4byte gUnknown_0201A4B0
_08002918: .4byte gUnknown_0201A4F4
_0800291C:
ldr r1, _08002974 @ =gUnknown_0202A560
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _0800296E
movs r3, #0
strh r3, [r1]
ldr r2, _08002978 @ =gUnknown_0202BEE8
ldrb r1, [r2]
movs r0, #2
subs r0, r0, r1
strb r0, [r2]
ldr r1, _0800297C @ =gUnknown_0202BE1C
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #5
ble _0800296E
ldr r1, _08002980 @ =gMain
strb r3, [r1, #0xd]
ldr r2, _08002984 @ =gUnknown_086A4CF0
ldr r0, _08002988 @ =gUnknown_0201A4F8
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r1, #4]
strb r0, [r1, #5]
movs r0, #1
strb r0, [r1, #6]
ldr r0, _0800298C @ =gUnknown_0202BEE4
strb r4, [r0]
ldrb r0, [r1, #3]
adds r0, #1
strb r0, [r1, #3]
_0800296E:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_08002974: .4byte gUnknown_0202A560
_08002978: .4byte gUnknown_0202BEE8
_0800297C: .4byte gUnknown_0202BE1C
_08002980: .4byte gMain
_08002984: .4byte gUnknown_086A4CF0
_08002988: .4byte gUnknown_0201A4F8
_0800298C: .4byte gUnknown_0202BEE4
thumb_func_start sub_2990
sub_2990: @ 0x08002990
push {lr}

View File

@ -4,4 +4,4 @@ OBJDUMP="$DEVKITARM/bin/arm-none-eabi-objdump -D -bbinary -marmv4t -Mforce-thumb
OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))"
$OBJDUMP $OPTIONS baserom.gba > baserom.dump
$OBJDUMP $OPTIONS pokepinballrs.gba > pokepinballrs.dump
diff baserom.dump pokepinballrs.dump
diff -u baserom.dump pokepinballrs.dump

View File

@ -28,7 +28,7 @@ SECTIONS
. = 0x08000000;
.text :
{
asm/start.o(.text);
asm/crt0.o(.text);
src/util.o(.text);
src/rom_850.o(.text);
src/main.o(.text);

View File

@ -48,3 +48,128 @@ void sub_25C4(void)
gMain.subState++;
}
EWRAM_DATA u16 gUnknown_0201A4F4 = 0;
EWRAM_DATA s8 gUnknown_0201A4F8 = 0;
EWRAM_DATA u8 gUnknown_0201A4B0 = 0;
EWRAM_DATA u8 gUnknown_0201A4C0 = 0;
EWRAM_DATA s16 gUnknown_0202A560 = 0;
EWRAM_DATA s16 gUnknown_0202BE1C = 0;
EWRAM_DATA s8 gUnknown_0202BED0 = 0;
EWRAM_DATA u8 gUnknown_0202BEE4 = 0;
EWRAM_DATA u8 gUnknown_0202BEE8 = 0;
extern const u8 gUnknown_086A4CF0[];
void sub_2710(void)
{
gUnknown_0201A4F8 = 0;
gUnknown_0202BED0 = 0;
gUnknown_0202A560 = 0;
gUnknown_0202BE1C = 0;
gUnknown_0202BEE8 = 0;
gUnknown_0201A4F4 = 0;
gUnknown_0201A4B0 = 0;
gUnknown_0202BEE4 = 0;
gUnknown_0201A4C0 = gMain_saveData.ballSpeed;
}
void sub_2768(void)
{
sub_29C8();
switch (gUnknown_0202BED0)
{
case 0:
if (gMain.newKeys & DPAD_LEFT)
{
if (gUnknown_0201A4F8 != 0 && gUnknown_0201A4F8 != 3)
{
m4aSongNumStart(0x6D);
gUnknown_0201A4F8--;
}
}
else if (gMain.newKeys & DPAD_RIGHT)
{
if (gUnknown_0201A4F8 != 2 && gUnknown_0201A4F8 != 5)
{
m4aSongNumStart(0x6D);
gUnknown_0201A4F8++;
}
}
if (gMain.newKeys & DPAD_UP)
{
if (gUnknown_0201A4F8 > 2)
{
m4aSongNumStart(0x6D);
gUnknown_0201A4F8 -= 3;
}
}
else if (gMain.newKeys & DPAD_DOWN)
{
if (gUnknown_0201A4F8 < 3)
{
m4aSongNumStart(0x6D);
gUnknown_0201A4F8 += 3;
}
}
if (gMain.newKeys & A_BUTTON)
{
m4aSongNumStart(0x65);
gUnknown_0202BED0 = 1;
gUnknown_0201A4B0 = 1;
gUnknown_0202A560 = 0;
}
if (gMain.newKeys & B_BUTTON)
{
m4aSongNumStart(0x66);
gUnknown_0202BEE4 = 1;
gMain.subState++;
}
break;
case 1:
if (gMain.newKeys & (DPAD_LEFT | DPAD_RIGHT))
{
m4aSongNumStart(0x67);
gUnknown_0201A4C0 = 1 - gUnknown_0201A4C0;
}
if (gMain.newKeys & A_BUTTON)
{
m4aSongNumStart(0x65);
gUnknown_0202A560 = 0;
gUnknown_0202BE1C = 0;
gMain.saveData.ballSpeed = gUnknown_0201A4C0;
SaveFile_WriteToSram();
gUnknown_0202BED0 = 2;
}
if (gMain.newKeys & B_BUTTON)
{
m4aSongNumStart(0x66);
gUnknown_0201A4B0 = 0;
gUnknown_0202BED0 = 0;
}
gUnknown_0202A560++;
if (gUnknown_0202A560 > 4)
{
gUnknown_0202A560 = 0;
gUnknown_0201A4F4 = 1 - gUnknown_0201A4F4;
}
break;
case 2:
gUnknown_0202A560++;
if (gUnknown_0202A560 > 5)
{
gUnknown_0202A560 = 0;
gUnknown_0202BEE8 = 2 - gUnknown_0202BEE8;
gUnknown_0202BE1C++;
if (gUnknown_0202BE1C > 5)
{
gMain.unkD = 0;
gMain.unk5 = gMain.unk4 = gUnknown_086A4CF0[gUnknown_0201A4F8];
gMain.unk6 = 1;
gUnknown_0202BEE4 = 2;
gMain.subState++;
}
}
break;
}
}