mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
AllBoardProcess_2A_4D6C4
This commit is contained in:
parent
10fe2eefda
commit
604696a8a3
318
asm/rom_4CEA8.s
318
asm/rom_4CEA8.s
|
|
@ -972,321 +972,3 @@ _0804D6B4: .4byte 0x00000199
|
|||
_0804D6B8: .4byte 0x040000D4
|
||||
_0804D6BC: .4byte 0x060022C0
|
||||
_0804D6C0: .4byte 0x80000040
|
||||
|
||||
thumb_func_start AllBoardProcess_2A_4D6C4
|
||||
AllBoardProcess_2A_4D6C4: @ 0x0804D6C4
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
movs r0, #0
|
||||
mov ip, r0
|
||||
ldr r0, _0804D7B0 @ =gMain
|
||||
ldrb r2, [r0, #4]
|
||||
movs r3, #0
|
||||
adds r7, r0, #0
|
||||
cmp r2, #0
|
||||
beq _0804D6E6
|
||||
ldr r3, _0804D7B4 @ =0x0000FFE8
|
||||
cmp r2, #1
|
||||
beq _0804D6E6
|
||||
movs r3, #0
|
||||
movs r1, #8
|
||||
mov ip, r1
|
||||
_0804D6E6:
|
||||
ldrb r0, [r7, #4]
|
||||
cmp r0, #1
|
||||
bls _0804D6EE
|
||||
b _0804D810
|
||||
_0804D6EE:
|
||||
ldr r6, _0804D7B8 @ =gCurrentPinballGame
|
||||
ldr r1, [r6]
|
||||
lsls r0, r3, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
subs r0, #0xf4
|
||||
ldr r4, _0804D7BC @ =0x000005FC
|
||||
adds r2, r1, r4
|
||||
movs r5, #0
|
||||
movs r3, #0
|
||||
strh r0, [r2]
|
||||
ldr r2, _0804D7C0 @ =0x000005FE
|
||||
adds r0, r1, r2
|
||||
strh r3, [r0]
|
||||
ldr r0, _0804D7C4 @ =0x000005FB
|
||||
adds r1, r1, r0
|
||||
strb r5, [r1]
|
||||
ldr r6, [r6]
|
||||
ldr r0, _0804D7C8 @ =gUnknown_02031520
|
||||
ldrh r1, [r0, #0x14]
|
||||
adds r3, r6, #0
|
||||
adds r3, #0x4c
|
||||
strh r1, [r3]
|
||||
ldrh r1, [r0, #0x16]
|
||||
adds r5, r6, #0
|
||||
adds r5, #0x4e
|
||||
strh r1, [r5]
|
||||
movs r1, #0x16
|
||||
ldrsh r0, [r0, r1]
|
||||
lsls r0, r0, #8
|
||||
str r0, [r6, #0x54]
|
||||
ldrh r1, [r3]
|
||||
adds r0, r6, #0
|
||||
adds r0, #0x58
|
||||
strh r1, [r0]
|
||||
adds r4, r6, r4
|
||||
ldrh r0, [r4]
|
||||
ldrh r2, [r5]
|
||||
adds r0, r0, r2
|
||||
adds r1, r6, #0
|
||||
adds r1, #0x5a
|
||||
strh r0, [r1]
|
||||
ldrh r1, [r3]
|
||||
mov r0, ip
|
||||
lsls r2, r0, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
adds r1, r2, r1
|
||||
mov ip, r1
|
||||
movs r1, #0xbc
|
||||
lsls r1, r1, #2
|
||||
adds r0, r7, r1
|
||||
mov r1, ip
|
||||
strh r1, [r0]
|
||||
ldrh r0, [r4]
|
||||
ldrh r1, [r5]
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0804D7CC @ =0x000002F2
|
||||
strh r0, [r1, r7]
|
||||
ldrh r0, [r3]
|
||||
adds r0, r2, r0
|
||||
adds r1, #2
|
||||
strh r0, [r1, r7]
|
||||
ldrh r0, [r4]
|
||||
ldrh r1, [r5]
|
||||
adds r0, r0, r1
|
||||
ldr r1, _0804D7D0 @ =0x000002F6
|
||||
strh r0, [r1, r7]
|
||||
ldrh r0, [r3]
|
||||
adds r2, r2, r0
|
||||
subs r1, #0xa
|
||||
adds r0, r7, r1
|
||||
strh r2, [r0]
|
||||
ldrh r0, [r4]
|
||||
ldrh r5, [r5]
|
||||
adds r0, r0, r5
|
||||
ldr r2, _0804D7D4 @ =0x000002EE
|
||||
adds r1, r7, r2
|
||||
strh r0, [r1]
|
||||
ldrb r0, [r7, #4]
|
||||
cmp r0, #0
|
||||
bne _0804D7E4
|
||||
ldr r5, _0804D7D8 @ =0x00000283
|
||||
adds r0, r6, r5
|
||||
ldrb r0, [r0]
|
||||
movs r1, #5
|
||||
bl __udivsi3
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0804D7DC
|
||||
movs r0, MUS_FIELD_RUBY
|
||||
bl m4aSongNumStart
|
||||
b _0804D90E
|
||||
.align 2, 0
|
||||
_0804D7B0: .4byte gMain
|
||||
_0804D7B4: .4byte 0x0000FFE8
|
||||
_0804D7B8: .4byte gCurrentPinballGame
|
||||
_0804D7BC: .4byte 0x000005FC
|
||||
_0804D7C0: .4byte 0x000005FE
|
||||
_0804D7C4: .4byte 0x000005FB
|
||||
_0804D7C8: .4byte gUnknown_02031520
|
||||
_0804D7CC: .4byte 0x000002F2
|
||||
_0804D7D0: .4byte 0x000002F6
|
||||
_0804D7D4: .4byte 0x000002EE
|
||||
_0804D7D8: .4byte 0x00000283
|
||||
_0804D7DC:
|
||||
movs r0, MUS_FIELD_RUBY2
|
||||
bl m4aSongNumStart
|
||||
b _0804D90E
|
||||
_0804D7E4:
|
||||
ldr r7, _0804D804 @ =0x00000283
|
||||
adds r0, r6, r7
|
||||
ldrb r0, [r0]
|
||||
movs r1, #5
|
||||
bl __udivsi3
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
movs r1, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
bne _0804D808
|
||||
movs r0, MUS_FIELD_SAPPHIRE
|
||||
bl m4aSongNumStart
|
||||
b _0804D90E
|
||||
.align 2, 0
|
||||
_0804D804: .4byte 0x00000283
|
||||
_0804D808:
|
||||
movs r0, MUS_FIELD_SAPPHIRE2
|
||||
bl m4aSongNumStart
|
||||
b _0804D90E
|
||||
_0804D810:
|
||||
ldr r3, _0804D838 @ =gCurrentPinballGame
|
||||
ldr r1, [r3]
|
||||
ldr r2, _0804D83C @ =0x000005FC
|
||||
adds r0, r1, r2
|
||||
movs r4, #0
|
||||
movs r2, #0
|
||||
strh r2, [r0]
|
||||
ldr r5, _0804D840 @ =0x000005FE
|
||||
adds r0, r1, r5
|
||||
strh r2, [r0]
|
||||
ldr r0, _0804D844 @ =0x000005FB
|
||||
adds r1, r1, r0
|
||||
strb r4, [r1]
|
||||
ldrb r0, [r7, #4]
|
||||
cmp r0, #3
|
||||
bhi _0804D84C
|
||||
ldr r0, [r3]
|
||||
adds r0, #0xe6
|
||||
ldr r1, _0804D848 @ =0x0000FFE8
|
||||
b _0804D862
|
||||
.align 2, 0
|
||||
_0804D838: .4byte gCurrentPinballGame
|
||||
_0804D83C: .4byte 0x000005FC
|
||||
_0804D840: .4byte 0x000005FE
|
||||
_0804D844: .4byte 0x000005FB
|
||||
_0804D848: .4byte 0x0000FFE8
|
||||
_0804D84C:
|
||||
cmp r0, #6
|
||||
bne _0804D85C
|
||||
ldr r0, [r3]
|
||||
adds r0, #0xe6
|
||||
ldr r1, _0804D858 @ =0x0000FFA8
|
||||
b _0804D862
|
||||
.align 2, 0
|
||||
_0804D858: .4byte 0x0000FFA8
|
||||
_0804D85C:
|
||||
ldr r0, [r3]
|
||||
adds r0, #0xe6
|
||||
ldr r1, _0804D93C @ =0x0000FFC0
|
||||
_0804D862:
|
||||
strh r1, [r0]
|
||||
ldr r0, _0804D940 @ =gCurrentPinballGame
|
||||
ldr r5, [r0]
|
||||
ldr r1, _0804D944 @ =gUnknown_02031520
|
||||
ldrh r0, [r1, #0x14]
|
||||
adds r4, r5, #0
|
||||
adds r4, #0x4c
|
||||
strh r0, [r4]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0xe6
|
||||
ldrh r0, [r0]
|
||||
ldrh r2, [r1, #0x16]
|
||||
adds r0, r0, r2
|
||||
adds r6, r5, #0
|
||||
adds r6, #0x4e
|
||||
strh r0, [r6]
|
||||
movs r7, #0x16
|
||||
ldrsh r0, [r1, r7]
|
||||
lsls r0, r0, #8
|
||||
str r0, [r5, #0x54]
|
||||
ldrh r1, [r4]
|
||||
adds r0, r5, #0
|
||||
adds r0, #0x58
|
||||
strh r1, [r0]
|
||||
ldr r1, _0804D948 @ =0x000005FC
|
||||
adds r0, r5, r1
|
||||
ldrh r0, [r0]
|
||||
ldrh r2, [r6]
|
||||
adds r0, r0, r2
|
||||
adds r1, r5, #0
|
||||
adds r1, #0x5a
|
||||
strh r0, [r1]
|
||||
ldr r3, _0804D94C @ =gMain
|
||||
ldrh r0, [r4]
|
||||
mov r7, ip
|
||||
lsls r1, r7, #0x10
|
||||
asrs r1, r1, #0x10
|
||||
adds r0, r1, r0
|
||||
mov r8, r0
|
||||
movs r2, #0xbc
|
||||
lsls r2, r2, #2
|
||||
adds r0, r3, r2
|
||||
mov r7, r8
|
||||
strh r7, [r0]
|
||||
ldrh r2, [r6]
|
||||
ldr r7, _0804D950 @ =0x000002F2
|
||||
adds r0, r3, r7
|
||||
strh r2, [r0]
|
||||
ldrh r0, [r4]
|
||||
adds r0, r1, r0
|
||||
movs r2, #0xbd
|
||||
lsls r2, r2, #2
|
||||
adds r2, r2, r3
|
||||
mov ip, r2
|
||||
strh r0, [r2]
|
||||
ldrh r2, [r6]
|
||||
adds r7, #4
|
||||
adds r0, r3, r7
|
||||
strh r2, [r0]
|
||||
ldrh r0, [r4]
|
||||
adds r1, r1, r0
|
||||
movs r2, #0xbb
|
||||
lsls r2, r2, #2
|
||||
adds r0, r3, r2
|
||||
strh r1, [r0]
|
||||
movs r7, #0
|
||||
ldrsh r0, [r6, r7]
|
||||
lsrs r1, r0, #0x1f
|
||||
adds r0, r0, r1
|
||||
asrs r0, r0, #1
|
||||
adds r2, #2
|
||||
adds r1, r3, r2
|
||||
strh r0, [r1]
|
||||
ldrb r0, [r3, #4]
|
||||
cmp r0, #3
|
||||
bne _0804D90E
|
||||
movs r7, #0xa4
|
||||
lsls r7, r7, #2
|
||||
adds r0, r5, r7
|
||||
ldr r0, [r0]
|
||||
ldr r1, _0804D954 @ =0x000007FF
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #3
|
||||
add r0, r8
|
||||
mov r1, ip
|
||||
strh r0, [r1]
|
||||
_0804D90E:
|
||||
ldr r1, _0804D94C @ =gMain
|
||||
ldr r5, _0804D958 @ =0x000002EA
|
||||
adds r2, r1, r5
|
||||
movs r0, #0x50
|
||||
strh r0, [r2]
|
||||
ldr r0, _0804D940 @ =gCurrentPinballGame
|
||||
ldr r2, [r0]
|
||||
ldr r7, _0804D95C @ =0x000002F6
|
||||
adds r1, r1, r7
|
||||
ldrh r1, [r1]
|
||||
adds r0, r2, #0
|
||||
adds r0, #0xcc
|
||||
strh r1, [r0]
|
||||
subs r0, #2
|
||||
strh r1, [r0]
|
||||
movs r0, #0x80
|
||||
lsls r0, r0, #5
|
||||
str r0, [r2, #0x2c]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804D93C: .4byte 0x0000FFC0
|
||||
_0804D940: .4byte gCurrentPinballGame
|
||||
_0804D944: .4byte gUnknown_02031520
|
||||
_0804D948: .4byte 0x000005FC
|
||||
_0804D94C: .4byte gMain
|
||||
_0804D950: .4byte 0x000002F2
|
||||
_0804D954: .4byte 0x000007FF
|
||||
_0804D958: .4byte 0x000002EA
|
||||
_0804D95C: .4byte 0x000002F6
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -722,7 +722,8 @@ struct Unk02031520_unk14
|
|||
/* These field offsets are intentionally kept as relative to
|
||||
struct Unk02031520 to make decompiling easier. This struct
|
||||
is basically always accessed relative to struct Unk02031520. */
|
||||
/*0x14*/ u8 filler14[0x4];
|
||||
/*0x14*/ s16 unk14;
|
||||
/*0x16*/ s16 unk16;
|
||||
/*0x18*/ s16 unk18;
|
||||
/*0x1A*/ s16 unk1A;
|
||||
/*0x1C*/ u16 unk1C;
|
||||
|
|
|
|||
|
|
@ -4,6 +4,90 @@
|
|||
#include "constants/bg_music.h"
|
||||
|
||||
|
||||
void AllBoardProcess_2A_4D6C4(void)
|
||||
{
|
||||
s16 var0;
|
||||
s16 var1;
|
||||
|
||||
var0 = 0;
|
||||
if (gMain.selectedField == FIELD_RUBY)
|
||||
{
|
||||
var1 = 0;
|
||||
}
|
||||
else if (gMain.selectedField == FIELD_SAPPHIRE)
|
||||
{
|
||||
var1 = -24;
|
||||
}
|
||||
else
|
||||
{
|
||||
var1 = 0;
|
||||
var0 = 8;
|
||||
}
|
||||
|
||||
if (gMain.selectedField < MAIN_FIELD_COUNT)
|
||||
{
|
||||
gCurrentPinballGame->unk5FC = var1 - 244;
|
||||
gCurrentPinballGame->unk5FE = 0;
|
||||
gCurrentPinballGame->unk5FB = 0;
|
||||
gCurrentPinballGame->unk4C = gUnknown_02031520.unk14.unk14;
|
||||
gCurrentPinballGame->unk4E = gUnknown_02031520.unk14.unk16;
|
||||
gCurrentPinballGame->unk54 = gUnknown_02031520.unk14.unk16 << 8;
|
||||
gCurrentPinballGame->unk58 = gCurrentPinballGame->unk4C;
|
||||
gCurrentPinballGame->unk5A = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk5FC;
|
||||
gMain.bgOffsets[2].xOffset = gCurrentPinballGame->unk4C + var0;
|
||||
gMain.bgOffsets[2].yOffset = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk5FC;
|
||||
gMain.bgOffsets[3].xOffset = gCurrentPinballGame->unk4C + var0;
|
||||
gMain.bgOffsets[3].yOffset = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk5FC;
|
||||
gMain.bgOffsets[1].xOffset = gCurrentPinballGame->unk4C + var0;
|
||||
gMain.bgOffsets[1].yOffset = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk5FC;
|
||||
if (gMain.selectedField == FIELD_RUBY)
|
||||
{
|
||||
if ((gCurrentPinballGame->numCompletedBonusStages / 5) % 2 == 0)
|
||||
m4aSongNumStart(MUS_FIELD_RUBY);
|
||||
else
|
||||
m4aSongNumStart(MUS_FIELD_RUBY2);
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((gCurrentPinballGame->numCompletedBonusStages / 5) % 2 == 0)
|
||||
m4aSongNumStart(MUS_FIELD_SAPPHIRE);
|
||||
else
|
||||
m4aSongNumStart(MUS_FIELD_SAPPHIRE2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk5FC = 0;
|
||||
gCurrentPinballGame->unk5FE = 0;
|
||||
gCurrentPinballGame->unk5FB = 0;
|
||||
if (gMain.selectedField <= FIELD_KECLEON)
|
||||
gCurrentPinballGame->unkE6 = -24;
|
||||
else if (gMain.selectedField == FIELD_RAYQUAZA)
|
||||
gCurrentPinballGame->unkE6 = -88;
|
||||
else
|
||||
gCurrentPinballGame->unkE6 = -64;
|
||||
|
||||
gCurrentPinballGame->unk4C = gUnknown_02031520.unk14.unk14;
|
||||
gCurrentPinballGame->unk4E = gUnknown_02031520.unk14.unk16 + gCurrentPinballGame->unkE6;
|
||||
gCurrentPinballGame->unk54 = gUnknown_02031520.unk14.unk16 << 8;
|
||||
gCurrentPinballGame->unk58 = gCurrentPinballGame->unk4C;
|
||||
gCurrentPinballGame->unk5A = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk5FC;
|
||||
gMain.bgOffsets[2].xOffset = gCurrentPinballGame->unk4C + var0;
|
||||
gMain.bgOffsets[2].yOffset = gCurrentPinballGame->unk4E;
|
||||
gMain.bgOffsets[3].xOffset = gCurrentPinballGame->unk4C + var0;
|
||||
gMain.bgOffsets[3].yOffset = gCurrentPinballGame->unk4E;
|
||||
gMain.bgOffsets[1].xOffset = gCurrentPinballGame->unk4C + var0;
|
||||
gMain.bgOffsets[1].yOffset = gCurrentPinballGame->unk4E / 2;
|
||||
if (gMain.selectedField == FIELD_KECLEON)
|
||||
gMain.bgOffsets[3].xOffset = gMain.bgOffsets[2].xOffset + (gCurrentPinballGame->unk290 & 0x7FF) / 8;
|
||||
}
|
||||
|
||||
gMain.bgOffsets[0].yOffset = 80;
|
||||
gCurrentPinballGame->unkCC = gMain.bgOffsets[3].yOffset;
|
||||
gCurrentPinballGame->unkCA = gCurrentPinballGame->unkCC;
|
||||
gCurrentPinballGame->unk2C = 0x1000;
|
||||
}
|
||||
|
||||
void MainBoardProcess_2B_4D960(void)
|
||||
{
|
||||
int var0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user