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

This commit is contained in:
Nate Bouchat 2025-02-23 17:41:12 -05:00 committed by Marcus Huderle
parent f666685aca
commit 16b857a46a
5 changed files with 30 additions and 68 deletions

View File

@ -15335,69 +15335,7 @@ _08019A10:
.align 2, 0
_08019A1C: .4byte 0x00001364
.section .text19B10
thumb_func_start sub_19B90
sub_19B90: @ 0x08019B90
push {r4, lr}
ldr r4, _08019BA8 @ =gCurrentPinballGame
ldr r2, [r4]
movs r0, #0x16
ldrsb r0, [r2, r0]
cmp r0, #1
beq _08019BD0
cmp r0, #1
bgt _08019BAC
cmp r0, #0
beq _08019BB2
b _08019BFE
.align 2, 0
_08019BA8: .4byte gCurrentPinballGame
_08019BAC:
cmp r0, #2
beq _08019BE8
b _08019BFE
_08019BB2:
ldr r1, _08019BCC @ =gUnknown_086AD4C4
movs r0, #0x13
ldrsb r0, [r2, r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl _call_via_r0
ldr r1, [r4]
ldrb r0, [r1, #0x16]
adds r0, #1
strb r0, [r1, #0x16]
b _08019BFE
.align 2, 0
_08019BCC: .4byte gUnknown_086AD4C4
_08019BD0:
ldr r0, _08019BE4 @ =gUnknown_086AD4E8
movs r1, #0x13
ldrsb r1, [r2, r1]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
bl _call_via_r0
b _08019BFE
.align 2, 0
_08019BE4: .4byte gUnknown_086AD4E8
_08019BE8:
bl sub_19D04
ldr r0, [r4]
ldrb r1, [r0, #0x13]
movs r2, #0
strb r1, [r0, #0x15]
ldr r1, [r4]
ldrb r0, [r1, #0x14]
strb r0, [r1, #0x13]
ldr r0, [r4]
strb r2, [r0, #0x16]
_08019BFE:
pop {r4}
pop {r0}
bx r0
.section .text19C04
thumb_func_start sub_19C04
sub_19C04: @ 0x08019C04

Binary file not shown.

View File

@ -111,7 +111,7 @@ struct PinballGame
/*0x013*/ s8 unk13; // Current number of Pokéballs filled by catch mode and evo mode (?)
/*0x014*/ s8 unk14;
/*0x015*/ u8 unk15;
/*0x016*/ u8 unk16;
/*0x016*/ s8 unk16;
/*0x017*/ u8 unk17;
/*0x018*/ u16 unk18;
/*0x01A*/ u8 unk1A;

View File

@ -48,7 +48,7 @@ SECTIONS
src/rom_11B9C.o(.text);
asm/rom_11B9C.o(.text11C14);
src/rom_19B64.o(.text);
asm/rom_11B9C.o(.text19B10);
asm/rom_11B9C.o(.text19C04);
src/rom_19D04.o(.text);
asm/rom_11B9C.o(.text19E10);
src/rom_1A98C.o(.text);

View File

@ -2,14 +2,18 @@
#include "main.h"
#include "m4a.h"
extern const void (*gUnknown_086AD4C4[])(void);
extern const void (*gUnknown_086AD4E8[])(void);
void sub_19D04(void);
void sub_19E10(void);
void sub_19F70(void);
void sub_19FA0(void);
void sub_1D5D8(void);
void sub_1DAD8(void);
void sub_1DDDC(void);
void sub_1EC48(void);
void sub_1F158(void);
void sub_19E10(void);
void sub_19F70(void);
void sub_19FA0(void);
void sub_23954(void);
void sub_239A4(void);
void sub_23E18(void);
@ -85,3 +89,23 @@ void sub_19B64(u8 a)
gMain.unk44->unk34->unk0 = 0;
}
}
void sub_19B90(void)
{
switch (gCurrentPinballGame->unk16)
{
case 0:
gUnknown_086AD4C4[gCurrentPinballGame->unk13]();
gCurrentPinballGame->unk16 += 1;
break;
case 1:
gUnknown_086AD4E8[gCurrentPinballGame->unk13]();
break;
case 2:
sub_19D04();
gCurrentPinballGame->unk15 = gCurrentPinballGame->unk13;
gCurrentPinballGame->unk13 = gCurrentPinballGame->unk14;
gCurrentPinballGame->unk16 = 0;
break;
}
}