mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-10-06 23:59:25 -04:00
sub_4B000
This commit is contained in:
@@ -6,249 +6,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_4B000
|
||||
sub_4B000: @ 0x0804B000
|
||||
push {r4, r5, r6, r7, lr}
|
||||
bl sub_4B334
|
||||
ldr r5, _0804B07C @ =gMain
|
||||
ldrb r1, [r5, #0xf]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0804B014
|
||||
b _0804B15A
|
||||
_0804B014:
|
||||
ldr r6, _0804B080 @ =gUnknown_020028D8
|
||||
ldr r0, [r6, #4]
|
||||
bl _call_via_r0
|
||||
ldr r0, [r6, #0x14]
|
||||
bl _call_via_r0
|
||||
ldr r0, [r6, #0x1c]
|
||||
bl _call_via_r0
|
||||
ldr r0, [r6, #0x24]
|
||||
bl _call_via_r0
|
||||
ldrb r4, [r5, #0xf]
|
||||
movs r0, #0x41
|
||||
rsbs r0, r0, #0
|
||||
ands r4, r0
|
||||
cmp r4, #0
|
||||
beq _0804B090
|
||||
ldr r0, _0804B084 @ =gCurrentPinballGame
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, #0x1f]
|
||||
cmp r0, #0
|
||||
beq _0804B046
|
||||
b _0804B14C
|
||||
_0804B046:
|
||||
movs r4, #0
|
||||
_0804B048:
|
||||
ldr r0, _0804B084 @ =gCurrentPinballGame
|
||||
ldr r1, [r0]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x66
|
||||
movs r0, #0
|
||||
strh r0, [r2]
|
||||
ldr r0, _0804B088 @ =0x0000132C
|
||||
adds r2, r1, r0
|
||||
ldr r3, _0804B08C @ =0x00001334
|
||||
adds r0, r1, r3
|
||||
str r0, [r2]
|
||||
strb r4, [r1, #0x1e]
|
||||
ldr r0, _0804B080 @ =gUnknown_020028D8
|
||||
ldr r0, [r0, #0x34]
|
||||
bl _call_via_r0
|
||||
lsls r0, r4, #0x10
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #9
|
||||
adds r0, r0, r4
|
||||
lsrs r4, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #3
|
||||
ble _0804B048
|
||||
b _0804B14C
|
||||
.align 2, 0
|
||||
_0804B07C: .4byte gMain
|
||||
_0804B080: .4byte gUnknown_020028D8
|
||||
_0804B084: .4byte gCurrentPinballGame
|
||||
_0804B088: .4byte 0x0000132C
|
||||
_0804B08C: .4byte 0x00001334
|
||||
_0804B090:
|
||||
ldr r0, [r5, #0x50]
|
||||
adds r0, #1
|
||||
str r0, [r5, #0x50]
|
||||
ldr r0, _0804B0C8 @ =gCurrentPinballGame
|
||||
ldr r3, [r0]
|
||||
movs r0, #0xa4
|
||||
lsls r0, r0, #2
|
||||
adds r1, r3, r0
|
||||
ldr r0, [r1]
|
||||
adds r0, #1
|
||||
str r0, [r1]
|
||||
ldrb r0, [r3, #0x1f]
|
||||
cmp r0, #0
|
||||
beq _0804B114
|
||||
cmp r0, #2
|
||||
bne _0804B0D0
|
||||
adds r0, r3, #0
|
||||
adds r0, #0x66
|
||||
movs r2, #0
|
||||
strh r4, [r0]
|
||||
ldr r4, _0804B0CC @ =0x0000132C
|
||||
adds r1, r3, r4
|
||||
adds r4, #8
|
||||
adds r0, r3, r4
|
||||
str r0, [r1]
|
||||
strb r2, [r3, #0x1e]
|
||||
b _0804B14C
|
||||
.align 2, 0
|
||||
_0804B0C8: .4byte gCurrentPinballGame
|
||||
_0804B0CC: .4byte 0x0000132C
|
||||
_0804B0D0:
|
||||
movs r4, #0
|
||||
_0804B0D2:
|
||||
ldr r0, _0804B104 @ =gCurrentPinballGame
|
||||
ldr r1, [r0]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x66
|
||||
movs r0, #0
|
||||
strh r0, [r2]
|
||||
ldr r0, _0804B108 @ =0x0000132C
|
||||
adds r2, r1, r0
|
||||
ldr r3, _0804B10C @ =0x00001334
|
||||
adds r0, r1, r3
|
||||
str r0, [r2]
|
||||
strb r4, [r1, #0x1e]
|
||||
ldr r0, _0804B110 @ =gUnknown_020028D8
|
||||
ldr r0, [r0, #0x2c]
|
||||
bl _call_via_r0
|
||||
lsls r0, r4, #0x10
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #9
|
||||
adds r0, r0, r4
|
||||
lsrs r4, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #3
|
||||
ble _0804B0D2
|
||||
b _0804B14C
|
||||
.align 2, 0
|
||||
_0804B104: .4byte gCurrentPinballGame
|
||||
_0804B108: .4byte 0x0000132C
|
||||
_0804B10C: .4byte 0x00001334
|
||||
_0804B110: .4byte gUnknown_020028D8
|
||||
_0804B114:
|
||||
movs r4, #0
|
||||
adds r5, r6, #0
|
||||
_0804B118:
|
||||
ldr r0, _0804B194 @ =gCurrentPinballGame
|
||||
ldr r1, [r0]
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x66
|
||||
movs r0, #0
|
||||
strh r0, [r2]
|
||||
ldr r0, _0804B198 @ =0x0000132C
|
||||
adds r2, r1, r0
|
||||
ldr r3, _0804B19C @ =0x00001334
|
||||
adds r0, r1, r3
|
||||
str r0, [r2]
|
||||
strb r4, [r1, #0x1e]
|
||||
ldr r0, [r5, #0x2c]
|
||||
bl _call_via_r0
|
||||
ldr r0, [r5, #0x34]
|
||||
bl _call_via_r0
|
||||
lsls r0, r4, #0x10
|
||||
movs r4, #0x80
|
||||
lsls r4, r4, #9
|
||||
adds r0, r0, r4
|
||||
lsrs r4, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #3
|
||||
ble _0804B118
|
||||
_0804B14C:
|
||||
ldr r4, _0804B1A0 @ =gUnknown_020028D8
|
||||
ldr r0, [r4, #0x3c]
|
||||
bl _call_via_r0
|
||||
ldr r0, [r4, #0x44]
|
||||
bl _call_via_r0
|
||||
_0804B15A:
|
||||
ldr r0, _0804B1A4 @ =gMain
|
||||
ldr r0, [r0, #0x4c]
|
||||
movs r1, #0x1f
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #4
|
||||
cmp r0, #0
|
||||
beq _0804B1B8
|
||||
movs r4, #0
|
||||
ldr r7, _0804B1A8 @ =gUnknown_03006240
|
||||
ldr r0, _0804B1AC @ =0xFFFFF9C0
|
||||
adds r6, r7, r0
|
||||
ldr r5, _0804B1B0 @ =0x0000032B
|
||||
ldr r1, _0804B1B4 @ =0xFFFFC156
|
||||
adds r3, r1, #0
|
||||
_0804B176:
|
||||
lsls r0, r4, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
adds r1, r0, r5
|
||||
lsls r1, r1, #1
|
||||
adds r1, r1, r6
|
||||
adds r2, r0, r3
|
||||
strh r2, [r1]
|
||||
adds r0, #1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r4, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #8
|
||||
ble _0804B176
|
||||
b _0804B1DC
|
||||
.align 2, 0
|
||||
_0804B194: .4byte gCurrentPinballGame
|
||||
_0804B198: .4byte 0x0000132C
|
||||
_0804B19C: .4byte 0x00001334
|
||||
_0804B1A0: .4byte gUnknown_020028D8
|
||||
_0804B1A4: .4byte gMain
|
||||
_0804B1A8: .4byte gUnknown_03006240
|
||||
_0804B1AC: .4byte 0xFFFFF9C0
|
||||
_0804B1B0: .4byte 0x0000032B
|
||||
_0804B1B4: .4byte 0xFFFFC156
|
||||
_0804B1B8:
|
||||
movs r4, #0
|
||||
ldr r7, _0804B1F0 @ =gUnknown_03006240
|
||||
ldr r3, _0804B1F4 @ =0xFFFFF9C0
|
||||
adds r5, r7, r3
|
||||
ldr r3, _0804B1F8 @ =0x0000032B
|
||||
ldr r2, _0804B1FC @ =0x000001FF
|
||||
_0804B1C4:
|
||||
lsls r1, r4, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
adds r0, r1, r3
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r5
|
||||
strh r2, [r0]
|
||||
adds r1, #1
|
||||
lsls r1, r1, #0x10
|
||||
lsrs r4, r1, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
cmp r1, #8
|
||||
ble _0804B1C4
|
||||
_0804B1DC:
|
||||
ldr r1, _0804B200 @ =0x040000D4
|
||||
str r7, [r1]
|
||||
ldr r0, _0804B204 @ =0x06002640
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _0804B208 @ =0x80000020
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804B1F0: .4byte gUnknown_03006240
|
||||
_0804B1F4: .4byte 0xFFFFF9C0
|
||||
_0804B1F8: .4byte 0x0000032B
|
||||
_0804B1FC: .4byte 0x000001FF
|
||||
_0804B200: .4byte 0x040000D4
|
||||
_0804B204: .4byte 0x06002640
|
||||
_0804B208: .4byte 0x80000020
|
||||
|
||||
thumb_func_start sub_4B20C
|
||||
sub_4B20C: @ 0x0804B20C
|
||||
push {r4, lr}
|
||||
|
||||
Binary file not shown.
@@ -642,7 +642,6 @@ extern void sub_472E4();
|
||||
//extern ? sub_497BC();
|
||||
//extern ? sub_49850();
|
||||
//extern ? sub_49A34();
|
||||
//extern ? sub_4B000();
|
||||
//extern ? sub_4B20C();
|
||||
//extern ? nullsub_19();
|
||||
//extern ? sub_4B654();
|
||||
|
||||
@@ -727,3 +727,81 @@ void sub_4AE8C(void)
|
||||
gUnknown_020028D8[7].unk4();
|
||||
gUnknown_020028D8[8].unk4();
|
||||
}
|
||||
|
||||
void sub_4B000(void)
|
||||
{
|
||||
s16 i;
|
||||
|
||||
sub_4B334();
|
||||
if (!(gMain.unkF & 0x2))
|
||||
{
|
||||
gUnknown_020028D8[0].unk4();
|
||||
gUnknown_020028D8[2].unk4();
|
||||
gUnknown_020028D8[3].unk4();
|
||||
gUnknown_020028D8[4].unk4();
|
||||
if (gMain.unkF & ~0x40)
|
||||
{
|
||||
if (!gCurrentPinballGame->unk1F)
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk66 = 0;
|
||||
gCurrentPinballGame->unk132c = &gCurrentPinballGame->unk1334[0];
|
||||
gCurrentPinballGame->unk1E = i;
|
||||
gUnknown_020028D8[6].unk4();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gMain.fieldFrameCount++;
|
||||
gCurrentPinballGame->unk290++;
|
||||
if (gCurrentPinballGame->unk1F)
|
||||
{
|
||||
if (gCurrentPinballGame->unk1F == 2)
|
||||
{
|
||||
gCurrentPinballGame->unk66 = 0;
|
||||
gCurrentPinballGame->unk132c = &gCurrentPinballGame->unk1334[0];
|
||||
gCurrentPinballGame->unk1E = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk66 = 0;
|
||||
gCurrentPinballGame->unk132c = &gCurrentPinballGame->unk1334[0];
|
||||
gCurrentPinballGame->unk1E = i;
|
||||
gUnknown_020028D8[5].unk4();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk66 = 0;
|
||||
gCurrentPinballGame->unk132c = &gCurrentPinballGame->unk1334[0];
|
||||
gCurrentPinballGame->unk1E = i;
|
||||
gUnknown_020028D8[5].unk4();
|
||||
gUnknown_020028D8[6].unk4();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
gUnknown_020028D8[7].unk4();
|
||||
gUnknown_020028D8[8].unk4();
|
||||
}
|
||||
|
||||
if ((gMain.systemFrameCount % 32) / 16 > 0)
|
||||
{
|
||||
for (i = 0; i < 9; i++)
|
||||
gUnknown_03005C00[0x32B + i] = 0xC156 + i;
|
||||
}
|
||||
else
|
||||
{
|
||||
for (i = 0; i < 9; i++)
|
||||
gUnknown_03005C00[0x32B + i] = 0x1FF;
|
||||
}
|
||||
|
||||
DmaCopy16(3, &gUnknown_03005C00[0x320], (void *)0x6002640, 0x40);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user