jp title screen ok

This commit is contained in:
theo3 2020-07-22 00:57:06 -07:00
parent 341ec8cdf6
commit c650e7fcb2
6 changed files with 83 additions and 175 deletions

View File

@ -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

View File

@ -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}

View File

@ -70,6 +70,7 @@ typedef struct {
BgControls controls;
} Screen;
extern BgControls gBgControls;
extern Screen gScreen;
#endif

View File

@ -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);

View File

@ -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;
}
}
}

View File

@ -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;
}