sub_1DAD8

This commit is contained in:
Marcus Huderle 2025-08-30 14:34:49 -05:00
parent 29d8e96498
commit e55b8ac87a
4 changed files with 64 additions and 207 deletions

View File

@ -608,209 +608,4 @@ _0801DAD2:
strb r0, [r1]
_0801DAD4:
bx lr
thumb_func_start sub_1DAD8
sub_1DAD8: @ 0x0801DAD8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
ldr r0, _0801DB64 @ =gMain+0x31B0 @gMain.spriteGroups[65]
mov r8, r0
ldr r0, _0801DB68 @ =gCurrentPinballGame
ldr r4, [r0]
movs r2, #0xbc
lsls r2, r2, #2
adds r1, r4, r2
ldrb r1, [r1]
movs r5, #0xf
ldr r7, _0801DB6C @ =0x000002F1
adds r3, r4, r7
ldrb r2, [r3]
ands r5, r1
adds r1, r2, #0
adds r7, r0, #0
cmp r5, r1
beq _0801DBAC
ldr r6, _0801DB70 @ =0x000002F2
adds r0, r4, r6
ldrh r0, [r0]
cmp r0, #0
beq _0801DB78
cmp r0, #5
bne _0801DB58
ldr r3, _0801DB74 @ =0xFFFFCE50
add r3, r8
ldrb r1, [r3, #0xf]
movs r0, #1
movs r2, #0
orrs r0, r1
strb r0, [r3, #0xf]
adds r0, r4, #0
adds r0, #0xea
movs r3, #0
strh r2, [r0]
adds r1, r4, #0
adds r1, #0xec
movs r0, #3
strh r0, [r1]
adds r0, r4, #0
adds r0, #0xe8
strh r2, [r0]
subs r0, #2
strh r2, [r0]
adds r0, #8
strh r2, [r0]
adds r0, #4
strb r3, [r0]
ldr r0, [r7]
adds r0, #0xfa
movs r1, #1
strb r1, [r0]
ldr r0, [r7]
adds r0, #0xfb
strb r3, [r0]
movs r0, 0xBD @=SE_UNKNOWN_0xBD
bl m4aSongNumStart
_0801DB58:
ldr r1, [r7]
adds r1, r1, r6
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
b _0801DBAC
.align 2, 0
_0801DB64: .4byte gMain+0x31B0 @gMain.spriteGroups[65]
_0801DB68: .4byte gCurrentPinballGame
_0801DB6C: .4byte 0x000002F1
_0801DB70: .4byte 0x000002F2
_0801DB74: .4byte 0xFFFFCE50
_0801DB78:
cmp r1, r5
bls _0801DB80
subs r0, r2, #1
b _0801DB82
_0801DB80:
adds r0, r2, #1
_0801DB82:
strb r0, [r3]
ldr r0, [r7]
adds r0, r0, r6
movs r1, #4
strh r1, [r0]
ldr r2, _0801DC58 @ =0x040000D4
ldr r0, [r7]
ldr r1, _0801DC5C @ =0x000002F1
adds r0, r0, r1
ldrb r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #7
ldr r1, _0801DC60 @ =gUnknown_084ED0CC
adds r0, r0, r1
str r0, [r2]
ldr r0, _0801DC64 @ =0x06013180
str r0, [r2, #4]
ldr r0, _0801DC68 @ =0x800000C0
str r0, [r2, #8]
ldr r0, [r2, #8]
_0801DBAC:
ldr r2, [r7]
ldr r7, _0801DC5C @ =0x000002F1
adds r0, r2, r7
ldrb r0, [r0]
movs r3, #2
cmp r0, #2
bhi _0801DBBC
movs r3, #3
_0801DBBC:
adds r0, r2, #0
adds r0, #0x58
ldrh r1, [r0]
movs r0, #0xd0
subs r0, r0, r1
mov r1, r8
strh r0, [r1, #2]
adds r0, r2, #0
adds r0, #0x5a
ldrh r1, [r0]
movs r0, #0x50
subs r0, r0, r1
mov r2, r8
strh r0, [r2, #4]
movs r0, #0
ldr r7, _0801DC6C @ =gMain+0x31B8 @gMain.spriteGroups[65].oam
mov sl, r7
ldr r6, _0801DC70 @ =gOamBuffer
lsls r3, r3, #2
str r3, [sp]
movs r1, #0xd
rsbs r1, r1, #0
mov sb, r1
ldr r2, _0801DC74 @ =0xFFFFFE00
mov ip, r2
_0801DBEE:
lsls r4, r0, #0x10
asrs r4, r4, #0x10
lsls r5, r4, #3
add r5, sl
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
ldrb r2, [r1, #5]
mov r0, sb
ands r0, r2
ldr r7, [sp]
orrs r0, r7
strb r0, [r1, #5]
ldrh r3, [r5]
lsls r3, r3, #3
adds r3, r3, r6
movs r0, #2
ldrsh r1, [r5, r0]
mov r2, r8
movs r7, #2
ldrsh r0, [r2, r7]
adds r1, r1, r0
ldr r2, _0801DC78 @ =0x000001FF
adds r0, r2, #0
ands r1, r0
ldrh r2, [r3, #2]
mov r0, ip
ands r0, r2
orrs r0, r1
strh r0, [r3, #2]
ldrh r1, [r5]
lsls r1, r1, #3
adds r1, r1, r6
mov r7, r8
ldrb r0, [r7, #4]
ldrb r5, [r5, #4]
adds r0, r0, r5
strb r0, [r1]
adds r4, #1
lsls r4, r4, #0x10
lsrs r0, r4, #0x10
asrs r4, r4, #0x10
cmp r4, #1
ble _0801DBEE
add sp, #4
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
_0801DC58: .4byte 0x040000D4
_0801DC5C: .4byte 0x000002F1
_0801DC60: .4byte gUnknown_084ED0CC
_0801DC64: .4byte 0x06013180
_0801DC68: .4byte 0x800000C0
_0801DC6C: .4byte gMain+0x31B8 @gMain.spriteGroups[65].oam
_0801DC70: .4byte gOamBuffer
_0801DC74: .4byte 0xFFFFFE00
_0801DC78: .4byte 0x000001FF
.align 2, 0

Binary file not shown.

View File

@ -407,7 +407,7 @@ struct PinballGame
/*0x2EC*/ s16 unk2EC[2];
/*0x2F0*/ u8 unk2F0;
/*0x2F1*/ u8 unk2F1;
/*0x2F2*/ u8 filler2F2[0x2];
/*0x2F2*/ u16 unk2F2;
/*0x2F4*/ s8 unk2F4;
/*0x2F5*/ s8 unk2F5;
/*0x2F6*/ u16 unk2F6;

View File

@ -28,12 +28,74 @@ extern const s16 gUnknown_086AD9EC[];
extern const s16 gUnknown_0813798C[];
extern const u8 gUnknown_081379D8[];
extern const u8 gUnknown_084B7FEC[][0x480];
extern const u8 gUnknown_084ED0CC[][0x180];
extern struct SongHeader gUnknown_0869F2A0;
extern struct SongHeader gUnknown_0869F240;
extern struct SongHeader gUnknown_086A0F30;
void sub_1DAD8(void)
{
s16 i;
struct SpriteGroup *group;
struct OamDataSimple *oamSimple;
s16 priority;
group = &gMain.spriteGroups[65];
if ((gCurrentPinballGame->unk2F0 & 0xF) != gCurrentPinballGame->unk2F1)
{
if (gCurrentPinballGame->unk2F2)
{
if (gCurrentPinballGame->unk2F2 == 5)
{
gMain.unkF |= 0x1;
gCurrentPinballGame->unkEA = 0;
gCurrentPinballGame->unkEC = 3;
gCurrentPinballGame->unkE8 = 0;
gCurrentPinballGame->unkE6 = 0;
gCurrentPinballGame->unkEE = 0;
gCurrentPinballGame->unkF2 = 0;
gCurrentPinballGame->unkFA = 1;
gCurrentPinballGame->unkFB = 0;
m4aSongNumStart(SE_UNKNOWN_0xBD);
}
gCurrentPinballGame->unk2F2--;
}
else
{
if (gCurrentPinballGame->unk2F1 > (gCurrentPinballGame->unk2F0 & 0xF))
{
gCurrentPinballGame->unk2F1--;
gCurrentPinballGame->unk2F2 = 4;
}
else
{
gCurrentPinballGame->unk2F1++;
gCurrentPinballGame->unk2F2 = 4;
}
DmaCopy16(3, gUnknown_084ED0CC[gCurrentPinballGame->unk2F1], (void *)0x06013180, 0x180);
}
}
if (gCurrentPinballGame->unk2F1 < 3)
priority = 3;
else
priority = 2;
group->baseX = 208 - gCurrentPinballGame->unk58;
group->baseY = 80 - gCurrentPinballGame->unk5A;
for (i = 0; i < 2; i++)
{
oamSimple = &gMain.spriteGroups[65].oam[i];
gOamBuffer[oamSimple->oamId].priority = priority;
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + group->baseX;
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
}
}
void sub_1DC7C(void)
{
s16 i;