Merge pull request #91 from Hyenate/master
Some checks failed
CI / build (push) Has been cancelled

Decompile sub_19E10 and sub_19F70
This commit is contained in:
WhenGryphonsFly 2025-03-10 22:44:35 -05:00 committed by GitHub
commit ad9581c882
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 120 additions and 183 deletions

View File

@ -13814,186 +13814,6 @@ _08019A1C: .4byte 0x00001364
.section .text19E10
thumb_func_start sub_19E10
sub_19E10: @ 0x08019E10
push {r4, lr}
bl sub_1A0F4
bl sub_1DA74
ldr r4, _08019EA4 @ =gCurrentPinballGame
ldr r0, [r4]
movs r2, #0xa8
lsls r2, r2, #2
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _08019E4E
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08019E4E
bl Random
ldr r4, [r4]
ldr r1, _08019EA8 @ =gMain
ldr r1, [r1, #0x4c]
adds r0, r0, r1
movs r1, #0x64
bl __umodsi3
adds r0, #1
ldr r3, _08019EAC @ =0x0000029F
adds r4, r4, r3
strb r0, [r4]
_08019E4E:
ldr r4, _08019EA4 @ =gCurrentPinballGame
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x6d
bgt _08019E68
bl sub_1D5D8
bl sub_1DAD8
bl sub_2C9A4
_08019E68:
bl sub_2CA9C
ldr r0, [r4]
adds r0, #0x68
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xa7
bgt _08019E7C
bl sub_239A4
_08019E7C:
ldr r0, [r4]
adds r0, #0x68
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0xdb
bgt _08019EBC
bl sub_23E18
ldr r0, [r4]
movs r1, #0xa9
lsls r1, r1, #2
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08019EB0
bl sub_1DC7C
b _08019EB4
.align 2, 0
_08019EA4: .4byte gCurrentPinballGame
_08019EA8: .4byte gMain
_08019EAC: .4byte 0x0000029F
_08019EB0:
bl sub_1EC48
_08019EB4:
bl sub_1F158
bl sub_1F59C
_08019EBC:
bl sub_1F698
ldr r4, _08019F64 @ =gCurrentPinballGame
ldr r0, [r4]
adds r0, #0x68
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0x3f
ble _08019ED6
bl sub_1FA48
bl sub_1FBC4
_08019ED6:
ldr r0, [r4]
adds r0, #0x68
movs r3, #0
ldrsh r0, [r0, r3]
cmp r0, #0x73
ble _08019EE6
bl sub_2C538
_08019EE6:
ldr r0, [r4]
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0x82
ble _08019EF6
bl sub_201B8
_08019EF6:
bl sub_2CE80
ldr r0, [r4]
adds r0, #0x68
movs r2, #0
ldrsh r0, [r0, r2]
cmp r0, #0xa8
ble _08019F0A
bl sub_2D104
_08019F0A:
bl sub_203CC
bl sub_21B0C
bl sub_4E814
bl sub_1D128
bl sub_21D78
bl sub_31B30
ldr r0, [r4]
movs r3, #0xca
lsls r3, r3, #1
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08019F38
bl sub_225F0
_08019F38:
bl sub_472E4
ldr r2, [r4]
ldr r0, _08019F68 @ =0x00001328
adds r1, r2, r0
ldrh r0, [r1]
cmp r0, #0
beq _08019F5C
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08019F5C
ldr r3, _08019F6C @ =0x00001330
adds r1, r2, r3
adds r3, #4
adds r0, r2, r3
str r0, [r1]
_08019F5C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08019F64: .4byte gCurrentPinballGame
_08019F68: .4byte 0x00001328
_08019F6C: .4byte 0x00001330
thumb_func_start sub_19F70
sub_19F70: @ 0x08019F70
push {lr}
bl sub_1DDDC
bl sub_1A9E8
bl sub_1F2A4
bl sub_1FF0C
ldr r0, _08019F9C @ =gCurrentPinballGame
ldr r0, [r0]
movs r2, #0xc0
lsls r2, r2, #3
adds r1, r0, r2
ldrh r0, [r1]
cmp r0, #0
beq _08019F96
subs r0, #1
strh r0, [r1]
_08019F96:
pop {r0}
bx r0
.align 2, 0
_08019F9C: .4byte gCurrentPinballGame
thumb_func_start sub_19FA0
sub_19FA0: @ 0x08019FA0
push {r4, r5, lr}

Binary file not shown.

Binary file not shown.

View File

@ -233,9 +233,11 @@ struct PinballGame
/*0x29C*/ u16 unk29C;
/*0x29E*/ u8 unk29E;
/*0x29F*/ u8 unk29F;
/*0x2A0*/ u8 filler2A0[0x2];
/*0x2A0*/ u16 unk2A0;
/*0x2A2*/ u8 unk2A2;
/*0x2A3*/ u8 filler2A3[0x7];
/*0x2A3*/ u8 filler2A3[0x1];
/*0x2A4*/ s8 unk2A4;
/*0x2A5*/ u8 filler2A5[0x5];
/*0x2AA*/ u16 unk2AA;
/*0x2AC*/ u8 filler2AC[0x28];
/*0x2D4*/ u16 unk2D4;
@ -406,7 +408,8 @@ struct PinballGame
/*0x1322*/s16 unk1322;
/*0x1324*/s16 unk1324;
/*0x1326*/s16 unk1326;
/*0x1328*/u8 filler1328[0x4];
/*0x1328*/u16 unk1328;
/*0x132A*/u8 filler132A[0x2];
/*0x132C*/struct UnkPinballGame1334 *unk132c;
/*0x1330*/struct UnkPinballGame1334 *unk1330;
/*0x1334*/struct UnkPinballGame1334 unk1334[2];

View File

@ -1,6 +1,26 @@
#include "global.h"
#include "main.h"
extern void sub_1D5D8(void);
extern void sub_1DA74(void);
extern void sub_1DAD8(void);
extern void sub_1DC7C(void);
extern void sub_1DDDC(void);
extern void sub_1EC48(void);
extern void sub_1F158(void);
extern void sub_1F59C(void);
extern void sub_1F698(void);
extern void sub_1FA48(void);
extern void sub_1FBC4(void);
extern void sub_1FF0C(void);
extern void sub_201B8(void);
extern void sub_21238(s32);
extern void sub_21D78(void);
extern void sub_239A4(void);
extern void sub_23E18(void);
extern void sub_2C538(void);
extern void sub_2C9A4(void);
extern void sub_4E814(void);
void sub_19D04(void)
{
@ -40,3 +60,97 @@ void sub_19D04(void)
gCurrentPinballGame->unk72F = 0;
}
}
void sub_19E10(void) {
int randNum;
sub_1A0F4();
sub_1DA74();
if (gCurrentPinballGame->unk2A0 != 0)
{
gCurrentPinballGame->unk2A0 -= 1;
if (gCurrentPinballGame->unk2A0 == 0)
{
randNum = Random();
gCurrentPinballGame->unk29F = ((randNum + gMain.systemFrameCount) % 100) + 1;
}
}
if (gCurrentPinballGame->unk68 < 110)
{
sub_1D5D8();
sub_1DAD8();
sub_2C9A4();
}
sub_2CA9C();
if (gCurrentPinballGame->unk68 < 168)
{
sub_239A4();
}
if (gCurrentPinballGame->unk68 < 220)
{
sub_23E18();
if (gCurrentPinballGame->unk2A4 != 0)
{
sub_1DC7C();
}
else
{
sub_1EC48();
}
sub_1F158();
sub_1F59C();
}
sub_1F698();
if (gCurrentPinballGame->unk68 > 63)
{
sub_1FA48();
sub_1FBC4();
}
if (gCurrentPinballGame->unk68 > 115)
{
sub_2C538();
}
if (gCurrentPinballGame->unk68 > 130)
{
sub_201B8();
}
sub_2CE80();
if (gCurrentPinballGame->unk68 > 168)
{
sub_2D104();
}
sub_203CC();
sub_21B0C();
sub_4E814();
sub_1D128();
sub_21D78();
sub_31B30();
if (gCurrentPinballGame->unk194 != 0)
{
sub_225F0();
}
sub_472E4();
if (gCurrentPinballGame->unk1328 != 0)
{
gCurrentPinballGame->unk1328 -= 1;
if (gCurrentPinballGame->unk1328 == 0)
{
gCurrentPinballGame->unk1330 = gCurrentPinballGame->unk1334;
}
}
}
void sub_19F70(void)
{
sub_1DDDC();
sub_1A9E8();
sub_1F2A4();
sub_1FF0C();
if (gCurrentPinballGame->unk600 != 0)
{
gCurrentPinballGame->unk600 -= 1;
}
}