mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
sub_1FF0C
This commit is contained in:
parent
6bf95b2c1d
commit
f36917ecc2
350
asm/rom_1FF0C.s
350
asm/rom_1FF0C.s
|
|
@ -1,350 +0,0 @@
|
|||
#include "constants/global.h"
|
||||
#include "constants/bg_music.h"
|
||||
.include "asm/macros.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_1FF0C
|
||||
sub_1FF0C: @ 0x0801FF0C
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
sub sp, #4
|
||||
movs r1, #0
|
||||
ldr r6, _0801FF70 @ =gCurrentPinballGame
|
||||
mov sb, r6
|
||||
ldr r0, _0801FF74 @ =0x000002E3
|
||||
mov sl, r0
|
||||
movs r2, #0xba
|
||||
lsls r2, r2, #2
|
||||
mov r8, r2
|
||||
movs r3, #0xbb
|
||||
lsls r3, r3, #2
|
||||
mov ip, r3
|
||||
_0801FF2E:
|
||||
mov r4, sb
|
||||
ldr r3, [r4]
|
||||
lsls r0, r1, #0x10
|
||||
asrs r5, r0, #0x10
|
||||
mov r7, sl
|
||||
adds r1, r3, r7
|
||||
adds r1, r1, r5
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
str r0, [sp]
|
||||
cmp r1, #0
|
||||
ble _08020012
|
||||
ldr r1, _0801FF78 @ =0x000002E5
|
||||
adds r0, r3, r1
|
||||
adds r4, r0, r5
|
||||
movs r1, #0
|
||||
ldrsb r1, [r4, r1]
|
||||
lsls r1, r1, #2
|
||||
ldr r2, _0801FF7C @ =gUnknown_086ADEB2
|
||||
adds r1, r1, r2
|
||||
lsls r2, r5, #1
|
||||
mov r7, r8
|
||||
adds r0, r3, r7
|
||||
adds r2, r0, r2
|
||||
ldrh r3, [r2]
|
||||
ldrh r0, [r1]
|
||||
cmp r0, r3
|
||||
bls _0801FF80
|
||||
adds r0, r3, #1
|
||||
strh r0, [r2]
|
||||
b _0801FFAE
|
||||
.align 2, 0
|
||||
_0801FF70: .4byte gCurrentPinballGame
|
||||
_0801FF74: .4byte 0x000002E3
|
||||
_0801FF78: .4byte 0x000002E5
|
||||
_0801FF7C: .4byte gUnknown_086ADEB2
|
||||
_0801FF80:
|
||||
movs r3, #0
|
||||
movs r0, #0
|
||||
strh r0, [r2]
|
||||
ldrb r0, [r4]
|
||||
adds r0, #1
|
||||
strb r0, [r4]
|
||||
mov r1, sb
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08020070 @ =0x000002E5
|
||||
adds r0, r0, r2
|
||||
adds r1, r0, r5
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0xb
|
||||
ble _0801FFAE
|
||||
strb r3, [r1]
|
||||
mov r3, sb
|
||||
ldr r1, [r3]
|
||||
add r1, sl
|
||||
adds r1, r1, r5
|
||||
ldrb r0, [r1]
|
||||
subs r0, #1
|
||||
strb r0, [r1]
|
||||
_0801FFAE:
|
||||
ldr r3, [r6]
|
||||
ldr r7, [sp]
|
||||
asrs r4, r7, #0x10
|
||||
ldr r5, _08020070 @ =0x000002E5
|
||||
adds r0, r3, r5
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _0801FFD8
|
||||
lsls r2, r4, #1
|
||||
mov r0, ip
|
||||
adds r1, r3, r0
|
||||
adds r1, r1, r2
|
||||
mov r7, r8
|
||||
adds r0, r3, r7
|
||||
adds r0, r0, r2
|
||||
ldrh r0, [r0]
|
||||
lsrs r0, r0, #1
|
||||
strh r0, [r1]
|
||||
_0801FFD8:
|
||||
ldr r1, [r6]
|
||||
adds r0, r1, r5
|
||||
adds r0, r0, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
lsls r3, r4, #1
|
||||
cmp r0, #0xb
|
||||
bne _08020000
|
||||
mov r0, ip
|
||||
adds r2, r1, r0
|
||||
adds r2, r2, r3
|
||||
mov r4, r8
|
||||
adds r0, r1, r4
|
||||
adds r0, r0, r3
|
||||
ldrh r1, [r0]
|
||||
lsrs r1, r1, #1
|
||||
movs r0, #0xe
|
||||
subs r0, r0, r1
|
||||
strh r0, [r2]
|
||||
_08020000:
|
||||
ldr r0, [r6]
|
||||
add r0, ip
|
||||
adds r2, r0, r3
|
||||
movs r7, #0
|
||||
ldrsh r0, [r2, r7]
|
||||
cmp r0, #2
|
||||
bgt _08020012
|
||||
movs r0, #3
|
||||
strh r0, [r2]
|
||||
_08020012:
|
||||
ldr r1, [sp]
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #9
|
||||
adds r0, r1, r2
|
||||
lsrs r1, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #1
|
||||
ble _0801FF2E
|
||||
ldr r1, [r6]
|
||||
ldr r3, _08020074 @ =0x000002E2
|
||||
adds r0, r1, r3
|
||||
movs r3, #0
|
||||
ldrsb r3, [r0, r3]
|
||||
cmp r3, #0
|
||||
bne _08020032
|
||||
b _0802018E
|
||||
_08020032:
|
||||
cmp r3, #1
|
||||
bne _08020120
|
||||
movs r0, #0x13
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #7
|
||||
bne _08020040
|
||||
b _08020136
|
||||
_08020040:
|
||||
cmp r0, #2
|
||||
bgt _080200C4
|
||||
ldr r4, _08020078 @ =0x000006BD
|
||||
adds r1, r1, r4
|
||||
ldrb r2, [r1]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #2
|
||||
bgt _08020136
|
||||
adds r0, r2, #1
|
||||
movs r2, #0
|
||||
strb r0, [r1]
|
||||
ldr r1, [r6]
|
||||
adds r0, r1, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _08020080
|
||||
ldr r7, _0802007C @ =0x000002C2
|
||||
adds r0, r1, r7
|
||||
strb r2, [r0]
|
||||
b _08020110
|
||||
.align 2, 0
|
||||
_08020070: .4byte 0x000002E5
|
||||
_08020074: .4byte 0x000002E2
|
||||
_08020078: .4byte 0x000006BD
|
||||
_0802007C: .4byte 0x000002C2
|
||||
_08020080:
|
||||
cmp r0, #2
|
||||
bne _0802009C
|
||||
ldr r3, _08020098 @ =0x000002C2
|
||||
adds r1, r1, r3
|
||||
movs r0, #0xc
|
||||
strb r0, [r1]
|
||||
ldr r0, [r6]
|
||||
movs r4, #0xb0
|
||||
lsls r4, r4, #2
|
||||
adds r0, r0, r4
|
||||
strh r2, [r0]
|
||||
b _08020136
|
||||
.align 2, 0
|
||||
_08020098: .4byte 0x000002C2
|
||||
_0802009C:
|
||||
cmp r0, #3
|
||||
bne _08020136
|
||||
ldr r7, _080200BC @ =0x000002C2
|
||||
adds r1, r1, r7
|
||||
movs r0, #0x18
|
||||
strb r0, [r1]
|
||||
ldr r0, [r6]
|
||||
movs r4, #0xb0
|
||||
lsls r4, r4, #2
|
||||
adds r1, r0, r4
|
||||
strh r2, [r1]
|
||||
ldr r7, _080200C0 @ =0x000006C2
|
||||
adds r0, r0, r7
|
||||
strh r3, [r0]
|
||||
b _08020136
|
||||
.align 2, 0
|
||||
_080200BC: .4byte 0x000002C2
|
||||
_080200C0: .4byte 0x000006C2
|
||||
_080200C4:
|
||||
ldr r0, _080200FC @ =0x000006BD
|
||||
adds r1, r1, r0
|
||||
ldrb r2, [r1]
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #1
|
||||
bgt _08020136
|
||||
adds r0, r2, #1
|
||||
movs r2, #0
|
||||
strb r0, [r1]
|
||||
ldr r1, [r6]
|
||||
ldr r3, _080200FC @ =0x000006BD
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _08020104
|
||||
ldr r4, _08020100 @ =0x000002C2
|
||||
adds r0, r1, r4
|
||||
strb r2, [r0]
|
||||
ldr r0, [r6]
|
||||
movs r7, #0xb0
|
||||
lsls r7, r7, #2
|
||||
adds r0, r0, r7
|
||||
strh r2, [r0]
|
||||
b _08020136
|
||||
.align 2, 0
|
||||
_080200FC: .4byte 0x000006BD
|
||||
_08020100: .4byte 0x000002C2
|
||||
_08020104:
|
||||
cmp r0, #2
|
||||
bne _08020136
|
||||
ldr r0, _0802011C @ =0x000002C2
|
||||
adds r1, r1, r0
|
||||
movs r0, #0xc
|
||||
strb r0, [r1]
|
||||
_08020110:
|
||||
ldr r0, [r6]
|
||||
movs r1, #0xb0
|
||||
lsls r1, r1, #2
|
||||
adds r0, r0, r1
|
||||
strh r2, [r0]
|
||||
b _08020136
|
||||
.align 2, 0
|
||||
_0802011C: .4byte 0x000002C2
|
||||
_08020120:
|
||||
movs r2, #0xc0
|
||||
lsls r2, r2, #2
|
||||
adds r1, r1, r2
|
||||
movs r0, #0
|
||||
ldrsb r0, [r1, r0]
|
||||
cmp r0, #0
|
||||
bne _08020132
|
||||
movs r0, #1
|
||||
b _08020134
|
||||
_08020132:
|
||||
movs r0, #0
|
||||
_08020134:
|
||||
strb r0, [r1]
|
||||
_08020136:
|
||||
ldr r0, [r6]
|
||||
ldr r3, _080201A0 @ =0x000002E3
|
||||
adds r0, r0, r3
|
||||
movs r4, #0
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
movs r7, #0xb9
|
||||
lsls r7, r7, #2
|
||||
adds r0, r0, r7
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
ldr r1, _080201A4 @ =0x000002E2
|
||||
adds r0, r0, r1
|
||||
strb r4, [r0]
|
||||
movs r0, #7
|
||||
bl sub_11B0
|
||||
movs r0, 0xB7 @=SE_UNKNOWN_0xB7
|
||||
bl m4aSongNumStart
|
||||
ldr r0, [r6]
|
||||
ldr r1, _080201A8 @ =0x00000BB8
|
||||
str r1, [r0, #0x3c]
|
||||
ldr r2, _080201AC @ =0x000002E5
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
ldr r3, _080201B0 @ =0x000002E6
|
||||
adds r0, r0, r3
|
||||
strb r4, [r0]
|
||||
ldr r1, [r6]
|
||||
adds r7, #4
|
||||
adds r0, r1, r7
|
||||
strh r4, [r0]
|
||||
adds r2, #5
|
||||
adds r0, r1, r2
|
||||
strh r4, [r0]
|
||||
adds r3, #6
|
||||
adds r0, r1, r3
|
||||
movs r2, #3
|
||||
strh r2, [r0]
|
||||
ldr r4, _080201B4 @ =0x000002EE
|
||||
adds r1, r1, r4
|
||||
strh r2, [r1]
|
||||
_0802018E:
|
||||
add sp, #4
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080201A0: .4byte 0x000002E3
|
||||
_080201A4: .4byte 0x000002E2
|
||||
_080201A8: .4byte 0x00000BB8
|
||||
_080201AC: .4byte 0x000002E5
|
||||
_080201B0: .4byte 0x000002E6
|
||||
_080201B4: .4byte 0x000002EE
|
||||
Binary file not shown.
|
|
@ -393,9 +393,11 @@ struct PinballGame
|
|||
/*0x2DB*/ u8 filler2DB[0x3];
|
||||
/*0x2DE*/ u16 unk2DE;
|
||||
/*0x2E0*/ u16 unk2E0;
|
||||
/*0x2E2*/ u8 filler2E2[0x3];
|
||||
/*0x2E5*/ s8 unk2E5[3];
|
||||
/*0x2E8*/ u8 filler2E8[0x4];
|
||||
/*0x2E2*/ s8 unk2E2;
|
||||
/*0x2E3*/ s8 unk2E3[2];
|
||||
/*0x2E5*/ s8 unk2E5[2];
|
||||
/*0x2E7*/ u8 filler2E7[0x1];
|
||||
/*0x2E8*/ u16 unk2E8[2];
|
||||
/*0x2EC*/ s16 unk2EC[2];
|
||||
/*0x2F0*/ u8 unk2F0;
|
||||
/*0x2F1*/ u8 unk2F1;
|
||||
|
|
@ -405,7 +407,7 @@ struct PinballGame
|
|||
/*0x2F6*/ u16 unk2F6;
|
||||
/*0x2F8*/ s8 unk2F8;
|
||||
/*0x2F9*/ u8 filler2F9[0x7];
|
||||
/*0x300*/ u8 unk300;
|
||||
/*0x300*/ s8 unk300;
|
||||
/*0x301*/ u8 unk301;
|
||||
/*0x302*/ u8 filler302[0x4];
|
||||
/*0x306*/ s8 unk306;
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ SECTIONS
|
|||
src/rom_1A98C.o(.text);
|
||||
asm/rom_1AD84.o(.text);
|
||||
asm/rom_1D5D8.o(.text);
|
||||
asm/rom_1FF0C.o(.text);
|
||||
src/rom_201B8.o(.text);
|
||||
asm/rom_203CC.o(.text);
|
||||
src/rom_27E08.o(.text);
|
||||
|
|
|
|||
105
src/rom_201B8.c
105
src/rom_201B8.c
|
|
@ -5,6 +5,111 @@
|
|||
|
||||
extern const u8 gUnknown_0847FD0C[][0x100];
|
||||
extern const s16 gUnknown_086ADEB0[][2];
|
||||
extern const u16 gUnknown_086ADEB2[][2];
|
||||
|
||||
void sub_1FF0C(void)
|
||||
{
|
||||
s16 i;
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
if (gCurrentPinballGame->unk2E3[i] > 0)
|
||||
{
|
||||
if (gUnknown_086ADEB2[gCurrentPinballGame->unk2E5[i]][0] > gCurrentPinballGame->unk2E8[i])
|
||||
{
|
||||
gCurrentPinballGame->unk2E8[i]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk2E8[i] = 0;
|
||||
gCurrentPinballGame->unk2E5[i]++;
|
||||
if (gCurrentPinballGame->unk2E5[i] > 11)
|
||||
{
|
||||
gCurrentPinballGame->unk2E5[i] = 0;
|
||||
gCurrentPinballGame->unk2E3[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk2E5[i] == 1)
|
||||
gCurrentPinballGame->unk2EC[i] = gCurrentPinballGame->unk2E8[i] / 2;
|
||||
|
||||
if (gCurrentPinballGame->unk2E5[i] == 11)
|
||||
gCurrentPinballGame->unk2EC[i] = 14 - gCurrentPinballGame->unk2E8[i] / 2;
|
||||
|
||||
if (gCurrentPinballGame->unk2EC[i] < 3)
|
||||
gCurrentPinballGame->unk2EC[i] = 3;
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk2E2)
|
||||
{
|
||||
if (gCurrentPinballGame->unk2E2 == 1)
|
||||
{
|
||||
if (gCurrentPinballGame->unk13 != 7)
|
||||
{
|
||||
if (gCurrentPinballGame->unk13 < 3) {
|
||||
if (gCurrentPinballGame->unk6BD < 3)
|
||||
{
|
||||
gCurrentPinballGame->unk6BD++;
|
||||
if (gCurrentPinballGame->unk6BD == 1)
|
||||
{
|
||||
gCurrentPinballGame->unk2C2 = 0;
|
||||
gCurrentPinballGame->unk2C0 = 0;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk6BD == 2)
|
||||
{
|
||||
gCurrentPinballGame->unk2C2 = 12;
|
||||
gCurrentPinballGame->unk2C0 = 0;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk6BD == 3)
|
||||
{
|
||||
gCurrentPinballGame->unk2C2 = 24;
|
||||
gCurrentPinballGame->unk2C0 = 0;
|
||||
gCurrentPinballGame->unk6C2 = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk6BD < 2)
|
||||
{
|
||||
gCurrentPinballGame->unk6BD++;
|
||||
if (gCurrentPinballGame->unk6BD == 1)
|
||||
{
|
||||
gCurrentPinballGame->unk2C2 = 0;
|
||||
gCurrentPinballGame->unk2C0 = 0;
|
||||
}
|
||||
else if (gCurrentPinballGame->unk6BD == 2)
|
||||
{
|
||||
gCurrentPinballGame->unk2C2 = 12;
|
||||
gCurrentPinballGame->unk2C0 = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gCurrentPinballGame->unk300 == 0)
|
||||
gCurrentPinballGame->unk300 = 1;
|
||||
else
|
||||
gCurrentPinballGame->unk300 = 0;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk2E3[0] = 0;
|
||||
gCurrentPinballGame->unk2E3[1] = 0;
|
||||
gCurrentPinballGame->unk2E2 = 0;
|
||||
sub_11B0(7);
|
||||
m4aSongNumStart(SE_UNKNOWN_0xB7);
|
||||
gCurrentPinballGame->unk3C = 3000;
|
||||
gCurrentPinballGame->unk2E5[0] = 0;
|
||||
gCurrentPinballGame->unk2E5[1] = 0;
|
||||
gCurrentPinballGame->unk2E8[0] = 0;
|
||||
gCurrentPinballGame->unk2E8[1] = 0;
|
||||
gCurrentPinballGame->unk2EC[0] = 3;
|
||||
gCurrentPinballGame->unk2EC[1] = 3;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_201B8(void)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user