no message

This commit is contained in:
BADIM-PC\Vadim 2017-11-09 20:34:03 +03:00
parent 08c3bd9e2b
commit 1c8e5b2945
3 changed files with 93 additions and 16 deletions

View File

@ -274,16 +274,20 @@ emscripten:
mingw: $(DEMO_ASSETS) $(TIC80_DLL) $(TIC_O) bin/html.o bin/res.o mingw: $(DEMO_ASSETS) $(TIC80_DLL) $(TIC_O) bin/html.o bin/res.o
$(CC) $(TIC_O) bin/html.o bin/res.o $(TIC80_A) $(OPT) $(INCLUDES) $(MINGW_LINKER_FLAGS) -o $(MINGW_OUTPUT) $(CC) $(TIC_O) bin/html.o bin/res.o $(TIC80_A) $(OPT) $(INCLUDES) $(MINGW_LINKER_FLAGS) -o $(MINGW_OUTPUT)
run: mingw mingw-pro:
$(eval OPT += -DTIC80_PRO)
make mingw OPT="$(OPT)"
run: mingw-pro
$(MINGW_OUTPUT) $(MINGW_OUTPUT)
linux64-flto: linux64-lto:
$(CC) $(LINUX_INCLUDES) $(SOURCES) $(TIC80_SRC) $(SOURCES_EXT) $(OPT) $(INCLUDES) $(LINUX64_LIBS) $(LINUX_LINKER_FLAGS) -flto -o bin/tic $(CC) $(LINUX_INCLUDES) $(SOURCES) $(TIC80_SRC) $(SOURCES_EXT) $(OPT) $(INCLUDES) $(LINUX64_LIBS) $(LINUX_LINKER_FLAGS) -flto -o bin/tic
linux32-flto: linux32-lto:
$(CC) $(LINUX_INCLUDES) $(SOURCES) $(TIC80_SRC) $(SOURCES_EXT) $(OPT) $(INCLUDES) $(LINUX32_LIBS) $(LINUX_LINKER_FLAGS) -flto -o bin/tic $(CC) $(LINUX_INCLUDES) $(SOURCES) $(TIC80_SRC) $(SOURCES_EXT) $(OPT) $(INCLUDES) $(LINUX32_LIBS) $(LINUX_LINKER_FLAGS) -flto -o bin/tic
arm-flto: arm-lto:
$(CC) $(OPT_ARM) $(SOURCES) $(TIC80_SRC) $(OPT) $(INCLUDES) $(LINUX_ARM_LIBS) $(LINUX_LINKER_FLAGS) -flto -o bin/tic $(CC) $(OPT_ARM) $(SOURCES) $(TIC80_SRC) $(OPT) $(INCLUDES) $(LINUX_ARM_LIBS) $(LINUX_LINKER_FLAGS) -flto -o bin/tic
linux: linux:
@ -339,4 +343,4 @@ bin/assets/moondemo.tic.dat: demos/moondemo.tic
$(BIN2TXT) $< $@ -z $(BIN2TXT) $< $@ -z
clean: $(TIC_O) $(TIC80_O) clean: $(TIC_O) $(TIC80_O)
$(RM) $(TIC_O) $(TIC80_O) del bin\*.o

View File

@ -490,27 +490,10 @@ static void onConsoleLoadDemoCommandConfirmed(Console* console, const char* para
SDL_free(data); SDL_free(data);
} }
static void onConsoleLoadCommandConfirmed(Console* console, const char* param) static void onCartLoaded(Console* console, const char* name)
{ {
if(onConsoleLoadSectionCommand(console, param)) return;
if(param)
{
s32 size = 0;
const char* name = getRomName(param);
void* data = strcmp(name, CONFIG_TIC_PATH) == 0
? fsLoadRootFile(console->fs, name, &size)
: fsLoadFile(console->fs, name, &size);
if(data)
{
console->showGameMenu = fsIsInPublicDir(console->fs);
strcpy(console->romName, name); strcpy(console->romName, name);
loadRom(console->tic, data, size, true);
studioRomLoaded(); studioRomLoaded();
printBack(console, "\ncart "); printBack(console, "\ncart ");
@ -519,9 +502,92 @@ static void onConsoleLoadCommandConfirmed(Console* console, const char* param)
printFront(console, "RUN"); printFront(console, "RUN");
printBack(console, " command to run it\n"); printBack(console, " command to run it\n");
}
#if defined(TIC80_PRO)
static void loadProjectCode(Console* console, const void* data, s32 size)
{
tic_mem* tic = console->tic;
SDL_memcpy(tic->cart.code.data, data, SDL_min(size, sizeof(tic_code)));
}
static void loadProject(Console* console, const char* name)
{
tic_mem* tic = console->tic;
SDL_memset(&tic->cart, 0, sizeof(tic_cartridge));
static struct{const char* name; void(*func)(Console* console, const void* data, s32 size);} ProjectFiles[] =
{
{"code.lua", loadProjectCode},
{"sprites.gif", NULL},
{"tiles.gif", NULL},
{"palette.dat", NULL},
{"map.dat", NULL},
{"waves.dat", NULL},
{"sfx.dat", NULL},
{"music.dat", NULL},
{"cover.gif", NULL},
};
for(s32 i = 0; i < COUNT_OF(ProjectFiles); i++)
{
char path[FILENAME_MAX];
sprintf(path, "%s/%s", name, ProjectFiles[i].name);
s32 size = 0;
void* data = fsLoadFile(console->fs, path, &size);
if(data)
{
ProjectFiles[i].func(console, data, size);
SDL_free(data); SDL_free(data);
} }
else printBack(console, "\ncart loading error"); }
onCartLoaded(console, name);
commandDone(console);
}
#endif
static void onConsoleLoadCommandConfirmed(Console* console, const char* param)
{
if(onConsoleLoadSectionCommand(console, param)) return;
if(param)
{
s32 size = 0;
const char* name = getRomName(param);
#if defined(TIC80_PRO)
if(fsIsDir(console->fs, name))
{
loadProject(console, name);
return;
}
#endif
void* data = strcmp(name, CONFIG_TIC_PATH) == 0
? fsLoadRootFile(console->fs, name, &size)
: fsLoadFile(console->fs, name, &size);
if(data)
{
console->showGameMenu = fsIsInPublicDir(console->fs);
loadRom(console->tic, data, size, true);
onCartLoaded(console, name);
SDL_free(data);
}
else
{
printBack(console, "\ncart loading error");
}
} }
else printBack(console, "\ncart name is missing"); else printBack(console, "\ncart name is missing");
@ -676,13 +742,20 @@ typedef struct
static bool printFilename(const char* name, const char* info, s32 id, void* data, bool dir) static bool printFilename(const char* name, const char* info, s32 id, void* data, bool dir)
{ {
PrintFileNameData* printData = data; PrintFileNameData* printData = data;
Console* console = printData->console; Console* console = printData->console;
printLine(console); printLine(console);
#if defined(TIC80_PRO)
if(dir && SDL_strstr(name, CartExt) == (name + SDL_strlen(name) - SDL_strlen(CartExt)))
dir = false;
#endif
if(dir) if(dir)
{ {
printBack(console, "["); printBack(console, "[");
printBack(console, name); printBack(console, name);
printBack(console, "]"); printBack(console, "]");

View File

@ -53,7 +53,7 @@ typedef enum
CHUNK_TEMP3, // 8 CHUNK_TEMP3, // 8
CHUNK_SOUND, // 9 CHUNK_SOUND, // 9
CHUNK_WAVEFORM, // 10 CHUNK_WAVEFORM, // 10
CHUNK_OLDMUSIC, // 11 CHUNK_TEMP4, // 11
CHUNK_PALETTE, // 12 CHUNK_PALETTE, // 12
CHUNK_PATTERNS, // 13 CHUNK_PATTERNS, // 13
CHUNK_MUSIC, // 14 CHUNK_MUSIC, // 14