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;
|
||||
} Screen;
|
||||
|
||||
extern BgControls gBgControls;
|
||||
extern Screen gScreen;
|
||||
|
||||
#endif
|
|
@ -883,9 +883,6 @@ SECTIONS {
|
|||
src/sub_080A554C.o(.text);
|
||||
asm/code_080A5574.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);
|
||||
src/sub_080AD834.o(.text);
|
||||
asm/sub_080AD84C.o(.text);
|
||||
|
|
|
@ -7,7 +7,15 @@
|
|||
|
||||
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 {
|
||||
char header[4];
|
||||
|
@ -45,7 +53,7 @@ void sub_080AD380()
|
|||
gUnk_081320F0[gUnk_02032EC0.transitionType]();
|
||||
break;
|
||||
case 2:
|
||||
if (gUnk_03000FD0 != 0) {
|
||||
if (gUnk_03000FD0.field_0x0 != 0) {
|
||||
return;
|
||||
}
|
||||
sub_0801DA90(1);
|
||||
|
@ -90,17 +98,13 @@ void sub_080AD3F4(void)
|
|||
}
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
u16 field_0x0;
|
||||
u16 field_0x2;
|
||||
u16 field_0x4[2];
|
||||
u16 field_0x8;
|
||||
} struct_03001010;
|
||||
// typedef struct {
|
||||
// u16 field_0x0[5];
|
||||
// } struct_03001010;
|
||||
|
||||
extern struct_03001010 gUnk_03001010;
|
||||
extern u16 gUnk_03001010[5];
|
||||
|
||||
extern u8 gUnk_02024490;
|
||||
extern u8 gUnk_03000FD0;
|
||||
|
||||
void sub_080AD474(void)
|
||||
{
|
||||
|
@ -146,11 +150,11 @@ void sub_080AD474(void)
|
|||
sub_080AD670();
|
||||
}
|
||||
sub_080A3210();
|
||||
PlaySFX(3);
|
||||
PlaySFX(3); //fanfare
|
||||
DoFade(6, 8);
|
||||
break;
|
||||
case 1:
|
||||
if (gUnk_03000FD0 != 0) {
|
||||
if (gUnk_03000FD0.field_0x0 != 0) {
|
||||
return;
|
||||
}
|
||||
if (((struct_02000000*)0x2000000)->gameLanguage == 0) {
|
||||
|
@ -182,8 +186,8 @@ void sub_080AD474(void)
|
|||
}
|
||||
sub_080AD644();
|
||||
if ((gMenu.transitionTimer & 0x20) == 0) {
|
||||
gUnk_03001010.field_0x8 = 0xe000;
|
||||
gUnk_03001010.field_0x2 = 0x84;
|
||||
gUnk_03001010[4] = 0xe000;
|
||||
gUnk_03001010[1] = 0x84;
|
||||
sub_080ADA14(0x1ff,0);
|
||||
}
|
||||
}
|
||||
|
@ -194,4 +198,68 @@ void sub_080AD474(void)
|
|||
sub_080AD89C();
|
||||
sub_0805E5C0();
|
||||
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