mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
MainBoardProcess_2B_4D960
This commit is contained in:
parent
9dacf710bb
commit
10fe2eefda
334
asm/rom_4CEA8.s
334
asm/rom_4CEA8.s
|
|
@ -1290,337 +1290,3 @@ _0804D950: .4byte 0x000002F2
|
|||
_0804D954: .4byte 0x000007FF
|
||||
_0804D958: .4byte 0x000002EA
|
||||
_0804D95C: .4byte 0x000002F6
|
||||
|
||||
thumb_func_start MainBoardProcess_2B_4D960
|
||||
MainBoardProcess_2B_4D960: @ 0x0804D960
|
||||
push {r4, r5, r6, r7, lr}
|
||||
movs r7, #0x80
|
||||
lsls r7, r7, #5
|
||||
ldr r0, _0804D9A4 @ =gMain
|
||||
ldrb r0, [r0, #0xf]
|
||||
cmp r0, #0
|
||||
bne _0804D972
|
||||
bl sub_4E2F8
|
||||
_0804D972:
|
||||
ldr r1, _0804D9A8 @ =gCurrentPinballGame
|
||||
ldr r2, [r1]
|
||||
ldr r0, _0804D9AC @ =0x000005FB
|
||||
adds r4, r2, r0
|
||||
movs r0, #0
|
||||
ldrsb r0, [r4, r0]
|
||||
adds r6, r1, #0
|
||||
cmp r0, #0
|
||||
beq _0804D9C2
|
||||
ldr r3, _0804D9B0 @ =0x000005FC
|
||||
adds r1, r2, r3
|
||||
ldr r5, _0804D9B4 @ =0x000005FE
|
||||
adds r0, r2, r5
|
||||
ldrh r3, [r1]
|
||||
movs r5, #0
|
||||
ldrsh r2, [r1, r5]
|
||||
movs r5, #0
|
||||
ldrsh r0, [r0, r5]
|
||||
cmp r2, r0
|
||||
beq _0804D9BE
|
||||
cmp r2, r0
|
||||
ble _0804D9B8
|
||||
subs r0, r3, #1
|
||||
strh r0, [r1]
|
||||
b _0804D9C2
|
||||
.align 2, 0
|
||||
_0804D9A4: .4byte gMain
|
||||
_0804D9A8: .4byte gCurrentPinballGame
|
||||
_0804D9AC: .4byte 0x000005FB
|
||||
_0804D9B0: .4byte 0x000005FC
|
||||
_0804D9B4: .4byte 0x000005FE
|
||||
_0804D9B8:
|
||||
adds r0, r3, #1
|
||||
strh r0, [r1]
|
||||
b _0804D9C2
|
||||
_0804D9BE:
|
||||
movs r0, #0
|
||||
strb r0, [r4]
|
||||
_0804D9C2:
|
||||
ldr r5, [r6]
|
||||
ldrb r0, [r5, #0x1f]
|
||||
cmp r0, #0
|
||||
bne _0804D9E0
|
||||
ldr r1, _0804DA2C @ =0x00001330
|
||||
adds r0, r5, r1
|
||||
ldr r0, [r0]
|
||||
movs r2, #0x32
|
||||
ldrsh r1, [r0, r2]
|
||||
lsls r0, r1, #2
|
||||
adds r0, r0, r1
|
||||
lsls r0, r0, #3
|
||||
movs r3, #0x80
|
||||
lsls r3, r3, #5
|
||||
adds r7, r0, r3
|
||||
_0804D9E0:
|
||||
ldr r4, [r5, #0x2c]
|
||||
subs r0, r7, r4
|
||||
movs r1, #0xa
|
||||
bl __divsi3
|
||||
adds r4, r4, r0
|
||||
str r4, [r5, #0x2c]
|
||||
ldr r1, _0804DA2C @ =0x00001330
|
||||
adds r0, r5, r1
|
||||
ldr r0, [r0]
|
||||
ldr r0, [r0, #0x38]
|
||||
adds r1, r0, r4
|
||||
ldr r2, _0804DA30 @ =gUnknown_02031520
|
||||
movs r3, #0x18
|
||||
ldrsh r0, [r2, r3]
|
||||
lsls r0, r0, #8
|
||||
cmp r1, r0
|
||||
bgt _0804DA0E
|
||||
movs r4, #0x1a
|
||||
ldrsh r0, [r2, r4]
|
||||
lsls r0, r0, #8
|
||||
cmp r1, r0
|
||||
bge _0804DA10
|
||||
_0804DA0E:
|
||||
adds r1, r0, #0
|
||||
_0804DA10:
|
||||
ldr r5, _0804DA34 @ =0xFFFFB000
|
||||
adds r1, r1, r5
|
||||
ldr r0, [r6]
|
||||
ldr r4, [r0, #0x54]
|
||||
subs r0, r1, r4
|
||||
movs r1, #0xc
|
||||
bl __divsi3
|
||||
adds r1, r0, #0
|
||||
cmp r1, #0
|
||||
ble _0804DA38
|
||||
cmp r1, #0x4f
|
||||
bgt _0804DA42
|
||||
b _0804DA40
|
||||
.align 2, 0
|
||||
_0804DA2C: .4byte 0x00001330
|
||||
_0804DA30: .4byte gUnknown_02031520
|
||||
_0804DA34: .4byte 0xFFFFB000
|
||||
_0804DA38:
|
||||
movs r0, #0x50
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
ble _0804DA42
|
||||
_0804DA40:
|
||||
movs r1, #0
|
||||
_0804DA42:
|
||||
adds r4, r4, r1
|
||||
ldr r1, [r6]
|
||||
ldr r2, _0804DA7C @ =0x000005FA
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
bne _0804DAAC
|
||||
str r4, [r1, #0x54]
|
||||
adds r0, r4, #0
|
||||
cmp r0, #0
|
||||
bge _0804DA5E
|
||||
adds r0, #0xff
|
||||
_0804DA5E:
|
||||
asrs r0, r0, #8
|
||||
adds r2, r1, #0
|
||||
adds r2, #0x4e
|
||||
strh r0, [r2]
|
||||
ldr r3, _0804DA80 @ =0x00001330
|
||||
adds r0, r1, r3
|
||||
ldr r0, [r0]
|
||||
movs r4, #0x10
|
||||
ldrsh r0, [r0, r4]
|
||||
cmp r0, #0xe5
|
||||
ble _0804DA84
|
||||
adds r1, #0x4c
|
||||
ldrh r0, [r1]
|
||||
adds r0, #1
|
||||
b _0804DA8A
|
||||
.align 2, 0
|
||||
_0804DA7C: .4byte 0x000005FA
|
||||
_0804DA80: .4byte 0x00001330
|
||||
_0804DA84:
|
||||
adds r1, #0x4c
|
||||
ldrh r0, [r1]
|
||||
subs r0, #1
|
||||
_0804DA8A:
|
||||
strh r0, [r1]
|
||||
ldr r0, _0804DAA0 @ =gCurrentPinballGame
|
||||
ldr r0, [r0]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x4c
|
||||
movs r5, #0
|
||||
ldrsh r0, [r1, r5]
|
||||
cmp r0, #0x10
|
||||
ble _0804DAA4
|
||||
movs r0, #0x10
|
||||
b _0804DAAA
|
||||
.align 2, 0
|
||||
_0804DAA0: .4byte gCurrentPinballGame
|
||||
_0804DAA4:
|
||||
cmp r0, #0
|
||||
bge _0804DAAC
|
||||
movs r0, #0
|
||||
_0804DAAA:
|
||||
strh r0, [r1]
|
||||
_0804DAAC:
|
||||
bl sub_4DFA0
|
||||
ldr r3, _0804DB14 @ =gMain
|
||||
ldr r0, _0804DB18 @ =gCurrentPinballGame
|
||||
ldr r4, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x4c
|
||||
movs r1, #0x90
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, r1
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
ldrh r2, [r2]
|
||||
adds r1, r1, r2
|
||||
ldr r2, _0804DB1C @ =0x000002AA
|
||||
adds r0, r4, r2
|
||||
ldrh r0, [r0]
|
||||
adds r0, r0, r1
|
||||
movs r5, #0xbd
|
||||
lsls r5, r5, #2
|
||||
adds r1, r3, r5
|
||||
strh r0, [r1]
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x4e
|
||||
ldr r2, _0804DB20 @ =0x00000121
|
||||
adds r0, r4, r2
|
||||
movs r2, #0
|
||||
ldrsb r2, [r0, r2]
|
||||
ldrh r1, [r1]
|
||||
adds r2, r2, r1
|
||||
ldr r5, _0804DB24 @ =0x000005FC
|
||||
adds r0, r4, r5
|
||||
ldrh r1, [r0]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xe6
|
||||
adds r1, r1, r2
|
||||
ldrh r0, [r0]
|
||||
adds r1, r1, r0
|
||||
adds r0, r4, #0
|
||||
adds r0, #0xcc
|
||||
strh r1, [r0]
|
||||
ldr r0, _0804DB28 @ =0x000002F6
|
||||
adds r3, r3, r0
|
||||
ldrh r0, [r3]
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
lsrs r2, r0, #0x10
|
||||
asrs r1, r0, #0x10
|
||||
cmp r1, #8
|
||||
ble _0804DB2C
|
||||
movs r2, #8
|
||||
b _0804DB36
|
||||
.align 2, 0
|
||||
_0804DB14: .4byte gMain
|
||||
_0804DB18: .4byte gCurrentPinballGame
|
||||
_0804DB1C: .4byte 0x000002AA
|
||||
_0804DB20: .4byte 0x00000121
|
||||
_0804DB24: .4byte 0x000005FC
|
||||
_0804DB28: .4byte 0x000002F6
|
||||
_0804DB2C:
|
||||
movs r0, #8
|
||||
rsbs r0, r0, #0
|
||||
cmp r1, r0
|
||||
bge _0804DB36
|
||||
ldr r2, _0804DBE0 @ =0x0000FFF8
|
||||
_0804DB36:
|
||||
ldr r3, _0804DBE4 @ =gMain
|
||||
cmp r2, #0
|
||||
beq _0804DB46
|
||||
ldr r4, _0804DBE8 @ =0x000002F6
|
||||
adds r1, r3, r4
|
||||
ldrh r0, [r1]
|
||||
subs r0, r0, r2
|
||||
strh r0, [r1]
|
||||
_0804DB46:
|
||||
movs r5, #0xbd
|
||||
lsls r5, r5, #2
|
||||
adds r0, r3, r5
|
||||
ldrh r2, [r0]
|
||||
movs r1, #0xbc
|
||||
lsls r1, r1, #2
|
||||
adds r0, r3, r1
|
||||
strh r2, [r0]
|
||||
ldr r4, _0804DBE8 @ =0x000002F6
|
||||
adds r0, r3, r4
|
||||
ldrh r1, [r0]
|
||||
subs r5, #2
|
||||
adds r0, r3, r5
|
||||
strh r1, [r0]
|
||||
subs r4, #0xa
|
||||
adds r0, r3, r4
|
||||
strh r2, [r0]
|
||||
subs r5, #4
|
||||
adds r0, r3, r5
|
||||
strh r1, [r0]
|
||||
ldr r0, _0804DBEC @ =gCurrentPinballGame
|
||||
ldr r4, [r0]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x4c
|
||||
movs r1, #0x90
|
||||
lsls r1, r1, #1
|
||||
adds r0, r4, r1
|
||||
movs r1, #0
|
||||
ldrsb r1, [r0, r1]
|
||||
ldrh r2, [r2]
|
||||
adds r1, r1, r2
|
||||
ldr r2, _0804DBF0 @ =0x000002AA
|
||||
adds r0, r4, r2
|
||||
ldrh r0, [r0]
|
||||
adds r0, r0, r1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x58
|
||||
strh r0, [r1]
|
||||
adds r6, r4, #0
|
||||
adds r6, #0x4e
|
||||
ldr r3, _0804DBF4 @ =0x00000121
|
||||
adds r3, r3, r4
|
||||
mov ip, r3
|
||||
movs r1, #0
|
||||
ldrsb r1, [r3, r1]
|
||||
ldrh r5, [r6]
|
||||
adds r1, r1, r5
|
||||
ldr r0, _0804DBF8 @ =0x000005FC
|
||||
adds r3, r4, r0
|
||||
ldrh r0, [r3]
|
||||
adds r5, r4, #0
|
||||
adds r5, #0xe6
|
||||
adds r0, r0, r1
|
||||
ldrh r1, [r5]
|
||||
adds r0, r0, r1
|
||||
adds r1, r4, #0
|
||||
adds r1, #0x5a
|
||||
strh r0, [r1]
|
||||
adds r2, r4, #0
|
||||
adds r2, #0x68
|
||||
ldrh r1, [r2]
|
||||
adds r0, r4, #0
|
||||
adds r0, #0x6a
|
||||
strh r1, [r0]
|
||||
mov r4, ip
|
||||
movs r1, #0
|
||||
ldrsb r1, [r4, r1]
|
||||
ldrh r6, [r6]
|
||||
adds r1, r1, r6
|
||||
ldrh r0, [r3]
|
||||
adds r0, r0, r1
|
||||
ldrh r5, [r5]
|
||||
adds r0, r0, r5
|
||||
strh r0, [r2]
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0804DBE0: .4byte 0x0000FFF8
|
||||
_0804DBE4: .4byte gMain
|
||||
_0804DBE8: .4byte 0x000002F6
|
||||
_0804DBEC: .4byte gCurrentPinballGame
|
||||
_0804DBF0: .4byte 0x000002AA
|
||||
_0804DBF4: .4byte 0x00000121
|
||||
_0804DBF8: .4byte 0x000005FC
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -653,7 +653,7 @@ extern void PinballGame_State0_49ED4(void);
|
|||
//extern ? MainBoardProcess_2B_4D960();
|
||||
//extern ? BonusBoardProcess_2B_4DBFC();
|
||||
extern void sub_4DFA0(void);
|
||||
//extern ? sub_4E2F8();
|
||||
extern void sub_4E2F8(void);
|
||||
extern void sub_4E468(void);
|
||||
extern void sub_4E598(void);
|
||||
extern void sub_4E814(void);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,95 @@
|
|||
#include "constants/bg_music.h"
|
||||
|
||||
|
||||
void MainBoardProcess_2B_4D960(void)
|
||||
{
|
||||
int var0;
|
||||
int var1;
|
||||
int var2;
|
||||
s16 var3;
|
||||
int var4;
|
||||
|
||||
var0 = 0x1000;
|
||||
if (gMain.unkF == 0)
|
||||
sub_4E2F8();
|
||||
|
||||
if (gCurrentPinballGame->unk5FB)
|
||||
{
|
||||
if (gCurrentPinballGame->unk5FC != gCurrentPinballGame->unk5FE)
|
||||
{
|
||||
if (gCurrentPinballGame->unk5FC > gCurrentPinballGame->unk5FE)
|
||||
gCurrentPinballGame->unk5FC--;
|
||||
else
|
||||
gCurrentPinballGame->unk5FC++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unk5FB = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk1F == 0)
|
||||
var0 = (gCurrentPinballGame->unk1330->velocity.y * 40) + 0x1000;
|
||||
|
||||
gCurrentPinballGame->unk2C += (var0 - gCurrentPinballGame->unk2C) / 10;
|
||||
var1 = gCurrentPinballGame->unk1330->positionQ8.y + gCurrentPinballGame->unk2C;
|
||||
if (var1 > gUnknown_02031520.unk14.unk18 << 8)
|
||||
var1 = gUnknown_02031520.unk14.unk18 << 8;
|
||||
else if (var1 < gUnknown_02031520.unk14.unk1A << 8)
|
||||
var1 = gUnknown_02031520.unk14.unk1A << 8;
|
||||
|
||||
var1 -= 0x5000;
|
||||
var4 = gCurrentPinballGame->unk54;
|
||||
var2 = (var1 - var4) / 12;
|
||||
if (var2 > 0)
|
||||
{
|
||||
if (var2 < 80)
|
||||
var2 = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (var2 > -80)
|
||||
var2 = 0;
|
||||
}
|
||||
|
||||
var4 += var2;
|
||||
if (gCurrentPinballGame->unk5FA == 0)
|
||||
{
|
||||
gCurrentPinballGame->unk54 = var4;
|
||||
gCurrentPinballGame->unk4E = var4 / 0x100;
|
||||
if (gCurrentPinballGame->unk1330->positionQ0.x >= 230)
|
||||
gCurrentPinballGame->unk4C++;
|
||||
else
|
||||
gCurrentPinballGame->unk4C--;
|
||||
|
||||
if (gCurrentPinballGame->unk4C > 16)
|
||||
gCurrentPinballGame->unk4C = 16;
|
||||
else if (gCurrentPinballGame->unk4C < 0)
|
||||
gCurrentPinballGame->unk4C = 0;
|
||||
}
|
||||
|
||||
sub_4DFA0();
|
||||
gMain.bgOffsets[3].xOffset = gCurrentPinballGame->unk4C + gCurrentPinballGame->unk120 + gCurrentPinballGame->unk2AA;
|
||||
gCurrentPinballGame->unkCC = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk121 + gCurrentPinballGame->unk5FC + gCurrentPinballGame->unkE6;
|
||||
var3 = gMain.bgOffsets[3].yOffset - gCurrentPinballGame->unkCC;
|
||||
if (var3 > 8)
|
||||
var3 = 8;
|
||||
else if (var3 < -8)
|
||||
var3 = -8;
|
||||
|
||||
if (var3)
|
||||
gMain.bgOffsets[3].yOffset -= var3;
|
||||
|
||||
gMain.bgOffsets[2].xOffset = gMain.bgOffsets[3].xOffset;
|
||||
gMain.bgOffsets[2].yOffset = gMain.bgOffsets[3].yOffset;
|
||||
gMain.bgOffsets[1].xOffset = gMain.bgOffsets[3].xOffset;
|
||||
gMain.bgOffsets[1].yOffset = gMain.bgOffsets[3].yOffset;
|
||||
gCurrentPinballGame->unk58 = gCurrentPinballGame->unk4C + gCurrentPinballGame->unk120 + gCurrentPinballGame->unk2AA;
|
||||
gCurrentPinballGame->unk5A = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk121 + gCurrentPinballGame->unk5FC + gCurrentPinballGame->unkE6;
|
||||
gCurrentPinballGame->unk6A = gCurrentPinballGame->unk68;
|
||||
gCurrentPinballGame->unk68 = gCurrentPinballGame->unk4E + gCurrentPinballGame->unk121 + gCurrentPinballGame->unk5FC + gCurrentPinballGame->unkE6;
|
||||
}
|
||||
|
||||
void BonusBoardProcess_2B_4DBFC(void)
|
||||
{
|
||||
int var0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user