diff --git a/assets/menu.png b/assets/menu.png index fded8a4..1562458 100644 --- a/assets/menu.png +++ b/assets/menu.png Binary files differ diff --git a/assets/menu_.png b/assets/menu_.png new file mode 100644 index 0000000..fded8a4 --- /dev/null +++ b/assets/menu_.png Binary files differ diff --git a/assets/menu__.png b/assets/menu__.png new file mode 100644 index 0000000..12e38f2 --- /dev/null +++ b/assets/menu__.png Binary files differ diff --git a/source/arm11/main.c b/source/arm11/main.c index e48340d..5145a92 100644 --- a/source/arm11/main.c +++ b/source/arm11/main.c @@ -112,7 +112,7 @@ { splash_wait = drawSplashscreen(banner_spla, -1, -1, SCREEN_TOP); if (bootmode == BootModeQuick) - drawSplashscreen(menu_spla, -1, 8, SCREEN_TOP); + drawSplashscreen(menu_spla, -1, 16, SCREEN_SUB); } updateScreens(); } @@ -189,7 +189,7 @@ } - menu_start: ; +menu_start: ; // main loop PrintConsole term_con; @@ -198,8 +198,11 @@ // init screens / console (if we'll need them below) if(show_menu || err_string || dump_bootroms) { - if (!gfx_initialized) GFX_init(true); - gfx_initialized = true; + if(!gfx_initialized) + { + GFX_init(true); + gfx_initialized = true; + } // init and select terminal console consoleInit(SCREEN_TOP, &term_con, true); consoleSetWindow(&term_con, 1, 1, 64, 22); @@ -231,7 +234,7 @@ else show_menu = true; // backup solution } - + // menu specific code if(show_menu) { @@ -332,9 +335,22 @@ } } } - - menu_end: + /* Last chance to enter boot menu */ + hidScanInput(); + if (hidKeysDown() & KEY_HOME) + { + show_menu = true; + startFirmLaunch = false; + goto menu_start; + } + + +menu_end: + + /* When we reached this code, there's way back. */ + /* We are going to turn off our console or boot */ + /* into a new firmware. */ // deinit GFX if it was initialized if(gfx_initialized) GFX_deinit(firm_err == 1); diff --git a/source/arm11/menu/splash.c b/source/arm11/menu/splash.c index 816b23f..a1471be 100644 --- a/source/arm11/menu/splash.c +++ b/source/arm11/menu/splash.c @@ -69,12 +69,12 @@ else imgData = (u16*)(data + sizeof(SplashHeader)); u32 screenWidth, screenHeight, xx, yy; - if(screen) + if(screen) /* SCREEN_TOP */ { screenWidth = SCREEN_WIDTH_TOP; screenHeight = SCREEN_HEIGHT_TOP; } - else + else /* SCREEN_SUB */ { screenWidth = SCREEN_WIDTH_SUB; screenHeight = SCREEN_HEIGHT_SUB;