mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
parent
35527350bb
commit
8bf9ead07d
250
asm/rom_3219C.s
250
asm/rom_3219C.s
|
|
@ -36153,253 +36153,3 @@ _08049590: .4byte gOamBuffer
|
|||
_08049594: .4byte 0xFFFFFE00
|
||||
_08049598: .4byte 0x000001FF
|
||||
_0804959C: .4byte gMain+0x748 @gMain.spriteGroups[6]
|
||||
|
||||
thumb_func_start sub_495A0
|
||||
sub_495A0: @ 0x080495A0
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sl
|
||||
mov r6, sb
|
||||
mov r5, r8
|
||||
push {r5, r6, r7}
|
||||
ldr r4, _080495DC @ =0xFFFFFDFC
|
||||
add sp, r4
|
||||
ldr r2, _080495E0 @ =gCurrentPinballGame
|
||||
ldr r0, [r2]
|
||||
ldr r1, _080495E4 @ =0x00001104
|
||||
adds r0, r0, r1
|
||||
movs r3, #0
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
ldr r1, [r2]
|
||||
ldr r2, _080495E8 @ =0x0000131C
|
||||
adds r0, r1, r2
|
||||
str r3, [r0]
|
||||
ldr r2, _080495EC @ =gMPlayInfo_BGM
|
||||
ldr r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
blt _080495F4
|
||||
ldr r5, _080495F0 @ =0x00000F4C
|
||||
adds r1, r1, r5
|
||||
ldr r0, [r2]
|
||||
str r0, [r1]
|
||||
adds r0, r2, #0
|
||||
bl m4aMPlayStop
|
||||
b _080495FA
|
||||
.align 2, 0
|
||||
_080495DC: .4byte 0xFFFFFDFC
|
||||
_080495E0: .4byte gCurrentPinballGame
|
||||
_080495E4: .4byte 0x00001104
|
||||
_080495E8: .4byte 0x0000131C
|
||||
_080495EC: .4byte gMPlayInfo_BGM
|
||||
_080495F0: .4byte 0x00000F4C
|
||||
_080495F4:
|
||||
ldr r2, _08049628 @ =0x00000F4C
|
||||
adds r0, r1, r2
|
||||
str r3, [r0]
|
||||
_080495FA:
|
||||
bl m4aMPlayAllStop
|
||||
movs r0, SE_UNKNOWN_0xA5
|
||||
bl m4aSongNumStart
|
||||
ldr r2, _0804962C @ =gMain
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #1
|
||||
bhi _0804963C
|
||||
ldr r0, _08049630 @ =gCurrentPinballGame
|
||||
ldr r0, [r0]
|
||||
adds r1, r0, #0
|
||||
adds r1, #0x68
|
||||
ldrh r1, [r1]
|
||||
adds r0, #0x6a
|
||||
strh r1, [r0]
|
||||
ldrb r0, [r2, #4]
|
||||
cmp r0, #0
|
||||
bne _08049634
|
||||
bl sub_4E814
|
||||
b _0804963C
|
||||
.align 2, 0
|
||||
_08049628: .4byte 0x00000F4C
|
||||
_0804962C: .4byte gMain
|
||||
_08049630: .4byte gCurrentPinballGame
|
||||
_08049634:
|
||||
cmp r0, #1
|
||||
bne _0804963C
|
||||
bl sub_4F814
|
||||
_0804963C:
|
||||
ldr r4, _08049708 @ =gCurrentPinballGame
|
||||
ldr r2, [r4]
|
||||
ldr r3, _0804970C @ =gMain
|
||||
ldrh r1, [r3, #0x38]
|
||||
ldr r5, _08049710 @ =0x00001106
|
||||
adds r0, r2, r5
|
||||
ldrh r5, [r0]
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r3, #0x3a]
|
||||
ldr r5, _08049714 @ =0x00001108
|
||||
adds r0, r2, r5
|
||||
ldrh r5, [r0]
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r3, #0x3c]
|
||||
ldr r5, _08049718 @ =0x0000110A
|
||||
adds r0, r2, r5
|
||||
ldrh r5, [r0]
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r3, #0x2c]
|
||||
ldr r5, _0804971C @ =0x0000110C
|
||||
adds r0, r2, r5
|
||||
strh r1, [r0]
|
||||
ldrh r1, [r3, #0x26]
|
||||
adds r5, #2
|
||||
adds r0, r2, r5
|
||||
strh r1, [r0]
|
||||
ldr r1, _08049720 @ =0x040000D4
|
||||
ldr r0, _08049724 @ =0x05000200
|
||||
str r0, [r1]
|
||||
ldr r0, _08049728 @ =0x0000111A
|
||||
adds r2, r2, r0
|
||||
str r2, [r1, #4]
|
||||
ldr r0, _0804972C @ =0x80000100
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
movs r1, #0
|
||||
add r6, sp, #0x200
|
||||
movs r2, #0x9c
|
||||
lsls r2, r2, #1
|
||||
add r2, sp
|
||||
mov sl, r2
|
||||
_0804968E:
|
||||
movs r5, #0
|
||||
lsls r1, r1, #0x10
|
||||
mov sb, r1
|
||||
mov r0, sb
|
||||
asrs r0, r0, #0x10
|
||||
mov r8, r0
|
||||
_0804969A:
|
||||
lsls r7, r5, #0x10
|
||||
mov r1, r8
|
||||
cmp r1, #9
|
||||
bne _080496A8
|
||||
asrs r0, r7, #0x10
|
||||
cmp r0, #0xc
|
||||
beq _08049730
|
||||
_080496A8:
|
||||
ldr r2, _08049708 @ =gCurrentPinballGame
|
||||
ldr r4, [r2]
|
||||
asrs r5, r7, #0xf
|
||||
mov r1, r8
|
||||
lsls r0, r1, #5
|
||||
adds r5, r5, r0
|
||||
ldr r2, _08049728 @ =0x0000111A
|
||||
adds r4, r4, r2
|
||||
adds r4, r4, r5
|
||||
ldrh r1, [r4]
|
||||
movs r0, #0x1f
|
||||
ands r0, r1
|
||||
lsls r0, r0, #1
|
||||
movs r1, #5
|
||||
bl __divsi3
|
||||
strb r0, [r6]
|
||||
ldrh r0, [r4]
|
||||
movs r2, #0xf8
|
||||
lsls r2, r2, #2
|
||||
adds r1, r2, #0
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #4
|
||||
movs r1, #5
|
||||
bl __divsi3
|
||||
strb r0, [r6, #1]
|
||||
ldrh r0, [r4]
|
||||
movs r2, #0xf8
|
||||
lsls r2, r2, #7
|
||||
adds r1, r2, #0
|
||||
ands r0, r1
|
||||
lsrs r0, r0, #9
|
||||
movs r1, #5
|
||||
bl __divsi3
|
||||
strb r0, [r6, #2]
|
||||
mov r0, sp
|
||||
adds r2, r0, r5
|
||||
ldrb r1, [r6]
|
||||
ldrb r0, [r6, #1]
|
||||
lsls r0, r0, #5
|
||||
orrs r1, r0
|
||||
ldrb r0, [r6, #2]
|
||||
lsls r0, r0, #0xa
|
||||
orrs r1, r0
|
||||
strh r1, [r2]
|
||||
b _08049736
|
||||
.align 2, 0
|
||||
_08049708: .4byte gCurrentPinballGame
|
||||
_0804970C: .4byte gMain
|
||||
_08049710: .4byte 0x00001106
|
||||
_08049714: .4byte 0x00001108
|
||||
_08049718: .4byte 0x0000110A
|
||||
_0804971C: .4byte 0x0000110C
|
||||
_08049720: .4byte 0x040000D4
|
||||
_08049724: .4byte 0x05000200
|
||||
_08049728: .4byte 0x0000111A
|
||||
_0804972C: .4byte 0x80000100
|
||||
_08049730:
|
||||
ldr r0, _08049770 @ =0x00007FFF
|
||||
mov r1, sl
|
||||
strh r0, [r1]
|
||||
_08049736:
|
||||
movs r2, #0x80
|
||||
lsls r2, r2, #9
|
||||
adds r0, r7, r2
|
||||
lsrs r5, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xf
|
||||
ble _0804969A
|
||||
adds r0, r2, #0
|
||||
add r0, sb
|
||||
lsrs r1, r0, #0x10
|
||||
asrs r0, r0, #0x10
|
||||
cmp r0, #0xf
|
||||
ble _0804968E
|
||||
ldr r1, _08049774 @ =0x040000D4
|
||||
mov r5, sp
|
||||
str r5, [r1]
|
||||
ldr r0, _08049778 @ =0x05000200
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _0804977C @ =0x80000100
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
ldr r0, _08049780 @ =gMain
|
||||
ldrb r3, [r0, #4]
|
||||
cmp r3, #1
|
||||
bhi _08049784
|
||||
bl sub_1D4D0
|
||||
b _080497A0
|
||||
.align 2, 0
|
||||
_08049770: .4byte 0x00007FFF
|
||||
_08049774: .4byte 0x040000D4
|
||||
_08049778: .4byte 0x05000200
|
||||
_0804977C: .4byte 0x80000100
|
||||
_08049780: .4byte gMain
|
||||
_08049784:
|
||||
cmp r3, #2
|
||||
bne _0804978E
|
||||
bl sub_356A0
|
||||
b _080497A0
|
||||
_0804978E:
|
||||
cmp r3, #4
|
||||
bne _08049798
|
||||
bl sub_3ADA0
|
||||
b _080497A0
|
||||
_08049798:
|
||||
cmp r3, #5
|
||||
bne _080497A0
|
||||
bl sub_3E5D0
|
||||
_080497A0:
|
||||
movs r0, #1
|
||||
bl sub_11F0
|
||||
movs r3, #0x81
|
||||
lsls r3, r3, #2
|
||||
add sp, r3
|
||||
pop {r3, r4, r5}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
mov sl, r5
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
|
|
|
|||
|
|
@ -595,12 +595,14 @@ extern void sub_356A0();
|
|||
//extern ? sub_395D8();
|
||||
//extern ? sub_39A40();
|
||||
//extern ? sub_3A150();
|
||||
extern void sub_3ADA0(void);
|
||||
//extern ? sub_3AE14();
|
||||
//extern ? sub_3B120();
|
||||
//extern ? sub_3B49C();
|
||||
//extern ? sub_3B7C4();
|
||||
//extern ? sub_3C6E0();
|
||||
//extern ? sub_3CBC4();
|
||||
extern void sub_3E5D0(void);
|
||||
//extern ? sub_3E644();
|
||||
//extern ? sub_3E79C();
|
||||
//extern ? sub_3EB2C();
|
||||
|
|
@ -653,7 +655,7 @@ extern void sub_49ED4(void);
|
|||
//extern ? sub_4E2F8();
|
||||
//extern ? sub_4E468();
|
||||
extern void sub_4E598(void);
|
||||
//extern ? sub_4E814();
|
||||
extern void sub_4E814(void);
|
||||
//extern ? sub_4E920();
|
||||
extern void sub_4E9F0(s8);
|
||||
//extern ? sub_4EA44();
|
||||
|
|
|
|||
|
|
@ -509,9 +509,9 @@ struct PinballGame
|
|||
/*0x1103*/u8 unk1103;
|
||||
/*0x1104*/s8 unk1104;
|
||||
/*0x1105*/u8 filler1105[0x1];
|
||||
/*0x1106*/u16 unk1106;
|
||||
/*0x1108*/u16 unk1108;
|
||||
/*0x110A*/u16 unk110A;
|
||||
/*0x1106*/volatile u16 unk1106;
|
||||
/*0x1108*/volatile u16 unk1108;
|
||||
/*0x110A*/volatile u16 unk110A;
|
||||
/*0x110C*/u16 unk110C;
|
||||
/*0x110E*/u16 unk110E;
|
||||
/*0x1110*/volatile u16 unk1110;
|
||||
|
|
@ -519,7 +519,7 @@ struct PinballGame
|
|||
/*0x1114*/volatile u16 unk1114;
|
||||
/*0x1116*/u16 unk1116;
|
||||
/*0x1118*/u16 unk1118;
|
||||
/*0x111A*/u8 unk111A[OBJ_PLTT_SIZE];
|
||||
/*0x111A*/u16 unk111A[OBJ_PLTT_SIZE / 0x20][0x10];
|
||||
/*0x131A*/u8 filler131A[0x2];
|
||||
/*0x131C*/u32 unk131C;
|
||||
/*0x1320*/s16 unk1320;
|
||||
|
|
|
|||
|
|
@ -85,9 +85,6 @@ extern const u8 gUnknown_084C0C6C[];
|
|||
extern u8 *gMonPortraitGroupGfx[];
|
||||
|
||||
void sub_1D4D0(void);
|
||||
void sub_356A0(void);
|
||||
void sub_3ADA0(void);
|
||||
void sub_3E5D0(void);
|
||||
void sub_467F4(void);
|
||||
void sub_4A6A0(void);
|
||||
void sub_47110(void);
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ extern void sub_239A4(void);
|
|||
extern void sub_23E18(void);
|
||||
extern void sub_2C538(void);
|
||||
extern void sub_2C9A4(void);
|
||||
extern void sub_4E814(void);
|
||||
|
||||
void sub_19D04(void)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -7,6 +7,72 @@ extern const struct Vector16 gUnknown_08137D78[];
|
|||
extern const u16 gUnknown_08137DA4[];
|
||||
extern const u8 gUnknown_08510CAC[][0x20];
|
||||
|
||||
void sub_495A0(void)
|
||||
{
|
||||
s16 i, j;
|
||||
u16 objPalettes[OBJ_PLTT_SIZE / 0x20][0x10];
|
||||
u8 rgb[3];
|
||||
|
||||
gCurrentPinballGame->unk1104 = 1;
|
||||
gCurrentPinballGame->unk131C = 0;
|
||||
if (gMPlayInfo_BGM.status >= 0)
|
||||
{
|
||||
gCurrentPinballGame->unkF4C = gMPlayInfo_BGM.songHeader;
|
||||
m4aMPlayStop(&gMPlayInfo_BGM);
|
||||
}
|
||||
else
|
||||
{
|
||||
gCurrentPinballGame->unkF4C = NULL;
|
||||
}
|
||||
|
||||
m4aMPlayAllStop();
|
||||
m4aSongNumStart(SE_UNKNOWN_0xA5);
|
||||
if (gMain.selectedField < MAIN_FIELD_COUNT)
|
||||
{
|
||||
gCurrentPinballGame->unk6A = gCurrentPinballGame->unk68;
|
||||
if (gMain.selectedField == FIELD_RUBY)
|
||||
sub_4E814();
|
||||
else if (gMain.selectedField == FIELD_SAPPHIRE)
|
||||
sub_4F814();
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk1106 = gMain.blendControl;
|
||||
gCurrentPinballGame->unk1108 = gMain.blendAlpha;
|
||||
gCurrentPinballGame->unk110A = gMain.blendBrightness;
|
||||
gCurrentPinballGame->unk110C = gMain.unk2C;
|
||||
gCurrentPinballGame->unk110E = gMain.vCount;
|
||||
DmaCopy16(3, (void *)OBJ_PLTT, gCurrentPinballGame->unk111A, OBJ_PLTT_SIZE);
|
||||
for (i = 0; i < 16; i++)
|
||||
{
|
||||
for (j = 0; j < 16; j++)
|
||||
{
|
||||
if (i != 9 || j != 12)
|
||||
{
|
||||
rgb[0] = (((gCurrentPinballGame->unk111A[i][j] & 0x001F) >> 0) * 2) / 5;
|
||||
rgb[1] = (((gCurrentPinballGame->unk111A[i][j] & 0x03E0) >> 5) * 2) / 5;
|
||||
rgb[2] = (((gCurrentPinballGame->unk111A[i][j] & 0x7C00) >> 10) * 2) / 5;
|
||||
objPalettes[i][j] = rgb[0] | (rgb[1] << 5) | (rgb[2] << 10);
|
||||
}
|
||||
else
|
||||
{
|
||||
objPalettes[i][j] = 0x7FFF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DmaCopy16(3, objPalettes, (void *)OBJ_PLTT, OBJ_PLTT_SIZE);
|
||||
if (gMain.selectedField < MAIN_FIELD_COUNT)
|
||||
sub_1D4D0();
|
||||
else if (gMain.selectedField == FIELD_DUSCLOPS)
|
||||
sub_356A0();
|
||||
else if (gMain.selectedField == FIELD_KYOGRE)
|
||||
sub_3ADA0();
|
||||
else if (gMain.selectedField == FIELD_GROUDON)
|
||||
sub_3E5D0();
|
||||
|
||||
sub_11F0(1);
|
||||
}
|
||||
|
||||
void sub_497BC(void)
|
||||
{
|
||||
gMain.blendControl = gCurrentPinballGame->unk1106;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user