mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-04-26 00:37:22 -05:00
sub_47344
This commit is contained in:
parent
8687824e48
commit
1e5f7b9cc0
204
asm/rom_3219C.s
204
asm/rom_3219C.s
|
|
@ -31934,207 +31934,3 @@ _08047338:
|
|||
bx r0
|
||||
.align 2, 0
|
||||
_08047340: .4byte gCurrentPinballGame
|
||||
|
||||
thumb_func_start sub_47344
|
||||
sub_47344: @ 0x08047344
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, sb
|
||||
mov r6, r8
|
||||
push {r6, r7}
|
||||
sub sp, #0x44
|
||||
ldr r1, _08047448 @ =gUnknown_08137DBE
|
||||
mov r0, sp
|
||||
movs r2, #0x2a
|
||||
bl memcpy
|
||||
add r4, sp, #0x2c
|
||||
ldr r1, _0804744C @ =gUnknown_08137DE8
|
||||
adds r0, r4, #0
|
||||
movs r2, #0x18
|
||||
bl memcpy
|
||||
mov sb, r4
|
||||
mov r1, sp
|
||||
adds r1, #0x2d
|
||||
mov r6, sp
|
||||
adds r6, #0x31
|
||||
mov r7, sp
|
||||
adds r7, #0x39
|
||||
add r0, sp, #0x38
|
||||
mov r8, r0
|
||||
ldr r0, _08047450 @ =gUnknown_03005C00
|
||||
movs r3, #0
|
||||
movs r2, #0xd0
|
||||
lsls r2, r2, #3
|
||||
adds r0, r0, r2
|
||||
movs r2, #0x40
|
||||
_08047382:
|
||||
strh r3, [r0]
|
||||
adds r0, #2
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bne _08047382
|
||||
ldr r5, _08047454 @ =gCurrentPinballGame
|
||||
ldr r0, [r5]
|
||||
ldr r4, _08047458 @ =0x0000132C
|
||||
adds r0, r0, r4
|
||||
ldr r0, [r0]
|
||||
movs r2, #0x10
|
||||
ldrsh r0, [r0, r2]
|
||||
movs r2, #3
|
||||
movs r3, #1
|
||||
bl sub_06CC
|
||||
ldr r0, [r5]
|
||||
adds r0, r0, r4
|
||||
ldr r0, [r0]
|
||||
movs r1, #0x12
|
||||
ldrsh r0, [r0, r1]
|
||||
adds r1, r6, #0
|
||||
movs r2, #3
|
||||
movs r3, #1
|
||||
bl sub_06CC
|
||||
mov r0, sb
|
||||
movs r1, #0x1a
|
||||
movs r2, #9
|
||||
bl sub_0678
|
||||
ldr r0, [r5]
|
||||
adds r0, #0x68
|
||||
movs r2, #0
|
||||
ldrsh r0, [r0, r2]
|
||||
adds r1, r7, #0
|
||||
movs r2, #3
|
||||
movs r3, #1
|
||||
bl sub_06CC
|
||||
mov r0, r8
|
||||
movs r1, #0x1a
|
||||
movs r2, #0x12
|
||||
bl sub_0678
|
||||
mov r0, sp
|
||||
movs r1, #0x1a
|
||||
movs r2, #0
|
||||
bl sub_0678
|
||||
ldr r4, _0804745C @ =gMain
|
||||
ldrh r1, [r4, #0x1c]
|
||||
movs r0, #2
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08047464
|
||||
ldr r0, [r4, #0x4c]
|
||||
movs r1, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08047408
|
||||
ldr r0, _08047460 @ =gUnknown_08137E00
|
||||
ldrb r1, [r4, #0x10]
|
||||
adds r1, #0x1a
|
||||
movs r2, #0
|
||||
bl sub_0678
|
||||
_08047408:
|
||||
ldrh r1, [r4, #0x18]
|
||||
movs r0, #0x40
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0804741C
|
||||
ldrb r0, [r4, #0x10]
|
||||
cmp r0, #0
|
||||
beq _0804741C
|
||||
subs r0, #1
|
||||
strb r0, [r4, #0x10]
|
||||
_0804741C:
|
||||
ldr r2, _0804745C @ =gMain
|
||||
ldrh r1, [r2, #0x18]
|
||||
movs r0, #0x80
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _08047432
|
||||
ldrb r0, [r2, #0x10]
|
||||
cmp r0, #0
|
||||
bne _08047432
|
||||
adds r0, #1
|
||||
strb r0, [r2, #0x10]
|
||||
_08047432:
|
||||
ldr r0, _08047454 @ =gCurrentPinballGame
|
||||
ldr r0, [r0]
|
||||
movs r6, #0xe8
|
||||
lsls r6, r6, #3
|
||||
adds r0, r0, r6
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #2
|
||||
bne _08047490
|
||||
bl sub_48124
|
||||
b _08047490
|
||||
.align 2, 0
|
||||
_08047448: .4byte gUnknown_08137DBE
|
||||
_0804744C: .4byte gUnknown_08137DE8
|
||||
_08047450: .4byte gUnknown_03005C00
|
||||
_08047454: .4byte gCurrentPinballGame
|
||||
_08047458: .4byte 0x0000132C
|
||||
_0804745C: .4byte gMain
|
||||
_08047460: .4byte gUnknown_08137E00
|
||||
_08047464:
|
||||
ldr r0, [r5]
|
||||
movs r1, #0xe8
|
||||
lsls r1, r1, #3
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #1
|
||||
beq _08047478
|
||||
cmp r0, #2
|
||||
beq _0804747E
|
||||
b _08047482
|
||||
_08047478:
|
||||
bl sub_47FF8
|
||||
b _08047482
|
||||
_0804747E:
|
||||
bl sub_48124
|
||||
_08047482:
|
||||
ldr r0, _080474DC @ =gUnknown_08137E00
|
||||
ldr r1, _080474E0 @ =gMain
|
||||
ldrb r1, [r1, #0x10]
|
||||
adds r1, #0x1a
|
||||
movs r2, #0
|
||||
bl sub_0678
|
||||
_08047490:
|
||||
ldr r4, _080474E4 @ =gUnknown_03005C00
|
||||
ldr r5, _080474E0 @ =gMain
|
||||
movs r2, #0xc1
|
||||
lsls r2, r2, #8
|
||||
adds r3, r2, #0
|
||||
movs r6, #0xd0
|
||||
lsls r6, r6, #3
|
||||
adds r1, r4, r6
|
||||
movs r2, #0x40
|
||||
_080474A2:
|
||||
ldrh r6, [r1]
|
||||
adds r0, r3, r6
|
||||
strh r0, [r1]
|
||||
adds r1, #2
|
||||
subs r2, #1
|
||||
cmp r2, #0
|
||||
bne _080474A2
|
||||
ldr r1, _080474E8 @ =0x040000D4
|
||||
str r4, [r1]
|
||||
ldr r0, _080474EC @ =0x06002000
|
||||
str r0, [r1, #4]
|
||||
ldr r0, _080474F0 @ =0x80000400
|
||||
str r0, [r1, #8]
|
||||
ldr r0, [r1, #8]
|
||||
ldrh r1, [r5, #0x1c]
|
||||
movs r0, #1
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _080474CC
|
||||
bl sub_47FBC
|
||||
_080474CC:
|
||||
add sp, #0x44
|
||||
pop {r3, r4}
|
||||
mov r8, r3
|
||||
mov sb, r4
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080474DC: .4byte gUnknown_08137E00
|
||||
_080474E0: .4byte gMain
|
||||
_080474E4: .4byte gUnknown_03005C00
|
||||
_080474E8: .4byte 0x040000D4
|
||||
_080474EC: .4byte 0x06002000
|
||||
_080474F0: .4byte 0x80000400
|
||||
|
|
|
|||
|
|
@ -1251,10 +1251,13 @@ gUnknown_08137DA4:: @ 0x08137DA4
|
|||
.incbin "baserom.gba", 0x137DA4, 0x1A
|
||||
|
||||
gUnknown_08137DBE:: @ 0x08137DBE
|
||||
.incbin "baserom.gba", 0x137DBE, 0x2A
|
||||
.byte ' ','B','A','L','L','-','M','V',':',0,0,0,0,0
|
||||
.byte ' ','B','A','L','L','-','S','P','D',':',0,0,0,0
|
||||
.byte ' ',' ','D','E','B','U','G','1',':',0,0,0,0,0
|
||||
|
||||
gUnknown_08137DE8:: @ 0x08137DE8
|
||||
.incbin "baserom.gba", 0x137DE8, 0x18
|
||||
.byte '(','0','0','0',' ','0','0','0',')',0,0,0
|
||||
.byte '(','0','0','0',')',' ',' ',' ',' ',0,0,0
|
||||
|
||||
gUnknown_08137E00:: @ 0x08137E00
|
||||
.incbin "baserom.gba", 0x137E00, 0x4
|
||||
|
|
|
|||
|
|
@ -77,6 +77,7 @@ void ClearGraphicsMemory(void);
|
|||
void sub_0518(void);
|
||||
void ClearSprites(void);
|
||||
void sub_0678(u8 *arg0, s16 arg1, s16 arg2);
|
||||
u8 *sub_06CC(int arg0, u8 *arg1, int arg2, s16 arg3);
|
||||
void SetMatrixScale(s16 xScale, s16 yScale, s16 matrixNum);
|
||||
|
||||
// src/bonus_field_select.s
|
||||
|
|
@ -633,8 +634,8 @@ extern void sub_472E4();
|
|||
//extern ? sub_47670();
|
||||
//extern ? sub_478D8();
|
||||
extern void sub_47FBC(void);
|
||||
//extern ? sub_47FF8();
|
||||
//extern ? sub_48124();
|
||||
extern void sub_47FF8(void);
|
||||
extern void sub_48124(void);
|
||||
extern void sub_48190(void);
|
||||
//extern ? sub_495A0();
|
||||
//extern ? sub_497BC();
|
||||
|
|
|
|||
|
|
@ -507,7 +507,9 @@ struct PinballGame
|
|||
/*0x732*/ u8 filler732[0xA];
|
||||
/*0x73C*/ u8 unk73C; // TODO: unknown type
|
||||
/*0x73D*/ s8 catchModeArrows; // Affects which encounter table is used per area
|
||||
/*0x73E*/ u8 filler73E[0x8];
|
||||
/*0x73E*/ u8 filler73E[0x2];
|
||||
/*0x740*/ u8 unk740;
|
||||
/*0x741*/ u8 filler741[0x5];
|
||||
/*0x746*/ u8 unk746;
|
||||
/*0x747*/ u8 filler747[0x2];
|
||||
/*0x749*/ u8 unk749;
|
||||
|
|
|
|||
|
|
@ -18,11 +18,70 @@ extern const u8 gUnknown_08521FAC[];
|
|||
extern const u8 gUnknown_08521FCC[];
|
||||
extern const u8 gUnknown_0850398C[];
|
||||
extern const u8 gUnknown_08509F4C[];
|
||||
extern const u8 gUnknown_08137DBE[];
|
||||
extern const u8 gUnknown_08137DE8[];
|
||||
extern u8 gUnknown_08137E00[];
|
||||
|
||||
extern s16 gUnknown_02030750[];
|
||||
extern s16 gUnknown_02031500[];
|
||||
extern s16 gUnknown_020306C0[];
|
||||
|
||||
void sub_47344(void)
|
||||
{
|
||||
int i;
|
||||
u8 str0[42];
|
||||
u8 str1[24];
|
||||
|
||||
memcpy(str0, gUnknown_08137DBE, 42);
|
||||
memcpy(str1, gUnknown_08137DE8, 24);
|
||||
|
||||
for (i = 0x340; i < 0x380; i++)
|
||||
gUnknown_03005C00[i] = 0;
|
||||
|
||||
sub_06CC(gCurrentPinballGame->ball->positionQ0.x, &str1[1], 3, 1);
|
||||
sub_06CC(gCurrentPinballGame->ball->positionQ0.y, &str1[5], 3, 1);
|
||||
sub_0678(&str1[0], 26, 9);
|
||||
sub_06CC(gCurrentPinballGame->unk68, &str1[13], 3, 1);
|
||||
sub_0678(&str1[12], 26, 18);
|
||||
sub_0678(str0, 26, 0);
|
||||
|
||||
if (JOY_HELD(B_BUTTON))
|
||||
{
|
||||
if (gMain.systemFrameCount & 0x8)
|
||||
sub_0678(gUnknown_08137E00, gMain.unk10 + 26, 0);
|
||||
|
||||
if (JOY_NEW(DPAD_UP) && gMain.unk10 != 0)
|
||||
gMain.unk10--;
|
||||
|
||||
if (JOY_NEW(DPAD_DOWN) && gMain.unk10 == 0)
|
||||
gMain.unk10++;
|
||||
|
||||
if (gCurrentPinballGame->unk740 == 2)
|
||||
sub_48124();
|
||||
}
|
||||
else
|
||||
{
|
||||
switch (gCurrentPinballGame->unk740)
|
||||
{
|
||||
case 1:
|
||||
sub_47FF8();
|
||||
break;
|
||||
case 2:
|
||||
sub_48124();
|
||||
break;
|
||||
}
|
||||
|
||||
sub_0678(gUnknown_08137E00, gMain.unk10 + 26, 0);
|
||||
}
|
||||
|
||||
for (i = 0x340; i < 0x380; i++)
|
||||
gUnknown_03005C00[i] += 0xC100;
|
||||
|
||||
DmaCopy16(3, gUnknown_03005C00, (void *)0x06002000, 0x800);
|
||||
if (JOY_HELD(A_BUTTON))
|
||||
sub_47FBC();
|
||||
}
|
||||
|
||||
void sub_474F4(void)
|
||||
{
|
||||
int i;
|
||||
|
|
@ -403,7 +462,7 @@ void sub_478D8(void)
|
|||
void sub_47FBC(void)
|
||||
{
|
||||
int i;
|
||||
for (i = 0x340; i < 0x340 + 0x40; i++)
|
||||
for (i = 0x340; i < 0x380; i++)
|
||||
gUnknown_03005C00[i] = 0x1FF;
|
||||
|
||||
DmaCopy16(3, gUnknown_03005C00, (void *)0x6002000, 0x800);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user