diff --git a/include/arm9/main.h b/include/arm9/main.h index 20f842f..6cf058f 100644 --- a/include/arm9/main.h +++ b/include/arm9/main.h @@ -28,5 +28,4 @@ void unmount_fs(); void unmount_nand_fs(); u8 rng_get_byte(); -void clearConsoles(); void power_off_safe(); diff --git a/source/arm9/main.c b/source/arm9/main.c index 74e8513..dfde7e4 100644 --- a/source/arm9/main.c +++ b/source/arm9/main.c @@ -38,10 +38,7 @@ hashCodeRoData(); // TODO: remove after debugging - // Initialize console for both screens using the two different PrintConsole we have defined - consoleInit(SCREEN_TOP, &con_top); - consoleSetWindow(&con_top, 1, 1, con_top.windowWidth - 2, con_top.windowHeight - 2); - consoleInit(SCREEN_LOW, &con_bottom); + uiInit(); consoleSelect(&con_top); @@ -343,7 +340,7 @@ void power_off_safe() { - clearConsoles(); + uiClearConsoles(); printf("Attempting to turn off...\n"); diff --git a/source/arm9/menu.c b/source/arm9/menu.c index 2a140e7..ad6a164 100644 --- a/source/arm9/menu.c +++ b/source/arm9/menu.c @@ -54,17 +54,14 @@ int menu_event_state; - -u8 color; - static void menu_main_draw_top() { const char *sd_res[2] = {"\x1B[31mNo ", "\x1B[32mYes"}; const char *nand_res[2] = {"\x1B[31mError ", "\x1B[32mOK "}; consoleSelect(&con_top); - drawConsoleWindow(&con_top, 2, color); - printf("\n\t\t\t\t\t3DS Bootloader v%" PRIu16 ".%" PRIu16 "\n\n\n\n", + + uiPrintCentered("3DS Bootloader v%" PRIu16 ".%" PRIu16, BOOTLOADER_VERSION>>16, BOOTLOADER_VERSION & 0xFFFFu); printf(" Model: %s\n", bootInfo.model); @@ -92,13 +89,10 @@ const char *firmPath = NULL; menu_event_state = MENU_EVENT_NONE; - - // randomize color - color = (rng_get_byte() % 6) + 1; cursor_pos = 0; - clearConsoles(); + uiClearConsoles(); TIMER_start(TIMER_0, TIMER_PRESCALER_64, TIMER_FREQ_64(60.0f), NULL); @@ -160,32 +154,32 @@ case MENU_STATE_NAND_BACKUP: menuDumpNand("sdmc:/nand.bin"); - clearConsoles(); + uiClearConsoles(); break; case MENU_STATE_NAND_RESTORE: menuRestoreNand("sdmc:/nand.bin"); - clearConsoles(); + uiClearConsoles(); break; case MENU_STATE_OPTIONS_MENU: menuOptions(); - clearConsoles(); + uiClearConsoles(); break; case MENU_STATE_FIRM_LAUNCH: if(!menuLaunchFirm(firmPath, false)) - clearConsoles(); + uiClearConsoles(); break; case MENU_STATE_FIRM_LAUNCH_SETTINGS: if(!menuTryLoadFirmwareFromSettings(false)) - clearConsoles(); + uiClearConsoles(); break; case MENU_STATE_BROWSER: path = browseForFile("sdmc:"); - clearConsoles(); + uiClearConsoles(); firmPath = path; if(!path) // no file selected break; @@ -193,7 +187,7 @@ break; case MENU_STATE_TEST_CONFIG: - clearConsoles(); + uiClearConsoles(); consoleSelect(&con_top); printf("Key Text Data:\n"); for(int i=0; i"); } TIMER_sleep(6000); - clearConsoles(); + uiClearConsoles(); menuSetReturnToState(STATE_PREVIOUS); break; @@ -262,7 +256,7 @@ { case MENU_STATE_FIRM_LAUNCH_SETTINGS: if(!menuTryLoadFirmwareFromSettings()) - clearConsoles(); + uiClearConsoles(); break; default: diff --git a/source/arm9/menu_filebrowse.c b/source/arm9/menu_filebrowse.c index 03c903d..9895eea 100644 --- a/source/arm9/menu_filebrowse.c +++ b/source/arm9/menu_filebrowse.c @@ -182,7 +182,7 @@ curEntriesCount = 0; indexStackPtr = indexStack; - clearConsoles(); + uiClearConsoles(); dirEntries = (EntryType *) malloc(MAX_CACHED_ENTRIES * sizeof(EntryType)); if(!dirEntries) @@ -222,7 +222,7 @@ } while(!dev_sdcard->is_active()); - clearConsoles(); + uiClearConsoles(); } res = f_opendir(&curDirectory, curPath); diff --git a/source/arm9/menu_firmloader.c b/source/arm9/menu_firmloader.c index 5e39db1..e6ec6cc 100644 --- a/source/arm9/menu_firmloader.c +++ b/source/arm9/menu_firmloader.c @@ -34,7 +34,7 @@ firmLoaded = 0; - clearConsoles(); + uiClearConsoles(); consoleSelect(&con_top); printf("FIRM Loader\n\n"); @@ -119,7 +119,7 @@ int i; u32 padValue, expectedPadValue; - clearConsoles(); + uiClearConsoles(); consoleSelect(&con_top); printf("Loading FIRM from settings\n\n"); @@ -172,7 +172,7 @@ break; else { - clearConsoles(); + uiClearConsoles(); consoleSelect(&con_top); } } diff --git a/source/arm9/menu_nand.c b/source/arm9/menu_nand.c index 559fb1d..fe3916f 100644 --- a/source/arm9/menu_nand.c +++ b/source/arm9/menu_nand.c @@ -33,7 +33,7 @@ FRESULT fres; UINT bytesWritten; - clearConsoles(); + uiClearConsoles(); consoleSelect(&con_bottom); printf("\n\t\tPress B to cancel"); @@ -140,7 +140,7 @@ FIL file; UINT bytesRead; - clearConsoles(); + uiClearConsoles(); consoleSelect(&con_bottom); printf("\n\t\tPress B to cancel"); diff --git a/source/arm9/menu_options.c b/source/arm9/menu_options.c index c7de998..099805a 100644 --- a/source/arm9/menu_options.c +++ b/source/arm9/menu_options.c @@ -48,7 +48,7 @@ PXI_sendWord(PXI_CMD_ALLOW_POWER_OFF); - clearConsoles(); + uiClearConsoles(); consoleSelect(&con_bottom); calcConsoleMetrics(); @@ -260,7 +260,7 @@ menuUpdateGlobalState(); menuActState(); const char *path = browseForFile("sdmc:"); - clearConsoles(); + uiClearConsoles(); if(path) configSetKeyData(key, path); @@ -287,7 +287,7 @@ menuUpdateGlobalState(); menuActState(); const char *path = browseForFile("sdmc:"); - clearConsoles(); + uiClearConsoles(); if(path) { diff --git a/source/arm9/ui.c b/source/arm9/ui.c index 69e5ed1..ec66121 100644 --- a/source/arm9/ui.c +++ b/source/arm9/ui.c @@ -10,17 +10,17 @@ #include "arm9/ui.h" #include "arm9/console.h" +static u8 randomColor; static void consoleMainInit() { /* Initialize console for both screens using the two different PrintConsole we have defined */ consoleInit(SCREEN_TOP, &con_top); - con_top.windowX = 1; - con_top.windowY = 1; - con_top.windowWidth -= 2; - con_top.windowHeight -= 2; + consoleSetWindow(&con_top, 1, 1, con_top.windowWidth - 2, con_top.windowHeight - 2); - drawConsoleWindow(&con_top, 4, con_top.fg); + // randomize color + randomColor = (rng_get_byte() % 6) + 1; + drawConsoleWindow(&con_top, 2, randomColor); consoleInit(SCREEN_LOW, &con_bottom); @@ -32,7 +32,7 @@ consoleMainInit(); } -void clearConsoles() +static void clearConsoles() { consoleSelect(&con_bottom); consoleClear();