title_screen through sub_80791C0
This commit is contained in:
@@ -5,693 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_8078D24
|
||||
sub_8078D24: @ 8078D24
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x1
|
||||
beq _08078D5C
|
||||
cmp r0, 0x1
|
||||
bgt _08078D3A
|
||||
cmp r0, 0
|
||||
beq _08078D40
|
||||
b _08078D9C
|
||||
_08078D3A:
|
||||
cmp r0, 0x2
|
||||
beq _08078D84
|
||||
b _08078D9C
|
||||
_08078D40:
|
||||
movs r0, 0x50
|
||||
movs r1, 0x82
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x80
|
||||
strh r0, [r4, 0x4]
|
||||
movs r0, 0x80
|
||||
bl sub_8079550
|
||||
b _08078D78
|
||||
_08078D5C:
|
||||
ldrh r0, [r4, 0x4]
|
||||
subs r0, 0x4
|
||||
strh r0, [r4, 0x4]
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
bl sub_8079550
|
||||
movs r1, 0x4
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
bge _08078D9C
|
||||
ldr r1, _08078D80 @ =gScanlineEffect
|
||||
movs r0, 0x3
|
||||
strb r0, [r1, 0x15]
|
||||
_08078D78:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
b _08078D9C
|
||||
.align 2, 0
|
||||
_08078D80: .4byte gScanlineEffect
|
||||
_08078D84:
|
||||
movs r0, 0x50
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x2
|
||||
bl sub_8078C90
|
||||
_08078D9C:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_8078D24
|
||||
|
||||
thumb_func_start sub_8078DA4
|
||||
sub_8078DA4: @ 8078DA4
|
||||
push {r4-r7,lr}
|
||||
sub sp, 0xC
|
||||
adds r6, r0, 0
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r6, r1]
|
||||
cmp r0, 0x9
|
||||
bls _08078DB4
|
||||
b _08078FB6
|
||||
_08078DB4:
|
||||
lsls r0, 2
|
||||
ldr r1, _08078DC0 @ =_08078DC4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_08078DC0: .4byte _08078DC4
|
||||
.align 2, 0
|
||||
_08078DC4:
|
||||
.4byte _08078DEC
|
||||
.4byte _08078DF2
|
||||
.4byte _08078E24
|
||||
.4byte _08078E40
|
||||
.4byte _08078E80
|
||||
.4byte _08078EA4
|
||||
.4byte _08078ED4
|
||||
.4byte _08078EF8
|
||||
.4byte _08078F24
|
||||
.4byte _08078F98
|
||||
_08078DEC:
|
||||
movs r0, 0
|
||||
strh r0, [r6, 0x4]
|
||||
b _08078F80
|
||||
_08078DF2:
|
||||
ldrh r0, [r6, 0x4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r6, 0x4]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0xA
|
||||
bgt _08078E02
|
||||
b _08078FB6
|
||||
_08078E02:
|
||||
ldr r0, _08078E20 @ =gPlttBufferUnfaded + 0x1A0
|
||||
movs r1, 0x10
|
||||
bl TintPalette_GrayScale2
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
movs r1, 0x9
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
b _08078F80
|
||||
.align 2, 0
|
||||
_08078E20: .4byte gPlttBufferUnfaded + 0x1A0
|
||||
_08078E24:
|
||||
ldr r0, _08078E3C @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
beq _08078E36
|
||||
b _08078FB6
|
||||
_08078E36:
|
||||
strh r0, [r6, 0x4]
|
||||
b _08078F80
|
||||
.align 2, 0
|
||||
_08078E3C: .4byte gPaletteFade
|
||||
_08078E40:
|
||||
ldrh r0, [r6, 0x4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r6, 0x4]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x24
|
||||
bgt _08078E50
|
||||
b _08078FB6
|
||||
_08078E50:
|
||||
ldr r0, _08078E78 @ =sub_80792C8
|
||||
movs r1, 0x3
|
||||
bl CreateTask
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
movs r1, 0x4
|
||||
negs r1, r1
|
||||
ldr r2, _08078E7C @ =0x00007fde
|
||||
str r2, [sp]
|
||||
movs r4, 0
|
||||
str r4, [sp, 0x4]
|
||||
str r4, [sp, 0x8]
|
||||
movs r2, 0x1
|
||||
movs r3, 0x10
|
||||
bl sub_80717A8
|
||||
strh r4, [r6, 0x4]
|
||||
b _08078F80
|
||||
.align 2, 0
|
||||
_08078E78: .4byte sub_80792C8
|
||||
_08078E7C: .4byte 0x00007fde
|
||||
_08078E80:
|
||||
movs r0, 0
|
||||
bl sub_807185C
|
||||
adds r3, r0, 0
|
||||
cmp r3, 0
|
||||
beq _08078E8E
|
||||
b _08078FB6
|
||||
_08078E8E:
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
movs r1, 0x4
|
||||
negs r1, r1
|
||||
ldr r2, _08078EA0 @ =0x00007fde
|
||||
str r2, [sp]
|
||||
str r3, [sp, 0x4]
|
||||
str r3, [sp, 0x8]
|
||||
b _08078F78
|
||||
.align 2, 0
|
||||
_08078EA0: .4byte 0x00007fde
|
||||
_08078EA4:
|
||||
ldrh r0, [r6, 0x4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r6, 0x4]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x14
|
||||
bgt _08078EB4
|
||||
b _08078FB6
|
||||
_08078EB4:
|
||||
movs r0, 0
|
||||
strh r0, [r6, 0x4]
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
movs r1, 0x4
|
||||
negs r1, r1
|
||||
ldr r2, _08078ED0 @ =0x00007fde
|
||||
str r2, [sp]
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x4]
|
||||
str r2, [sp, 0x8]
|
||||
movs r2, 0x1
|
||||
movs r3, 0x10
|
||||
b _08078F7C
|
||||
.align 2, 0
|
||||
_08078ED0: .4byte 0x00007fde
|
||||
_08078ED4:
|
||||
movs r0, 0
|
||||
bl sub_807185C
|
||||
adds r3, r0, 0
|
||||
cmp r3, 0
|
||||
bne _08078FB6
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
movs r1, 0x4
|
||||
negs r1, r1
|
||||
ldr r2, _08078EF4 @ =0x00007fde
|
||||
str r2, [sp]
|
||||
str r3, [sp, 0x4]
|
||||
str r3, [sp, 0x8]
|
||||
b _08078F78
|
||||
.align 2, 0
|
||||
_08078EF4: .4byte 0x00007fde
|
||||
_08078EF8:
|
||||
ldrh r0, [r6, 0x4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r6, 0x4]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x14
|
||||
ble _08078FB6
|
||||
movs r0, 0
|
||||
strh r0, [r6, 0x4]
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
movs r1, 0x3
|
||||
negs r1, r1
|
||||
ldr r2, _08078F20 @ =0x00007fde
|
||||
str r2, [sp]
|
||||
movs r2, 0
|
||||
str r2, [sp, 0x4]
|
||||
str r2, [sp, 0x8]
|
||||
movs r3, 0x10
|
||||
b _08078F7C
|
||||
.align 2, 0
|
||||
_08078F20: .4byte 0x00007fde
|
||||
_08078F24:
|
||||
movs r0, 0
|
||||
bl sub_807185C
|
||||
adds r7, r0, 0
|
||||
cmp r7, 0
|
||||
bne _08078FB6
|
||||
movs r0, 0x1
|
||||
strh r0, [r6, 0xA]
|
||||
bl sub_80799F0
|
||||
movs r4, 0x80
|
||||
lsls r4, 9
|
||||
lsls r4, r0
|
||||
ldr r0, _08078F88 @ =0x00001fff
|
||||
orrs r4, r0
|
||||
ldr r5, _08078F8C @ =0x00007fde
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x10
|
||||
adds r2, r5, 0
|
||||
bl BlendPalettes
|
||||
str r5, [sp]
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x1
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
movs r0, 0
|
||||
bl ShowBg
|
||||
ldr r0, _08078F90 @ =gUnknown_8EAD5E8
|
||||
ldr r1, _08078F94 @ =gPlttBufferUnfaded + 0x1A0
|
||||
movs r2, 0x10
|
||||
bl CpuSet
|
||||
movs r0, 0x80
|
||||
lsls r0, 6
|
||||
str r5, [sp]
|
||||
str r7, [sp, 0x4]
|
||||
str r7, [sp, 0x8]
|
||||
movs r1, 0x1
|
||||
_08078F78:
|
||||
movs r2, 0xF
|
||||
movs r3, 0
|
||||
_08078F7C:
|
||||
bl sub_80717A8
|
||||
_08078F80:
|
||||
ldrh r0, [r6, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r6, 0x2]
|
||||
b _08078FB6
|
||||
.align 2, 0
|
||||
_08078F88: .4byte 0x00001fff
|
||||
_08078F8C: .4byte 0x00007fde
|
||||
_08078F90: .4byte gUnknown_8EAD5E8
|
||||
_08078F94: .4byte gPlttBufferUnfaded + 0x1A0
|
||||
_08078F98:
|
||||
movs r0, 0
|
||||
bl sub_807185C
|
||||
cmp r0, 0
|
||||
bne _08078FB6
|
||||
ldr r0, _08078FC0 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08078FB6
|
||||
adds r0, r6, 0
|
||||
movs r1, 0x3
|
||||
bl sub_8078C90
|
||||
_08078FB6:
|
||||
add sp, 0xC
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08078FC0: .4byte gPaletteFade
|
||||
thumb_func_end sub_8078DA4
|
||||
|
||||
thumb_func_start sub_8078FC4
|
||||
sub_8078FC4: @ 8078FC4
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0
|
||||
beq _08078FD6
|
||||
cmp r0, 0x1
|
||||
beq _08079004
|
||||
b _08079094
|
||||
_08078FD6:
|
||||
movs r0, 0x1
|
||||
bl HelpSystem_SetSomeVariable2
|
||||
ldr r0, _0807902C @ =sub_807941C
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
ldr r0, _08079030 @ =sub_8079840
|
||||
movs r1, 0x5
|
||||
bl CreateTask
|
||||
bl sub_80790A0
|
||||
bl sub_8079A40
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0xC]
|
||||
bl sub_812B484
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
_08079004:
|
||||
ldr r2, _08079034 @ =gMain
|
||||
ldrh r1, [r2, 0x2C]
|
||||
movs r0, 0x46
|
||||
ands r0, r1
|
||||
cmp r0, 0x46
|
||||
bne _08079040
|
||||
ldrb r0, [r4, 0xC]
|
||||
bl sub_8079A88
|
||||
ldr r0, _08079038 @ =sub_8078C24
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
ldr r0, _0807903C @ =sub_80796CC
|
||||
bl SetMainCallback2
|
||||
b _08079094
|
||||
.align 2, 0
|
||||
_0807902C: .4byte sub_807941C
|
||||
_08079030: .4byte sub_8079840
|
||||
_08079034: .4byte gMain
|
||||
_08079038: .4byte sub_8078C24
|
||||
_0807903C: .4byte sub_80796CC
|
||||
_08079040:
|
||||
movs r0, 0x6
|
||||
ands r0, r1
|
||||
cmp r0, 0x6
|
||||
bne _0807906C
|
||||
ldrb r0, [r4, 0xC]
|
||||
bl sub_8079A88
|
||||
ldr r0, _08079064 @ =sub_8078C24
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
ldr r0, _08079068 @ =sub_80796E8
|
||||
bl SetMainCallback2
|
||||
b _08079094
|
||||
.align 2, 0
|
||||
_08079064: .4byte sub_8078C24
|
||||
_08079068: .4byte sub_80796E8
|
||||
_0807906C:
|
||||
ldrh r1, [r2, 0x2E]
|
||||
movs r0, 0x9
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08079080
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x5
|
||||
bl sub_8078C90
|
||||
b _08079094
|
||||
_08079080:
|
||||
ldr r0, _0807909C @ =sub_8078BEC
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08079094
|
||||
adds r0, r4, 0
|
||||
movs r1, 0x4
|
||||
bl sub_8078C90
|
||||
_08079094:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0807909C: .4byte sub_8078BEC
|
||||
thumb_func_end sub_8078FC4
|
||||
|
||||
thumb_func_start sub_80790A0
|
||||
sub_80790A0: @ 80790A0
|
||||
push {lr}
|
||||
movs r1, 0x80
|
||||
lsls r1, 8
|
||||
movs r0, 0
|
||||
bl SetGpuRegBits
|
||||
ldr r1, _080790C8 @ =0x00003f1f
|
||||
movs r0, 0x4A
|
||||
bl SetGpuReg
|
||||
movs r0, 0x50
|
||||
movs r1, 0x81
|
||||
bl SetGpuReg
|
||||
movs r0, 0x54
|
||||
movs r1, 0xD
|
||||
bl SetGpuReg
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080790C8: .4byte 0x00003f1f
|
||||
thumb_func_end sub_80790A0
|
||||
|
||||
thumb_func_start sub_80790CC
|
||||
sub_80790CC: @ 80790CC
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x4
|
||||
bhi _080791B0
|
||||
lsls r0, 2
|
||||
ldr r1, _080790E4 @ =_080790E8
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080790E4: .4byte _080790E8
|
||||
.align 2, 0
|
||||
_080790E8:
|
||||
.4byte _080790FC
|
||||
.4byte _08079104
|
||||
.4byte _0807913C
|
||||
.4byte _08079170
|
||||
.4byte _08079198
|
||||
_080790FC:
|
||||
ldrb r0, [r4, 0xC]
|
||||
bl sub_8079A88
|
||||
b _0807918C
|
||||
_08079104:
|
||||
ldr r0, _08079138 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080791B0
|
||||
ldrb r0, [r4, 0xC]
|
||||
bl sub_8079AA8
|
||||
adds r5, r0, 0
|
||||
cmp r5, 0
|
||||
bne _080791B0
|
||||
movs r0, 0xA
|
||||
bl FadeOutMapMusic
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
str r5, [sp]
|
||||
movs r1, 0x3
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
bl sub_8079528
|
||||
b _0807918C
|
||||
.align 2, 0
|
||||
_08079138: .4byte gPaletteFade
|
||||
_0807913C:
|
||||
bl IsNotWaitingForBGMStop
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080791B0
|
||||
ldr r0, _08079168 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0
|
||||
bne _080791B0
|
||||
ldr r0, _0807916C @ =sub_807941C
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
strh r5, [r4, 0x4]
|
||||
b _0807918C
|
||||
.align 2, 0
|
||||
_08079168: .4byte gPaletteFade
|
||||
_0807916C: .4byte sub_807941C
|
||||
_08079170:
|
||||
ldrh r0, [r4, 0x4]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x4]
|
||||
lsls r0, 16
|
||||
asrs r0, 16
|
||||
cmp r0, 0x13
|
||||
ble _080791B0
|
||||
ldr r0, _08079194 @ =sub_807941C
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
_0807918C:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
b _080791B0
|
||||
.align 2, 0
|
||||
_08079194: .4byte sub_807941C
|
||||
_08079198:
|
||||
bl sub_812B478
|
||||
ldr r0, _080791B8 @ =sub_8078C24
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
ldr r0, _080791BC @ =sub_80EC864
|
||||
bl SetMainCallback2
|
||||
_080791B0:
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080791B8: .4byte sub_8078C24
|
||||
_080791BC: .4byte sub_80EC864
|
||||
thumb_func_end sub_80790CC
|
||||
|
||||
thumb_func_start sub_80791C0
|
||||
sub_80791C0: @ 80791C0
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r0, 0
|
||||
movs r1, 0x2
|
||||
ldrsh r0, [r4, r1]
|
||||
cmp r0, 0x1
|
||||
beq _08079204
|
||||
cmp r0, 0x1
|
||||
bgt _080791D8
|
||||
cmp r0, 0
|
||||
beq _080791DE
|
||||
b _080792A6
|
||||
_080791D8:
|
||||
cmp r0, 0x2
|
||||
beq _08079248
|
||||
b _080792A6
|
||||
_080791DE:
|
||||
ldr r0, _08079200 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0
|
||||
bne _080792A6
|
||||
.ifdef FIRERED
|
||||
movs r0, 0x6 @ CHARIZARD
|
||||
.else
|
||||
movs r0, 0x3 @ VENUSAUR
|
||||
.endif
|
||||
movs r1, 0
|
||||
bl PlayCry1
|
||||
ldrb r0, [r4, 0xC]
|
||||
bl sub_8079A88
|
||||
strh r5, [r4, 0x4]
|
||||
b _08079238
|
||||
.align 2, 0
|
||||
_08079200: .4byte gPaletteFade
|
||||
_08079204:
|
||||
ldrh r1, [r4, 0x4]
|
||||
movs r2, 0x4
|
||||
ldrsh r0, [r4, r2]
|
||||
cmp r0, 0x59
|
||||
bgt _08079214
|
||||
adds r0, r1, 0x1
|
||||
strh r0, [r4, 0x4]
|
||||
b _080792A6
|
||||
_08079214:
|
||||
ldrb r0, [r4, 0xC]
|
||||
bl sub_8079AA8
|
||||
cmp r0, 0
|
||||
bne _080792A6
|
||||
ldr r0, _08079240 @ =0x0fffffff
|
||||
ldr r1, _08079244 @ =0x00007fff
|
||||
str r1, [sp]
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
bl sub_8079528
|
||||
movs r0, 0x4
|
||||
bl FadeOutBGM
|
||||
_08079238:
|
||||
ldrh r0, [r4, 0x2]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x2]
|
||||
b _080792A6
|
||||
.align 2, 0
|
||||
_08079240: .4byte 0x0fffffff
|
||||
_08079244: .4byte 0x00007fff
|
||||
_08079248:
|
||||
ldr r0, _080792B0 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _080792A6
|
||||
bl SeedRngAndSetTrainerId
|
||||
bl SetSaveBlocksPointers
|
||||
bl ResetMenuAndMonGlobals
|
||||
bl Save_ResetSaveCounters
|
||||
movs r0, 0
|
||||
bl Save_LoadGameData
|
||||
ldr r0, _080792B4 @ =gSaveFileStatus
|
||||
ldrh r0, [r0]
|
||||
cmp r0, 0
|
||||
beq _08079276
|
||||
cmp r0, 0x2
|
||||
bne _0807927A
|
||||
_08079276:
|
||||
bl Sav2_ClearSetDefault
|
||||
_0807927A:
|
||||
ldr r0, _080792B8 @ =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x15]
|
||||
lsls r0, 31
|
||||
lsrs r0, 31
|
||||
bl SetPokemonCryStereo
|
||||
ldr r0, _080792BC @ =gHeap
|
||||
movs r1, 0xE0
|
||||
lsls r1, 9
|
||||
bl InitHeap
|
||||
ldr r0, _080792C0 @ =sub_800C300
|
||||
bl SetMainCallback2
|
||||
ldr r0, _080792C4 @ =sub_8078C24
|
||||
bl FindTaskIdByFunc
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl DestroyTask
|
||||
_080792A6:
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080792B0: .4byte gPaletteFade
|
||||
_080792B4: .4byte gSaveFileStatus
|
||||
_080792B8: .4byte gSaveBlock2Ptr
|
||||
_080792BC: .4byte gHeap
|
||||
_080792C0: .4byte sub_800C300
|
||||
_080792C4: .4byte sub_8078C24
|
||||
thumb_func_end sub_80791C0
|
||||
|
||||
thumb_func_start sub_80792C8
|
||||
sub_80792C8: @ 80792C8
|
||||
push {r4,r5,lr}
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
.section .rodata
|
||||
.align 2
|
||||
gUnknown_83BF64C:: @ 83BF64C
|
||||
.incbin "data/graphics/title_screen/unk_83bf64c.4bpp.lz"
|
||||
|
||||
gUnknown_83BF77C::
|
||||
.incbin "data/graphics/title_screen/unk_83bf77c.gbapal"
|
||||
|
||||
gUnknown_83BF79C::
|
||||
.incbin "data/graphics/title_screen/unk_83bf79c.4bpp.lz"
|
||||
|
||||
gUnknown_83BFA14::
|
||||
.incbin "data/graphics/title_screen/unk_83bfa14.4bpp.lz"
|
||||
|
||||
gOamData_83BFAB4::
|
||||
.4byte 0x40000000, 0x00000c00
|
||||
|
||||
gSpriteAnims_83BFABC::
|
||||
obj_image_anim_frame 0x0, 0x3
|
||||
obj_image_anim_frame 0x4, 0x6
|
||||
obj_image_anim_frame 0x8, 0x6
|
||||
obj_image_anim_frame 0xc, 0x6
|
||||
obj_image_anim_frame 0x10, 0x6
|
||||
obj_image_anim_frame 0x14, 0x6
|
||||
obj_image_anim_frame 0x18, 0x6
|
||||
obj_image_anim_frame 0x1c, 0x6
|
||||
obj_image_anim_frame 0x20, 0x6
|
||||
obj_image_anim_frame 0x24, 0x6
|
||||
obj_image_anim_end
|
||||
|
||||
gSpriteAnims_83BFAE8::
|
||||
obj_image_anim_frame 0x18, 0x6
|
||||
obj_image_anim_frame 0x1c, 0x6
|
||||
obj_image_anim_frame 0x20, 0x6
|
||||
obj_image_anim_frame 0x24, 0x6
|
||||
obj_image_anim_end
|
||||
|
||||
gSpriteAnimTable_83BFAFC::
|
||||
.4byte gSpriteAnims_83BFABC
|
||||
.4byte gSpriteAnims_83BFAE8
|
||||
|
||||
gUnknown_83BFB04:: @ 83BFB04
|
||||
spr_template 0, 0, gOamData_83BFAB4, gSpriteAnimTable_83BFAFC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_83BFB1C:: @ 83BFB1C
|
||||
spr_template 1, 0, gOamData_83BFAB4, gSpriteAnimTable_83BFAFC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gOamData_83BFB34::
|
||||
.4byte 0xc0008000, 0x00000000
|
||||
|
||||
gUnknown_83BFB3C:: @ 83BFB3C
|
||||
spr_template 2, 2, gOamData_83BFB34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gOamData_83BFB54::
|
||||
.4byte 0xc0000800, 0x00000000
|
||||
|
||||
gUnknown_83BFB5C:: @ 83BFB5C
|
||||
spr_template 3, 2, gOamData_83BFB54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
gUnknown_83BFB74:: @ 83BFB74
|
||||
.4byte 0x000009f0
|
||||
.4byte 0x000011e5
|
||||
.4byte 0x000021da
|
||||
.4byte 0x000031cf
|
||||
|
||||
gUnknown_83BFB84:: @ 83BFB84
|
||||
.4byte sub_8078C9C
|
||||
.4byte sub_8078D24
|
||||
.4byte sub_8078DA4
|
||||
.4byte sub_8078FC4
|
||||
.4byte sub_80790CC
|
||||
.4byte sub_80791C0
|
||||
|
||||
gUnknown_83BFB9C:: @ 83BFB9C
|
||||
obj_tiles gUnknown_83BF79C, 0x500, 0
|
||||
obj_tiles gUnknown_83BFA14, 0x500, 1
|
||||
obj_tiles gUnknown_8EAE4A8, 0x400, 2
|
||||
obj_tiles gUnknown_83BF64C, 0x800, 3
|
||||
|
||||
gUnknown_83BFBBC:: @ 83BFBBC
|
||||
obj_pal gUnknown_83BF77C, 0
|
||||
obj_pal gUnknown_8EAE488, 2
|
||||
null_obj_pal
|
||||
|
||||
gUnknown_83BFBD4:: @ 83BFBD4
|
||||
.incbin "baserom.gba", 0x3BFBD4, 0xF
|
||||
@@ -961,4 +961,17 @@ extern const u8 gFile_graphics_items_icon_palettes_sapphire_palette[];
|
||||
extern const u8 gFile_graphics_items_icons_return_to_field_arrow_sheet[];
|
||||
extern const u8 gFile_graphics_items_icon_palettes_return_to_field_arrow_palette[];
|
||||
|
||||
// title_screen
|
||||
extern const u16 gUnknown_8EAB6C4[];
|
||||
extern const u8 gUnknown_8EAB8C4[];
|
||||
extern const u8 gUnknown_8EAD390[];
|
||||
extern const u16 gUnknown_8EAD5E8[];
|
||||
extern const u8 gUnknown_8EAD608[];
|
||||
extern const u8 gUnknown_8EADEE4[];
|
||||
extern const u16 gUnknown_8EAE094[];
|
||||
extern const u8 gUnknown_8EAE0B4[];
|
||||
extern const u8 gUnknown_8EAE374[];
|
||||
extern const u16 gUnknown_8EAE488[];
|
||||
extern const u8 gUnknown_8EAE4A8[];
|
||||
|
||||
#endif //GUARD_GRAPHICS_H
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_INTRO_H
|
||||
#define GUARD_INTRO_H
|
||||
|
||||
void sub_80EC864(void);
|
||||
|
||||
#endif //GUARD_INTRO_H
|
||||
@@ -66,6 +66,7 @@ void RestoreSerialTimer3IntrHandlers(void);
|
||||
void SetVBlankCounter1Ptr(u32 *ptr);
|
||||
void DisableVBlankCounter1(void);
|
||||
void StartTimer1(void);
|
||||
void SeedRngAndSetTrainerId(void);
|
||||
|
||||
extern const char RomHeaderGameCode[4];
|
||||
extern const char RomHeaderSoftwareVersion;
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#ifndef GUARD_MAIN_MENU_H
|
||||
#define GUARD_MAIN_MENU_H
|
||||
|
||||
void sub_800C300(void);
|
||||
|
||||
#endif //GUARD_MAIN_MENU_H
|
||||
@@ -71,7 +71,10 @@ void BlendPalettes(u32, u8, u16);
|
||||
void BlendPalettesUnfaded(u32, u8, u16);
|
||||
void sub_80716F8(const u16 *, u16 *, u16, u8);
|
||||
void TintPalette_GrayScale(u16 *, u16);
|
||||
void TintPalette_GrayScale2(u16 *, u16);
|
||||
void TintPalette_SepiaTone(u16 *, u16);
|
||||
void sub_80717A8(u32, s8, u8, u8, u16, u8, u8);
|
||||
bool32 sub_807185C(u8);
|
||||
|
||||
extern struct PaletteFadeControl gPaletteFade;
|
||||
|
||||
|
||||
@@ -407,7 +407,6 @@ SECTIONS {
|
||||
data/map_events.o(.rodata);
|
||||
data/battle_anim_status_effects.o(.rodata);
|
||||
src/title_screen.o(.rodata);
|
||||
data/title_screen.o(.rodata);
|
||||
data/field_weather.o(.rodata);
|
||||
data/data_835B488.o(.rodata);
|
||||
src/item_menu_icons.o(.rodata);
|
||||
|
||||
+451
-15
@@ -8,7 +8,32 @@
|
||||
#include "new_menu_helpers.h"
|
||||
#include "m4a.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "graphics.h"
|
||||
#include "help_system.h"
|
||||
#include "intro.h"
|
||||
#include "load_save.h"
|
||||
#include "sound.h"
|
||||
#include "new_game.h"
|
||||
#include "save.h"
|
||||
#include "main_menu.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/species.h"
|
||||
|
||||
enum TitleScreenScene
|
||||
{
|
||||
TITLESCREENSCENE_INIT = 0,
|
||||
TITLESCREENSCENE_FLASHSPRITE,
|
||||
TITLESCREENSCENE_FADEIN,
|
||||
TITLESCREENSCENE_RUN,
|
||||
TITLESCREENSCEEN_RESTART,
|
||||
TITLESCREENSCENE_CRY
|
||||
};
|
||||
|
||||
#if defined(FIRERED)
|
||||
#define TITLE_SPECIES SPECIES_CHARIZARD
|
||||
#elif defined(LEAFGREEN)
|
||||
#define TITLE_SPECIES SPECIES_VENUSAUR
|
||||
#endif
|
||||
|
||||
EWRAM_DATA u8 gUnknown_2037F30 = 0;
|
||||
|
||||
@@ -22,28 +47,190 @@ void sub_8078C9C(s16 * data);
|
||||
void sub_8078D24(s16 * data);
|
||||
void sub_8078DA4(s16 * data);
|
||||
void sub_8078FC4(s16 * data);
|
||||
void sub_80790A0(void);
|
||||
void sub_80790CC(s16 * data);
|
||||
void sub_80791C0(s16 * data);
|
||||
void sub_8079708(void);
|
||||
void sub_80792C8(u8 taskId);
|
||||
void sub_807941C(u8 taskId);
|
||||
void sub_8079528(void);
|
||||
void sub_8079550(s16 a0);
|
||||
void sub_8079620(void);
|
||||
void sub_8079648(void);
|
||||
void sub_80796CC(void);
|
||||
void sub_80796E8(void);
|
||||
void sub_8079708(void);
|
||||
void sub_8079840(u8 taskId);
|
||||
u32 sub_80799F0(void);
|
||||
void sub_8079A10(s16 a0);
|
||||
u8 sub_8079A40(void);
|
||||
void sub_8079A88(u8 spriteId);
|
||||
bool32 sub_8079AA8(u8 spriteId);
|
||||
|
||||
// bg3
|
||||
const u8 gUnknown_83BF58C[] = INCBIN_U8("data/graphics/title_screen/unk_83BF58C.4bpp.lz");
|
||||
const u8 gUnknown_83BF5A8[] = INCBIN_U8("data/graphics/title_screen/unk_83BF5A8.bin.lz");
|
||||
extern const struct BgTemplate gUnknown_83BFB74[4];
|
||||
extern const void (*const gUnknown_83BFB84[])(s16 * data);
|
||||
|
||||
/*graphics.h*/
|
||||
extern const u16 gUnknown_8EAB6C4[];
|
||||
extern const u8 gUnknown_8EAB8C4[];
|
||||
extern const u8 gUnknown_8EAD390[];
|
||||
extern const u16 gUnknown_8EAD5E8[];
|
||||
extern const u8 gUnknown_8EAD608[];
|
||||
extern const u8 gUnknown_8EADEE4[];
|
||||
extern const u16 gUnknown_8EAE094[];
|
||||
extern const u8 gUnknown_8EAE0B4[];
|
||||
extern const u8 gUnknown_8EAE374[];
|
||||
//sprites
|
||||
const u8 gUnknown_83BF64C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf64c.4bpp.lz");
|
||||
const u16 gUnknown_83BF77C[] = INCBIN_U16("data/graphics/title_screen/unk_83bf77c.gbapal");
|
||||
const u8 gUnknown_83BF79C[] = INCBIN_U8("data/graphics/title_screen/unk_83bf79c.4bpp.lz");
|
||||
const u8 gUnknown_83BFA14[] = INCBIN_U8("data/graphics/title_screen/unk_83bfa14.4bpp.lz");
|
||||
|
||||
const struct OamData gOamData_83BFAB4 = {
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.shape = ST_OAM_SQUARE,
|
||||
.size = ST_OAM_SIZE_1,
|
||||
.tileNum = 0,
|
||||
.priority = 3,
|
||||
.paletteNum = 0
|
||||
};
|
||||
|
||||
const union AnimCmd gSpriteAnims_83BFABC[] = {
|
||||
ANIMCMD_FRAME(0x00, 3),
|
||||
ANIMCMD_FRAME(0x04, 6),
|
||||
ANIMCMD_FRAME(0x08, 6),
|
||||
ANIMCMD_FRAME(0x0c, 6),
|
||||
ANIMCMD_FRAME(0x10, 6),
|
||||
ANIMCMD_FRAME(0x14, 6),
|
||||
ANIMCMD_FRAME(0x18, 6),
|
||||
ANIMCMD_FRAME(0x1c, 6),
|
||||
ANIMCMD_FRAME(0x20, 6),
|
||||
ANIMCMD_FRAME(0x24, 6),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd gSpriteAnims_83BFAE8[] = {
|
||||
ANIMCMD_FRAME(0x18, 6),
|
||||
ANIMCMD_FRAME(0x1c, 6),
|
||||
ANIMCMD_FRAME(0x20, 6),
|
||||
ANIMCMD_FRAME(0x24, 6),
|
||||
ANIMCMD_END
|
||||
};
|
||||
|
||||
const union AnimCmd *const gSpriteAnimTable_83BFAFC[] = {
|
||||
gSpriteAnims_83BFABC,
|
||||
gSpriteAnims_83BFAE8
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83BFB04 = {
|
||||
.tileTag = 0,
|
||||
.paletteTag = 0,
|
||||
.oam = &gOamData_83BFAB4,
|
||||
.anims = gSpriteAnimTable_83BFAFC,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83BFB1C = {
|
||||
.tileTag = 1,
|
||||
.paletteTag = 0,
|
||||
.oam = &gOamData_83BFAB4,
|
||||
.anims = gSpriteAnimTable_83BFAFC,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct OamData gOamData_83BFB34 = {
|
||||
.objMode = ST_OAM_OBJ_NORMAL,
|
||||
.shape = ST_OAM_V_RECTANGLE,
|
||||
.size = ST_OAM_SIZE_3,
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83BFB3C = {
|
||||
.tileTag = 2,
|
||||
.paletteTag = 2,
|
||||
.oam = &gOamData_83BFB34,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct OamData gOamData_83BFB54 = {
|
||||
.objMode = ST_OAM_OBJ_WINDOW,
|
||||
.shape = ST_OAM_SQUARE,
|
||||
.size = ST_OAM_SIZE_3,
|
||||
.tileNum = 0,
|
||||
.priority = 0,
|
||||
.paletteNum = 0
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gUnknown_83BFB5C = {
|
||||
.tileTag = 3,
|
||||
.paletteTag = 2,
|
||||
.oam = &gOamData_83BFB54,
|
||||
.anims = gDummySpriteAnimTable,
|
||||
.images = NULL,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy
|
||||
};
|
||||
|
||||
const struct BgTemplate gUnknown_83BFB74[] = {
|
||||
{
|
||||
.bg = 0,
|
||||
.charBaseIndex = 0,
|
||||
.mapBaseIndex = 31,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 1, // 8bpp
|
||||
.priority = 0,
|
||||
.baseTile = 0
|
||||
}, {
|
||||
.bg = 1,
|
||||
.charBaseIndex = 1,
|
||||
.mapBaseIndex = 30,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0, // 4bpp
|
||||
.priority = 1,
|
||||
.baseTile = 0
|
||||
}, {
|
||||
.bg = 2,
|
||||
.charBaseIndex = 2,
|
||||
.mapBaseIndex = 29,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0, // 4bpp
|
||||
.priority = 2,
|
||||
.baseTile = 0
|
||||
}, {
|
||||
.bg = 3,
|
||||
.charBaseIndex = 3,
|
||||
.mapBaseIndex = 28,
|
||||
.screenSize = 0,
|
||||
.paletteMode = 0, // 4bpp
|
||||
.priority = 3,
|
||||
.baseTile = 0
|
||||
}
|
||||
};
|
||||
|
||||
void (*const gUnknown_83BFB84[])(s16 * data) = {
|
||||
sub_8078C9C,
|
||||
sub_8078D24,
|
||||
sub_8078DA4,
|
||||
sub_8078FC4,
|
||||
sub_80790CC,
|
||||
sub_80791C0
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gUnknown_83BFB9C[] = {
|
||||
{(const void *)gUnknown_83BF79C, 0x500, 0},
|
||||
{(const void *)gUnknown_83BFA14, 0x500, 1},
|
||||
{(const void *)gUnknown_8EAE4A8, 0x400, 2},
|
||||
{(const void *)gUnknown_83BF64C, 0x800, 3}
|
||||
};
|
||||
|
||||
const struct SpritePalette gUnknown_83BFBBC[] = {
|
||||
{gUnknown_83BF77C, 0},
|
||||
{gUnknown_8EAE488, 2},
|
||||
{}
|
||||
};
|
||||
|
||||
const u8 gUnknown_83BFBD4[] = {
|
||||
0x04, 0x10, 0x1a, 0x20, 0x30, 0xc8, 0xd8, 0xe0, 0xe8, 0x3c, 0x4c, 0x5c, 0x6c, 0x80, 0x90
|
||||
};
|
||||
|
||||
void CB2_InitTitleScreen(void)
|
||||
{
|
||||
@@ -155,7 +342,7 @@ void sub_8078C24(u8 taskId)
|
||||
sub_8079620();
|
||||
sub_8079648();
|
||||
sub_8079A10(data[5]);
|
||||
sub_8078C90(data, 3);
|
||||
sub_8078C90(data, TITLESCREENSCENE_RUN);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -188,5 +375,254 @@ void sub_8078C9C(s16 * data)
|
||||
|
||||
ScanlineEffect_SetParams(params);
|
||||
|
||||
sub_8078C90(data, 1);
|
||||
sub_8078C90(data, TITLESCREENSCENE_FLASHSPRITE);
|
||||
}
|
||||
|
||||
void sub_8078D24(s16 * data)
|
||||
{
|
||||
switch (data[1])
|
||||
{
|
||||
case 0:
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG1 | BLDCNT_EFFECT_LIGHTEN);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
data[2] = 0x80;
|
||||
sub_8079550(0x80);
|
||||
data[1]++;
|
||||
break;
|
||||
case 1:
|
||||
data[2] -= 4;
|
||||
sub_8079550(data[2]);
|
||||
if (data[2] < 0)
|
||||
{
|
||||
gScanlineEffect.state = 3;
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 0);
|
||||
sub_8078C90(data, TITLESCREENSCENE_FADEIN);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_8078DA4(s16 * data)
|
||||
{
|
||||
u32 r4;
|
||||
switch (data[1])
|
||||
{
|
||||
case 0:
|
||||
data[2] = 0;
|
||||
data[1]++;
|
||||
break;
|
||||
case 1:
|
||||
data[2]++;
|
||||
if (data[2] > 10)
|
||||
{
|
||||
TintPalette_GrayScale2(gPlttBufferUnfaded + 0xD0, 0x10);
|
||||
BeginNormalPaletteFade(0x00002000, 9, 0x10, 0, RGB_BLACK);
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
data[2] = 0;
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
data[2]++;
|
||||
if (data[2] > 36)
|
||||
{
|
||||
CreateTask(sub_80792C8, 3);
|
||||
sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0);
|
||||
data[2] = 0;
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (!sub_807185C(0))
|
||||
{
|
||||
sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0);
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
data[2]++;
|
||||
if (data[2] > 20)
|
||||
{
|
||||
data[2] = 0;
|
||||
sub_80717A8(0x2000, -4, 0x01, 0x10, RGB(30, 30, 31), 0, 0);
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
if (!sub_807185C(0))
|
||||
{
|
||||
sub_80717A8(0x2000, -4, 0x0F, 0x00, RGB(30, 30, 31), 0, 0);
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
data[2]++;
|
||||
if (data[2] > 20)
|
||||
{
|
||||
data[2] = 0;
|
||||
sub_80717A8(0x2000, -3, 0x00, 0x10, RGB(30, 30, 31), 0, 0);
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (!sub_807185C(0))
|
||||
{
|
||||
data[5] = 1;
|
||||
r4 = (0x10000 << sub_80799F0()) | 0x00001FFF;
|
||||
BlendPalettes(r4, 0x10, RGB(30, 30, 31));
|
||||
BeginNormalPaletteFade(r4, 1, 0x10, 0x00, RGB(30, 30, 31));
|
||||
ShowBg(0);
|
||||
CpuCopy16(gUnknown_8EAD5E8, gPlttBufferUnfaded + 0xD0, 0x20);
|
||||
sub_80717A8(0x2000, 1, 0x0F, 0x00, RGB(30, 30, 31), 0, 0);
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
if (!sub_807185C(0) && !gPaletteFade.active)
|
||||
{
|
||||
sub_8078C90(data, TITLESCREENSCENE_RUN);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
#define KEYSTROKE_DELSAVE (B_BUTTON | SELECT_BUTTON | DPAD_UP)
|
||||
#define KEYSTROKE_BERRY_FIX (B_BUTTON | SELECT_BUTTON)
|
||||
|
||||
void sub_8078FC4(s16 * data)
|
||||
{
|
||||
switch (data[1])
|
||||
{
|
||||
case 0:
|
||||
HelpSystem_SetSomeVariable2(1);
|
||||
CreateTask(sub_807941C, 0);
|
||||
CreateTask(sub_8079840, 5);
|
||||
sub_80790A0();
|
||||
data[6] = sub_8079A40();
|
||||
sub_812B484();
|
||||
data[1]++;
|
||||
// fallthrough
|
||||
case 1:
|
||||
if (JOY_HELD(KEYSTROKE_DELSAVE) == KEYSTROKE_DELSAVE)
|
||||
{
|
||||
sub_8079A88(data[6]);
|
||||
DestroyTask(FindTaskIdByFunc(sub_8078C24));
|
||||
SetMainCallback2(sub_80796CC);
|
||||
}
|
||||
else if (JOY_HELD(KEYSTROKE_BERRY_FIX) == KEYSTROKE_BERRY_FIX)
|
||||
{
|
||||
sub_8079A88(data[6]);
|
||||
DestroyTask(FindTaskIdByFunc(sub_8078C24));
|
||||
SetMainCallback2(sub_80796E8);
|
||||
}
|
||||
else if (JOY_NEW(A_BUTTON | START_BUTTON))
|
||||
{
|
||||
sub_8078C90(data, TITLESCREENSCENE_CRY);
|
||||
}
|
||||
else if (!FuncIsActiveTask(sub_8078BEC))
|
||||
{
|
||||
sub_8078C90(data, TITLESCREENSCEEN_RESTART);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80790A0(void)
|
||||
{
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJWIN_ON);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, WIN_RANGE(0x3F, 0x1F));
|
||||
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 | BLDCNT_EFFECT_LIGHTEN);
|
||||
SetGpuReg(REG_OFFSET_BLDY, 13);
|
||||
}
|
||||
|
||||
void sub_80790CC(s16 * data)
|
||||
{
|
||||
switch (data[1])
|
||||
{
|
||||
case 0:
|
||||
sub_8079A88(data[6]);
|
||||
data[1]++;
|
||||
break;
|
||||
case 1:
|
||||
if (!gPaletteFade.active && !sub_8079AA8(data[6]))
|
||||
{
|
||||
FadeOutMapMusic(10);
|
||||
BeginNormalPaletteFade(0xFFFFFFFF, 3, 0, 0x10, RGB_BLACK);
|
||||
sub_8079528();
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (IsNotWaitingForBGMStop() && !gPaletteFade.active)
|
||||
{
|
||||
DestroyTask(FindTaskIdByFunc(sub_807941C));
|
||||
data[2] = 0;
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
data[2]++;
|
||||
if (data[2] >= 20)
|
||||
{
|
||||
DestroyTask(FindTaskIdByFunc(sub_807941C));
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
sub_812B478();
|
||||
DestroyTask(FindTaskIdByFunc(sub_8078C24));
|
||||
SetMainCallback2(sub_80EC864);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80791C0(s16 * data)
|
||||
{
|
||||
switch (data[1])
|
||||
{
|
||||
case 0:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
PlayCry1(TITLE_SPECIES, 0);
|
||||
sub_8079A88(data[6]);
|
||||
data[2] = 0;
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
if (data[2] < 90)
|
||||
data[2]++;
|
||||
else if (!sub_8079AA8(data[6]))
|
||||
{
|
||||
BeginNormalPaletteFade(0x0FFFFFFF, 0, 0, 0x10, RGB_WHITE);
|
||||
sub_8079528();
|
||||
FadeOutBGM(4);
|
||||
data[1]++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
SeedRngAndSetTrainerId();
|
||||
SetSaveBlocksPointers();
|
||||
ResetMenuAndMonGlobals();
|
||||
Save_ResetSaveCounters();
|
||||
Save_LoadGameData(0);
|
||||
if (gSaveFileStatus == SAVE_STATUS_EMPTY || gSaveFileStatus == SAVE_STATUS_INVALID)
|
||||
Sav2_ClearSetDefault();
|
||||
SetPokemonCryStereo(gSaveBlock2Ptr->optionsSound);
|
||||
InitHeap(gHeap, HEAP_SIZE);
|
||||
SetMainCallback2(sub_800C300);
|
||||
DestroyTask(FindTaskIdByFunc(sub_8078C24));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user