intro: sub_80EDC40

This commit is contained in:
PikalaxALT
2019-07-04 10:42:22 -04:00
parent 168109aa9e
commit 2f671f9bd2
3 changed files with 282 additions and 636 deletions
-575
View File
@@ -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
View File
@@ -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
View File
@@ -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