sub_4FD88

This commit is contained in:
Marcus Huderle 2025-08-13 08:50:48 -05:00
parent ea10635dad
commit af63c47397
5 changed files with 36 additions and 115 deletions

View File

@ -5506,116 +5506,3 @@ _0804FD78: .4byte gCurrentPinballGame
_0804FD7C: .4byte gUnknown_086B1300
_0804FD80: .4byte 0x040000D4
_0804FD84: .4byte 0x80000020
thumb_func_start sub_4FD88
sub_4FD88: @ 0x0804FD88
push {r4, r5, lr}
ldr r0, _0804FDA4 @ =gCurrentPinballGame
ldr r3, [r0]
ldr r2, _0804FDA8 @ =0x00000724
adds r1, r3, r2
ldrh r2, [r1]
movs r1, #0x96
lsls r1, r1, #1
adds r5, r0, #0
cmp r2, r1
bls _0804FDB0
ldr r0, _0804FDAC @ =0x00000726
adds r1, r3, r0
b _0804FDC6
.align 2, 0
_0804FDA4: .4byte gCurrentPinballGame
_0804FDA8: .4byte 0x00000724
_0804FDAC: .4byte 0x00000726
_0804FDB0:
cmp r2, #0
beq _0804FDEC
adds r0, r3, #0
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0804FDD0
ldr r2, _0804FDCC @ =0x00000726
adds r1, r3, r2
_0804FDC6:
movs r0, #1
strb r0, [r1]
b _0804FDF2
.align 2, 0
_0804FDCC: .4byte 0x00000726
_0804FDD0:
ldr r0, _0804FDE4 @ =gMain
ldr r0, [r0, #0x50]
movs r1, #0xf
ands r0, r1
lsrs r0, r0, #3
ldr r2, _0804FDE8 @ =0x00000726
adds r1, r3, r2
strb r0, [r1]
b _0804FDF2
.align 2, 0
_0804FDE4: .4byte gMain
_0804FDE8: .4byte 0x00000726
_0804FDEC:
ldr r1, _0804FE54 @ =0x00000726
adds r0, r3, r1
strb r2, [r0]
_0804FDF2:
ldr r0, [r5]
ldr r2, _0804FE54 @ =0x00000726
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsls r0, r0, #4
ldr r1, _0804FE58 @ =gUnknown_086B11CC
adds r3, r0, r1
adds r4, r1, #0
adds r4, #0x20
ldr r2, _0804FE5C @ =0x040000D4
ldr r0, [r3]
str r0, [r2]
ldr r0, [r1, #0x20]
str r0, [r2, #4]
ldr r1, _0804FE60 @ =0x80000070
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #4]
str r0, [r2]
ldr r0, [r4, #4]
str r0, [r2, #4]
str r1, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r5]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xd7
ble _0804FE4C
ldr r0, [r3, #8]
str r0, [r2]
ldr r0, [r4, #8]
str r0, [r2, #4]
ldr r0, _0804FE64 @ =0x80000060
str r0, [r2, #8]
ldr r0, [r2, #8]
ldr r0, [r3, #0xc]
str r0, [r2]
ldr r0, [r4, #0xc]
str r0, [r2, #4]
ldr r0, _0804FE68 @ =0x80000020
str r0, [r2, #8]
ldr r0, [r2, #8]
_0804FE4C:
pop {r4, r5}
pop {r0}
bx r0
.align 2, 0
_0804FE54: .4byte 0x00000726
_0804FE58: .4byte gUnknown_086B11CC
_0804FE5C: .4byte 0x040000D4
_0804FE60: .4byte 0x80000070
_0804FE64: .4byte 0x80000060
_0804FE68: .4byte 0x80000020

Binary file not shown.

View File

@ -623,7 +623,8 @@ struct PinballGame
/*0x71C*/ u8 unk71C;
/*0x71D*/ u8 filler71D[0x7];
/*0x724*/ u16 unk724;
/*0x726*/ u8 filler726[0x2];
/*0x726*/ s8 unk726;
/*0x727*/ u8 filler727[0x1];
/*0x728*/ s8 unk728;
/*0x729*/ s8 unk729;
/*0x72A*/ s8 unk72A;

View File

@ -84,7 +84,7 @@ struct Main
/*0x44*/ struct SpriteGroup **unk44;
/*0x48*/ int rngValue;
/*0x4C*/ u32 systemFrameCount;
/*0x50*/ int fieldFrameCount;
/*0x50*/ u32 fieldFrameCount;
/*0x54*/ u32 unk54;
/*0x58*/ u32 unk58;
/*0x5C*/ u32 unk5C;

View File

@ -13,8 +13,41 @@ extern const u8 *gUnknown_086B1340[][5][3];
extern const u8 *gUnknown_086B122C[][4];
extern const u8 *gUnknown_086B11FC[][4];
extern const u8 *gUnknown_086B13F4[][5][3];
extern const u8 *gUnknown_086B11CC[][4];
void sub_4FD88(void)
{
const u8 **src;
const u8 **dest;
if (gCurrentPinballGame->unk724 > 300)
{
gCurrentPinballGame->unk726 = 1;
}
else if (gCurrentPinballGame->unk724)
{
if (gCurrentPinballGame->unk25)
gCurrentPinballGame->unk726 = 1;
else
gCurrentPinballGame->unk726 = (gMain.fieldFrameCount & 0xF) / 8;
}
else
{
gCurrentPinballGame->unk726 = 0;
}
src = gUnknown_086B11CC[gCurrentPinballGame->unk726];
dest = gUnknown_086B11CC[2];
DmaCopy16(3, src[0], dest[0], 0xE0);
DmaCopy16(3, src[1], dest[1], 0xE0);
if (gCurrentPinballGame->unk6A > 215)
{
DmaCopy16(3, src[2], dest[2], 0xC0);
DmaCopy16(3, src[3], dest[3], 0x40);
}
}
void sub_4FE6C(void)
{
s16 sp0[3];