diff --git a/hbc/meta.xml b/hbc/meta.xml index 38ead13..8d895ec 100644 --- a/hbc/meta.xml +++ b/hbc/meta.xml @@ -3,7 +3,8 @@ Snes9x GX Tantric 4.2.3 - 20100722 + 20100814 Super Nintendo Emulator A Super Nintendo Emulator for Wii + diff --git a/readme.txt b/readme.txt index 34c8ff5..59511ba 100644 --- a/readme.txt +++ b/readme.txt @@ -43,6 +43,12 @@ Wii homebrew is WiiBrew (www.wiibrew.org). | UPDATE HISTORY | •˜———–—––-- - —————————––––– ———–—––-- - —————————––––– ———–—––-- - ————————• +[4.2.4 - August 14, 2010] + +* IOS 202 support removed +* USB 2.0 support via IOS 58 added - requires that IOS58 be pre-installed +* DVD support via AHBPROT - requires latest HBC + [4.2.3 - July 22, 2010] * Fixed broken auto-update diff --git a/source/preferences.cpp b/source/preferences.cpp index 048ffb3..553d4a1 100644 --- a/source/preferences.cpp +++ b/source/preferences.cpp @@ -503,14 +503,21 @@ SavePrefs (bool silent) return false; sprintf(filepath, "%s%s", pathPrefix[device], APPFOLDER); - - if (!diropen(filepath)) + DIR_ITER *dir = diropen(filepath); + if (!dir) { - mkdir(filepath, 0777); + if(mkdir(filepath, 0777) != 0) + return false; sprintf(filepath, "%s%s/roms", pathPrefix[device], APPFOLDER); - mkdir(filepath, 0777); + if(mkdir(filepath, 0777) != 0) + return false; sprintf(filepath, "%s%s/saves", pathPrefix[device], APPFOLDER); - mkdir(filepath, 0777); + if(mkdir(filepath, 0777) != 0) + return false; + } + else + { + dirclose(dir); } sprintf(filepath, "%s%s/%s", pathPrefix[device], APPFOLDER, PREF_FILE_NAME); sprintf(prefpath, "%s%s", pathPrefix[device], APPFOLDER); diff --git a/source/snes9xgx.cpp b/source/snes9xgx.cpp index b12bc5f..fb2c6f4 100644 --- a/source/snes9xgx.cpp +++ b/source/snes9xgx.cpp @@ -214,51 +214,12 @@ void setFrameTimerMethod() * IOS Check ***************************************************************************/ #ifdef HW_RVL -static bool FindIOS(u32 ios) -{ - s32 ret; - u32 n; - - u64 *titles = NULL; - u32 num_titles=0; - - ret = ES_GetNumTitles(&num_titles); - if (ret < 0) - return false; - - if(num_titles < 1) - return false; - - titles = (u64 *)memalign(32, num_titles * sizeof(u64) + 32); - if (!titles) - return false; - - ret = ES_GetTitles(titles, num_titles); - if (ret < 0) - { - free(titles); - return false; - } - - for(n=0; n < num_titles; n++) - { - if((titles[n] & 0xFFFFFFFF)==ios) - { - free(titles); - return true; - } - } - free(titles); - return false; -} - bool SaneIOS() { bool res = false; u32 num_titles=0; u32 tmd_size; u32 ios = IOS_GetVersion(); - u32 tmdbuffer[MAX_SIGNED_TMD_SIZE] ATTRIBUTE_ALIGN(32); if(ios > 200) return false; @@ -270,12 +231,23 @@ bool SaneIOS() return false; u64 *titles = (u64 *)memalign(32, num_titles * sizeof(u64) + 32); + + if(!titles) + return false; if (ES_GetTitles(titles, num_titles) < 0) { free(titles); return false; } + + u32 *tmdbuffer = (u32 *)memalign(32, MAX_SIGNED_TMD_SIZE); + + if(!tmdbuffer) + { + free(titles); + return false; + } for(u32 n=0; n < num_titles; n++) { @@ -297,6 +269,7 @@ bool SaneIOS() break; } } + free(tmdbuffer); free(titles); return res; } @@ -368,14 +341,11 @@ main(int argc, char *argv[]) #ifdef HW_RVL // only reload IOS if AHBPROT is not enabled u32 version = IOS_GetVersion(); + s32 preferred = IOS_GetPreferredVersion(); + + if(version != 58 && preferred > 0 && version != (u32)preferred && __di_check_ahbprot() != 1) + IOS_ReloadIOS(preferred); - if(version != 58 && __di_check_ahbprot() != 1) - { - if(FindIOS(58)) - IOS_ReloadIOS(58); - else if((version < 61 || version >= 200) && FindIOS(61)) - IOS_ReloadIOS(61); - } DI_Init(); #endif diff --git a/source/snes9xgx.h b/source/snes9xgx.h index c34dab2..096f93e 100644 --- a/source/snes9xgx.h +++ b/source/snes9xgx.h @@ -20,7 +20,7 @@ #include "filelist.h" #define APPNAME "Snes9x GX" -#define APPVERSION "4.2.3" +#define APPVERSION "4.2.4" #define APPFOLDER "snes9xgx" #define PREF_FILE_NAME "settings.xml" diff --git a/update.xml b/update.xml index fb028c7..00c9819 100644 --- a/update.xml +++ b/update.xml @@ -1,4 +1,4 @@ - - + +