Put const data in demo

This commit is contained in:
Tal Hayon 2022-04-19 22:33:22 +03:00
parent d3a9d40206
commit e940c1cc5e
4 changed files with 25 additions and 44 deletions

View File

@ -44376,26 +44376,6 @@
"start": 1216516,
"size": 24
},
{
"path": "demoScreen/gUnk_08127C98_DEMO_USA.bin",
"variants": [
"DEMO_USA"
],
"starts": {
"DEMO_USA": 1211544
},
"size": 48
},
{
"path": "demoScreen/gUnk_08127CC8_DEMO_USA.bin",
"variants": [
"DEMO_USA"
],
"starts": {
"DEMO_USA": 1211592
},
"size": 8
},
{
"path": "playerItemSword/gUnk_08129068.bin",
"start": 1216616,

View File

@ -1,18 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
.ifdef DEMO_USA
@ TODO choose demo screen
demoFunctions::
.4byte sub_080A2E40
.4byte sub_080A2FD0
.4byte sub_080A2F8C
gUnk_08127C98::
.incbin "demoScreen/gUnk_08127C98_DEMO_USA.bin"
gUnk_08127CC8::
.incbin "demoScreen/gUnk_08127CC8_DEMO_USA.bin"
.endif

View File

@ -122,8 +122,10 @@ SECTIONS {
. = 0x00034CF0; gUnk_02034CF0 = .;
. = 0x00034D30; gUnk_02034D30 = .;
. = 0x00034DF0; gUnk_02034DF0 = .;
. = 0x0003508E; gUnk_0203508E = .;
. = 0x000350E2; gUnk_020350E2 = .;
. = 0x000350F0; gUnk_020350F0 = .;
. = 0x0003510E; gUnk_0203510E = .;
. = 0x00035160; gUnk_02035160 = .;
. = 0x000354B0; gUnk_020354B0 = .;
. = 0x000354B4; gManagerCount = .;
@ -1567,7 +1569,7 @@ SECTIONS {
data/const/playerItem/playerItemShield.o(.rodata);
data/const/playerItem/playerItemFireRodProjectile.o(.rodata);
#ifdef DEMO_USA
data/const/demo.o(.rodata);
src/demo.o(.rodata);
#endif
src/staffroll.o(.rodata);
data/data_08127280.o(.rodata);

View File

@ -14,8 +14,10 @@
#include "screen.h"
#include "game.h"
extern void (*const demoFunctions[])(void);
void sub_080A30AC(void);
void sub_080A2E40(void);
void sub_080A2FD0(void);
void sub_080A2F8C(void);
extern u8 gUnk_02000004;
void sub_080A3198(u32, u32);
@ -26,12 +28,17 @@ extern u8 gUnk_08A05751[];
// sprite_table
extern void gUnk_089FD1B4;
extern void gUnk_089FD2F4;
extern u16 gUnk_0203508E[];
extern u16 gUnk_0203510E[];
extern u16 gUnk_08127CC8[4];
extern void* gUnk_08127C98;
extern u8 gUnk_08A068BF[129];
void DemoTask(void) {
static void (*const demoFunctions[])(void) = {
sub_080A2E40,
sub_080A2FD0,
sub_080A2F8C,
};
FlushSprites();
demoFunctions[gMain.state]();
sub_080A30AC();
@ -209,14 +216,24 @@ NONMATCH("asm/non_matching/demoScreen/sub_080A30AC.inc", void sub_080A30AC(void)
END_NONMATCH
void sub_080A3198(u32 param_1, u32 param_2) {
static const Font gUnk_08127C98[] = {
{ gUnk_0203508E, (void*)0x0600d000, (void*)0x02000d00, 0, 0x1080, 0xd0, 1, 0, 0, 1, 9, 0, 0, 1, 1 },
{ gUnk_0203510E, (void*)0x0600d000, (void*)0x02000d00, 0, 0x80, 0xd0, 1, 0, 0, 1, 9, 0, 0, 1, 1 },
};
static const u16 gUnk_08127CC8[4] = {
0x71c,
0x720,
0x721,
0x0,
};
u16 r4 = gUnk_08127CC8[param_1];
if (gChooseFileState.unk_0x12 != r4) {
gChooseFileState.unk_0x12 = r4;
MemClear(gUnk_08127C98 - 0x1e, 0x180);
MemClear(gUnk_08127C98[0].dest - 0xf, 0x180);
if (r4 != 0) {
sub_0805F46C(r4, (Font*)&gUnk_08127C98); // TODO
sub_0805F46C(r4, gUnk_08127C98);
}
gScreen.bg0.updated = 1;