From e1d22b4adad0f5ea1eea647997c3cc7160b8309e Mon Sep 17 00:00:00 2001 From: Christopher Roy Bratusek Date: Wed, 21 Mar 2012 19:30:49 +0100 Subject: [PATCH] BUGFIX: installer now longer crashes on IOS58 + early controller init Installer now supports Classic-Controller + GC-Controller (partially) --- installer/source/main.cpp | 12 ++-- installer/source/menu.cpp | 95 ++++++----------------------- installer/wad/0001000154484246.tmd | Bin 592 -> 592 bytes updates | 4 ++ 4 files changed, 29 insertions(+), 82 deletions(-) diff --git a/installer/source/main.cpp b/installer/source/main.cpp index 570b8f7..80fe431 100644 --- a/installer/source/main.cpp +++ b/installer/source/main.cpp @@ -18,15 +18,15 @@ int main(int argc, char **argv) { InitNetworkThread(); VIDEO_Init(); Video_SetMode(); - - // This function initialises the attached controllers - WPAD_Init(); - + if(HAVE_AHBPROT) runtimePatchApply(); - + + WPAD_Init(); + PAD_Init(); + menu(); - + SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); return 0; diff --git a/installer/source/menu.cpp b/installer/source/menu.cpp index be2003e..dd56c74 100644 --- a/installer/source/menu.cpp +++ b/installer/source/menu.cpp @@ -23,7 +23,7 @@ void show_menu_head() { Con_FgColor(6, 1); printf("\x1b[%i;%iH", startpos_x, startpos_y); - printf("HBF installer v0.2.1"); + printf("HBF installer v0.3"); Con_FgColor(7, 1); printf("\t\t\t\t\t(C) 2011"); @@ -81,66 +81,6 @@ void menu() fill_menu_copyright(); menu_main_choice = text1.size() -1; -/* - int fgcolor = 3; - int fgbold = 1; - - printf("\x1b[1;0H"); - printf("fgcolor %i\n", fgcolor); - printf("fgbold %i\n", fgbold); - - Con_FgColor(fgcolor, fgbold); - printf("test"); - - while(1) - { - WPAD_ScanPads(); - u32 pressed = WPAD_ButtonsDown(0); - - if(pressed & WPAD_BUTTON_UP) - { - printf("test"); - } - else if(pressed & WPAD_BUTTON_1) - { - fgcolor--; - printf("\x1b[1;0H"); - Con_FgColor(7, 1); - printf("fgcolor %i\n\n", fgcolor); - Con_FgColor(fgcolor, fgbold); - printf("test"); - } - else if(pressed & WPAD_BUTTON_2) - { - fgcolor++; - printf("\x1b[1;0H"); - Con_FgColor(7, 1); - printf("fgcolor %i\n\n", fgcolor); - Con_FgColor(fgcolor, fgbold); - printf("test"); - } - else if(pressed & WPAD_BUTTON_MINUS) - { - fgbold--; - printf("\x1b[2;0H"); - Con_FgColor(7, 1); - printf("fgbold %i\n", fgbold); - Con_FgColor(fgcolor, fgbold); - printf("test"); - } - else if(pressed & WPAD_BUTTON_PLUS) - { - fgbold++; - printf("\x1b[2;0H"); - Con_FgColor(7, 1); - printf("fgbold %i\n", fgbold); - Con_FgColor(fgcolor, fgbold); - printf("test"); - } - else if(pressed & WPAD_BUTTON_HOME) - exit(0); - } -*/ int currentMenu = 0; while(currentMenu != MENU_EXIT) @@ -200,9 +140,10 @@ int menu_main(int scrollpos) while(1) { WPAD_ScanPads(); - u32 pressed = WPAD_ButtonsDown(0); + PAD_ScanPads(); - if ( pressed & WPAD_BUTTON_DOWN && scrollpos < (signed)text1.size() -1) + if((WPAD_ButtonsDown(0) & (WPAD_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_DOWN) && scrollpos < (signed)text1.size() -1) + | (PAD_ButtonsDown(0) & PAD_BUTTON_DOWN && scrollpos < (signed)text1.size() -1)) { scrollpos++; while(text1[scrollpos] == "") @@ -210,7 +151,8 @@ int menu_main(int scrollpos) scroll = true; } - else if ( pressed & WPAD_BUTTON_UP && scrollpos != 0) + else if((WPAD_ButtonsDown(0) & (WPAD_BUTTON_UP | WPAD_CLASSIC_BUTTON_UP) && scrollpos != 0) + | (PAD_ButtonsDown(0) & PAD_BUTTON_UP && scrollpos != 0)) { scrollpos--; while(text1[scrollpos] == "") @@ -233,7 +175,7 @@ int menu_main(int scrollpos) scroll = false; } - if( pressed & WPAD_BUTTON_A ) + if(WPAD_ButtonsDown(0) & (WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A) || PAD_ButtonsDown(0) & PAD_BUTTON_A) { menu_main_choice = scrollpos; switch(scrollpos) @@ -277,14 +219,16 @@ int menu_install_uninstall(int install) while(1) { WPAD_ScanPads(); - u32 pressed = WPAD_ButtonsDown(0); + PAD_ScanPads(); - if ( pressed & WPAD_BUTTON_DOWN && scrollpos < (signed)text2.size() -1) + if((WPAD_ButtonsDown(0) & (WPAD_BUTTON_DOWN | WPAD_CLASSIC_BUTTON_DOWN) && scrollpos < (signed)text1.size() -1) + | (PAD_ButtonsDown(0) & PAD_BUTTON_DOWN && scrollpos < (signed)text2.size() -1)) { scrollpos++; scroll = true; } - else if ( pressed & WPAD_BUTTON_UP && scrollpos != 0) + else if((WPAD_ButtonsDown(0) & (WPAD_BUTTON_UP | WPAD_CLASSIC_BUTTON_UP) && scrollpos != 0) + | (PAD_ButtonsDown(0) & PAD_BUTTON_UP && scrollpos != 0)) { scrollpos--; scroll = true; @@ -304,7 +248,7 @@ int menu_install_uninstall(int install) scroll = false; } - if( pressed & WPAD_BUTTON_A ) + if( WPAD_ButtonsDown(0) & (WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A) || PAD_ButtonsDown(0) & PAD_BUTTON_A ) { switch(scrollpos) { @@ -376,9 +320,9 @@ int menu_install() while(1) { WPAD_ScanPads(); - u32 pressed = WPAD_ButtonsDown(0); + PAD_ScanPads(); - if( pressed & WPAD_BUTTON_A ) + if( WPAD_ButtonsDown(0) & (WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A) || PAD_ButtonsDown(0) & PAD_BUTTON_A ) return MENU_MAIN; } } @@ -401,9 +345,8 @@ int menu_uninstall() while(1) { WPAD_ScanPads(); - u32 pressed = WPAD_ButtonsDown(0); - - if( pressed & WPAD_BUTTON_A ) + PAD_ScanPads(); + if( WPAD_ButtonsDown(0) & (WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A) || PAD_ButtonsDown(0) & PAD_BUTTON_A ) return MENU_MAIN; } } @@ -427,9 +370,9 @@ int menu_copyright() while(1) { WPAD_ScanPads(); - u32 pressed = WPAD_ButtonsDown(0); + PAD_ScanPads(); - if( pressed & WPAD_BUTTON_A ) + if( WPAD_ButtonsDown(0) & (WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A) || PAD_ButtonsDown(0) & PAD_BUTTON_A ) return MENU_MAIN; } } diff --git a/installer/wad/0001000154484246.tmd b/installer/wad/0001000154484246.tmd index 099b13e430f97a02e11a6a715639d0e5505a49d6..9a82b36a52248abb919620e6a2edefcc41cc2387 100644 GIT binary patch delta 28 kcmcb>a)D)o4U@>@qT<(buF=0fGgL}dZEru4Q&Oh|0J8%Opa1{> delta 28 mcmV+%0OSAA1kePqJOUJU@phcYz0mEwr7s8?uhe>zaHf~VvJO=M diff --git a/updates b/updates index 95580ad..252b832 100644 --- a/updates +++ b/updates @@ -4,6 +4,10 @@ * erase button is hidden for apps from DVD * edit button no longer overlaps SD/USB/DVD icon (if any) - BUGFIX: childlock is now saved when HBF exits +- BUGFIX: installer no longer crashes on IOS58 due to early + controller initialization (only happened under + certain circumstances) +- installer now supports Classic-Controller //rev37: - improved update-mechanism: