mirror of https://github.com/zeldaret/tmc.git
jp title screen ok
This commit is contained in:
parent
341ec8cdf6
commit
c650e7fcb2
|
@ -1,38 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start sub_080AD670
|
|
||||||
sub_080AD670: @ 0x080AD670
|
|
||||||
push {lr}
|
|
||||||
sub sp, #0x14
|
|
||||||
movs r0, #0x80
|
|
||||||
lsls r0, r0, #8
|
|
||||||
str r0, [sp, #4]
|
|
||||||
str r0, [sp]
|
|
||||||
mov r1, sp
|
|
||||||
movs r2, #0
|
|
||||||
movs r0, #0x78
|
|
||||||
strh r0, [r1, #8]
|
|
||||||
movs r0, #0x48
|
|
||||||
strh r0, [r1, #0xa]
|
|
||||||
mov r0, sp
|
|
||||||
strh r2, [r0, #0x10]
|
|
||||||
mov r2, sp
|
|
||||||
ldr r0, _080AD6A4 @ =gMenu
|
|
||||||
ldr r0, [r0, #0x2c]
|
|
||||||
strh r0, [r1, #0xc]
|
|
||||||
strh r0, [r2, #0xe]
|
|
||||||
ldr r1, _080AD6A8 @ =gBgControls
|
|
||||||
mov r0, sp
|
|
||||||
movs r2, #1
|
|
||||||
bl BgAffineSet
|
|
||||||
add sp, #0x14
|
|
||||||
pop {pc}
|
|
||||||
.align 2, 0
|
|
||||||
_080AD6A4: .4byte gMenu
|
|
||||||
_080AD6A8: .4byte gBgControls
|
|
|
@ -1,105 +0,0 @@
|
||||||
.include "asm/macros.inc"
|
|
||||||
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.syntax unified
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
thumb_func_start sub_080AD6AC
|
|
||||||
sub_080AD6AC: @ 0x080AD6AC
|
|
||||||
push {r4, r5, r6, lr}
|
|
||||||
ldr r4, _080AD6C0 @ =gMenu
|
|
||||||
ldrb r0, [r4, #6]
|
|
||||||
cmp r0, #1
|
|
||||||
beq _080AD724
|
|
||||||
cmp r0, #1
|
|
||||||
bgt _080AD6C4
|
|
||||||
cmp r0, #0
|
|
||||||
beq _080AD6CA
|
|
||||||
b _080AD76A
|
|
||||||
.align 2, 0
|
|
||||||
_080AD6C0: .4byte gMenu
|
|
||||||
_080AD6C4:
|
|
||||||
cmp r0, #2
|
|
||||||
beq _080AD758
|
|
||||||
b _080AD76A
|
|
||||||
_080AD6CA:
|
|
||||||
ldr r6, _080AD718 @ =gUnk_03000FD0
|
|
||||||
ldrb r5, [r6]
|
|
||||||
cmp r5, #0
|
|
||||||
bne _080AD76A
|
|
||||||
ldrb r1, [r4, #0x12]
|
|
||||||
movs r0, #1
|
|
||||||
ands r0, r1
|
|
||||||
cmp r0, #0
|
|
||||||
bne _080AD6E4
|
|
||||||
ldr r1, _080AD71C @ =gScreen
|
|
||||||
ldrh r0, [r1, #0x18]
|
|
||||||
adds r0, #1
|
|
||||||
strh r0, [r1, #0x18]
|
|
||||||
_080AD6E4:
|
|
||||||
bl sub_080AD84C
|
|
||||||
cmp r0, #2
|
|
||||||
beq _080AD6F4
|
|
||||||
ldr r0, _080AD71C @ =gScreen
|
|
||||||
ldrh r0, [r0, #0x18]
|
|
||||||
cmp r0, #0
|
|
||||||
bne _080AD76A
|
|
||||||
_080AD6F4:
|
|
||||||
ldrb r0, [r4, #6]
|
|
||||||
adds r0, #1
|
|
||||||
strb r0, [r4, #6]
|
|
||||||
ldr r1, _080AD71C @ =gScreen
|
|
||||||
strh r5, [r1, #0x18]
|
|
||||||
ldr r0, _080AD720 @ =0x00000C09
|
|
||||||
strh r0, [r1, #0x14]
|
|
||||||
movs r0, #0x40
|
|
||||||
str r0, [r6, #4]
|
|
||||||
movs r0, #6
|
|
||||||
movs r1, #0x10
|
|
||||||
bl DoFade
|
|
||||||
movs r0, #0xf8
|
|
||||||
bl PlaySFX
|
|
||||||
b _080AD76A
|
|
||||||
.align 2, 0
|
|
||||||
_080AD718: .4byte gUnk_03000FD0
|
|
||||||
_080AD71C: .4byte gScreen
|
|
||||||
_080AD720: .4byte 0x00000C09
|
|
||||||
_080AD724:
|
|
||||||
ldr r1, _080AD754 @ =gUnk_03000FD0
|
|
||||||
ldrb r5, [r1]
|
|
||||||
cmp r5, #0
|
|
||||||
bne _080AD76A
|
|
||||||
movs r0, #1
|
|
||||||
rsbs r0, r0, #0
|
|
||||||
str r0, [r1, #4]
|
|
||||||
ldrb r0, [r4, #6]
|
|
||||||
adds r0, #1
|
|
||||||
strb r0, [r4, #6]
|
|
||||||
movs r0, #0x5a
|
|
||||||
strh r0, [r4, #8]
|
|
||||||
movs r0, #0xb4
|
|
||||||
movs r1, #0
|
|
||||||
movs r2, #0
|
|
||||||
bl CreateObject
|
|
||||||
adds r1, r0, #0
|
|
||||||
cmp r1, #0
|
|
||||||
beq _080AD76A
|
|
||||||
strh r5, [r1, #0x2e]
|
|
||||||
movs r0, #0x48
|
|
||||||
strh r0, [r1, #0x32]
|
|
||||||
b _080AD76A
|
|
||||||
.align 2, 0
|
|
||||||
_080AD754: .4byte gUnk_03000FD0
|
|
||||||
_080AD758:
|
|
||||||
bl sub_080AD84C
|
|
||||||
cmp r0, #0
|
|
||||||
beq _080AD76A
|
|
||||||
ldrb r0, [r4, #5]
|
|
||||||
adds r0, #1
|
|
||||||
strb r0, [r4, #5]
|
|
||||||
movs r0, #0x3c
|
|
||||||
strh r0, [r4, #8]
|
|
||||||
_080AD76A:
|
|
||||||
pop {r4, r5, r6, pc}
|
|
|
@ -70,6 +70,7 @@ typedef struct {
|
||||||
BgControls controls;
|
BgControls controls;
|
||||||
} Screen;
|
} Screen;
|
||||||
|
|
||||||
|
extern BgControls gBgControls;
|
||||||
extern Screen gScreen;
|
extern Screen gScreen;
|
||||||
|
|
||||||
#endif
|
#endif
|
|
@ -883,9 +883,6 @@ SECTIONS {
|
||||||
src/sub_080A554C.o(.text);
|
src/sub_080A554C.o(.text);
|
||||||
asm/code_080A5574.o(.text);
|
asm/code_080A5574.o(.text);
|
||||||
src/introSetTransition.o(.text);
|
src/introSetTransition.o(.text);
|
||||||
src/sub_080AD644.o(.text);
|
|
||||||
asm/sub_080AD670.o(.text);
|
|
||||||
asm/sub_080AD6Ac.o(.text);
|
|
||||||
asm/sub_080AD76C.o(.text);
|
asm/sub_080AD76C.o(.text);
|
||||||
src/sub_080AD834.o(.text);
|
src/sub_080AD834.o(.text);
|
||||||
asm/sub_080AD84C.o(.text);
|
asm/sub_080AD84C.o(.text);
|
||||||
|
|
|
@ -7,7 +7,15 @@
|
||||||
|
|
||||||
extern void (*const gUnk_081320F0[])();
|
extern void (*const gUnk_081320F0[])();
|
||||||
|
|
||||||
extern u8 gUnk_03000FD0;
|
typedef struct {
|
||||||
|
u8 field_0x0;
|
||||||
|
u8 field_0x1;
|
||||||
|
u8 field_0x2;
|
||||||
|
u8 field_0x3;
|
||||||
|
u32 field_0x4;
|
||||||
|
} struct_03000FD0;
|
||||||
|
|
||||||
|
extern struct_03000FD0 gUnk_03000FD0;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
char header[4];
|
char header[4];
|
||||||
|
@ -45,7 +53,7 @@ void sub_080AD380()
|
||||||
gUnk_081320F0[gUnk_02032EC0.transitionType]();
|
gUnk_081320F0[gUnk_02032EC0.transitionType]();
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (gUnk_03000FD0 != 0) {
|
if (gUnk_03000FD0.field_0x0 != 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
sub_0801DA90(1);
|
sub_0801DA90(1);
|
||||||
|
@ -90,17 +98,13 @@ void sub_080AD3F4(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
// typedef struct {
|
||||||
u16 field_0x0;
|
// u16 field_0x0[5];
|
||||||
u16 field_0x2;
|
// } struct_03001010;
|
||||||
u16 field_0x4[2];
|
|
||||||
u16 field_0x8;
|
|
||||||
} struct_03001010;
|
|
||||||
|
|
||||||
extern struct_03001010 gUnk_03001010;
|
extern u16 gUnk_03001010[5];
|
||||||
|
|
||||||
extern u8 gUnk_02024490;
|
extern u8 gUnk_02024490;
|
||||||
extern u8 gUnk_03000FD0;
|
|
||||||
|
|
||||||
void sub_080AD474(void)
|
void sub_080AD474(void)
|
||||||
{
|
{
|
||||||
|
@ -146,11 +150,11 @@ void sub_080AD474(void)
|
||||||
sub_080AD670();
|
sub_080AD670();
|
||||||
}
|
}
|
||||||
sub_080A3210();
|
sub_080A3210();
|
||||||
PlaySFX(3);
|
PlaySFX(3); //fanfare
|
||||||
DoFade(6, 8);
|
DoFade(6, 8);
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (gUnk_03000FD0 != 0) {
|
if (gUnk_03000FD0.field_0x0 != 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||||
|
@ -182,8 +186,8 @@ void sub_080AD474(void)
|
||||||
}
|
}
|
||||||
sub_080AD644();
|
sub_080AD644();
|
||||||
if ((gMenu.transitionTimer & 0x20) == 0) {
|
if ((gMenu.transitionTimer & 0x20) == 0) {
|
||||||
gUnk_03001010.field_0x8 = 0xe000;
|
gUnk_03001010[4] = 0xe000;
|
||||||
gUnk_03001010.field_0x2 = 0x84;
|
gUnk_03001010[1] = 0x84;
|
||||||
sub_080ADA14(0x1ff,0);
|
sub_080ADA14(0x1ff,0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -194,4 +198,68 @@ void sub_080AD474(void)
|
||||||
sub_080AD89C();
|
sub_080AD89C();
|
||||||
sub_0805E5C0();
|
sub_0805E5C0();
|
||||||
sub_080AD9B0();
|
sub_080AD9B0();
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080AD644(void) {
|
||||||
|
|
||||||
|
gUnk_03001010[2] = 0;
|
||||||
|
gUnk_03001010[3] = 0;
|
||||||
|
gUnk_03001010[4] = 57376;
|
||||||
|
gUnk_03001010[0] = 120;
|
||||||
|
gUnk_03001010[1] = 152;
|
||||||
|
sub_080ADA14(511, 1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080AD670(void)
|
||||||
|
{
|
||||||
|
struct BgAffineSrcData aff;
|
||||||
|
aff.texY = 0x8000;
|
||||||
|
aff.texX = 0x8000;
|
||||||
|
aff.scrX = 0x78;
|
||||||
|
aff.scrY = 0x48;
|
||||||
|
aff.alpha = 0;
|
||||||
|
aff.sy = aff.sx = gMenu.field_0x2c;
|
||||||
|
BgAffineSet(&aff, (struct BgAffineDstData*)&gBgControls, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void sub_080AD6AC(void)
|
||||||
|
{
|
||||||
|
Entity *pEVar2;
|
||||||
|
|
||||||
|
switch (gMenu.overlayType) {
|
||||||
|
case 0:
|
||||||
|
if (gUnk_03000FD0.field_0x0 == 0) {
|
||||||
|
if ((gMenu.field_0x11 & 1) == 0) {
|
||||||
|
gScreen.bg2.bg0Control++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((sub_080AD84C() == 2) || (gScreen.bg2.bg0Control == 0)) {
|
||||||
|
gMenu.overlayType++;
|
||||||
|
gScreen.bg2.bg0Control = 0;
|
||||||
|
gScreen.bg1.unk = 0xc09;
|
||||||
|
gUnk_03000FD0.field_0x4 = 0x40;
|
||||||
|
DoFade(6,0x10);
|
||||||
|
PlaySFX(0xf8);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if (gUnk_03000FD0.field_0x0 == '\0') {
|
||||||
|
gUnk_03000FD0.field_0x4 = -1;
|
||||||
|
gMenu.overlayType++;
|
||||||
|
gMenu.transitionTimer = 0x5a;
|
||||||
|
pEVar2 = CreateObject(0xb4,0,0);
|
||||||
|
if (pEVar2 != NULL) {
|
||||||
|
pEVar2->x.HALF.HI = 0;
|
||||||
|
pEVar2->y.HALF.HI = 0x48;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
if (sub_080AD84C()) {
|
||||||
|
gMenu.menuType++;
|
||||||
|
gMenu.transitionTimer = 0x3c;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -1,15 +0,0 @@
|
||||||
#include "global.h"
|
|
||||||
|
|
||||||
extern s32 sub_080ADA14(u32, u32);
|
|
||||||
extern u16 gUnk_03001010[4];
|
|
||||||
|
|
||||||
void sub_080AD644(void) {
|
|
||||||
|
|
||||||
gUnk_03001010[2] = 0;
|
|
||||||
gUnk_03001010[3] = 0;
|
|
||||||
gUnk_03001010[4] = 57376;
|
|
||||||
gUnk_03001010[0] = 120;
|
|
||||||
gUnk_03001010[1] = 152;
|
|
||||||
sub_080ADA14(511, 1);
|
|
||||||
return;
|
|
||||||
}
|
|
Loading…
Reference in New Issue