sub_22FA4 and sub_23070
Some checks failed
CI / build (push) Has been cancelled

This commit is contained in:
Marcus Huderle 2025-08-26 08:48:33 -05:00
parent 05f46cb7a4
commit 0fcffd0a4f
4 changed files with 41 additions and 177 deletions

View File

@ -1200,180 +1200,3 @@ _08022F94: .4byte gOamBuffer
_08022F98: .4byte gUnknown_086B4850
_08022F9C: .4byte 0xFFFFFE00
_08022FA0: .4byte 0x000001FF
thumb_func_start sub_22FA4
sub_22FA4: @ 0x08022FA4
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
ldr r4, _0802301C @ =gCurrentPinballGame
ldr r0, [r4]
ldr r1, _08023020 @ =0x0000020E
adds r0, r0, r1
movs r1, #0
strh r1, [r0]
movs r0, #9
bl sub_1C7F4
ldr r0, [r4]
adds r0, #0xe4
movs r1, #0xe
strb r1, [r0]
ldr r0, _08023024 @ =gMain
ldr r0, [r0, #0x44]
ldr r1, [r0, #0x10]
movs r0, #1
strh r0, [r1]
movs r2, #0
mov r8, r4
ldr r7, _08023028 @ =gSpeciesInfo+7 (PokemonSpecies.name)
mov ip, r7
ldr r4, _0802302C @ =0x040000D4
ldr r0, _08023030 @ =0x06015800
mov sb, r0
ldr r6, _08023034 @ =0x80000020
_08022FE0:
lsls r2, r2, #0x10
asrs r3, r2, #0x10
mov r1, r8
ldr r5, [r1]
movs r7, #0xb3
lsls r7, r7, #3
adds r0, r5, r7
ldrh r1, [r0]
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #3
adds r0, r3, r0
mov r7, ip
adds r1, r0, r7
ldrb r0, [r1]
cmp r0, #0x20
bne _0802303C
ldr r0, _08023038 @ =gUnknown_083FFD4C
str r0, [r4]
lsls r0, r3, #6
add r0, sb
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
ldr r0, _08023020 @ =0x0000020E
adds r1, r5, r0
ldrh r0, [r1]
adds r0, #4
strh r0, [r1]
b _08023052
.align 2, 0
_0802301C: .4byte gCurrentPinballGame
_08023020: .4byte 0x0000020E
_08023024: .4byte gMain
_08023028: .4byte gSpeciesInfo+7
_0802302C: .4byte 0x040000D4
_08023030: .4byte 0x06015800
_08023034: .4byte 0x80000020
_08023038: .4byte gUnknown_083FFD4C
_0802303C:
ldrb r0, [r1]
subs r0, #0x41
lsls r0, r0, #6
ldr r1, _0802306C @ =gUnknown_083FF04C
adds r0, r0, r1
str r0, [r4]
lsls r0, r3, #6
add r0, sb
str r0, [r4, #4]
str r6, [r4, #8]
ldr r0, [r4, #8]
_08023052:
movs r1, #0x80
lsls r1, r1, #9
adds r0, r2, r1
lsrs r2, r0, #0x10
asrs r0, r0, #0x10
cmp r0, #9
ble _08022FE0
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_0802306C: .4byte gUnknown_083FF04C
thumb_func_start sub_23070
sub_23070: @ 0x08023070
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _080230F4 @ =gMain
ldr r0, [r0, #0x44]
ldr r6, [r0, #0x10]
movs r0, #0
ldr r1, _080230F8 @ =gCurrentPinballGame
mov r8, r1
ldr r7, _080230FC @ =gOamBuffer
ldr r2, _08023100 @ =0xFFFFFE00
mov ip, r2
_08023088:
lsls r5, r0, #0x10
asrs r5, r5, #0x10
lsls r4, r5, #3
mov r3, r8
ldr r1, [r3]
ldr r2, _08023104 @ =0x0000020E
adds r0, r1, r2
ldrh r0, [r0]
adds r0, #0x98
movs r3, #0xdb
lsls r3, r3, #1
adds r2, r1, r3
adds r0, r4, r0
ldrh r2, [r2]
adds r0, r0, r2
strh r0, [r6, #2]
movs r0, #0x60
strh r0, [r6, #4]
adds r4, #8
adds r4, r6, r4
ldrh r3, [r4]
lsls r3, r3, #3
adds r3, r3, r7
movs r0, #2
ldrsh r1, [r4, r0]
movs r2, #2
ldrsh r0, [r6, r2]
adds r1, r1, r0
ldr r2, _08023108 @ =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, [r4]
lsls r1, r1, #3
adds r1, r1, r7
ldrb r0, [r6, #4]
ldrb r4, [r4, #4]
adds r0, r0, r4
strb r0, [r1]
adds r5, #1
lsls r5, r5, #0x10
lsrs r0, r5, #0x10
asrs r5, r5, #0x10
cmp r5, #9
ble _08023088
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7}
pop {r0}
bx r0
.align 2, 0
_080230F4: .4byte gMain
_080230F8: .4byte gCurrentPinballGame
_080230FC: .4byte gOamBuffer
_08023100: .4byte 0xFFFFFE00
_08023104: .4byte 0x0000020E
_08023108: .4byte 0x000001FF

Binary file not shown.

Binary file not shown.

View File

@ -64,6 +64,47 @@ extern struct SongHeader gUnknown_0869F5C8;
extern struct SongHeader gUnknown_0869F618;
void sub_22FA4(void)
{
s16 i;
int index;
gCurrentPinballGame->unk20E = 0;
sub_1C7F4(9, 0);
gCurrentPinballGame->unkE4 = 14;
gMain.unk44[4]->available = 1;
for (i = 0; i < 10; i++)
{
if (gSpeciesInfo[gCurrentPinballGame->currentSpecies].name[i] == 0x20)
{
DmaCopy16(3, gUnknown_083FFD4C[0], (void *)0x06015800 + i * 0x40, 0x40);
gCurrentPinballGame->unk20E += 4;
}
else
{
index = gSpeciesInfo[gCurrentPinballGame->currentSpecies].name[i] - 0x41;
DmaCopy16(3, gUnknown_083FF04C[index], (void *)0x06015800 + i * 0x40, 0x40);
}
}
}
void sub_23070(void)
{
s16 i;
struct SpriteGroup *group;
struct OamDataSimple *oamSimple;
group = gMain.unk44[4];
for (i = 0; i < 10; i++)
{
group->baseX = i * 8 + (gCurrentPinballGame->unk20E + 152) + gCurrentPinballGame->unk1B6;
group->baseY = 96;
oamSimple = &group->oam[i];
gOamBuffer[oamSimple->oamId].x = oamSimple->xOffset + group->baseX;
gOamBuffer[oamSimple->oamId].y = oamSimple->yOffset + group->baseY;
}
}
void sub_2310C(void)
{
gMain.unk44[4]->available = 0;