From 96620667f59a40bc75a41d27799c53a2b135c716 Mon Sep 17 00:00:00 2001 From: Graham Clemo Date: Sun, 14 Oct 2018 18:14:06 +0100 Subject: [PATCH] Fixed change to tic_close in tic.c --- src/console.c | 382 +++++++++++++++----------------------------------- 1 file changed, 112 insertions(+), 270 deletions(-) diff --git a/src/console.c b/src/console.c index cedbdd6..f79548b 100644 --- a/src/console.c +++ b/src/console.c @@ -45,7 +45,10 @@ #define CONSOLE_ERROR_TEXT_COLOR ((tic_color_red)) #define CONSOLE_CURSOR_BLINK_PERIOD (TIC_FRAMERATE) #define CONSOLE_CURSOR_DELAY (TIC_FRAMERATE / 2) +#define CONSOLE_BUFFER_WIDTH (STUDIO_TEXT_BUFFER_WIDTH) +#define CONSOLE_BUFFER_HEIGHT (STUDIO_TEXT_BUFFER_HEIGHT) #define CONSOLE_BUFFER_SCREENS 64 +#define CONSOLE_BUFFER_SIZE (CONSOLE_BUFFER_WIDTH * CONSOLE_BUFFER_HEIGHT * CONSOLE_BUFFER_SCREENS) typedef enum { @@ -74,6 +77,7 @@ typedef enum #if defined(__TIC_WINDOWS__) || defined(__TIC_LINUX__) || defined(__TIC_MACOSX__) #define CAN_EXPORT 1 +#define CAN_OPEN_URL 1 #endif #if defined(CAN_EXPORT) @@ -114,15 +118,7 @@ static const char DefaultJSTicPath[] = TIC_LOCAL "default_js.tic"; #if defined(TIC_BUILD_WITH_WREN) static const char DefaultWrenTicPath[] = TIC_LOCAL "default_wren.tic"; #endif - -#if defined(TIC_BUILD_WITH_SQUIRREL) -static const char DefaultSquirrelTicPath[] = TIC_LOCAL "default_squirrel.tic"; -#endif - -static inline s32 BufferSize(const tic_mem* tic) -{ - return BufferWidth(tic) * BufferHeight(tic) * CONSOLE_BUFFER_SCREENS; -} + static const char* getName(const char* name, const char* ext) { @@ -144,33 +140,29 @@ static const char* getCartName(const char* name) return getName(name, CART_EXT); } -static void scrollBuffer(tic_mem* tic, char* buffer) +static void scrollBuffer(char* buffer) { - memmove(buffer, buffer + BufferWidth(tic), BufferSize(tic) - BufferWidth(tic)); - memset(buffer + BufferSize(tic) - BufferWidth(tic), 0, BufferWidth(tic)); + memmove(buffer, buffer + CONSOLE_BUFFER_WIDTH, CONSOLE_BUFFER_SIZE - CONSOLE_BUFFER_WIDTH); + memset(buffer + CONSOLE_BUFFER_SIZE - CONSOLE_BUFFER_WIDTH, 0, CONSOLE_BUFFER_WIDTH); } static void scrollConsole(Console* console) { - tic_mem* tic = console->tic; - - while(console->cursor.y >= BufferHeight(tic) * CONSOLE_BUFFER_SCREENS) + while(console->cursor.y >= CONSOLE_BUFFER_HEIGHT * CONSOLE_BUFFER_SCREENS) { - scrollBuffer(tic, console->buffer); - scrollBuffer(tic, (char*)console->colorBuffer); + scrollBuffer(console->buffer); + scrollBuffer((char*)console->colorBuffer); console->cursor.y--; } - s32 minScroll = console->cursor.y - BufferHeight(tic) + 1; + s32 minScroll = console->cursor.y - CONSOLE_BUFFER_HEIGHT + 1; if(console->scroll.pos < minScroll) console->scroll.pos = minScroll; } static void consolePrint(Console* console, const char* text, u8 color) { - tic_mem* tic = console->tic; - printf("%s", text); const char* textPointer = text; @@ -189,13 +181,13 @@ static void consolePrint(Console* console, const char* text, u8 color) } else { - s32 offset = console->cursor.x + console->cursor.y * BufferWidth(tic); + s32 offset = console->cursor.x + console->cursor.y * CONSOLE_BUFFER_WIDTH; *(console->buffer + offset) = symbol; *(console->colorBuffer + offset) = color; console->cursor.x++; - if(console->cursor.x >= BufferWidth(tic)) + if(console->cursor.x >= CONSOLE_BUFFER_WIDTH) { console->cursor.x = 0; console->cursor.y++; @@ -245,22 +237,20 @@ static void commandDone(Console* console) static void drawCursor(Console* console, s32 x, s32 y, u8 symbol) { - tic_mem* tic = console->tic; bool inverse = console->cursor.delay || console->tickCounter % CONSOLE_CURSOR_BLINK_PERIOD < CONSOLE_CURSOR_BLINK_PERIOD / 2; if(inverse) - console->tic->api.rect(console->tic, x-1, y-1, tic->font.width+1, tic->font.height+1, CONSOLE_CURSOR_COLOR); + console->tic->api.rect(console->tic, x-1, y-1, TIC_FONT_WIDTH+1, TIC_FONT_HEIGHT+1, CONSOLE_CURSOR_COLOR); - console->tic->api.draw_char(console->tic, symbol, x, y, inverse ? TIC_COLOR_BG : CONSOLE_FRONT_TEXT_COLOR); + console->tic->api.draw_char(console->tic, symbol, x, y, inverse ? TIC_COLOR_BG : CONSOLE_FRONT_TEXT_COLOR, false); } static void drawConsoleText(Console* console) { - tic_mem* tic = console->tic; - char* pointer = console->buffer + console->scroll.pos * BufferWidth(tic); - u8* colorPointer = console->colorBuffer + console->scroll.pos * BufferWidth(tic); + char* pointer = console->buffer + console->scroll.pos * CONSOLE_BUFFER_WIDTH; + u8* colorPointer = console->colorBuffer + console->scroll.pos * CONSOLE_BUFFER_WIDTH; - const char* end = console->buffer + BufferSize(tic); + const char* end = console->buffer + CONSOLE_BUFFER_SIZE; s32 x = 0; s32 y = 0; @@ -270,9 +260,9 @@ static void drawConsoleText(Console* console) u8 color = *colorPointer++; if(symbol) - console->tic->api.draw_char(console->tic, symbol, x * TextWidth(tic), y * TextHeight(tic), color); + console->tic->api.draw_char(console->tic, symbol, x * STUDIO_TEXT_WIDTH, y * STUDIO_TEXT_HEIGHT, color, false); - if(++x == BufferWidth(tic)) + if(++x == CONSOLE_BUFFER_WIDTH) { y++; x = 0; @@ -282,9 +272,8 @@ static void drawConsoleText(Console* console) static void drawConsoleInputText(Console* console) { - tic_mem* tic = console->tic; - s32 x = console->cursor.x * TextWidth(tic); - s32 y = (console->cursor.y - console->scroll.pos) * TextHeight(tic); + s32 x = console->cursor.x * STUDIO_TEXT_WIDTH; + s32 y = (console->cursor.y - console->scroll.pos) * STUDIO_TEXT_HEIGHT; const char* pointer = console->inputBuffer; const char* end = pointer + strlen(console->inputBuffer); @@ -297,14 +286,14 @@ static void drawConsoleInputText(Console* console) if(console->inputPosition == index) drawCursor(console, x, y, symbol); else - console->tic->api.draw_char(console->tic, symbol, x, y, CONSOLE_FRONT_TEXT_COLOR); + console->tic->api.draw_char(console->tic, symbol, x, y, CONSOLE_FRONT_TEXT_COLOR, false); index++; - x += TextWidth(tic); - if(x == (BufferWidth(tic) * TextWidth(tic))) + x += STUDIO_TEXT_WIDTH; + if(x == (CONSOLE_BUFFER_WIDTH * STUDIO_TEXT_WIDTH)) { - y += TextHeight(tic); + y += STUDIO_TEXT_HEIGHT; x = 0; } @@ -345,11 +334,13 @@ static void processConsoleBackspace(Console* console) static void onConsoleHelpCommand(Console* console, const char* param); +#if defined(CAN_OPEN_URL) static void onConsoleWikiCommand(Console* console, const char* param) { getSystem()->openSystemPath("https://github.com/nesbox/TIC-80/wiki"); commandDone(console); } +#endif static void onConsoleExitCommand(Console* console, const char* param) { @@ -437,7 +428,7 @@ static bool onConsoleLoadSectionCommand(Console* console, const char* param) case 0: memcpy(&tic->cart.cover, &cart->cover, sizeof cart->cover); break; case 1: memcpy(&tic->cart.bank0.tiles, &cart->bank0.tiles, sizeof(tic_tiles)*2); break; case 2: memcpy(&tic->cart.bank0.map, &cart->bank0.map, sizeof(tic_map)); break; - case 3: memcpy(&tic->cart.bank0.code, &cart->bank0.code, sizeof(tic_code)); break; + case 3: memcpy(&tic->cart.code, &cart->code, sizeof(tic_code)); break; case 4: memcpy(&tic->cart.bank0.sfx, &cart->bank0.sfx, sizeof(tic_sfx)); break; case 5: memcpy(&tic->cart.bank0.music, &cart->bank0.music, sizeof(tic_music)); break; case 6: memcpy(&tic->cart.bank0.palette, &cart->bank0.palette, sizeof(tic_palette)); break; @@ -494,11 +485,7 @@ static void* getDemoCart(Console* console, ScriptLang script, s32* size) #if defined(TIC_BUILD_WITH_WREN) case WrenScript: strcpy(path, DefaultWrenTicPath); break; -#endif -#if defined(TIC_BUILD_WITH_SQUIRREL) - case Squirrel: strcpy(path, DefaultSquirrelTicPath); break; #endif - } void* data = fsLoadRootFile(console->fs, path, size); @@ -555,19 +542,6 @@ static void* getDemoCart(Console* console, ScriptLang script, s32* size) #endif /* defined(TIC_BUILD_WITH_LUA) */ -#if defined(TIC_BUILD_WITH_SQUIRREL) - case Squirrel: - { - static const u8 SquirrelDemoRom[] = - { - #include "../bin/assets/squirreldemo.tic.dat" - }; - - demo = SquirrelDemoRom; - romSize = sizeof SquirrelDemoRom; - } - break; -#endif #if defined(TIC_BUILD_WITH_JS) case JavaScript: @@ -648,10 +622,6 @@ static void onConsoleLoadDemoCommandConfirmed(Console* console, const char* para data = getDemoCart(console, WrenScript, &size); #endif -#if defined(TIC_BUILD_WITH_SQUIRREL) - if(strcmp(param, DefaultSquirrelTicPath) == 0) - data = getDemoCart(console, Squirrel, &size); -#endif const char* name = getCartName(param); setCartName(console, name); @@ -690,12 +660,12 @@ static bool hasExt(const char* name, const char* ext) static bool hasProjectExt(const char* name) { - return hasExt(name, PROJECT_LUA_EXT) || hasExt(name, PROJECT_MOON_EXT) || hasExt(name, PROJECT_JS_EXT) || hasExt(name, PROJECT_WREN_EXT) || hasExt(name, PROJECT_SQUIRREL_EXT); + return hasExt(name, PROJECT_LUA_EXT) || hasExt(name, PROJECT_MOON_EXT) || hasExt(name, PROJECT_JS_EXT) || hasExt(name, PROJECT_WREN_EXT); } static const char* projectComment(const char* name) { - return (hasExt(name, PROJECT_SQUIRREL_EXT) || hasExt(name, PROJECT_JS_EXT) || hasExt(name, PROJECT_WREN_EXT)) ? "//" : "--"; + return hasExt(name, PROJECT_JS_EXT) || hasExt(name, PROJECT_WREN_EXT) ? "//" : "--"; } static void buf2str(const void* data, s32 size, char* ptr, bool flip) @@ -809,15 +779,9 @@ static s32 saveProject(Console* console, void* buffer, const char* comment) tic_mem* tic = console->tic; char* stream = buffer; - char* ptr = saveTextSection(stream, tic->cart.bank0.code.data); + char* ptr = saveTextSection(stream, tic->cart.code.data); char tag[16]; - for(s32 b = 1; b < TIC_BANKS; b++) - { - makeTag("CODE", tag, b); - ptr = saveTextSectionBank(ptr, comment, tag, tic->cart.banks[b].code.data); - } - for(s32 i = 0; i < COUNT_OF(BinarySections); i++) { const BinarySection* section = &BinarySections[i]; @@ -976,17 +940,9 @@ static bool loadProject(Console* console, const char* name, const char* data, s3 const char* comment = projectComment(name); char tag[16]; - if(loadTextSection(project, comment, cart->bank0.code.data, sizeof(tic_code))) + if(loadTextSection(project, comment, cart->code.data, sizeof(tic_code))) done = true; - for(s32 b = 1; b < TIC_BANKS; b++) - { - makeTag("CODE", tag, b); - - if(loadTextSectionBank(project, comment, tag, cart->banks[b].code.data, sizeof(tic_code))) - done = true; - } - for(s32 i = 0; i < COUNT_OF(BinarySections); i++) { const BinarySection* section = &BinarySections[i]; @@ -1083,10 +1039,7 @@ static void onConsoleLoadCommandConfirmed(Console* console, const char* param) if(!fsExistsFile(console->fs, name)) name = getName(param, PROJECT_WREN_EXT); - if(!fsExistsFile(console->fs, name)) - name = getName(param, PROJECT_SQUIRREL_EXT); - - void* data = fsLoadFile(console->fs, name, &size); + void* data = fsLoadFile(console->fs, name, &size); if(data) { @@ -1109,6 +1062,30 @@ static void onConsoleLoadCommandConfirmed(Console* console, const char* param) commandDone(console); } +static void load(Console* console, const char* path, const char* hash) +{ + if(hash) + { + s32 size = 0; + const char* name = getCartName(path); + + void* data = fsLoadFileByHash(console->fs, hash, &size); + + if(data) + { + console->showGameMenu = true; + + loadRom(console->tic, data, size, true); + onCartLoaded(console, name); + + free(data); + } + + commandDone(console); + } + else onConsoleLoadCommandConfirmed(console, path); +} + typedef void(*ConfirmCallback)(Console* console, const char* param); typedef struct @@ -1251,15 +1228,7 @@ static void onConsoleNewCommandConfirmed(Console* console, const char* param) } #endif -#if defined(TIC_BUILD_WITH_SQUIRREL) - if(strcmp(param, "squirrel") == 0) - { - loadDemo(console, Squirrel); - done = true; - } -#endif - - if(!done) + if(!done) { printError(console, "\nunknown parameter: "); printError(console, param); @@ -1398,9 +1367,8 @@ static void onConsoleFolderCommand(Console* console, const char* param) static void onConsoleClsCommand(Console* console, const char* param) { - tic_mem* tic = console->tic; - memset(console->buffer, 0, BufferSize(tic)); - memset(console->colorBuffer, TIC_COLOR_BG, BufferSize(tic)); + memset(console->buffer, 0, CONSOLE_BUFFER_SIZE); + memset(console->colorBuffer, TIC_COLOR_BG, CONSOLE_BUFFER_SIZE); console->scroll.pos = 0; console->cursor.x = console->cursor.y = 0; @@ -1557,14 +1525,7 @@ static void onConsoleConfigCommand(Console* console, const char* param) onConsoleLoadDemoCommand(console, DefaultWrenTicPath); } #endif - -#if defined(TIC_BUILD_WITH_SQUIRREL) - else if(strcmp(param, "default squirrel") == 0) - { - onConsoleLoadDemoCommand(console, DefaultSquirrelTicPath); - } -#endif - + else { printError(console, "\nunknown parameter: "); @@ -1883,124 +1844,6 @@ static void *ticMemmem(const void* haystack, size_t hlen, const void* needle, si return NULL; } -typedef struct -{ - Console* console; - const char* cartName; -} AppFileReadParam; - -typedef struct -{ - u8* data; - size_t size; -} MemoryBuffer; - -static void writeMemoryData(MemoryBuffer* memory, const u8* src, size_t size) -{ - memcpy(memory->data + memory->size, src, size); - memory->size += size; -} - -static void writeMemoryString(MemoryBuffer* memory, const char* str) -{ - size_t size = strlen(str); - memcpy(memory->data + memory->size, str, size); - memory->size += size; -} - -static void onConsoleExportHtmlCommand(Console* console, const char* name) -{ - tic_mem* tic = console->tic; - - char cartName[FILENAME_MAX]; - strcpy(cartName, name); - - { - static const char HtmlExt[] = ".html"; - const char* pos = NULL; - - if((pos = strstr(name, HtmlExt)) && strcmp(pos, HtmlExt) == 0); - else strcat(cartName, HtmlExt); - } - - extern const u8 EmbedIndexZip[]; - extern const s32 EmbedIndexZipSize; - extern const u8 EmbedTicJsZip[]; - extern const s32 EmbedTicJsZipSize; - - static const char Placeholder[] = ""; - - u8* EmbedIndex = NULL; - u32 EmbedIndexSize = unzip(&EmbedIndex, EmbedIndexZip, EmbedIndexZipSize); - - u8* EmbedTicJs = NULL; - u32 EmbedTicJsSize = unzip(&EmbedTicJs, EmbedTicJsZip, EmbedTicJsZipSize); - - u8* ptr = ticMemmem(EmbedIndex, EmbedIndexSize, Placeholder, sizeof(Placeholder)-1); - - if(ptr) - { - MemoryBuffer output = {(u8*)malloc(EmbedTicJsSize * 2), 0}; - - if(output.data) - { - writeMemoryData(&output, EmbedIndex, ptr - EmbedIndex); - writeMemoryString(&output, "\n"); - - ptr += sizeof(Placeholder)-1; - writeMemoryData(&output, ptr, EmbedIndexSize - (ptr - EmbedIndex)); - - fsGetFileData(onFileDownloaded, cartName, output.data, output.size, DEFAULT_CHMOD, console); - } - } - } - } - - free(EmbedIndex); - free(EmbedTicJs); -} - #if defined(CAN_EXPORT) static void* embedCart(Console* console, s32* size) @@ -2079,20 +1922,15 @@ static void onConsoleExportNativeCommand(Console* console, const char* cartName) #endif -static const char* getExportName(Console* console, bool html) +static const char* getExportName(Console* console) { static char name[FILENAME_MAX]; strcpy(name, strlen(console->romName) ? console->romName : "game"); - if(html) - strcat(name, ".html"); - else - { #if defined(__TIC_WINDOWS__) - strcat(name, ExeExt); + strcat(name, ExeExt); #endif - } return name; } @@ -2101,42 +1939,38 @@ static void onConsoleExportCommand(Console* console, const char* param) { if(param) { - if(strcmp(param, "html") == 0) onConsoleExportHtmlCommand(console, getExportName(console, true)); - else + if(strcmp(param, "native") == 0) { - if(strcmp(param, "native") == 0) - { #if defined(CAN_EXPORT) - onConsoleExportNativeCommand(console, getExportName(console, false)); + onConsoleExportNativeCommand(console, getExportName(console)); #else - printBack(console, "\nnative export isn't supported on this platform\n"); - commandDone(console); + printBack(console, "\nnative export isn't supported on this platform\n"); + commandDone(console); #endif - } - else if(strcmp(param, "sprites") == 0) - { - exportSprites(console); - } - else if(strcmp(param, "map") == 0) - { - exportMap(console); - } - else if(strcmp(param, "cover") == 0) - { - exportCover(console); - } - else - { - printError(console, "\nunknown parameter: "); - printError(console, param); - commandDone(console); - } + } + else if(strcmp(param, "sprites") == 0) + { + exportSprites(console); + } + else if(strcmp(param, "map") == 0) + { + exportMap(console); + } + else if(strcmp(param, "cover") == 0) + { + exportCover(console); + } + else + { + printError(console, "\nunknown parameter: "); + printError(console, param); + commandDone(console); } } else { - onConsoleExportHtmlCommand(console, getExportName(console, true)); + onConsoleExportNativeCommand(console, getExportName(console)); } } @@ -2264,7 +2098,17 @@ static void onConsoleEvalCommand(Console* console, const char* param) printLine(console); const tic_script_config* script_config = console->tic->api.get_script_config(console->tic); - script_config->eval(console->tic, param); + + if (script_config->eval) + { + if(param) + script_config->eval(console->tic, param); + else printError(console, "nothing to eval"); + } + else + { + printError(console, "'eval' not implemented for the script"); + } commandDone(console); } @@ -2348,8 +2192,6 @@ static void onConsoleDelCommand(Console* console, const char* param) static void printTable(Console* console, const char* text) { - tic_mem* tic = console->tic; - printf("%s", text); const char* textPointer = text; @@ -2368,7 +2210,7 @@ static void printTable(Console* console, const char* text) } else { - s32 offset = console->cursor.x + console->cursor.y * BufferWidth(tic); + s32 offset = console->cursor.x + console->cursor.y * CONSOLE_BUFFER_WIDTH; *(console->buffer + offset) = symbol; u8 color = 0; @@ -2388,7 +2230,7 @@ static void printTable(Console* console, const char* text) console->cursor.x++; - if(console->cursor.x >= BufferWidth(tic)) + if(console->cursor.x >= CONSOLE_BUFFER_WIDTH) { console->cursor.x = 0; console->cursor.y++; @@ -2400,7 +2242,7 @@ static void printTable(Console* console, const char* text) static void printRamInfo(Console* console, s32 addr, const char* name, s32 size) { - char buf[TIC80_WIDTH]; + char buf[STUDIO_TEXT_BUFFER_WIDTH]; sprintf(buf, "\n| %05X | %-17s | %-5i |", addr, name, size); printTable(console, buf); } @@ -2436,7 +2278,7 @@ static void onConsoleRamCommand(Console* console, const char* param) {offsetof(tic_ram, sfx.samples), "SFX"}, {offsetof(tic_ram, music.patterns.data), "MUSIC PATTERNS"}, {offsetof(tic_ram, music.tracks.data), "MUSIC TRACKS"}, - {offsetof(tic_ram, music_pos), "MUSIC POS"}, + {offsetof(tic_ram, sound_state), "SOUND STATE"}, {TIC_RAM_SIZE, "..."}, }; @@ -2463,7 +2305,9 @@ static const struct } AvailableConsoleCommands[] = { {"help", NULL, "show this info", onConsoleHelpCommand}, +#if defined(CAN_OPEN_URL) {"wiki", NULL, "open github wiki page", onConsoleWikiCommand}, +#endif {"ram", NULL, "show memory info", onConsoleRamCommand}, {"exit", "quit", "exit the application", onConsoleExitCommand}, {"new", NULL, "create new cart", onConsoleNewCommand}, @@ -2480,7 +2324,7 @@ static const struct #endif {"add", NULL, "add file", onConsoleAddCommand}, {"get", NULL, "download file", onConsoleGetCommand}, - {"export", NULL, "export html or native game", onConsoleExportCommand}, + {"export", NULL, "export native game", onConsoleExportCommand}, {"import", NULL, "import sprites from .gif", onConsoleImportCommand}, {"del", NULL, "delete file or dir", onConsoleDelCommand}, {"cls", NULL, "clear screen", onConsoleClsCommand}, @@ -2894,8 +2738,6 @@ static void tick(Console* console) loadDemo(console, JavaScript); #elif defined(TIC_BUILD_WITH_WREN) loadDemo(console, WrenScript); -#elif defined(TIC_BUILD_WITH_SQUIRREL) - loadDemo(console, Squirrel); #endif printBack(console, "\n hello! type "); @@ -3038,7 +2880,7 @@ static bool cmdInjectCode(Console* console, const char* param, const char* name) bool watch = strcmp(param, "-code-watch") == 0; if(watch || strcmp(param, "-code") == 0) { - bool loaded = loadFileIntoBuffer(console, console->embed.file->bank0.code.data, name); + bool loaded = loadFileIntoBuffer(console, console->embed.file->code.data, name); if(loaded) { @@ -3154,15 +2996,15 @@ static bool checkUIScale(Console* console, const char* param, const char* value) void initConsole(Console* console, tic_mem* tic, FileSystem* fs, Config* config, s32 argc, char **argv) { - if(!console->buffer) console->buffer = malloc(BufferSize(tic)); - if(!console->colorBuffer) console->colorBuffer = malloc(BufferSize(tic)); + if(!console->buffer) console->buffer = malloc(CONSOLE_BUFFER_SIZE); + if(!console->colorBuffer) console->colorBuffer = malloc(CONSOLE_BUFFER_SIZE); if(!console->embed.file) console->embed.file = malloc(sizeof(tic_cartridge)); *console = (Console) { .tic = tic, .config = config, - .load = onConsoleLoadCommandConfirmed, + .load = load, #if defined(TIC80_PRO) .loadProject = loadProject, @@ -3207,8 +3049,8 @@ void initConsole(Console* console, tic_mem* tic, FileSystem* fs, Config* config, .crtMonitor = false, }; - memset(console->buffer, 0, BufferSize(tic)); - memset(console->colorBuffer, TIC_COLOR_BG, BufferSize(tic)); + memset(console->buffer, 0, CONSOLE_BUFFER_SIZE); + memset(console->colorBuffer, TIC_COLOR_BG, CONSOLE_BUFFER_SIZE); memset(console->codeLiveReload.fileName, 0, FILENAME_MAX);