intro: sub_80EDC40
This commit is contained in:
-575
@@ -5,581 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80ED898
|
||||
sub_80ED898: @ 80ED898
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x8
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0xF
|
||||
bls _080ED8A6
|
||||
b _080EDA98
|
||||
_080ED8A6:
|
||||
lsls r0, 2
|
||||
ldr r1, _080ED8B0 @ =_080ED8B4
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_080ED8B0: .4byte _080ED8B4
|
||||
.align 2, 0
|
||||
_080ED8B4:
|
||||
.4byte _080ED8F4
|
||||
.4byte _080ED8F8
|
||||
.4byte _080ED910
|
||||
.4byte _080ED918
|
||||
.4byte _080ED936
|
||||
.4byte _080ED946
|
||||
.4byte _080ED95E
|
||||
.4byte _080ED97C
|
||||
.4byte _080ED998
|
||||
.4byte _080ED9A0
|
||||
.4byte _080ED9BA
|
||||
.4byte _080ED9D2
|
||||
.4byte _080ED9DC
|
||||
.4byte _080EDA1C
|
||||
.4byte _080EDA5C
|
||||
.4byte _080EDA7C
|
||||
_080ED8F4:
|
||||
movs r0, 0
|
||||
b _080EDA6C
|
||||
_080ED8F8:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1E
|
||||
bhi _080ED908
|
||||
b _080EDAC4
|
||||
_080ED908:
|
||||
adds r0, r4, 0
|
||||
bl sub_80EE5E4
|
||||
b _080EDA6E
|
||||
_080ED910:
|
||||
adds r0, r4, 0
|
||||
bl sub_80EE850
|
||||
b _080EDA64
|
||||
_080ED918:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1E
|
||||
bhi _080ED928
|
||||
b _080EDAC4
|
||||
_080ED928:
|
||||
bl sub_80ED760
|
||||
adds r0, r4, 0
|
||||
bl sub_80EDF94
|
||||
movs r0, 0
|
||||
b _080EDA6C
|
||||
_080ED936:
|
||||
ldrb r0, [r4, 0x6]
|
||||
cmp r0, 0
|
||||
bne _080ED93E
|
||||
b _080EDAC4
|
||||
_080ED93E:
|
||||
adds r0, r4, 0
|
||||
bl sub_80EE6A4
|
||||
b _080EDA6E
|
||||
_080ED946:
|
||||
adds r0, r4, 0
|
||||
bl sub_80EE850
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0
|
||||
beq _080ED956
|
||||
b _080EDAC4
|
||||
_080ED956:
|
||||
bl sub_80ED788
|
||||
strh r5, [r4, 0x12]
|
||||
b _080EDA6E
|
||||
_080ED95E:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x10
|
||||
bhi _080ED96E
|
||||
b _080EDAC4
|
||||
_080ED96E:
|
||||
ldr r0, [r4, 0x18]
|
||||
movs r1, 0x8
|
||||
movs r2, 0xC
|
||||
movs r3, 0x5
|
||||
bl sub_80EE970
|
||||
b _080EDA6E
|
||||
_080ED97C:
|
||||
adds r0, r4, 0
|
||||
bl sub_80EE850
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080ED98A
|
||||
b _080EDAC4
|
||||
_080ED98A:
|
||||
ldr r0, [r4, 0x18]
|
||||
movs r1, 0x8
|
||||
movs r2, 0xC
|
||||
movs r3, 0x5
|
||||
bl sub_80EE970
|
||||
b _080EDA6E
|
||||
_080ED998:
|
||||
adds r0, r4, 0
|
||||
bl sub_80EE850
|
||||
b _080EDA64
|
||||
_080ED9A0:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x14
|
||||
bhi _080ED9B0
|
||||
b _080EDAC4
|
||||
_080ED9B0:
|
||||
adds r0, r4, 0
|
||||
bl sub_80EEA94
|
||||
movs r0, 0
|
||||
b _080EDA6C
|
||||
_080ED9BA:
|
||||
bl sub_80ED7B0
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _080ED9C6
|
||||
b _080EDAC4
|
||||
_080ED9C6:
|
||||
bl sub_80ED760
|
||||
adds r0, r4, 0
|
||||
bl sub_80EDAF0
|
||||
b _080EDA6E
|
||||
_080ED9D2:
|
||||
movs r0, 0
|
||||
bl HideBg
|
||||
movs r0, 0
|
||||
b _080EDA6C
|
||||
_080ED9DC:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x30
|
||||
bne _080ED9FA
|
||||
ldr r0, _080EDA18 @ =0x00007fff
|
||||
str r0, [sp]
|
||||
movs r0, 0x6
|
||||
movs r1, 0x2
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
_080ED9FA:
|
||||
ldrh r0, [r4, 0x12]
|
||||
cmp r0, 0x78
|
||||
bls _080EDAC4
|
||||
adds r0, r4, 0
|
||||
bl sub_80EDB70
|
||||
adds r0, r4, 0
|
||||
bl sub_80EDBAC
|
||||
ldrb r0, [r4, 0x4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4, 0x4]
|
||||
movs r0, 0
|
||||
b _080EDAC2
|
||||
.align 2, 0
|
||||
_080EDA18: .4byte 0x00007fff
|
||||
_080EDA1C:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x8
|
||||
bls _080EDAC4
|
||||
add r1, sp, 0x4
|
||||
ldr r2, _080EDA50 @ =0x00007fff
|
||||
adds r0, r2, 0
|
||||
strh r0, [r1]
|
||||
ldr r1, _080EDA54 @ =gPlttBufferUnfaded + 0x20
|
||||
ldr r2, _080EDA58 @ =0x01000020
|
||||
add r0, sp, 0x4
|
||||
bl CpuSet
|
||||
movs r1, 0x2
|
||||
negs r1, r1
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
adds r0, r1, 0
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
b _080EDA6E
|
||||
.align 2, 0
|
||||
_080EDA50: .4byte 0x00007fff
|
||||
_080EDA54: .4byte gPlttBufferUnfaded + 0x20
|
||||
_080EDA58: .4byte 0x01000020
|
||||
_080EDA5C:
|
||||
ldr r0, _080EDA78 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
_080EDA64:
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0
|
||||
bne _080EDAC4
|
||||
_080EDA6C:
|
||||
strh r0, [r4, 0x12]
|
||||
_080EDA6E:
|
||||
ldrb r0, [r4, 0x4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4, 0x4]
|
||||
b _080EDAC4
|
||||
.align 2, 0
|
||||
_080EDA78: .4byte gPaletteFade
|
||||
_080EDA7C:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x3C
|
||||
bls _080EDAC4
|
||||
ldr r1, _080EDA94 @ =sub_80EDBE8
|
||||
adds r0, r4, 0
|
||||
bl sub_80ECAA8
|
||||
b _080EDAC4
|
||||
.align 2, 0
|
||||
_080EDA94: .4byte sub_80EDBE8
|
||||
_080EDA98:
|
||||
ldr r0, _080EDACC @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080EDAC4
|
||||
ldr r0, _080EDAD0 @ =0xffff0064
|
||||
ldr r2, _080EDAD4 @ =0x00007fff
|
||||
movs r1, 0
|
||||
bl BlendPalettes
|
||||
ldr r1, [r4, 0x18]
|
||||
movs r0, 0
|
||||
strh r0, [r1, 0x24]
|
||||
ldr r1, [r4, 0x18]
|
||||
movs r0, 0xB4
|
||||
strh r0, [r1, 0x20]
|
||||
movs r0, 0x1
|
||||
strb r0, [r4, 0x4]
|
||||
movs r0, 0x1E
|
||||
_080EDAC2:
|
||||
strh r0, [r4, 0x12]
|
||||
_080EDAC4:
|
||||
add sp, 0x8
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080EDACC: .4byte gMain
|
||||
_080EDAD0: .4byte 0xffff0064
|
||||
_080EDAD4: .4byte 0x00007fff
|
||||
thumb_func_end sub_80ED898
|
||||
|
||||
thumb_func_start sub_80EDAD8
|
||||
sub_80EDAD8: @ 80EDAD8
|
||||
push {lr}
|
||||
ldrb r3, [r0, 0x1]
|
||||
lsrs r1, r3, 6
|
||||
ldrb r2, [r0, 0x3]
|
||||
lsrs r2, 6
|
||||
lsls r3, 30
|
||||
lsrs r3, 30
|
||||
bl CalcCenterToCornerVec
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_80EDAD8
|
||||
|
||||
thumb_func_start sub_80EDAF0
|
||||
sub_80EDAF0: @ 80EDAF0
|
||||
push {r4-r7,lr}
|
||||
adds r7, r0, 0
|
||||
movs r5, 0
|
||||
_080EDAF6:
|
||||
movs r6, 0x1
|
||||
ands r6, r5
|
||||
lsls r1, r6, 1
|
||||
adds r1, r6
|
||||
lsls r1, 20
|
||||
lsrs r2, r5, 31
|
||||
adds r2, r5, r2
|
||||
asrs r2, 1
|
||||
lsls r2, 22
|
||||
movs r0, 0xC4
|
||||
lsls r0, 14
|
||||
adds r1, r0
|
||||
asrs r1, 16
|
||||
movs r0, 0x90
|
||||
lsls r0, 15
|
||||
adds r2, r0
|
||||
asrs r2, 16
|
||||
ldr r0, _080EDB68 @ =gUnknown_840BE4C
|
||||
movs r3, 0x8
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0x40
|
||||
beq _080EDB5C
|
||||
lsls r0, r1, 4
|
||||
adds r0, r1
|
||||
lsls r0, 2
|
||||
ldr r1, _080EDB6C @ =gSprites
|
||||
adds r4, r0, r1
|
||||
lsls r1, r5, 24
|
||||
lsrs r1, 24
|
||||
adds r0, r4, 0
|
||||
bl StartSpriteAnim
|
||||
lsls r1, r5, 2
|
||||
adds r0, r7, 0
|
||||
adds r0, 0x28
|
||||
adds r2, r0, r1
|
||||
str r4, [r2]
|
||||
cmp r6, 0
|
||||
beq _080EDB56
|
||||
ldrb r0, [r4, 0x1]
|
||||
movs r1, 0x3F
|
||||
ands r1, r0
|
||||
movs r0, 0x80
|
||||
orrs r1, r0
|
||||
strb r1, [r4, 0x1]
|
||||
_080EDB56:
|
||||
ldr r0, [r2]
|
||||
bl sub_80EDAD8
|
||||
_080EDB5C:
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x3
|
||||
ble _080EDAF6
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080EDB68: .4byte gUnknown_840BE4C
|
||||
_080EDB6C: .4byte gSprites
|
||||
thumb_func_end sub_80EDAF0
|
||||
|
||||
thumb_func_start sub_80EDB70
|
||||
sub_80EDB70: @ 80EDB70
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldr r1, [r4, 0x18]
|
||||
ldrh r0, [r1, 0x24]
|
||||
ldrh r2, [r1, 0x20]
|
||||
adds r0, r2
|
||||
strh r0, [r1, 0x20]
|
||||
ldr r1, [r4, 0x18]
|
||||
ldrh r0, [r1, 0x26]
|
||||
ldrh r2, [r1, 0x22]
|
||||
adds r0, r2
|
||||
strh r0, [r1, 0x22]
|
||||
ldr r0, [r4, 0x18]
|
||||
movs r1, 0
|
||||
movs r2, 0x2A
|
||||
bl sub_8007FFC
|
||||
ldr r0, [r4, 0x18]
|
||||
ldr r1, _080EDBA4 @ =SpriteCallbackDummy
|
||||
str r1, [r0, 0x1C]
|
||||
movs r1, 0x1
|
||||
bl StartSpriteAffineAnim
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080EDBA4: .4byte SpriteCallbackDummy
|
||||
thumb_func_end sub_80EDB70
|
||||
|
||||
thumb_func_start nullsub_83
|
||||
nullsub_83: @ 80EDBA8
|
||||
bx lr
|
||||
thumb_func_end nullsub_83
|
||||
|
||||
thumb_func_start sub_80EDBAC
|
||||
sub_80EDBAC: @ 80EDBAC
|
||||
push {r4-r7,lr}
|
||||
adds r7, r0, 0
|
||||
movs r6, 0
|
||||
ldr r5, _080EDBE0 @ =gUnknown_840BBB8
|
||||
_080EDBB4:
|
||||
lsls r0, r6, 2
|
||||
adds r4, r7, 0
|
||||
adds r4, 0x28
|
||||
adds r4, r0
|
||||
ldr r0, [r4]
|
||||
movs r1, 0x1
|
||||
bl StartSpriteAffineAnim
|
||||
ldr r0, [r4]
|
||||
ldr r1, _080EDBE4 @ =nullsub_83
|
||||
str r1, [r0, 0x1C]
|
||||
ldrb r1, [r5]
|
||||
ldrb r2, [r5, 0x1]
|
||||
bl sub_8007FFC
|
||||
adds r5, 0x2
|
||||
adds r6, 0x1
|
||||
cmp r6, 0x3
|
||||
ble _080EDBB4
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080EDBE0: .4byte gUnknown_840BBB8
|
||||
_080EDBE4: .4byte nullsub_83
|
||||
thumb_func_end sub_80EDBAC
|
||||
|
||||
thumb_func_start sub_80EDBE8
|
||||
sub_80EDBE8: @ 80EDBE8
|
||||
push {r4,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _080EDBF8
|
||||
cmp r0, 0x1
|
||||
beq _080EDC0C
|
||||
b _080EDC34
|
||||
_080EDBF8:
|
||||
movs r2, 0x80
|
||||
lsls r2, 3
|
||||
movs r0, 0
|
||||
movs r1, 0
|
||||
bl FillPalette
|
||||
ldrb r0, [r4, 0x4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4, 0x4]
|
||||
b _080EDC34
|
||||
_080EDC0C:
|
||||
bl FreeTempTileDataBuffersIfPossible
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080EDC34
|
||||
ldrb r0, [r4, 0x5]
|
||||
bl DestroyTask
|
||||
adds r0, r4, 0
|
||||
bl Free
|
||||
movs r0, 0x2
|
||||
bl DisableInterrupts
|
||||
movs r0, 0
|
||||
bl SetHBlankCallback
|
||||
ldr r0, _080EDC3C @ =CB2_InitTitleScreen
|
||||
bl SetMainCallback2
|
||||
_080EDC34:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080EDC3C: .4byte CB2_InitTitleScreen
|
||||
thumb_func_end sub_80EDBE8
|
||||
|
||||
thumb_func_start sub_80EDC40
|
||||
sub_80EDC40: @ 80EDC40
|
||||
push {r4-r6,lr}
|
||||
movs r5, 0
|
||||
ldr r4, _080EDCE4 @ =gUnknown_840BBC0
|
||||
_080EDC46:
|
||||
adds r0, r4, 0
|
||||
bl LoadCompressedSpriteSheet
|
||||
adds r4, 0x8
|
||||
adds r5, 0x1
|
||||
cmp r5, 0x4
|
||||
bls _080EDC46
|
||||
ldr r0, _080EDCE8 @ =gUnknown_840BBE8
|
||||
bl LoadSpritePalettes
|
||||
ldr r6, _080EDCEC @ =gUnknown_203AB0E
|
||||
movs r0, 0x60
|
||||
strh r0, [r6]
|
||||
ldr r5, _080EDCF0 @ =gUnknown_203AB10
|
||||
movs r0, 0x10
|
||||
strh r0, [r5]
|
||||
ldr r1, _080EDCF4 @ =gUnknown_203AB12
|
||||
movs r0, 0x7
|
||||
strh r0, [r1]
|
||||
ldr r0, _080EDCF8 @ =gUnknown_203AB14
|
||||
movs r2, 0x5
|
||||
strh r2, [r0]
|
||||
ldr r1, _080EDCFC @ =gUnknown_203AB16
|
||||
movs r0, 0x8
|
||||
strh r0, [r1]
|
||||
ldr r1, _080EDD00 @ =gUnknown_203AB18
|
||||
movs r0, 0x5A
|
||||
strh r0, [r1]
|
||||
ldr r1, _080EDD04 @ =gUnknown_203AB1A
|
||||
movs r0, 0x78
|
||||
strh r0, [r1]
|
||||
ldr r0, _080EDD08 @ =gUnknown_203AB1E
|
||||
movs r1, 0x1
|
||||
strh r1, [r0]
|
||||
ldr r0, _080EDD0C @ =gUnknown_203AB20
|
||||
strh r1, [r0]
|
||||
ldr r0, _080EDD10 @ =gUnknown_203AB22
|
||||
strh r2, [r0]
|
||||
ldr r0, _080EDD14 @ =gUnknown_203AB24
|
||||
strh r2, [r0]
|
||||
ldr r4, _080EDD18 @ =gUnknown_203AB28
|
||||
ldr r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _080EDCA2
|
||||
ldr r0, _080EDD1C @ =0x151b9245
|
||||
str r0, [r4]
|
||||
_080EDCA2:
|
||||
ldr r0, _080EDD20 @ =gUnknown_840BC6C
|
||||
movs r1, 0xF8
|
||||
movs r2, 0x37
|
||||
movs r3, 0
|
||||
bl CreateSprite
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
cmp r1, 0x40
|
||||
beq _080EDCDE
|
||||
ldr r0, _080EDD24 @ =gSprites
|
||||
lsls r3, r1, 4
|
||||
adds r3, r1
|
||||
lsls r3, 2
|
||||
adds r2, r3, r0
|
||||
movs r1, 0xF8
|
||||
lsls r1, 4
|
||||
strh r1, [r2, 0x2E]
|
||||
movs r1, 0xDC
|
||||
lsls r1, 2
|
||||
strh r1, [r2, 0x30]
|
||||
ldrh r1, [r6]
|
||||
strh r1, [r2, 0x32]
|
||||
ldrh r1, [r5]
|
||||
strh r1, [r2, 0x34]
|
||||
adds r0, r3
|
||||
adds r0, 0x3A
|
||||
ldr r1, [r4]
|
||||
bl StoreWordInTwoHalfwords
|
||||
_080EDCDE:
|
||||
pop {r4-r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080EDCE4: .4byte gUnknown_840BBC0
|
||||
_080EDCE8: .4byte gUnknown_840BBE8
|
||||
_080EDCEC: .4byte gUnknown_203AB0E
|
||||
_080EDCF0: .4byte gUnknown_203AB10
|
||||
_080EDCF4: .4byte gUnknown_203AB12
|
||||
_080EDCF8: .4byte gUnknown_203AB14
|
||||
_080EDCFC: .4byte gUnknown_203AB16
|
||||
_080EDD00: .4byte gUnknown_203AB18
|
||||
_080EDD04: .4byte gUnknown_203AB1A
|
||||
_080EDD08: .4byte gUnknown_203AB1E
|
||||
_080EDD0C: .4byte gUnknown_203AB20
|
||||
_080EDD10: .4byte gUnknown_203AB22
|
||||
_080EDD14: .4byte gUnknown_203AB24
|
||||
_080EDD18: .4byte gUnknown_203AB28
|
||||
_080EDD1C: .4byte 0x151b9245
|
||||
_080EDD20: .4byte gUnknown_840BC6C
|
||||
_080EDD24: .4byte gSprites
|
||||
thumb_func_end sub_80EDC40
|
||||
|
||||
thumb_func_start sub_80EDD28
|
||||
sub_80EDD28: @ 80EDD28
|
||||
push {r4-r7,lr}
|
||||
|
||||
+281
-4
@@ -14,6 +14,9 @@
|
||||
#include "save.h"
|
||||
#include "sound.h"
|
||||
#include "new_game.h"
|
||||
#include "title_screen.h"
|
||||
#include "decompress.h"
|
||||
#include "util.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
struct IntroSequenceData
|
||||
@@ -21,17 +24,18 @@ struct IntroSequenceData
|
||||
void (*field_0000)(struct IntroSequenceData *);
|
||||
u8 field_0004;
|
||||
u8 field_0005;
|
||||
u8 filler_0006[2];
|
||||
u8 field_0006;
|
||||
u16 field_0008;
|
||||
u16 field_000A;
|
||||
u8 field_000C[6];
|
||||
u8 filler_000C[6];
|
||||
u16 field_0012;
|
||||
struct Sprite * field_0014;
|
||||
struct Sprite * field_0018;
|
||||
struct Sprite * field_001C;
|
||||
struct Sprite * field_0020;
|
||||
struct Sprite * field_0024;
|
||||
u8 filler_0028[0x14];
|
||||
struct Sprite * field_0028[4];
|
||||
u8 filler_0038[0x4];
|
||||
u8 field_003C[0x400];
|
||||
u8 field_043C[0x400];
|
||||
u8 filler_083C[0x2080];
|
||||
@@ -40,6 +44,27 @@ struct IntroSequenceData
|
||||
EWRAM_DATA struct GcmbStruct gUnknown_203AAD4 = {0};
|
||||
EWRAM_DATA u16 gUnknown_203AB00 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB02 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB04 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB06 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB08 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB0A = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB0C = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB0E = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB10 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB12 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB14 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB16 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB18 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB1A = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB1C = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB1E = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB20 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB22 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB24 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB26 = 0;
|
||||
EWRAM_DATA u32 gUnknown_203AB28 = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB2C = 0;
|
||||
EWRAM_DATA u16 gUnknown_203AB2E = 0;
|
||||
|
||||
void sub_80EC870(void);
|
||||
void sub_80EC9D4(void);
|
||||
@@ -68,12 +93,15 @@ void sub_80ED714(u8 taskId);
|
||||
void sub_80ED7D4(struct IntroSequenceData * ptr);
|
||||
void sub_80ED818(struct Sprite * sprite);
|
||||
void sub_80ED898(struct IntroSequenceData * ptr);
|
||||
void sub_80EDAF0(struct IntroSequenceData * ptr);
|
||||
void sub_80EDB70(struct IntroSequenceData * ptr);
|
||||
void sub_80EDBAC(struct IntroSequenceData * ptr);
|
||||
void sub_80EDBE8(struct IntroSequenceData * ptr);
|
||||
void sub_80ED40C(u8 taskId);
|
||||
void sub_80EDC40(void);
|
||||
void sub_80EDDF0(void);
|
||||
void sub_80EDED8(void);
|
||||
struct Sprite * sub_80EDF68(void);
|
||||
void sub_80EDF94(struct IntroSequenceData * ptr);
|
||||
void sub_80EE1C4(struct Sprite * sprite);
|
||||
void sub_80EE200(u8 taskId);
|
||||
void sub_80EE29C(struct Sprite * sprite);
|
||||
@@ -82,7 +110,12 @@ void sub_80EE4DC(struct Sprite * sprite);
|
||||
void sub_80EE4F8(struct IntroSequenceData * ptr);
|
||||
void sub_80EE528(struct Sprite * sprite, u16 a1, u16 a2, u16 a3);
|
||||
bool32 sub_80EE5C8(struct IntroSequenceData * ptr);
|
||||
void sub_80EE5E4(struct IntroSequenceData * ptr);
|
||||
void sub_80EE6A4(struct IntroSequenceData * ptr);
|
||||
bool8 sub_80EE850(struct IntroSequenceData * ptr);
|
||||
void sub_80EE8E4(struct Sprite * sprite);
|
||||
void sub_80EE970(struct Sprite * sprite, s16 a1, u16 a2, u8 a3);
|
||||
void sub_80EEA94(struct IntroSequenceData * ptr);
|
||||
void sub_80EEBE4(void);
|
||||
|
||||
extern const u32 gMultiBootProgram_PokemonColosseum_Start[];
|
||||
@@ -1205,3 +1238,247 @@ void sub_80ED818(struct Sprite * sprite)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80ED898(struct IntroSequenceData * this)
|
||||
{
|
||||
switch (this->field_0004)
|
||||
{
|
||||
case 0:
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
break;
|
||||
case 1:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 > 30)
|
||||
{
|
||||
sub_80EE5E4(this);
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (!sub_80EE850(this))
|
||||
{
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 > 30)
|
||||
{
|
||||
sub_80ED760();
|
||||
sub_80EDF94(this);
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 4:
|
||||
if (this->field_0006)
|
||||
{
|
||||
sub_80EE6A4(this);
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
if (!sub_80EE850(this))
|
||||
{
|
||||
sub_80ED788();
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 6:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 > 16)
|
||||
{
|
||||
sub_80EE970(this->field_0018, 8, 12, 5);
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
if (!sub_80EE850(this))
|
||||
{
|
||||
sub_80EE970(this->field_0018, 8, 12, 5);
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
if (!sub_80EE850(this))
|
||||
{
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 9:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 > 20)
|
||||
{
|
||||
sub_80EEA94(this);
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 10:
|
||||
if (!sub_80ED7B0())
|
||||
{
|
||||
sub_80ED760();
|
||||
sub_80EDAF0(this);
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 11:
|
||||
HideBg(0);
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
break;
|
||||
case 12:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 == 48)
|
||||
BeginNormalPaletteFade(0x00000006, 2, 0, 16, RGB_WHITE);
|
||||
if (this->field_0012 > 120)
|
||||
{
|
||||
sub_80EDB70(this);
|
||||
sub_80EDBAC(this);
|
||||
this->field_0004++;
|
||||
this->field_0012 = 0;
|
||||
}
|
||||
break;
|
||||
case 13:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 > 8)
|
||||
{
|
||||
CpuFill16(RGB_WHITE, gPlttBufferUnfaded + 16, 64);
|
||||
BeginNormalPaletteFade(0xFFFFFFFE, -2, 0, 16, RGB_BLACK);
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 14:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 15:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 > 60)
|
||||
sub_80ECAA8(this, sub_80EDBE8);
|
||||
break;
|
||||
default:
|
||||
if (JOY_NEW(R_BUTTON))
|
||||
{
|
||||
BlendPalettes(0xFFFF0064, 0, RGB_WHITE);
|
||||
this->field_0018->pos2.x = 0;
|
||||
this->field_0018->pos1.x = 0xB4;
|
||||
this->field_0004 = 1;
|
||||
this->field_0012 = 30;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80EDAD8(struct Sprite * sprite)
|
||||
{
|
||||
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
|
||||
}
|
||||
|
||||
void sub_80EDAF0(struct IntroSequenceData * this)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
int x = (i & 1) * 48 + 49;
|
||||
int y = (i / 2) * 64 + 72;
|
||||
u8 spriteId = CreateSprite(&gUnknown_840BE4C, x, y, 8);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
StartSpriteAnim(&gSprites[spriteId], i);
|
||||
this->field_0028[i] = &gSprites[spriteId];
|
||||
if (i & 1)
|
||||
this->field_0028[i]->oam.shape = ST_OAM_V_RECTANGLE;
|
||||
sub_80EDAD8(this->field_0028[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80EDB70(struct IntroSequenceData * this)
|
||||
{
|
||||
this->field_0018->pos1.x += this->field_0018->pos2.x;
|
||||
this->field_0018->pos1.y += this->field_0018->pos2.y;
|
||||
sub_8007FFC(this->field_0018, 0, 0x2A);
|
||||
this->field_0018->callback = SpriteCallbackDummy;
|
||||
StartSpriteAffineAnim(this->field_0018, 1);
|
||||
}
|
||||
|
||||
void nullsub_83(struct Sprite * sprite)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void sub_80EDBAC(struct IntroSequenceData * this)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
{
|
||||
StartSpriteAffineAnim(this->field_0028[i], 1);
|
||||
this->field_0028[i]->callback = nullsub_83;
|
||||
sub_8007FFC(this->field_0028[i], gUnknown_840BBB8[i][0], gUnknown_840BBB8[i][1]);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80EDBE8(struct IntroSequenceData * this)
|
||||
{
|
||||
switch (this->field_0004)
|
||||
{
|
||||
case 0:
|
||||
FillPalette(RGB_BLACK, 0, 0x400);
|
||||
this->field_0004++;
|
||||
break;
|
||||
case 1:
|
||||
if (!FreeTempTileDataBuffersIfPossible())
|
||||
{
|
||||
DestroyTask(this->field_0005);
|
||||
Free(this);
|
||||
DisableInterrupts(INTR_FLAG_HBLANK);
|
||||
SetHBlankCallback(NULL);
|
||||
SetMainCallback2(CB2_InitTitleScreen);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80EDC40(void)
|
||||
{
|
||||
int i;
|
||||
u8 spriteId;
|
||||
|
||||
for (i = 0; i < NELEMS(gUnknown_840BBC0); i++)
|
||||
{
|
||||
LoadCompressedSpriteSheet(&gUnknown_840BBC0[i]);
|
||||
}
|
||||
LoadSpritePalettes(gUnknown_840BBE8);
|
||||
gUnknown_203AB0E = 0x60;
|
||||
gUnknown_203AB10 = 0x10;
|
||||
gUnknown_203AB12 = 0x07;
|
||||
gUnknown_203AB14 = 0x05;
|
||||
gUnknown_203AB16 = 0x08;
|
||||
gUnknown_203AB18 = 0x5A;
|
||||
gUnknown_203AB1A = 0x78;
|
||||
gUnknown_203AB1E = 0x01;
|
||||
gUnknown_203AB20 = 0x01;
|
||||
gUnknown_203AB22 = 0x05;
|
||||
gUnknown_203AB24 = 0x05;
|
||||
if (gUnknown_203AB28 == 0)
|
||||
gUnknown_203AB28 = 0x151B9245;
|
||||
spriteId = CreateSprite(&gUnknown_840BC6C, 0xF8, 0x37, 0);
|
||||
if (spriteId != MAX_SPRITES)
|
||||
{
|
||||
gSprites[spriteId].data[0] = 0xF80;
|
||||
gSprites[spriteId].data[1] = 0x370;
|
||||
gSprites[spriteId].data[2] = gUnknown_203AB0E;
|
||||
gSprites[spriteId].data[3] = gUnknown_203AB10;
|
||||
StoreWordInTwoHalfwords(&gSprites[spriteId].data[6], gUnknown_203AB28);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-57
@@ -1114,63 +1114,7 @@ gUnknown_203AAC6: @ 203AAC6
|
||||
|
||||
.include "src/intro.o"
|
||||
|
||||
gUnknown_203AB04: @ 203AB04
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB06: @ 203AB06
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB08: @ 203AB08
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB0A: @ 203AB0A
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB0C: @ 203AB0C
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB0E: @ 203AB0E
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB10: @ 203AB10
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB12: @ 203AB12
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB14: @ 203AB14
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB16: @ 203AB16
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB18: @ 203AB18
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB1A: @ 203AB1A
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB1C: @ 203AB1C
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB1E: @ 203AB1E
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB20: @ 203AB20
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB22: @ 203AB22
|
||||
.space 0x2
|
||||
|
||||
gUnknown_203AB24: @ 203AB24
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203AB28: @ 203AB28
|
||||
.space 0x4
|
||||
|
||||
gUnknown_203AB2C: @ 203AB2C
|
||||
.space 0x4
|
||||
|
||||
.align 2
|
||||
gUnknown_203AB30: @ 203AB30
|
||||
.space 0x4
|
||||
|
||||
|
||||
Reference in New Issue
Block a user