mirror of
https://github.com/pret/pokepinballrs.git
synced 2026-03-21 17:24:13 -05:00
sub_3B120
This commit is contained in:
parent
f188aec753
commit
98bbccde6c
419
asm/rom_3219C.s
419
asm/rom_3219C.s
|
|
@ -8292,422 +8292,3 @@ _0803B110: .4byte gMain+0xAE0 @gMain.spriteGroups[11]
|
|||
_0803B114: .4byte 0x000001FF
|
||||
_0803B118: .4byte 0xFFFFFE00
|
||||
_0803B11C: .4byte gMain+0xDC0 @gMain.spriteGroups[15]
|
||||
|
||||
thumb_func_start sub_3B120
|
||||
sub_3B120: @ 0x0803B120
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r4, _0803B158 @ =gCurrentPinballGame
|
||||
ldr r1, [r4]
|
||||
movs r2, #0
|
||||
movs r0, #0
|
||||
strh r0, [r1, #0x18]
|
||||
strb r2, [r1, #0x17]
|
||||
ldr r0, [r4]
|
||||
strb r2, [r0, #0x13]
|
||||
ldr r5, [r4]
|
||||
ldr r1, _0803B15C @ =0x00000283
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
movs r1, #5
|
||||
bl __umodsi3
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
mov ip, r4
|
||||
cmp r0, #3
|
||||
bne _0803B160
|
||||
movs r2, #0xe1
|
||||
lsls r2, r2, #2
|
||||
adds r1, r5, r2
|
||||
movs r0, #0x12
|
||||
b _0803B168
|
||||
.align 2, 0
|
||||
_0803B158: .4byte gCurrentPinballGame
|
||||
_0803B15C: .4byte 0x00000283
|
||||
_0803B160:
|
||||
movs r3, #0xe1
|
||||
lsls r3, r3, #2
|
||||
adds r1, r5, r3
|
||||
movs r0, #0xf
|
||||
_0803B168:
|
||||
strb r0, [r1]
|
||||
mov r4, ip
|
||||
ldr r0, [r4]
|
||||
movs r5, #0xa5
|
||||
lsls r5, r5, #2
|
||||
adds r0, r0, r5
|
||||
movs r3, #0
|
||||
strb r3, [r0]
|
||||
ldr r1, [r4]
|
||||
adds r5, r1, #0
|
||||
adds r5, #0x6c
|
||||
ldr r6, _0803B42C @ =0x00002A30
|
||||
adds r0, r6, #0
|
||||
ldrh r2, [r5]
|
||||
adds r0, r0, r2
|
||||
ldr r4, _0803B430 @ =0x00000296
|
||||
adds r2, r1, r4
|
||||
movs r4, #0
|
||||
strh r0, [r2]
|
||||
strh r3, [r5]
|
||||
movs r5, #0xe2
|
||||
lsls r5, r5, #2
|
||||
adds r1, r1, r5
|
||||
movs r2, #3
|
||||
strb r2, [r1]
|
||||
mov r6, ip
|
||||
ldr r0, [r6]
|
||||
adds r5, #0xa
|
||||
adds r1, r0, r5
|
||||
strh r3, [r1]
|
||||
ldr r6, _0803B434 @ =0x0000132C
|
||||
adds r0, r0, r6
|
||||
ldr r0, [r0]
|
||||
movs r1, #1
|
||||
strb r1, [r0]
|
||||
mov r5, ip
|
||||
ldr r0, [r5]
|
||||
ldr r6, _0803B438 @ =0x00000386
|
||||
adds r0, r0, r6
|
||||
strb r4, [r0]
|
||||
ldr r0, [r5]
|
||||
ldr r5, _0803B43C @ =0x00000387
|
||||
adds r0, r0, r5
|
||||
strb r1, [r0]
|
||||
mov r6, ip
|
||||
ldr r0, [r6]
|
||||
ldr r1, _0803B440 @ =0x000006C4
|
||||
adds r0, r0, r1
|
||||
strb r2, [r0]
|
||||
ldr r0, [r6]
|
||||
ldr r2, _0803B444 @ =0x00000382
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
subs r5, #4
|
||||
adds r0, r0, r5
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
ldr r6, _0803B448 @ =0x00000385
|
||||
adds r0, r0, r6
|
||||
strb r4, [r0]
|
||||
mov r1, ip
|
||||
ldr r0, [r1]
|
||||
adds r2, #7
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r1, [r1]
|
||||
adds r5, #0xb
|
||||
adds r0, r1, r5
|
||||
strh r3, [r0]
|
||||
adds r6, #0xb
|
||||
adds r0, r1, r6
|
||||
strh r3, [r0]
|
||||
adds r2, #0xb
|
||||
adds r0, r1, r2
|
||||
strh r3, [r0]
|
||||
adds r5, #0x4e
|
||||
adds r0, r1, r5
|
||||
strb r4, [r0]
|
||||
mov r6, ip
|
||||
ldr r0, [r6]
|
||||
ldr r1, _0803B44C @ =0x000003DD
|
||||
adds r0, r0, r1
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
adds r2, #0x4a
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
adds r5, #3
|
||||
adds r0, r0, r5
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
movs r6, #0xf8
|
||||
lsls r6, r6, #2
|
||||
adds r0, r0, r6
|
||||
strb r4, [r0]
|
||||
mov r1, ip
|
||||
ldr r0, [r1]
|
||||
adds r2, #4
|
||||
adds r1, r0, r2
|
||||
strh r3, [r1]
|
||||
adds r5, #2
|
||||
adds r0, r0, r5
|
||||
strb r4, [r0]
|
||||
mov r6, ip
|
||||
ldr r1, [r6]
|
||||
adds r2, #2
|
||||
adds r0, r1, r2
|
||||
strh r3, [r0]
|
||||
adds r5, #5
|
||||
adds r0, r1, r5
|
||||
strh r3, [r0]
|
||||
movs r6, #0xfa
|
||||
lsls r6, r6, #2
|
||||
adds r0, r1, r6
|
||||
strh r3, [r0]
|
||||
adds r2, #6
|
||||
adds r0, r1, r2
|
||||
strh r3, [r0]
|
||||
adds r5, #6
|
||||
adds r0, r1, r5
|
||||
strh r3, [r0]
|
||||
adds r6, #6
|
||||
adds r0, r1, r6
|
||||
strh r3, [r0]
|
||||
adds r2, #6
|
||||
adds r0, r1, r2
|
||||
strh r3, [r0]
|
||||
adds r5, #6
|
||||
adds r0, r1, r5
|
||||
strh r3, [r0]
|
||||
adds r6, #0x64
|
||||
adds r0, r1, r6
|
||||
strh r3, [r0]
|
||||
adds r2, #0x66
|
||||
adds r0, r1, r2
|
||||
strh r3, [r0]
|
||||
adds r5, #0x8a
|
||||
adds r1, r1, r5
|
||||
strb r4, [r1]
|
||||
mov r6, ip
|
||||
ldr r0, [r6]
|
||||
ldr r1, _0803B450 @ =0x0000047D
|
||||
adds r0, r0, r1
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
adds r2, #0x28
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
adds r5, #3
|
||||
adds r0, r0, r5
|
||||
strb r4, [r0]
|
||||
ldr r0, [r6]
|
||||
movs r6, #0x90
|
||||
lsls r6, r6, #3
|
||||
adds r1, r0, r6
|
||||
strh r3, [r1]
|
||||
adds r2, #4
|
||||
adds r1, r0, r2
|
||||
strh r3, [r1]
|
||||
adds r5, #5
|
||||
adds r1, r0, r5
|
||||
strh r3, [r1]
|
||||
adds r6, #6
|
||||
adds r1, r0, r6
|
||||
strh r3, [r1]
|
||||
adds r2, #6
|
||||
adds r1, r0, r2
|
||||
strh r3, [r1]
|
||||
adds r5, #6
|
||||
adds r1, r0, r5
|
||||
strh r3, [r1]
|
||||
adds r6, #0x3e
|
||||
adds r1, r0, r6
|
||||
strh r3, [r1]
|
||||
adds r2, #0x3e
|
||||
adds r1, r0, r2
|
||||
strh r3, [r1]
|
||||
adds r5, #0x3e
|
||||
adds r0, r0, r5
|
||||
strb r4, [r0]
|
||||
mov r6, ip
|
||||
ldr r0, [r6]
|
||||
adds r2, #4
|
||||
adds r1, r0, r2
|
||||
strh r3, [r1]
|
||||
ldr r3, _0803B454 @ =0x000004C9
|
||||
adds r0, r0, r3
|
||||
strb r4, [r0]
|
||||
movs r1, #0
|
||||
mov r5, ip
|
||||
movs r6, #0
|
||||
movs r7, #0
|
||||
_0803B2EE:
|
||||
ldr r3, [r5]
|
||||
lsls r2, r1, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
lsls r4, r2, #2
|
||||
adds r1, r3, r4
|
||||
ldr r0, _0803B458 @ =0x0000046C
|
||||
strh r7, [r0, r1]
|
||||
adds r0, #2
|
||||
adds r1, r1, r0
|
||||
strh r7, [r1]
|
||||
ldr r1, _0803B45C @ =0x0000048C
|
||||
adds r3, r3, r1
|
||||
adds r3, r3, r2
|
||||
strb r6, [r3]
|
||||
ldr r0, [r5]
|
||||
movs r3, #0x92
|
||||
lsls r3, r3, #3
|
||||
adds r0, r0, r3
|
||||
adds r0, r0, r2
|
||||
strb r6, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r1, #8
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r2
|
||||
strb r6, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r3, #8
|
||||
adds r0, r0, r3
|
||||
adds r0, r0, r2
|
||||
strb r6, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r1, #8
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r2
|
||||
strb r6, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r3, #8
|
||||
adds r0, r0, r3
|
||||
adds r0, r0, r2
|
||||
strb r6, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r1, #8
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r2
|
||||
strb r6, [r0]
|
||||
ldr r1, [r5]
|
||||
lsls r3, r2, #1
|
||||
mov r8, r3
|
||||
ldr r3, _0803B460 @ =0x000004AC
|
||||
adds r0, r1, r3
|
||||
add r0, r8
|
||||
strh r7, [r0]
|
||||
adds r1, r1, r4
|
||||
ldr r4, _0803B464 @ =0x000004B4
|
||||
adds r0, r1, r4
|
||||
strh r7, [r0]
|
||||
ldr r0, _0803B468 @ =0x000004B6
|
||||
adds r1, r1, r0
|
||||
strh r7, [r1]
|
||||
adds r2, #1
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r1, r2, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
cmp r2, #3
|
||||
ble _0803B2EE
|
||||
movs r1, #0
|
||||
ldr r5, _0803B46C @ =gCurrentPinballGame
|
||||
movs r4, #0
|
||||
_0803B376:
|
||||
ldr r0, [r5]
|
||||
lsls r2, r1, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
ldr r1, _0803B470 @ =0x000004CC
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r5]
|
||||
ldr r3, _0803B474 @ =0x000004CF
|
||||
adds r0, r0, r3
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r5]
|
||||
ldr r6, _0803B478 @ =0x000004D2
|
||||
adds r0, r0, r6
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r1, #9
|
||||
adds r0, r0, r1
|
||||
adds r0, r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r1, [r5]
|
||||
lsls r3, r2, #1
|
||||
adds r6, #6
|
||||
adds r0, r1, r6
|
||||
adds r0, r0, r3
|
||||
strh r4, [r0]
|
||||
adds r6, #6
|
||||
adds r0, r1, r6
|
||||
adds r0, r0, r3
|
||||
strh r4, [r0]
|
||||
adds r6, #6
|
||||
adds r0, r1, r6
|
||||
adds r0, r0, r3
|
||||
strh r4, [r0]
|
||||
lsls r0, r2, #2
|
||||
adds r1, r1, r0
|
||||
ldr r3, _0803B47C @ =0x000004EC
|
||||
adds r0, r1, r3
|
||||
strh r4, [r0]
|
||||
adds r6, #0xa
|
||||
adds r0, r1, r6
|
||||
strh r4, [r0]
|
||||
adds r3, #0xc
|
||||
adds r0, r1, r3
|
||||
strh r4, [r0]
|
||||
adds r6, #0xc
|
||||
adds r1, r1, r6
|
||||
strh r4, [r1]
|
||||
adds r2, #1
|
||||
lsls r2, r2, #0x10
|
||||
lsrs r1, r2, #0x10
|
||||
asrs r2, r2, #0x10
|
||||
cmp r2, #2
|
||||
ble _0803B376
|
||||
mov r0, ip
|
||||
ldr r1, [r0]
|
||||
movs r0, #1
|
||||
strb r0, [r1, #0x1a]
|
||||
bl sub_3CBC4
|
||||
bl sub_3B7C4
|
||||
bl sub_3C6E0
|
||||
ldr r4, _0803B480 @ =0x040000D4
|
||||
ldr r0, _0803B484 @ =gUnknown_0849F1CC
|
||||
str r0, [r4]
|
||||
ldr r0, _0803B488 @ =0x06015800
|
||||
str r0, [r4, #4]
|
||||
ldr r0, _0803B48C @ =0x80001000
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #8]
|
||||
bl sub_3E644
|
||||
movs r0, MUS_BONUS_FIELD_GROUDON
|
||||
bl m4aSongNumStart
|
||||
ldr r0, _0803B490 @ =gUnknown_081B36A4
|
||||
str r0, [r4]
|
||||
ldr r0, _0803B494 @ =0x05000320
|
||||
str r0, [r4, #4]
|
||||
ldr r0, _0803B498 @ =0x80000010
|
||||
str r0, [r4, #8]
|
||||
ldr r0, [r4, #8]
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0803B42C: .4byte 0x00002A30
|
||||
_0803B430: .4byte 0x00000296
|
||||
_0803B434: .4byte 0x0000132C
|
||||
_0803B438: .4byte 0x00000386
|
||||
_0803B43C: .4byte 0x00000387
|
||||
_0803B440: .4byte 0x000006C4
|
||||
_0803B444: .4byte 0x00000382
|
||||
_0803B448: .4byte 0x00000385
|
||||
_0803B44C: .4byte 0x000003DD
|
||||
_0803B450: .4byte 0x0000047D
|
||||
_0803B454: .4byte 0x000004C9
|
||||
_0803B458: .4byte 0x0000046C
|
||||
_0803B45C: .4byte 0x0000048C
|
||||
_0803B460: .4byte 0x000004AC
|
||||
_0803B464: .4byte 0x000004B4
|
||||
_0803B468: .4byte 0x000004B6
|
||||
_0803B46C: .4byte gCurrentPinballGame
|
||||
_0803B470: .4byte 0x000004CC
|
||||
_0803B474: .4byte 0x000004CF
|
||||
_0803B478: .4byte 0x000004D2
|
||||
_0803B47C: .4byte 0x000004EC
|
||||
_0803B480: .4byte 0x040000D4
|
||||
_0803B484: .4byte gUnknown_0849F1CC
|
||||
_0803B488: .4byte 0x06015800
|
||||
_0803B48C: .4byte 0x80001000
|
||||
_0803B490: .4byte gUnknown_081B36A4
|
||||
_0803B494: .4byte 0x05000320
|
||||
_0803B498: .4byte 0x80000010
|
||||
|
|
|
|||
Binary file not shown.
103
src/rom_49A34.c
103
src/rom_49A34.c
|
|
@ -137,6 +137,7 @@ extern const u16 gUnknown_086AF140[][2];
|
|||
extern const u16 gUnknown_086AEF40[][31];
|
||||
extern const u16 gUnknown_086AF0B4[];
|
||||
extern const u8 gUnknown_0813E894[];
|
||||
extern const u8 gUnknown_0849F1CC[];
|
||||
|
||||
struct Unk_086AFAC0
|
||||
{
|
||||
|
|
@ -165,6 +166,108 @@ extern u8 gUnknown_0200FBB0[];
|
|||
extern u8 gUnknown_020030A0[];
|
||||
|
||||
|
||||
void sub_3B120(void)
|
||||
{
|
||||
s16 i;
|
||||
|
||||
gCurrentPinballGame->unk18 = 0;
|
||||
gCurrentPinballGame->unk17 = 0;
|
||||
gCurrentPinballGame->unk13 = 0;
|
||||
if (gCurrentPinballGame->numCompletedBonusStages % 5 == 3)
|
||||
gCurrentPinballGame->unk384 = 18;
|
||||
else
|
||||
gCurrentPinballGame->unk384 = 15;
|
||||
|
||||
gCurrentPinballGame->unk294 = 0;
|
||||
gCurrentPinballGame->eventTimer = gCurrentPinballGame->timerBonus + 10800;
|
||||
gCurrentPinballGame->timerBonus = 0;
|
||||
gCurrentPinballGame->unk388 = 3;
|
||||
gCurrentPinballGame->unk392 = 0;
|
||||
gCurrentPinballGame->ball->unk0 = 1;
|
||||
gCurrentPinballGame->unk386 = 0;
|
||||
gCurrentPinballGame->unk387 = 1;
|
||||
gCurrentPinballGame->unk6C4 = 3;
|
||||
gCurrentPinballGame->unk382 = 0;
|
||||
gCurrentPinballGame->unk383 = 0;
|
||||
gCurrentPinballGame->unk385 = 0;
|
||||
gCurrentPinballGame->unk389 = 0;
|
||||
gCurrentPinballGame->unk38E = 0;
|
||||
gCurrentPinballGame->unk390 = 0;
|
||||
gCurrentPinballGame->unk394 = 0;
|
||||
gCurrentPinballGame->unk3DC = 0;
|
||||
gCurrentPinballGame->unk3DD = 0;
|
||||
gCurrentPinballGame->unk3DE = 0;
|
||||
gCurrentPinballGame->unk3DF = 0;
|
||||
gCurrentPinballGame->unk3E0 = 0;
|
||||
gCurrentPinballGame->unk3E2 = 0;
|
||||
gCurrentPinballGame->unk3E1 = 0;
|
||||
gCurrentPinballGame->unk3E4 = 0;
|
||||
gCurrentPinballGame->unk3E6 = 0;
|
||||
gCurrentPinballGame->unk3E8 = 0;
|
||||
gCurrentPinballGame->unk3EA = 0;
|
||||
gCurrentPinballGame->unk3EC = 0;
|
||||
gCurrentPinballGame->unk3EE = 0;
|
||||
gCurrentPinballGame->unk3F0 = 0;
|
||||
gCurrentPinballGame->unk3F2 = 0;
|
||||
gCurrentPinballGame->unk452 = 0;
|
||||
gCurrentPinballGame->unk456 = 0;
|
||||
gCurrentPinballGame->unk47C = 0;
|
||||
gCurrentPinballGame->unk47D = 0;
|
||||
gCurrentPinballGame->unk47E = 0;
|
||||
gCurrentPinballGame->unk47F = 0;
|
||||
gCurrentPinballGame->unk480 = 0;
|
||||
gCurrentPinballGame->unk482 = 0;
|
||||
gCurrentPinballGame->unk484 = 0;
|
||||
gCurrentPinballGame->unk486 = 0;
|
||||
gCurrentPinballGame->unk488.x = 0;
|
||||
gCurrentPinballGame->unk488.y = 0;
|
||||
gCurrentPinballGame->unk4C4 = 0;
|
||||
gCurrentPinballGame->unk4C6 = 0;
|
||||
gCurrentPinballGame->unk4C8 = 0;
|
||||
gCurrentPinballGame->unk4CA = 0;
|
||||
gCurrentPinballGame->unk4C9 = 0;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk46C[i].x = 0;
|
||||
gCurrentPinballGame->unk46C[i].y = 0;
|
||||
gCurrentPinballGame->unk48C[i] = 0;
|
||||
gCurrentPinballGame->unk490[i] = 0;
|
||||
gCurrentPinballGame->unk494[i] = 0;
|
||||
gCurrentPinballGame->unk498[i] = 0;
|
||||
gCurrentPinballGame->unk49C[i] = 0;
|
||||
gCurrentPinballGame->unk4A0[i] = 0;
|
||||
gCurrentPinballGame->unk4A4[i] = 0;
|
||||
gCurrentPinballGame->unk4AC[i] = 0;
|
||||
gCurrentPinballGame->unk4B4[i].x = 0;
|
||||
gCurrentPinballGame->unk4B4[i].y = 0;
|
||||
}
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
gCurrentPinballGame->unk4CC[i] = 0;
|
||||
gCurrentPinballGame->unk4CF[i] = 0;
|
||||
gCurrentPinballGame->unk4D2[i] = 0;
|
||||
gCurrentPinballGame->unk4D5[i] = 0;
|
||||
gCurrentPinballGame->unk4D8[i] = 0;
|
||||
gCurrentPinballGame->unk4DE[i] = 0;
|
||||
gCurrentPinballGame->unk4E4[i] = 0;
|
||||
gCurrentPinballGame->unk4EC[i].x = 0;
|
||||
gCurrentPinballGame->unk4EC[i].y = 0;
|
||||
gCurrentPinballGame->unk4F8[i].x = 0;
|
||||
gCurrentPinballGame->unk4F8[i].y = 0;
|
||||
}
|
||||
|
||||
gCurrentPinballGame->unk1A = 1;
|
||||
sub_3CBC4();
|
||||
sub_3B7C4();
|
||||
sub_3C6E0();
|
||||
DmaCopy16(3, gUnknown_0849F1CC, (void *)0x06015800, 0x2000);
|
||||
sub_3E644();
|
||||
m4aSongNumStart(MUS_BONUS_FIELD_GROUDON);
|
||||
DmaCopy16(3, gUnknown_081B36A4, (void *)0x05000320, 0x20);
|
||||
}
|
||||
|
||||
void sub_3B49C(void)
|
||||
{
|
||||
switch (gCurrentPinballGame->unk13)
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user