mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
through sub_2768
This commit is contained in:
parent
3a4437a42d
commit
a1ad5cb2d9
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user