sub_81052D0
This commit is contained in:
@@ -5,326 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_81052D0
|
||||
sub_81052D0: @ 81052D0
|
||||
push {r4-r6,lr}
|
||||
sub sp, 0x8
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
bl IsNationalPokedexEnabled
|
||||
cmp r0, 0
|
||||
beq _081052E8
|
||||
ldr r0, _081052E4 @ =gUnknown_84406E0
|
||||
b _081052EA
|
||||
.align 2, 0
|
||||
_081052E4: .4byte gUnknown_84406E0
|
||||
_081052E8:
|
||||
ldr r0, _08105304 @ =gUnknown_84404C8
|
||||
_081052EA:
|
||||
ldrh r4, [r0, 0xE]
|
||||
ldr r1, _08105308 @ =gUnknown_203ACF0
|
||||
ldr r0, [r1]
|
||||
ldrb r0, [r0, 0x2]
|
||||
adds r5, r1, 0
|
||||
cmp r0, 0x9
|
||||
bls _081052FA
|
||||
b _0810557C
|
||||
_081052FA:
|
||||
lsls r0, 2
|
||||
ldr r1, _0810530C @ =_08105310
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08105304: .4byte gUnknown_84404C8
|
||||
_08105308: .4byte gUnknown_203ACF0
|
||||
_0810530C: .4byte _08105310
|
||||
.align 2, 0
|
||||
_08105310:
|
||||
.4byte _08105338
|
||||
.4byte _08105358
|
||||
.4byte _08105364
|
||||
.4byte _08105384
|
||||
.4byte _081053DC
|
||||
.4byte _0810547C
|
||||
.4byte _08105492
|
||||
.4byte _081054F0
|
||||
.4byte _08105528
|
||||
.4byte _0810555C
|
||||
_08105338:
|
||||
movs r0, 0xC0
|
||||
lsls r0, 5
|
||||
bl Alloc
|
||||
ldr r1, _08105350 @ =gUnknown_203ACF0
|
||||
ldr r1, [r1]
|
||||
str r0, [r1, 0x5C]
|
||||
cmp r6, 0
|
||||
beq _08105354
|
||||
movs r0, 0x6
|
||||
b _0810557A
|
||||
.align 2, 0
|
||||
_08105350: .4byte gUnknown_203ACF0
|
||||
_08105354:
|
||||
movs r0, 0x2
|
||||
b _0810557A
|
||||
_08105358:
|
||||
ldr r0, [r5]
|
||||
ldr r0, [r0, 0x5C]
|
||||
bl Free
|
||||
movs r0, 0x1
|
||||
b _0810557E
|
||||
_08105364:
|
||||
ldr r0, _0810537C @ =0x00007fff
|
||||
str r4, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r0, _08105380 @ =gUnknown_203ACF0
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x2]
|
||||
adds r0, 0x1
|
||||
b _0810557A
|
||||
.align 2, 0
|
||||
_0810537C: .4byte 0x00007fff
|
||||
_08105380: .4byte gUnknown_203ACF0
|
||||
_08105384:
|
||||
movs r0, 0x1E
|
||||
str r0, [sp]
|
||||
movs r4, 0x14
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0x3
|
||||
movs r1, 0xC
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
movs r5, 0x20
|
||||
str r5, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
str r5, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
movs r0, 0x1
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0x2
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0x3
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r0, _081053D8 @ =gUnknown_203ACF0
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x2]
|
||||
adds r0, 0x1
|
||||
b _0810557A
|
||||
.align 2, 0
|
||||
_081053D8: .4byte gUnknown_203ACF0
|
||||
_081053DC:
|
||||
ldr r0, _08105474 @ =0x00007fff
|
||||
str r4, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
movs r0, 0
|
||||
bl sub_8104F0C
|
||||
movs r0, 0x3
|
||||
bl GetBgTilemapBuffer
|
||||
ldr r6, _08105478 @ =gUnknown_203ACF0
|
||||
ldr r1, [r6]
|
||||
ldr r1, [r1, 0x5C]
|
||||
movs r4, 0x80
|
||||
lsls r4, 2
|
||||
adds r2, r4, 0
|
||||
bl CpuFastSet
|
||||
movs r0, 0x2
|
||||
bl GetBgTilemapBuffer
|
||||
ldr r1, [r6]
|
||||
ldr r1, [r1, 0x5C]
|
||||
movs r2, 0x80
|
||||
lsls r2, 4
|
||||
adds r1, r2
|
||||
adds r2, r4, 0
|
||||
bl CpuFastSet
|
||||
movs r0, 0x1
|
||||
bl GetBgTilemapBuffer
|
||||
ldr r1, [r6]
|
||||
ldr r1, [r1, 0x5C]
|
||||
movs r2, 0x80
|
||||
lsls r2, 5
|
||||
adds r1, r2
|
||||
adds r2, r4, 0
|
||||
bl CpuFastSet
|
||||
movs r0, 0x1E
|
||||
str r0, [sp]
|
||||
movs r4, 0x14
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0x3
|
||||
movs r1, 0xC
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
movs r5, 0x20
|
||||
str r5, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0x2
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
str r5, [sp]
|
||||
str r4, [sp, 0x4]
|
||||
movs r0, 0x1
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0
|
||||
bl FillBgTilemapBufferRect_Palette0
|
||||
ldr r1, [r6]
|
||||
movs r0, 0
|
||||
strb r0, [r1, 0x3]
|
||||
ldr r1, [r6]
|
||||
b _081054DC
|
||||
.align 2, 0
|
||||
_08105474: .4byte 0x00007fff
|
||||
_08105478: .4byte gUnknown_203ACF0
|
||||
_0810547C:
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r1, 0x3]
|
||||
cmp r0, 0x9
|
||||
bhi _08105578
|
||||
bl sub_81051F0
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r1, 0x3]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1, 0x3]
|
||||
b _0810557C
|
||||
_08105492:
|
||||
movs r0, 0x3
|
||||
bl GetBgTilemapBuffer
|
||||
ldr r4, _081054EC @ =gUnknown_203ACF0
|
||||
ldr r1, [r4]
|
||||
ldr r1, [r1, 0x5C]
|
||||
movs r5, 0x80
|
||||
lsls r5, 2
|
||||
adds r2, r5, 0
|
||||
bl CpuFastSet
|
||||
movs r0, 0x2
|
||||
bl GetBgTilemapBuffer
|
||||
ldr r1, [r4]
|
||||
ldr r1, [r1, 0x5C]
|
||||
movs r2, 0x80
|
||||
lsls r2, 4
|
||||
adds r1, r2
|
||||
adds r2, r5, 0
|
||||
bl CpuFastSet
|
||||
movs r0, 0x1
|
||||
bl GetBgTilemapBuffer
|
||||
ldr r1, [r4]
|
||||
ldr r1, [r1, 0x5C]
|
||||
movs r2, 0x80
|
||||
lsls r2, 5
|
||||
adds r1, r2
|
||||
adds r2, r5, 0
|
||||
bl CpuFastSet
|
||||
ldr r1, [r4]
|
||||
movs r0, 0x9
|
||||
strb r0, [r1, 0x3]
|
||||
ldr r1, [r4]
|
||||
_081054DC:
|
||||
ldrb r0, [r1, 0x2]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1, 0x2]
|
||||
movs r0, 0x6B
|
||||
bl PlaySE
|
||||
b _0810557C
|
||||
.align 2, 0
|
||||
_081054EC: .4byte gUnknown_203ACF0
|
||||
_081054F0:
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r1, 0x3]
|
||||
cmp r0, 0
|
||||
beq _08105506
|
||||
bl sub_81051F0
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r1, 0x3]
|
||||
subs r0, 0x1
|
||||
strb r0, [r1, 0x3]
|
||||
b _0810557C
|
||||
_08105506:
|
||||
ldrb r0, [r1, 0x2]
|
||||
bl sub_81051F0
|
||||
ldr r0, _08105524 @ =0x00007fff
|
||||
str r4, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r1, [r5]
|
||||
ldrb r0, [r1, 0x2]
|
||||
adds r0, 0x1
|
||||
b _0810557A
|
||||
.align 2, 0
|
||||
_08105524: .4byte 0x00007fff
|
||||
_08105528:
|
||||
ldr r2, _08105554 @ =gPaletteFade
|
||||
ldrb r0, [r2, 0x8]
|
||||
movs r1, 0x80
|
||||
orrs r0, r1
|
||||
strb r0, [r2, 0x8]
|
||||
movs r0, 0
|
||||
bl sub_8104F0C
|
||||
movs r0, 0x1
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0x2
|
||||
bl CopyBgTilemapBufferToVram
|
||||
movs r0, 0x3
|
||||
bl CopyBgTilemapBufferToVram
|
||||
ldr r0, _08105558 @ =gUnknown_203ACF0
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x2]
|
||||
adds r0, 0x1
|
||||
b _0810557A
|
||||
.align 2, 0
|
||||
_08105554: .4byte gPaletteFade
|
||||
_08105558: .4byte gUnknown_203ACF0
|
||||
_0810555C:
|
||||
ldr r2, _08105588 @ =gPaletteFade
|
||||
ldrb r1, [r2, 0x8]
|
||||
movs r0, 0x7F
|
||||
ands r0, r1
|
||||
strb r0, [r2, 0x8]
|
||||
ldr r0, _0810558C @ =0x00007fff
|
||||
str r4, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r0, _08105590 @ =gUnknown_203ACF0
|
||||
ldr r1, [r0]
|
||||
_08105578:
|
||||
movs r0, 0x1
|
||||
_0810557A:
|
||||
strb r0, [r1, 0x2]
|
||||
_0810557C:
|
||||
movs r0, 0
|
||||
_0810557E:
|
||||
add sp, 0x8
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08105588: .4byte gPaletteFade
|
||||
_0810558C: .4byte 0x00007fff
|
||||
_08105590: .4byte gUnknown_203ACF0
|
||||
thumb_func_end sub_81052D0
|
||||
|
||||
thumb_func_start sub_8105594
|
||||
sub_8105594: @ 8105594
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -1980,3 +1980,97 @@ bool8 sub_81051F0(u8 a0)
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool8 sub_81052D0(u8 a0)
|
||||
{
|
||||
u16 r4;
|
||||
if (IsNationalPokedexEnabled())
|
||||
r4 = gUnknown_84406E0[7];
|
||||
else
|
||||
r4 = gUnknown_84404C8[7];
|
||||
switch (gUnknown_203ACF0->field_02)
|
||||
{
|
||||
case 0:
|
||||
gUnknown_203ACF0->field_5C = Alloc(3 * BG_SCREEN_SIZE);
|
||||
if (a0)
|
||||
gUnknown_203ACF0->field_02 = 6;
|
||||
else
|
||||
gUnknown_203ACF0->field_02 = 2;
|
||||
break;
|
||||
case 1:
|
||||
Free(gUnknown_203ACF0->field_5C);
|
||||
return TRUE;
|
||||
case 2:
|
||||
BeginNormalPaletteFade(0x00007FFF, 0, 0, 16, r4);
|
||||
gUnknown_203ACF0->field_02++;
|
||||
break;
|
||||
case 3:
|
||||
FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20);
|
||||
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 32, 20);
|
||||
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
gUnknown_203ACF0->field_02++;
|
||||
break;
|
||||
case 4:
|
||||
BeginNormalPaletteFade(0x00007FFF, 0, 0, 0, r4);
|
||||
sub_8104F0C(FALSE);
|
||||
CpuFastCopy(GetBgTilemapBuffer(3), &gUnknown_203ACF0->field_5C[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
|
||||
CpuFastCopy(GetBgTilemapBuffer(2), &gUnknown_203ACF0->field_5C[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
|
||||
CpuFastCopy(GetBgTilemapBuffer(1), &gUnknown_203ACF0->field_5C[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
|
||||
FillBgTilemapBufferRect_Palette0(3, 0x00C, 0, 0, 30, 20);
|
||||
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 32, 20);
|
||||
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 32, 20);
|
||||
gUnknown_203ACF0->field_03 = 0;
|
||||
gUnknown_203ACF0->field_02++;
|
||||
PlaySE(SE_TB_START);
|
||||
break;
|
||||
case 5:
|
||||
if (gUnknown_203ACF0->field_03 < 10)
|
||||
{
|
||||
sub_81051F0(gUnknown_203ACF0->field_03);
|
||||
gUnknown_203ACF0->field_03++;
|
||||
}
|
||||
else
|
||||
{
|
||||
gUnknown_203ACF0->field_02 = 1;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
CpuFastCopy(GetBgTilemapBuffer(3), &gUnknown_203ACF0->field_5C[0 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
|
||||
CpuFastCopy(GetBgTilemapBuffer(2), &gUnknown_203ACF0->field_5C[1 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
|
||||
CpuFastCopy(GetBgTilemapBuffer(1), &gUnknown_203ACF0->field_5C[2 * BG_SCREEN_SIZE / 2], BG_SCREEN_SIZE);
|
||||
gUnknown_203ACF0->field_03 = 9;
|
||||
gUnknown_203ACF0->field_02++;
|
||||
PlaySE(SE_TB_START);
|
||||
break;
|
||||
case 7:
|
||||
if (gUnknown_203ACF0->field_03 != 0)
|
||||
{
|
||||
sub_81051F0(gUnknown_203ACF0->field_03);
|
||||
gUnknown_203ACF0->field_03--;
|
||||
}
|
||||
else
|
||||
{
|
||||
sub_81051F0(gUnknown_203ACF0->field_02);
|
||||
BeginNormalPaletteFade(0x00007FFF, 0, 16, 16, r4);
|
||||
gUnknown_203ACF0->field_02++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
gPaletteFade.bufferTransferDisabled = TRUE;
|
||||
sub_8104F0C(FALSE);
|
||||
CopyBgTilemapBufferToVram(1);
|
||||
CopyBgTilemapBufferToVram(2);
|
||||
CopyBgTilemapBufferToVram(3);
|
||||
gUnknown_203ACF0->field_02++;
|
||||
break;
|
||||
case 9:
|
||||
gPaletteFade.bufferTransferDisabled = FALSE;
|
||||
BeginNormalPaletteFade(0x00007FFF, 0, 16, 0, r4);
|
||||
gUnknown_203ACF0->field_02 = 1;
|
||||
break;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user