mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
sub_505A4
This commit is contained in:
parent
d30dc0260a
commit
c0b26e76d7
136
asm/rom_4CEA8.s
136
asm/rom_4CEA8.s
|
|
@ -6558,139 +6558,3 @@ _08050594: .4byte gUnknown_086B12D0
|
|||
_08050598: .4byte 0x040000D4
|
||||
_0805059C: .4byte 0x80000030
|
||||
_080505A0: .4byte 0x80000040
|
||||
|
||||
thumb_func_start sub_505A4
|
||||
sub_505A4: @ 0x080505A4
|
||||
push {r4, r5, lr}
|
||||
movs r3, #0
|
||||
ldr r0, _080505C8 @ =gCurrentPinballGame
|
||||
ldr r2, [r0]
|
||||
ldr r4, _080505CC @ =0x00000366
|
||||
adds r1, r2, r4
|
||||
ldrb r1, [r1]
|
||||
lsls r1, r1, #0x18
|
||||
asrs r1, r1, #0x18
|
||||
adds r5, r0, #0
|
||||
cmp r1, #3
|
||||
bne _080505D4
|
||||
ldr r0, _080505D0 @ =0x0000072A
|
||||
adds r1, r2, r0
|
||||
movs r0, #1
|
||||
strb r0, [r1]
|
||||
b _080505E2
|
||||
.align 2, 0
|
||||
_080505C8: .4byte gCurrentPinballGame
|
||||
_080505CC: .4byte 0x00000366
|
||||
_080505D0: .4byte 0x0000072A
|
||||
_080505D4:
|
||||
movs r0, #0x13
|
||||
ldrsb r0, [r2, r0]
|
||||
cmp r0, #0
|
||||
beq _080505E2
|
||||
ldr r1, _0805060C @ =0x0000072A
|
||||
adds r0, r2, r1
|
||||
strb r3, [r0]
|
||||
_080505E2:
|
||||
ldr r1, [r5]
|
||||
ldr r2, _0805060C @ =0x0000072A
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
cmp r0, #0
|
||||
ble _08050614
|
||||
ldr r4, _08050610 @ =0x000001A5
|
||||
adds r0, r1, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
lsls r0, r0, #1
|
||||
adds r2, #0xa
|
||||
adds r1, r1, r2
|
||||
ldrh r1, [r1]
|
||||
subs r1, #1
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #0x10
|
||||
b _08050620
|
||||
.align 2, 0
|
||||
_0805060C: .4byte 0x0000072A
|
||||
_08050610: .4byte 0x000001A5
|
||||
_08050614:
|
||||
ldr r4, _0805069C @ =0x000001A5
|
||||
adds r0, r1, r4
|
||||
ldrb r0, [r0]
|
||||
lsls r0, r0, #0x18
|
||||
asrs r0, r0, #0x18
|
||||
lsls r0, r0, #0x11
|
||||
_08050620:
|
||||
lsrs r3, r0, #0x10
|
||||
lsls r0, r3, #0x10
|
||||
asrs r0, r0, #0xc
|
||||
ldr r2, _080506A0 @ =gUnknown_086B125C
|
||||
adds r3, r0, r2
|
||||
adds r4, r2, #0
|
||||
adds r4, #0x40
|
||||
ldr r0, [r5]
|
||||
adds r0, #0x6a
|
||||
movs r1, #0
|
||||
ldrsh r0, [r0, r1]
|
||||
cmp r0, #0xdf
|
||||
bgt _0805064A
|
||||
ldr r1, _080506A4 @ =0x040000D4
|
||||
ldr r0, [r3]
|
||||
str r0, [r1]
|
||||
ldr r0, [r2, #0x40]
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _080506A8 @ =0x80000040
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
_0805064A:
|
||||
ldr r0, [r5]
|
||||
adds r2, r0, #0
|
||||
adds r2, #0x6a
|
||||
movs r1, #0
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, #0xe7
|
||||
bgt _08050668
|
||||
ldr r1, _080506A4 @ =0x040000D4
|
||||
ldr r0, [r3, #4]
|
||||
str r0, [r1]
|
||||
ldr r0, [r4, #4]
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _080506A8 @ =0x80000040
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
_08050668:
|
||||
movs r1, #0
|
||||
ldrsh r0, [r2, r1]
|
||||
cmp r0, #0x47
|
||||
ble _08050694
|
||||
cmp r0, #0xef
|
||||
bgt _08050684
|
||||
ldr r1, _080506A4 @ =0x040000D4
|
||||
ldr r0, [r3, #8]
|
||||
str r0, [r1]
|
||||
ldr r0, [r4, #8]
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _080506A8 @ =0x80000040
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
_08050684:
|
||||
ldr r1, _080506A4 @ =0x040000D4
|
||||
ldr r0, [r3, #0xc]
|
||||
str r0, [r1]
|
||||
ldr r0, [r4, #0xc]
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _080506AC @ =0x80000030
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
_08050694:
|
||||
pop {r4, r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0805069C: .4byte 0x000001A5
|
||||
_080506A0: .4byte gUnknown_086B125C
|
||||
_080506A4: .4byte 0x040000D4
|
||||
_080506A8: .4byte 0x80000040
|
||||
_080506AC: .4byte 0x80000030
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -356,7 +356,8 @@ struct PinballGame
|
|||
/*0x359*/ s8 unk359[4];
|
||||
/*0x35D*/ u8 filler35D[0x1];
|
||||
/*0x35E*/ u16 unk35E[4];
|
||||
/*0x366*/ u8 filler366[0x4];
|
||||
/*0x366*/ s8 unk366;
|
||||
/*0x367*/ u8 filler367[0x3];
|
||||
/*0x36A*/ u8 unk36A[2];
|
||||
/*0x36C*/ u8 unk36C[2];
|
||||
/*0x36E*/ u16 unk36E[2];
|
||||
|
|
@ -624,12 +625,16 @@ struct PinballGame
|
|||
/*0x724*/ u16 unk724;
|
||||
/*0x726*/ u8 filler726[0x2];
|
||||
/*0x728*/ u8 unk728; // TODO: unknown type
|
||||
/*0x729*/ u8 filler729[0x5];
|
||||
/*0x729*/ u8 filler729[0x1];
|
||||
/*0x72A*/ s8 unk72A;
|
||||
/*0x72B*/ u8 filler72B[0x3];
|
||||
/*0x72E*/ s8 unk72E;
|
||||
/*0x72F*/ s8 unk72F;
|
||||
/*0x730*/ u8 unk730;
|
||||
/*0x731*/ u8 unk731;
|
||||
/*0x732*/ u8 filler732[0xA];
|
||||
/*0x732*/ u8 filler732[0x2];
|
||||
/*0x734*/ u16 unk734;
|
||||
/*0x736*/ u8 filler736[0x6];
|
||||
/*0x73C*/ u8 unk73C; // TODO: unknown type
|
||||
/*0x73D*/ s8 catchModeArrows; // Affects which encounter table is used per area
|
||||
/*0x73E*/ u8 filler73E[0x2];
|
||||
|
|
|
|||
|
|
@ -6,8 +6,50 @@
|
|||
extern const u8 *gUnknown_086B0E6C[][2];
|
||||
extern const u8 *gUnknown_086B0F9C[][3][2];
|
||||
extern const u8 *gUnknown_086B12AC[][3];
|
||||
extern const u8 *gUnknown_086B125C[][4];
|
||||
|
||||
|
||||
void sub_505A4(void)
|
||||
{
|
||||
s16 index;
|
||||
const u8 **src;
|
||||
const u8 **dest;
|
||||
|
||||
index = 0;
|
||||
if (gCurrentPinballGame->unk366 == 3)
|
||||
gCurrentPinballGame->unk72A = 1;
|
||||
else if (gCurrentPinballGame->unk13)
|
||||
gCurrentPinballGame->unk72A = 0;
|
||||
|
||||
if (gCurrentPinballGame->unk72A > 0)
|
||||
index = gCurrentPinballGame->unk1A5 * 2 - (gCurrentPinballGame->unk734 - 1);
|
||||
else
|
||||
index = gCurrentPinballGame->unk1A5 * 2;
|
||||
|
||||
|
||||
src = gUnknown_086B125C[index];
|
||||
dest = gUnknown_086B125C[4];
|
||||
if (gCurrentPinballGame->unk6A < 224)
|
||||
{
|
||||
DmaCopy16(3, src[0], dest[0], 0x80);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk6A < 232)
|
||||
{
|
||||
DmaCopy16(3, src[1], dest[1], 0x80);
|
||||
}
|
||||
|
||||
if (gCurrentPinballGame->unk6A > 71)
|
||||
{
|
||||
if (gCurrentPinballGame->unk6A < 240)
|
||||
{
|
||||
DmaCopy16(3, src[2], dest[2], 0x80);
|
||||
}
|
||||
|
||||
DmaCopy16(3, src[3], dest[3], 0x60);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_506B0(void)
|
||||
{
|
||||
s16 i;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user