sub_50710
Some checks are pending
CI / build (push) Waiting to run

This commit is contained in:
Marcus Huderle 2025-08-12 08:37:14 -05:00
parent f8687bea7e
commit 1c7644d737
4 changed files with 42 additions and 109 deletions

View File

@ -6743,102 +6743,3 @@ _08050700: .4byte gCurrentPinballGame
_08050704: .4byte gUnknown_086B12AC
_08050708: .4byte 0x040000D4
_0805070C: .4byte 0x80000020
thumb_func_start sub_50710
sub_50710: @ 0x08050710
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
ldr r2, _08050770 @ =gCurrentPinballGame
ldr r0, [r2]
ldr r1, _08050774 @ =0x00000346
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #3
beq _080507C0
movs r1, #0
mov sb, r2
ldr r2, _08050778 @ =0x0000034B
mov r8, r2
ldr r5, _0805077C @ =0x040000D4
ldr r0, _08050780 @ =gUnknown_086B0F9C
mov sl, r0
ldr r7, _08050784 @ =0x80000020
_0805073C:
mov r2, sb
ldr r0, [r2]
lsls r1, r1, #0x10
asrs r4, r1, #0x10
add r0, r8
adds r0, r0, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r6, r1, #0
cmp r0, #0
ble _08050788
cmp r0, #0xa
bne _0805075E
movs r0, SE_UNKNOWN_0xDC
bl m4aSongNumStart
_0805075E:
mov r0, sb
ldr r1, [r0]
add r1, r8
adds r1, r1, r4
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
movs r2, #1
b _0805078A
.align 2, 0
_08050770: .4byte gCurrentPinballGame
_08050774: .4byte 0x00000346
_08050778: .4byte 0x0000034B
_0805077C: .4byte 0x040000D4
_08050780: .4byte gUnknown_086B0F9C
_08050784: .4byte 0x80000020
_08050788:
movs r2, #0
_0805078A:
asrs r3, r6, #0x10
lsls r1, r3, #1
adds r1, r1, r3
lsls r1, r1, #3
lsls r2, r2, #3
add r2, sl
adds r2, r1, r2
ldr r0, _080507D0 @ =gUnknown_086B0FAC
adds r1, r1, r0
ldr r0, [r2]
str r0, [r5]
ldr r0, [r1]
str r0, [r5, #4]
str r7, [r5, #8]
ldr r0, [r5, #8]
ldr r0, [r2, #4]
str r0, [r5]
ldr r0, [r1, #4]
str r0, [r5, #4]
str r7, [r5, #8]
ldr r0, [r5, #8]
adds r3, #1
lsls r3, r3, #0x10
lsrs r1, r3, #0x10
asrs r3, r3, #0x10
cmp r3, #9
ble _0805073C
_080507C0:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080507D0: .4byte gUnknown_086B0FAC

Binary file not shown.

View File

@ -350,7 +350,8 @@ struct PinballGame
/*0x346*/ s8 unk346;
/*0x347*/ u8 filler347[0x1];
/*0x348*/ u16 unk348;
/*0x34A*/ u8 filler34A[0xB];
/*0x34A*/ u8 filler34A[0x1];
/*0x34B*/ s8 unk34B[10];
/*0x355*/ s8 unk355[4];
/*0x359*/ s8 unk359[4];
/*0x35D*/ u8 filler35D[0x1];

View File

@ -1,25 +1,56 @@
#include "global.h"
#include "m4a.h"
#include "main.h"
#include "constants/bg_music.h"
struct Unk_086B0E6C
extern const u8 *gUnknown_086B0E6C[][2];
extern const u8 *gUnknown_086B0F9C[][3][2];
void sub_50710(void)
{
const u8 *unk0[5][2];
u8 *unk28[2];
};
extern const struct Unk_086B0E6C gUnknown_086B0E6C;
s16 i;
s16 srcIndex;
const u8 **src;
const u8 **dest;
if (gCurrentPinballGame->unk346 != 3)
{
for (i = 0; i < 10; i++)
{
if (gCurrentPinballGame->unk34B[i] > 0)
{
if (gCurrentPinballGame->unk34B[i] == 10)
m4aSongNumStart(SE_UNKNOWN_0xDC);
gCurrentPinballGame->unk34B[i]--;
srcIndex = 1;
}
else
{
srcIndex = 0;
}
src = gUnknown_086B0F9C[i][srcIndex];
dest = gUnknown_086B0F9C[i][2];
DmaCopy16(3, src[0], dest[0], 0x40);
DmaCopy16(3, src[1], dest[1], 0x40);
}
}
}
void sub_507D4(void)
{
s16 index;
const u8 *const *src;
u8 *const *dest;
const u8 **src;
const u8 **dest;
index = 0;
if (gCurrentPinballGame->unk308 >= 100)
index = (gCurrentPinballGame->unk70C % 20) / 4;
src = gUnknown_086B0E6C.unk0[index];
dest = gUnknown_086B0E6C.unk28;
src = gUnknown_086B0E6C[index];
dest = gUnknown_086B0E6C[5];
if (gCurrentPinballGame->unk6A < 176)
{
DmaCopy16(3, src[0], dest[0], 0x40);