sub_4E814

This commit is contained in:
Marcus Huderle 2025-08-14 07:58:20 -05:00
parent 5d5ad1987c
commit 78f2ea5e48
4 changed files with 61 additions and 138 deletions

View File

@ -2846,128 +2846,3 @@ _0804E590: .4byte 0x80000010
_0804E594: .4byte 0x0000132C
.section .text4E598
thumb_func_start sub_4E814
sub_4E814: @ 0x0804E814
push {r4, r5, r6, lr}
ldr r6, _0804E910 @ =gCurrentPinballGame
ldr r4, [r6]
ldr r0, _0804E914 @ =0x0000070C
adds r5, r4, r0
ldrh r0, [r5]
movs r1, #0x28
bl __umodsi3
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x14
bl __udivsi3
ldr r1, _0804E918 @ =0x00000734
adds r4, r4, r1
strh r0, [r4]
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
bl sub_4EA44
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xe7
bgt _0804E854
bl sub_4EDC0
bl sub_4EE74
_0804E854:
ldr r0, [r6]
adds r0, #0x6a
ldrh r0, [r0]
subs r0, #0x51
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xa6
bhi _0804E868
bl sub_4EF38
_0804E868:
bl sub_4F0F0
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6f
bgt _0804E87C
bl sub_4F258
_0804E87C:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x70
ble _0804E88C
bl sub_4F028
_0804E88C:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x68
ble _0804E8A0
bl sub_4F4B4
bl sub_4F660
_0804E8A0:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xff
bgt _0804E8B0
bl sub_4F30C
_0804E8B0:
bl sub_4F2B8
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6e
ble _0804E8C4
bl sub_4EAB0
_0804E8C4:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xb2
ble _0804E8DC
bl sub_4EAF8
bl sub_4EBD0
bl sub_4E920
_0804E8DC:
ldr r0, [r6]
adds r0, #0x6a
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0xca
ble _0804E8EC
bl sub_4ECDC
_0804E8EC:
ldr r0, [r6]
ldr r1, _0804E91C @ =0x00000724
adds r2, r0, r1
ldrh r1, [r2]
cmp r1, #0
beq _0804E908
adds r0, #0x25
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _0804E908
subs r0, r1, #1
strh r0, [r2]
_0804E908:
pop {r4, r5, r6}
pop {r0}
bx r0
.align 2, 0
_0804E910: .4byte gCurrentPinballGame
_0804E914: .4byte 0x0000070C
_0804E918: .4byte 0x00000734
_0804E91C: .4byte 0x00000724

Binary file not shown.

View File

@ -657,23 +657,23 @@ extern void PinballGame_State0_49ED4(void);
//extern ? sub_4E468();
extern void sub_4E598(void);
extern void sub_4E814(void);
//extern ? sub_4E920();
extern void sub_4E920(void);
extern void sub_4E9F0(s16);
//extern ? sub_4EA44();
//extern ? sub_4EAB0();
//extern ? sub_4EAF8();
//extern ? sub_4EBD0();
//extern ? sub_4ECDC();
//extern ? sub_4EDC0();
//extern ? sub_4EE74();
//extern ? sub_4EF38();
//extern ? sub_4F028();
extern void sub_4EA44(void);
extern void sub_4EAB0(void);
extern void sub_4EAF8(void);
extern void sub_4EBD0(void);
extern void sub_4ECDC(void);
extern void sub_4EDC0(void);
extern void sub_4EE74(void);
extern void sub_4EF38(void);
extern void sub_4F028(void);
extern void sub_4F0F0(void);
extern void sub_4F258(void);
extern void sub_4F2B8(void);
//extern ? sub_4F30C();
//extern ? sub_4F4B4();
//extern ? sub_4F660();
extern void sub_4F30C(void);
extern void sub_4F4B4(void);
extern void sub_4F660(void);
extern void sub_4F814(void);
extern void sub_4F95C(void);
extern void sub_4F9F0(void);

View File

@ -21,6 +21,54 @@ extern const u8 *gUnknown_086B08D4[][3][5];
extern struct SongHeader gUnknown_0869F664;
void sub_4E814(void)
{
gCurrentPinballGame->unk734 = (gCurrentPinballGame->unk70C % 40) / 20;
gCurrentPinballGame->unk70C = gCurrentPinballGame->unk70C + 1;
sub_4EA44();
if (gCurrentPinballGame->unk6A < 232)
{
sub_4EDC0();
sub_4EE74();
}
if (gCurrentPinballGame->unk6A >= 81 && gCurrentPinballGame->unk6A < 248)
sub_4EF38();
sub_4F0F0();
if (gCurrentPinballGame->unk6A < 112)
sub_4F258();
if (gCurrentPinballGame->unk6A > 112)
sub_4F028();
if (gCurrentPinballGame->unk6A > 104)
{
sub_4F4B4();
sub_4F660();
}
if (gCurrentPinballGame->unk6A < 256)
sub_4F30C();
sub_4F2B8();
if (gCurrentPinballGame->unk6A > 110)
sub_4EAB0();
if (gCurrentPinballGame->unk6A > 178)
{
sub_4EAF8();
sub_4EBD0();
sub_4E920();
}
if (gCurrentPinballGame->unk6A > 202)
sub_4ECDC();
if (gCurrentPinballGame->unk724 && gCurrentPinballGame->unk25 == 0)
gCurrentPinballGame->unk724--;
}
void sub_4E920(void)
{
s16 index;