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
This commit is contained in:
dimok789 2012-05-12 09:10:37 +00:00
parent d08efe77cc
commit 499ae813f2
32 changed files with 139 additions and 136 deletions

View File

@ -2,8 +2,8 @@
<app version="1"> <app version="1">
<name> USB Loader GX</name> <name> USB Loader GX</name>
<coder>USB Loader GX Team</coder> <coder>USB Loader GX Team</coder>
<version>2.3 r1179</version> <version>3.0 r1180</version>
<release_date>201205111704</release_date> <release_date>201205121007</release_date>
<!-- // remove this line to enable arguments <!-- // remove this line to enable arguments
<arguments> <arguments>
<arg>--ios=250</arg> <arg>--ios=250</arg>

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n" "Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n" "Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " nelze stáhnout." msgstr " nelze stáhnout."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Fox888[dk]\n" "Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n" "Language-Team: [dk]\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " kunne ikke downloades." msgstr " kunne ikke downloades."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2011-12-17 14:22+0100\n" "PO-Revision-Date: 2011-12-17 14:22+0100\n"
"Last-Translator: Arthur117\n" "Last-Translator: Arthur117\n"
"Language-Team: tj_cool, glowy, Arthur117\n" "Language-Team: tj_cool, glowy, Arthur117\n"
"Language: Dutch (Nederlands)\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: Dutch (Nederlands)\n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " kon niet worden gedownload." msgstr " kon niet worden gedownload."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "" msgstr ""

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: c64rmx\n" "Last-Translator: c64rmx\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "Latausta ei voitu suorittaa" msgstr "Latausta ei voitu suorittaa"

View File

@ -1,18 +1,18 @@
# USB Loader GX language source file. # USB Loader GX language source file.
# French.lang - r116 # French.lang - r1180 (v3.0)
# don't delete/change this line (é). # don't delete/change this line (é).
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-11 19:04+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Cyan\n" "Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n" "Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " ne peut pas être téléchargé." msgstr " ne peut pas être téléchargé."
@ -957,7 +957,7 @@ msgid "GC Banner Scale"
msgstr "Échelle des bannières GC" msgstr "Échelle des bannières GC"
msgid "GC Force Interlace" msgid "GC Force Interlace"
msgstr "" msgstr "Entrelacement GameCube"
msgid "GC Games" msgid "GC Games"
msgstr "Jeux GameCube" msgstr "Jeux GameCube"
@ -1767,7 +1767,7 @@ msgid "Successfully installed:"
msgstr "Installé avec succès:" msgstr "Installé avec succès:"
msgid "Successfully updated." msgid "Successfully updated."
msgstr "" msgstr "Mise à jour terminée."
msgid "Switching to channel list mode." msgid "Switching to channel list mode."
msgstr "Passage du loader en mode Chaînes." msgstr "Passage du loader en mode Chaînes."
@ -2088,7 +2088,7 @@ msgid "for the USB Loader source"
msgstr "pour les sources USBLoader" msgstr "pour les sources USBLoader"
msgid "for their work on the wiki page" msgid "for their work on the wiki page"
msgstr "" msgstr "pour leur travail sur les pages wiki"
msgid "formatted!" msgid "formatted!"
msgstr "formaté !" msgstr "formaté !"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-11 19:04+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2010-07-03 17:35-0800\n" "PO-Revision-Date: 2010-07-03 17:35-0800\n"
"Last-Translator: TheRealVisitor\n" "Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n" "Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
"Language: German\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: German\n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " konnte nicht heruntergeladen werden." msgstr " konnte nicht heruntergeladen werden."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-12-29 11:05+0100\n" "PO-Revision-Date: 2009-12-29 11:05+0100\n"
"Last-Translator: Springdale\n" "Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n" "Language-Team: Tusk, Springdale\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "nem letölthetõ." msgstr "nem letölthetõ."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2011-09-11 12:19+0100\n" "PO-Revision-Date: 2011-09-11 12:19+0100\n"
"Last-Translator: xFede\n" "Last-Translator: xFede\n"
"Language-Team: Cambo, xFede\n" "Language-Team: Cambo, xFede\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " non può essere scaricato." msgstr " non può essere scaricato."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: hosigumayuugi\n" "Last-Translator: hosigumayuugi\n"
"Language-Team: hosigumayuugi\n" "Language-Team: hosigumayuugi\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "ダウンロードできませんでした" msgstr "ダウンロードできませんでした"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nextos@korea.com\n" "Last-Translator: nextos@korea.com\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " 다운로드할수 없음." msgstr " 다운로드할수 없음."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: raschi\n" "Last-Translator: raschi\n"
"Language-Team: raschi\n" "Language-Team: raschi\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " kan ikke lastes ned." msgstr " kan ikke lastes ned."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n" "Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n" "Language-Team: \n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " nie udalo sie pobrac" msgstr " nie udalo sie pobrac"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-23 18:52+0200\n" "PO-Revision-Date: 2009-10-23 18:52+0200\n"
"Last-Translator: aniemotion\n" "Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n" "Language-Team: boto12, aniemotion\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " não foi baixado." msgstr " não foi baixado."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2011-11-03 11:00+0000\n" "PO-Revision-Date: 2011-11-03 11:00+0000\n"
"Last-Translator: pplucky <pplucky@gmail.com>\n" "Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n" "Language-Team: Sky8000, pplucky\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " não foi descarregado." msgstr " não foi descarregado."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nikolai_ca\n" "Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n" "Language-Team: Kir, alendit, nikolai_ca\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " не мог быть загружен" msgstr " не мог быть загружен"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: knife.hu kavid emul8ion\n" "Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n" "Language-Team: kavid\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "不能下载." msgstr "不能下载."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2011-07-25 16:40+0200\n" "PO-Revision-Date: 2011-07-25 16:40+0200\n"
"Last-Translator: Galen/xFede\n" "Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n" "Language-Team: Penn, SirPalax, hvy109\n"
"Language: Español\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: Español\n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " no se han podido descargar." msgstr " no se han podido descargar."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2010-01-19 17:39+0200\n" "PO-Revision-Date: 2010-01-19 17:39+0200\n"
"Last-Translator: Katsurou\n" "Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n" "Language-Team: Katsurou, pirateX\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "Kunde inte laddas ner." msgstr "Kunde inte laddas ner."

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-11 19:04+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2010-02-15 21:00+0800\n" "PO-Revision-Date: 2010-02-15 21:00+0800\n"
"Last-Translator: Jane.H\n" "Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n" "Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr "不能下載。" msgstr "不能下載。"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Nitro_subzero \n" "Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n" "Language-Team: Nitro_subzero\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " ไม่สามารถดาวน์โหลดได้" msgstr " ไม่สามารถดาวน์โหลดได้"

View File

@ -5,14 +5,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-09 21:15+0200\n" "POT-Creation-Date: 2012-05-12 07:11+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: omercigingelini\n" "Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n" "Language-Team: omercigingelini\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
msgid " could not be downloaded." msgid " could not be downloaded."
msgstr " indirilemedi." msgstr " indirilemedi."

View File

@ -120,11 +120,11 @@ int CheatMenu(const char * gameID)
if (ret >= 0) if (ret >= 0)
{ {
const char *strCheck = cheatslst.GetName(ret); const char *strCheck = cheatslst.GetName(ret);
if (strCheck && strcmp(strCheck, tr("ON")) == 0) if (strCheck && strcmp(strCheck, tr("ON")) == 0)
{ {
cheatslst.SetName(ret, "%s", tr("OFF")); cheatslst.SetName(ret, "%s", tr("OFF"));
} }
else if (strCheck && strcmp(strCheck, tr("OFF")) == 0) else if (strCheck && strcmp(strCheck, tr("OFF")) == 0)
{ {
cheatslst.SetName(ret, "%s", tr("ON")); cheatslst.SetName(ret, "%s", tr("ON"));
} }
@ -138,7 +138,7 @@ int CheatMenu(const char * gameID)
for (int i = 0; i < cntcheats; i++) for (int i = 0; i < cntcheats; i++)
{ {
const char *strCheck = cheatslst.GetName(i); const char *strCheck = cheatslst.GetName(i);
if (strCheck && strcmp(strCheck, tr("ON")) == 0) if (strCheck && strcmp(strCheck, tr("ON")) == 0)
vActiveCheats.push_back(i); vActiveCheats.push_back(i);
} }
if (vActiveCheats.size() == 0) if (vActiveCheats.size() == 0)

View File

@ -36,9 +36,9 @@ GCTCheats::~GCTCheats(void)
void GCTCheats::Clear(void) void GCTCheats::Clear(void)
{ {
cheatList.clear(); cheatList.clear();
sGameID.clear(); sGameID.clear();
sGameTitle.clear(); sGameTitle.clear();
} }
@ -54,26 +54,26 @@ string GCTCheats::getGameID(void)
vector<unsigned int> GCTCheats::getCheat(int nr) vector<unsigned int> GCTCheats::getCheat(int nr)
{ {
if((unsigned int)nr >= cheatList.size()) if((unsigned int)nr >= cheatList.size())
return vector<unsigned int>(); return vector<unsigned int>();
return cheatList[nr].sCheats; return cheatList[nr].sCheats;
} }
string GCTCheats::getCheatName(int nr) string GCTCheats::getCheatName(int nr)
{ {
if((unsigned int)nr >= cheatList.size()) if((unsigned int)nr >= cheatList.size())
return ERRORRANGE; return ERRORRANGE;
return cheatList[nr].sCheatName; return cheatList[nr].sCheatName;
} }
string GCTCheats::getCheatComment(int nr) string GCTCheats::getCheatComment(int nr)
{ {
if((unsigned int)nr >= cheatList.size()) if((unsigned int)nr >= cheatList.size())
return ERRORRANGE; return ERRORRANGE;
return cheatList[nr].sCheatComment; return cheatList[nr].sCheatComment;
} }
int GCTCheats::createGCT(const vector<int> &vCheats, const char * filename) int GCTCheats::createGCT(const vector<int> &vCheats, const char * filename)
@ -88,16 +88,16 @@ int GCTCheats::createGCT(const vector<int> &vCheats, const char * filename)
fwrite(GCT_Header, sizeof(GCT_Header), 1, pFile); fwrite(GCT_Header, sizeof(GCT_Header), 1, pFile);
int cnt = vCheats.size(); int cnt = vCheats.size();
int c = 0; int c = 0;
while (c < cnt) while (c < cnt)
{ {
if((unsigned int)vCheats[c] >= cheatList.size()) if((unsigned int)vCheats[c] >= cheatList.size())
continue; continue;
vector<unsigned int> &cheatBuf = cheatList[vCheats[c]].sCheats; vector<unsigned int> &cheatBuf = cheatList[vCheats[c]].sCheats;
if(cheatBuf.size() > 0) if(cheatBuf.size() > 0)
fwrite((char*)&cheatBuf[0], cheatBuf.size() * sizeof(unsigned int), 1, pFile); fwrite((char*)&cheatBuf[0], cheatBuf.size() * sizeof(unsigned int), 1, pFile);
c++; c++;
} }
@ -160,9 +160,9 @@ int GCTCheats::openTxtfile(const char * filename)
if(*line == 0) if(*line == 0)
continue; continue;
// first line is the cheat name // first line is the cheat name
CheatEntry cheatEntry; CheatEntry cheatEntry;
cheatEntry.sCheatName = line; cheatEntry.sCheatName = line;
while (fgets(line, max_line_size, pFile)) while (fgets(line, max_line_size, pFile))
{ {
@ -177,17 +177,17 @@ int GCTCheats::openTxtfile(const char * filename)
line[8] = 0; line[8] = 0;
line[17] = 0; line[17] = 0;
cheatEntry.sCheats.push_back(strtoul(&line[0], 0, 16)); cheatEntry.sCheats.push_back(strtoul(&line[0], 0, 16));
cheatEntry.sCheats.push_back(strtoul(&line[9], 0, 16)); cheatEntry.sCheats.push_back(strtoul(&line[9], 0, 16));
} }
else else
{ {
cheatEntry.sCheatComment = line; cheatEntry.sCheatComment = line;
} }
} }
if(!cheatEntry.sCheats.empty()) if(!cheatEntry.sCheats.empty())
cheatList.push_back(cheatEntry); cheatList.push_back(cheatEntry);
} }
fclose(pFile); fclose(pFile);
delete [] line; delete [] line;
@ -215,10 +215,10 @@ bool GCTCheats::IsCode(const char *str)
bool GCTCheats::IsCheatIncluded(int iCheat, const unsigned char *gctBuf, unsigned int gctSize) bool GCTCheats::IsCheatIncluded(int iCheat, const unsigned char *gctBuf, unsigned int gctSize)
{ {
if(!gctBuf || (unsigned int)iCheat >= cheatList.size()) if(!gctBuf || (unsigned int)iCheat >= cheatList.size())
return false; return false;
vector<unsigned int> &Cheat = cheatList[iCheat].sCheats; vector<unsigned int> &Cheat = cheatList[iCheat].sCheats;
int len = Cheat.size() * sizeof(unsigned int); int len = Cheat.size() * sizeof(unsigned int);
for(unsigned int i = sizeof(GCT_Header); i + len <= gctSize - sizeof(GCT_Footer); i += 4) for(unsigned int i = sizeof(GCT_Header); i + len <= gctSize - sizeof(GCT_Footer); i += 4)

View File

@ -29,13 +29,13 @@ class GCTCheats
private: private:
string sGameID; string sGameID;
string sGameTitle; string sGameTitle;
struct CheatEntry struct CheatEntry
{ {
string sCheatName; string sCheatName;
string sCheatComment; string sCheatComment;
vector<unsigned int> sCheats; vector<unsigned int> sCheats;
}; };
vector<CheatEntry> cheatList; vector<CheatEntry> cheatList;
public: public:
//!Constructor //!Constructor
GCTCheats(void); GCTCheats(void);
@ -53,7 +53,7 @@ class GCTCheats
int createGCT(const vector<int> &vCheats, const char * filename); int createGCT(const vector<int> &vCheats, const char * filename);
//!Gets Count cheats //!Gets Count cheats
//!\return Count cheats //!\return Count cheats
int getCnt() const { return cheatList.size(); } int getCnt() const { return cheatList.size(); }
//!Gets Game Name //!Gets Game Name
//!\return Game Name //!\return Game Name
string getGameName(void); string getGameName(void);
@ -68,7 +68,7 @@ class GCTCheats
string getCheatName(int nr); string getCheatName(int nr);
//!Gets Cheat Comment //!Gets Cheat Comment
//!\return Cheat Comment //!\return Cheat Comment
string getCheatComment(int nr); string getCheatComment(int nr);
//!Clear all loaded cheats //!Clear all loaded cheats
void Clear(void); void Clear(void);
//!Check if string is a code //!Check if string is a code

View File

@ -20,7 +20,7 @@
#include "utils/ShowError.h" #include "utils/ShowError.h"
#include "gecko.h" #include "gecko.h"
static const char * LanguageFilesURL = "http://usbloader-gui.googlecode.com/svn/trunk/Languages/"; static const char * LanguageFilesURL = "http://usbloader-gui.googlecode.com/svn/tags/USBLoaderGX_v3_0/";
int DownloadAllLanguageFiles() int DownloadAllLanguageFiles()
{ {
@ -104,7 +104,7 @@ int UpdateLanguageFiles()
{ {
if(WindowPrompt(tr("Error:"), tr("No language files to update on your devices! Do you want to download new language files?"), tr("Yes"), tr("No"))) if(WindowPrompt(tr("Error:"), tr("No language files to update on your devices! Do you want to download new language files?"), tr("Yes"), tr("No")))
return DownloadAllLanguageFiles(); return DownloadAllLanguageFiles();
return -2; return -2;
} }

View File

@ -1,5 +1,6 @@
#include <unistd.h> #include <unistd.h>
#include "GameBrowseMenu.hpp" #include "GameBrowseMenu.hpp"
#include "banner/BannerAsync.h"
#include "Controls/DeviceHandler.hpp" #include "Controls/DeviceHandler.hpp"
#include "GUI/gui_gamelist.h" #include "GUI/gui_gamelist.h"
#include "GUI/gui_gamegrid.h" #include "GUI/gui_gamegrid.h"
@ -684,7 +685,7 @@ void GameBrowseMenu::ReloadBrowser()
thInt("13 - list layout grid btn pos y")); thInt("13 - list layout grid btn pos y"));
carouselBtn->SetPosition(Settings.widescreen ? thInt("438 - list layout carousel btn pos x widescreen") : thInt("448 - list layout carousel btn pos x"), carouselBtn->SetPosition(Settings.widescreen ? thInt("438 - list layout carousel btn pos x widescreen") : thInt("448 - list layout carousel btn pos x"),
thInt("13 - list layout carousel btn pos y")); thInt("13 - list layout carousel btn pos y"));
bannerGridBtn->SetPosition(Settings.widescreen ? thInt("470 - list layout bannergrid btn pos x widescreen") : thInt("488 - list layout bannergrid btn pos x"), bannerGridBtn->SetPosition(Settings.widescreen ? thInt("470 - list layout bannergrid btn pos x widescreen") : thInt("488 - list layout bannergrid btn pos x"),
thInt("13 - list layout bannergrid btn pos y")); 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"), lockBtn->SetPosition(Settings.widescreen ? thInt("502 - list layout lock btn pos x widescreen") : thInt("528 - list layout lock btn pos x"),
thInt("13 - list layout lock btn pos y")); thInt("13 - list layout lock btn pos y"));
@ -733,7 +734,7 @@ void GameBrowseMenu::ReloadBrowser()
thInt("13 - grid layout grid btn pos y")); thInt("13 - grid layout grid btn pos y"));
carouselBtn->SetPosition(Settings.widescreen ? thInt("368 - grid layout carousel btn pos x widescreen") : thInt("380 - grid layout carousel btn pos x"), carouselBtn->SetPosition(Settings.widescreen ? thInt("368 - grid layout carousel btn pos x widescreen") : thInt("380 - grid layout carousel btn pos x"),
thInt("13 - grid layout carousel btn pos y")); thInt("13 - grid layout carousel btn pos y"));
bannerGridBtn->SetPosition(Settings.widescreen ? thInt("400 - grid layout bannergrid btn pos x widescreen") : thInt("420 - grid layout bannergrid btn pos x"), bannerGridBtn->SetPosition(Settings.widescreen ? thInt("400 - grid layout bannergrid btn pos x widescreen") : thInt("420 - grid layout bannergrid btn pos x"),
thInt("13 - grid layout bannergrid btn pos y")); 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"), lockBtn->SetPosition(Settings.widescreen ? thInt("432 - grid layout lock btn pos x widescreen") : thInt("460 - grid layout lock btn pos x"),
thInt("13 - grid layout lock btn pos y")); thInt("13 - grid layout lock btn pos y"));
@ -781,7 +782,7 @@ void GameBrowseMenu::ReloadBrowser()
thInt("13 - carousel layout grid btn pos y")); thInt("13 - carousel layout grid btn pos y"));
carouselBtn->SetPosition(Settings.widescreen ? thInt("368 - carousel layout carousel btn pos x widescreen") : thInt("380 - carousel layout carousel btn pos x"), carouselBtn->SetPosition(Settings.widescreen ? thInt("368 - carousel layout carousel btn pos x widescreen") : thInt("380 - carousel layout carousel btn pos x"),
thInt("13 - carousel layout carousel btn pos y")); thInt("13 - carousel layout carousel btn pos y"));
bannerGridBtn->SetPosition(Settings.widescreen ? thInt("400 - carousel layout bannergrid btn pos x widescreen") : thInt("420 - carousel layout bannergrid btn pos x"), bannerGridBtn->SetPosition(Settings.widescreen ? thInt("400 - carousel layout bannergrid btn pos x widescreen") : thInt("420 - carousel layout bannergrid btn pos x"),
thInt("13 - carousel layout bannergrid btn pos y")); 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"), lockBtn->SetPosition(Settings.widescreen ? thInt("432 - carousel layout lock btn pos x widescreen") : thInt("460 - carousel layout lock btn pos x"),
thInt("13 - carousel layout lock btn pos y")); thInt("13 - carousel layout lock btn pos y"));
@ -829,7 +830,7 @@ void GameBrowseMenu::ReloadBrowser()
thInt("13 - bannergrid layout grid btn pos y")); 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"), 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")); thInt("13 - bannergrid layout carousel btn pos y"));
bannerGridBtn->SetPosition(Settings.widescreen ? thInt("400 - bannergrid layout bannergrid btn pos x widescreen") : thInt("420 - bannergrid layout bannergrid btn pos x"), bannerGridBtn->SetPosition(Settings.widescreen ? thInt("400 - bannergrid layout bannergrid btn pos x widescreen") : thInt("420 - bannergrid layout bannergrid btn pos x"),
thInt("13 - bannergrid layout bannergrid btn pos y")); 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"), 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")); thInt("13 - bannergrid layout lock btn pos y"));
@ -984,6 +985,7 @@ int GameBrowseMenu::MainLoop()
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"))) 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(); HaltGui();
BannerAsync::HaltThread();
bgMusic->Pause(); bgMusic->Pause();
Settings.Save(); Settings.Save();
DeviceHandler::Instance()->UnMountSD(); DeviceHandler::Instance()->UnMountSD();
@ -997,6 +999,7 @@ int GameBrowseMenu::MainLoop()
bgMusic->Resume(); bgMusic->Resume();
gameList.FilterList(); gameList.FilterList();
ReloadBrowser(); ReloadBrowser();
BannerAsync::ResumeThread();
ResumeGui(); ResumeGui();
} }
sdcardBtn->ResetState(); sdcardBtn->ResetState();

View File

@ -170,7 +170,7 @@ int UpdateGameTDB()
static void UpdateIconPng() static void UpdateIconPng()
{ {
char iconpath[200]; char iconpath[200];
struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/icon.png"); struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/icon.png");
if (file.data != NULL) if (file.data != NULL)
{ {
snprintf(iconpath, sizeof(iconpath), "%sicon.png", Settings.update_path); snprintf(iconpath, sizeof(iconpath), "%sicon.png", Settings.update_path);
@ -187,7 +187,7 @@ static void UpdateIconPng()
static void UpdateMetaXml() static void UpdateMetaXml()
{ {
char xmlpath[200]; char xmlpath[200];
struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/meta.xml"); struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/meta.xml");
if (file.data != NULL) if (file.data != NULL)
{ {
snprintf(xmlpath, sizeof(xmlpath), "%smeta.xml", Settings.update_path); snprintf(xmlpath, sizeof(xmlpath), "%smeta.xml", Settings.update_path);
@ -210,9 +210,9 @@ int CheckUpdate()
int currentrev = atoi(GetRev()); int currentrev = atoi(GetRev());
#ifdef FULLCHANNEL #ifdef FULLCHANNEL
struct block file = downloadfile( "http://usbloader-gui.googlecode.com/svn/branches/updates/update_wad.txt" ); struct block file = downloadfile( "http://usbloader-gui.googlecode.com/svn/branches/updates/update_wad.txt" );
#else #else
struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/update_dol.txt"); struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/update_dol.txt");
#endif #endif
if (file.data != NULL) if (file.data != NULL)
@ -229,38 +229,38 @@ int CheckUpdate()
static int ApplicationDownload(void) static int ApplicationDownload(void)
{ {
std::string DownloadURL; std::string DownloadURL;
int newrev = 0; int newrev = 0;
int currentrev = atoi(GetRev()); int currentrev = atoi(GetRev());
#ifdef FULLCHANNEL #ifdef FULLCHANNEL
struct block file = downloadfile( "http://usbloader-gui.googlecode.com/svn/branches/updates/update_wad.txt" ); struct block file = downloadfile( "http://usbloader-gui.googlecode.com/svn/branches/updates/update_wad.txt" );
#else #else
struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/update_dol.txt"); struct block file = downloadfile("http://usbloader-gui.googlecode.com/svn/branches/updates/update_dol.txt");
#endif #endif
if (file.data != NULL) if (file.data != NULL)
{ {
// first line of the text file is the revisionc // first line of the text file is the revisionc
newrev = atoi((char *) file.data); newrev = atoi((char *) file.data);
// 2nd line of the text file is the url // 2nd line of the text file is the url
char *ptr = strchr((char *)file.data, '\n'); char *ptr = strchr((char *)file.data, '\n');
while(ptr && (*ptr == '\r' || *ptr == '\n' || *ptr == ' ')) while(ptr && (*ptr == '\r' || *ptr == '\n' || *ptr == ' '))
ptr++; ptr++;
while(ptr && *ptr != '\0' && *ptr != '\r' && *ptr != '\n') while(ptr && *ptr != '\0' && *ptr != '\r' && *ptr != '\n')
{ {
DownloadURL.push_back(*ptr); DownloadURL.push_back(*ptr);
ptr++; ptr++;
} }
free(file.data); free(file.data);
} }
if (newrev <= currentrev) if (newrev <= currentrev)
{ {
WindowPrompt(tr( "No new updates." ), 0, tr( "OK" )); WindowPrompt(tr( "No new updates." ), 0, tr( "OK" ));
return 0; return 0;
} }
bool update_error = false; bool update_error = false;
char tmppath[250]; char tmppath[250];
@ -277,7 +277,7 @@ static int ApplicationDownload(void)
if (update_choice == 0) if (update_choice == 0)
return 0; return 0;
int ret = DownloadFileToPath(DownloadURL.c_str(), tmppath, false); int ret = DownloadFileToPath(DownloadURL.c_str(), tmppath, false);
if(ret < 1024*1024) if(ret < 1024*1024)
{ {
remove(tmppath); remove(tmppath);
@ -332,7 +332,7 @@ static int ApplicationDownload(void)
if (update_choice > 0) if (update_choice > 0)
{ {
WindowPrompt(tr( "Successfully updated." ), tr( "Restarting..." ), 0, 0, 0, 0, 150); WindowPrompt(tr( "Successfully updated." ), tr( "Restarting..." ), 0, 0, 0, 0, 150);
RebootApp(); RebootApp();
} }
@ -358,8 +358,8 @@ int UpdateApp()
return 0; return 0;
if(choice == 1) if(choice == 1)
{ {
return ApplicationDownload(); return ApplicationDownload();
} }
else if (choice == 2) else if (choice == 2)
{ {

View File

@ -245,9 +245,9 @@ void WindowCredits()
char SvnRev[80]; char SvnRev[80];
#ifdef FULLCHANNEL #ifdef FULLCHANNEL
snprintf(SvnRev, sizeof(SvnRev), "Rev%sc IOS%u (Rev %u)", GetRev(), IOS_GetVersion(), IOS_GetRevision()); snprintf(SvnRev, sizeof(SvnRev), "v3.0c IOS%u (Rev %u)", IOS_GetVersion(), IOS_GetRevision());
#else #else
snprintf(SvnRev, sizeof(SvnRev), "Rev%s IOS%u (Rev %u)", GetRev(), IOS_GetVersion(), IOS_GetRevision()); snprintf(SvnRev, sizeof(SvnRev), "v3.0 IOS%u (Rev %u)", IOS_GetVersion(), IOS_GetRevision());
#endif #endif
char IosInfo[80] = ""; char IosInfo[80] = "";

View File

@ -64,16 +64,16 @@ void NewTitles::Reload(void)
Title *title = new Title; Title *title = new Title;
memset(title, 0, sizeof(Title)); memset(title, 0, sizeof(Title));
char *delimeter = strchr(line, ':'); char *delimeter = strchr(line, ':');
if(!delimeter || ((delimeter-line) > 6)) // check for valid delimiter if(!delimeter || ((delimeter-line) > 6)) // check for valid delimiter
continue; continue;
*delimeter = '\0'; *delimeter = '\0';
snprintf(title->titleId, sizeof(title->titleId), "%s", line); snprintf(title->titleId, sizeof(title->titleId), "%s", line);
title->timestamp = strtoul(delimeter+1, 0, 10); title->timestamp = strtoul(delimeter+1, 0, 10);
title->isNew = ((currenttime - title->timestamp) < NEW_SECONDS); title->isNew = ((currenttime - title->timestamp) < NEW_SECONDS);
title->next = NULL; title->next = NULL;
if (firstTitle == NULL) if (firstTitle == NULL)
{ {
@ -192,7 +192,7 @@ void NewTitles::Save(void)
Title *t = firstTitle; Title *t = firstTitle;
while (t != NULL && strlen(t->titleId) > 0) while (t != NULL && strlen(t->titleId) > 0)
{ {
fprintf(fp, "%.6s:%lu\n", t->titleId, t->timestamp); fprintf(fp, "%.6s:%lu\n", t->titleId, t->timestamp);
t = t->next; t = t->next;
} }
fclose(fp); fclose(fp);

View File

@ -45,7 +45,7 @@ cat <<EOF > ./HBC/META.XML
<app version="1"> <app version="1">
<name> USB Loader GX</name> <name> USB Loader GX</name>
<coder>USB Loader GX Team</coder> <coder>USB Loader GX Team</coder>
<version>2.3 r$rev_new</version> <version>3.0 r$rev_new</version>
<release_date>$rev_date</release_date> <release_date>$rev_date</release_date>
<!-- // remove this line to enable arguments <!-- // remove this line to enable arguments
<arguments> <arguments>