2010-12-12 17:31:13 +01:00
# include <unistd.h>
# include "GameBrowseMenu.hpp"
USB Loader GX v3.0:
Released on 2012 05 12
ATTENTION:
USB Loader GX Version 3.0 introduces a new auto-update mechanism which is not compatible with old versions. (The old host is offline)
If you are still using an old version of USB Loader GX, you need to update manually.
Download the latest version or use our easy installer for Windows available on our website. http://code.google.com/p/usbloader-gui/downloads/list
You can also check how to install or update manually here: http://code.google.com/p/usbloader-gui/wiki/Installation
We are sorry for the inconvenience.
New:
- Added a new Layout: Channel grid mode! Channel grid displays games as channels and plays banner animations like the real Wii System Menu.
Channel grid mode and banner animation requires AHBPROT flags to load resource files directly from your Wii.
If you use an old HBC you should use our latest forwarder or update the HBC otherwise you wont have that support.
- Added Channel launching from Emulated NAND. (big thanks to TriiForce guys and Miigotu)
- Added GameCube games launching from SD Card through Dios Mios Lite (DML). (thanks to G0dLiKe, crediar, all DML devs and FIX94)
Check DML website here http://code.google.com/p/dios-mios-lite-source-project/
- Added direct install/uninstall of WAD files to the Emulated NAND Channel path in the features settings menu.
- Added a new icon in the toolbar to select the origin of the titles: Wii games, Channels from Wii, Channels from EmuNand, GameCube games.
- Added the possibility to boot USB Loader GX without an HDD connected (It will fall back to "Channel from Wii" title's origin).
- Added an option to choose which Game Window mode to use between the old "Rotating Disc" or the new "Banner Animation".
- Added the favorite level setting to the game settings since it is no longer displayed when using "Banner Animation" game window mode.
- Added an option to adjust the screen size for overscan TVs (Use negative values to shrink the display).
- Added display of game's size from Wii disc games on the game window prompt (Rotating disc mode only).
- Added a button in the search window to switch between "Beginning" and "Content" search methods.
- Added auto-complete function to the search window.
- Added a new GUI numpad for entering numbers.
- Added setting for tooltip delay time.
- Added resize of widescreen screenshots to 768px width.
- Added cover download for the currently inserted disc.
- Added delete of full cover on art work uninstall and game uninstall.
- Added a parental control option to block priiloader override on return to system menu.
- Added a prompt asking for downloading new language files when trying to update and no language files exist yet.
- Added translation parsing for rating descriptors and for genres from wiitdb.xml. Requires a one time update of wiitdb.xml for cache rebuild.
- Added a new option to force reading the game's titles from disc header.
- Added renaming of internal TitleID of all HBC versions to JODI for GameTDB to find it.
- Added a cheat update button to re-download the cheat text file.
- Added a cancel button to several progress bar windows: Game installation, NAND extraction, etc.
- Added separate path and setting for Emulated NAND Saves and Emulated NAND Channels.
- Added per game NAND emulation path setting.
- Added Mii extractor and SYSCONF file extractor to Emulated NAND. It always overwrites old files.
- Added automatic Mii extraction on save game extract if the Mii file does not exist yet on Emulated NAND.
- Added keep of AHBPROT flag on IOS Reload. Homebrews booted now have AHBPROT. (thanks to davebaol)
- Added a new feature to force aspect ratio on games/channels. (thanks to giantpune for help with disassembler)
- Added Zelda Skyward Sword Alternative dol offset (PAL and NTSC-U) for automatic dol selection.
- Added detection of enabled cheat codes from an already created .gct file.
- Added support for 2 USB drives for d2x cIOS (Requires d2x v9+).
Changes:
- Removed buggy focus system completely and added support to control screen pointer with analog sticks from respective controllers if the wiimote is
not pointing to the screen. Compatible with Nunchuk, Classic Controller and GameCube controller. A speed factor is available in the GUI settings.
- Restructured game's settings for different types of games (Wii/GC/Channels).
- Added auto position of progress window messages in vertical direction depending of how many are used at the same time.
- If "Titles from GameTDB" is not enabled the title will be read from the folder name if possible or from the game disc header.
Title caching can still be used and is recommended in that case.
- Settings title, keyboard text and key color can be changed by themes now.
- Added optional background image for list/carousel/grid layouts (unused by default theme).
- Use of old built-in font for credits window because it doesn't look good with the system menu one.
- Removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason).
- Improved detection of game partition when starting the loader without configs (fresh start).
- Isfs is now initiated once and deinitiated when cleaning up only, instead of the whole init/deinit every single access.
- Updated file system libraries.
- Removed pngu which is not needed, changed screenshot function to use libgd instead
- added init of network into background thread so it is cancelable and has a timeout
- changed wifi gecko to UDP socket
- Converted all ogg sounds from 44.1 khz to 48 khz.
- Optimized use of memory:
Sizes over 30kb go to mem2 now first till it runs out ; Avoid use of mem2 area used on IOS_Reload (first 2 mb) ;
Change font character texture to I4 which uses half as much memory (less cache memory).
- Changed update function to get the files from googlecode website, since old update host website isn't accessible anymore.
Fixes:
- Fixed small scrollbar bug when having only 1 item.
- Fixed reloading of cover image on game list when only 1 item is left after a change (e.g. filtering).
- Improved calculation of progress speed. Now it is always the last 15 secs average instead of overall progress speed.
- Fixed "new" game showing even with a parental control setting.
- Fixed removing of unused cached titles on wiitdb load.
- Fixed ocarina codes when using more than 255 codes (brawl+) (untested).
- Fixed bug where entering "-1" (Use global) for cIOS was not possible in game settings.
- Fixed playback of some BNS banner sounds.
- Fixed reloading into another IOS before launch of game.
- Removed buggy lz77 implementation and use the one known working.
- Fixed launching of dollz compressed dol files. (thanks FIX94)
- Fixed reading game's titles from disc header on fat32/ntfs/ext.
- Fixed crash on missing <app> tag on meta.xml files.
- Forwarder: Fixed crash on drives with physical sector size > 512 bytes.
- Forwarder: Fixed endless waiting for slow HDD. (thanks to FIX94)
- Forwarder: Added missing ext2 unmount. (thanks to FIX94)
- Supports new WiiMotion+ controllers by using latest libraries.
- Lots of string handling improvements (thanks to gerbilsoft for his patch)
New Channel Grid Mode specific features:
- New settings section for all banner's settings.
- Use of BNR (banner animation) cache setting to load banners and icon's animation faster. (Enabled by default. Takes ~35MB/100 Banners)
Wii games/Channels also accept ID3.bnr for custom-made multi-region banners.
- BNR cache path setting.
- Pulsing "new" icon on banner grid layout for new games.
- Centering and size setting for banner's animation resources.
- Channel's zooming speed setting.
- Page's scrolling speed setting.
New GameCube specific features:
- Supports Dios Mios Lite (DML) v1.2+
- Uses of a custom banner for GameCube games which loads the game's internal opening.bnr informations (big thanks to diddy
from the wiithemeteam for creating the brlyt/brlan for the banner).
- DML settings editable from the loader (global and per game settings).
- Supported formats for gamecubes are ISO/GCM and GCRegEx.
- Custom game paths. The following paths are accepted:
1. configpath/ID6/
2. configpath/ID6_Title/
3. configpath/Title [ID6]/
4. configpath/gamepath/ (slow loading speed)
Accepted game's filenames: title.iso, title.gcm, GAMEID6.iso, GAMEID6.gcm
- DML cheats now work the same way as for other Wii games, gct goes to "GCT Cheatcode Path" as GAMEID.gct
- GameCube games copy from USB to SD on demand with choice menu to delete SD games to make space,
If you want to use this feature then set the "Main GC path" to USB and the "SD GameCube path" to SD card.
If duplicated games are detected on SD and USB, the games on SD will be prioritized.
- Added GameCube disc dump functionality with multi-disc menu game selection, compress and align support
(thanks to FIX94 and Overjoy for their disc dump sources on which this is based).
- Use of the BNR cache path to load ID6.bnr or ID3.bnr if available for custom-made banners. (Loading only)
- Video mode option to force interlace mode on GameCube.
- Fixed force prog mode on DML 1.4
2012-05-12 11:10:37 +02:00
# include "banner/BannerAsync.h"
2010-12-31 00:49:22 +01:00
# include "Controls/DeviceHandler.hpp"
2011-06-24 21:11:36 +02:00
# include "GUI/gui_gamelist.h"
# include "GUI/gui_gamegrid.h"
# include "GUI/gui_gamecarousel.h"
2012-05-06 12:59:58 +02:00
# include "GUI/GuiBannerGrid.h"
2011-06-14 19:53:19 +02:00
# include "GUI/LoadCoverImage.h"
2010-12-12 17:31:13 +01:00
# include "prompts/PromptWindows.h"
# include "prompts/gameinfo.h"
# include "prompts/DiscBrowser.h"
2010-12-20 20:37:38 +01:00
# include "prompts/GameWindow.hpp"
2012-05-06 12:59:58 +02:00
# include "prompts/BannerWindow.hpp"
2011-06-03 22:31:09 +02:00
# include "prompts/CategorySwitchPrompt.hpp"
2011-12-22 23:44:48 +01:00
# include "prompts/CheckboxPrompt.hpp"
2010-12-12 17:31:13 +01:00
# include "themes/CTheme.h"
# include "language/gettext.h"
# include "usbloader/wbfs.h"
# include "usbloader/wdvd.h"
# include "usbloader/GameList.h"
# include "network/networkops.h"
2010-12-18 14:20:45 +01:00
# include "network/update.h"
2011-02-03 22:46:54 +01:00
# include "network/ImageDownloader.h"
2010-12-12 17:31:13 +01:00
# include "settings/CSettings.h"
# include "settings/CGameStatistics.h"
# include "settings/CGameSettings.h"
# include "settings/GameTitles.h"
2012-05-06 12:59:58 +02:00
# include "SystemMenu/SystemMenuResources.h"
# include "system/IosLoader.h"
2010-12-12 17:31:13 +01:00
# include "utils/StringTools.h"
# include "utils/rockout.h"
2010-12-17 18:50:44 +01:00
# include "utils/ShowError.h"
2010-12-12 17:31:13 +01:00
# include "utils/tools.h"
*Completely rewrote the asynchron GuiImageData class (problems from switch Carousel<->Grid layour should be fixed now)
*Fixed bug mounting a wbfs partition which was formatted from an ext partition
*Rewrote the parental control feature. Removed loading pin or settings from the Wii Settings. Parental control is now completely managed in the loader from the settings selected and the password set.
*Saving password in config file is now encrypted
*Added loop to wait for usb when reloading the cIOS before game start
The parental control feature is filtering games like following when usb loader is locked:
level 0 (everyone 0+) > shows only games with lvl 0
level 1 (childs 7+) > shows games with lvl 0, 1
level 2 (teens 12+) > shows games with lvl 0, 1, 2
level 3 (mature 16+) > shows games with lvl 0, 1, 2, 3
level 4 (adults only 18+) > shows all games (lvl 0, 1, 2, 3, 4)
level 4 is default when creating new configs
2010-12-19 19:20:33 +01:00
# include "utils/PasswordCheck.h"
2010-12-12 17:31:13 +01:00
# include "gecko.h"
# include "menus.h"
# include "wpad.h"
# include "sys.h"
extern bool updateavailable ;
2012-02-09 22:18:16 +01:00
struct discHdr * dvdheader = NULL ;
2011-01-02 10:23:44 +01:00
static bool Exiting = false ;
2010-12-12 17:31:13 +01:00
GameBrowseMenu : : GameBrowseMenu ( )
2011-07-26 00:28:22 +02:00
: GuiWindow ( screenwidth , screenheight )
2010-12-12 17:31:13 +01:00
{
2011-07-26 00:28:22 +02:00
returnMenu = MENU_NONE ;
gameSelectedOld = - 1 ;
lastrawtime = 0 ;
Exiting = false ;
show_searchwindow = false ;
gameBrowser = NULL ;
searchBar = NULL ;
gameCover = NULL ;
gameCoverImg = NULL ;
GameIDTxt = NULL ;
GameRegionTxt = NULL ;
2012-01-08 19:24:46 +01:00
listBackground = NULL ;
carouselBackground = NULL ;
gridBackground = NULL ;
2011-07-26 00:28:22 +02:00
WDVD_GetCoverStatus ( & DiscDriveCoverOld ) ;
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
HDDSizeCallback . SetCallback ( this , & GameBrowseMenu : : UpdateFreeSpace ) ;
btnInstall = Resources : : GetImageData ( " button_install.png " ) ;
btnInstallOver = Resources : : GetImageData ( " button_install_over.png " ) ;
btnSettings = Resources : : GetImageData ( " settings_button.png " ) ;
btnSettingsOver = Resources : : GetImageData ( " settings_button_over.png " ) ;
btnpwroff = Resources : : GetImageData ( " wiimote_poweroff.png " ) ;
btnpwroffOver = Resources : : GetImageData ( " wiimote_poweroff_over.png " ) ;
btnhome = Resources : : GetImageData ( " menu_button.png " ) ;
btnhomeOver = Resources : : GetImageData ( " menu_button_over.png " ) ;
btnsdcardOver = Resources : : GetImageData ( " sdcard_over.png " ) ;
btnsdcard = Resources : : GetImageData ( " sdcard.png " ) ;
imgfavIcon = Resources : : GetImageData ( " favIcon.png " ) ;
imgfavIcon_gray = Resources : : GetImageData ( " favIcon_gray.png " ) ;
imgsearchIcon = Resources : : GetImageData ( " searchIcon.png " ) ;
imgsearchIcon_gray = Resources : : GetImageData ( " searchIcon_gray.png " ) ;
imgabcIcon = Resources : : GetImageData ( " abcIcon.png " ) ;
imgrankIcon = Resources : : GetImageData ( " rankIcon.png " ) ;
imgplayCountIcon = Resources : : GetImageData ( " playCountIcon.png " ) ;
imgplayersSortIcon = Resources : : GetImageData ( " playersSort.png " ) ;
imgarrangeGrid = Resources : : GetImageData ( " arrangeGrid.png " ) ;
imgarrangeGrid_gray = Resources : : GetImageData ( " arrangeGrid_gray.png " ) ;
imgarrangeList = Resources : : GetImageData ( " arrangeList.png " ) ;
imgarrangeList_gray = Resources : : GetImageData ( " arrangeList_gray.png " ) ;
imgarrangeCarousel = Resources : : GetImageData ( " arrangeCarousel.png " ) ;
imgarrangeCarousel_gray = Resources : : GetImageData ( " arrangeCarousel_gray.png " ) ;
2012-05-06 12:59:58 +02:00
imgBannerGrid = Resources : : GetImageData ( " arrangeBannerGrid.png " ) ;
imgBannerGrid_gray = Resources : : GetImageData ( " arrangeBannerGrid_gray.png " ) ;
2011-07-26 00:28:22 +02:00
imgdvd = Resources : : GetImageData ( " dvd.png " ) ;
imgdvd_gray = Resources : : GetImageData ( " dvd_gray.png " ) ;
imgLock = Resources : : GetImageData ( " lock.png " ) ;
imgLock_gray = Resources : : GetImageData ( " lock_gray.png " ) ;
imgUnlock = Resources : : GetImageData ( " unlock.png " ) ;
imgUnlock_gray = Resources : : GetImageData ( " unlock_gray.png " ) ;
imgCategory = Resources : : GetImageData ( " category.png " ) ;
imgCategory_gray = Resources : : GetImageData ( " category_gray.png " ) ;
2011-12-22 23:44:48 +01:00
imgLoaderMode = Resources : : GetImageData ( " loader_mode.png " ) ;
2011-07-26 00:28:22 +02:00
homebrewImgData = Resources : : GetImageData ( " browser.png " ) ;
homebrewImgDataOver = Resources : : GetImageData ( " browser_over.png " ) ;
trigA = new GuiTrigger ;
trigA - > SetSimpleTrigger ( - 1 , WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A , PAD_BUTTON_A ) ;
trigHome = new GuiTrigger ;
trigHome - > SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_HOME | WPAD_CLASSIC_BUTTON_HOME , PAD_BUTTON_START ) ;
trig2 = new GuiTrigger ;
* Improved GameCube controller functions (patch by Dynamit)
R+Z=Screenshot, X=Gameinfo window, Y=Covers download
* Added Classic Controller and GameCube Controller support
in GameInfo window:
Right stick=3D Cover movement, X=Flip 3DCover 180°, L/R=Zoom
* Added Wifi6 and wifi10 pictures for GameInfo window.
(Thanks OriginalHamster)
* Added device priority selection for GameCube listing
in global Loader settings (SD->USB, or USB->SD)
* Added a "Use global" language setting for Gamecube games.
* Added support for USB devices with modified MBR's signature
to prevent WiiU's format message.
* Prevent Rockband cursor display on GameCube and WiiWare
games with "band" in the title (Crach bandicoot, Beach
Bandits, etc.)
* Added Dol's Video mode patcher in Loader/Game settings,
for games which couldn't be forced. (MadWorld, MotoGP08,
Mario Party 8, etc.)
♦ Region patch = Patches the dol's known video modes
to the region selected in "Video mode" setting,
but keep interlace/progressive references.
♦ ON = Patch all dol's known video modes to the one
selected in "Video mode" setting.
♦ ALL = Patch all dol's found video mode patterns
(even unknown video modes) to the one selected
in "Video mode" setting.
* DML: Updated DM(L) version detection up to v2.10
* DML: Automatically enable PADHook if Screenshot setting
is enabled
* DML: Fixed a bug where multiple video modes could be set
at the same time
* DEVO: Added a prompt if trying to launch a game from a
non FAT32 partition.
* DEVO: Added Direct Mapping Buttons setting (Devo r200+)
* DEVO: Added support for Language setting
* Language files updated: Chinese, French
2013-08-18 16:30:39 +02:00
trig2 - > SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_2 | WPAD_CLASSIC_BUTTON_X , PAD_BUTTON_Y ) ;
2011-07-26 00:28:22 +02:00
trig1 = new GuiTrigger ;
* Improved GameCube controller functions (patch by Dynamit)
R+Z=Screenshot, X=Gameinfo window, Y=Covers download
* Added Classic Controller and GameCube Controller support
in GameInfo window:
Right stick=3D Cover movement, X=Flip 3DCover 180°, L/R=Zoom
* Added Wifi6 and wifi10 pictures for GameInfo window.
(Thanks OriginalHamster)
* Added device priority selection for GameCube listing
in global Loader settings (SD->USB, or USB->SD)
* Added a "Use global" language setting for Gamecube games.
* Added support for USB devices with modified MBR's signature
to prevent WiiU's format message.
* Prevent Rockband cursor display on GameCube and WiiWare
games with "band" in the title (Crach bandicoot, Beach
Bandits, etc.)
* Added Dol's Video mode patcher in Loader/Game settings,
for games which couldn't be forced. (MadWorld, MotoGP08,
Mario Party 8, etc.)
♦ Region patch = Patches the dol's known video modes
to the region selected in "Video mode" setting,
but keep interlace/progressive references.
♦ ON = Patch all dol's known video modes to the one
selected in "Video mode" setting.
♦ ALL = Patch all dol's found video mode patterns
(even unknown video modes) to the one selected
in "Video mode" setting.
* DML: Updated DM(L) version detection up to v2.10
* DML: Automatically enable PADHook if Screenshot setting
is enabled
* DML: Fixed a bug where multiple video modes could be set
at the same time
* DEVO: Added a prompt if trying to launch a game from a
non FAT32 partition.
* DEVO: Added Direct Mapping Buttons setting (Devo r200+)
* DEVO: Added support for Language setting
* Language files updated: Chinese, French
2013-08-18 16:30:39 +02:00
trig1 - > SetButtonOnlyTrigger ( - 1 , WPAD_BUTTON_1 | WPAD_CLASSIC_BUTTON_Y , PAD_BUTTON_X ) ;
2011-07-26 00:28:22 +02:00
usedSpaceTxt = new GuiText ( " " , 18 , thColor ( " r=55 g=190 b=237 a=255 - hdd info color " ) ) ;
usedSpaceTxt - > SetAlignment ( thAlign ( " center - hdd info align hor " ) , thAlign ( " top - hdd info align ver " ) ) ;
usedSpaceTxt - > SetPosition ( thInt ( " 0 - hdd info pos x " ) , thInt ( " 400 - hdd info pos y " ) ) ;
gamecntTxt = new GuiText ( ( char * ) NULL , 18 , thColor ( " r=55 g=190 b=237 a=255 - game count color " ) ) ;
gamecntBtn = new GuiButton ( 100 , 18 ) ;
gamecntBtn - > SetAlignment ( thAlign ( " center - game count align hor " ) , thAlign ( " top - game count align ver " ) ) ;
gamecntBtn - > SetPosition ( thInt ( " 0 - game count pos x " ) , thInt ( " 420 - game count pos y " ) ) ;
gamecntBtn - > SetLabel ( gamecntTxt ) ;
gamecntBtn - > SetEffectGrow ( ) ;
gamecntBtn - > SetTrigger ( trigA ) ;
installBtnTT = new GuiTooltip ( tr ( " Install a game " ) ) ;
if ( Settings . wsprompt ) installBtnTT - > SetWidescreen ( Settings . widescreen ) ;
installBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
installBtnImg = new GuiImage ( btnInstall ) ;
installBtnImgOver = new GuiImage ( btnInstallOver ) ;
installBtnImg - > SetWidescreen ( Settings . widescreen ) ;
installBtnImgOver - > SetWidescreen ( Settings . widescreen ) ;
installBtn = new GuiButton ( installBtnImg , installBtnImgOver , ALIGN_LEFT , ALIGN_TOP ,
thInt ( " 16 - install btn pos x " ) , thInt ( " 355 - install btn pos y " ) ,
trigA , btnSoundOver , btnSoundClick2 , 1 , installBtnTT , 24 , - 30 , 0 , 5 ) ;
settingsBtnTT = new GuiTooltip ( tr ( " Settings " ) ) ;
if ( Settings . wsprompt ) settingsBtnTT - > SetWidescreen ( Settings . widescreen ) ;
settingsBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
settingsBtnImg = new GuiImage ( btnSettings ) ;
settingsBtnImg - > SetWidescreen ( Settings . widescreen ) ;
settingsBtnImgOver = new GuiImage ( btnSettingsOver ) ;
settingsBtnImgOver - > SetWidescreen ( Settings . widescreen ) ;
settingsBtn = new GuiButton ( settingsBtnImg , settingsBtnImgOver , 0 , 3 ,
thInt ( " 64 - settings btn pos x " ) , thInt ( " 371 - settings btn pos y " ) ,
trigA , btnSoundOver , btnSoundClick2 , 1 , settingsBtnTT , 65 , - 30 , 0 , 5 ) ;
homeBtnTT = new GuiTooltip ( tr ( " Back to HBC or Wii Menu " ) ) ;
if ( Settings . wsprompt ) homeBtnTT - > SetWidescreen ( Settings . widescreen ) ;
2012-05-19 15:40:58 +02:00
homeBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
2011-07-26 00:28:22 +02:00
homeBtnImg = new GuiImage ( btnhome ) ;
homeBtnImg - > SetWidescreen ( Settings . widescreen ) ;
homeBtnImgOver = new GuiImage ( btnhomeOver ) ;
homeBtnImgOver - > SetWidescreen ( Settings . widescreen ) ;
homeBtn = new GuiButton ( homeBtnImg , homeBtnImgOver , 0 , 3 ,
thInt ( " 489 - home menu btn pos x " ) , thInt ( " 371 - home menu btn pos y " ) ,
trigA , btnSoundOver , btnSoundClick2 , 1 , homeBtnTT , 15 , - 30 , 1 , 5 ) ;
homeBtn - > RemoveSoundClick ( ) ;
homeBtn - > SetTrigger ( trigHome ) ;
poweroffBtnTT = new GuiTooltip ( tr ( " Power off the Wii " ) ) ;
if ( Settings . wsprompt ) poweroffBtnTT - > SetWidescreen ( Settings . widescreen ) ;
poweroffBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
poweroffBtnImg = new GuiImage ( btnpwroff ) ;
poweroffBtnImgOver = new GuiImage ( btnpwroffOver ) ;
poweroffBtnImg - > SetWidescreen ( Settings . widescreen ) ;
poweroffBtnImgOver - > SetWidescreen ( Settings . widescreen ) ;
poweroffBtn = new GuiButton ( poweroffBtnImg , poweroffBtnImgOver , 0 , 3 ,
thInt ( " 576 - power off btn pos x " ) , thInt ( " 355 - power off btn pos y " ) ,
trigA , btnSoundOver , btnSoundClick2 , 1 , poweroffBtnTT , - 10 , - 30 , 1 , 5 ) ;
sdcardBtnTT = new GuiTooltip ( tr ( " Reload SD " ) ) ;
if ( Settings . wsprompt ) sdcardBtnTT - > SetWidescreen ( Settings . widescreen ) ;
sdcardBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
sdcardImg = new GuiImage ( btnsdcard ) ;
sdcardImgOver = new GuiImage ( btnsdcardOver ) ;
sdcardImg - > SetWidescreen ( Settings . widescreen ) ;
sdcardImgOver - > SetWidescreen ( Settings . widescreen ) ;
sdcardBtn = new GuiButton ( sdcardImg , sdcardImgOver , 0 , 3 ,
thInt ( " 160 - sd card btn pos x " ) , thInt ( " 395 - sd card btn pos y " ) ,
trigA , btnSoundOver , btnSoundClick2 , 1 , sdcardBtnTT , 15 , - 30 , 0 , 5 ) ;
gameInfo = new GuiButton ( 0 , 0 ) ;
gameInfo - > SetTrigger ( trig2 ) ;
gameInfo - > SetSoundClick ( btnSoundClick2 ) ;
favoriteBtnTT = new GuiTooltip ( tr ( " Display favorites only " ) ) ;
if ( Settings . wsprompt ) favoriteBtnTT - > SetWidescreen ( Settings . widescreen ) ;
favoriteBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
favoriteBtnImg = new GuiImage ( imgfavIcon ) ;
favoriteBtnImg - > SetWidescreen ( Settings . widescreen ) ;
favoriteBtnImg_g = new GuiImage ( imgfavIcon_gray ) ;
favoriteBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
favoriteBtn = new GuiButton ( favoriteBtnImg_g , favoriteBtnImg_g , ALIGN_LEFT , ALIGN_TOP , 0 , 0 ,
trigA , btnSoundOver , btnSoundClick2 , 1 , favoriteBtnTT , - 15 , 52 , 0 , 3 ) ;
favoriteBtn - > SetSelectable ( false ) ;
searchBtnTT = new GuiTooltip ( tr ( " Set Search-Filter " ) ) ;
if ( Settings . wsprompt ) searchBtnTT - > SetWidescreen ( Settings . widescreen ) ;
searchBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
searchBtnImg = new GuiImage ( imgsearchIcon ) ;
searchBtnImg - > SetWidescreen ( Settings . widescreen ) ;
searchBtnImg_g = new GuiImage ( imgsearchIcon_gray ) ;
searchBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
searchBtn = new GuiButton ( searchBtnImg_g , searchBtnImg_g , ALIGN_LEFT , ALIGN_TOP , 0 , 0 ,
trigA , btnSoundOver , btnSoundClick2 , 1 , searchBtnTT , - 15 , 52 , 0 , 3 ) ;
searchBtn - > SetSelectable ( false ) ;
sortBtnTT = new GuiTooltip ( " " ) ;
if ( Settings . wsprompt ) sortBtnTT - > SetWidescreen ( Settings . widescreen ) ;
sortBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
sortBtnImg = new GuiImage ( imgabcIcon ) ;
sortBtnImg - > SetWidescreen ( Settings . widescreen ) ;
sortBtn = new GuiButton ( sortBtnImg , sortBtnImg , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , sortBtnTT , - 15 , 52 , 0 , 3 ) ;
sortBtn - > SetSelectable ( false ) ;
2011-12-22 23:44:48 +01:00
loaderModeBtnTT = new GuiTooltip ( tr ( " Select loader mode " ) ) ;
if ( Settings . wsprompt ) loaderModeBtnTT - > SetWidescreen ( Settings . widescreen ) ;
loaderModeBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
loaderModeBtnImg = new GuiImage ( imgLoaderMode ) ;
loaderModeBtnImg - > SetWidescreen ( Settings . widescreen ) ;
loaderModeBtn = new GuiButton ( loaderModeBtnImg , loaderModeBtnImg , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , loaderModeBtnTT , - 15 , 52 , 0 , 3 ) ;
loaderModeBtn - > SetSelectable ( false ) ;
2011-07-26 00:28:22 +02:00
categBtnTT = new GuiTooltip ( tr ( " Select game categories " ) ) ;
2011-12-22 23:44:48 +01:00
if ( Settings . wsprompt ) categBtnTT - > SetWidescreen ( Settings . widescreen ) ;
2011-07-26 00:28:22 +02:00
categBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
categBtnImg = new GuiImage ( imgCategory ) ;
categBtnImg - > SetWidescreen ( Settings . widescreen ) ;
categBtnImg_g = new GuiImage ( imgCategory_gray ) ;
categBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
categBtn = new GuiButton ( categBtnImg , categBtnImg , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , categBtnTT , - 15 , 52 , 0 , 3 ) ;
categBtn - > SetSelectable ( false ) ;
listBtnTT = new GuiTooltip ( tr ( " Display as a list " ) ) ;
if ( Settings . wsprompt ) listBtnTT - > SetWidescreen ( Settings . widescreen ) ;
listBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
listBtnImg = new GuiImage ( imgarrangeList ) ;
listBtnImg - > SetWidescreen ( Settings . widescreen ) ;
listBtnImg_g = new GuiImage ( imgarrangeList_gray ) ;
listBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
listBtn = new GuiButton ( listBtnImg_g , listBtnImg_g , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , listBtnTT , 15 , 52 , 1 , 3 ) ;
listBtn - > SetSelectable ( false ) ;
gridBtnTT = new GuiTooltip ( tr ( " Display as a grid " ) ) ;
if ( Settings . wsprompt ) gridBtnTT - > SetWidescreen ( Settings . widescreen ) ;
gridBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
gridBtnImg = new GuiImage ( imgarrangeGrid ) ;
gridBtnImg - > SetWidescreen ( Settings . widescreen ) ;
gridBtnImg_g = new GuiImage ( imgarrangeGrid_gray ) ;
gridBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
gridBtn = new GuiButton ( gridBtnImg_g , gridBtnImg_g , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , gridBtnTT , 15 , 52 , 1 , 3 ) ;
gridBtn - > SetSelectable ( false ) ;
carouselBtnTT = new GuiTooltip ( tr ( " Display as a carousel " ) ) ;
if ( Settings . wsprompt ) carouselBtnTT - > SetWidescreen ( Settings . widescreen ) ;
carouselBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
carouselBtnImg = new GuiImage ( imgarrangeCarousel ) ;
carouselBtnImg - > SetWidescreen ( Settings . widescreen ) ;
carouselBtnImg_g = new GuiImage ( imgarrangeCarousel_gray ) ;
carouselBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
carouselBtn = new GuiButton ( carouselBtnImg_g , carouselBtnImg_g , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , carouselBtnTT , 15 , 52 , 1 , 3 ) ;
carouselBtn - > SetSelectable ( false ) ;
2012-05-06 12:59:58 +02:00
bannerGridBtnTT = new GuiTooltip ( tr ( " Display as a channel grid " ) ) ;
if ( Settings . wsprompt ) bannerGridBtnTT - > SetWidescreen ( Settings . widescreen ) ;
bannerGridBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
bannerGridBtnImg = new GuiImage ( imgBannerGrid ) ;
bannerGridBtnImg - > SetWidescreen ( Settings . widescreen ) ;
bannerGridBtnImg_g = new GuiImage ( imgBannerGrid_gray ) ;
bannerGridBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
bannerGridBtn = new GuiButton ( bannerGridBtnImg_g , bannerGridBtnImg_g , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , bannerGridBtnTT , 15 , 52 , 1 , 3 ) ;
bannerGridBtn - > SetSelectable ( false ) ;
2011-07-26 00:28:22 +02:00
lockBtnTT = new GuiTooltip ( NULL ) ;
if ( Settings . wsprompt ) lockBtnTT - > SetWidescreen ( Settings . widescreen ) ;
lockBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
lockBtnImg = new GuiImage ( imgLock ) ;
lockBtnImg - > SetWidescreen ( Settings . widescreen ) ;
lockBtnImg_g = new GuiImage ( imgLock_gray ) ;
lockBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
lockBtn = new GuiButton ( lockBtnImg_g , lockBtnImg_g , ALIGN_LEFT , ALIGN_TOP , 0 , 0 , trigA , btnSoundOver , btnSoundClick2 , 1 , lockBtnTT , 15 , 52 , 1 , 3 ) ;
lockBtn - > SetSelectable ( false ) ;
unlockBtnImg = new GuiImage ( imgUnlock ) ;
unlockBtnImg - > SetWidescreen ( Settings . widescreen ) ;
unlockBtnImg_g = new GuiImage ( imgUnlock_gray ) ;
unlockBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
dvdBtnTT = new GuiTooltip ( tr ( " Mount DVD drive " ) ) ;
if ( Settings . wsprompt ) dvdBtnTT - > SetWidescreen ( Settings . widescreen ) ;
dvdBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
dvdBtnImg = new GuiImage ( imgdvd ) ;
dvdBtnImg - > SetWidescreen ( Settings . widescreen ) ;
dvdBtnImg_g = new GuiImage ( imgdvd_gray ) ;
dvdBtnImg_g - > SetWidescreen ( Settings . widescreen ) ;
2011-12-28 17:27:30 +01:00
dvdBtn = new GuiButton ( dvdBtnImg_g , 0 , ALIGN_LEFT , ALIGN_TOP , 0 , 0 ,
2011-07-26 00:28:22 +02:00
trigA , btnSoundOver , btnSoundClick2 , 1 , dvdBtnTT , 15 , 52 , 1 , 3 ) ;
dvdBtn - > SetSelectable ( false ) ;
homebrewBtnTT = new GuiTooltip ( tr ( " Homebrew Launcher " ) ) ;
if ( Settings . wsprompt ) homebrewBtnTT - > SetWidescreen ( Settings . widescreen ) ;
homebrewBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
homebrewImg = new GuiImage ( homebrewImgData ) ;
homebrewImgOver = new GuiImage ( homebrewImgDataOver ) ;
homebrewImg - > SetWidescreen ( Settings . widescreen ) ;
homebrewImgOver - > SetWidescreen ( Settings . widescreen ) ;
homebrewBtn = new GuiButton ( homebrewImg , homebrewImgOver , ALIGN_LEFT , ALIGN_TOP , thInt ( " 410 - HBC btn pos x " ) , thInt ( " 405 - HBC btn pos y " ) ,
trigA , btnSoundOver , btnSoundClick2 , 1 , homebrewBtnTT , 15 , - 30 , 1 , 5 ) ;
//Downloading Covers
DownloadBtnTT = new GuiTooltip ( tr ( " Click to Download Covers " ) ) ;
if ( Settings . wsprompt ) DownloadBtnTT - > SetWidescreen ( Settings . widescreen ) ;
DownloadBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
DownloadBtn = new GuiButton ( 0 , 0 ) ;
DownloadBtn - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
DownloadBtn - > SetPosition ( thInt ( " 26 - cover/download btn pos x " ) , thInt ( " 58 - cover/download btn pos y " ) ) ;
DownloadBtn - > SetSoundOver ( btnSoundOver ) ;
DownloadBtn - > SetTrigger ( 0 , trigA ) ;
DownloadBtn - > SetTrigger ( 1 , trig1 ) ;
DownloadBtn - > SetToolTip ( DownloadBtnTT , 205 , - 30 ) ;
DownloadBtn - > SetSelectable ( false ) ;
gameCoverImg = new GuiImage ( ) ;
gameCoverImg - > SetPosition ( thInt ( " 26 - cover/download btn pos x " ) , thInt ( " 58 - cover/download btn pos y " ) ) ;
gameCoverImg - > SetWidescreen ( Settings . widescreen ) ;
IDBtnTT = new GuiTooltip ( tr ( " Click to change game ID " ) ) ;
if ( Settings . wsprompt ) IDBtnTT - > SetWidescreen ( Settings . widescreen ) ;
IDBtnTT - > SetAlpha ( thInt ( " 255 - tooltip alpha " ) ) ;
idBtn = new GuiButton ( 60 , 23 ) ;
idBtn - > SetPosition ( thInt ( " 68 - gameID btn pos x " ) , thInt ( " 305 - gameID btn pos y " ) ) ;
idBtn - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
idBtn - > SetSoundOver ( btnSoundOver ) ;
idBtn - > SetTrigger ( 0 , trigA ) ;
idBtn - > SetToolTip ( IDBtnTT , 205 , - 30 ) ;
idBtn - > SetSelectable ( false ) ;
GXColor clockColor = thColor ( " r=138 g=138 b=138 a=240 - clock color " ) ;
2012-05-19 15:40:58 +02:00
float clockFontScaleFactor = thFloat ( " 1.0 - Overrided clock scale factor. 1.0=allow user setting " ) ! = 1.0f ? thFloat ( " 1.0 - Overrided clock scale factor. 1.0=allow user setting " ) : Settings . ClockFontScaleFactor ;
2015-03-08 17:49:07 +01:00
clockTimeBack = new GuiText ( " 88:88 " , 40 / Settings . FontScaleFactor * clockFontScaleFactor , ( GXColor ) { clockColor . r , clockColor . g , clockColor . b , ( u8 ) ( clockColor . a / 6 ) } ) ;
2011-07-26 00:28:22 +02:00
clockTimeBack - > SetAlignment ( thAlign ( " left - clock align hor " ) , thAlign ( " top - clock align ver " ) ) ;
clockTimeBack - > SetPosition ( thInt ( " 275 - clock pos x " ) , thInt ( " 335 - clock pos y " ) ) ;
clockTimeBack - > SetFont ( Resources : : GetFile ( " clock.ttf " ) , Resources : : GetFileSize ( " clock.ttf " ) ) ;
2012-05-19 15:40:58 +02:00
clockTime = new GuiText ( " " , 40 / Settings . FontScaleFactor * clockFontScaleFactor , clockColor ) ;
2011-07-26 00:28:22 +02:00
clockTime - > SetAlignment ( thAlign ( " left - clock align hor " ) , thAlign ( " top - clock align ver " ) ) ;
clockTime - > SetPosition ( thInt ( " 275 - clock pos x " ) , thInt ( " 335 - clock pos y " ) ) ;
clockTime - > SetFont ( Resources : : GetFile ( " clock.ttf " ) , Resources : : GetFileSize ( " clock.ttf " ) ) ;
ToolBar . push_back ( favoriteBtn ) ;
ToolBar . push_back ( searchBtn ) ;
ToolBar . push_back ( sortBtn ) ;
2012-05-19 15:40:58 +02:00
ToolBar . push_back ( categBtn ) ;
2011-07-26 00:28:22 +02:00
ToolBar . push_back ( listBtn ) ;
ToolBar . push_back ( gridBtn ) ;
2012-05-19 15:40:58 +02:00
ToolBar . push_back ( loaderModeBtn ) ;
2011-07-26 00:28:22 +02:00
ToolBar . push_back ( carouselBtn ) ;
2012-05-19 15:40:58 +02:00
ToolBar . push_back ( bannerGridBtn ) ;
2011-07-26 00:28:22 +02:00
ToolBar . push_back ( lockBtn ) ;
ToolBar . push_back ( dvdBtn ) ;
SetUpdateCallback ( UpdateCallback ) ;
ReloadBrowser ( ) ;
2010-12-12 17:31:13 +01:00
}
GameBrowseMenu : : ~ GameBrowseMenu ( )
{
2011-07-26 00:28:22 +02:00
Exiting = true ;
ResumeGui ( ) ;
SetEffect ( EFFECT_FADE , - 20 ) ;
while ( parentElement & & this - > GetEffect ( ) > 0 ) usleep ( 100 ) ;
HaltGui ( ) ;
if ( parentElement )
( ( GuiWindow * ) parentElement ) - > Remove ( this ) ;
RemoveAll ( ) ;
2012-01-08 19:24:46 +01:00
//! Reset optional background image
bgImg - > SetImage ( background ) ;
delete listBackground ;
delete carouselBackground ;
delete gridBackground ;
2011-07-26 00:28:22 +02:00
delete btnInstall ;
delete btnInstallOver ;
delete btnSettings ;
delete btnSettingsOver ;
delete btnpwroff ;
delete btnpwroffOver ;
delete btnhome ;
delete btnhomeOver ;
delete btnsdcardOver ;
delete btnsdcard ;
delete imgfavIcon ;
delete imgfavIcon_gray ;
delete imgsearchIcon ;
delete imgsearchIcon_gray ;
delete imgabcIcon ;
delete imgrankIcon ;
delete imgplayCountIcon ;
delete imgplayersSortIcon ;
delete imgarrangeGrid ;
delete imgarrangeGrid_gray ;
delete imgarrangeCarousel ;
delete imgarrangeCarousel_gray ;
2012-05-06 12:59:58 +02:00
delete imgBannerGrid ;
delete imgBannerGrid_gray ;
2011-07-26 00:28:22 +02:00
delete imgarrangeList ;
delete imgarrangeList_gray ;
delete imgdvd ;
delete imgdvd_gray ;
delete imgLock ;
delete imgLock_gray ;
delete imgUnlock ;
delete imgUnlock_gray ;
delete imgCategory ;
delete imgCategory_gray ;
2011-12-22 23:44:48 +01:00
delete imgLoaderMode ;
2011-07-26 00:28:22 +02:00
delete homebrewImgData ;
delete homebrewImgDataOver ;
delete gameCover ;
delete trigA ;
delete trigHome ;
delete trig1 ;
delete trig2 ;
delete installBtnImg ;
delete installBtnImgOver ;
delete settingsBtnImg ;
delete settingsBtnImgOver ;
delete homeBtnImg ;
delete homeBtnImgOver ;
delete poweroffBtnImg ;
delete poweroffBtnImgOver ;
delete sdcardImg ;
delete sdcardImgOver ;
delete favoriteBtnImg ;
delete favoriteBtnImg_g ;
delete searchBtnImg ;
delete searchBtnImg_g ;
delete sortBtnImg ;
delete listBtnImg ;
delete listBtnImg_g ;
delete gridBtnImg ;
delete gridBtnImg_g ;
delete carouselBtnImg ;
delete carouselBtnImg_g ;
2012-05-06 12:59:58 +02:00
delete bannerGridBtnImg ;
delete bannerGridBtnImg_g ;
2011-07-26 00:28:22 +02:00
delete lockBtnImg ;
delete lockBtnImg_g ;
delete unlockBtnImg ;
delete unlockBtnImg_g ;
delete dvdBtnImg ;
delete dvdBtnImg_g ;
delete categBtnImg ;
delete categBtnImg_g ;
2011-12-22 23:44:48 +01:00
delete loaderModeBtnImg ;
2011-07-26 00:28:22 +02:00
delete homebrewImg ;
delete homebrewImgOver ;
delete gameCoverImg ;
delete GameIDTxt ;
delete GameRegionTxt ;
delete usedSpaceTxt ;
delete gamecntTxt ;
delete clockTimeBack ;
delete clockTime ;
delete gamecntBtn ;
delete installBtn ;
delete settingsBtn ;
delete homeBtn ;
delete poweroffBtn ;
delete sdcardBtn ;
delete gameInfo ;
delete favoriteBtn ;
delete searchBtn ;
delete sortBtn ;
delete listBtn ;
delete gridBtn ;
delete carouselBtn ;
2012-05-06 12:59:58 +02:00
delete bannerGridBtn ;
2011-07-26 00:28:22 +02:00
delete lockBtn ;
delete dvdBtn ;
delete categBtn ;
2011-12-22 23:44:48 +01:00
delete loaderModeBtn ;
2011-07-26 00:28:22 +02:00
delete homebrewBtn ;
delete DownloadBtn ;
delete idBtn ;
delete installBtnTT ;
delete settingsBtnTT ;
delete homeBtnTT ;
delete poweroffBtnTT ;
delete sdcardBtnTT ;
delete favoriteBtnTT ;
delete searchBtnTT ;
delete sortBtnTT ;
delete listBtnTT ;
delete gridBtnTT ;
delete carouselBtnTT ;
2012-05-06 12:59:58 +02:00
delete bannerGridBtnTT ;
2011-07-26 00:28:22 +02:00
delete lockBtnTT ;
delete dvdBtnTT ;
delete categBtnTT ;
2011-12-22 23:44:48 +01:00
delete loaderModeBtnTT ;
2011-07-26 00:28:22 +02:00
delete homebrewBtnTT ;
delete DownloadBtnTT ;
delete IDBtnTT ;
delete gameBrowser ;
mainWindow - > Remove ( searchBar ) ;
delete searchBar ;
ResumeGui ( ) ;
2010-12-12 17:31:13 +01:00
}
2011-01-21 20:43:59 +01:00
int GameBrowseMenu : : Execute ( )
{
2011-07-26 00:28:22 +02:00
int retMenu = MENU_NONE ;
2011-01-21 20:43:59 +01:00
2011-07-26 00:28:22 +02:00
GameBrowseMenu * Menu = new GameBrowseMenu ( ) ;
mainWindow - > Append ( Menu ) ;
2011-01-21 20:43:59 +01:00
2011-07-26 00:28:22 +02:00
if ( Settings . ShowFreeSpace )
{
ThreadedTask : : Instance ( ) - > AddCallback ( & Menu - > HDDSizeCallback ) ;
ThreadedTask : : Instance ( ) - > Execute ( ) ;
}
2011-01-21 20:43:59 +01:00
2011-07-26 00:28:22 +02:00
while ( retMenu = = MENU_NONE )
{
2012-05-06 12:59:58 +02:00
usleep ( 50000 ) ;
2011-01-21 20:43:59 +01:00
2011-07-26 00:28:22 +02:00
if ( shutdown )
Sys_Shutdown ( ) ;
if ( reset )
Sys_Reboot ( ) ;
2011-01-21 20:43:59 +01:00
2011-07-26 00:28:22 +02:00
retMenu = Menu - > MainLoop ( ) ;
}
2011-01-21 20:43:59 +01:00
2011-07-26 00:28:22 +02:00
delete Menu ;
2011-01-21 20:43:59 +01:00
2011-07-26 00:28:22 +02:00
return retMenu ;
2011-01-21 20:43:59 +01:00
}
2010-12-12 17:31:13 +01:00
void GameBrowseMenu : : ReloadBrowser ( )
{
2011-07-26 00:28:22 +02:00
ResumeGui ( ) ;
SetEffect ( EFFECT_FADE , - 40 ) ;
while ( parentElement & & this - > GetEffect ( ) > 0 ) usleep ( 100 ) ;
HaltGui ( ) ;
RemoveAll ( ) ;
mainWindow - > Remove ( searchBar ) ;
gamecntTxt - > SetText ( fmt ( " %s: %i " , tr ( " Games " ) , gameList . size ( ) ) ) ;
const char * sortTTText = NULL ;
GuiImageData * sortImgData = NULL ;
if ( Settings . GameSort & SORT_RANKING )
{
sortTTText = tr ( " Sort by rank " ) ;
sortImgData = imgrankIcon ;
}
else if ( Settings . GameSort & SORT_PLAYCOUNT )
{
sortTTText = tr ( " Sort order by most played " ) ;
sortImgData = imgplayCountIcon ;
}
else if ( Settings . GameSort & SORT_PLAYERS )
{
sortTTText = tr ( " Sort by number of players " ) ;
sortImgData = imgplayersSortIcon ;
}
else
{
sortTTText = tr ( " Sort alphabetically " ) ;
sortImgData = imgabcIcon ;
}
sortBtnTT - > SetText ( sortTTText ) ;
sortBtnImg - > SetImage ( sortImgData ) ;
if ( DiscDriveCoverOld & 0x02 )
dvdBtn - > SetImage ( dvdBtnImg ) ;
else
dvdBtn - > SetImage ( dvdBtnImg_g ) ;
if ( Settings . GameSort & SORT_FAVORITE )
{
favoriteBtn - > SetImage ( favoriteBtnImg ) ;
favoriteBtn - > SetImageOver ( favoriteBtnImg ) ;
}
else
{
favoriteBtn - > SetImage ( favoriteBtnImg_g ) ;
favoriteBtn - > SetImageOver ( favoriteBtnImg_g ) ;
}
if ( * gameList . GetCurrentFilter ( ) )
{
if ( ! show_searchwindow ) searchBtn - > SetEffect ( EFFECT_PULSE , 10 , 105 ) ;
searchBtn - > SetImage ( searchBtnImg ) ;
searchBtn - > SetImageOver ( searchBtnImg ) ;
}
else if ( ! show_searchwindow )
{
searchBtn - > SetImage ( searchBtnImg_g ) ;
searchBtn - > SetImageOver ( searchBtnImg_g ) ;
}
if ( Settings . godmode )
{
GuiImage * unlockImage = strcmp ( Settings . unlockCode , " " ) = = 0 ? unlockBtnImg_g : unlockBtnImg ;
lockBtn - > SetImage ( unlockImage ) ;
lockBtn - > SetImageOver ( unlockImage ) ;
lockBtnTT - > SetText ( tr ( " Lock USB Loader GX " ) ) ;
}
else
{
lockBtn - > SetImage ( lockBtnImg ) ;
lockBtn - > SetImageOver ( lockBtnImg ) ;
lockBtnTT - > SetText ( tr ( " Unlock USB Loader GX " ) ) ;
}
categBtn - > SetImage ( categBtnImg ) ;
for ( u32 n = 0 ; n < Settings . EnabledCategories . size ( ) ; + + n )
{
if ( Settings . EnabledCategories [ n ] = = 0 )
{
categBtn - > SetImage ( categBtnImg_g ) ;
break ;
}
}
2011-06-03 22:31:09 +02:00
2011-06-24 21:11:36 +02:00
//! Check if the loaded setting is still in range
Settings . SelectedGame = LIMIT ( Settings . SelectedGame , 0 , gameList . size ( ) - 1 ) ;
Settings . GameListOffset = LIMIT ( Settings . GameListOffset , 0 , gameList . size ( ) - 1 ) ;
2010-12-12 17:31:13 +01:00
2011-07-26 00:28:22 +02:00
delete gameBrowser ;
delete searchBar ;
gameBrowser = NULL ;
searchBar = NULL ;
if ( Settings . gameDisplay = = LIST_MODE )
{
2012-05-06 12:59:58 +02:00
//! only one image, reload it since it won't be changeable later
if ( gameList . size ( ) = = 1 )
LoadCover ( gameList [ 0 ] ) ;
2011-07-26 00:28:22 +02:00
if ( gameList . size ( ) > 0 )
Append ( gameCoverImg ) ;
DownloadBtn - > SetSize ( 160 , 224 ) ;
listBtn - > SetImage ( listBtnImg ) ;
listBtn - > SetImageOver ( listBtnImg ) ;
gridBtn - > SetImage ( gridBtnImg_g ) ;
gridBtn - > SetImageOver ( gridBtnImg_g ) ;
carouselBtn - > SetImage ( carouselBtnImg_g ) ;
carouselBtn - > SetImageOver ( carouselBtnImg_g ) ;
2012-05-06 12:59:58 +02:00
bannerGridBtn - > SetImage ( bannerGridBtnImg_g ) ;
bannerGridBtn - > SetImageOver ( bannerGridBtnImg_g ) ;
2011-07-26 00:28:22 +02:00
2012-05-06 12:59:58 +02:00
favoriteBtn - > SetPosition ( Settings . widescreen ? thInt ( " 214 - list layout favorite btn pos x widescreen " ) : thInt ( " 168 - list layout favorite btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout favorite btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
searchBtn - > SetPosition ( Settings . widescreen ? thInt ( " 246 - list layout search btn pos x widescreen " ) : thInt ( " 208 - list layout search btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout search btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
sortBtn - > SetPosition ( Settings . widescreen ? thInt ( " 278 - list layout abc/sort btn pos x widescreen " ) : thInt ( " 248 - list layout abc/sort btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout abc/sort btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
loaderModeBtn - > SetPosition ( Settings . widescreen ? thInt ( " 310 - list layout loadermode btn pos x widescreen " ) : thInt ( " 288 - list layout loadermode btn pos x " ) ,
2011-12-22 23:44:48 +01:00
thInt ( " 13 - list layout loadermode btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
categBtn - > SetPosition ( Settings . widescreen ? thInt ( " 342 - list layout category btn pos x widescreen " ) : thInt ( " 328 - list layout category btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout category btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
listBtn - > SetPosition ( Settings . widescreen ? thInt ( " 374 - list layout list btn pos x widescreen " ) : thInt ( " 368 - list layout list btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout list btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
gridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 406 - list layout grid btn pos x widescreen " ) : thInt ( " 408 - list layout grid btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout grid btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
carouselBtn - > SetPosition ( Settings . widescreen ? thInt ( " 438 - list layout carousel btn pos x widescreen " ) : thInt ( " 448 - list layout carousel btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout carousel btn pos y " ) ) ;
USB Loader GX v3.0:
Released on 2012 05 12
ATTENTION:
USB Loader GX Version 3.0 introduces a new auto-update mechanism which is not compatible with old versions. (The old host is offline)
If you are still using an old version of USB Loader GX, you need to update manually.
Download the latest version or use our easy installer for Windows available on our website. http://code.google.com/p/usbloader-gui/downloads/list
You can also check how to install or update manually here: http://code.google.com/p/usbloader-gui/wiki/Installation
We are sorry for the inconvenience.
New:
- Added a new Layout: Channel grid mode! Channel grid displays games as channels and plays banner animations like the real Wii System Menu.
Channel grid mode and banner animation requires AHBPROT flags to load resource files directly from your Wii.
If you use an old HBC you should use our latest forwarder or update the HBC otherwise you wont have that support.
- Added Channel launching from Emulated NAND. (big thanks to TriiForce guys and Miigotu)
- Added GameCube games launching from SD Card through Dios Mios Lite (DML). (thanks to G0dLiKe, crediar, all DML devs and FIX94)
Check DML website here http://code.google.com/p/dios-mios-lite-source-project/
- Added direct install/uninstall of WAD files to the Emulated NAND Channel path in the features settings menu.
- Added a new icon in the toolbar to select the origin of the titles: Wii games, Channels from Wii, Channels from EmuNand, GameCube games.
- Added the possibility to boot USB Loader GX without an HDD connected (It will fall back to "Channel from Wii" title's origin).
- Added an option to choose which Game Window mode to use between the old "Rotating Disc" or the new "Banner Animation".
- Added the favorite level setting to the game settings since it is no longer displayed when using "Banner Animation" game window mode.
- Added an option to adjust the screen size for overscan TVs (Use negative values to shrink the display).
- Added display of game's size from Wii disc games on the game window prompt (Rotating disc mode only).
- Added a button in the search window to switch between "Beginning" and "Content" search methods.
- Added auto-complete function to the search window.
- Added a new GUI numpad for entering numbers.
- Added setting for tooltip delay time.
- Added resize of widescreen screenshots to 768px width.
- Added cover download for the currently inserted disc.
- Added delete of full cover on art work uninstall and game uninstall.
- Added a parental control option to block priiloader override on return to system menu.
- Added a prompt asking for downloading new language files when trying to update and no language files exist yet.
- Added translation parsing for rating descriptors and for genres from wiitdb.xml. Requires a one time update of wiitdb.xml for cache rebuild.
- Added a new option to force reading the game's titles from disc header.
- Added renaming of internal TitleID of all HBC versions to JODI for GameTDB to find it.
- Added a cheat update button to re-download the cheat text file.
- Added a cancel button to several progress bar windows: Game installation, NAND extraction, etc.
- Added separate path and setting for Emulated NAND Saves and Emulated NAND Channels.
- Added per game NAND emulation path setting.
- Added Mii extractor and SYSCONF file extractor to Emulated NAND. It always overwrites old files.
- Added automatic Mii extraction on save game extract if the Mii file does not exist yet on Emulated NAND.
- Added keep of AHBPROT flag on IOS Reload. Homebrews booted now have AHBPROT. (thanks to davebaol)
- Added a new feature to force aspect ratio on games/channels. (thanks to giantpune for help with disassembler)
- Added Zelda Skyward Sword Alternative dol offset (PAL and NTSC-U) for automatic dol selection.
- Added detection of enabled cheat codes from an already created .gct file.
- Added support for 2 USB drives for d2x cIOS (Requires d2x v9+).
Changes:
- Removed buggy focus system completely and added support to control screen pointer with analog sticks from respective controllers if the wiimote is
not pointing to the screen. Compatible with Nunchuk, Classic Controller and GameCube controller. A speed factor is available in the GUI settings.
- Restructured game's settings for different types of games (Wii/GC/Channels).
- Added auto position of progress window messages in vertical direction depending of how many are used at the same time.
- If "Titles from GameTDB" is not enabled the title will be read from the folder name if possible or from the game disc header.
Title caching can still be used and is recommended in that case.
- Settings title, keyboard text and key color can be changed by themes now.
- Added optional background image for list/carousel/grid layouts (unused by default theme).
- Use of old built-in font for credits window because it doesn't look good with the system menu one.
- Removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason).
- Improved detection of game partition when starting the loader without configs (fresh start).
- Isfs is now initiated once and deinitiated when cleaning up only, instead of the whole init/deinit every single access.
- Updated file system libraries.
- Removed pngu which is not needed, changed screenshot function to use libgd instead
- added init of network into background thread so it is cancelable and has a timeout
- changed wifi gecko to UDP socket
- Converted all ogg sounds from 44.1 khz to 48 khz.
- Optimized use of memory:
Sizes over 30kb go to mem2 now first till it runs out ; Avoid use of mem2 area used on IOS_Reload (first 2 mb) ;
Change font character texture to I4 which uses half as much memory (less cache memory).
- Changed update function to get the files from googlecode website, since old update host website isn't accessible anymore.
Fixes:
- Fixed small scrollbar bug when having only 1 item.
- Fixed reloading of cover image on game list when only 1 item is left after a change (e.g. filtering).
- Improved calculation of progress speed. Now it is always the last 15 secs average instead of overall progress speed.
- Fixed "new" game showing even with a parental control setting.
- Fixed removing of unused cached titles on wiitdb load.
- Fixed ocarina codes when using more than 255 codes (brawl+) (untested).
- Fixed bug where entering "-1" (Use global) for cIOS was not possible in game settings.
- Fixed playback of some BNS banner sounds.
- Fixed reloading into another IOS before launch of game.
- Removed buggy lz77 implementation and use the one known working.
- Fixed launching of dollz compressed dol files. (thanks FIX94)
- Fixed reading game's titles from disc header on fat32/ntfs/ext.
- Fixed crash on missing <app> tag on meta.xml files.
- Forwarder: Fixed crash on drives with physical sector size > 512 bytes.
- Forwarder: Fixed endless waiting for slow HDD. (thanks to FIX94)
- Forwarder: Added missing ext2 unmount. (thanks to FIX94)
- Supports new WiiMotion+ controllers by using latest libraries.
- Lots of string handling improvements (thanks to gerbilsoft for his patch)
New Channel Grid Mode specific features:
- New settings section for all banner's settings.
- Use of BNR (banner animation) cache setting to load banners and icon's animation faster. (Enabled by default. Takes ~35MB/100 Banners)
Wii games/Channels also accept ID3.bnr for custom-made multi-region banners.
- BNR cache path setting.
- Pulsing "new" icon on banner grid layout for new games.
- Centering and size setting for banner's animation resources.
- Channel's zooming speed setting.
- Page's scrolling speed setting.
New GameCube specific features:
- Supports Dios Mios Lite (DML) v1.2+
- Uses of a custom banner for GameCube games which loads the game's internal opening.bnr informations (big thanks to diddy
from the wiithemeteam for creating the brlyt/brlan for the banner).
- DML settings editable from the loader (global and per game settings).
- Supported formats for gamecubes are ISO/GCM and GCRegEx.
- Custom game paths. The following paths are accepted:
1. configpath/ID6/
2. configpath/ID6_Title/
3. configpath/Title [ID6]/
4. configpath/gamepath/ (slow loading speed)
Accepted game's filenames: title.iso, title.gcm, GAMEID6.iso, GAMEID6.gcm
- DML cheats now work the same way as for other Wii games, gct goes to "GCT Cheatcode Path" as GAMEID.gct
- GameCube games copy from USB to SD on demand with choice menu to delete SD games to make space,
If you want to use this feature then set the "Main GC path" to USB and the "SD GameCube path" to SD card.
If duplicated games are detected on SD and USB, the games on SD will be prioritized.
- Added GameCube disc dump functionality with multi-disc menu game selection, compress and align support
(thanks to FIX94 and Overjoy for their disc dump sources on which this is based).
- Use of the BNR cache path to load ID6.bnr or ID3.bnr if available for custom-made banners. (Loading only)
- Video mode option to force interlace mode on GameCube.
- Fixed force prog mode on DML 1.4
2012-05-12 11:10:37 +02:00
bannerGridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 470 - list layout bannergrid btn pos x widescreen " ) : thInt ( " 488 - list layout bannergrid btn pos x " ) ,
2012-05-06 12:59:58 +02:00
thInt ( " 13 - list layout bannergrid btn pos y " ) ) ;
lockBtn - > SetPosition ( Settings . widescreen ? thInt ( " 502 - list layout lock btn pos x widescreen " ) : thInt ( " 528 - list layout lock btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout lock btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
dvdBtn - > SetPosition ( Settings . widescreen ? thInt ( " 534 - list layout dvd btn pos x widescreen " ) : thInt ( " 568 - list layout dvd btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - list layout dvd btn pos y " ) ) ;
gameBrowser = new GuiGameList ( thInt ( " 396 - game list layout width " ) , thInt ( " 280 - game list layout height " ) , Settings . GameListOffset ) ;
gameBrowser - > SetPosition ( thInt ( " 200 - game list layout pos x " ) , thInt ( " 49 - game list layout pos y " ) ) ;
2012-05-06 12:59:58 +02:00
gameBrowser - > SetAlignment ( ALIGN_LEFT , ALIGN_CENTER ) ;
2011-07-26 00:28:22 +02:00
gameBrowser - > SetSelectedOption ( Settings . SelectedGame ) ;
2012-01-08 19:24:46 +01:00
//! Setup optional background image
2012-01-23 22:26:41 +01:00
if ( ! listBackground )
listBackground = Resources : : GetImageData ( " listBackground.png " ) ;
2012-01-08 19:24:46 +01:00
if ( listBackground )
bgImg - > SetImage ( listBackground ) ;
else
bgImg - > SetImage ( background ) ;
2011-07-26 00:28:22 +02:00
}
else if ( Settings . gameDisplay = = GRID_MODE )
{
DownloadBtn - > SetSize ( 0 , 0 ) ;
UpdateGameInfoText ( NULL ) ;
gridBtn - > SetImage ( gridBtnImg ) ;
gridBtn - > SetImageOver ( gridBtnImg ) ;
listBtn - > SetImage ( listBtnImg_g ) ;
listBtn - > SetImageOver ( listBtnImg_g ) ;
carouselBtn - > SetImage ( carouselBtnImg_g ) ;
carouselBtn - > SetImageOver ( carouselBtnImg_g ) ;
2012-05-06 12:59:58 +02:00
bannerGridBtn - > SetImage ( bannerGridBtnImg_g ) ;
bannerGridBtn - > SetImageOver ( bannerGridBtnImg_g ) ;
2011-07-26 00:28:22 +02:00
2012-05-06 12:59:58 +02:00
favoriteBtn - > SetPosition ( Settings . widescreen ? thInt ( " 144 - grid layout favorite btn pos x widescreen " ) : thInt ( " 100 - grid layout favorite btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout favorite btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
searchBtn - > SetPosition ( Settings . widescreen ? thInt ( " 176 - grid layout search btn pos x widescreen " ) : thInt ( " 140 - grid layout search btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout search btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
sortBtn - > SetPosition ( Settings . widescreen ? thInt ( " 208 - grid layout abc/sort btn pos x widescreen " ) : thInt ( " 180 - grid layout abc/sort btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout abc/sort btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
loaderModeBtn - > SetPosition ( Settings . widescreen ? thInt ( " 240 - grid layout loadermode btn pos x widescreen " ) : thInt ( " 220 - grid layout loadermode btn pos x " ) ,
2011-12-22 23:44:48 +01:00
thInt ( " 13 - grid layout loadermode btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
categBtn - > SetPosition ( Settings . widescreen ? thInt ( " 272 - grid layout category btn pos x widescreen " ) : thInt ( " 260 - grid layout category btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout category btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
listBtn - > SetPosition ( Settings . widescreen ? thInt ( " 304 - grid layout list btn pos x widescreen " ) : thInt ( " 300 - grid layout list btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout list btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
gridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 336 - grid layout grid btn pos x widescreen " ) : thInt ( " 340 - grid layout grid btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout grid btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
carouselBtn - > SetPosition ( Settings . widescreen ? thInt ( " 368 - grid layout carousel btn pos x widescreen " ) : thInt ( " 380 - grid layout carousel btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout carousel btn pos y " ) ) ;
USB Loader GX v3.0:
Released on 2012 05 12
ATTENTION:
USB Loader GX Version 3.0 introduces a new auto-update mechanism which is not compatible with old versions. (The old host is offline)
If you are still using an old version of USB Loader GX, you need to update manually.
Download the latest version or use our easy installer for Windows available on our website. http://code.google.com/p/usbloader-gui/downloads/list
You can also check how to install or update manually here: http://code.google.com/p/usbloader-gui/wiki/Installation
We are sorry for the inconvenience.
New:
- Added a new Layout: Channel grid mode! Channel grid displays games as channels and plays banner animations like the real Wii System Menu.
Channel grid mode and banner animation requires AHBPROT flags to load resource files directly from your Wii.
If you use an old HBC you should use our latest forwarder or update the HBC otherwise you wont have that support.
- Added Channel launching from Emulated NAND. (big thanks to TriiForce guys and Miigotu)
- Added GameCube games launching from SD Card through Dios Mios Lite (DML). (thanks to G0dLiKe, crediar, all DML devs and FIX94)
Check DML website here http://code.google.com/p/dios-mios-lite-source-project/
- Added direct install/uninstall of WAD files to the Emulated NAND Channel path in the features settings menu.
- Added a new icon in the toolbar to select the origin of the titles: Wii games, Channels from Wii, Channels from EmuNand, GameCube games.
- Added the possibility to boot USB Loader GX without an HDD connected (It will fall back to "Channel from Wii" title's origin).
- Added an option to choose which Game Window mode to use between the old "Rotating Disc" or the new "Banner Animation".
- Added the favorite level setting to the game settings since it is no longer displayed when using "Banner Animation" game window mode.
- Added an option to adjust the screen size for overscan TVs (Use negative values to shrink the display).
- Added display of game's size from Wii disc games on the game window prompt (Rotating disc mode only).
- Added a button in the search window to switch between "Beginning" and "Content" search methods.
- Added auto-complete function to the search window.
- Added a new GUI numpad for entering numbers.
- Added setting for tooltip delay time.
- Added resize of widescreen screenshots to 768px width.
- Added cover download for the currently inserted disc.
- Added delete of full cover on art work uninstall and game uninstall.
- Added a parental control option to block priiloader override on return to system menu.
- Added a prompt asking for downloading new language files when trying to update and no language files exist yet.
- Added translation parsing for rating descriptors and for genres from wiitdb.xml. Requires a one time update of wiitdb.xml for cache rebuild.
- Added a new option to force reading the game's titles from disc header.
- Added renaming of internal TitleID of all HBC versions to JODI for GameTDB to find it.
- Added a cheat update button to re-download the cheat text file.
- Added a cancel button to several progress bar windows: Game installation, NAND extraction, etc.
- Added separate path and setting for Emulated NAND Saves and Emulated NAND Channels.
- Added per game NAND emulation path setting.
- Added Mii extractor and SYSCONF file extractor to Emulated NAND. It always overwrites old files.
- Added automatic Mii extraction on save game extract if the Mii file does not exist yet on Emulated NAND.
- Added keep of AHBPROT flag on IOS Reload. Homebrews booted now have AHBPROT. (thanks to davebaol)
- Added a new feature to force aspect ratio on games/channels. (thanks to giantpune for help with disassembler)
- Added Zelda Skyward Sword Alternative dol offset (PAL and NTSC-U) for automatic dol selection.
- Added detection of enabled cheat codes from an already created .gct file.
- Added support for 2 USB drives for d2x cIOS (Requires d2x v9+).
Changes:
- Removed buggy focus system completely and added support to control screen pointer with analog sticks from respective controllers if the wiimote is
not pointing to the screen. Compatible with Nunchuk, Classic Controller and GameCube controller. A speed factor is available in the GUI settings.
- Restructured game's settings for different types of games (Wii/GC/Channels).
- Added auto position of progress window messages in vertical direction depending of how many are used at the same time.
- If "Titles from GameTDB" is not enabled the title will be read from the folder name if possible or from the game disc header.
Title caching can still be used and is recommended in that case.
- Settings title, keyboard text and key color can be changed by themes now.
- Added optional background image for list/carousel/grid layouts (unused by default theme).
- Use of old built-in font for credits window because it doesn't look good with the system menu one.
- Removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason).
- Improved detection of game partition when starting the loader without configs (fresh start).
- Isfs is now initiated once and deinitiated when cleaning up only, instead of the whole init/deinit every single access.
- Updated file system libraries.
- Removed pngu which is not needed, changed screenshot function to use libgd instead
- added init of network into background thread so it is cancelable and has a timeout
- changed wifi gecko to UDP socket
- Converted all ogg sounds from 44.1 khz to 48 khz.
- Optimized use of memory:
Sizes over 30kb go to mem2 now first till it runs out ; Avoid use of mem2 area used on IOS_Reload (first 2 mb) ;
Change font character texture to I4 which uses half as much memory (less cache memory).
- Changed update function to get the files from googlecode website, since old update host website isn't accessible anymore.
Fixes:
- Fixed small scrollbar bug when having only 1 item.
- Fixed reloading of cover image on game list when only 1 item is left after a change (e.g. filtering).
- Improved calculation of progress speed. Now it is always the last 15 secs average instead of overall progress speed.
- Fixed "new" game showing even with a parental control setting.
- Fixed removing of unused cached titles on wiitdb load.
- Fixed ocarina codes when using more than 255 codes (brawl+) (untested).
- Fixed bug where entering "-1" (Use global) for cIOS was not possible in game settings.
- Fixed playback of some BNS banner sounds.
- Fixed reloading into another IOS before launch of game.
- Removed buggy lz77 implementation and use the one known working.
- Fixed launching of dollz compressed dol files. (thanks FIX94)
- Fixed reading game's titles from disc header on fat32/ntfs/ext.
- Fixed crash on missing <app> tag on meta.xml files.
- Forwarder: Fixed crash on drives with physical sector size > 512 bytes.
- Forwarder: Fixed endless waiting for slow HDD. (thanks to FIX94)
- Forwarder: Added missing ext2 unmount. (thanks to FIX94)
- Supports new WiiMotion+ controllers by using latest libraries.
- Lots of string handling improvements (thanks to gerbilsoft for his patch)
New Channel Grid Mode specific features:
- New settings section for all banner's settings.
- Use of BNR (banner animation) cache setting to load banners and icon's animation faster. (Enabled by default. Takes ~35MB/100 Banners)
Wii games/Channels also accept ID3.bnr for custom-made multi-region banners.
- BNR cache path setting.
- Pulsing "new" icon on banner grid layout for new games.
- Centering and size setting for banner's animation resources.
- Channel's zooming speed setting.
- Page's scrolling speed setting.
New GameCube specific features:
- Supports Dios Mios Lite (DML) v1.2+
- Uses of a custom banner for GameCube games which loads the game's internal opening.bnr informations (big thanks to diddy
from the wiithemeteam for creating the brlyt/brlan for the banner).
- DML settings editable from the loader (global and per game settings).
- Supported formats for gamecubes are ISO/GCM and GCRegEx.
- Custom game paths. The following paths are accepted:
1. configpath/ID6/
2. configpath/ID6_Title/
3. configpath/Title [ID6]/
4. configpath/gamepath/ (slow loading speed)
Accepted game's filenames: title.iso, title.gcm, GAMEID6.iso, GAMEID6.gcm
- DML cheats now work the same way as for other Wii games, gct goes to "GCT Cheatcode Path" as GAMEID.gct
- GameCube games copy from USB to SD on demand with choice menu to delete SD games to make space,
If you want to use this feature then set the "Main GC path" to USB and the "SD GameCube path" to SD card.
If duplicated games are detected on SD and USB, the games on SD will be prioritized.
- Added GameCube disc dump functionality with multi-disc menu game selection, compress and align support
(thanks to FIX94 and Overjoy for their disc dump sources on which this is based).
- Use of the BNR cache path to load ID6.bnr or ID3.bnr if available for custom-made banners. (Loading only)
- Video mode option to force interlace mode on GameCube.
- Fixed force prog mode on DML 1.4
2012-05-12 11:10:37 +02:00
bannerGridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 400 - grid layout bannergrid btn pos x widescreen " ) : thInt ( " 420 - grid layout bannergrid btn pos x " ) ,
2012-05-06 12:59:58 +02:00
thInt ( " 13 - grid layout bannergrid btn pos y " ) ) ;
lockBtn - > SetPosition ( Settings . widescreen ? thInt ( " 432 - grid layout lock btn pos x widescreen " ) : thInt ( " 460 - grid layout lock btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout lock btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
dvdBtn - > SetPosition ( Settings . widescreen ? thInt ( " 464 - grid layout dvd btn pos x widescreen " ) : thInt ( " 500 - grid layout dvd btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - grid layout dvd btn pos y " ) ) ;
gameBrowser = new GuiGameGrid ( thInt ( " 640 - game grid layout width " ) , thInt ( " 400 - game grid layout height " ) , Settings . theme_path , Settings . GameListOffset ) ;
gameBrowser - > SetPosition ( thInt ( " 0 - game grid layout pos x " ) , thInt ( " 20 - game grid layout pos y " ) ) ;
2012-05-06 12:59:58 +02:00
gameBrowser - > SetAlignment ( ALIGN_LEFT , ALIGN_CENTER ) ;
2012-01-08 19:24:46 +01:00
//! Setup optional background image
2012-01-23 22:26:41 +01:00
if ( ! gridBackground )
gridBackground = Resources : : GetImageData ( " gridBackground.png " ) ;
2012-01-08 19:24:46 +01:00
if ( gridBackground )
bgImg - > SetImage ( gridBackground ) ;
else
bgImg - > SetImage ( background ) ;
2011-07-26 00:28:22 +02:00
}
else if ( Settings . gameDisplay = = CAROUSEL_MODE )
{
DownloadBtn - > SetSize ( 0 , 0 ) ;
UpdateGameInfoText ( NULL ) ;
carouselBtn - > SetImage ( carouselBtnImg ) ;
carouselBtn - > SetImageOver ( carouselBtnImg ) ;
listBtn - > SetImage ( listBtnImg_g ) ;
listBtn - > SetImageOver ( listBtnImg_g ) ;
gridBtn - > SetImage ( gridBtnImg_g ) ;
gridBtn - > SetImageOver ( gridBtnImg_g ) ;
2012-05-06 12:59:58 +02:00
bannerGridBtn - > SetImage ( bannerGridBtnImg_g ) ;
bannerGridBtn - > SetImageOver ( bannerGridBtnImg_g ) ;
2011-07-26 00:28:22 +02:00
2012-05-06 12:59:58 +02:00
favoriteBtn - > SetPosition ( Settings . widescreen ? thInt ( " 144 - carousel layout favorite btn pos x widescreen " ) : thInt ( " 100 - carousel layout favorite btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout favorite btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
searchBtn - > SetPosition ( Settings . widescreen ? thInt ( " 176 - carousel layout search btn pos x widescreen " ) : thInt ( " 140 - carousel layout search btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout search btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
sortBtn - > SetPosition ( Settings . widescreen ? thInt ( " 208 - carousel layout abc/sort btn pos x widescreen " ) : thInt ( " 180 - carousel layout abc/sort btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout abc/sort btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
loaderModeBtn - > SetPosition ( Settings . widescreen ? thInt ( " 240 - carousel layout loadermode btn pos x widescreen " ) : thInt ( " 220 - carousel layout loadermode btn pos x " ) ,
2011-12-22 23:44:48 +01:00
thInt ( " 13 - carousel layout loadermode btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
categBtn - > SetPosition ( Settings . widescreen ? thInt ( " 272 - carousel layout category btn pos x widescreen " ) : thInt ( " 260 - carousel layout category btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout category btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
listBtn - > SetPosition ( Settings . widescreen ? thInt ( " 304 - carousel layout list btn pos x widescreen " ) : thInt ( " 300 - carousel layout list btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout list btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
gridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 336 - carousel layout grid btn pos x widescreen " ) : thInt ( " 340 - carousel layout grid btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout grid btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
carouselBtn - > SetPosition ( Settings . widescreen ? thInt ( " 368 - carousel layout carousel btn pos x widescreen " ) : thInt ( " 380 - carousel layout carousel btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout carousel btn pos y " ) ) ;
USB Loader GX v3.0:
Released on 2012 05 12
ATTENTION:
USB Loader GX Version 3.0 introduces a new auto-update mechanism which is not compatible with old versions. (The old host is offline)
If you are still using an old version of USB Loader GX, you need to update manually.
Download the latest version or use our easy installer for Windows available on our website. http://code.google.com/p/usbloader-gui/downloads/list
You can also check how to install or update manually here: http://code.google.com/p/usbloader-gui/wiki/Installation
We are sorry for the inconvenience.
New:
- Added a new Layout: Channel grid mode! Channel grid displays games as channels and plays banner animations like the real Wii System Menu.
Channel grid mode and banner animation requires AHBPROT flags to load resource files directly from your Wii.
If you use an old HBC you should use our latest forwarder or update the HBC otherwise you wont have that support.
- Added Channel launching from Emulated NAND. (big thanks to TriiForce guys and Miigotu)
- Added GameCube games launching from SD Card through Dios Mios Lite (DML). (thanks to G0dLiKe, crediar, all DML devs and FIX94)
Check DML website here http://code.google.com/p/dios-mios-lite-source-project/
- Added direct install/uninstall of WAD files to the Emulated NAND Channel path in the features settings menu.
- Added a new icon in the toolbar to select the origin of the titles: Wii games, Channels from Wii, Channels from EmuNand, GameCube games.
- Added the possibility to boot USB Loader GX without an HDD connected (It will fall back to "Channel from Wii" title's origin).
- Added an option to choose which Game Window mode to use between the old "Rotating Disc" or the new "Banner Animation".
- Added the favorite level setting to the game settings since it is no longer displayed when using "Banner Animation" game window mode.
- Added an option to adjust the screen size for overscan TVs (Use negative values to shrink the display).
- Added display of game's size from Wii disc games on the game window prompt (Rotating disc mode only).
- Added a button in the search window to switch between "Beginning" and "Content" search methods.
- Added auto-complete function to the search window.
- Added a new GUI numpad for entering numbers.
- Added setting for tooltip delay time.
- Added resize of widescreen screenshots to 768px width.
- Added cover download for the currently inserted disc.
- Added delete of full cover on art work uninstall and game uninstall.
- Added a parental control option to block priiloader override on return to system menu.
- Added a prompt asking for downloading new language files when trying to update and no language files exist yet.
- Added translation parsing for rating descriptors and for genres from wiitdb.xml. Requires a one time update of wiitdb.xml for cache rebuild.
- Added a new option to force reading the game's titles from disc header.
- Added renaming of internal TitleID of all HBC versions to JODI for GameTDB to find it.
- Added a cheat update button to re-download the cheat text file.
- Added a cancel button to several progress bar windows: Game installation, NAND extraction, etc.
- Added separate path and setting for Emulated NAND Saves and Emulated NAND Channels.
- Added per game NAND emulation path setting.
- Added Mii extractor and SYSCONF file extractor to Emulated NAND. It always overwrites old files.
- Added automatic Mii extraction on save game extract if the Mii file does not exist yet on Emulated NAND.
- Added keep of AHBPROT flag on IOS Reload. Homebrews booted now have AHBPROT. (thanks to davebaol)
- Added a new feature to force aspect ratio on games/channels. (thanks to giantpune for help with disassembler)
- Added Zelda Skyward Sword Alternative dol offset (PAL and NTSC-U) for automatic dol selection.
- Added detection of enabled cheat codes from an already created .gct file.
- Added support for 2 USB drives for d2x cIOS (Requires d2x v9+).
Changes:
- Removed buggy focus system completely and added support to control screen pointer with analog sticks from respective controllers if the wiimote is
not pointing to the screen. Compatible with Nunchuk, Classic Controller and GameCube controller. A speed factor is available in the GUI settings.
- Restructured game's settings for different types of games (Wii/GC/Channels).
- Added auto position of progress window messages in vertical direction depending of how many are used at the same time.
- If "Titles from GameTDB" is not enabled the title will be read from the folder name if possible or from the game disc header.
Title caching can still be used and is recommended in that case.
- Settings title, keyboard text and key color can be changed by themes now.
- Added optional background image for list/carousel/grid layouts (unused by default theme).
- Use of old built-in font for credits window because it doesn't look good with the system menu one.
- Removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason).
- Improved detection of game partition when starting the loader without configs (fresh start).
- Isfs is now initiated once and deinitiated when cleaning up only, instead of the whole init/deinit every single access.
- Updated file system libraries.
- Removed pngu which is not needed, changed screenshot function to use libgd instead
- added init of network into background thread so it is cancelable and has a timeout
- changed wifi gecko to UDP socket
- Converted all ogg sounds from 44.1 khz to 48 khz.
- Optimized use of memory:
Sizes over 30kb go to mem2 now first till it runs out ; Avoid use of mem2 area used on IOS_Reload (first 2 mb) ;
Change font character texture to I4 which uses half as much memory (less cache memory).
- Changed update function to get the files from googlecode website, since old update host website isn't accessible anymore.
Fixes:
- Fixed small scrollbar bug when having only 1 item.
- Fixed reloading of cover image on game list when only 1 item is left after a change (e.g. filtering).
- Improved calculation of progress speed. Now it is always the last 15 secs average instead of overall progress speed.
- Fixed "new" game showing even with a parental control setting.
- Fixed removing of unused cached titles on wiitdb load.
- Fixed ocarina codes when using more than 255 codes (brawl+) (untested).
- Fixed bug where entering "-1" (Use global) for cIOS was not possible in game settings.
- Fixed playback of some BNS banner sounds.
- Fixed reloading into another IOS before launch of game.
- Removed buggy lz77 implementation and use the one known working.
- Fixed launching of dollz compressed dol files. (thanks FIX94)
- Fixed reading game's titles from disc header on fat32/ntfs/ext.
- Fixed crash on missing <app> tag on meta.xml files.
- Forwarder: Fixed crash on drives with physical sector size > 512 bytes.
- Forwarder: Fixed endless waiting for slow HDD. (thanks to FIX94)
- Forwarder: Added missing ext2 unmount. (thanks to FIX94)
- Supports new WiiMotion+ controllers by using latest libraries.
- Lots of string handling improvements (thanks to gerbilsoft for his patch)
New Channel Grid Mode specific features:
- New settings section for all banner's settings.
- Use of BNR (banner animation) cache setting to load banners and icon's animation faster. (Enabled by default. Takes ~35MB/100 Banners)
Wii games/Channels also accept ID3.bnr for custom-made multi-region banners.
- BNR cache path setting.
- Pulsing "new" icon on banner grid layout for new games.
- Centering and size setting for banner's animation resources.
- Channel's zooming speed setting.
- Page's scrolling speed setting.
New GameCube specific features:
- Supports Dios Mios Lite (DML) v1.2+
- Uses of a custom banner for GameCube games which loads the game's internal opening.bnr informations (big thanks to diddy
from the wiithemeteam for creating the brlyt/brlan for the banner).
- DML settings editable from the loader (global and per game settings).
- Supported formats for gamecubes are ISO/GCM and GCRegEx.
- Custom game paths. The following paths are accepted:
1. configpath/ID6/
2. configpath/ID6_Title/
3. configpath/Title [ID6]/
4. configpath/gamepath/ (slow loading speed)
Accepted game's filenames: title.iso, title.gcm, GAMEID6.iso, GAMEID6.gcm
- DML cheats now work the same way as for other Wii games, gct goes to "GCT Cheatcode Path" as GAMEID.gct
- GameCube games copy from USB to SD on demand with choice menu to delete SD games to make space,
If you want to use this feature then set the "Main GC path" to USB and the "SD GameCube path" to SD card.
If duplicated games are detected on SD and USB, the games on SD will be prioritized.
- Added GameCube disc dump functionality with multi-disc menu game selection, compress and align support
(thanks to FIX94 and Overjoy for their disc dump sources on which this is based).
- Use of the BNR cache path to load ID6.bnr or ID3.bnr if available for custom-made banners. (Loading only)
- Video mode option to force interlace mode on GameCube.
- Fixed force prog mode on DML 1.4
2012-05-12 11:10:37 +02:00
bannerGridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 400 - carousel layout bannergrid btn pos x widescreen " ) : thInt ( " 420 - carousel layout bannergrid btn pos x " ) ,
2012-05-06 12:59:58 +02:00
thInt ( " 13 - carousel layout bannergrid btn pos y " ) ) ;
lockBtn - > SetPosition ( Settings . widescreen ? thInt ( " 432 - carousel layout lock btn pos x widescreen " ) : thInt ( " 460 - carousel layout lock btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout lock btn pos y " ) ) ;
2012-05-06 12:59:58 +02:00
dvdBtn - > SetPosition ( Settings . widescreen ? thInt ( " 464 - carousel layout dvd btn pos x widescreen " ) : thInt ( " 500 - carousel layout dvd btn pos x " ) ,
2011-07-26 00:28:22 +02:00
thInt ( " 13 - carousel layout dvd btn pos y " ) ) ;
gameBrowser = new GuiGameCarousel ( thInt ( " 640 - game carousel layout width " ) , thInt ( " 400 - game carousel layout height " ) , Settings . theme_path , Settings . GameListOffset ) ;
gameBrowser - > SetPosition ( thInt ( " 0 - game carousel layout pos x " ) , thInt ( " -20 - game carousel layout pos y " ) ) ;
2012-05-06 12:59:58 +02:00
gameBrowser - > SetAlignment ( ALIGN_LEFT , ALIGN_CENTER ) ;
2012-01-08 19:24:46 +01:00
//! Setup optional background image
2012-01-23 22:26:41 +01:00
if ( ! carouselBackground )
carouselBackground = Resources : : GetImageData ( " carouselBackground.png " ) ;
2012-01-08 19:24:46 +01:00
if ( carouselBackground )
bgImg - > SetImage ( carouselBackground ) ;
else
bgImg - > SetImage ( background ) ;
2011-07-26 00:28:22 +02:00
}
2012-05-06 12:59:58 +02:00
else if ( Settings . gameDisplay = = BANNERGRID_MODE )
{
DownloadBtn - > SetSize ( 0 , 0 ) ;
UpdateGameInfoText ( NULL ) ;
bannerGridBtn - > SetImage ( bannerGridBtnImg ) ;
bannerGridBtn - > SetImageOver ( bannerGridBtnImg ) ;
listBtn - > SetImage ( listBtnImg_g ) ;
listBtn - > SetImageOver ( listBtnImg_g ) ;
gridBtn - > SetImage ( gridBtnImg_g ) ;
gridBtn - > SetImageOver ( gridBtnImg_g ) ;
carouselBtn - > SetImage ( carouselBtnImg_g ) ;
carouselBtn - > SetImageOver ( carouselBtnImg_g ) ;
2011-07-26 00:28:22 +02:00
2012-05-06 12:59:58 +02:00
favoriteBtn - > SetPosition ( Settings . widescreen ? thInt ( " 144 - bannergrid layout favorite btn pos x widescreen " ) : thInt ( " 100 - bannergrid layout favorite btn pos x " ) ,
thInt ( " 13 - bannergrid layout favorite btn pos y " ) ) ;
searchBtn - > SetPosition ( Settings . widescreen ? thInt ( " 176 - bannergrid layout search btn pos x widescreen " ) : thInt ( " 140 - bannergrid layout search btn pos x " ) ,
thInt ( " 13 - bannergrid layout search btn pos y " ) ) ;
sortBtn - > SetPosition ( Settings . widescreen ? thInt ( " 208 - bannergrid layout abc/sort btn pos x widescreen " ) : thInt ( " 180 - bannergrid layout abc/sort btn pos x " ) ,
thInt ( " 13 - bannergrid layout abc/sort btn pos y " ) ) ;
loaderModeBtn - > SetPosition ( Settings . widescreen ? thInt ( " 240 - bannergrid layout loadermode btn pos x widescreen " ) : thInt ( " 220 - bannergrid layout loadermode btn pos x " ) ,
thInt ( " 13 - bannergrid layout loadermode btn pos y " ) ) ;
categBtn - > SetPosition ( Settings . widescreen ? thInt ( " 272 - bannergrid layout category btn pos x widescreen " ) : thInt ( " 260 - bannergrid layout category btn pos x " ) ,
thInt ( " 13 - bannergrid layout category btn pos y " ) ) ;
listBtn - > SetPosition ( Settings . widescreen ? thInt ( " 304 - bannergrid layout list btn pos x widescreen " ) : thInt ( " 300 - bannergrid layout list btn pos x " ) ,
thInt ( " 13 - bannergrid layout list btn pos y " ) ) ;
gridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 336 - bannergrid layout grid btn pos x widescreen " ) : thInt ( " 340 - bannergrid layout grid btn pos x " ) ,
thInt ( " 13 - bannergrid layout grid btn pos y " ) ) ;
carouselBtn - > SetPosition ( Settings . widescreen ? thInt ( " 368 - bannergrid layout carousel btn pos x widescreen " ) : thInt ( " 380 - bannergrid layout carousel btn pos x " ) ,
thInt ( " 13 - bannergrid layout carousel btn pos y " ) ) ;
USB Loader GX v3.0:
Released on 2012 05 12
ATTENTION:
USB Loader GX Version 3.0 introduces a new auto-update mechanism which is not compatible with old versions. (The old host is offline)
If you are still using an old version of USB Loader GX, you need to update manually.
Download the latest version or use our easy installer for Windows available on our website. http://code.google.com/p/usbloader-gui/downloads/list
You can also check how to install or update manually here: http://code.google.com/p/usbloader-gui/wiki/Installation
We are sorry for the inconvenience.
New:
- Added a new Layout: Channel grid mode! Channel grid displays games as channels and plays banner animations like the real Wii System Menu.
Channel grid mode and banner animation requires AHBPROT flags to load resource files directly from your Wii.
If you use an old HBC you should use our latest forwarder or update the HBC otherwise you wont have that support.
- Added Channel launching from Emulated NAND. (big thanks to TriiForce guys and Miigotu)
- Added GameCube games launching from SD Card through Dios Mios Lite (DML). (thanks to G0dLiKe, crediar, all DML devs and FIX94)
Check DML website here http://code.google.com/p/dios-mios-lite-source-project/
- Added direct install/uninstall of WAD files to the Emulated NAND Channel path in the features settings menu.
- Added a new icon in the toolbar to select the origin of the titles: Wii games, Channels from Wii, Channels from EmuNand, GameCube games.
- Added the possibility to boot USB Loader GX without an HDD connected (It will fall back to "Channel from Wii" title's origin).
- Added an option to choose which Game Window mode to use between the old "Rotating Disc" or the new "Banner Animation".
- Added the favorite level setting to the game settings since it is no longer displayed when using "Banner Animation" game window mode.
- Added an option to adjust the screen size for overscan TVs (Use negative values to shrink the display).
- Added display of game's size from Wii disc games on the game window prompt (Rotating disc mode only).
- Added a button in the search window to switch between "Beginning" and "Content" search methods.
- Added auto-complete function to the search window.
- Added a new GUI numpad for entering numbers.
- Added setting for tooltip delay time.
- Added resize of widescreen screenshots to 768px width.
- Added cover download for the currently inserted disc.
- Added delete of full cover on art work uninstall and game uninstall.
- Added a parental control option to block priiloader override on return to system menu.
- Added a prompt asking for downloading new language files when trying to update and no language files exist yet.
- Added translation parsing for rating descriptors and for genres from wiitdb.xml. Requires a one time update of wiitdb.xml for cache rebuild.
- Added a new option to force reading the game's titles from disc header.
- Added renaming of internal TitleID of all HBC versions to JODI for GameTDB to find it.
- Added a cheat update button to re-download the cheat text file.
- Added a cancel button to several progress bar windows: Game installation, NAND extraction, etc.
- Added separate path and setting for Emulated NAND Saves and Emulated NAND Channels.
- Added per game NAND emulation path setting.
- Added Mii extractor and SYSCONF file extractor to Emulated NAND. It always overwrites old files.
- Added automatic Mii extraction on save game extract if the Mii file does not exist yet on Emulated NAND.
- Added keep of AHBPROT flag on IOS Reload. Homebrews booted now have AHBPROT. (thanks to davebaol)
- Added a new feature to force aspect ratio on games/channels. (thanks to giantpune for help with disassembler)
- Added Zelda Skyward Sword Alternative dol offset (PAL and NTSC-U) for automatic dol selection.
- Added detection of enabled cheat codes from an already created .gct file.
- Added support for 2 USB drives for d2x cIOS (Requires d2x v9+).
Changes:
- Removed buggy focus system completely and added support to control screen pointer with analog sticks from respective controllers if the wiimote is
not pointing to the screen. Compatible with Nunchuk, Classic Controller and GameCube controller. A speed factor is available in the GUI settings.
- Restructured game's settings for different types of games (Wii/GC/Channels).
- Added auto position of progress window messages in vertical direction depending of how many are used at the same time.
- If "Titles from GameTDB" is not enabled the title will be read from the folder name if possible or from the game disc header.
Title caching can still be used and is recommended in that case.
- Settings title, keyboard text and key color can be changed by themes now.
- Added optional background image for list/carousel/grid layouts (unused by default theme).
- Use of old built-in font for credits window because it doesn't look good with the system menu one.
- Removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason).
- Improved detection of game partition when starting the loader without configs (fresh start).
- Isfs is now initiated once and deinitiated when cleaning up only, instead of the whole init/deinit every single access.
- Updated file system libraries.
- Removed pngu which is not needed, changed screenshot function to use libgd instead
- added init of network into background thread so it is cancelable and has a timeout
- changed wifi gecko to UDP socket
- Converted all ogg sounds from 44.1 khz to 48 khz.
- Optimized use of memory:
Sizes over 30kb go to mem2 now first till it runs out ; Avoid use of mem2 area used on IOS_Reload (first 2 mb) ;
Change font character texture to I4 which uses half as much memory (less cache memory).
- Changed update function to get the files from googlecode website, since old update host website isn't accessible anymore.
Fixes:
- Fixed small scrollbar bug when having only 1 item.
- Fixed reloading of cover image on game list when only 1 item is left after a change (e.g. filtering).
- Improved calculation of progress speed. Now it is always the last 15 secs average instead of overall progress speed.
- Fixed "new" game showing even with a parental control setting.
- Fixed removing of unused cached titles on wiitdb load.
- Fixed ocarina codes when using more than 255 codes (brawl+) (untested).
- Fixed bug where entering "-1" (Use global) for cIOS was not possible in game settings.
- Fixed playback of some BNS banner sounds.
- Fixed reloading into another IOS before launch of game.
- Removed buggy lz77 implementation and use the one known working.
- Fixed launching of dollz compressed dol files. (thanks FIX94)
- Fixed reading game's titles from disc header on fat32/ntfs/ext.
- Fixed crash on missing <app> tag on meta.xml files.
- Forwarder: Fixed crash on drives with physical sector size > 512 bytes.
- Forwarder: Fixed endless waiting for slow HDD. (thanks to FIX94)
- Forwarder: Added missing ext2 unmount. (thanks to FIX94)
- Supports new WiiMotion+ controllers by using latest libraries.
- Lots of string handling improvements (thanks to gerbilsoft for his patch)
New Channel Grid Mode specific features:
- New settings section for all banner's settings.
- Use of BNR (banner animation) cache setting to load banners and icon's animation faster. (Enabled by default. Takes ~35MB/100 Banners)
Wii games/Channels also accept ID3.bnr for custom-made multi-region banners.
- BNR cache path setting.
- Pulsing "new" icon on banner grid layout for new games.
- Centering and size setting for banner's animation resources.
- Channel's zooming speed setting.
- Page's scrolling speed setting.
New GameCube specific features:
- Supports Dios Mios Lite (DML) v1.2+
- Uses of a custom banner for GameCube games which loads the game's internal opening.bnr informations (big thanks to diddy
from the wiithemeteam for creating the brlyt/brlan for the banner).
- DML settings editable from the loader (global and per game settings).
- Supported formats for gamecubes are ISO/GCM and GCRegEx.
- Custom game paths. The following paths are accepted:
1. configpath/ID6/
2. configpath/ID6_Title/
3. configpath/Title [ID6]/
4. configpath/gamepath/ (slow loading speed)
Accepted game's filenames: title.iso, title.gcm, GAMEID6.iso, GAMEID6.gcm
- DML cheats now work the same way as for other Wii games, gct goes to "GCT Cheatcode Path" as GAMEID.gct
- GameCube games copy from USB to SD on demand with choice menu to delete SD games to make space,
If you want to use this feature then set the "Main GC path" to USB and the "SD GameCube path" to SD card.
If duplicated games are detected on SD and USB, the games on SD will be prioritized.
- Added GameCube disc dump functionality with multi-disc menu game selection, compress and align support
(thanks to FIX94 and Overjoy for their disc dump sources on which this is based).
- Use of the BNR cache path to load ID6.bnr or ID3.bnr if available for custom-made banners. (Loading only)
- Video mode option to force interlace mode on GameCube.
- Fixed force prog mode on DML 1.4
2012-05-12 11:10:37 +02:00
bannerGridBtn - > SetPosition ( Settings . widescreen ? thInt ( " 400 - bannergrid layout bannergrid btn pos x widescreen " ) : thInt ( " 420 - bannergrid layout bannergrid btn pos x " ) ,
2012-05-06 12:59:58 +02:00
thInt ( " 13 - bannergrid layout bannergrid btn pos y " ) ) ;
lockBtn - > SetPosition ( Settings . widescreen ? thInt ( " 432 - bannergrid layout lock btn pos x widescreen " ) : thInt ( " 460 - bannergrid layout lock btn pos x " ) ,
thInt ( " 13 - bannergrid layout lock btn pos y " ) ) ;
dvdBtn - > SetPosition ( Settings . widescreen ? thInt ( " 464 - bannergrid layout dvd btn pos x widescreen " ) : thInt ( " 500 - bannergrid layout dvd btn pos x " ) ,
thInt ( " 13 - bannergrid layout dvd btn pos y " ) ) ;
gameBrowser = new GuiBannerGrid ( Settings . GameListOffset + Settings . SelectedGame ) ;
}
2011-07-26 00:28:22 +02:00
if ( thInt ( " 1 - show hdd info: 1 for on and 0 for off " ) = = 1 ) //force show hdd info
Append ( usedSpaceTxt ) ;
if ( thInt ( " 1 - show game count: 1 for on and 0 for off " ) = = 1 ) //force show game cnt info
Append ( gamecntBtn ) ;
if ( Settings . godmode | | ! ( Settings . ParentalBlocks & BLOCK_SD_RELOAD_BUTTON ) )
Append ( sdcardBtn ) ;
Append ( poweroffBtn ) ;
Append ( gameInfo ) ;
Append ( homeBtn ) ;
Append ( settingsBtn ) ;
if ( Settings . godmode | | ! ( Settings . ParentalBlocks & BLOCK_HBC_MENU ) )
Append ( homebrewBtn ) ;
if ( Settings . godmode | | ! ( Settings . ParentalBlocks & BLOCK_GAME_INSTALL ) )
Append ( installBtn ) ;
if ( Settings . godmode | | ! ( Settings . ParentalBlocks & BLOCK_COVER_DOWNLOADS ) )
Append ( DownloadBtn ) ;
2012-05-06 12:59:58 +02:00
if ( ( Settings . gameDisplay = = LIST_MODE ) & & ( Settings . godmode | | ! ( Settings . ParentalBlocks & BLOCK_GAMEID_CHANGE ) ) )
2011-07-26 00:28:22 +02:00
Append ( idBtn ) ;
Append ( favoriteBtn ) ;
Append ( searchBtn ) ;
Append ( sortBtn ) ;
Append ( categBtn ) ;
Append ( listBtn ) ;
Append ( gridBtn ) ;
2011-12-22 23:44:48 +01:00
Append ( loaderModeBtn ) ;
2011-07-26 00:28:22 +02:00
Append ( carouselBtn ) ;
2012-05-06 12:59:58 +02:00
Append ( bannerGridBtn ) ;
2011-07-26 00:28:22 +02:00
Append ( lockBtn ) ;
Append ( dvdBtn ) ;
if ( ( Settings . hddinfo = = CLOCK_HR12 ) | | ( Settings . hddinfo = = CLOCK_HR24 ) )
{
Append ( clockTimeBack ) ;
Append ( clockTime ) ;
}
if ( gameBrowser )
Append ( gameBrowser ) ;
if ( show_searchwindow )
{
2011-11-12 19:14:09 +01:00
searchBar = new GuiSearchBar ;
2011-07-26 00:28:22 +02:00
mainWindow - > Append ( searchBar ) ;
}
SetEffect ( EFFECT_FADE , 40 ) ;
ResumeGui ( ) ;
while ( parentElement & & this - > GetEffect ( ) > 0 ) usleep ( 100 ) ;
2010-12-12 17:31:13 +01:00
}
int GameBrowseMenu : : MainLoop ( )
{
2011-07-26 00:28:22 +02:00
UpdateClock ( ) ;
CheckDiscSlotUpdate ( ) ;
if ( updateavailable = = true )
{
gprintf ( " \t Update Available \n " ) ;
SetState ( STATE_DISABLED ) ;
UpdateApp ( ) ;
updateavailable = false ;
SetState ( STATE_DEFAULT ) ;
}
else if ( poweroffBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t poweroffBtn clicked \n " ) ;
2015-08-14 16:44:47 +02:00
int choice = 0 ;
if ( isWiiU ( ) )
choice = WindowPrompt ( tr ( " How to Shutdown? " ) , 0 , tr ( " Full shutdown " ) , tr ( " Cancel " ) ) ;
else
choice = WindowPrompt ( tr ( " How to Shutdown? " ) , 0 , tr ( " Full shutdown " ) , tr ( " Standby " ) , tr ( " Cancel " ) ) ;
2011-07-26 00:28:22 +02:00
if ( choice = = 2 )
Sys_ShutdownToIdle ( ) ;
else if ( choice = = 1 )
Sys_ShutdownToStandby ( ) ;
poweroffBtn - > ResetState ( ) ;
}
else if ( gamecntBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t gameCntBtn clicked \n " ) ;
gamecntBtn - > ResetState ( ) ;
int choice = WindowPrompt ( 0 , fmt ( " %s %sGameList ? " , tr ( " Save Game List to " ) , Settings . update_path ) , " TXT " , " CSV " , tr ( " Back " ) ) ;
if ( choice )
{
2012-05-06 12:59:58 +02:00
if ( save_gamelist ( choice = = 2 ) )
2011-07-26 00:28:22 +02:00
WindowPrompt ( 0 , tr ( " Saved " ) , tr ( " OK " ) ) ;
else
WindowPrompt ( tr ( " Error " ) , tr ( " Could not save. " ) , tr ( " OK " ) ) ;
}
}
else if ( homeBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t homeBtn clicked \n " ) ;
WindowExitPrompt ( ) ;
homeBtn - > ResetState ( ) ;
}
else if ( installBtn - > GetState ( ) = = STATE_CLICKED )
{
2011-12-30 19:37:44 +01:00
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_GAME_INSTALL ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
installBtn - > ResetState ( ) ;
return MENU_NONE ;
}
2011-07-26 00:28:22 +02:00
int choice = WindowPrompt ( tr ( " Install a game " ) , 0 , tr ( " Yes " ) , tr ( " No " ) ) ;
if ( choice = = 1 )
2011-12-28 10:55:00 +01:00
{
2011-12-28 17:27:30 +01:00
this - > SetState ( STATE_DISABLED ) ;
2011-12-28 10:55:00 +01:00
if ( ! ( Settings . LoaderMode & MODE_WIIGAMES ) & & ( gameList . GameCount ( ) = = 0 ) )
{
if ( WBFS_ReInit ( WBFS_DEVICE_USB ) < 0 )
ShowError ( tr ( " Failed to initialize the USB storage device. " ) ) ;
else
{
gameList . ReadGameList ( ) ;
2012-01-08 19:24:46 +01:00
GameTitles . LoadTitlesFromGameTDB ( Settings . titlestxt_path , false ) ;
2011-12-28 10:55:00 +01:00
if ( Settings . ShowFreeSpace )
{
ThreadedTask : : Instance ( ) - > AddCallback ( & HDDSizeCallback ) ;
ThreadedTask : : Instance ( ) - > Execute ( ) ;
}
2011-12-28 17:27:30 +01:00
return MenuInstall ( ) ;
2011-12-28 10:55:00 +01:00
}
}
else
2011-12-28 17:27:30 +01:00
return MenuInstall ( ) ;
this - > SetState ( STATE_DEFAULT ) ;
2011-12-28 10:55:00 +01:00
}
2011-07-26 00:28:22 +02:00
installBtn - > ResetState ( ) ;
}
else if ( sdcardBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t sdCardBtn Clicked \n " ) ;
2012-05-06 12:59:58 +02:00
if ( WindowPrompt ( tr ( " Are you sure you want to remount SD? " ) , tr ( " The application might crash if there is currently a read/write access to the SD card! " ) , tr ( " Yes " ) , tr ( " Cancel " ) ) )
{
HaltGui ( ) ;
USB Loader GX v3.0:
Released on 2012 05 12
ATTENTION:
USB Loader GX Version 3.0 introduces a new auto-update mechanism which is not compatible with old versions. (The old host is offline)
If you are still using an old version of USB Loader GX, you need to update manually.
Download the latest version or use our easy installer for Windows available on our website. http://code.google.com/p/usbloader-gui/downloads/list
You can also check how to install or update manually here: http://code.google.com/p/usbloader-gui/wiki/Installation
We are sorry for the inconvenience.
New:
- Added a new Layout: Channel grid mode! Channel grid displays games as channels and plays banner animations like the real Wii System Menu.
Channel grid mode and banner animation requires AHBPROT flags to load resource files directly from your Wii.
If you use an old HBC you should use our latest forwarder or update the HBC otherwise you wont have that support.
- Added Channel launching from Emulated NAND. (big thanks to TriiForce guys and Miigotu)
- Added GameCube games launching from SD Card through Dios Mios Lite (DML). (thanks to G0dLiKe, crediar, all DML devs and FIX94)
Check DML website here http://code.google.com/p/dios-mios-lite-source-project/
- Added direct install/uninstall of WAD files to the Emulated NAND Channel path in the features settings menu.
- Added a new icon in the toolbar to select the origin of the titles: Wii games, Channels from Wii, Channels from EmuNand, GameCube games.
- Added the possibility to boot USB Loader GX without an HDD connected (It will fall back to "Channel from Wii" title's origin).
- Added an option to choose which Game Window mode to use between the old "Rotating Disc" or the new "Banner Animation".
- Added the favorite level setting to the game settings since it is no longer displayed when using "Banner Animation" game window mode.
- Added an option to adjust the screen size for overscan TVs (Use negative values to shrink the display).
- Added display of game's size from Wii disc games on the game window prompt (Rotating disc mode only).
- Added a button in the search window to switch between "Beginning" and "Content" search methods.
- Added auto-complete function to the search window.
- Added a new GUI numpad for entering numbers.
- Added setting for tooltip delay time.
- Added resize of widescreen screenshots to 768px width.
- Added cover download for the currently inserted disc.
- Added delete of full cover on art work uninstall and game uninstall.
- Added a parental control option to block priiloader override on return to system menu.
- Added a prompt asking for downloading new language files when trying to update and no language files exist yet.
- Added translation parsing for rating descriptors and for genres from wiitdb.xml. Requires a one time update of wiitdb.xml for cache rebuild.
- Added a new option to force reading the game's titles from disc header.
- Added renaming of internal TitleID of all HBC versions to JODI for GameTDB to find it.
- Added a cheat update button to re-download the cheat text file.
- Added a cancel button to several progress bar windows: Game installation, NAND extraction, etc.
- Added separate path and setting for Emulated NAND Saves and Emulated NAND Channels.
- Added per game NAND emulation path setting.
- Added Mii extractor and SYSCONF file extractor to Emulated NAND. It always overwrites old files.
- Added automatic Mii extraction on save game extract if the Mii file does not exist yet on Emulated NAND.
- Added keep of AHBPROT flag on IOS Reload. Homebrews booted now have AHBPROT. (thanks to davebaol)
- Added a new feature to force aspect ratio on games/channels. (thanks to giantpune for help with disassembler)
- Added Zelda Skyward Sword Alternative dol offset (PAL and NTSC-U) for automatic dol selection.
- Added detection of enabled cheat codes from an already created .gct file.
- Added support for 2 USB drives for d2x cIOS (Requires d2x v9+).
Changes:
- Removed buggy focus system completely and added support to control screen pointer with analog sticks from respective controllers if the wiimote is
not pointing to the screen. Compatible with Nunchuk, Classic Controller and GameCube controller. A speed factor is available in the GUI settings.
- Restructured game's settings for different types of games (Wii/GC/Channels).
- Added auto position of progress window messages in vertical direction depending of how many are used at the same time.
- If "Titles from GameTDB" is not enabled the title will be read from the folder name if possible or from the game disc header.
Title caching can still be used and is recommended in that case.
- Settings title, keyboard text and key color can be changed by themes now.
- Added optional background image for list/carousel/grid layouts (unused by default theme).
- Use of old built-in font for credits window because it doesn't look good with the system menu one.
- Removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason).
- Improved detection of game partition when starting the loader without configs (fresh start).
- Isfs is now initiated once and deinitiated when cleaning up only, instead of the whole init/deinit every single access.
- Updated file system libraries.
- Removed pngu which is not needed, changed screenshot function to use libgd instead
- added init of network into background thread so it is cancelable and has a timeout
- changed wifi gecko to UDP socket
- Converted all ogg sounds from 44.1 khz to 48 khz.
- Optimized use of memory:
Sizes over 30kb go to mem2 now first till it runs out ; Avoid use of mem2 area used on IOS_Reload (first 2 mb) ;
Change font character texture to I4 which uses half as much memory (less cache memory).
- Changed update function to get the files from googlecode website, since old update host website isn't accessible anymore.
Fixes:
- Fixed small scrollbar bug when having only 1 item.
- Fixed reloading of cover image on game list when only 1 item is left after a change (e.g. filtering).
- Improved calculation of progress speed. Now it is always the last 15 secs average instead of overall progress speed.
- Fixed "new" game showing even with a parental control setting.
- Fixed removing of unused cached titles on wiitdb load.
- Fixed ocarina codes when using more than 255 codes (brawl+) (untested).
- Fixed bug where entering "-1" (Use global) for cIOS was not possible in game settings.
- Fixed playback of some BNS banner sounds.
- Fixed reloading into another IOS before launch of game.
- Removed buggy lz77 implementation and use the one known working.
- Fixed launching of dollz compressed dol files. (thanks FIX94)
- Fixed reading game's titles from disc header on fat32/ntfs/ext.
- Fixed crash on missing <app> tag on meta.xml files.
- Forwarder: Fixed crash on drives with physical sector size > 512 bytes.
- Forwarder: Fixed endless waiting for slow HDD. (thanks to FIX94)
- Forwarder: Added missing ext2 unmount. (thanks to FIX94)
- Supports new WiiMotion+ controllers by using latest libraries.
- Lots of string handling improvements (thanks to gerbilsoft for his patch)
New Channel Grid Mode specific features:
- New settings section for all banner's settings.
- Use of BNR (banner animation) cache setting to load banners and icon's animation faster. (Enabled by default. Takes ~35MB/100 Banners)
Wii games/Channels also accept ID3.bnr for custom-made multi-region banners.
- BNR cache path setting.
- Pulsing "new" icon on banner grid layout for new games.
- Centering and size setting for banner's animation resources.
- Channel's zooming speed setting.
- Page's scrolling speed setting.
New GameCube specific features:
- Supports Dios Mios Lite (DML) v1.2+
- Uses of a custom banner for GameCube games which loads the game's internal opening.bnr informations (big thanks to diddy
from the wiithemeteam for creating the brlyt/brlan for the banner).
- DML settings editable from the loader (global and per game settings).
- Supported formats for gamecubes are ISO/GCM and GCRegEx.
- Custom game paths. The following paths are accepted:
1. configpath/ID6/
2. configpath/ID6_Title/
3. configpath/Title [ID6]/
4. configpath/gamepath/ (slow loading speed)
Accepted game's filenames: title.iso, title.gcm, GAMEID6.iso, GAMEID6.gcm
- DML cheats now work the same way as for other Wii games, gct goes to "GCT Cheatcode Path" as GAMEID.gct
- GameCube games copy from USB to SD on demand with choice menu to delete SD games to make space,
If you want to use this feature then set the "Main GC path" to USB and the "SD GameCube path" to SD card.
If duplicated games are detected on SD and USB, the games on SD will be prioritized.
- Added GameCube disc dump functionality with multi-disc menu game selection, compress and align support
(thanks to FIX94 and Overjoy for their disc dump sources on which this is based).
- Use of the BNR cache path to load ID6.bnr or ID3.bnr if available for custom-made banners. (Loading only)
- Video mode option to force interlace mode on GameCube.
- Fixed force prog mode on DML 1.4
2012-05-12 11:10:37 +02:00
BannerAsync : : HaltThread ( ) ;
2012-05-06 12:59:58 +02:00
bgMusic - > Pause ( ) ;
Settings . Save ( ) ;
DeviceHandler : : Instance ( ) - > UnMountSD ( ) ;
DeviceHandler : : Instance ( ) - > MountSD ( ) ;
gprintf ( " \t Loading config...%s \n " , Settings . Load ( ) ? " done " : " failed " ) ;
gprintf ( " \t Loading language...%s \n " , Settings . LoadLanguage ( Settings . language_path , CONSOLE_DEFAULT ) ? " done " : " failed " ) ;
gprintf ( " \t Loading game settings...%s \n " , GameSettings . Load ( Settings . ConfigPath ) ? " done " : " failed " ) ;
gprintf ( " \t Loading game statistics...%s \n " , GameStatistics . Load ( Settings . ConfigPath ) ? " done " : " failed " ) ;
gprintf ( " \t Loading font...%s \n " , Theme : : LoadFont ( Settings . theme_path ) ? " done " : " failed (using default) " ) ;
gprintf ( " \t Loading theme...%s \n " , Theme : : Load ( Settings . theme ) ? " done " : " failed (using default) " ) ;
bgMusic - > Resume ( ) ;
gameList . FilterList ( ) ;
ReloadBrowser ( ) ;
USB Loader GX v3.0:
Released on 2012 05 12
ATTENTION:
USB Loader GX Version 3.0 introduces a new auto-update mechanism which is not compatible with old versions. (The old host is offline)
If you are still using an old version of USB Loader GX, you need to update manually.
Download the latest version or use our easy installer for Windows available on our website. http://code.google.com/p/usbloader-gui/downloads/list
You can also check how to install or update manually here: http://code.google.com/p/usbloader-gui/wiki/Installation
We are sorry for the inconvenience.
New:
- Added a new Layout: Channel grid mode! Channel grid displays games as channels and plays banner animations like the real Wii System Menu.
Channel grid mode and banner animation requires AHBPROT flags to load resource files directly from your Wii.
If you use an old HBC you should use our latest forwarder or update the HBC otherwise you wont have that support.
- Added Channel launching from Emulated NAND. (big thanks to TriiForce guys and Miigotu)
- Added GameCube games launching from SD Card through Dios Mios Lite (DML). (thanks to G0dLiKe, crediar, all DML devs and FIX94)
Check DML website here http://code.google.com/p/dios-mios-lite-source-project/
- Added direct install/uninstall of WAD files to the Emulated NAND Channel path in the features settings menu.
- Added a new icon in the toolbar to select the origin of the titles: Wii games, Channels from Wii, Channels from EmuNand, GameCube games.
- Added the possibility to boot USB Loader GX without an HDD connected (It will fall back to "Channel from Wii" title's origin).
- Added an option to choose which Game Window mode to use between the old "Rotating Disc" or the new "Banner Animation".
- Added the favorite level setting to the game settings since it is no longer displayed when using "Banner Animation" game window mode.
- Added an option to adjust the screen size for overscan TVs (Use negative values to shrink the display).
- Added display of game's size from Wii disc games on the game window prompt (Rotating disc mode only).
- Added a button in the search window to switch between "Beginning" and "Content" search methods.
- Added auto-complete function to the search window.
- Added a new GUI numpad for entering numbers.
- Added setting for tooltip delay time.
- Added resize of widescreen screenshots to 768px width.
- Added cover download for the currently inserted disc.
- Added delete of full cover on art work uninstall and game uninstall.
- Added a parental control option to block priiloader override on return to system menu.
- Added a prompt asking for downloading new language files when trying to update and no language files exist yet.
- Added translation parsing for rating descriptors and for genres from wiitdb.xml. Requires a one time update of wiitdb.xml for cache rebuild.
- Added a new option to force reading the game's titles from disc header.
- Added renaming of internal TitleID of all HBC versions to JODI for GameTDB to find it.
- Added a cheat update button to re-download the cheat text file.
- Added a cancel button to several progress bar windows: Game installation, NAND extraction, etc.
- Added separate path and setting for Emulated NAND Saves and Emulated NAND Channels.
- Added per game NAND emulation path setting.
- Added Mii extractor and SYSCONF file extractor to Emulated NAND. It always overwrites old files.
- Added automatic Mii extraction on save game extract if the Mii file does not exist yet on Emulated NAND.
- Added keep of AHBPROT flag on IOS Reload. Homebrews booted now have AHBPROT. (thanks to davebaol)
- Added a new feature to force aspect ratio on games/channels. (thanks to giantpune for help with disassembler)
- Added Zelda Skyward Sword Alternative dol offset (PAL and NTSC-U) for automatic dol selection.
- Added detection of enabled cheat codes from an already created .gct file.
- Added support for 2 USB drives for d2x cIOS (Requires d2x v9+).
Changes:
- Removed buggy focus system completely and added support to control screen pointer with analog sticks from respective controllers if the wiimote is
not pointing to the screen. Compatible with Nunchuk, Classic Controller and GameCube controller. A speed factor is available in the GUI settings.
- Restructured game's settings for different types of games (Wii/GC/Channels).
- Added auto position of progress window messages in vertical direction depending of how many are used at the same time.
- If "Titles from GameTDB" is not enabled the title will be read from the folder name if possible or from the game disc header.
Title caching can still be used and is recommended in that case.
- Settings title, keyboard text and key color can be changed by themes now.
- Added optional background image for list/carousel/grid layouts (unused by default theme).
- Use of old built-in font for credits window because it doesn't look good with the system menu one.
- Removed the need of a cIOS to launch the loader (if anyone uses it with IOS58 for whatever reason).
- Improved detection of game partition when starting the loader without configs (fresh start).
- Isfs is now initiated once and deinitiated when cleaning up only, instead of the whole init/deinit every single access.
- Updated file system libraries.
- Removed pngu which is not needed, changed screenshot function to use libgd instead
- added init of network into background thread so it is cancelable and has a timeout
- changed wifi gecko to UDP socket
- Converted all ogg sounds from 44.1 khz to 48 khz.
- Optimized use of memory:
Sizes over 30kb go to mem2 now first till it runs out ; Avoid use of mem2 area used on IOS_Reload (first 2 mb) ;
Change font character texture to I4 which uses half as much memory (less cache memory).
- Changed update function to get the files from googlecode website, since old update host website isn't accessible anymore.
Fixes:
- Fixed small scrollbar bug when having only 1 item.
- Fixed reloading of cover image on game list when only 1 item is left after a change (e.g. filtering).
- Improved calculation of progress speed. Now it is always the last 15 secs average instead of overall progress speed.
- Fixed "new" game showing even with a parental control setting.
- Fixed removing of unused cached titles on wiitdb load.
- Fixed ocarina codes when using more than 255 codes (brawl+) (untested).
- Fixed bug where entering "-1" (Use global) for cIOS was not possible in game settings.
- Fixed playback of some BNS banner sounds.
- Fixed reloading into another IOS before launch of game.
- Removed buggy lz77 implementation and use the one known working.
- Fixed launching of dollz compressed dol files. (thanks FIX94)
- Fixed reading game's titles from disc header on fat32/ntfs/ext.
- Fixed crash on missing <app> tag on meta.xml files.
- Forwarder: Fixed crash on drives with physical sector size > 512 bytes.
- Forwarder: Fixed endless waiting for slow HDD. (thanks to FIX94)
- Forwarder: Added missing ext2 unmount. (thanks to FIX94)
- Supports new WiiMotion+ controllers by using latest libraries.
- Lots of string handling improvements (thanks to gerbilsoft for his patch)
New Channel Grid Mode specific features:
- New settings section for all banner's settings.
- Use of BNR (banner animation) cache setting to load banners and icon's animation faster. (Enabled by default. Takes ~35MB/100 Banners)
Wii games/Channels also accept ID3.bnr for custom-made multi-region banners.
- BNR cache path setting.
- Pulsing "new" icon on banner grid layout for new games.
- Centering and size setting for banner's animation resources.
- Channel's zooming speed setting.
- Page's scrolling speed setting.
New GameCube specific features:
- Supports Dios Mios Lite (DML) v1.2+
- Uses of a custom banner for GameCube games which loads the game's internal opening.bnr informations (big thanks to diddy
from the wiithemeteam for creating the brlyt/brlan for the banner).
- DML settings editable from the loader (global and per game settings).
- Supported formats for gamecubes are ISO/GCM and GCRegEx.
- Custom game paths. The following paths are accepted:
1. configpath/ID6/
2. configpath/ID6_Title/
3. configpath/Title [ID6]/
4. configpath/gamepath/ (slow loading speed)
Accepted game's filenames: title.iso, title.gcm, GAMEID6.iso, GAMEID6.gcm
- DML cheats now work the same way as for other Wii games, gct goes to "GCT Cheatcode Path" as GAMEID.gct
- GameCube games copy from USB to SD on demand with choice menu to delete SD games to make space,
If you want to use this feature then set the "Main GC path" to USB and the "SD GameCube path" to SD card.
If duplicated games are detected on SD and USB, the games on SD will be prioritized.
- Added GameCube disc dump functionality with multi-disc menu game selection, compress and align support
(thanks to FIX94 and Overjoy for their disc dump sources on which this is based).
- Use of the BNR cache path to load ID6.bnr or ID3.bnr if available for custom-made banners. (Loading only)
- Video mode option to force interlace mode on GameCube.
- Fixed force prog mode on DML 1.4
2012-05-12 11:10:37 +02:00
BannerAsync : : ResumeThread ( ) ;
2012-05-06 12:59:58 +02:00
ResumeGui ( ) ;
}
2011-07-26 00:28:22 +02:00
sdcardBtn - > ResetState ( ) ;
}
else if ( DownloadBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t DownloadBtn Clicked \n " ) ;
ImageDownloader : : DownloadImages ( ) ;
ReloadBrowser ( ) ;
DownloadBtn - > ResetState ( ) ;
}
else if ( settingsBtn - > GetState ( ) = = STATE_CLICKED )
{
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_GLOBAL_SETTINGS ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
settingsBtn - > ResetState ( ) ;
return MENU_NONE ;
}
return MENU_SETTINGS ;
}
else if ( favoriteBtn - > GetState ( ) = = STATE_CLICKED )
{
favoriteBtn - > ResetState ( ) ;
gprintf ( " \t favoriteBtn Clicked \n " ) ;
if ( Settings . GameSort & SORT_FAVORITE )
Settings . GameSort & = ~ SORT_FAVORITE ;
else
Settings . GameSort | = SORT_FAVORITE ;
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
if ( ( Settings . GameSort & SORT_FAVORITE ) & & gameList . size ( ) = = 0 )
{
Settings . GameSort & = ~ SORT_FAVORITE ;
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
ShowError ( tr ( " No favorites selected. " ) ) ;
}
else
ReloadBrowser ( ) ;
}
else if ( searchBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t searchBtn Clicked \n " ) ;
show_searchwindow = ! show_searchwindow ;
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
ReloadBrowser ( ) ;
searchBtn - > ResetState ( ) ;
if ( show_searchwindow & & wcslen ( gameList . GetCurrentFilter ( ) ) = = 0 )
GridRowsPreSearch = Settings . gridRows ; //! store old rows amount
}
else if ( searchBar & & ( searchChar = searchBar - > GetClicked ( ) ) )
{
if ( searchChar > 27 ) //! Character clicked
{
2011-11-12 19:14:09 +01:00
int len = gameList . GetCurrentFilter ( ) ? wcslen ( gameList . GetCurrentFilter ( ) ) : 0 ;
wchar_t newFilter [ len + 2 ] ;
if ( gameList . GetCurrentFilter ( ) ) wcscpy ( newFilter , gameList . GetCurrentFilter ( ) ) ;
newFilter [ len ] = searchChar ;
newFilter [ len + 1 ] = 0 ;
2011-11-11 21:15:29 +01:00
2011-11-12 19:14:09 +01:00
gameList . FilterList ( newFilter ) ;
2011-07-26 00:28:22 +02:00
}
else if ( searchChar = = 27 ) //! Close
{
show_searchwindow = false ;
searchBtn - > StopEffect ( ) ;
}
else if ( searchChar = = 7 ) //! Clear
{
gameList . FilterList ( L " " ) ;
Settings . gridRows = GridRowsPreSearch ; //! restore old rows amount so we don't stay on one row
}
else if ( searchChar = = 8 ) //! Backspace
{
int len = wcslen ( gameList . GetCurrentFilter ( ) ) ;
wchar_t newFilter [ len + 1 ] ;
2011-11-12 19:14:09 +01:00
if ( gameList . GetCurrentFilter ( ) ) wcscpy ( newFilter , gameList . GetCurrentFilter ( ) ) ;
newFilter [ len > 0 ? len - 1 : 0 ] = 0 ;
gameList . FilterList ( newFilter ) ;
if ( len = = 1 )
Settings . gridRows = GridRowsPreSearch ; //! restore old rows amount so we don't stay on one row
}
else if ( searchChar = = 6 )
{
Settings . SearchMode = Settings . SearchMode = = SEARCH_BEGINNING ? SEARCH_CONTENT : SEARCH_BEGINNING ;
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
}
ReloadBrowser ( ) ;
return MENU_NONE ;
}
else if ( sortBtn - > GetState ( ) = = STATE_CLICKED )
{
sortBtn - > ResetState ( ) ;
gprintf ( " \t sortBtn clicked \n " ) ;
if ( Settings . GameSort & SORT_ABC )
{
Settings . GameSort & = ~ SORT_ABC ;
Settings . GameSort | = SORT_RANKING ;
}
else if ( Settings . GameSort & SORT_RANKING )
{
Settings . GameSort & = ~ SORT_RANKING ;
Settings . GameSort | = SORT_PLAYCOUNT ;
}
else if ( Settings . GameSort & SORT_PLAYCOUNT )
{
Settings . GameSort & = ~ SORT_PLAYCOUNT ;
Settings . GameSort | = SORT_PLAYERS ;
}
else if ( Settings . GameSort & SORT_PLAYERS )
{
Settings . GameSort & = ~ SORT_PLAYERS ;
Settings . GameSort | = SORT_ABC ;
}
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
ReloadBrowser ( ) ;
}
else if ( listBtn - > GetState ( ) = = STATE_CLICKED )
{
2017-12-14 18:38:14 +01:00
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_LOADER_LAYOUT_BUTTON ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
listBtn - > ResetState ( ) ;
return returnMenu ;
}
2011-07-26 00:28:22 +02:00
gprintf ( " \t listBtn Clicked \n " ) ;
if ( Settings . gameDisplay ! = LIST_MODE )
{
Settings . gameDisplay = LIST_MODE ;
ReloadBrowser ( ) ;
}
listBtn - > ResetState ( ) ;
}
else if ( gridBtn - > GetState ( ) = = STATE_CLICKED )
{
2017-12-14 18:38:14 +01:00
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_LOADER_LAYOUT_BUTTON ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
gridBtn - > ResetState ( ) ;
return returnMenu ;
}
2011-07-26 00:28:22 +02:00
gprintf ( " \t gridBtn Clicked \n " ) ;
if ( Settings . gameDisplay ! = GRID_MODE )
{
Settings . gameDisplay = GRID_MODE ;
ReloadBrowser ( ) ;
}
gridBtn - > ResetState ( ) ;
}
else if ( carouselBtn - > GetState ( ) = = STATE_CLICKED )
{
2017-12-14 18:38:14 +01:00
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_LOADER_LAYOUT_BUTTON ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
carouselBtn - > ResetState ( ) ;
return returnMenu ;
}
2011-07-26 00:28:22 +02:00
gprintf ( " \t carouselBtn Clicked \n " ) ;
if ( Settings . gameDisplay ! = CAROUSEL_MODE )
{
Settings . gameDisplay = CAROUSEL_MODE ;
ReloadBrowser ( ) ;
}
carouselBtn - > ResetState ( ) ;
}
2012-05-06 12:59:58 +02:00
else if ( bannerGridBtn - > GetState ( ) = = STATE_CLICKED )
{
2017-12-14 18:38:14 +01:00
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_LOADER_LAYOUT_BUTTON ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
bannerGridBtn - > ResetState ( ) ;
return returnMenu ;
}
2012-05-06 12:59:58 +02:00
gprintf ( " \t bannerGridBtn Clicked \n " ) ;
if ( ! SystemMenuResources : : Instance ( ) - > IsLoaded ( ) ) {
WindowPrompt ( tr ( " Error: " ) , tr ( " Banner grid layout is only available with AHBPROT! Please consider installing new HBC version. " ) , tr ( " OK " ) ) ;
bannerGridBtn - > ResetState ( ) ;
return MENU_NONE ;
}
if ( Settings . gameDisplay ! = BANNERGRID_MODE )
{
Settings . gameDisplay = BANNERGRID_MODE ;
ReloadBrowser ( ) ;
}
bannerGridBtn - > ResetState ( ) ;
}
2011-07-26 00:28:22 +02:00
else if ( homebrewBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t homebrewBtn Clicked \n " ) ;
return MENU_HOMEBREWBROWSE ;
}
else if ( gameInfo - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t gameinfo Clicked \n " ) ;
int SelectedGame = GetSelectedGame ( ) ;
gameInfo - > ResetState ( ) ;
if ( SelectedGame > = 0 & & SelectedGame < ( s32 ) gameList . size ( ) )
{
2012-02-09 22:18:16 +01:00
rockout ( gameList [ SelectedGame ] ) ;
2011-07-26 00:28:22 +02:00
SetState ( STATE_DISABLED ) ;
2012-02-09 22:18:16 +01:00
int choice = showGameInfo ( SelectedGame , 0 ) ;
2011-07-26 00:28:22 +02:00
SetState ( STATE_DEFAULT ) ;
2012-02-09 22:18:16 +01:00
rockout ( 0 ) ;
2011-07-26 00:28:22 +02:00
if ( choice = = 2 )
homeBtn - > SetState ( STATE_CLICKED ) ;
}
}
else if ( lockBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t lockBtn clicked \n " ) ;
lockBtn - > ResetState ( ) ;
if ( Settings . godmode )
{
if ( WindowPrompt ( tr ( " Parental Control " ) , tr ( " Are you sure you want to lock USB Loader GX? " ) , tr ( " Yes " ) , tr ( " No " ) ) = = 1 )
{
Settings . godmode = 0 ;
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
ReloadBrowser ( ) ;
}
}
else
{
//password check to unlock Install,Delete and Format
SetState ( STATE_DISABLED ) ;
int result = PasswordCheck ( Settings . unlockCode ) ;
SetState ( STATE_DEFAULT ) ;
if ( result > 0 )
{
if ( result = = 1 )
WindowPrompt ( tr ( " Correct Password " ) , tr ( " All the features of USB Loader GX are unlocked. " ) , tr ( " OK " ) ) ;
Settings . godmode = 1 ;
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
ReloadBrowser ( ) ;
}
else if ( result < 0 )
WindowPrompt ( tr ( " Wrong Password " ) , tr ( " USB Loader GX is protected " ) , tr ( " OK " ) ) ;
}
}
else if ( categBtn - > GetState ( ) = = STATE_CLICKED )
{
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_CATEGORIES_MENU ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
categBtn - > ResetState ( ) ;
return returnMenu ;
}
mainWindow - > SetState ( STATE_DISABLED ) ;
CategorySwitchPrompt promptMenu ;
promptMenu . SetAlignment ( thAlign ( " center - category switch prompt align hor " ) , thAlign ( " middle - category switch prompt align ver " ) ) ;
promptMenu . SetPosition ( thInt ( " 0 - category switch prompt pos x " ) , thInt ( " 0 - category switch prompt pos y " ) ) ;
promptMenu . SetEffect ( EFFECT_FADE , 20 ) ;
mainWindow - > Append ( & promptMenu ) ;
promptMenu . Show ( ) ;
promptMenu . SetEffect ( EFFECT_FADE , - 20 ) ;
while ( promptMenu . GetEffect ( ) > 0 ) usleep ( 100 ) ;
mainWindow - > Remove ( & promptMenu ) ;
categBtn - > ResetState ( ) ;
mainWindow - > SetState ( STATE_DEFAULT ) ;
if ( promptMenu . categoriesChanged ( ) )
{
2011-11-12 19:14:09 +01:00
gameList . FilterList ( ) ;
2011-07-26 00:28:22 +02:00
ReloadBrowser ( ) ;
}
}
2011-12-22 23:44:48 +01:00
else if ( loaderModeBtn - > GetState ( ) = = STATE_CLICKED )
{
if ( ! Settings . godmode & & ( Settings . ParentalBlocks & BLOCK_LOADER_MODE_BUTTON ) )
{
WindowPrompt ( tr ( " Permission denied. " ) , tr ( " Console must be unlocked for this option. " ) , tr ( " OK " ) ) ;
loaderModeBtn - > ResetState ( ) ;
return returnMenu ;
}
2012-05-06 12:59:58 +02:00
int choice = CheckboxWindow ( tr ( " Select titles sources. " ) , 0 , tr ( " Wii Games " ) , tr ( " Nand Channels " ) , tr ( " EmuNand Channels " ) , tr ( " GC Games " ) , 0 , 0 , Settings . LoaderMode ) ;
2011-12-22 23:44:48 +01:00
if ( choice ! = CheckedNone & & choice ! = Settings . LoaderMode )
{
Settings . LoaderMode = choice ;
if ( ( Settings . LoaderMode & MODE_WIIGAMES ) & & ( gameList . GameCount ( ) = = 0 ) )
{
2014-04-25 17:34:53 +02:00
s32 wbfsinit = WBFS_Init ( WBFS_DEVICE_USB ) ;
if ( wbfsinit < 0 )
{
ShowError ( " %s %s " , tr ( " USB Device not initialized. " ) , tr ( " Switching to channel list mode. " ) ) ;
Settings . LoaderMode & = ~ MODE_WIIGAMES ;
Settings . LoaderMode | = MODE_NANDCHANNELS ;
}
else
{
WBFS_ReInit ( WBFS_DEVICE_USB ) ;
}
2011-12-22 23:44:48 +01:00
gameList . ReadGameList ( ) ;
2011-12-23 16:48:20 +01:00
if ( Settings . ShowFreeSpace )
{
ThreadedTask : : Instance ( ) - > AddCallback ( & HDDSizeCallback ) ;
ThreadedTask : : Instance ( ) - > Execute ( ) ;
}
2011-12-22 23:44:48 +01:00
}
wString oldFilter ( gameList . GetCurrentFilter ( ) ) ;
2012-01-08 19:24:46 +01:00
GameTitles . LoadTitlesFromGameTDB ( Settings . titlestxt_path , false ) ;
2011-12-22 23:44:48 +01:00
gameList . FilterList ( oldFilter . c_str ( ) ) ;
ReloadBrowser ( ) ;
}
loaderModeBtn - > ResetState ( ) ;
}
2011-07-26 00:28:22 +02:00
else if ( Settings . gameDisplay = = LIST_MODE & & idBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t idBtn Clicked \n " ) ;
struct discHdr * header = gameList [ GetSelectedGame ( ) ] ;
//enter new game ID
char entered [ 7 ] ;
snprintf ( entered , sizeof ( entered ) , " %s " , ( char * ) header - > id ) ;
int result = OnScreenKeyboard ( entered , sizeof ( entered ) , 0 ) ;
if ( result = = 1 )
{
WBFS_ReIDGame ( header - > id , entered ) ;
wString oldFilter ( gameList . GetCurrentFilter ( ) ) ;
gameList . ReadGameList ( ) ;
gameList . FilterList ( oldFilter . c_str ( ) ) ;
ReloadBrowser ( ) ;
}
idBtn - > ResetState ( ) ;
}
else if ( Settings . gameDisplay = = LIST_MODE & & GetSelectedGame ( ) ! = gameSelectedOld )
{
2010-12-12 17:31:13 +01:00
gameSelectedOld = GetSelectedGame ( ) ;
int gameSelected = gameSelectedOld ;
2011-07-26 00:28:22 +02:00
if ( gameSelected > = 0 & & gameSelected < ( s32 ) gameList . size ( ) )
{
struct discHdr * header = gameList [ gameSelected ] ;
LoadCover ( header ) ;
UpdateGameInfoText ( header - > id ) ;
}
}
if ( gameBrowser )
{
//! This is bad, but for saving pupose it will be in main loop
Settings . GameListOffset = gameBrowser - > getListOffset ( ) ;
Settings . SelectedGame = gameBrowser - > GetSelectedOption ( ) - Settings . GameListOffset ;
}
2011-06-24 21:11:36 +02:00
gameClicked = gameBrowser ? gameBrowser - > GetClickedOption ( ) : - 1 ;
2012-02-09 22:18:16 +01:00
if ( gameClicked > = 0 & & gameClicked < ( s32 ) gameList . size ( ) )
OpenClickedGame ( gameList [ gameClicked ] ) ;
2011-07-26 00:28:22 +02:00
2010-12-18 14:20:45 +01:00
return returnMenu ;
}
void GameBrowseMenu : : CheckDiscSlotUpdate ( )
{
2011-12-20 22:41:00 +01:00
// No need to update every 1 ms
static u32 delayCounter = 0 ;
if ( + + delayCounter < 100 )
return ;
delayCounter = 0 ;
2011-07-26 00:28:22 +02:00
u32 DiscDriveCover = 0 ;
WDVD_GetCoverStatus ( & DiscDriveCover ) ; //for detecting if i disc has been inserted
if ( ( DiscDriveCover & 0x02 ) & & ( DiscDriveCover ! = DiscDriveCoverOld ) )
{
2011-12-20 22:41:00 +01:00
int choice = WindowPrompt ( tr ( " Disc Insert Detected " ) , 0 , tr ( " Install " ) , tr ( " Mount DVD drive " ) , tr ( " Cancel " ) ) ;
2011-07-26 00:28:22 +02:00
if ( choice = = 1 )
2011-12-30 19:37:44 +01:00
installBtn - > SetState ( STATE_CLICKED ) ;
2011-07-26 00:28:22 +02:00
else if ( choice = = 2 )
dvdBtn - > SetState ( STATE_CLICKED ) ;
}
else if ( dvdBtn - > GetState ( ) = = STATE_CLICKED )
{
gprintf ( " \t dvdBtn Clicked \n " ) ;
2011-09-03 11:39:26 +02:00
if ( DiscDriveCover & 0x02 )
{
if ( ! dvdheader )
dvdheader = new struct discHdr ;
2012-02-09 22:18:16 +01:00
if ( Disc_Mount ( dvdheader ) < 0 )
{
delete dvdheader ;
dvdheader = NULL ;
ShowError ( tr ( " Can't mount or unknown disc format. " ) ) ;
}
else
OpenClickedGame ( dvdheader ) ;
2011-09-03 11:39:26 +02:00
}
else
WindowPrompt ( tr ( " No disc inserted. " ) , 0 , tr ( " OK " ) ) ;
2011-07-26 00:28:22 +02:00
2011-09-03 11:39:26 +02:00
dvdBtn - > ResetState ( ) ;
2011-07-26 00:28:22 +02:00
}
if ( DiscDriveCoverOld ! = DiscDriveCover )
{
if ( DiscDriveCover & 0x02 )
dvdBtn - > SetImage ( dvdBtnImg ) ;
else
dvdBtn - > SetImage ( dvdBtnImg_g ) ;
DiscDriveCoverOld = DiscDriveCover ;
}
2010-12-18 14:20:45 +01:00
}
2011-01-23 21:13:41 +01:00
void GameBrowseMenu : : UpdateClock ( )
2010-12-18 14:20:45 +01:00
{
2011-07-26 00:28:22 +02:00
if ( Settings . hddinfo ! = CLOCK_HR12 & & Settings . hddinfo ! = CLOCK_HR24 )
return ;
time_t rawtime = time ( 0 ) ;
if ( rawtime = = lastrawtime ) //! Only update every 1 second
return ;
lastrawtime = rawtime ;
char theTime [ 50 ] ;
theTime [ 0 ] = 0 ;
struct tm * timeinfo = localtime ( & rawtime ) ;
if ( Settings . hddinfo = = CLOCK_HR12 )
{
if ( rawtime & 1 )
strftime ( theTime , sizeof ( theTime ) , " %I:%M " , timeinfo ) ;
else
strftime ( theTime , sizeof ( theTime ) , " %I %M " , timeinfo ) ;
}
if ( Settings . hddinfo = = CLOCK_HR24 )
{
if ( rawtime & 1 )
strftime ( theTime , sizeof ( theTime ) , " %H:%M " , timeinfo ) ;
else
strftime ( theTime , sizeof ( theTime ) , " %H %M " , timeinfo ) ;
}
clockTime - > SetText ( theTime ) ;
2011-12-28 17:27:30 +01:00
if ( Settings . screensaver ! = 0 & & ControlActivityTimeout ( ) )
{
WindowScreensaver ( ) ;
}
2010-12-12 17:31:13 +01:00
}
void GameBrowseMenu : : UpdateGameInfoText ( const u8 * gameId )
{
2011-07-26 00:28:22 +02:00
if ( ! gameId )
{
Remove ( GameRegionTxt ) ;
delete GameRegionTxt ;
GameRegionTxt = NULL ;
Remove ( GameIDTxt ) ;
delete GameIDTxt ;
GameIDTxt = NULL ;
return ;
}
char gameregion [ 10 ] ;
char IDfull [ 7 ] ;
snprintf ( IDfull , sizeof ( IDfull ) , ( char * ) gameId ) ;
switch ( IDfull [ 3 ] )
{
2015-11-17 15:41:27 +01:00
case ' A ' :
case ' B ' :
case ' U ' :
case ' X ' :
strcpy ( gameregion , tr ( " Region Free " ) ) ;
break ;
2011-07-26 00:28:22 +02:00
case ' E ' :
2015-11-17 15:41:27 +01:00
case ' N ' :
2011-11-20 11:46:07 +01:00
strcpy ( gameregion , " NTSC U " ) ;
2011-07-26 00:28:22 +02:00
break ;
case ' J ' :
2011-11-20 11:46:07 +01:00
strcpy ( gameregion , " NTSC J " ) ;
2011-07-26 00:28:22 +02:00
break ;
2015-11-17 15:41:27 +01:00
case ' K ' :
case ' Q ' :
case ' T ' :
strcpy ( gameregion , " NTSC K " ) ;
break ;
2011-07-26 00:28:22 +02:00
case ' W ' :
2011-11-20 11:46:07 +01:00
strcpy ( gameregion , " NTSC T " ) ;
2011-07-26 00:28:22 +02:00
break ;
default :
2011-11-20 11:46:07 +01:00
strcpy ( gameregion , " PAL " ) ;
2011-07-26 00:28:22 +02:00
}
HaltGui ( ) ;
if ( Settings . sinfo = = GAMEINFO_ID | | Settings . sinfo = = GAMEINFO_BOTH )
{
Remove ( GameIDTxt ) ;
delete GameIDTxt ;
GameIDTxt = new GuiText ( IDfull , 22 , thColor ( " r=55 g=190 b=237 a=255 - game id text color " ) ) ;
GameIDTxt - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
GameIDTxt - > SetPosition ( thInt ( " 68 - gameID btn pos x " ) , thInt ( " 305 - gameID btn pos y " ) ) ;
GameIDTxt - > SetEffect ( EFFECT_FADE , 20 ) ;
Append ( GameIDTxt ) ;
}
//don't try to show region for channels because all the custom channels wont follow the rules
if ( ( Settings . sinfo = = GAMEINFO_REGION ) | | ( Settings . sinfo = = GAMEINFO_BOTH ) )
{
Remove ( GameRegionTxt ) ;
delete GameRegionTxt ;
GameRegionTxt = new GuiText ( gameregion , 22 , thColor ( " r=55 g=190 b=237 a=255 - region info text color " ) ) ;
GameRegionTxt - > SetAlignment ( ALIGN_LEFT , ALIGN_TOP ) ;
GameRegionTxt - > SetPosition ( thInt ( " 68 - region info text pos x " ) , thInt ( " 30 - region info text pos y " ) ) ;
GameRegionTxt - > SetEffect ( EFFECT_FADE , 20 ) ;
Append ( GameRegionTxt ) ;
}
ResumeGui ( ) ;
2010-12-12 17:31:13 +01:00
}
2012-02-09 22:18:16 +01:00
int GameBrowseMenu : : OpenClickedGame ( struct discHdr * header )
2010-12-12 17:31:13 +01:00
{
2012-01-01 18:58:10 +01:00
int choice = - 1 ;
2010-12-12 17:31:13 +01:00
2011-07-26 00:28:22 +02:00
if ( searchBar )
{
HaltGui ( ) ;
mainWindow - > Remove ( searchBar ) ;
ResumeGui ( ) ;
}
2010-12-12 17:31:13 +01:00
2012-02-09 22:18:16 +01:00
rockout ( header ) ;
2012-05-06 12:59:58 +02:00
SetAllowDim ( false ) ;
2012-01-01 18:58:10 +01:00
SetState ( STATE_DISABLED ) ;
if ( gameBrowser )
gameBrowser - > SetState ( STATE_DISABLED ) ;
2010-12-12 17:31:13 +01:00
2012-01-01 18:58:10 +01:00
if ( Settings . wiilight = = ON )
wiilight ( 1 ) ;
2010-12-12 17:31:13 +01:00
2012-01-01 18:58:10 +01:00
if ( Settings . quickboot ) { //quickboot game
2012-02-09 22:18:16 +01:00
GameWindow : : BootGame ( header ) ;
2012-01-01 18:58:10 +01:00
}
2012-08-05 19:07:47 +02:00
else if ( ( Settings . GameWindowMode = = GAMEWINDOW_BANNER ) | |
( Settings . GameWindowMode = = GAMEWINDOW_BOTH & & Settings . gameDisplay = = BANNERGRID_MODE ) )
2011-07-26 00:28:22 +02:00
{
2012-05-06 12:59:58 +02:00
BannerWindow GamePrompt ( this , header ) ;
mainWindow - > Append ( & GamePrompt ) ;
2011-07-26 00:28:22 +02:00
2012-05-06 12:59:58 +02:00
choice = GamePrompt . Run ( ) ;
}
2012-08-05 19:07:47 +02:00
else if ( ( Settings . GameWindowMode = = GAMEWINDOW_DISC ) | |
( Settings . GameWindowMode = = GAMEWINDOW_BOTH & & Settings . gameDisplay ! = BANNERGRID_MODE ) )
2012-05-06 12:59:58 +02:00
{
SetAllowDim ( true ) ;
GameWindow GamePrompt ( this , header ) ;
mainWindow - > Append ( & GamePrompt ) ;
2011-07-26 00:28:22 +02:00
2012-05-06 12:59:58 +02:00
choice = GamePrompt . Run ( ) ;
2012-01-01 18:58:10 +01:00
}
2011-07-26 00:28:22 +02:00
2012-01-01 18:58:10 +01:00
if ( choice = = 1 )
{
2012-02-29 20:52:36 +01:00
gameList . FilterList ( ) ;
2012-01-01 18:58:10 +01:00
ReloadBrowser ( ) ;
if ( Settings . ShowFreeSpace )
2011-07-26 00:28:22 +02:00
{
2012-01-01 18:58:10 +01:00
ThreadedTask : : Instance ( ) - > AddCallback ( & HDDSizeCallback ) ;
ThreadedTask : : Instance ( ) - > Execute ( ) ;
2011-07-26 00:28:22 +02:00
}
}
2012-01-01 18:58:10 +01:00
wiilight ( 0 ) ;
2012-02-09 22:18:16 +01:00
rockout ( 0 ) ;
2012-01-01 18:58:10 +01:00
SetState ( STATE_DEFAULT ) ;
2012-05-06 12:59:58 +02:00
SetAllowDim ( true ) ;
2012-01-01 18:58:10 +01:00
if ( gameBrowser )
gameBrowser - > SetState ( STATE_DEFAULT ) ;
2011-07-26 00:28:22 +02:00
if ( searchBar )
{
HaltGui ( ) ;
mainWindow - > Append ( searchBar ) ;
ResumeGui ( ) ;
}
2010-12-12 17:31:13 +01:00
return 0 ;
}
void GameBrowseMenu : : LoadCover ( struct discHdr * header )
{
2011-07-26 00:28:22 +02:00
gameCoverImg - > SetImage ( NULL ) ;
2010-12-12 17:31:13 +01:00
2011-07-26 00:28:22 +02:00
delete gameCover ;
gameCover = LoadCoverImage ( header ) ;
2010-12-12 17:31:13 +01:00
2011-07-26 00:28:22 +02:00
gameCoverImg - > SetImage ( gameCover ) ; // put the new image on the download button
2010-12-12 17:31:13 +01:00
}
void GameBrowseMenu : : UpdateCallback ( void * e )
{
2011-07-26 00:28:22 +02:00
//! Draw the selected Icon allways on top
GameBrowseMenu * w = ( GameBrowseMenu * ) e ;
for ( u32 i = 0 ; i < w - > ToolBar . size ( ) ; + + i )
{
if ( w - > ToolBar [ i ] - > GetState ( ) = = STATE_SELECTED )
{
w - > Remove ( w - > ToolBar [ i ] ) ;
w - > Append ( w - > ToolBar [ i ] ) ;
break ;
}
}
2010-12-12 17:31:13 +01:00
}
2010-12-31 14:13:14 +01:00
void GameBrowseMenu : : UpdateFreeSpace ( void * arg )
{
2011-07-26 00:28:22 +02:00
char spaceinfo [ 30 ] ;
2012-05-06 12:59:58 +02:00
spaceinfo [ 0 ] = 0 ;
2011-07-26 00:28:22 +02:00
if ( Settings . ShowFreeSpace )
{
float freespace = 0.0 , used = 0.0 ;
2011-12-28 10:55:00 +01:00
int ret = WBFS_DiskSpace ( & used , & freespace ) ;
if ( ret > = 0 )
2011-07-26 00:28:22 +02:00
{
2011-12-28 10:55:00 +01:00
if ( strcmp ( Settings . db_language , " JA " ) = = 0 )
{
// needs to be "total...used" for Japanese
2012-05-06 12:59:58 +02:00
snprintf ( spaceinfo , sizeof ( spaceinfo ) , " %.2fGB %s %.2fGB %s " , ( freespace + used ) , tr ( " of " ) , freespace , tr ( " free " ) ) ;
2011-12-28 10:55:00 +01:00
}
else
{
2012-05-06 12:59:58 +02:00
snprintf ( spaceinfo , sizeof ( spaceinfo ) , " %.2fGB %s %.2fGB %s " , freespace , tr ( " of " ) , ( freespace + used ) , tr ( " free " ) ) ;
2011-12-28 10:55:00 +01:00
}
2011-07-26 00:28:22 +02:00
}
}
if ( Exiting )
return ;
usedSpaceTxt - > SetText ( spaceinfo ) ;
2010-12-31 14:13:14 +01:00
}
2011-11-20 11:46:07 +01:00