intro: through sub_80ECC3C
This commit is contained in:
-143
@@ -5,149 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_80ECB98
|
||||
sub_80ECB98: @ 80ECB98
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r5, [r4, 0x4]
|
||||
cmp r5, 0x1
|
||||
beq _080ECBE2
|
||||
cmp r5, 0x1
|
||||
bgt _080ECBAC
|
||||
cmp r5, 0
|
||||
beq _080ECBB2
|
||||
b _080ECC32
|
||||
_080ECBAC:
|
||||
cmp r5, 0x2
|
||||
beq _080ECBFC
|
||||
b _080ECC32
|
||||
_080ECBB2:
|
||||
movs r1, 0x80
|
||||
lsls r1, 7
|
||||
movs r0, 0
|
||||
bl SetGpuRegBits
|
||||
movs r1, 0xFC
|
||||
lsls r1, 6
|
||||
movs r0, 0x48
|
||||
bl SetGpuReg
|
||||
movs r0, 0x4A
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x42
|
||||
movs r1, 0xF0
|
||||
bl SetGpuReg
|
||||
movs r0, 0x46
|
||||
movs r1, 0
|
||||
bl SetGpuReg
|
||||
strh r5, [r4, 0x12]
|
||||
b _080ECBF4
|
||||
_080ECBE2:
|
||||
movs r0, 0x3
|
||||
bl ShowBg
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0
|
||||
movs r2, 0
|
||||
bl BlendPalettes
|
||||
_080ECBF4:
|
||||
ldrb r0, [r4, 0x4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4, 0x4]
|
||||
b _080ECC32
|
||||
_080ECBFC:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x8
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x2F
|
||||
bls _080ECC0E
|
||||
movs r0, 0x30
|
||||
strh r0, [r4, 0x12]
|
||||
_080ECC0E:
|
||||
ldrh r0, [r4, 0x12]
|
||||
movs r1, 0x50
|
||||
subs r1, r0
|
||||
lsls r1, 8
|
||||
adds r0, 0x50
|
||||
orrs r1, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
movs r0, 0x46
|
||||
bl SetGpuReg
|
||||
ldrh r0, [r4, 0x12]
|
||||
cmp r0, 0x30
|
||||
bne _080ECC32
|
||||
ldr r1, _080ECC38 @ =sub_80ECC3C
|
||||
adds r0, r4, 0
|
||||
bl sub_80ECAA8
|
||||
_080ECC32:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ECC38: .4byte sub_80ECC3C
|
||||
thumb_func_end sub_80ECB98
|
||||
|
||||
thumb_func_start sub_80ECC3C
|
||||
sub_80ECC3C: @ 80ECC3C
|
||||
push {r4,r5,lr}
|
||||
adds r4, r0, 0
|
||||
ldrb r5, [r4, 0x4]
|
||||
cmp r5, 0x1
|
||||
beq _080ECC68
|
||||
cmp r5, 0x1
|
||||
bgt _080ECC50
|
||||
cmp r5, 0
|
||||
beq _080ECC56
|
||||
b _080ECC9C
|
||||
_080ECC50:
|
||||
cmp r5, 0x2
|
||||
beq _080ECC86
|
||||
b _080ECC9C
|
||||
_080ECC56:
|
||||
ldr r0, _080ECC64 @ =0x00000141
|
||||
bl PlaySE
|
||||
bl sub_80EDC40
|
||||
strh r5, [r4, 0x12]
|
||||
b _080ECC7E
|
||||
.align 2, 0
|
||||
_080ECC64: .4byte 0x00000141
|
||||
_080ECC68:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x1E
|
||||
bne _080ECC9C
|
||||
bl sub_80EDDF0
|
||||
movs r0, 0
|
||||
strh r0, [r4, 0x12]
|
||||
_080ECC7E:
|
||||
ldrb r0, [r4, 0x4]
|
||||
adds r0, 0x1
|
||||
strb r0, [r4, 0x4]
|
||||
b _080ECC9C
|
||||
_080ECC86:
|
||||
ldrh r0, [r4, 0x12]
|
||||
adds r0, 0x1
|
||||
strh r0, [r4, 0x12]
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
cmp r0, 0x5A
|
||||
bne _080ECC9C
|
||||
ldr r1, _080ECCA4 @ =sub_80ECCA8
|
||||
adds r0, r4, 0
|
||||
bl sub_80ECAA8
|
||||
_080ECC9C:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080ECCA4: .4byte sub_80ECCA8
|
||||
thumb_func_end sub_80ECC3C
|
||||
|
||||
thumb_func_start sub_80ECCA8
|
||||
sub_80ECCA8: @ 80ECCA8
|
||||
push {r4,r5,lr}
|
||||
|
||||
+65
-1
@@ -12,14 +12,18 @@
|
||||
#include "link.h"
|
||||
#include "menu.h"
|
||||
#include "save.h"
|
||||
#include "sound.h"
|
||||
#include "new_game.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
struct IntroSequenceData
|
||||
{
|
||||
void (*field_0000)(struct IntroSequenceData *);
|
||||
u8 field_0004;
|
||||
u8 field_0005;
|
||||
u8 filler_0006[0x36];
|
||||
u8 filler_0006[0xC];
|
||||
u16 field_0012;
|
||||
u8 filler_0014[0x28];
|
||||
u8 field_003C[0x400];
|
||||
u8 field_043C[0x400];
|
||||
u8 filler_083C[0x2080];
|
||||
@@ -36,7 +40,11 @@ void sub_80ECAB0(u8 taskId);
|
||||
void sub_80ECAA8(struct IntroSequenceData * ptr, void (*cb)(struct IntroSequenceData *));
|
||||
void sub_80ECAF0(struct IntroSequenceData * ptr);
|
||||
void sub_80ECB98(struct IntroSequenceData * ptr);
|
||||
void sub_80ECC3C(struct IntroSequenceData * ptr);
|
||||
void sub_80ECCA8(struct IntroSequenceData * ptr);
|
||||
void sub_80EDBE8(struct IntroSequenceData * ptr);
|
||||
void sub_80EDC40(void);
|
||||
void sub_80EDDF0(void);
|
||||
|
||||
extern const u32 gMultiBootProgram_PokemonColosseum_Start[];
|
||||
|
||||
@@ -287,3 +295,59 @@ void sub_80ECAF0(struct IntroSequenceData * this)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80ECB98(struct IntroSequenceData * this)
|
||||
{
|
||||
switch (this->field_0004)
|
||||
{
|
||||
case 0:
|
||||
SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN1_ON);
|
||||
SetGpuReg(REG_OFFSET_WININ, 0x3F00);
|
||||
SetGpuReg(REG_OFFSET_WINOUT, 0x0000);
|
||||
SetGpuReg(REG_OFFSET_WIN1H, 0x00F0);
|
||||
SetGpuReg(REG_OFFSET_WIN1V, 0x0000);
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
break;
|
||||
case 1:
|
||||
ShowBg(3);
|
||||
BlendPalettes(0xFFFFFFFF, 0x00, RGB_BLACK);
|
||||
this->field_0004++;
|
||||
break;
|
||||
case 2:
|
||||
this->field_0012 += 8;
|
||||
if (this->field_0012 >= 0x30)
|
||||
this->field_0012 = 0x30;
|
||||
SetGpuReg(REG_OFFSET_WIN1V, ((0x50 - this->field_0012) << 8) | (0x50 + this->field_0012));
|
||||
if (this->field_0012 == 0x30)
|
||||
sub_80ECAA8(this, sub_80ECC3C);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80ECC3C(struct IntroSequenceData * this)
|
||||
{
|
||||
switch (this->field_0004)
|
||||
{
|
||||
case 0:
|
||||
PlaySE(BGM_FRLG_GAMEFREAK_LOGO);
|
||||
sub_80EDC40();
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
break;
|
||||
case 1:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 == 30)
|
||||
{
|
||||
sub_80EDDF0();
|
||||
this->field_0012 = 0;
|
||||
this->field_0004++;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
this->field_0012++;
|
||||
if (this->field_0012 == 90)
|
||||
sub_80ECAA8(this, sub_80ECCA8);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user