mirror of
https://github.com/SAT-R/sa2.git
synced 2026-10-28 09:43:38 +00:00
more cut scenes
This commit is contained in:
1 parent
59353360df
commit
e44949878a
2 files changed
+96
-264
No files matched your search
@@ -4,269 +4,6 @@
|
||||
.syntax unified
|
||||
.arm
|
||||
|
||||
thumb_func_start sub_808EF38
|
||||
sub_808EF38: @ 0x0808EF38
|
||||
push {r4, r5, r6, r7, lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
ldr r0, _0808EFCC @ =gCurTask
|
||||
mov r8, r0
|
||||
ldr r0, [r0]
|
||||
ldrh r7, [r0, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x12
|
||||
adds r4, r7, r0
|
||||
ldr r1, _0808EFD0 @ =IWRAM_START + 0x40
|
||||
adds r5, r7, r1
|
||||
movs r6, #0
|
||||
movs r0, #1
|
||||
strh r0, [r5, #2]
|
||||
adds r0, r5, #0
|
||||
bl sub_802D4CC
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r3, r0, #0x18
|
||||
cmp r3, #1
|
||||
bne _0808EFF4
|
||||
strh r6, [r5, #4]
|
||||
ldr r5, _0808EFD4 @ =IWRAM_START + 0x50
|
||||
adds r2, r7, r5
|
||||
ldrb r0, [r2]
|
||||
adds r0, #1
|
||||
strb r0, [r2]
|
||||
adds r5, #1
|
||||
adds r1, r7, r5
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
ldrb r1, [r1]
|
||||
cmp r0, r1
|
||||
bhs _0808EFEC
|
||||
ldr r1, _0808EFD8 @ =gUnknown_080E1278
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0808EFC4
|
||||
ldr r0, _0808EFDC @ =0x06004000
|
||||
str r0, [r4, #4]
|
||||
strh r6, [r4, #0xa]
|
||||
ldr r0, _0808EFE0 @ =0x0600E000
|
||||
str r0, [r4, #0xc]
|
||||
strh r6, [r4, #0x18]
|
||||
strh r6, [r4, #0x1a]
|
||||
ldrb r0, [r2]
|
||||
lsls r0, r0, #1
|
||||
adds r0, r0, r1
|
||||
ldrh r0, [r0]
|
||||
strh r0, [r4, #0x1c]
|
||||
strh r6, [r4, #0x1e]
|
||||
strh r6, [r4, #0x20]
|
||||
strh r6, [r4, #0x22]
|
||||
strh r6, [r4, #0x24]
|
||||
movs r0, #0x1e
|
||||
strh r0, [r4, #0x26]
|
||||
movs r0, #0x14
|
||||
strh r0, [r4, #0x28]
|
||||
ldr r0, _0808EFE4 @ =IWRAM_START + 0x2A
|
||||
adds r1, r7, r0
|
||||
movs r0, #0
|
||||
strb r0, [r1]
|
||||
strh r3, [r4, #0x2e]
|
||||
adds r0, r4, #0
|
||||
bl sub_8002A3C
|
||||
_0808EFC4:
|
||||
mov r5, r8
|
||||
ldr r1, [r5]
|
||||
ldr r0, _0808EFE8 @ =sub_808F004
|
||||
b _0808EFF2
|
||||
.align 2, 0
|
||||
_0808EFCC: .4byte gCurTask
|
||||
_0808EFD0: .4byte IWRAM_START + 0x40
|
||||
_0808EFD4: .4byte IWRAM_START + 0x50
|
||||
_0808EFD8: .4byte gUnknown_080E1278
|
||||
_0808EFDC: .4byte 0x06004000
|
||||
_0808EFE0: .4byte 0x0600E000
|
||||
_0808EFE4: .4byte IWRAM_START + 0x2A
|
||||
_0808EFE8: .4byte sub_808F004
|
||||
_0808EFEC:
|
||||
mov r0, r8
|
||||
ldr r1, [r0]
|
||||
ldr r0, _0808F000 @ =sub_808F10C
|
||||
_0808EFF2:
|
||||
str r0, [r1, #8]
|
||||
_0808EFF4:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4, r5, r6, r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0808F000: .4byte sub_808F10C
|
||||
|
||||
thumb_func_start sub_808F004
|
||||
sub_808F004: @ 0x0808F004
|
||||
push {r4, lr}
|
||||
ldr r0, _0808F050 @ =gCurTask
|
||||
ldr r2, [r0]
|
||||
ldrh r0, [r2, #6]
|
||||
ldr r1, _0808F054 @ =IWRAM_START + 0x40
|
||||
adds r4, r0, r1
|
||||
movs r1, #2
|
||||
strh r1, [r4, #2]
|
||||
ldr r1, _0808F058 @ =IWRAM_START + 0x4D
|
||||
adds r0, r0, r1
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0808F02E
|
||||
ldr r0, _0808F05C @ =gPressedKeys
|
||||
ldrh r1, [r0]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808F02E
|
||||
ldr r0, _0808F060 @ =sub_808F0BC
|
||||
str r0, [r2, #8]
|
||||
_0808F02E:
|
||||
adds r0, r4, #0
|
||||
bl sub_802D4CC
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _0808F048
|
||||
movs r0, #0
|
||||
strh r0, [r4, #4]
|
||||
ldr r0, _0808F050 @ =gCurTask
|
||||
ldr r1, [r0]
|
||||
ldr r0, _0808F064 @ =sub_808F068
|
||||
str r0, [r1, #8]
|
||||
_0808F048:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0808F050: .4byte gCurTask
|
||||
_0808F054: .4byte IWRAM_START + 0x40
|
||||
_0808F058: .4byte IWRAM_START + 0x4D
|
||||
_0808F05C: .4byte gPressedKeys
|
||||
_0808F060: .4byte sub_808F0BC
|
||||
_0808F064: .4byte sub_808F068
|
||||
|
||||
thumb_func_start sub_808F068
|
||||
sub_808F068: @ 0x0808F068
|
||||
push {lr}
|
||||
ldr r2, _0808F084 @ =gCurTask
|
||||
ldr r3, [r2]
|
||||
ldrh r1, [r3, #6]
|
||||
movs r0, #0xc0
|
||||
lsls r0, r0, #0x12
|
||||
adds r1, r1, r0
|
||||
ldr r0, [r1, #0x54]
|
||||
cmp r0, #0
|
||||
beq _0808F088
|
||||
subs r0, #1
|
||||
str r0, [r1, #0x54]
|
||||
b _0808F090
|
||||
.align 2, 0
|
||||
_0808F084: .4byte gCurTask
|
||||
_0808F088:
|
||||
movs r0, #0x96
|
||||
str r0, [r1, #0x54]
|
||||
ldr r0, _0808F0B0 @ =sub_808EF38
|
||||
str r0, [r3, #8]
|
||||
_0808F090:
|
||||
adds r0, r1, #0
|
||||
adds r0, #0x4d
|
||||
ldrb r0, [r0]
|
||||
cmp r0, #0
|
||||
beq _0808F0AC
|
||||
ldr r0, _0808F0B4 @ =gPressedKeys
|
||||
ldrh r1, [r0]
|
||||
movs r0, #8
|
||||
ands r0, r1
|
||||
cmp r0, #0
|
||||
beq _0808F0AC
|
||||
ldr r1, [r2]
|
||||
ldr r0, _0808F0B8 @ =sub_808F0BC
|
||||
str r0, [r1, #8]
|
||||
_0808F0AC:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0808F0B0: .4byte sub_808EF38
|
||||
_0808F0B4: .4byte gPressedKeys
|
||||
_0808F0B8: .4byte sub_808F0BC
|
||||
|
||||
thumb_func_start sub_808F0BC
|
||||
sub_808F0BC: @ 0x0808F0BC
|
||||
push {r4, r5, r6, lr}
|
||||
ldr r6, _0808F0FC @ =gCurTask
|
||||
ldr r0, [r6]
|
||||
ldrh r5, [r0, #6]
|
||||
ldr r0, _0808F100 @ =IWRAM_START + 0x40
|
||||
adds r4, r5, r0
|
||||
movs r0, #1
|
||||
strh r0, [r4, #2]
|
||||
ldr r0, _0808F104 @ =gMPlayInfo_BGM
|
||||
movs r1, #0x18
|
||||
bl m4aMPlayFadeOutTemporarily
|
||||
adds r0, r4, #0
|
||||
bl sub_802D4CC
|
||||
lsls r0, r0, #0x18
|
||||
lsrs r0, r0, #0x18
|
||||
cmp r0, #1
|
||||
bne _0808F0F6
|
||||
movs r0, #0
|
||||
strh r0, [r4, #4]
|
||||
ldr r1, _0808F108 @ =IWRAM_START + 0x4C
|
||||
adds r0, r5, r1
|
||||
ldrb r0, [r0]
|
||||
bl sub_808F14C
|
||||
ldr r0, [r6]
|
||||
bl TaskDestroy
|
||||
_0808F0F6:
|
||||
pop {r4, r5, r6}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0808F0FC: .4byte gCurTask
|
||||
_0808F100: .4byte IWRAM_START + 0x40
|
||||
_0808F104: .4byte gMPlayInfo_BGM
|
||||
_0808F108: .4byte IWRAM_START + 0x4C
|
||||
|
||||
thumb_func_start sub_808F10C
|
||||
sub_808F10C: @ 0x0808F10C
|
||||
push {r4, lr}
|
||||
ldr r4, _0808F13C @ =gCurTask
|
||||
ldr r0, [r4]
|
||||
ldrh r1, [r0, #6]
|
||||
ldr r0, _0808F140 @ =IWRAM_START + 0x4F
|
||||
adds r2, r1, r0
|
||||
ldrb r0, [r2]
|
||||
adds r0, #1
|
||||
strb r0, [r2]
|
||||
ldr r3, _0808F144 @ =IWRAM_START + 0x4C
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
adds r3, #2
|
||||
adds r1, r1, r3
|
||||
ldrb r1, [r1]
|
||||
ldrb r2, [r2]
|
||||
bl sub_808EA50
|
||||
ldr r0, [r4]
|
||||
bl TaskDestroy
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_0808F13C: .4byte gCurTask
|
||||
_0808F140: .4byte IWRAM_START + 0x4F
|
||||
_0808F144: .4byte IWRAM_START + 0x4C
|
||||
|
||||
thumb_func_start sub_808F148
|
||||
sub_808F148: @ 0x0808F148
|
||||
bx lr
|
||||
.align 2, 0
|
||||
|
||||
@; CreateCreditsEnd
|
||||
thumb_func_start sub_808F14C
|
||||
sub_808F14C: @ 0x0808F14C
|
||||
|
||||
+96
-1
@@ -945,4 +945,99 @@ void sub_808ED60(u8 a, u8 b, u8 c)
|
||||
}
|
||||
}
|
||||
|
||||
// void sub_808EF38(void) { struct CreditsCutScene2 *scene = NULL; }
|
||||
void sub_808F10C(void);
|
||||
|
||||
void sub_808EF38(void)
|
||||
{
|
||||
struct CreditsCutScene2 *scene = TaskGetStructPtr(gCurTask);
|
||||
struct UNK_802D4CC_UNK270 *transitionConfig = &scene->unk40;
|
||||
|
||||
transitionConfig->unk2 = 1;
|
||||
if (sub_802D4CC(transitionConfig) == 1) {
|
||||
transitionConfig->unk4 = 0;
|
||||
scene->unk50++;
|
||||
|
||||
if (scene->unk50 < scene->unk51) {
|
||||
if (gUnknown_080E1278[scene->unk50] != 0) {
|
||||
struct Unk_03002400 *background = &scene->unk0;
|
||||
background->unk4 = BG_SCREEN_ADDR(8);
|
||||
background->unkA = 0;
|
||||
background->unkC = BG_SCREEN_ADDR(28);
|
||||
background->unk18 = 0;
|
||||
background->unk1A = 0;
|
||||
background->unk1C = gUnknown_080E1278[scene->unk50];
|
||||
background->unk1E = 0;
|
||||
background->unk20 = 0;
|
||||
background->unk22 = 0;
|
||||
background->unk24 = 0;
|
||||
background->unk26 = 0x1E;
|
||||
background->unk28 = 0x14;
|
||||
background->unk2A = 0;
|
||||
background->unk2E = 1;
|
||||
sub_8002A3C(background);
|
||||
}
|
||||
gCurTask->main = sub_808F004;
|
||||
} else {
|
||||
gCurTask->main = sub_808F10C;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sub_808F0BC(void);
|
||||
void sub_808F068(void);
|
||||
|
||||
void sub_808F004(void)
|
||||
{
|
||||
struct CreditsCutScene2 *scene = TaskGetStructPtr(gCurTask);
|
||||
struct UNK_802D4CC_UNK270 *transitionConfig = &scene->unk40;
|
||||
transitionConfig->unk2 = 2;
|
||||
|
||||
if (scene->unk4D != 0 && (gPressedKeys & START_BUTTON)) {
|
||||
gCurTask->main = sub_808F0BC;
|
||||
}
|
||||
|
||||
if (sub_802D4CC(transitionConfig) == 1) {
|
||||
transitionConfig->unk4 = 0;
|
||||
gCurTask->main = sub_808F068;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_808F068(void)
|
||||
{
|
||||
struct CreditsCutScene2 *scene = TaskGetStructPtr(gCurTask);
|
||||
|
||||
if (scene->unk54 != 0) {
|
||||
scene->unk54--;
|
||||
} else {
|
||||
scene->unk54 = 0x96;
|
||||
gCurTask->main = sub_808EF38;
|
||||
}
|
||||
|
||||
if (scene->unk4D != 0 && (gPressedKeys & START_BUTTON)) {
|
||||
gCurTask->main = sub_808F0BC;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_808F0BC(void)
|
||||
{
|
||||
struct CreditsCutScene2 *scene = TaskGetStructPtr(gCurTask);
|
||||
struct UNK_802D4CC_UNK270 *transitionConfig = &scene->unk40;
|
||||
transitionConfig->unk2 = 1;
|
||||
m4aMPlayFadeOutTemporarily(&gMPlayInfo_BGM, 24);
|
||||
|
||||
if (sub_802D4CC(transitionConfig) == 1) {
|
||||
transitionConfig->unk4 = 0;
|
||||
sub_808F14C(scene->unk4C);
|
||||
TaskDestroy(gCurTask);
|
||||
}
|
||||
}
|
||||
|
||||
void sub_808F10C(void)
|
||||
{
|
||||
struct CreditsCutScene2 *scene = TaskGetStructPtr(gCurTask);
|
||||
scene->unk4F++;
|
||||
sub_808EA50(scene->unk4C, scene->unk4E, scene->unk4F);
|
||||
TaskDestroy(gCurTask);
|
||||
}
|
||||
|
||||
void sub_808F148(UNUSED struct Task *t) { }
|
||||
Reference in new issue
Block a user