OK since the Wii System Menu Player is released now as I already mentioned the source for the loader will also be put on SVN again. Now that i am done with merging here is the MOD17 source.

Changelog since last revision:
- add banner/icon animation support for wii games / channels / gamecube
- add custom banner for gamecube which loads the gamecube internal opening.bnr information (it is much better than the generic one of the system menu) (big thanks to diddy from the wiithemeteam for creating the brlyt/brlan for the banner)
- add gamecube banner of system menu (not used right now since it sucks)
- add banner grid of the system menu (resources loaded from nand) (with button highliter)
- add big banner frame window of the system menu (resources loaded from nand). the banner window has buttons "Settings" and "Start" by default. if parental control is enabled the "Settings" button is replaced by "Back"
- add play count text to the banner frame window (can be disabled as up until now in the gui settings)
- add zoom in/out/scroll animations to banner grid and change into big frame window
- add loading gc banners from ISO and DVD
- add loading wii banners from DVD discs even if the game is not installed
- add favorite level setting to the game settings since it is no longer on the banner frame window
- add new settings section for banner settings
- add option to choose between disc window and banner window
- added back ehci module to support 2 usb drives and re-enabled the option
- add option for 2 usb drives for d2x cIOS as well (will be supported in the future, not yet)
- exchanged "GC Games" and "EmuNand Channels" on the game selection screen (more space for translators)
- add and fixed gui numpad for entering numbers of any kind
- add setting for tooltip delay time
- fix reload of cover image on game list when only 1 item is left after a change (e.g. sort)
- add use of old build in font for credits window because it doesnt look good with the system menu one
- fixed effect bug when scrolling buttons in the settings and the wiimote is over button 1
- fixed bug where entering -1 (Use global) for cIOS was not possible in game settings
- many source cleanups
- add bnr chace setting
- add DML configuration from the loader
- removed creation of temporary "boot.bin" file
- DML custom game paths.
  Additionally i added support for following forms of paths:
  1. configpath/gamepath/game.iso
  2. configpath/gamepath/game.gcm
  3. configpath/gamepath/GAMEID6.iso
  4. configpath/gamepath/GAMEID6.gcm
  Where gamepath can be anything you want inside the configure path in the custom path settings.
  I don't know if GCM files are allowed by DML but i just added support for it just in case.
  Changing path to USB is not blocked currently but games won't run from USB just keep that in mind.
  The "copy to SD before start" feature is not added yet. Listing the games should work though
- DML cheats now work the same way as for wii, gct goes to "Cheatcode Path" as GAMEID.gct (same as on wii)
- several DML internal configs are added as per game/global settings
- added load of last cheat configuration from GCT files
- added init of network into background thread so it is cancelable and has a timeout
- added gc games copy from USB to SD on demand with choice menu to delete SD games to make space, SD games path can be chosen seperately from main gc path.
  all dupicate sd games are prefered then the main path to allow direct boot of games that are already on sd. main path can be on USB or anywhere else.
- added gc disc dump functionality with multidisc, compress and align support (thanks to FIX94 and Overjoy for their disc dump source on which this is based)
- added selection menu for gc multidisc which game to install
- fixed loading game ID when it can't be read from path for GC games and with that loading the titles from GameTDB for them
- lots of string handling improvements (thanks to gerbilsoft for his patch)
- added gamecube banner cache loading (only loading) if available with GAMEID6.bnr or ID3.bnr in the banner cache path. wii games/channels also accept now ID3.bnr.
- added several progress bar cancel buttons on some missing progress windows
- improved calculation of progress speed. now it is always the last 15 secs average instead of overall progress speed.
- added pulsing new icon on banner grid layout for new games
- added resize of widescreen screenshots to 768 width
- added mii extract on save game extract if the file does not yet exists
- added mii extractor and SYSCONF extractor that always extracts and overwrites old files
- changed wifi gecko to UDP socket
- support for DML v1.2+

NOTE:
Banner animation support requires AHBPROT flag to be enabled. If you use old HBC you should use our forwarder or update the HBC otherwise you wont have that support.

I am hoping that now the themers and the translators can catch up with their stuff for the next upcomming official release.
This commit is contained in:
dimok789 2012-05-06 10:59:58 +00:00
parent 1d598eed90
commit 070b77548a
205 changed files with 21266 additions and 3135 deletions

View File

@ -2,8 +2,8 @@
<app version="1">
<name> USB Loader GX</name>
<coder>USB Loader GX Team</coder>
<version>2.3 r1155</version>
<release_date>201202291948</release_date>
<version>2.3 r1166</version>
<release_date>201205061159</release_date>
<!-- // remove this line to enable arguments
<arguments>
<arg>--ios=250</arg>

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\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"
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Náhradní DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "Dub"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Opravdu si prejete uzamknout USB Loader GX?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Opravdu si prejete provest reset?"
@ -139,6 +151,9 @@ msgstr "Jste si jisti?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Srp"
@ -163,6 +178,18 @@ msgstr "Zpet do HBC nebo Wii nabídky"
msgid "Backgroundmusic"
msgstr "Hudba na pozadí"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Oboje"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "Nelze smazat:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Úroven rízení"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Správné heslo"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Nelze nalézt informace pro tuto hru v wiitdb.xml."
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Nelze inicializovat DIP modul!"
msgid "Could not initialize network!"
msgstr "Nelze inicializovat sítové pripojení"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Nelze otevrít disk"
@ -433,9 +488,39 @@ msgstr "Vlastní cesty"
msgid "Customs/Original"
msgstr "Upravené/Originál"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Cesta k DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Smazat potisk DVD"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr ""
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Vyvinul"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Adresár neexistuje!"
@ -493,6 +587,9 @@ msgstr "Puvodní nastavení disku"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr ""
@ -502,6 +599,9 @@ msgstr "Zobrazení"
msgid "Display as a carousel"
msgstr "Zobrazit jako karusel"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Zobrazit do mrížky"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Prejete si zmenit jazyk?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Prejete si stáhnout toto téma?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Prejete si formátovat"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Prejete si nahrát výchozí téma?"
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Prejete si synchronizovat informace o volných sektorech na vsech FAT 32 oddílech?"
@ -583,6 +704,9 @@ msgstr "Stahuji stránku:"
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Dánsky"
@ -626,6 +750,9 @@ msgstr "Chyba pri otevirani stazeneho souboru"
msgid "Error reading Disc"
msgstr "Nelze císt disk"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Chyba pri stahovani souboru: %i"
@ -648,6 +775,9 @@ msgstr "Chyba pri zapisu dat."
msgid "Error:"
msgstr "Chyba:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr "Opustit kam?"
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Neúspešné formátování"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr "Aktualizace selhala"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Formátuji, cekejte prosím ..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Volné místo"
@ -802,9 +968,18 @@ msgstr "Uplné ukoncení"
msgid "GAMEID_Gamename"
msgstr "IdHry_NazevHry"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Cesta pro cheat kódy"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID hry"
@ -853,12 +1034,18 @@ msgstr "Nastavení hlasitosti hry"
msgid "Game Split Size"
msgstr "Velikost rozdelení hry"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Hra je již nainstalována:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr "Zánr:"
msgid "German"
msgstr "Nemecky"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Hlavní nastavení"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Hlavní menu"
@ -930,8 +1126,8 @@ msgstr "Inicializuji sítové pripojení"
msgid "Insert Disk"
msgstr "Vložte disk"
msgid "Insert a Wii Disc!"
msgstr "Vložte Wii disk"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Instalace"
@ -957,6 +1153,9 @@ msgstr "Nainstalovat hru"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,11 +1165,11 @@ msgstr "Instalace hry:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgstr "Správce problému"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "Zdá se, že máte informace, které by pro nás mohly být užitecné. Odešlete prosím tuto informaci na náš DEV tým."
@ -1072,6 +1271,15 @@ msgstr "Zvuková smycka"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Muj tester:"
@ -1087,6 +1295,9 @@ msgstr "Kvet"
msgid "Messageboard Update"
msgstr "Aktualizace nástenky"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "WiiMotion+ Video"
@ -1156,8 +1367,8 @@ msgstr "Nebyl nalezen oddíl WBFS nebo FAT/NTFS/EXT"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "Nebyly vybrány žádné cheaty"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Nelze císt data?"
@ -1171,6 +1382,9 @@ msgstr "Oblíbené nejsou oznaceny"
msgid "No file missing!"
msgstr "Nechybí žádný soubor!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Normální"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Toto není Wii disk"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "Neplatné URL"
@ -1207,9 +1421,15 @@ msgstr "Neplatný název domény"
msgid "Not enough free memory."
msgstr "Není dostatek volné pameti."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Není dostatek volného místa!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Nedostatek pameti"
@ -1219,6 +1439,12 @@ msgstr "Není nutné"
msgid "Not supported format!"
msgstr "Nepodporovaný formát!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "List"
@ -1288,6 +1514,9 @@ msgstr "Prístup odmítnut"
msgid "Pick from a list"
msgstr "Vyberte ze seznamu"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Spušteno"
@ -1303,6 +1532,9 @@ msgstr "Prehrát predchozí"
msgid "Playing Music:"
msgstr "Prehrávání hudby:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Cekejte prosím..."
@ -1384,12 +1616,27 @@ msgstr "Návrat do Wii nabídky"
msgid "Right"
msgstr "Vpravo"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibrace"
msgid "SChinese"
msgstr "Cínsky"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Hlasitost SFX"
@ -1456,6 +1703,9 @@ msgstr "Zobrazit volné místo"
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Ukoncit systém"
@ -1507,6 +1757,9 @@ msgstr "Rozdelit po 4GB"
msgid "Standby"
msgstr "Uspání"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Úspešne"
@ -1525,6 +1778,9 @@ msgstr "Úspešne zaktualizováno"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Úspešne zaktualizováno díky www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Úspešne smazáno:"
@ -1555,16 +1811,28 @@ msgstr "Cesta k TXT cheatum"
msgid "The .them file was not found in the zip."
msgstr "Soubor .them nebyl nalezen v ZIP."
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Zadaný adresár neexistuje. Chcete ho vytvorit?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr "Tento IOS je BootMii IOS. Pokud si jste jisti ze toto není BootMii a m
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Tento IOS nebyl nalezen na seznamu. Pokud si jste jisti ze jej máte nainstalován, pak ignorujte toto varování."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Zbývá:"
@ -1604,6 +1875,9 @@ msgstr "Spouštec kanálu"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Popisky"
@ -1731,6 +2005,9 @@ msgstr "Co si prejete smazat pro tento titul:"
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi možnosti"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "a prekladatelé pro jazykové aktualizace"
@ -1837,6 +2117,9 @@ msgstr "formátováno!"
msgid "free"
msgstr "volné"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "nenastaveno"
@ -1846,6 +2129,18 @@ msgstr "z "
msgid "seconds left"
msgstr "sekund zbývá"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Vložte Wii disk"
#~ msgid "Issue manager /"
#~ msgstr "Správce problému"
#~ msgid "No cheats were selected"
#~ msgstr "Nebyly vybrány žádné cheaty"
#~ msgid "Not a Wii Disc"
#~ msgstr "Toto není Wii disk"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Odstraňuji tikety..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Alle"
@ -109,6 +112,9 @@ msgstr "Alternativ DOL"
msgid "An example file was created here:"
msgstr "En f.eks. fil er lavet her:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr "Indlæs"
msgid "Apr"
msgstr ""
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Er du sikker på at du ville slette denne kategori?"
@ -130,6 +139,9 @@ msgstr "Er du sikker på at du ville hente Spil kategorier fra GameTDB?"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Er du sikker på at du vil låse USB Loader GX?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Er du sikker på at du vil nulstille?"
@ -139,6 +151,9 @@ msgstr "Er du sikker?"
msgid "Aspect Ratio"
msgstr "Formatforhold"
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr ""
@ -163,6 +178,18 @@ msgstr "Tilbage til HBC eller Wii-menuen"
msgid "Backgroundmusic"
msgstr "Baggrundsmusik"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr "Begyndelse"
@ -256,6 +283,12 @@ msgstr "Begge"
msgid "Both Ports"
msgstr "Begge porte"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Cache titler"
@ -279,6 +312,10 @@ msgstr "Kan ikke slettes:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr "Kan ikke åbne fil: %s"
@ -372,6 +409,18 @@ msgstr "Fortsæt?"
msgid "Controllevel"
msgstr "Kontrolniveau"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Korrekt Password"
@ -391,12 +440,18 @@ msgstr "Kunne ikke udpakker filer for:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Kunne ikke finde information for dette spil i wiitdb.xml"
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Kunne ikke initialisere DIP-modul!"
msgid "Could not initialize network!"
msgstr "Kunne ikke initialisere netforbindelse!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Kunne ikke åbne DVD"
@ -433,9 +488,39 @@ msgstr "Sti-indstillinger"
msgid "Customs/Original"
msgstr "Tilpassede/Originale"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Sti til DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Slet DVD-billede"
msgid "Delete category"
msgstr "Slet kategori"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr ""
@ -478,6 +569,9 @@ msgstr "Detaljer"
msgid "Developed by"
msgstr "Udviklet af"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Mappen eksisterer ikke!"
@ -493,6 +587,9 @@ msgstr "Spillets standard"
msgid "Disc Insert Detected"
msgstr "Ny Disc opdaget"
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr ""
@ -502,6 +599,9 @@ msgstr "Spilinfo."
msgid "Display as a carousel"
msgstr "Vis som karusel"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Vis som tabel"
@ -520,6 +620,21 @@ msgstr "Vil du inlæse dette tema?"
msgid "Do you want to change language?"
msgstr "Skal sproget ændres?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Skal dette tema downloades?"
@ -532,12 +647,18 @@ msgstr "Vil du udpakke dette save game?"
msgid "Do you want to format:"
msgstr "Vil du formatere:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Vil du indlæse standard tema?"
msgid "Do you want to re-init network?"
msgstr "Vil du genetablere netværket?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Vil du synkronisere fri plads info sector på alle FAT32 Partitioner?"
@ -583,6 +704,9 @@ msgstr "Downloader pagelist:"
msgid "Dump NAND to EmuNand"
msgstr "Kopier Wii NAND til EmuNand"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Hollandsk"
@ -626,6 +750,9 @@ msgstr "Fejl kunne ikke åbne downloadet fil"
msgid "Error reading Disc"
msgstr "DVDen kunne ikke læses"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Fejl kunne ikke download fil: %i"
@ -648,6 +775,9 @@ msgstr "Fejl kunne ikke skrive data."
msgid "Error:"
msgstr "Fejl:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "Fejl opstået"
@ -663,6 +793,18 @@ msgstr "Hvorhen?"
msgid "Export All Saves to EmuNand"
msgstr "Kopier alle saves til EmuNand"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "Kopier Save til EmuNand"
@ -681,6 +823,9 @@ msgstr "Udpakker nand filer:"
msgid "Failed"
msgstr "Fejlede"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Formateringen mislykkedes"
@ -708,6 +853,9 @@ msgstr "Kunne ikke læse wad header."
msgid "Failed updating"
msgstr "Opdatering fejlede"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Særlige"
@ -775,6 +923,24 @@ msgstr "Formatere, vent venligst..."
msgid "Found missing images."
msgstr "Fundet manglende billeder"
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Ledig plads"
@ -802,9 +968,18 @@ msgstr "Luk helt ned"
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Sti til cheatcodes"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Spil-ID"
@ -853,12 +1034,18 @@ msgstr "Spillyd lydstyrke"
msgid "Game Split Size"
msgstr "Spil Split størrelse"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Dette spil er allerede installeret:"
msgid "Game/Install Partition"
msgstr "Spil/Installation partition"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "Sti til GameTDB"
@ -877,9 +1064,18 @@ msgstr "Genre:"
msgid "German"
msgstr "Tysk"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Almindelig Indstillinger"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr ""
@ -930,8 +1126,8 @@ msgstr "Initialiserer netforbindelse"
msgid "Insert Disk"
msgstr "Indsæt en DVD"
msgid "Insert a Wii Disc!"
msgstr "Indsæt en Wii-DVD!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Installér"
@ -957,6 +1153,9 @@ msgstr "Installér nyt spil"
msgid "Install finished"
msgstr "Installering færdig"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr "Installerer indhold"
@ -966,12 +1165,12 @@ msgstr "Installerer spillet:"
msgid "Installing title..."
msgstr ""
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Invalid wad file."
msgstr "Ugyldig wad fil."
msgid "Issue manager /"
msgstr "Problem manager /"
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "Det ser ud til, at du har information, der vil kunne hjælpe os. Vær rar at sende denne information til udviklerne."
@ -1072,6 +1271,15 @@ msgstr "Afspil lyd i løkke"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Hoved tester:"
@ -1087,6 +1295,9 @@ msgstr "Maj"
msgid "Messageboard Update"
msgstr "Messageboard opdatering"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr "Ingen WBFS eller FAT/NTFS/EXT partition er fundet"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Ingen Wiinnertag.xml fundet i config stien. Vil du oprette en prøve fil?"
msgid "No cheats were selected"
msgstr "Der blev ikke valgt nogle cheats"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Data kunne ikke læses."
@ -1171,6 +1382,9 @@ msgstr "Ingen favoritter er valgt."
msgid "No file missing!"
msgstr "Ingen filer mangler!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr "Ingen sprog filer at opdatere på din enhed! Vil du hente nye sprog filer?"
@ -1192,8 +1406,8 @@ msgstr "Normal"
msgid "Not Initialized"
msgstr "Ikke initialiseret"
msgid "Not a Wii Disc"
msgstr "Ikke en Wii-DVD"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "Ikke en gyldig URL"
@ -1207,9 +1421,15 @@ msgstr "Ikke et gyldig domæne"
msgid "Not enough free memory."
msgstr "Ikke nok fri hukommelse."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Ikke nok ledig plads!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Ikke nok hukommelse."
@ -1219,6 +1439,12 @@ msgstr "Ikke påkrævet"
msgid "Not supported format!"
msgstr "Ikke et understøttet format"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr "Tilladelse nægtet."
msgid "Pick from a list"
msgstr "Vælg fra en liste"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Spiltæller"
@ -1303,6 +1532,9 @@ msgstr "Afspil forrige"
msgid "Playing Music:"
msgstr "Afspiller musik:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Vent venligst..."
@ -1384,12 +1616,27 @@ msgstr "Tilbage til Wii-menuen"
msgid "Right"
msgstr "Højre"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibration"
msgid "SChinese"
msgstr "Kinesisk (std.)"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Lydstyrke for effekter"
@ -1456,6 +1703,9 @@ msgstr "Vis fri plads"
msgid "Show Play Count"
msgstr "Vis spil tæller"
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Sluk (rødt lys)"
@ -1507,6 +1757,9 @@ msgstr "Split hver 4GB"
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Succes"
@ -1525,6 +1778,9 @@ msgstr "Opdateringen lykkedes"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Opdateringen lykkedes takket været www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Det lykkedes at slette:"
@ -1555,17 +1811,29 @@ msgstr "Sti til TXTCheatcodes"
msgid "The .them file was not found in the zip."
msgstr "kunne ikke finde .them fil i zip"
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Den angivne mappe eksisterer ikke. Skal den oprettes?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "Filerne vil bliver udpakket til din Emu Nand sti. Advarsel : alle eksisterene filer vil bliver overskrevet."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "Dette save game vil bliver udpakket til din Emu Nand sti."
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "Alle Save games vil bliver udpakket til din Emu Nand sti. Advarsel: Alle eksisterene save games vil bliver overskrevet."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "Wad fil var installeret"
@ -1595,6 +1863,9 @@ msgstr "Denne IOS er BootMii ios. Hvis du er sikker på at det ikke er BootMii o
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Denne IOS var ikke fundet i titel listen. Hvis du er sikker på at den er installeret ignorer denne advarsel."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Tid tilbage:"
@ -1604,6 +1875,9 @@ msgstr "Titel-starter"
msgid "Titles from GameTDB"
msgstr "Titler fra GameTDB"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Værktøjstips"
@ -1731,6 +2005,9 @@ msgstr "Hvad skal der slettes for dette spil:"
msgid "What to extract from NAND?"
msgstr "Hvad skal der udpakkes fra NAND?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi-indstillinger"
@ -1792,6 +2069,9 @@ msgstr "Du kan vælge eller formatter en partition eller kanal loader måde."
msgid "You cannot delete this category."
msgstr "Du kan ikke slette denne kategori."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "og oversættere for sprog filer"
@ -1837,6 +2117,9 @@ msgstr "formateret!"
msgid "free"
msgstr "ledig"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "ikke sat"
@ -1846,6 +2129,24 @@ msgstr "af"
msgid "seconds left"
msgstr "sekunder tilbage"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Indsæt en Wii-DVD!"
#~ msgid "Issue manager /"
#~ msgstr "Problem manager /"
#~ msgid "No cheats were selected"
#~ msgstr "Der blev ikke valgt nogle cheats"
#~ msgid "Not a Wii Disc"
#~ msgstr "Ikke en Wii-DVD"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "Filerne vil bliver udpakket til din Emu Nand sti. Advarsel : alle eksisterene filer vil bliver overskrevet."
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "Alle Save games vil bliver udpakket til din Emu Nand sti. Advarsel: Alle eksisterene save games vil bliver overskrevet."
#~ msgid "Installing title"
#~ msgstr "Installerer titel"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2011-12-17 14:22+0100\n"
"Last-Translator: Arthur117\n"
"Language-Team: tj_cool, glowy, Arthur117\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Alles"
@ -109,6 +112,9 @@ msgstr "Alternatieve DOL"
msgid "An example file was created here:"
msgstr "Er is hier een voorbeeldbestand gemaakt:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr "Toepassen"
msgid "Apr"
msgstr ""
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Weet je zeker dat je deze categorie wilt verwijderen?"
@ -130,6 +139,9 @@ msgstr "Weet je zeker dat je spel categorieën wilt importeren van GameTBD?"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Weet je zeker dat je USB Loader GX wilt vergrendelen?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Wet je zeker dat je wilt resetten?"
@ -139,6 +151,9 @@ msgstr "Zeker weten?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr ""
@ -163,6 +178,18 @@ msgstr "Terug naar HBC of Wii Menu"
msgid "Backgroundmusic"
msgstr "Achtergrondmuziek"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Beide"
msgid "Both Ports"
msgstr "Beide poorten"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Titels cachen"
@ -279,6 +312,10 @@ msgstr "Kan niet verwijderen:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr "Doorgaan?"
msgid "Controllevel"
msgstr "Controle niveau"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Juiste Wachtwoord"
@ -391,12 +440,18 @@ msgstr "Kan bestanden niet uitpakken voor:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Kan geen info over dit spel vinden in de wiitdb.xml."
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Kan DIP module niet initialiseren!"
msgid "Could not initialize network!"
msgstr "Kan netwerk niet initialiseren!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Kan disk niet openen"
@ -433,9 +488,39 @@ msgstr "Bestandslocaties"
msgid "Customs/Original"
msgstr "Aangepast/Origineel"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Locatie DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "Debugger gepauzeerd starten"
@ -469,6 +554,12 @@ msgstr "Disk labels verwijderen"
msgid "Delete category"
msgstr "Verwijder categorie"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Ontwerp:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Ontwikkeld door"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Map bestaat niet!"
@ -493,6 +587,9 @@ msgstr "Disk standaard"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr ""
@ -502,6 +599,9 @@ msgstr "Tonen"
msgid "Display as a carousel"
msgstr "Carrouselweergave"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Rasterweergave"
@ -520,6 +620,21 @@ msgstr "Wil je dit thema toepassen?"
msgid "Do you want to change language?"
msgstr "Wil je de taal wijzigen?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Wil je dit thema downloaden?"
@ -532,12 +647,18 @@ msgstr "Wil je dit opgeslagen spel uitpakken?"
msgid "Do you want to format:"
msgstr "Wil je formatteren:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Wil je het standaard thema laden?"
msgid "Do you want to re-init network?"
msgstr "Wil je het netwerk herinitialiseren?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Wil je de vrije ruimte informatie sector synchroniseren op alle FAT32 partities?"
@ -583,6 +704,9 @@ msgstr "Paginalijst downloaden:"
msgid "Dump NAND to EmuNand"
msgstr "NAND Dumpen naar EmuNand"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Nederlands"
@ -626,6 +750,9 @@ msgstr "Fout bij het openen van gedownload bestand"
msgid "Error reading Disc"
msgstr "Fout bij lezen disk"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Fout bij het downloaden van bestand: %i"
@ -648,6 +775,9 @@ msgstr "Fout bij het schrijven van de data."
msgid "Error:"
msgstr "Fout:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "Fouten opgetreden."
@ -663,6 +793,18 @@ msgstr "Stoppen naar?"
msgid "Export All Saves to EmuNand"
msgstr "Alle Saves exporteren naar EmuNand"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "Save Exporteren naar EmuNand"
@ -681,6 +823,9 @@ msgstr "NAND Uitpakken:"
msgid "Failed"
msgstr "Mislukt"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Formatteren mislukt"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr "Updaten mislukt"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Functies"
@ -775,6 +923,24 @@ msgstr "Bezig met formatteren..."
msgid "Found missing images."
msgstr "Missende plaatje gevonden."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Vrije ruimte"
@ -802,9 +968,18 @@ msgstr "Volledig uitzetten"
msgid "GAMEID_Gamename"
msgstr "SPELID_Spelnaam"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Locatie GCT cheatcodes"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Spel ID"
@ -853,12 +1034,18 @@ msgstr "Spel geluid volume"
msgid "Game Split Size"
msgstr "Spel splits grootte"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Spel is al geïnstalleerd:"
msgid "Game/Install Partition"
msgstr "Spel/Installatie partitie"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "Map naar GameTBD"
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Duits"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Globale instellingen"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr ""
@ -930,8 +1126,8 @@ msgstr "Netwerk initialiseren"
msgid "Insert Disk"
msgstr "Voer een disk in"
msgid "Insert a Wii Disc!"
msgstr "Voer een Wii disk in!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Installeer"
@ -957,6 +1153,9 @@ msgstr "Spel installeren"
msgid "Install finished"
msgstr "Installatie voltooid"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Bezig met installeren:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "Geluid herhalen"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Hoofd tester:"
@ -1087,6 +1295,9 @@ msgstr "Mei"
msgid "Messageboard Update"
msgstr "Prikbord Update"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr "Geen WBFS of FAT/NTFS/EXT partitie gevonden"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Geen Wiinertag.xml gevonden in het configuratie pad. Wil je een voorbeeld bestand maken?"
msgid "No cheats were selected"
msgstr "Geen cheats geselecteerd"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Data kon niet gelezen worden."
@ -1171,6 +1382,9 @@ msgstr "Geen favorieten geselecteerd."
msgid "No file missing!"
msgstr "Geen missende bestanden!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Normaal"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Geen Wii disk"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "Geen geldige URL"
@ -1207,9 +1421,15 @@ msgstr "Geen geldig domein"
msgid "Not enough free memory."
msgstr "Niet genoeg vrije ruimte."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Niet genoeg vrije ruimte!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Onvoldoende geheugen."
@ -1219,6 +1439,12 @@ msgstr "Niet nodig"
msgid "Not supported format!"
msgstr "Formaat niet ondersteund!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr "Toegang geweigerd."
msgid "Pick from a list"
msgstr "Kiezen van lijst"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Gespeeld"
@ -1303,6 +1532,9 @@ msgstr "Speel Vorige"
msgid "Playing Music:"
msgstr "Speelt nu:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Even geduld..."
@ -1384,12 +1616,27 @@ msgstr "Terug naar Wii menu"
msgid "Right"
msgstr "Rechts"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Trilfunctie"
msgid "SChinese"
msgstr "SChinees"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Volume geluidseffecten"
@ -1456,6 +1703,9 @@ msgstr "Vrije ruimte weergeven"
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Systeem uitzetten"
@ -1507,6 +1757,9 @@ msgstr "Splits iedere 4GB"
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Succes"
@ -1525,6 +1778,9 @@ msgstr "Met succes ge-update!"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Met succes ge-update met dank aan www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Met succes verwijderd:"
@ -1555,17 +1811,29 @@ msgstr "Locatie TXT cheats"
msgid "The .them file was not found in the zip."
msgstr "Het .them bestand is niet gevonden in het zip bestand."
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "De opgegeven map bestaat niet. Wil je deze aanmaken?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "De bestanden worden geëxporteerd naar uw EmuNand pad. Alle bestaande bestanden worden overschreven!"
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "De Savegame wordt geëxporteerd naar uw EmuNand Pad."
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "De Savegame wordt geëxporteerd naar uw EmuNand Pad. Alle bestaande bestanden worden overschreven!"
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "Het wad bestand is geïnstalleerd."
@ -1595,6 +1863,9 @@ msgstr "Deze IOS is de BootMii IOS. Als je zeker weet dat dit niet BootMii is en
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Deze IOS is niet gevonden in de titel lijst. Als je zeker weet dat deze geïnstalleerd is kun je deze waarschuwing negeren."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Tijd over:"
@ -1604,6 +1875,9 @@ msgstr "Titel starter"
msgid "Titles from GameTDB"
msgstr "Titels van GameTDB"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Knopinfo"
@ -1731,6 +2005,9 @@ msgstr "Wat er verwijderd moet worden voor deze spel titel:"
msgid "What to extract from NAND?"
msgstr "Wat uitpakken van NAND?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi functies"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr "Je kunt deze categorie niet verwijderen."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "en vertalers voor taalbestand updates"
@ -1837,6 +2117,9 @@ msgstr "geformatteerd!"
msgid "free"
msgstr "vrij"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "niet ingesteld"
@ -1846,6 +2129,21 @@ msgstr "van"
msgid "seconds left"
msgstr "seconden over"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Voer een Wii disk in!"
#~ msgid "No cheats were selected"
#~ msgstr "Geen cheats geselecteerd"
#~ msgid "Not a Wii Disc"
#~ msgstr "Geen Wii disk"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "De bestanden worden geëxporteerd naar uw EmuNand pad. Alle bestaande bestanden worden overschreven!"
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "De Savegame wordt geëxporteerd naar uw EmuNand Pad. Alle bestaande bestanden worden overschreven!"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Tickets verwijderen..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr ""
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr ""
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr ""
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr ""
@ -163,6 +178,18 @@ msgstr ""
msgid "Backgroundmusic"
msgstr ""
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr ""
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr ""
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr ""
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr ""
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr ""
msgid "Could not initialize network!"
msgstr ""
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr ""
@ -433,9 +488,39 @@ msgstr ""
msgid "Customs/Original"
msgstr ""
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr ""
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr ""
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr ""
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr ""
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr ""
@ -493,6 +587,9 @@ msgstr ""
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr ""
@ -502,6 +599,9 @@ msgstr ""
msgid "Display as a carousel"
msgstr ""
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr ""
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr ""
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr ""
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr ""
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr ""
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr ""
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr ""
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr ""
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr ""
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr ""
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr ""
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr ""
@ -853,12 +1034,18 @@ msgstr ""
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr ""
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr ""
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr ""
@ -930,7 +1126,7 @@ msgstr ""
msgid "Insert Disk"
msgstr ""
msgid "Insert a Wii Disc!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
@ -957,6 +1153,9 @@ msgstr ""
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr ""
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr ""
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr ""
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,7 +1367,7 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr ""
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,7 +1406,7 @@ msgstr ""
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr ""
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr ""
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr ""
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr ""
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr ""
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr ""
@ -1384,12 +1616,27 @@ msgstr ""
msgid "Right"
msgstr ""
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr ""
msgid "SChinese"
msgstr ""
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr ""
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr ""
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr ""
@ -1525,6 +1778,9 @@ msgstr ""
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr ""
@ -1555,16 +1811,28 @@ msgstr ""
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr ""
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr ""
@ -1604,6 +1875,9 @@ msgstr ""
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr ""
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr ""
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr ""
msgid "free"
msgstr ""
msgid "ms"
msgstr ""
msgid "not set"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: c64rmx\n"
"Language-Team: \n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Vaihtoehto DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "huhti"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "Oletko varma?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "elo"
@ -163,6 +178,18 @@ msgstr "Takaisin HBC:hen tai Wii Menuun"
msgid "Backgroundmusic"
msgstr "Taustamusiikki"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Molemmat"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "Ei voida poistaa:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Hallinta-aste"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Oikea salasana"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "DIP Moduulia ei voitu alustaa!"
msgid "Could not initialize network!"
msgstr "Verkkoon ei voitu yhdistää!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Levyä ei voitu avata"
@ -433,9 +488,39 @@ msgstr "Omat polut"
msgid "Customs/Original"
msgstr "Omat/Alkuperäiset"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL:in polku"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Tuhoa levykuvat"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Suunnittelu"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Kehitys"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr ""
@ -493,6 +587,9 @@ msgstr "Pelin oletus"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Levynvaihto"
@ -502,6 +599,9 @@ msgstr "Näyttö"
msgid "Display as a carousel"
msgstr "Näytä karusellina"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Näytä taulukkona"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Haluatko vaihtaa kielen?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr ""
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Haluatko formatoida:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Hollanti"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "Virhe luettaessa levyä"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "Virhe:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Formatointi ei onnistunut"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Formatoi, odota..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Vapaata tilaa"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "GCT Koodien polku"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Peli ID"
@ -853,12 +1034,18 @@ msgstr ""
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Peli on jo asennettu:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Saksa"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr ""
@ -930,8 +1126,8 @@ msgstr "Yhdistää verkkoon"
msgid "Insert Disk"
msgstr "Aseta levy Wiihin"
msgid "Insert a Wii Disc!"
msgstr "Aseta Wii-levy!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Asenna"
@ -957,6 +1153,9 @@ msgstr "Asenna peli"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Asentaa peliä:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr ""
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "touko"
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,7 +1367,7 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "Ei tiedostoja kadoksissa!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Normaali"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Ei Wii-levy"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "Ei tarpeeksi muistia."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Ei tarpeeksi tilaa!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "Ei tuettu formaatti!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "marras"
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "Valitse listasta"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Pelauksen määrä"
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr ""
@ -1384,12 +1616,27 @@ msgstr "Palaa Wii menuun"
msgid "Right"
msgstr "Oikea"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Värinä"
msgid "SChinese"
msgstr "SKiina"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Ääniefektien voimakkuus"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Sammuta järjestelmä"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Onnistui"
@ -1525,6 +1778,9 @@ msgstr "Päivitetty onnistuneesti"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Poistettu onnistuneesti:"
@ -1555,16 +1811,28 @@ msgstr "TXT koodien polku"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr ""
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Aikaa jäljellä:"
@ -1604,6 +1875,9 @@ msgstr "Nimilaukaisin"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Vinkit"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi ominaisuudet"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "formatoitu!"
msgid "free"
msgstr "vapaana"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "ei asetettu"
@ -1846,6 +2129,12 @@ msgstr "josta"
msgid "seconds left"
msgstr "sekuntia jäljellä"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Aseta Wii-levy!"
#~ msgid "Not a Wii Disc"
#~ msgstr "Ei Wii-levy"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Tuhotaan lipukkeita..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Toutes"
@ -109,6 +112,9 @@ msgstr "DOL alternatif"
msgid "An example file was created here:"
msgstr "Un fichier d'exemple a été créé ici :"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr "Appliquer"
msgid "Apr"
msgstr "Avr"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Voulez-vous vraiment supprimer cette catégorie ?"
@ -130,6 +139,9 @@ msgstr "Voulez-vous vraiment importer les catégories de jeux à partir de WiiTD
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Voulez-vous vraiment verrouiller USB loader GX ?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Voulez-vous vraiment réinitialiser ?"
@ -139,6 +151,9 @@ msgstr "Êtes-vous sûr ?"
msgid "Aspect Ratio"
msgstr "Format d'image"
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Août"
@ -163,6 +178,18 @@ msgstr "Retour HBC / Menu Wii"
msgid "Backgroundmusic"
msgstr "Fond sonore"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr "Début"
@ -256,6 +283,12 @@ msgstr "Les deux"
msgid "Both Ports"
msgstr "Les deux ports"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Titres en cache"
@ -279,6 +312,10 @@ msgstr "Impossible de supprimer:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr "Impossible d'ouvrir le fichier: %s"
@ -372,6 +409,18 @@ msgstr "Continuer ?"
msgid "Controllevel"
msgstr "Niveau moral"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Mot de passe correct"
@ -391,12 +440,18 @@ msgstr "L'extraction des fichiers a échoué pour :"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Pas d'information pour ce jeu dans wiitdb.xml."
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Initialisation du module DIP impossible !"
msgid "Could not initialize network!"
msgstr "Initialisation réseau impossible !"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Ouverture DVD impossible"
@ -433,9 +488,39 @@ msgstr "Personnalisation des dossiers"
msgid "Customs/Original"
msgstr "Persos/Originaux"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Dossier DOL alternatif"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "Démarrer WiiRd en pause"
@ -469,6 +554,12 @@ msgstr "Supprimer le label DVD"
msgid "Delete category"
msgstr "Suppr. catégorie"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Graphisme:"
@ -478,6 +569,9 @@ msgstr "Détails"
msgid "Developed by"
msgstr "Développé par"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Répertoire inexistant!"
@ -493,6 +587,9 @@ msgstr "Disque par défaut"
msgid "Disc Insert Detected"
msgstr "Insertion de disque détecté"
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Disque uniquement"
@ -502,6 +599,9 @@ msgstr "Affichage"
msgid "Display as a carousel"
msgstr "Carrousel"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Grille"
@ -520,6 +620,21 @@ msgstr "Voulez-vous appliquer ce thème ?"
msgid "Do you want to change language?"
msgstr "Changer de langue ?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Voulez-vous télécharger ce thème ?"
@ -532,12 +647,18 @@ msgstr "Voulez-vous extraire la sauvegarde ?"
msgid "Do you want to format:"
msgstr "Voulez-vous formater:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Voulez-vous charger le thème par défaut ?"
msgid "Do you want to re-init network?"
msgstr "Voulez-vous réinitialiser la connexion ?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Voulez-vous synchroniser l'information d'espace libre disponible sur toutes les partitions FAT32 ?"
@ -583,6 +704,9 @@ msgstr "Téléch. des prévisualisations :"
msgid "Dump NAND to EmuNand"
msgstr "Extraire NAND vers ÉmuNand"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Néerlandais"
@ -626,6 +750,9 @@ msgstr "Erreur à l'ouverture du fichier téléchargé"
msgid "Error reading Disc"
msgstr "Erreur à la lecture du disque"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Erreur lors du téléchargement de: %i"
@ -648,6 +775,9 @@ msgstr "Erreur d'écriture des données"
msgid "Error:"
msgstr "Erreur:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "Des erreurs sont survenues."
@ -663,6 +793,18 @@ msgstr "Quitter vers où ?"
msgid "Export All Saves to EmuNand"
msgstr "Extraire toutes les sauvegardes"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "Extraire la sauvegarde vers Émulation Nand"
@ -681,6 +823,9 @@ msgstr "Extraction du fichier Nand :"
msgid "Failed"
msgstr "Échec"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Échec du formatage"
@ -708,6 +853,9 @@ msgstr "Échec de lecture de l'entête wad."
msgid "Failed updating"
msgstr "Échec de la mise à jour"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Fonctionnalités"
@ -775,6 +923,24 @@ msgstr "Formatage en cours, veuillez patienter..."
msgid "Found missing images."
msgstr "Images manquantes trouvées."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Espace libre"
@ -802,9 +968,18 @@ msgstr "Éteindre"
msgid "GAMEID_Gamename"
msgstr "IDJEU_NomJeu"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Dossier GCT de triche"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID du jeu"
@ -853,12 +1034,18 @@ msgstr "Volume des intros"
msgid "Game Split Size"
msgstr "Découpage des jeux"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Le jeu est déjà installé:"
msgid "Game/Install Partition"
msgstr "Partition jeu/install."
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "Dossier GameTDB"
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Allemand"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Paramètres"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Menu HOME"
@ -930,8 +1126,8 @@ msgstr "Initialisation du réseau"
msgid "Insert Disk"
msgstr "Insérez un disque"
msgid "Insert a Wii Disc!"
msgstr "Insérez un disque Wii !"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Installer"
@ -957,6 +1153,9 @@ msgstr "Installer un jeu"
msgid "Install finished"
msgstr "Installation terminée"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr "Installation du contenu"
@ -966,12 +1165,12 @@ msgstr "Installation du jeu:"
msgid "Installing title..."
msgstr "Installation du titre..."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Invalid wad file."
msgstr "Fichier wad non valide."
msgid "Issue manager /"
msgstr "Gestion des erreurs/"
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "SVP, faîtes passer cette information qui serait très utile à la Team USB Loader GX."
@ -1072,6 +1271,15 @@ msgstr "Intro en boucle"
msgid "Main DOL"
msgstr "Lancer main.dol"
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Testeur:"
@ -1087,6 +1295,9 @@ msgstr "Mai"
msgid "Messageboard Update"
msgstr "Mise à jour carnet Wii"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "Vidéo Motion+"
@ -1156,8 +1367,8 @@ msgstr "Partition WBFS ou FAT/NTFS/EXT non trouvée"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Fichier Wiinnertag.xml non trouvé. Voulez-vous créer un fichier d'exemple ?"
msgid "No cheats were selected"
msgstr "Aucune sélection de triches"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Lecture des données impossible."
@ -1171,6 +1382,9 @@ msgstr "Pas de favoris sélectionnés"
msgid "No file missing!"
msgstr "Aucun fichier manquant !"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr "Aucun fichier de langage trouvé! Voulez-vous les télécharger ?"
@ -1192,8 +1406,8 @@ msgstr "Normale"
msgid "Not Initialized"
msgstr "Disque non initialisé"
msgid "Not a Wii Disc"
msgstr "Disque non Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "URL non valide"
@ -1207,9 +1421,15 @@ msgstr "Domaine non valide"
msgid "Not enough free memory."
msgstr "Mémoire libre insuffisante !"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Espace libre insuffisant !"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Mémoire insuffisante."
@ -1219,6 +1439,12 @@ msgstr "Non requis"
msgid "Not supported format!"
msgstr "Format non supporté !"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr "Permission refusée."
msgid "Pick from a list"
msgstr "Sélectionner"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Utilisations"
@ -1303,6 +1532,9 @@ msgstr "Jouer précéd."
msgid "Playing Music:"
msgstr "Musique actuelle:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Veuillez patienter..."
@ -1384,12 +1616,27 @@ msgstr "Retourner au menu Wii"
msgid "Right"
msgstr "Droite"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibrations"
msgid "SChinese"
msgstr "Chinois simplifié"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Volume SFX"
@ -1456,6 +1703,9 @@ msgstr "Afficher l'espace libre"
msgid "Show Play Count"
msgstr "Afficher le compteur d'utilis."
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Arrêt"
@ -1507,6 +1757,9 @@ msgstr "4Go"
msgid "Standby"
msgstr "Veille"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Succès"
@ -1525,6 +1778,9 @@ msgstr "Mise à jour terminée"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Mise à jour terminée. Merci à www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Supprimé avec succès:"
@ -1555,17 +1811,29 @@ msgstr "Dossier TXT de triches"
msgid "The .them file was not found in the zip."
msgstr "Fichier .them non trouvé dans le zip."
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Répertoire indiqué inexistant. Souhaitez-vous le créer ?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "Les fichiers seront extraits vers votre dossier d'Émulation Nand. Attention: Tous les fichiers existants seront remplacés."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "La sauvegarde du jeu sera extraite vers votre dossier d'Émulation Nand."
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "Les sauvegardes des jeux seront extraites vers votre dossier d'Émulation Nand. Attention: Toutes les sauvegardes existantes seront remplacées."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "Le fichier wad a été installé"
@ -1595,6 +1863,9 @@ msgstr "Cet IOS est l'IOS de BootMii. Si vous étes certain que ce n'est pas Boo
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Cet IOS n'a pas été trouvé dans la liste des titres. Si vous êtes certain de l'avoir installé, ignorez cet avertissement."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Fini dans:"
@ -1604,6 +1875,9 @@ msgstr "Menu Chaînes"
msgid "Titles from GameTDB"
msgstr "Titres de GameTDB"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Info-bulles"
@ -1731,6 +2005,9 @@ msgstr "Que voulez-vous supprimer pour ce titre?"
msgid "What to extract from NAND?"
msgstr "Que voulez-vous extraire de la NAND ?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "Connexion WiFi"
@ -1792,6 +2069,9 @@ msgstr "Vous pouvez choisir ou formater une partition, ou passer le loader en mo
msgid "You cannot delete this category."
msgstr "Vous ne pouvez pas supprimer cette catégorie."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "et les traducteurs pour la MàJ des fichiers langue"
@ -1837,6 +2117,9 @@ msgstr "formaté !"
msgid "free"
msgstr "libre"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "non défini"
@ -1846,6 +2129,24 @@ msgstr "sur"
msgid "seconds left"
msgstr "secondes restantes"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Insérez un disque Wii !"
#~ msgid "Issue manager /"
#~ msgstr "Gestion des erreurs/"
#~ msgid "No cheats were selected"
#~ msgstr "Aucune sélection de triches"
#~ msgid "Not a Wii Disc"
#~ msgstr "Disque non Wii"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "Les fichiers seront extraits vers votre dossier d'Émulation Nand. Attention: Tous les fichiers existants seront remplacés."
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "Les sauvegardes des jeux seront extraites vers votre dossier d'Émulation Nand. Attention: Toutes les sauvegardes existantes seront remplacées."
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Suppression tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2010-07-03 17:35-0800\n"
"Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
@ -88,6 +88,9 @@ msgstr "Übersteuerung X anpassen"
msgid "Adjust Overscan Y"
msgstr "Übersteuerung Y anpassen"
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Alle"
@ -109,6 +112,9 @@ msgstr "Alternative DOL"
msgid "An example file was created here:"
msgstr "Eine Beispieldatei wurde hier erstellt:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "Anti"
@ -121,6 +127,9 @@ msgstr "Anwenden"
msgid "Apr"
msgstr "April"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Soll diese Kategorie gelöscht werden?"
@ -130,6 +139,9 @@ msgstr "Sollen die Spiele-Kategorien aus der WiiTDB importiert werden?"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Bist du sicher, dass du USB Loader GX sperren willst?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Bist du sicher, dass du resetten willst?"
@ -139,6 +151,9 @@ msgstr "Bist du sicher?"
msgid "Aspect Ratio"
msgstr "Seitenverhältnis"
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "August"
@ -163,6 +178,18 @@ msgstr "Zurück zum Homebrewkanal oder Wii Menü"
msgid "Backgroundmusic"
msgstr "Hintergrundmusik"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr "Anfang"
@ -256,6 +283,12 @@ msgstr "ID und Region"
msgid "Both Ports"
msgstr "Beide Ports"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Titel cachen"
@ -279,6 +312,10 @@ msgstr "Löschen fehlgeschlagen:"
msgid "Can't mount or unknown disc format."
msgstr "Kann nicht gemountet werden oder unbekanntes Discformat"
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr "Datei kann nicht geöffnet werden: %s"
@ -372,6 +409,18 @@ msgstr "Weiter?"
msgid "Controllevel"
msgstr "Alterseinstufung"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Richtiges Passwort"
@ -391,12 +440,18 @@ msgstr "Konnte Dateien nicht entpacken für:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Konnte keine Info für das Spiel in der wiitdb.xml finden."
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "DIP Modul konnte nicht initialisiert werden!"
msgid "Could not initialize network!"
msgstr "Netzwerk konnte nicht initialisiert werden!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Disk konnte nicht geöffnet werden."
@ -433,9 +488,39 @@ msgstr "Pfade anpassen"
msgid "Customs/Original"
msgstr "Community/Original"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Alternative DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "Debugger Pausierter Start"
@ -469,6 +554,12 @@ msgstr "Lösche Disc Cover"
msgid "Delete category"
msgstr "Lösche Kategorie"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Design:"
@ -478,6 +569,9 @@ msgstr "Details"
msgid "Developed by"
msgstr "Entwickelt von"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Verzeichnis existiert nicht!"
@ -493,6 +587,9 @@ msgstr "Diskstandard"
msgid "Disc Insert Detected"
msgstr "Disk erkannt"
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "DiskFlip"
@ -502,6 +599,9 @@ msgstr "Spielinfos anzeigen"
msgid "Display as a carousel"
msgstr "Karussell-Ansicht"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Grid-Ansicht"
@ -520,6 +620,21 @@ msgstr "Dieses Theme angewenden?"
msgid "Do you want to change language?"
msgstr "Sprache ändern?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Dieses Theme herunterladen?"
@ -532,12 +647,18 @@ msgstr "Soll der Spielstand entpackt werden?"
msgid "Do you want to format:"
msgstr "Formatieren:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Soll das DEFAULT Theme geladen werden?"
msgid "Do you want to re-init network?"
msgstr "Netzwerk re-initialisieren?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Soll die freier Speicher Info auf allen Partitionen synchronisiert werden?"
@ -583,6 +704,9 @@ msgstr "Lade Seitenliste herunter:"
msgid "Dump NAND to EmuNand"
msgstr "NAND zu EmuNand dumpen"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Niederländisch"
@ -626,6 +750,9 @@ msgstr "Fehler beim Öffnen der heruntergeladenen Datei"
msgid "Error reading Disc"
msgstr "Fehler beim Lesen der Disk"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Fehler beim Dateidownload: %i"
@ -648,6 +775,9 @@ msgstr "Fehler beim Schreiben der Daten"
msgid "Error:"
msgstr "Fehler:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "Fehler aufgetreten."
@ -663,6 +793,18 @@ msgstr "Beenden zum..."
msgid "Export All Saves to EmuNand"
msgstr "Export. Spielstände in EmuNand"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "Spielstand auf EmuNand kopieren"
@ -681,6 +823,9 @@ msgstr "Extrahiere Nand Dateien:"
msgid "Failed"
msgstr "Fehlgeschlagen"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Formatieren fehlgeschlagen"
@ -708,6 +853,9 @@ msgstr "Fehler beim Lesen des Wad-Header Bereiches."
msgid "Failed updating"
msgstr "Updaten fehlgeschlagen"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Features"
@ -775,6 +923,24 @@ msgstr "Formatiere, bitte warten..."
msgid "Found missing images."
msgstr "Fehlende Bilder gefunden."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Freier Speicher"
@ -802,9 +968,18 @@ msgstr "Ausschalten"
msgid "GAMEID_Gamename"
msgstr "SPIELID_Spielname"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr "GC Spiele"
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "GCT Cheatdateien"
@ -820,6 +995,12 @@ msgstr "GXDraw"
msgid "GXFlush"
msgstr "GXFlush"
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Spiel ID"
@ -853,12 +1034,18 @@ msgstr "Banner Lautstärke"
msgid "Game Split Size"
msgstr "Spiel Split Größe"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Spiel ist bereits installiert:"
msgid "Game/Install Partition"
msgstr "Spiel/Instal. Partition"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "GameTDB Pfad"
@ -877,9 +1064,18 @@ msgstr "Genre:"
msgid "German"
msgstr "Deutsch"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Globale Einstellungen"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "HOME Menü"
@ -930,8 +1126,8 @@ msgstr "Initialisiere Netzwerk"
msgid "Insert Disk"
msgstr "Disk einlegen"
msgid "Insert a Wii Disc!"
msgstr "Eine Wii Disk einlegen!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Installieren"
@ -957,6 +1153,9 @@ msgstr "Spiel installieren"
msgid "Install finished"
msgstr "Installation beendet"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr "Installiere Inhalt"
@ -966,12 +1165,12 @@ msgstr "Installiere Spiel:"
msgid "Installing title..."
msgstr "Installiere Titel..."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Invalid wad file."
msgstr "Ungültige Wad-Datei."
msgid "Issue manager /"
msgstr "Problem Manager /"
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "Es scheint als ob du Informationen hast, die hilfreich für uns sein könnten. Bitte sende diese Information ans DEV Team."
@ -1072,6 +1271,15 @@ msgstr "Wiederholung"
msgid "Main DOL"
msgstr "Haupt-DOL"
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Haupttester:"
@ -1087,6 +1295,9 @@ msgstr "Mai"
msgid "Messageboard Update"
msgstr "Forum Update"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "Motion+ Video"
@ -1156,8 +1367,8 @@ msgstr "Keine WBFS oder FAT/NTFS/EXT Partition vorhanden"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Es wurde keine Wiinnertag.xml im Konfigurationspfad gefunden. Soll eine Beispieldatei angelegt werden?"
msgid "No cheats were selected"
msgstr "Es wurden keine Cheats ausgewählt."
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Daten konnten nicht gelesen werden."
@ -1171,6 +1382,9 @@ msgstr "Keine Favoriten ausgewählt"
msgid "No file missing!"
msgstr "Keine Datei fehlt!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr "Auf den Geräten wurden keine Sprachdateien zum Aktualisieren gefunden! Sollen neue Sprachdateien heruntergeladen werden?"
@ -1192,8 +1406,8 @@ msgstr "Normal (4:3)"
msgid "Not Initialized"
msgstr "Nicht initialisiert"
msgid "Not a Wii Disc"
msgstr "Keine Wii Disk."
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "Keine gültige URL"
@ -1207,9 +1421,15 @@ msgstr "Keine gültige Domain"
msgid "Not enough free memory."
msgstr "Nicht genügend freier Speicher."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Nicht genügend freier Speicher!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Nicht genug Speicher."
@ -1219,6 +1439,12 @@ msgstr "Nicht benötigt"
msgid "Not supported format!"
msgstr "Nicht unterstütztes Format!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "November"
@ -1288,6 +1514,9 @@ msgstr "Erlaubnis verweigert"
msgid "Pick from a list"
msgstr "Wähle aus der Liste"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Spielzähler"
@ -1303,6 +1532,9 @@ msgstr "Vorheriger Titel"
msgid "Playing Music:"
msgstr "Aktuelle Musik:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Bitte warten..."
@ -1384,12 +1616,27 @@ msgstr "Zurück zum Wii Menü"
msgid "Right"
msgstr "Rechts"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Rumble"
msgid "SChinese"
msgstr "Vereinfachtes Chinesisch"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "SFX Lautstärke"
@ -1456,6 +1703,9 @@ msgstr "Zeige frei. Speicher"
msgid "Show Play Count"
msgstr "Zeige Spielzähler"
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "System herunterfahren"
@ -1507,6 +1757,9 @@ msgstr "Teile alle 4GB"
msgid "Standby"
msgstr "Standby"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Erfolgreich"
@ -1525,6 +1778,9 @@ msgstr "Erfolgreich aktualisiert"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Erfolgreich aktualisiert. Danke an www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Erfolgreich gelöscht:"
@ -1555,17 +1811,29 @@ msgstr "TXT Cheatdateien"
msgid "The .them file was not found in the zip."
msgstr "Die .them Datei wurde in der zip nicht gefunden."
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Das eingegebene Verzeichnis existiert nicht. Möchtest du es erstellen?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "DAtein werden in den EmuNand Pfad kopiert. Achtung: Alle vorhandenen Dateien werden überschrieben."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "Der Spielstand wird in den EmuNand Pfad kopiert."
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "Die Spielstände werden zum EmuNand-Pfad entpackt. Achtung: Alle vorhandenen Spielstände werden überschrieben."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "Die Wad Datei wurde installiert"
@ -1595,6 +1863,9 @@ msgstr "Dieses IOS ist das BootMii IOS. Solltest du sicher sein, dass es nicht d
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Dieses IOS wurde nicht in der Titelliste gefunden. Wenn du sicher bist es installiert zu haben, ignoriere die Warnung."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Noch:"
@ -1604,6 +1875,9 @@ msgstr "Channel Launcher"
msgid "Titles from GameTDB"
msgstr "Namen aus der WiiTDB"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Quickinfo"
@ -1731,6 +2005,9 @@ msgstr "Was sollte bei diesem Spiel gelöscht werden:"
msgid "What to extract from NAND?"
msgstr "Was soll aus dem NAND kopiert werden?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi Fähigkeiten"
@ -1792,6 +2069,9 @@ msgstr "Du kannst eine Partition auswählen oder formatieren oder den Kanal-Load
msgid "You cannot delete this category."
msgstr "Kategorie kann nicht gelöscht werden."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "und Übersetzer für Sprachdateien Updates"
@ -1837,6 +2117,9 @@ msgstr "formatiert!"
msgid "free"
msgstr "frei"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "Nicht gesetzt"
@ -1846,6 +2129,24 @@ msgstr "von"
msgid "seconds left"
msgstr "Sekunden verbleiben"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Eine Wii Disk einlegen!"
#~ msgid "Issue manager /"
#~ msgstr "Problem Manager /"
#~ msgid "No cheats were selected"
#~ msgstr "Es wurden keine Cheats ausgewählt."
#~ msgid "Not a Wii Disc"
#~ msgstr "Keine Wii Disk."
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "DAtein werden in den EmuNand Pfad kopiert. Achtung: Alle vorhandenen Dateien werden überschrieben."
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "Die Spielstände werden zum EmuNand-Pfad entpackt. Achtung: Alle vorhandenen Spielstände werden überschrieben."
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Lösche Tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-12-29 11:05+0100\n"
"Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Alternatív DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "Ápr"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "Biztos vagy benne?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr ""
@ -163,6 +178,18 @@ msgstr "Visszatérés a HBC-be vagy Wii Menübe"
msgid "Backgroundmusic"
msgstr "Háttérzene"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Mindkettõ"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "Nem törölhetõ"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Kontrollszint"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Helyes Jelszó"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "DIP modul nem tölthetõ be!"
msgid "Could not initialize network!"
msgstr "Kapcsolat nem hozható létre!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Lemez nem betölthetõ"
@ -433,9 +488,39 @@ msgstr "Egyéni útvonalak"
msgid "Customs/Original"
msgstr "Egyéni/Eredeti"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL Útvonal"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Lemezfotó törlése"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Felület:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Készítette"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "A könyvtár nem létezik!"
@ -493,6 +587,9 @@ msgstr "Lemez Alapértelmezettje"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Lemezforgatás"
@ -502,6 +599,9 @@ msgstr "Játékinfo megj."
msgid "Display as a carousel"
msgstr "Körhinta megjelenítés"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Rács megjelenítés"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Nyelv megváltoztatása?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Téma letöltése?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Formázás?"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Holland"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "Lemezolvasási hiba"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "Hiba:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Formázás sikertelen"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Formatálás folyamatban, kérlek várj..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Szabad Hely"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Kódok Útvonala"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Játék ID"
@ -853,12 +1034,18 @@ msgstr "Játék Banner hangerő"
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "A játék már fel van telepítve:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Német"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "HOME Menü"
@ -930,8 +1126,8 @@ msgstr "Hálózat inicializálása..."
msgid "Insert Disk"
msgstr "Helyezz be egy lemezt"
msgid "Insert a Wii Disc!"
msgstr "Helyezz be Wii lemezt!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Telepítés"
@ -957,6 +1153,9 @@ msgstr "Játék telepítése"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Játék telepítése"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "Folyamatos hang"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "Máj"
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "Nincsenek kiválasztott cheat-ek"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Adat nem olvasható."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "Egy fájl sem hiányzik!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Normális"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Nem Wii lemez"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "Nincs elég memória."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Nincs elég szabad hely"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "Nem támogatott formátum"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "Válassz a listából"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Indítások"
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Kérlek várj..."
@ -1384,12 +1616,27 @@ msgstr "Vissza a Wii Menübe"
msgid "Right"
msgstr "Jobb"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Rezgés"
msgid "SChinese"
msgstr "SKínai"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Effekt Hangerõ"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Leállítás"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Sikeres"
@ -1525,6 +1778,9 @@ msgstr "Sikeres frissítés"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Sikeresen törölve:"
@ -1555,16 +1811,28 @@ msgstr "TXT Cheatkódok Útvonala"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "A megadott könyvtár nem létezik. Létrehozzuk?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Hátralevõ idõ"
@ -1604,6 +1875,9 @@ msgstr "Programindító"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Súgók"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi Sajátosságok"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "Formázva!"
msgid "free"
msgstr "szabad"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "nem beállított"
@ -1846,6 +2129,15 @@ msgstr "./"
msgid "seconds left"
msgstr "hátralévõ másodperc"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Helyezz be Wii lemezt!"
#~ msgid "No cheats were selected"
#~ msgstr "Nincsenek kiválasztott cheat-ek"
#~ msgid "Not a Wii Disc"
#~ msgstr "Nem Wii lemez"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Ticket-ek törlése..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2011-09-11 12:19+0100\n"
"Last-Translator: xFede\n"
"Language-Team: Cambo, xFede\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Tutte"
@ -109,6 +112,9 @@ msgstr "DOL Alternativo"
msgid "An example file was created here:"
msgstr "Un file di esempio è stato creato qui:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr "Applica"
msgid "Apr"
msgstr "Aprile"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Sei sicuro di voler eliminare questa categoria?"
@ -130,6 +139,9 @@ msgstr "Sei sicuro di voler importare le categorie da GameTDB?"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Sei sicuro di voler bloccare USB Loader GX?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Sei sicuro di voler ripristinare tutto?"
@ -139,6 +151,9 @@ msgstr "Sei sicuro?"
msgid "Aspect Ratio"
msgstr "Formato TV"
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Agosto"
@ -163,6 +178,18 @@ msgstr "Torna a HBC/Menu Wii"
msgid "Backgroundmusic"
msgstr "Musica di sottofondo"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr "Dall'inizio"
@ -256,6 +283,12 @@ msgstr "Tutte Due"
msgid "Both Ports"
msgstr "Entrambe le porte"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Cachè Titoli"
@ -279,6 +312,10 @@ msgstr "Impossibile eliminare:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr "Impossibile aprire il file: %s"
@ -372,6 +409,18 @@ msgstr "Proseguire?"
msgid "Controllevel"
msgstr "Livello di protezione"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Password Corretta"
@ -391,12 +440,18 @@ msgstr "Impossibile estrarre il file per:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Non sono disponibili informazioni per questo gioco nel file wiitdb.xml."
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Impossibile inizializzare il modulo DIP!"
msgid "Could not initialize network!"
msgstr "Impossibile inizializzare la rete!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Impossibile aprire il disco"
@ -433,9 +488,39 @@ msgstr "Percorsi Personalizzati"
msgid "Customs/Original"
msgstr "Modific./Origin."
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Percorso del DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "Avvia il Debugger Pausato"
@ -469,6 +554,12 @@ msgstr "Elimina Immagine Disco"
msgid "Delete category"
msgstr "Elimina Categoria"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Grafica:"
@ -478,6 +569,9 @@ msgstr "Dettagli"
msgid "Developed by"
msgstr "Sviluppato da"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Il percorso non esiste!"
@ -493,6 +587,9 @@ msgstr "Da Disco"
msgid "Disc Insert Detected"
msgstr "Il gioco inserito è stato rilevato"
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Gira i dischi"
@ -502,6 +599,9 @@ msgstr "Visualizza"
msgid "Display as a carousel"
msgstr "Visualizz. Carosello"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Visualizz. Griglia"
@ -520,6 +620,21 @@ msgstr "Vuoi applicare questo tema?"
msgid "Do you want to change language?"
msgstr "Vuoi cambiare lingua?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Vuoi scaricare questo tema?"
@ -532,12 +647,18 @@ msgstr "Vuoi estrarre il salvataggio del gioco?"
msgid "Do you want to format:"
msgstr "Vuoi Formattare:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Vuoi caricare il tema predefinito?"
msgid "Do you want to re-init network?"
msgstr "Vuoi reinizializzare la rete?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Vuoi sincronizzare le info sullo spazio libero in tutte le partizioni FAT32?"
@ -583,6 +704,9 @@ msgstr "Scaricando l'anteprima di:"
msgid "Dump NAND to EmuNand"
msgstr "Dumpa la NAND sulla NAND Emulata"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Olandese"
@ -626,6 +750,9 @@ msgstr "Errore aprendo il file scaricato"
msgid "Error reading Disc"
msgstr "Errore leggendo il disco"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Errore scaricando il file: %i"
@ -648,6 +775,9 @@ msgstr "Errore scrivendo i dati."
msgid "Error:"
msgstr "Errore:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "Si sono verificati degli errori."
@ -663,6 +793,18 @@ msgstr "Uscire dove?"
msgid "Export All Saves to EmuNand"
msgstr "Esporta tutti i salvataggi"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "Estrai i salvataggi sulla NAND Emulata"
@ -681,6 +823,9 @@ msgstr "Estraendo il file della NAND:"
msgid "Failed"
msgstr "Fallito"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Formattazione fallita"
@ -708,6 +853,9 @@ msgstr "Lettura dell'header del wad fallita."
msgid "Failed updating"
msgstr "Aggiornamento fallito"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Funzionalità"
@ -775,6 +923,24 @@ msgstr "Formattando, attendere prego..."
msgid "Found missing images."
msgstr "Trovate le immagini mancanti."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Spazio libero"
@ -802,9 +968,18 @@ msgstr "Spegnimento Completo"
msgid "GAMEID_Gamename"
msgstr "IDGIOCO_Nomegioco"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Percorso Trucchi GCT"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID Gioco"
@ -853,12 +1034,18 @@ msgstr "Volume Suono Giochi"
msgid "Game Split Size"
msgstr "Dim. giochi suddivisi"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Gioco già installato:"
msgid "Game/Install Partition"
msgstr "Partizione Giochi/Inst."
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "Percorso GameTDB"
@ -877,9 +1064,18 @@ msgstr "Genere:"
msgid "German"
msgstr "Tedesco"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Impostazioni Globali"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Menu HOME"
@ -930,8 +1126,8 @@ msgstr "Inizializzando la rete"
msgid "Insert Disk"
msgstr "Inserisci un disco"
msgid "Insert a Wii Disc!"
msgstr "Inserisci un disco per Wii!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Installa"
@ -957,6 +1153,9 @@ msgstr "Installa un gioco"
msgid "Install finished"
msgstr "Installazione completata"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr "Installando contenuto"
@ -966,12 +1165,12 @@ msgstr "Installando gioco:"
msgid "Installing title..."
msgstr "Installando titolo..."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Invalid wad file."
msgstr "File WAD invalido."
msgid "Issue manager /"
msgstr "Gestore problemi /"
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "Hai informazioni che potrebbero esserci utili. Per favore, comunicale al team di sviluppo."
@ -1072,6 +1271,15 @@ msgstr "Suono Ripetuto"
msgid "Main DOL"
msgstr "Avvio main.dol"
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Tester principale:"
@ -1087,6 +1295,9 @@ msgstr "Maggio"
msgid "Messageboard Update"
msgstr "Aggiorna Messaggi"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "Video Motion+"
@ -1156,8 +1367,8 @@ msgstr "Nessuna partizione WBFS o FAT/NTFS/EXT trovata"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Winnertag.xml non trovato nel percorso specificato. Vuoi creare un file di esempio?"
msgid "No cheats were selected"
msgstr "Nessun trucco selezionato"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Impossibile leggere i dati."
@ -1171,6 +1382,9 @@ msgstr "Nessun preferito selezionato."
msgid "No file missing!"
msgstr "Nessun file mancante!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr "Non è stata trovata nessuna traduzione da aggiornare! Vuoi scaricare ora? "
@ -1192,8 +1406,8 @@ msgstr "Normale"
msgid "Not Initialized"
msgstr "Non Inizializzato"
msgid "Not a Wii Disc"
msgstr "Non è un disco Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "Non è una URL valida"
@ -1207,9 +1421,15 @@ msgstr "Non è un dominio valido"
msgid "Not enough free memory."
msgstr "Memoria libera insufficiente."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Spazio libero insufficiente!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Memoria insufficiente."
@ -1219,6 +1439,12 @@ msgstr "Non necessario"
msgid "Not supported format!"
msgstr "Formato non supportato!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "Novembre"
@ -1288,6 +1514,9 @@ msgstr "Permesso negato."
msgid "Pick from a list"
msgstr "Seleziona da un elenco"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Contatore"
@ -1303,6 +1532,9 @@ msgstr "Riproduci Precedente"
msgid "Playing Music:"
msgstr "Riproducendo:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Attendere prego..."
@ -1384,12 +1616,27 @@ msgstr "Ritorna al Menu Wii"
msgid "Right"
msgstr "Destra"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibrazione"
msgid "SChinese"
msgstr "Cinese Semplificato"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Volume SFX"
@ -1456,6 +1703,9 @@ msgstr "Visualizza Spazio Libero"
msgid "Show Play Count"
msgstr "Visualizza il Contatore"
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Spegnimento"
@ -1507,6 +1757,9 @@ msgstr "Suddividi ogni 4GB"
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Successo"
@ -1525,6 +1778,9 @@ msgstr "Aggiornato Correttamente"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Aggiornato Correttamente, grazie a www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Eliminato correttamente:"
@ -1555,17 +1811,29 @@ msgstr "Percorso Trucchi TXT"
msgid "The .them file was not found in the zip."
msgstr "Il file .them non è stato trovato nel zip."
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "La cartella specificata non esiste. Vuoi crearla ora?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "I file verranno estratti nel percorso della NAND Emulata. NB: Tutti I file esistenti verranno sovrascritti."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "Il salvataggio verrà estratto nel percorso della NAND Emulata."
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "I salvataggi verranno estratti nel percorso della NAND Emulata. Attenzione: Quelli esistenti verranno sovrascritti."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "File WAD installato"
@ -1595,6 +1863,9 @@ msgstr "Questo IOS è quello del BootMii. Se sei sicuro di aver installato qualc
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Questo IOS non è stato trovato nella lista dei titoli. Se sei sicuro di averlo installato ignora questo avvertimento."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Tempo rimasto:"
@ -1604,6 +1875,9 @@ msgstr "Avvia titoli"
msgid "Titles from GameTDB"
msgstr "Titoli da GameTDB"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Suggerimenti"
@ -1731,6 +2005,9 @@ msgstr "Cosa deve essere eliminato per questo gioco:"
msgid "What to extract from NAND?"
msgstr "Che cosa vuoi estrarre dalla NAND?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "Funzionalità WiFi"
@ -1792,6 +2069,9 @@ msgstr "Puoi selezionare,formattare una partizione o usare la Modalità Canali."
msgid "You cannot delete this category."
msgstr "Non puoi eliminare questa categoria."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "ed ai traduttori per gli aggiornamenti delle Traduzioni"
@ -1837,6 +2117,9 @@ msgstr "formattato!"
msgid "free"
msgstr "liberi"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "Non Impostata"
@ -1846,6 +2129,24 @@ msgstr "di"
msgid "seconds left"
msgstr "secondi rimasti"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Inserisci un disco per Wii!"
#~ msgid "Issue manager /"
#~ msgstr "Gestore problemi /"
#~ msgid "No cheats were selected"
#~ msgstr "Nessun trucco selezionato"
#~ msgid "Not a Wii Disc"
#~ msgstr "Non è un disco Wii"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "I file verranno estratti nel percorso della NAND Emulata. NB: Tutti I file esistenti verranno sovrascritti."
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "I salvataggi verranno estratti nel percorso della NAND Emulata. Attenzione: Quelli esistenti verranno sovrascritti."
#~ msgid " has been Saved. The text has not been verified. Some of the code may not work right with each other. If you experience trouble, open the text in a real text editor for more information."
#~ msgstr " è stato salvato. Parte del codice potrebbe non funzionare correttamente. In caso di problemi, aprire il file di testo con un editor per ottenere ulteriori informazioni."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: hosigumayuugi\n"
"Language-Team: hosigumayuugi\n"
@ -88,6 +88,9 @@ msgstr "オーバースキャン調整 X"
msgid "Adjust Overscan Y"
msgstr "オーバースキャン調整 Y"
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "全て"
@ -109,6 +112,9 @@ msgstr "代替DOL起動"
msgid "An example file was created here:"
msgstr "テンプレファイルが作成されました:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "アンチ"
@ -121,6 +127,9 @@ msgstr "適用"
msgid "Apr"
msgstr "4月"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "カテゴリを削除しますか?"
@ -130,6 +139,9 @@ msgstr "GameTDBからカテゴリをインポートしますか?"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "USB Loader GXをロックしますか?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "リセットしますか?"
@ -139,6 +151,9 @@ msgstr "よろしいですか?"
msgid "Aspect Ratio"
msgstr "アスペクト比"
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "8月"
@ -163,6 +178,18 @@ msgstr "HBC/Wiiメニューへ"
msgid "Backgroundmusic"
msgstr "BGM"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr "前方一致"
@ -256,6 +283,12 @@ msgstr "IDとリージョンを表示"
msgid "Both Ports"
msgstr "両方のポート"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "ゲーム名のキャッシュ"
@ -279,6 +312,10 @@ msgstr "削除できません:"
msgid "Can't mount or unknown disc format."
msgstr "マウントできないか不明なディスク形式です"
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr "ファイルを開けません: %s"
@ -372,6 +409,18 @@ msgstr "続行しますか?"
msgid "Controllevel"
msgstr "制限レベル"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "正しい暗証番号です"
@ -391,12 +440,18 @@ msgstr "書き出しできません:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "wiitdb.xmlにこのゲームの情報が見つかりませんでした"
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "DIPモジュールを初期化できません!"
msgid "Could not initialize network!"
msgstr "ネットに接続できませんでした!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "ディスクを開けませんでした"
@ -433,9 +488,39 @@ msgstr "パスを変更"
msgid "Customs/Original"
msgstr "カスタムを優先"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "代替DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "デバッガ待機スタート"
@ -469,6 +554,12 @@ msgstr "ディスク画像を削除"
msgid "Delete category"
msgstr "カテゴリを削除"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "デザイン:"
@ -478,6 +569,9 @@ msgstr "詳細"
msgid "Developed by"
msgstr "開発者:"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "フォルダがありません"
@ -493,6 +587,9 @@ msgstr "ディスクの初期値"
msgid "Disc Insert Detected"
msgstr "ディスクの挿入を検知しました"
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "ディスクの回転風"
@ -502,6 +599,9 @@ msgstr "ゲーム情報"
msgid "Display as a carousel"
msgstr "回転トレイ風に表示"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "格子風に表示"
@ -520,6 +620,21 @@ msgstr "このテーマを使いますか?"
msgid "Do you want to change language?"
msgstr "言語を変更しますか?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "ダウンロードしますか?"
@ -532,12 +647,18 @@ msgstr "セーブデータを書き出しますか?"
msgid "Do you want to format:"
msgstr "初期化しますか?"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "標準のテーマを読み込みますか?"
msgid "Do you want to re-init network?"
msgstr "ネットワークに再接続しますか?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "全てのFAT32領域のセクタで空き容量情報を同期しますか"
@ -583,6 +704,9 @@ msgstr "リストをダウンロード中:"
msgid "Dump NAND to EmuNand"
msgstr "NANDをエミュNANDへダンプ"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "オランダ語"
@ -626,6 +750,9 @@ msgstr "ダウンロードしたファイルを開けません"
msgid "Error reading Disc"
msgstr "読み込みに失敗しました"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "ダウンロードに失敗: %i"
@ -648,6 +775,9 @@ msgstr "データの書き込み中にエラーが発生しました"
msgid "Error:"
msgstr "エラー:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "エラーが発生しました"
@ -663,6 +793,18 @@ msgstr "どこに移動しますか?"
msgid "Export All Saves to EmuNand"
msgstr "全てのセーブをエミュNANDに転送"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "セーブをエミュNANDに書き出す"
@ -681,6 +823,9 @@ msgstr "NANDファイルを書き出し中:"
msgid "Failed"
msgstr "失敗"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "初期化に失敗しました"
@ -708,6 +853,9 @@ msgstr "WADヘッダを読み込めません"
msgid "Failed updating"
msgstr "更新に失敗しました"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "機能"
@ -775,6 +923,24 @@ msgstr "初期化中です、お待ち下さい..."
msgid "Found missing images."
msgstr "不足画像が見つかりました"
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "空き"
@ -802,9 +968,18 @@ msgstr "シャットダウン"
msgid "GAMEID_Gamename"
msgstr "ゲームID_ゲーム名"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr "GCゲーム"
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "GCTチート"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "IDのみ"
@ -853,12 +1034,18 @@ msgstr "サウンドの音量"
msgid "Game Split Size"
msgstr "ゲームの分割サイズ"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "このゲームは既にインストールされています:"
msgid "Game/Install Partition"
msgstr "ゲームのインストール領域"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "ゲーム名リスト"
@ -877,9 +1064,18 @@ msgstr "ジャンル:"
msgid "German"
msgstr "ドイツ語"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "基本設定"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "HOMEボタンメニュー"
@ -930,8 +1126,8 @@ msgstr "接続中・・・"
msgid "Insert Disk"
msgstr "ディスクを入れてください"
msgid "Insert a Wii Disc!"
msgstr "Wiiディスクを入れて下さい!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "インストール"
@ -957,6 +1153,9 @@ msgstr "ゲームをインストール"
msgid "Install finished"
msgstr "インストールが終了しました"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr "コンテンツをインストール中"
@ -966,12 +1165,12 @@ msgstr "ゲームをインストール中:"
msgid "Installing title..."
msgstr "タイトルをインストール中..."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Invalid wad file."
msgstr "不正なWADファイルです"
msgid "Issue manager /"
msgstr "問題管理者 /"
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "この情報は開発者までお知らせください"
@ -1072,6 +1271,15 @@ msgstr "ループさせる"
msgid "Main DOL"
msgstr "main.dol"
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "メインテスター:"
@ -1087,6 +1295,9 @@ msgstr "5月"
msgid "Messageboard Update"
msgstr "Wii伝言板の更新"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "モーション+説明ムービー"
@ -1156,8 +1367,8 @@ msgstr "使用できる領域が見つかりません"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Wiinnertag.xmlが設定パスにみつかりません。テンプレファイルを作成しますか?"
msgid "No cheats were selected"
msgstr "何も選ばれていません"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "読み込みに失敗しました"
@ -1171,6 +1382,9 @@ msgstr "お気に入りはありません"
msgid "No file missing!"
msgstr "必要ありません"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr "更新する言語ファイルがありません!新しい言語ファイルをダウンロードしますか?"
@ -1192,8 +1406,8 @@ msgstr "ワイド"
msgid "Not Initialized"
msgstr "初期化されていません"
msgid "Not a Wii Disc"
msgstr "Wiiディスクではありません"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "無効なURLです"
@ -1207,9 +1421,15 @@ msgstr "無効なドメインです"
msgid "Not enough free memory."
msgstr "空メモリが不足しています"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "空容量が不足しています!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "メモリが足りません"
@ -1219,6 +1439,12 @@ msgstr "必要なし"
msgid "Not supported format!"
msgstr "対応していない形式です!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "11月"
@ -1288,6 +1514,9 @@ msgstr "権限がありません"
msgid "Pick from a list"
msgstr "リストから選択"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "プレイ回数"
@ -1303,6 +1532,9 @@ msgstr "前へ"
msgid "Playing Music:"
msgstr "再生中"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "しばらくお待ちください"
@ -1384,12 +1616,27 @@ msgstr "Wiiメニューへもどる"
msgid "Right"
msgstr "右ボタンで"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "振動機能"
msgid "SChinese"
msgstr "簡体中国語"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "効果音の音量"
@ -1456,6 +1703,9 @@ msgstr "空き容量の表示"
msgid "Show Play Count"
msgstr "プレイ回数の表示"
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "シャットダウン"
@ -1507,6 +1757,9 @@ msgstr "4GBごとに分割"
msgid "Standby"
msgstr "スタンバイ"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "成功"
@ -1525,6 +1778,9 @@ msgstr "更新しました"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "更新しました www.techjawa.comに感謝!"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "削除に成功しました"
@ -1555,17 +1811,29 @@ msgstr "テキストチート"
msgid "The .them file was not found in the zip."
msgstr ".themファイルがzip内にありません"
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "フォルダがありません。作成しますか?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "ファイルはエミュNANDパスに書き出されます 注意:すでにあるファイルは上書きされます"
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "セーブデータはエミュNANDパスに書き出されます"
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "セーブデータはエミュNANDパスに書き出されます 注意:すでにあるセーブは上書きされます"
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "wadがインストールされました"
@ -1595,6 +1863,9 @@ msgstr "このIOSはBootMiiのIOSです"
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "このIOSはタイトルリストにありませんでした"
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "残り時間:"
@ -1604,6 +1875,9 @@ msgstr "ランチャー"
msgid "Titles from GameTDB"
msgstr "ゲーム名の日本語化"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "ヒントバルーン"
@ -1731,6 +2005,9 @@ msgstr "このゲームの何を削除しますか:"
msgid "What to extract from NAND?"
msgstr "何をNANDから書き出しますか?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "ネットワーク対応"
@ -1792,6 +2069,9 @@ msgstr "領域を選択・初期化したりチャンネルリストモードを
msgid "You cannot delete this category."
msgstr "このカテゴリは削除できません"
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "/ K-M / ichiroling …日本語化"
@ -1837,6 +2117,9 @@ msgstr "初期化を完了しました!"
msgid "free"
msgstr "空き"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "セットされていません"
@ -1846,6 +2129,24 @@ msgstr "中"
msgid "seconds left"
msgstr "秒で完了"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Wiiディスクを入れて下さい!"
#~ msgid "Issue manager /"
#~ msgstr "問題管理者 /"
#~ msgid "No cheats were selected"
#~ msgstr "何も選ばれていません"
#~ msgid "Not a Wii Disc"
#~ msgstr "Wiiディスクではありません"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "ファイルはエミュNANDパスに書き出されます 注意:すでにあるファイルは上書きされます"
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "セーブデータはエミュNANDパスに書き出されます 注意:すでにあるセーブは上書きされます"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> チケットを削除します"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nextos@korea.com\n"
"Language-Team: \n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Alternate DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "4월"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "확실합니까?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "8월"
@ -163,6 +178,18 @@ msgstr "홈브류 메뉴 또는 Wii 메뉴로"
msgid "Backgroundmusic"
msgstr "배경음악"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "둘다"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "삭제할 수 없습니다:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "조정 레벨"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "올바른 비밀번호"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "DIP 모듈 초기화 실패!"
msgid "Could not initialize network!"
msgstr "네트워크 초기화 실패!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "디스크를 열 수 없습니다."
@ -433,9 +488,39 @@ msgstr "Custom Paths"
msgid "Customs/Original"
msgstr "커스텀/오리지널"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL 패치"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "삭제 Discart"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "디자인:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "디자인 by"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr ""
@ -493,6 +587,9 @@ msgstr "디스크 기본값"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "디스크 플립"
@ -502,6 +599,9 @@ msgstr "화면 표시"
msgid "Display as a carousel"
msgstr "그림으로 표시"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "격자 무니 표시"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "정말로 언어를 변경할까요?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr ""
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "포맷하겠습니까:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "네덜란드어"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "디스크 읽기 오류"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "에러:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "포맷 실패"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "포맷 중. 기다려 주세요..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "여유 공간"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "치트코드 경로"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "게임 ID"
@ -853,12 +1034,18 @@ msgstr ""
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "게임이 이미 설치되어 있습니다."
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "독일어"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "HOME 메뉴"
@ -930,8 +1126,8 @@ msgstr "네트워크 초기화"
msgid "Insert Disk"
msgstr "디스크를 넣어주세요"
msgid "Insert a Wii Disc!"
msgstr "Wii 디스크를 넣으세요!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "설치"
@ -957,6 +1153,9 @@ msgstr "게임을 설치할까요"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "게임 설치 중:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr ""
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "5월"
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,7 +1367,7 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "누락 파일 없음!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "일반"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Wii 디스크가 아닙니다"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "메모리가 부족해요."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "여유 공간이 부족합니다!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "지원되는 포맷이 아니에요!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "11월"
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "리스트로 부터 고르기"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "실행 횟수"
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr ""
@ -1384,12 +1616,27 @@ msgstr "위 메뉴로 돌아가기"
msgid "Right"
msgstr "오른쪽"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "진동"
msgid "SChinese"
msgstr "중국어(간체)"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "SFX 볼륨"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "시스템 종료"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "성공"
@ -1525,6 +1778,9 @@ msgstr "업데이트 성공"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "삭제 성공:"
@ -1555,16 +1811,28 @@ msgstr "TXT 치트코드 경로"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr ""
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "남은 시간:"
@ -1604,6 +1875,9 @@ msgstr "타이틀 런처"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Tooltips"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi 형태"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "포맷 완료!"
msgid "free"
msgstr "남음"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "설정되지 않음"
@ -1846,6 +2129,12 @@ msgstr "중"
msgid "seconds left"
msgstr "초 남았습니다"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Wii 디스크를 넣으세요!"
#~ msgid "Not a Wii Disc"
#~ msgstr "Wii 디스크가 아닙니다"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> 티켓 삭제중..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: raschi\n"
"Language-Team: raschi\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Alle"
@ -109,6 +112,9 @@ msgstr "Alternativ DOL"
msgid "An example file was created here:"
msgstr "En eksempelfil ble opprettet her:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr "Bruk"
msgid "Apr"
msgstr ""
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Er du sikker på at du vil slette denne kategorien?"
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Er du sikker på at du vil låse USB Loader GX?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Er du sikker på at du vil restarte?"
@ -139,6 +151,9 @@ msgstr "Er du sikker?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr ""
@ -163,6 +178,18 @@ msgstr "Tilbake til HBC eller Wii meny"
msgid "Backgroundmusic"
msgstr "Bakgrunnsmusikk"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Begge"
msgid "Both Ports"
msgstr "Begge porter"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Cache titler"
@ -279,6 +312,10 @@ msgstr "Kan ikke slette:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Kontrollnivå"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Riktig passord"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Kan ikke finne info for dette spillet i wiitdb.xml."
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Kan ikke initialisere DIP modul!"
msgid "Could not initialize network!"
msgstr "Kan ikke initialisere nettverk!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Kan ikke åpne plate"
@ -433,9 +488,39 @@ msgstr "Egendefinerte stier"
msgid "Customs/Original"
msgstr "Custom/Original"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL sti"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Slett platebilde"
msgid "Delete category"
msgstr "Slett kategori"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr ""
@ -478,6 +569,9 @@ msgstr "Detaljer"
msgid "Developed by"
msgstr "Utviklet av"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Mappe finnes ikke!"
@ -493,6 +587,9 @@ msgstr "Spill Standard"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Snu plate"
@ -502,6 +599,9 @@ msgstr "Vis"
msgid "Display as a carousel"
msgstr "Vis som karusell"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Vis som rutemønster"
@ -520,6 +620,21 @@ msgstr "Vil du aktivere dette temaet?"
msgid "Do you want to change language?"
msgstr "Vil du endre språk?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Vil du laste ned dette temaet?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Vil du formatere:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Vil du laste standard tema?"
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Vil du synkronisere ledig plass info sektor på alle FAT32 partisjoner?"
@ -583,6 +704,9 @@ msgstr "Laster ned sideliste:"
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Nederlandsk"
@ -626,6 +750,9 @@ msgstr "Feil ved åpning av nedlastet fil"
msgid "Error reading Disc"
msgstr "Feil ved lesing av plate"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Feil ved nedlasting av fil: %i"
@ -648,6 +775,9 @@ msgstr "Feil ved skriving av data."
msgid "Error:"
msgstr "Feil:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr "Avslutt til?"
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr "Feilet"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Feil ved formatering"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr "Feil ved oppdatering"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Funksjoner"
@ -775,6 +923,24 @@ msgstr "Formaterer, vennligst vent..."
msgid "Found missing images."
msgstr "Funnet manglende bilder."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Ledig plass"
@ -802,9 +968,18 @@ msgstr "Skru helt av"
msgid "GAMEID_Gamename"
msgstr "SPILLID_Spillnavn"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "GCT Juksekode sti"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Spill ID"
@ -853,12 +1034,18 @@ msgstr "Spillyd volum"
msgid "Game Split Size"
msgstr "Spill splittestørrelse"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Spillet er allerede installert:"
msgid "Game/Install Partition"
msgstr "Spill/installer partisjon"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr "Sjanger:"
msgid "German"
msgstr "Tysk"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Globale innstillinger"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "HOME Meny"
@ -930,8 +1126,8 @@ msgstr "Initialiserer nettverk"
msgid "Insert Disk"
msgstr "Sett inn plate"
msgid "Insert a Wii Disc!"
msgstr "Sett inn en Wii plate!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Installér"
@ -957,6 +1153,9 @@ msgstr "Installér et spill"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,11 +1165,11 @@ msgstr "Installerer spill:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgstr "Problem manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "Det ser ut til at du har informasjon som kan være nyttig for oss. Vennligst videresend denne informasjonen til utviklerteamet."
@ -1072,6 +1271,15 @@ msgstr "Loop lyd"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Hovedtester:"
@ -1087,6 +1295,9 @@ msgstr "Mai"
msgid "Messageboard Update"
msgstr "Messageboard oppdatering"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "Motion+ film"
@ -1156,8 +1367,8 @@ msgstr "Ingen WBFS eller FAT/NTFS/EXT partisjon funnet"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Ingen Wiinnertag.xml funnet. Vil du opprette en eksempelfil?"
msgid "No cheats were selected"
msgstr "Ingen juksefiler valgt"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Ingen data kan leses."
@ -1171,6 +1382,9 @@ msgstr "Ingen favoritter valgt."
msgid "No file missing!"
msgstr "Ingen filer mangler!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr ""
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Ikke en Wii plate"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "Ikke en gyldig URL"
@ -1207,9 +1421,15 @@ msgstr "Ikke et gyldig domene"
msgid "Not enough free memory."
msgstr "Ikke nok ledig minne."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Ikke nok ledig plass!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Ikke nok minne."
@ -1219,6 +1439,12 @@ msgstr "Ikke nødvendig"
msgid "Not supported format!"
msgstr "Ikke et støttet format!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr "Ingen tilgang."
msgid "Pick from a list"
msgstr "Velg fra liste"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Ganger spilt"
@ -1303,6 +1532,9 @@ msgstr "Spill forrige"
msgid "Playing Music:"
msgstr "Spiller musikk:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Vennligst vent..."
@ -1384,12 +1616,27 @@ msgstr "Tilbake til Wii meny"
msgid "Right"
msgstr "Høyre"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibrasjon"
msgid "SChinese"
msgstr "S.Kinesisk"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Effekt volum"
@ -1456,6 +1703,9 @@ msgstr "Vis ledig plass"
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Skru helt av"
@ -1507,6 +1757,9 @@ msgstr "Splitt ved 4GB"
msgid "Standby"
msgstr "Hvilemodus"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Suksess"
@ -1525,6 +1778,9 @@ msgstr "Vellykket oppdatering"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Vellykket oppdatering takket være www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Vellykket sletting:"
@ -1555,16 +1811,28 @@ msgstr "TXTjuksekode sti"
msgid "The .them file was not found in the zip."
msgstr "Filen .them ble ikke funnet i zip."
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Valgt mappe finnes ikke. Vil du opprette den?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr "Dette IOS er vanligvis BootMii IOS. Hvis du er sikker på at dette ikke
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Dette IOS ble ikke funnet i tittel listen. Hvis du er sikker på at du har det installert, kan du ignorere denne advarselen."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Tid igjen:"
@ -1604,6 +1875,9 @@ msgstr "Tittel Laster"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Verktøystips"
@ -1731,6 +2005,9 @@ msgstr "Hva skal slettes for denne spilltittel:"
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi egenskaper"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr "Du kan ikke slette denne kategori."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "og oversettere for språkfiler"
@ -1837,6 +2117,9 @@ msgstr "formatert!"
msgid "free"
msgstr "ledig"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "ikke satt"
@ -1846,6 +2129,18 @@ msgstr "av"
msgid "seconds left"
msgstr "sekunder gjenstår"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Sett inn en Wii plate!"
#~ msgid "Issue manager /"
#~ msgstr "Problem manager /"
#~ msgid "No cheats were selected"
#~ msgstr "Ingen juksefiler valgt"
#~ msgid "Not a Wii Disc"
#~ msgstr "Ikke en Wii plate"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Sletter tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Alternatywny DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "Anty"
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "Kwiecien"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "Na pewno?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Sierpien"
@ -163,6 +178,18 @@ msgstr "Powrot do HBC/Wii Menu"
msgid "Backgroundmusic"
msgstr "Muzyka w tle"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Oba"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "Nie mozna usunac"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Poziom kontroli"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Haslo poprawne"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Nie zainicjalizowano modulu DIP!"
msgid "Could not initialize network!"
msgstr "Nie zainicjalizowano sieci!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Nie udalo sie otworzyc dysku"
@ -433,9 +488,39 @@ msgstr "Sciezki"
msgid "Customs/Original"
msgstr ""
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Sciezka plikow .DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Usun obrazki plyt"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Projekt:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr ""
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Katalog nie istnieje!"
@ -493,6 +587,9 @@ msgstr "Domyslny dysk"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Obrot plytami"
@ -502,6 +599,9 @@ msgstr "Wyswietl"
msgid "Display as a carousel"
msgstr "Wyswietl jako karuzele"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Wyswietl jako siatke"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Zmienic jezyk?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Pobrac temat?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Sformatowac:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "holenderski"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "Blad odczytu plyty"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "Blad:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Nie udalo sie sformatowac"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Formatowanie, prosze czekac..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Wolnego miejsca"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Sciezka kodow GCT"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID gry"
@ -853,12 +1034,18 @@ msgstr "Gloscnosc dzwieku gry"
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Gra jest juz zainstalowana:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "niemiecki"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Menu"
@ -930,8 +1126,8 @@ msgstr "Inicjalizacja sieci"
msgid "Insert Disk"
msgstr "Wloz plyte"
msgid "Insert a Wii Disc!"
msgstr "Wloz plyte Wii!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Zainstaluj"
@ -957,6 +1153,9 @@ msgstr "Zainstaluj gre"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Instalowanie gry:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "Zapetl dzwieki"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "Maj"
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "Nie wybrano zadnych kodow"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Blad odczytu"
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "Brak plikow do pobrania"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Standardowe"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "To nie jest plyta Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "Brak wystarczajacej wolnej pamieci"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Brak wystarczajacej wolnej pamieci"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "Nieobslugiwany format"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "Listopad"
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "Wybierz z listy"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Licznik"
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Prosze czekac..."
@ -1384,12 +1616,27 @@ msgstr "Powrot do Wii Menu"
msgid "Right"
msgstr "Prawo"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Wibracje"
msgid "SChinese"
msgstr "uproszczony chinski"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Poziom glosnosci SFX"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Wylacz"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Sukces"
@ -1525,6 +1778,9 @@ msgstr "Pomyslnie zaktualizowano"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Pomyslnie usunieto"
@ -1555,16 +1811,28 @@ msgstr "Sciezka kodow TXT"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Katalog nie istnieje. Utworzyc?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Czas pozostaly"
@ -1604,6 +1875,9 @@ msgstr "Uruchom tytul"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Chmurki z podpowiedziami"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "Opcje WiFi"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "sformatowano"
msgid "free"
msgstr "wolnego"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "nie ustawiono"
@ -1846,6 +2129,15 @@ msgstr "z"
msgid "seconds left"
msgstr "sekund pozostalo"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Wloz plyte Wii!"
#~ msgid "No cheats were selected"
#~ msgstr "Nie wybrano zadnych kodow"
#~ msgid "Not a Wii Disc"
#~ msgstr "To nie jest plyta Wii"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Usuwanie ticketu..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-23 18:52+0200\n"
"Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Todas"
@ -109,6 +112,9 @@ msgstr "DOL alternativo"
msgid "An example file was created here:"
msgstr "Um arquivo de exemplo foi criado aqui:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr "Aplicar"
msgid "Apr"
msgstr "Abr"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Tem certeza que quer deletar essa categoria?"
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Tem certeza que quer bloquear?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Tem certeza que quer reiniciar?"
@ -139,6 +151,9 @@ msgstr "Tem certeza?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Ago"
@ -163,6 +178,18 @@ msgstr "Voltar ao Loader/Menu do Wii"
msgid "Backgroundmusic"
msgstr "Música de fundo"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Ambos"
msgid "Both Ports"
msgstr "Ambas portas"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Títulos de cache"
@ -279,6 +312,10 @@ msgstr "Não foi possível apagar:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Nível de Controle"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Password Correto"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Não foi possível inicializar o módulo DIP!"
msgid "Could not initialize network!"
msgstr "Não foi possível incializar a Ligação de Rede!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Não foi possível abrir o Disco"
@ -433,9 +488,39 @@ msgstr "Personalização de Pastas"
msgid "Customs/Original"
msgstr "Alternativas/Originais"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Pasta DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Eliminar Img. Disco"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Desenho:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Desenvolvido por"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Diretorio não existe!"
@ -493,6 +587,9 @@ msgstr "Disco Padrão"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Voltar Disco"
@ -502,6 +599,9 @@ msgstr "Mostrar"
msgid "Display as a carousel"
msgstr "Mostrar como carrossel"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Mostrar como grelha"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Deseja alterar o idioma?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Deseja baixar este tema?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Deseja FORMATAR:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Holandês"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "Erro ao ler o Disco"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "Erro:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Falha ao formatar"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Formatando, por favor aguarde..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Espaço Livre"
@ -802,9 +968,18 @@ msgstr "Desligar"
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Pasta Truques"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID do Jogo"
@ -853,12 +1034,18 @@ msgstr "Volume dos Sons dos Jogos"
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Este jogo já está instalado:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Alemão"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Menu Inicial"
@ -930,8 +1126,8 @@ msgstr "Inicializando a Rede"
msgid "Insert Disk"
msgstr "Insira o Disco"
msgid "Insert a Wii Disc!"
msgstr "Insira um Disco do Wii!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Instalar"
@ -957,6 +1153,9 @@ msgstr "Instalar um jogo"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Instalando jogo:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "Repitir Som"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "Mai"
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "Nenhuma seleção de truques"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Não foi possível ler dados."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "Faltando nenhum arquivo"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr ""
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Não é um Disco do Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "Não há memória livre suficiente."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Não há espaço livre suficiente!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "Formato não suportado!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "Escolher da lista"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Vezes jogadas"
@ -1303,6 +1532,9 @@ msgstr "Tocar Anteior"
msgid "Playing Music:"
msgstr "Tocando a Música:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Por favor aguarde..."
@ -1384,12 +1616,27 @@ msgstr "Voltar ao Menu do Wii"
msgid "Right"
msgstr "Direita"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibração"
msgid "SChinese"
msgstr "Chinês Simplificado"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Volume dos Efeitos"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Desligar"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Sucesso"
@ -1525,6 +1778,9 @@ msgstr "Programa atualizado com Sucesso"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Atualizado com sucesso graças a www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Eliminado com Sucesso:"
@ -1555,16 +1811,28 @@ msgstr "Pasta Dicas"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "O diretorio não existe. Gostaria de cria-lo?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Tempo restante:"
@ -1604,6 +1875,9 @@ msgstr "Laucher de Títulos"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Dicas"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "Rede sem fios"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "formatado!"
msgid "free"
msgstr "livres"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "não definido"
@ -1846,6 +2129,15 @@ msgstr "de"
msgid "seconds left"
msgstr "segundos restantes"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Insira um Disco do Wii!"
#~ msgid "No cheats were selected"
#~ msgstr "Nenhuma seleção de truques"
#~ msgid "Not a Wii Disc"
#~ msgstr "Não é um Disco do Wii"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Eliminando tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2011-11-03 11:00+0000\n"
"Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Todas"
@ -109,6 +112,9 @@ msgstr "DOL alternativo"
msgid "An example file was created here:"
msgstr "Ficheiro de exemplo criado aqui:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "Anti"
@ -121,6 +127,9 @@ msgstr "Aplicar"
msgid "Apr"
msgstr "Abr"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "Tem a certeza que quer apagar esta categoria?"
@ -130,6 +139,9 @@ msgstr "Tem a certeza que quer importar as categorias de jogos da GameTDB?"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "Tem a certeza que quer bloquear o USB Loader GX?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "Tem a certeza que quer reinicializar?"
@ -139,6 +151,9 @@ msgstr "Tem a certeza?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Ago"
@ -163,6 +178,18 @@ msgstr "Voltar ao HBC ou Menu Wii"
msgid "Backgroundmusic"
msgstr "Música de fundo"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Ambos"
msgid "Both Ports"
msgstr "Ambas as Portas"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Títulos em Cache"
@ -279,6 +312,10 @@ msgstr "Não foi possível apagar:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr "Continuar?"
msgid "Controllevel"
msgstr "Nível de Controle"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Password Correcta"
@ -391,12 +440,18 @@ msgstr "Não foi possível extrair ficheiros para:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "Não foi encontrada info do jogo no wiitdb.xml"
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Não foi possível inicializar o módulo DIP!"
msgid "Could not initialize network!"
msgstr "Não foi possível incializar a Ligação de Rede!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Não foi possível abrir o Disco"
@ -433,9 +488,39 @@ msgstr "Caminhos Personalizados"
msgid "Customs/Original"
msgstr "Personalizadas/Originais"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Cam. DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "Parado Início Debugger"
@ -469,6 +554,12 @@ msgstr "Eliminar Imagem Disco"
msgid "Delete category"
msgstr "Apagar categ."
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Design:"
@ -478,6 +569,9 @@ msgstr "Detalhes"
msgid "Developed by"
msgstr "Desenvolvido por"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Pasta não existe!"
@ -493,6 +587,9 @@ msgstr "Predefinição Disco"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Voltar Disco"
@ -502,6 +599,9 @@ msgstr "Mostrar"
msgid "Display as a carousel"
msgstr "Mostrar como carrossel"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Mostrar como grelha"
@ -520,6 +620,21 @@ msgstr "Deseja aplicar este tema?"
msgid "Do you want to change language?"
msgstr "Deseja alterar o idioma?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Deseja descarregar este tema?"
@ -532,12 +647,18 @@ msgstr "Deseja extrair esta gravação?"
msgid "Do you want to format:"
msgstr "Deseja FORMATAR:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "Deseja carregar o tema por defeito?"
msgid "Do you want to re-init network?"
msgstr "Deseja reinicializar a rede?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "Deseja sincronizar a info de espaço livre em todas as partições FAT32?"
@ -583,6 +704,9 @@ msgstr "A Descarregar a lista:"
msgid "Dump NAND to EmuNand"
msgstr "Sacar NAND para EmuNand"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Holandês"
@ -626,6 +750,9 @@ msgstr "Erro ao abrir ficheiro descarregado"
msgid "Error reading Disc"
msgstr "Erro ao ler o Disco"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Erro ao descarregar ficheiro: %i"
@ -648,6 +775,9 @@ msgstr "Erro ao escrever os dados."
msgid "Error:"
msgstr "Erro:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "Ocorreram erros."
@ -663,6 +793,18 @@ msgstr "Sair para onde?"
msgid "Export All Saves to EmuNand"
msgstr "Extrair Todas as Gravações para EmuNand"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "Extrair Gravação para EmuNand"
@ -681,6 +823,9 @@ msgstr "A extrair ficheiros nand:"
msgid "Failed"
msgstr "Falhou"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Falha ao formatar"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr "Falha ao actualizar"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Funcionalidades"
@ -775,6 +923,24 @@ msgstr "A Formatar, por favor aguarde..."
msgid "Found missing images."
msgstr "Imagens em falta encontradas."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Espaço Livre"
@ -802,9 +968,18 @@ msgstr "Shutdown"
msgid "GAMEID_Gamename"
msgstr "IDJOGO_NomeJogo"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Cam. Cód. Batota GCT"
@ -820,6 +995,12 @@ msgstr "GXDraw"
msgid "GXFlush"
msgstr "GXFlush"
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID do Jogo"
@ -853,12 +1034,18 @@ msgstr "Volume de Som do Jogo"
msgid "Game Split Size"
msgstr "Tamanho Partição Jogo"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "O jogo já está instalado:"
msgid "Game/Install Partition"
msgstr "Jogo/Partição Instalação"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "Cam. GameTDB"
@ -877,9 +1064,18 @@ msgstr "Tipo:"
msgid "German"
msgstr "Alemão"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Definições Globais"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Menu HOME"
@ -930,8 +1126,8 @@ msgstr "A inicializar Ligação de Rede"
msgid "Insert Disk"
msgstr "Insira o Disco"
msgid "Insert a Wii Disc!"
msgstr "Insira um Disco da Wii!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Instalar"
@ -957,6 +1153,9 @@ msgstr "Instalar um jogo"
msgid "Install finished"
msgstr "Instalação finalizada"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,11 +1165,11 @@ msgstr "A instalar jogo:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgstr "Gestor problemas /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "Parece que tem informação que pode ser útil. Por favor envie esta informação à equipa de desenvolvimento."
@ -1072,6 +1271,15 @@ msgstr "Repetir Sons"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Tester principal:"
@ -1087,6 +1295,9 @@ msgstr "Mai"
msgid "Messageboard Update"
msgstr "Update Placard Mensagens"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "Vídeo Motion+"
@ -1156,8 +1367,8 @@ msgstr "Nenhuma partição WBFS ou FAT/NTFS/EXT encontrada"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "Ficheiro Wiinnertag.xml não encontrado. Quer criar um ficheiro de exemplo?"
msgid "No cheats were selected"
msgstr "Não foram seleccionados batotas"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Não foi possível ler dados."
@ -1171,6 +1382,9 @@ msgstr "Nenhum favorito seleccionado"
msgid "No file missing!"
msgstr "Nenhum ficheiro em falta!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Normal"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Não é um Disco da Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "URL inválido"
@ -1207,9 +1421,15 @@ msgstr "Domínio inválido"
msgid "Not enough free memory."
msgstr "Não há memória livre suficiente."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Não há espaço livre suficiente!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "Não há memória suficiente."
@ -1219,6 +1439,12 @@ msgstr "Não requerido"
msgid "Not supported format!"
msgstr "Formato não suportado!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "Nov"
@ -1288,6 +1514,9 @@ msgstr "Sem autorização."
msgid "Pick from a list"
msgstr "Escolher da lista"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Vezes jogadas"
@ -1303,6 +1532,9 @@ msgstr "Anterior"
msgid "Playing Music:"
msgstr "A reproduzir Música:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Por favor aguarde..."
@ -1384,12 +1616,27 @@ msgstr "Voltar ao Menu Wii"
msgid "Right"
msgstr "Direita"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibração"
msgid "SChinese"
msgstr "Chinês Simplificado"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Volume Efeitos"
@ -1456,6 +1703,9 @@ msgstr "Mostrar Espaço Livre"
msgid "Show Play Count"
msgstr "Mostrar Contagem Jogos"
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Desligar"
@ -1507,6 +1757,9 @@ msgstr "Partir a cada 4GB"
msgid "Standby"
msgstr "Standby"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Sucesso"
@ -1525,6 +1778,9 @@ msgstr "Actualização Concluída"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Actualizado com sucesso graças a www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Eliminado com Sucesso:"
@ -1555,17 +1811,29 @@ msgstr "Cam. Cód. Batotas TXT"
msgid "The .them file was not found in the zip."
msgstr "O ficheiro .them não foi encontrado no zip"
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "A pasta não existe, pretende criá-la?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "Os ficheiros serão extraídos para o caminho da emu nand. Atenção: Todos os ficheiros existentes serão sobrepostos."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "A gravação vai ser extraída para o caminho da emu nand."
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "As gravações vão ser extraídas para o caminho da emu nand. Atenção: Todas as gravações existentes serão sobrepostas."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "O ficheiro wad foi instalado"
@ -1595,6 +1863,9 @@ msgstr "Este IOS é o ios BootMii. Se tem a certeza que não é o BootMii e tem
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "Este IOS não foi encontrado na lista de títulos. Se tem a certeza que o tem instalado então ignore este aviso."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Tempo rem:"
@ -1604,6 +1875,9 @@ msgstr "Gestor de Títulos"
msgid "Titles from GameTDB"
msgstr "Títulos do GameTDB"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Dicas"
@ -1731,6 +2005,9 @@ msgstr "O que deve ser apagado para este jogo:"
msgid "What to extract from NAND?"
msgstr "O que extrair da NAND?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "Rede sem fios"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr "Não pode apagar esta categoria."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "e tradutores para as actualizações de idioma"
@ -1837,6 +2117,9 @@ msgstr "formatado!"
msgid "free"
msgstr "livres"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "não definido"
@ -1846,6 +2129,24 @@ msgstr "de"
msgid "seconds left"
msgstr "segundos restantes"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Insira um Disco da Wii!"
#~ msgid "Issue manager /"
#~ msgstr "Gestor problemas /"
#~ msgid "No cheats were selected"
#~ msgstr "Não foram seleccionados batotas"
#~ msgid "Not a Wii Disc"
#~ msgstr "Não é um Disco da Wii"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "Os ficheiros serão extraídos para o caminho da emu nand. Atenção: Todos os ficheiros existentes serão sobrepostos."
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "As gravações vão ser extraídas para o caminho da emu nand. Atenção: Todas as gravações existentes serão sobrepostas."
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> A eliminar tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Альтернативный DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "Анти"
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "Апр"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "Вы уверены ?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Авг"
@ -163,6 +178,18 @@ msgstr "Вернуться в HBC или меню Wii"
msgid "Backgroundmusic"
msgstr "Фоновая музыка"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Оба"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "Невозможно удалить:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Уровень контроля"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Правильный пароль"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Не могу запустить модуль DIP!"
msgid "Could not initialize network!"
msgstr "Не могу инициализировать сеть!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Не могу прочесть диск"
@ -433,9 +488,39 @@ msgstr "Изменение путей"
msgid "Customs/Original"
msgstr "Измененный/Оригинальные"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Путь к DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Удалить картинку диска"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Дизайн:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Создано "
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Каталог не существует!"
@ -493,6 +587,9 @@ msgstr "По умолчанию (диск)"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "ДискФлип"
@ -502,6 +599,9 @@ msgstr "Отображать"
msgid "Display as a carousel"
msgstr "Покаказть в виде карусели"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Показать в виде сетки"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Вы хотите сменить язык ?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Вы действительно хотите загрузить эту тему?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Вы хотите отформатировать:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Голландский"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "Ошибка чтения диска"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "Ошибка:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Форматирование не удалось"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Форматирую, пожалуйста подождите..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Свободное пространство"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Путь к читам"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID игры"
@ -853,12 +1034,18 @@ msgstr "Громкость звука в игре"
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Игра уже установлена:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Немецкий"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Домашнее Меню"
@ -930,8 +1126,8 @@ msgstr "Инициализирую сеть"
msgid "Insert Disk"
msgstr "Вставьте диск"
msgid "Insert a Wii Disc!"
msgstr "Вставьте диск Wii!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Установка"
@ -957,6 +1153,9 @@ msgstr "Установить игру"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Устанавливаю игру:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "Зациклить звут"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "Май"
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "Не было выбрано ни одного чит-кода"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Невозможно считать данные."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "Файл не найден!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Обычный"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Это не диск Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "Недостаточно памяти"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Не хватает свободного места!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "Формат не поддерживается"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "Ноя"
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "Выберите из списка"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Запущено раз"
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Пожалуйста подождите..."
@ -1384,12 +1616,27 @@ msgstr "Вернуться в меню Wii"
msgid "Right"
msgstr "Направо"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Вибрация"
msgid "SChinese"
msgstr "Упрощенный китайский"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Громкость эффектов"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Выключить систему"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Успех"
@ -1525,6 +1778,9 @@ msgstr "Успешно обновлено"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Успешно удалено:"
@ -1555,16 +1811,28 @@ msgstr "Путь к TXT читкодам"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Заданный каталог не существует. Хотите создать его?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Осталось времени:"
@ -1604,6 +1875,9 @@ msgstr "Загрузчик тайтла"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Подсказки"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "свойства WiFi"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "форматирование завершено!"
msgid "free"
msgstr "свободно"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "не установлено"
@ -1846,6 +2129,15 @@ msgstr "из"
msgid "seconds left"
msgstr "секунд осталось"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Вставьте диск Wii!"
#~ msgid "No cheats were selected"
#~ msgstr "Не было выбрано ни одного чит-кода"
#~ msgid "Not a Wii Disc"
#~ msgstr "Это не диск Wii"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Удаление тикетов...."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "可选择DOL文件"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "防止"
@ -121,6 +127,9 @@ msgstr "应用"
msgid "Apr"
msgstr "四月"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "确定要锁定USB Loader GX吗"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "确定重置吗?"
@ -139,6 +151,9 @@ msgstr "确定?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "八月"
@ -163,6 +178,18 @@ msgstr "返回 HBC 或 Wii 系统菜单"
msgid "Backgroundmusic"
msgstr "背景音乐"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "全部"
msgid "Both Ports"
msgstr "两个接口"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "缓存游戏标题"
@ -279,6 +312,10 @@ msgstr "无法删除:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "访问控制级别"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "密码正确"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "wiitdb.xml中未找到此游戏"
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "无法启动 DIP 模块!"
msgid "Could not initialize network!"
msgstr "无法启动网络!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "无法开启光盘"
@ -433,9 +488,39 @@ msgstr "自定义路径"
msgid "Customs/Original"
msgstr "自制/官方"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL路径"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "删除光盘图片"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "设计:"
@ -478,6 +569,9 @@ msgstr "详细"
msgid "Developed by"
msgstr "开发"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "目录不存在"
@ -493,6 +587,9 @@ msgstr "游戏默认"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "光盘滑动"
@ -502,6 +599,9 @@ msgstr "显示"
msgid "Display as a carousel"
msgstr "走马灯模式"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "封面墙模式"
@ -520,6 +620,21 @@ msgstr "你想应用这个主题吗?"
msgid "Do you want to change language?"
msgstr "要变更语言吗?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "要下载这个主题吗?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "是否格式化:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "要加载默认主题吗?"
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "是否同步剩余空间信息扇区到所有FAT32分区?"
@ -583,6 +704,9 @@ msgstr "正在下载分页列表:"
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "荷文"
@ -626,6 +750,9 @@ msgstr "打开下载文件错误"
msgid "Error reading Disc"
msgstr "读取光盘错误"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "下载文件%i失败 "
@ -648,6 +775,9 @@ msgstr "写入数据错误"
msgid "Error:"
msgstr "错误:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr "退出到哪里?"
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "格式化失败"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr "升级失败"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "格式化中, 请稍候..."
msgid "Found missing images."
msgstr "找到缺少的图片."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "剩余空间"
@ -802,9 +968,18 @@ msgstr "完全关机"
msgid "GAMEID_Gamename"
msgstr "游戏ID_游戏名"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "作弊码路径"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "游戏 ID"
@ -853,12 +1034,18 @@ msgstr "游戏音量"
msgid "Game Split Size"
msgstr "游戏分割大小"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "已安装的游戏:"
msgid "Game/Install Partition"
msgstr "游戏/安装分区"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr "类型:"
msgid "German"
msgstr "德文"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "全局设置"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "主菜单"
@ -930,8 +1126,8 @@ msgstr "正在启动网络"
msgid "Insert Disk"
msgstr "插入光盘"
msgid "Insert a Wii Disc!"
msgstr "插入 Wii 光盘!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "安装"
@ -957,6 +1153,9 @@ msgstr "安装游戏"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,11 +1165,11 @@ msgstr "正在安装游戏:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgstr "问题管理 /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "看来你有一些能帮到我们的信息.请将这些信息发送给开发团队."
@ -1072,6 +1271,15 @@ msgstr "循环声音"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "主要测试员"
@ -1087,6 +1295,9 @@ msgstr "五月"
msgid "Messageboard Update"
msgstr "留言板更新"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "移动+视频"
@ -1156,8 +1367,8 @@ msgstr "找不到 WBFS 或 FAT/NTFS/EXT 分区"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "没有选择作弊码"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "无法读取数据."
@ -1171,6 +1382,9 @@ msgstr "未选择收藏."
msgid "No file missing!"
msgstr "没有文件缺少!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "一般"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "不是 Wii 的光盘"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "不是有效的URL"
@ -1207,9 +1421,15 @@ msgstr "不是有效的域名"
msgid "Not enough free memory."
msgstr "剩余内存不足."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "剩余空间不足!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "内存不足."
@ -1219,6 +1439,12 @@ msgstr "不需要"
msgid "Not supported format!"
msgstr "不支持的格式!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "十一月"
@ -1288,6 +1514,9 @@ msgstr "没有权限."
msgid "Pick from a list"
msgstr "从列表中选取"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "游戏计数"
@ -1303,6 +1532,9 @@ msgstr "播放上一曲"
msgid "Playing Music:"
msgstr "正在播放音乐:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "请等待..."
@ -1384,12 +1616,27 @@ msgstr "返回 Wii 主菜单"
msgid "Right"
msgstr "右"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "震动"
msgid "SChinese"
msgstr "简体中文"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "SFX 音量"
@ -1456,6 +1703,9 @@ msgstr "显示剩余空间"
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "关闭系统"
@ -1507,6 +1757,9 @@ msgstr "每个分割为4GB"
msgid "Standby"
msgstr "待机"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "成功"
@ -1525,6 +1778,9 @@ msgstr "升级成功!"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "更新成功.感谢www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "成功删除:"
@ -1555,16 +1811,28 @@ msgstr "TXT作弊码路径"
msgid "The .them file was not found in the zip."
msgstr "zip文件中没有找到.them文件"
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "已进入的目录不存在.你想要创建一个目录吗?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr "该IOS是BootMii IOS.如果你确认它不是BootMii并且安装了其
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "在titles列表中未找到该IOS. 如果你确认已安装则忽略该警告."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "剩余时间:"
@ -1604,6 +1875,9 @@ msgstr "系统频道"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "提示信息"
@ -1731,6 +2005,9 @@ msgstr "要删除这个游戏的什么:"
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi 功能"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "以及翻译人员的语言文件更新"
@ -1837,6 +2117,9 @@ msgstr "完成格式化!"
msgid "free"
msgstr "剩余"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "未设定"
@ -1846,6 +2129,18 @@ msgstr "的"
msgid "seconds left"
msgstr "剩余秒数"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "插入 Wii 光盘!"
#~ msgid "Issue manager /"
#~ msgstr "问题管理 /"
#~ msgid "No cheats were selected"
#~ msgstr "没有选择作弊码"
#~ msgid "Not a Wii Disc"
#~ msgstr "不是 Wii 的光盘"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> 删除 tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2011-07-25 16:40+0200\n"
"Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "Todos"
@ -109,6 +112,9 @@ msgstr "DOL Alternativo"
msgid "An example file was created here:"
msgstr "Un archivo de ejemplo fue creado aquí:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "Anti"
@ -121,6 +127,9 @@ msgstr "Aplicar"
msgid "Apr"
msgstr "Abr"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "¿Estás seguro de eliminar esta categoría?"
@ -130,6 +139,9 @@ msgstr "Estas seguro que quieres importar las categorías de juegos de GameTDB"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "¿Estás seguro de bloquear USB Loader GX?"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "¿Estás seguro de resetear?"
@ -139,6 +151,9 @@ msgstr "¿Estás seguro?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Ago"
@ -163,6 +178,18 @@ msgstr "Volver a HBC o Menú Wii"
msgid "Backgroundmusic"
msgstr "Música de fondo"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr "Basico"
@ -256,6 +283,12 @@ msgstr "Ambos"
msgid "Both Ports"
msgstr "Ambos Puertos"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "Caché de Títulos"
@ -279,6 +312,10 @@ msgstr "No se eliminó:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr "No se abrió el archivo"
@ -372,6 +409,18 @@ msgstr "Continuar?"
msgid "Controllevel"
msgstr "Control de Nivel"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Contraseña Correcta"
@ -391,12 +440,18 @@ msgstr "No se pudo extraer archivos para:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "No se pudo encontrar información del juego en wiitdb.xml."
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "¡No se pudo iniciar módulo DIP!"
msgid "Could not initialize network!"
msgstr "¡No se pudo iniciar la Red!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "¡No se pudo abrir el Disco!"
@ -433,9 +488,39 @@ msgstr "Personalizar Rutas"
msgid "Customs/Original"
msgstr "Artísticas/Originales"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "Ruta del DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "Iniciar Wiird pausado"
@ -469,6 +554,12 @@ msgstr "Borrar Imagen de Disco"
msgid "Delete category"
msgstr "Borrar categoría"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Diseño:"
@ -478,6 +569,9 @@ msgstr "Detalles"
msgid "Developed by"
msgstr "Desarrollado por"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "¡La carpeta no existe!"
@ -493,6 +587,9 @@ msgstr "Pred. Disco"
msgid "Disc Insert Detected"
msgstr "Detectado Disco Insertado"
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "GiraDiscos"
@ -502,6 +599,9 @@ msgstr "Mostrar"
msgid "Display as a carousel"
msgstr "Mostrar en carrusel"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Mostrar en rejilla"
@ -520,6 +620,21 @@ msgstr "¿Quieres aplicar este tema?"
msgid "Do you want to change language?"
msgstr "¿Quieres cambiar el idioma?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "¿Quieres descargar este Tema?"
@ -532,12 +647,18 @@ msgstr "¿Quieres extraer la partida?"
msgid "Do you want to format:"
msgstr "Quieres formatear:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "¿Quieres cargar el tema por defecto?"
msgid "Do you want to re-init network?"
msgstr "¿Quieres reiniciar la red?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "¿Quieres sincronizar el sector de información de espacio libre en todas las particiones FAT32?"
@ -583,6 +704,9 @@ msgstr "Descargando lista de páginas:"
msgid "Dump NAND to EmuNand"
msgstr "Volcar Nand a Nand emul."
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Holandés"
@ -626,6 +750,9 @@ msgstr "Error abriendo archivo descargado"
msgid "Error reading Disc"
msgstr "Error leyendo Disco"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "Error descargando archivo: %i"
@ -648,6 +775,9 @@ msgstr "Error escribiendo los datos."
msgid "Error:"
msgstr ""
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "A ocurrido un error."
@ -663,6 +793,18 @@ msgstr "¿Salir a dónde?"
msgid "Export All Saves to EmuNand"
msgstr "Extraer partidas a Nand emul."
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "Extraer partida a Nand emulada"
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr "Fallo"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "No se ha podido formatear"
@ -708,6 +853,9 @@ msgstr "Fallo al leer cabecera wad "
msgid "Failed updating"
msgstr "No se ha podido actualizar"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "Características"
@ -775,6 +923,24 @@ msgstr "Formateando, por favor espera..."
msgid "Found missing images."
msgstr "Se encontraron imágenes que faltan."
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Espacio Libre"
@ -802,9 +968,18 @@ msgstr "Apagado completo"
msgid "GAMEID_Gamename"
msgstr "IDdelJuego_NombreDelJuego"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Ruta de Trucos GCT"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "ID del Juego"
@ -853,12 +1034,18 @@ msgstr "Volumen sonido del Juego"
msgid "Game Split Size"
msgstr "Separación WBFS"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "El juego ya estaba instalado:"
msgid "Game/Install Partition"
msgstr "Partición de Juegos"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "Ruta GameDTB"
@ -877,9 +1064,18 @@ msgstr "Género:"
msgid "German"
msgstr "Alemán"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "Configuración Global"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Menú HOME"
@ -930,8 +1126,8 @@ msgstr "Iniciando la Red"
msgid "Insert Disk"
msgstr "Inserta el Disco"
msgid "Insert a Wii Disc!"
msgstr "¡Inserta un Disco Wii!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Instalar"
@ -957,6 +1153,9 @@ msgstr "Instalar un juego"
msgid "Install finished"
msgstr "Instalación terminada"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr "Instalando Contenido"
@ -966,12 +1165,12 @@ msgstr "Instalando juego:"
msgid "Installing title..."
msgstr "Instalando Título"
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Invalid wad file."
msgstr "Archivo WAD no valido"
msgid "Issue manager /"
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "Parece que tienes alguna información que puede ser útil para nosotros. Por favor envía esta información al equipo desarrollador."
@ -1072,6 +1271,15 @@ msgstr "Bucle de sonido"
msgid "Main DOL"
msgstr "DOL Principal"
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "Probador principal:"
@ -1087,6 +1295,9 @@ msgstr ""
msgid "Messageboard Update"
msgstr "Actualizar Tablón Wii"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "Vídeo Motion+"
@ -1156,8 +1367,8 @@ msgstr "Partición WBFS o FAT/NTFS/EXT no encontrada"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "No se encontró el archivo Wiinnertag.xml. ¿Quieres crear un archivo de ejemplo?"
msgid "No cheats were selected"
msgstr "No se seleccionaron trucos"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "No se dispone de datos para leer."
@ -1171,6 +1382,9 @@ msgstr "Ningún favorito seleccionado."
msgid "No file missing!"
msgstr "¡No faltan archivos!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr "No hay archivos de idioma en tus dispositivos, ¿quieres descargar nuevos archivos de idioma?"
@ -1192,8 +1406,8 @@ msgstr ""
msgid "Not Initialized"
msgstr "No Iniciado"
msgid "Not a Wii Disc"
msgstr "No es un Disco Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "URL no válida"
@ -1207,9 +1421,15 @@ msgstr "Dominio no válido"
msgid "Not enough free memory."
msgstr "¡No hay suficiente memoria libre!"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "¡No hay suficiente espacio libre!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "No hay suficiente memoria."
@ -1219,6 +1439,12 @@ msgstr "No requerido"
msgid "Not supported format!"
msgstr "Formato no soportado."
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr "Permiso denegado."
msgid "Pick from a list"
msgstr "Elegir de una lista"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Partidas"
@ -1303,6 +1532,9 @@ msgstr "Oír Anterior"
msgid "Playing Music:"
msgstr "Reproducción Musical:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Por favor, espera..."
@ -1384,12 +1616,27 @@ msgstr "Volver a Menú Wii"
msgid "Right"
msgstr "Derecha"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibración"
msgid "SChinese"
msgstr "Chino S."
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Volumen de los Efectos"
@ -1456,6 +1703,9 @@ msgstr "Mostrar Espacio Libre"
msgid "Show Play Count"
msgstr "Mostrar núm. jugados"
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Apagar Sistema"
@ -1507,6 +1757,9 @@ msgstr "Separar cada 4GB"
msgid "Standby"
msgstr "En espera"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Conseguido"
@ -1525,6 +1778,9 @@ msgstr "Actualización correcta"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "Actualización correcta gracias a www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Borrado correctamente:"
@ -1555,17 +1811,29 @@ msgstr "Ruta de Trucos TXT"
msgid "The .them file was not found in the zip."
msgstr "El archivo .them no se encontró en el zip."
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "La carpeta especificada no existe. ¿Quieres crearla?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "Los archivos se extraeran en la ruta de tu Nand emulada. ATENCION: los archivos existentes seran sobreescritos"
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "La partida guardada se extraerá en la ruta de tu Nand emulada"
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "Las partidas guardadas se extraeran en la ruta de tu Nand emulada. ATENCION: las partidas existentes seran sobreescritas"
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "Se instaló el archivo wad"
@ -1595,6 +1863,9 @@ msgstr "Este IOS es el ios de BootMii. Si estás seguro de que no está BootMii
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "No se encontró este IOS en la lista de títulos. Si estás seguro de que lo tienes instalado, ignora esta advertencia."
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Quedan:"
@ -1604,6 +1875,9 @@ msgstr "Lanzador de Canales"
msgid "Titles from GameTDB"
msgstr "Titulos de GameTDB"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Descripción"
@ -1731,6 +2005,9 @@ msgstr "Qué se debería borrar para este juego:"
msgid "What to extract from NAND?"
msgstr "¿Que Extraer de la Nand?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "Características WiFi"
@ -1792,6 +2069,9 @@ msgstr "Puedes seleccionar o formatear una particón o usar el modo de carga de
msgid "You cannot delete this category."
msgstr "No puedes borrar esta categoría."
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "y traductores por los archivos de idiomas"
@ -1837,6 +2117,9 @@ msgstr "¡formateado!"
msgid "free"
msgstr "libres"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "sin contraseña"
@ -1846,6 +2129,21 @@ msgstr "de"
msgid "seconds left"
msgstr "segundos restantes"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "¡Inserta un Disco Wii!"
#~ msgid "No cheats were selected"
#~ msgstr "No se seleccionaron trucos"
#~ msgid "Not a Wii Disc"
#~ msgstr "No es un Disco Wii"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "Los archivos se extraeran en la ruta de tu Nand emulada. ATENCION: los archivos existentes seran sobreescritos"
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "Las partidas guardadas se extraeran en la ruta de tu Nand emulada. ATENCION: las partidas existentes seran sobreescritas"
#~ msgid "Extracting Nand files:"
#~ msgstr "Extrayendo archivos de Nand"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2010-01-19 17:39+0200\n"
"Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Alternativ DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "Apr"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "Är du säker?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr ""
@ -163,6 +178,18 @@ msgstr "Tillbaka till HBC eller Wii-Menyn"
msgid "Backgroundmusic"
msgstr "Bakgrundsmusik"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "Båda"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "Kunde inte radera:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Kontrollnivå"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Rätt lösenord"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "Kunde inte starta DIP-modul!"
msgid "Could not initialize network!"
msgstr "Kunde inte starta nätverket!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Kunde inte öppna skivan"
@ -433,9 +488,39 @@ msgstr "Anpassade sökvägar"
msgid "Customs/Original"
msgstr "Anpassade/Original"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL-sökväg"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Radera skivbilder"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr ""
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Utvecklat av"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Katalog existerar inte!"
@ -493,6 +587,9 @@ msgstr "Skivans standard"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "Vänd Skiva"
@ -502,6 +599,9 @@ msgstr "Visning"
msgid "Display as a carousel"
msgstr "Visa som en karusell"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Visa som ett rutnät"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Vill du byta språk?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Vill du ladda ner detta tema?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Vill du formatera:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Nederländska"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "Fel vid läsning av skiva"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "Fel:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Formatering misslyckad"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Formaterar, Vänta..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Ledigt utrymme"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "Fusksökväg"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Spel-ID"
@ -853,12 +1034,18 @@ msgstr "Spel ljuds volym"
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Spelet är redan installerat:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Tyska"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "Hemmeny"
@ -930,8 +1126,8 @@ msgstr "Startar nätverk"
msgid "Insert Disk"
msgstr "Sätt i en skiva"
msgid "Insert a Wii Disc!"
msgstr "Sätt i en Wii-skiva!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Installera"
@ -957,6 +1153,9 @@ msgstr "Installera ett spel"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Installerar spel:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "Loopa ljudet"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "Maj"
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "Inga fusk har valda"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Ingen data kunde läsas."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "Inga filer saknas!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "Vanlig"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Inte en Wii-skiva"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "Inte tillräckligt med ledigt minne."
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Inte tillräckligt med ledigt utrymme!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "Formatet stöds inte!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr ""
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "Välj från en lista"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Spelat"
@ -1303,6 +1532,9 @@ msgstr "Spela förgående"
msgid "Playing Music:"
msgstr "Spela musik:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Vänligen vänta..."
@ -1384,12 +1616,27 @@ msgstr "Återvänd till Wii-menyn"
msgid "Right"
msgstr "Höger"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Vibration"
msgid "SChinese"
msgstr "SKinesiska"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "SFX Volym"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Stäng av helt"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Lyckat"
@ -1525,6 +1778,9 @@ msgstr "Uppdateringen lyckades"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Lyckad radering av:"
@ -1555,16 +1811,28 @@ msgstr "Sökväg till txt koder"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Den angivna katalogen existerar inte. Vill du skapa den?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Tid kvar:"
@ -1604,6 +1875,9 @@ msgstr "Titel startare"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Verktygstips"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi funktioner"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "formaterad!"
msgid "free"
msgstr "ledigt"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "Inget satt"
@ -1846,6 +2129,15 @@ msgstr "av"
msgid "seconds left"
msgstr "sekunder kvar"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Sätt i en Wii-skiva!"
#~ msgid "No cheats were selected"
#~ msgstr "Inga fusk har valda"
#~ msgid "Not a Wii Disc"
#~ msgstr "Inte en Wii-skiva"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Raderar biljetter..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2010-02-15 21:00+0800\n"
"Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr "全部"
@ -109,6 +112,9 @@ msgstr "可選擇Alt DOL檔"
msgid "An example file was created here:"
msgstr "在這建立範本檔:"
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "防止"
@ -121,6 +127,9 @@ msgstr "套用"
msgid "Apr"
msgstr "四月"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr "確定要刪除此類別嗎?"
@ -130,6 +139,9 @@ msgstr "確定要從GameTDB匯入遊戲類別嗎"
msgid "Are you sure you want to lock USB Loader GX?"
msgstr "確定要鎖上 USB Loader GX嗎"
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr "確定要重新啟動嗎?"
@ -139,6 +151,9 @@ msgstr "確定?"
msgid "Aspect Ratio"
msgstr "圖像縱橫比"
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "八月"
@ -163,6 +178,18 @@ msgstr "返回 HBC 或 Wii 系統選單"
msgid "Backgroundmusic"
msgstr "背景音樂"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr "開始"
@ -256,6 +283,12 @@ msgstr "全部"
msgid "Both Ports"
msgstr "兩個連接埠"
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr "遊戲標題緩衝"
@ -279,6 +312,10 @@ msgstr "無法刪除:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr "無法開啟檔案: %s"
@ -372,6 +409,18 @@ msgstr "繼續嗎?"
msgid "Controllevel"
msgstr "遊戲分級"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "密碼正確"
@ -391,12 +440,18 @@ msgstr "無法解壓縮檔案對:"
msgid "Could not find info for this game in the wiitdb.xml."
msgstr "無法從wiitdb.xml找到遊戲資訊。"
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "無法啟動 DIP 模組!"
msgid "Could not initialize network!"
msgstr "無法啟動網路!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "無法開啟光碟"
@ -433,9 +488,39 @@ msgstr "自訂路徑"
msgid "Customs/Original"
msgstr "自製/原始"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL 路徑"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr "偵錯器暫停啟動"
@ -469,6 +554,12 @@ msgstr "刪除光碟圖片"
msgid "Delete category"
msgstr "刪除類別"
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "設計者:"
@ -478,6 +569,9 @@ msgstr "詳細資訊"
msgid "Developed by"
msgstr "開發商"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "目錄不存在"
@ -493,6 +587,9 @@ msgstr "光碟預設"
msgid "Disc Insert Detected"
msgstr "光碟插入檢查"
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "光碟滑動"
@ -502,6 +599,9 @@ msgstr "顯示"
msgid "Display as a carousel"
msgstr "轉盤模式"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "封面牆模式"
@ -520,6 +620,21 @@ msgstr "要套用這個佈景主題嗎?"
msgid "Do you want to change language?"
msgstr "要變更語言嗎?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "是否要下載這個佈景主題嗎?"
@ -532,12 +647,18 @@ msgstr "是否要提取這遊戲存檔嗎?"
msgid "Do you want to format:"
msgstr "是否格式化:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr "是否要載入預設佈景主題嗎?"
msgid "Do you want to re-init network?"
msgstr "是否要重新初始化網路?"
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr "是否要同步所有FAT32磁區可用空間資訊"
@ -583,6 +704,9 @@ msgstr "下載頁面清單:"
msgid "Dump NAND to EmuNand"
msgstr "轉儲 NAND 到 模擬Nand"
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "荷蘭文"
@ -626,6 +750,9 @@ msgstr "開啟下載檔案錯誤"
msgid "Error reading Disc"
msgstr "讀取光碟錯誤"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr "下載檔案時產生錯誤: %i"
@ -648,6 +775,9 @@ msgstr "寫入資料錯誤。"
msgid "Error:"
msgstr "錯誤:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr "發生錯誤。"
@ -663,6 +793,18 @@ msgstr "退出到?"
msgid "Export All Saves to EmuNand"
msgstr "輸出所有存檔到模擬Nand"
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr "提取存檔到模擬Nand"
@ -681,6 +823,9 @@ msgstr "提取 nand 檔案:"
msgid "Failed"
msgstr "失敗"
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "格式化失敗"
@ -708,6 +853,9 @@ msgstr "讀取 wad 檔資訊失敗。"
msgid "Failed updating"
msgstr "更新失敗"
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr "功能"
@ -775,6 +923,24 @@ msgstr "格式化中, 請稍候..."
msgid "Found missing images."
msgstr "找到缺少圖片。"
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "剩餘空間"
@ -802,9 +968,18 @@ msgstr "關機"
msgid "GAMEID_Gamename"
msgstr "GAMEID_遊戲名稱"
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "金手指檔案路徑"
@ -820,6 +995,12 @@ msgstr "GXDraw"
msgid "GXFlush"
msgstr "GXFlush"
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "遊戲 ID"
@ -853,12 +1034,18 @@ msgstr "遊戲聲音音量"
msgid "Game Split Size"
msgstr "遊戲分割大小"
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "已安裝過遊戲:"
msgid "Game/Install Partition"
msgstr "遊戲/安裝磁區"
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr "GameTDB 路徑"
@ -877,9 +1064,18 @@ msgstr "類型:"
msgid "German"
msgstr "德文"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr "整體設定"
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "主選單"
@ -930,8 +1126,8 @@ msgstr "正在啟動網路"
msgid "Insert Disk"
msgstr "插入光碟"
msgid "Insert a Wii Disc!"
msgstr "插入 Wii 光碟!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "安裝"
@ -957,6 +1153,9 @@ msgstr "安裝遊戲"
msgid "Install finished"
msgstr "已安裝完成"
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr "正在安裝程式主體"
@ -966,12 +1165,12 @@ msgstr "正在安裝遊戲:"
msgid "Installing title..."
msgstr "正在安裝 title..."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Invalid wad file."
msgstr "無效的 wad 檔。"
msgid "Issue manager /"
msgstr "問題管理者 /"
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
msgstr "請將這些訊息傳送至開發小組以幫助本軟體開發"
@ -1072,6 +1271,15 @@ msgstr "重複音樂"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr "主要測試者:"
@ -1087,6 +1295,9 @@ msgstr "五月"
msgid "Messageboard Update"
msgstr "留言板更新"
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr "移動+視訊"
@ -1156,8 +1367,8 @@ msgstr "沒找到WBFS 或 FAT/NTFS/EXT磁區"
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr "在config路徑沒找到Wiinnertag.xml檔。是否要建立一個範本檔"
msgid "No cheats were selected"
msgstr "沒有選擇金手指"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "無法讀取數據"
@ -1171,6 +1382,9 @@ msgstr "沒有選取最愛。"
msgid "No file missing!"
msgstr "沒有檔案缺少!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr "你的儲存裝置沒有語言檔可供更新!是否要下載新的語言檔?"
@ -1192,8 +1406,8 @@ msgstr "一般"
msgid "Not Initialized"
msgstr "尚未初始化"
msgid "Not a Wii Disc"
msgstr "不是 Wii 的光碟"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr "不是有效的網址"
@ -1207,9 +1421,15 @@ msgstr "不是有效的網域"
msgid "Not enough free memory."
msgstr "剩餘記憶體不足。"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "剩餘空間不足!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr "記憶體不足。"
@ -1219,6 +1439,12 @@ msgstr "不需要"
msgid "Not supported format!"
msgstr "未支援的格式!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "十一月"
@ -1288,6 +1514,9 @@ msgstr "沒有權限。"
msgid "Pick from a list"
msgstr "從清單中選取"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "執行次數"
@ -1303,6 +1532,9 @@ msgstr "執行上一個"
msgid "Playing Music:"
msgstr "播放音樂:"
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "請稍候..."
@ -1384,12 +1616,27 @@ msgstr "返回 Wii 系統選單"
msgid "Right"
msgstr "右"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "震動"
msgid "SChinese"
msgstr "簡體中文"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "音效音量"
@ -1456,6 +1703,9 @@ msgstr "顯示可用空間"
msgid "Show Play Count"
msgstr "顯示遊戲執行次數"
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "關閉系統"
@ -1507,6 +1757,9 @@ msgstr "每個分割為4GB"
msgid "Standby"
msgstr "待機"
msgid "Start"
msgstr ""
msgid "Success"
msgstr "成功"
@ -1525,6 +1778,9 @@ msgstr "更新已完成"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr "已更新成功,感謝 www.techjawa.com"
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "成功的刪除:"
@ -1555,17 +1811,29 @@ msgstr "TXT 金手指檔案路徑"
msgid "The .them file was not found in the zip."
msgstr "在zip中找不到 .them檔。"
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "所輸入的目錄不存在。是否要建立一個目錄嗎?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgstr "檔案將被提取到模擬 nand 路徑內。請注意:所有存在的檔案將被覆蓋。"
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr "遊戲存檔將被提取到模擬 nand 路徑內。"
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgstr "遊戲存檔將被提取到模擬 nand 路徑內。請注意:所有存在的存檔將被覆蓋。"
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
msgstr "wad檔已安裝"
@ -1595,6 +1863,9 @@ msgstr "這IOS是BootMii的ios。若你確定不是BootMii的IOS而你在這安
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr "標題清單找不到這IOS。若你確定已安裝它請忽略這警告。"
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "剩餘時間:"
@ -1604,6 +1875,9 @@ msgstr "系統頻道"
msgid "Titles from GameTDB"
msgstr "從GameTDB顯示遊戲名稱"
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "提示信息"
@ -1731,6 +2005,9 @@ msgstr "這遊戲title應刪除什麼"
msgid "What to extract from NAND?"
msgstr "從 NAND 提取什麼?"
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi功能設定"
@ -1792,6 +2069,9 @@ msgstr "你可選擇或格式化磁區或使用頻道 loader 模式。"
msgid "You cannot delete this category."
msgstr "無法刪除此類別。"
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr "及對所有語言檔更新的翻譯者"
@ -1837,6 +2117,9 @@ msgstr "完成格式化!"
msgid "free"
msgstr "剩餘"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "未設定"
@ -1846,6 +2129,24 @@ msgstr "的"
msgid "seconds left"
msgstr "剩餘秒數"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "插入 Wii 光碟!"
#~ msgid "Issue manager /"
#~ msgstr "問題管理者 /"
#~ msgid "No cheats were selected"
#~ msgstr "沒有選擇金手指"
#~ msgid "Not a Wii Disc"
#~ msgstr "不是 Wii 的光碟"
#~ msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
#~ msgstr "檔案將被提取到模擬 nand 路徑內。請注意:所有存在的檔案將被覆蓋。"
#~ msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
#~ msgstr "遊戲存檔將被提取到模擬 nand 路徑內。請注意:所有存在的存檔將被覆蓋。"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> 刪除 tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "เปลี่ยน DOL "
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr "ต้าน"
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "เมษ."
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "แน่ใจหรือไม่ ?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "สค."
@ -163,6 +178,18 @@ msgstr "กลับไป HBC หรือ เมนู Wii"
msgid "Backgroundmusic"
msgstr "ดนตรีเบื้องหลัง"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "ทั้งคู่"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "ไม่สามารถลบได้:"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "ระดับการควบคุม"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "รหัสผ่านถูกต้อง"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "ไม่สามารถเปิดใช้โมดูล DIP ได้ !"
msgid "Could not initialize network!"
msgstr "ไม่สามารถเชื่อมต่อกับเครือข่ายได้ !"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "เปิดจากแผ่นไม่ได้ !"
@ -433,9 +488,39 @@ msgstr "กำหนด ที่เก็บ"
msgid "Customs/Original"
msgstr "กำหนดเอง/ดั้งเดิม"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "ที่เก็บ DOL"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "ลบ ภาพแผ่น"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "ออกแบบ:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "พัฒนาโดย "
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "ไม่พบไดเรคทอรี่นี้ !"
@ -493,6 +587,9 @@ msgstr "ค่าตั้งต้นแผ่น"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "สลับด้านแผ่น"
@ -502,6 +599,9 @@ msgstr "การแสดงผล"
msgid "Display as a carousel"
msgstr "แสดงผลแบบ ม้าหมุน"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "แสดงผลแบบ ตาราง"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "ต้องการจะเปลี่ยนภาษา ?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "ต้องการดาวน์โหลดธีมนี้ ?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "ต้องการฟอร์แมต:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "เนเธอร์แลนด์"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "อ่านแผ่นไม่ได้"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "ผิดพลาด:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "ฟอร์แมตไม่ได้"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "กำลังฟอร์แมต,รอสักครู่..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "พื้นที่ว่าง"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "ที่เก็บ สูตรโกง"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "เกมส์ ID"
@ -853,12 +1034,18 @@ msgstr "ระดับเสียงในเกมส์"
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "เกมส์นี้ถูกติดตั้งอยู่แล้ว:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "เยอรมัน"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "เมนู HOME"
@ -930,8 +1126,8 @@ msgstr "เชื่อมต่อเครือข่าย"
msgid "Insert Disk"
msgstr "ใส่แผ่น"
msgid "Insert a Wii Disc!"
msgstr "ใส่แผ่น Wii !"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "ติดตั้ง"
@ -957,6 +1153,9 @@ msgstr "ติดตั้งเกมส์"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "กำลังติดตั้งเกมส์:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "เล่นเสียงซ้ำ"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr "พค."
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "ไม่ได้เลือกการโกงเกมส์ไว้"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "ไม่มีข้อมูลที่อ่านไม่ได้"
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "ไม่มีไฟล์ที่หายไป"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr "ปกติ"
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "ไม่ใช่แผ่นเกมส์ Wii"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "มีหน่วยความจำเหลือไม่พอ"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "มีที่ว่างเหลือไม่พอ !"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "ไม่รองรับรูปแบบไฟล์นี้"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "พย."
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "เลือกจากรายการ"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "จำนวนที่เล่น"
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "รอสักครู่"
@ -1384,12 +1616,27 @@ msgstr "กลับไปที่เมนู Wii"
msgid "Right"
msgstr "ขวา"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "สั่น"
msgid "SChinese"
msgstr "จีน"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "ความดังของ SFX"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "ปิดระบบ"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "สำเร็จ"
@ -1525,6 +1778,9 @@ msgstr "อัพเดทสำเร็จ"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "ลบสำเร็จ:"
@ -1555,16 +1811,28 @@ msgstr "ที่เก็บ TXTCheatcodes"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "ไม่พบไดเรคทอรี่นี้ ต้องการสร้างใหม่รึไม่ ?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "เหลือเวลาอีก:"
@ -1604,6 +1875,9 @@ msgstr "Title Launcher"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "คำแนะนำ"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "ความสามารถของ Wi Fi"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "ฟอร์แมต!"
msgid "free"
msgstr "ว่างอยู่"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "ไม่ได้กำหนด"
@ -1846,6 +2129,15 @@ msgstr "จาก"
msgid "seconds left"
msgstr "วินาทีที่เหลือ"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "ใส่แผ่น Wii !"
#~ msgid "No cheats were selected"
#~ msgstr "ไม่ได้เลือกการโกงเกมส์ไว้"
#~ msgid "Not a Wii Disc"
#~ msgstr "ไม่ใช่แผ่นเกมส์ Wii"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> ลบ Tickets..."

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-29 20:42+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n"
@ -88,6 +88,9 @@ msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "After zoom"
msgstr ""
msgid "All"
msgstr ""
@ -109,6 +112,9 @@ msgstr "Alternatif DOL"
msgid "An example file was created here:"
msgstr ""
msgid "Animation Start"
msgstr ""
msgid "Anti"
msgstr ""
@ -121,6 +127,9 @@ msgstr ""
msgid "Apr"
msgstr "Nis"
msgid "Are you really sure you want to delete all selected games from the SD card?"
msgstr ""
msgid "Are you sure you want to delete this category?"
msgstr ""
@ -130,6 +139,9 @@ msgstr ""
msgid "Are you sure you want to lock USB Loader GX?"
msgstr ""
msgid "Are you sure you want to remount SD?"
msgstr ""
msgid "Are you sure you want to reset?"
msgstr ""
@ -139,6 +151,9 @@ msgstr "Emin misiniz?"
msgid "Aspect Ratio"
msgstr ""
msgid "Attention!"
msgstr ""
msgid "Aug"
msgstr "Ağu"
@ -163,6 +178,18 @@ msgstr "HBC veya Wii Menüye dönüş"
msgid "Backgroundmusic"
msgstr "Arkaplan müziği"
msgid "Banner Animation"
msgstr ""
msgid "Banner Animation Settings"
msgstr ""
msgid "Banner grid layout is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Banner window is only available with AHBPROT! Please consider installing new HBC version."
msgstr ""
msgid "Beginning"
msgstr ""
@ -256,6 +283,12 @@ msgstr "İkisi de"
msgid "Both Ports"
msgstr ""
msgid "Cache BNR Files"
msgstr ""
msgid "Cache BNR Files Path"
msgstr ""
msgid "Cache Titles"
msgstr ""
@ -279,6 +312,10 @@ msgstr "Silinemiyor"
msgid "Can't mount or unknown disc format."
msgstr ""
#, c-format
msgid "Can't open file for write: %s"
msgstr ""
#, c-format
msgid "Can't open file: %s"
msgstr ""
@ -372,6 +409,18 @@ msgstr ""
msgid "Controllevel"
msgstr "Kontrol seviyesi"
msgid "Copy"
msgstr ""
msgid "Copying Canceled"
msgstr ""
msgid "Copying GC game..."
msgstr ""
msgid "Copying files..."
msgstr ""
msgid "Correct Password"
msgstr "Doğru Şifre"
@ -391,12 +440,18 @@ msgstr ""
msgid "Could not find info for this game in the wiitdb.xml."
msgstr ""
msgid "Could not get free device space for game."
msgstr ""
msgid "Could not initialize DIP module!"
msgstr "DIP modülü başlatılamadı!"
msgid "Could not initialize network!"
msgstr "Ağa bağlanılamadı!"
msgid "Could not initialize network, time out!"
msgstr ""
msgid "Could not open Disc"
msgstr "Disk açılamadı"
@ -433,9 +488,39 @@ msgstr "Kişisel Yollar"
msgid "Customs/Original"
msgstr "Kişisel/Orjinal"
msgid "DML Auto"
msgstr ""
msgid "DML Debug"
msgstr ""
msgid "DML LED Activity"
msgstr ""
msgid "DML NMM Mode"
msgstr ""
msgid "DML No Disc"
msgstr ""
msgid "DML None"
msgstr ""
msgid "DML PAD Hook"
msgstr ""
msgid "DML Video Mode"
msgstr ""
msgid "DOL Path"
msgstr "DOL Yolu"
msgid "Debug"
msgstr ""
msgid "Debug Wait"
msgstr ""
msgid "Debugger Paused Start"
msgstr ""
@ -469,6 +554,12 @@ msgstr "Disk Görselini Sil"
msgid "Delete category"
msgstr ""
msgid "Deleting directories..."
msgstr ""
msgid "Deleting files..."
msgstr ""
msgid "Design:"
msgstr "Tasarım:"
@ -478,6 +569,9 @@ msgstr ""
msgid "Developed by"
msgstr "Geliştirme"
msgid "Developer:"
msgstr ""
msgid "Directory does not exist!"
msgstr "Klasör bulunamadı!"
@ -493,6 +587,9 @@ msgstr "Disk Varsayılanı"
msgid "Disc Insert Detected"
msgstr ""
msgid "Disc read error."
msgstr ""
msgid "DiskFlip"
msgstr "DiskÇevir"
@ -502,6 +599,9 @@ msgstr "Görüntü"
msgid "Display as a carousel"
msgstr "Dönel görünüm"
msgid "Display as a channel grid"
msgstr ""
msgid "Display as a grid"
msgstr "Izgara görünümü"
@ -520,6 +620,21 @@ msgstr ""
msgid "Do you want to change language?"
msgstr "Dili değiştirmek istiyor musunuz?"
msgid "Do you want to continue with next game?"
msgstr ""
msgid "Do you want to copy now?"
msgstr ""
msgid "Do you want to copy the game to SD or delete a game on SD?"
msgstr ""
msgid "Do you want to delete a game on SD?"
msgstr ""
msgid "Do you want to discart changes?"
msgstr ""
msgid "Do you want to download this theme?"
msgstr "Bu temayı indirmek istiyor musunuz?"
@ -532,12 +647,18 @@ msgstr ""
msgid "Do you want to format:"
msgstr "Formatlamak istiyor musunuz:"
msgid "Do you want to install selected games?"
msgstr ""
msgid "Do you want to load the default theme?"
msgstr ""
msgid "Do you want to re-init network?"
msgstr ""
msgid "Do you want to start the game now?"
msgstr ""
msgid "Do you want to sync free space info sector on all FAT32 partitions?"
msgstr ""
@ -583,6 +704,9 @@ msgstr ""
msgid "Dump NAND to EmuNand"
msgstr ""
msgid "During zoom"
msgstr ""
msgid "Dutch"
msgstr "Flaman"
@ -626,6 +750,9 @@ msgstr ""
msgid "Error reading Disc"
msgstr "Disk Okuma Hatası"
msgid "Error reading disc"
msgstr ""
#, c-format
msgid "Error when downloading file: %i"
msgstr ""
@ -648,6 +775,9 @@ msgstr ""
msgid "Error:"
msgstr "Hata:"
msgid "Error: Not enough space on SD."
msgstr ""
msgid "Errors occured."
msgstr ""
@ -663,6 +793,18 @@ msgstr ""
msgid "Export All Saves to EmuNand"
msgstr ""
msgid "Export Miis to EmuNand"
msgstr ""
msgid "Export SYSCONF to EmuNand"
msgstr ""
msgid "Extract Miis to the Emu NAND?"
msgstr ""
msgid "Extract SYSCONF to the Emu NAND?"
msgstr ""
msgid "Extract Save to EmuNand"
msgstr ""
@ -681,6 +823,9 @@ msgstr ""
msgid "Failed"
msgstr ""
msgid "Failed copying file"
msgstr ""
msgid "Failed formating"
msgstr "Biçimlendirme başarısız"
@ -708,6 +853,9 @@ msgstr ""
msgid "Failed updating"
msgstr ""
msgid "Favorite Level"
msgstr ""
msgid "Features"
msgstr ""
@ -775,6 +923,24 @@ msgstr "Biçimlendiriliyor, bekleyiniz..."
msgid "Found missing images."
msgstr ""
msgid "Frame"
msgstr ""
msgid "Frame Projection Height"
msgstr ""
msgid "Frame Projection Width"
msgstr ""
msgid "Frame Projection X-Offset"
msgstr ""
msgid "Frame Projection Y-Offset"
msgstr ""
msgid "Frames"
msgstr ""
msgid "Free Space"
msgstr "Boş Yer"
@ -802,9 +968,18 @@ msgstr ""
msgid "GAMEID_Gamename"
msgstr ""
msgid "GC Banner Scale"
msgstr ""
msgid "GC Games"
msgstr ""
msgid "GC Install 32K Aligned"
msgstr ""
msgid "GC Install Compressed"
msgstr ""
msgid "GCT Cheatcodes Path"
msgstr "GCT Hile Yolu"
@ -820,6 +995,12 @@ msgstr ""
msgid "GXFlush"
msgstr ""
msgid "Game Cube Games Delete"
msgstr ""
msgid "Game Cube Install Menu"
msgstr ""
msgid "Game ID"
msgstr "Oyun ID"
@ -853,12 +1034,18 @@ msgstr "Oyun Ses Düzeyi"
msgid "Game Split Size"
msgstr ""
msgid "Game Window Mode"
msgstr ""
msgid "Game is already installed:"
msgstr "Oyun zaten kurulu:"
msgid "Game/Install Partition"
msgstr ""
msgid "GameCube"
msgstr ""
msgid "GameTDB Path"
msgstr ""
@ -877,9 +1064,18 @@ msgstr ""
msgid "German"
msgstr "Almanca"
msgid "Getting file list..."
msgstr ""
msgid "Getting game folder size..."
msgstr ""
msgid "Global Settings"
msgstr ""
msgid "Grid Scroll Speed"
msgstr ""
msgid "HOME Menu"
msgstr "HOME Menü"
@ -930,8 +1126,8 @@ msgstr "Ağa Bağlanıyor"
msgid "Insert Disk"
msgstr "Diski Takın"
msgid "Insert a Wii Disc!"
msgstr "Bir Wii Diski Takın!"
msgid "Insert a Wii or a Game Cube Disc!"
msgstr ""
msgid "Install"
msgstr "Kur"
@ -957,6 +1153,9 @@ msgstr "Oyun kur"
msgid "Install finished"
msgstr ""
msgid "Installing Game Cube Game..."
msgstr ""
msgid "Installing content"
msgstr ""
@ -966,10 +1165,10 @@ msgstr "Kurulan oyun:"
msgid "Installing title..."
msgstr ""
msgid "Invalid wad file."
msgid "Invalid IOS number entered. Number must be -1 for inherit or 200 - 255."
msgstr ""
msgid "Issue manager /"
msgid "Invalid wad file."
msgstr ""
msgid "It seems that you have some information that will be helpful to us. Please pass this information along to the DEV team."
@ -1072,6 +1271,15 @@ msgstr "Döngüdeki Ses"
msgid "Main DOL"
msgstr ""
msgid "Main GameCube Games Path"
msgstr ""
msgid "Main GameCube Path"
msgstr ""
msgid "Main Path"
msgstr ""
msgid "Main tester:"
msgstr ""
@ -1087,6 +1295,9 @@ msgstr ""
msgid "Messageboard Update"
msgstr ""
msgid "Mixed"
msgstr ""
msgid "Motion+ Video"
msgstr ""
@ -1156,8 +1367,8 @@ msgstr ""
msgid "No Wiinnertag.xml found in the config path. Do you want an example file created?"
msgstr ""
msgid "No cheats were selected"
msgstr "Hile seçilmedi"
msgid "No cheats were selected! Should the GCT file be deleted?"
msgstr ""
msgid "No data could be read."
msgstr "Hiç veri okunamadı."
@ -1171,6 +1382,9 @@ msgstr ""
msgid "No file missing!"
msgstr "Kayıp dosya yok!"
msgid "No games found on the disc"
msgstr ""
msgid "No language files to update on your devices! Do you want to download new language files?"
msgstr ""
@ -1192,8 +1406,8 @@ msgstr ""
msgid "Not Initialized"
msgstr ""
msgid "Not a Wii Disc"
msgstr "Wii Diski Değil"
msgid "Not a Wii or a Game Cube Disc"
msgstr ""
msgid "Not a valid URL"
msgstr ""
@ -1207,9 +1421,15 @@ msgstr ""
msgid "Not enough free memory."
msgstr "Yeterli boş hafıza yok"
msgid "Not enough free space on device."
msgstr ""
msgid "Not enough free space!"
msgstr "Yeterli boş yer yok!"
msgid "Not enough memory for FST."
msgstr ""
msgid "Not enough memory."
msgstr ""
@ -1219,6 +1439,12 @@ msgstr ""
msgid "Not supported format!"
msgstr "Desteklenmeyen format!"
msgid "Nothing selected to delete."
msgstr ""
msgid "Nothing selected to install."
msgstr ""
msgid "Nov"
msgstr "Kas"
@ -1288,6 +1514,9 @@ msgstr ""
msgid "Pick from a list"
msgstr "Listeden seç"
msgid "Pixels"
msgstr ""
msgid "Play Count"
msgstr "Oynama Sayısı"
@ -1303,6 +1532,9 @@ msgstr ""
msgid "Playing Music:"
msgstr ""
msgid "Please wait"
msgstr ""
msgid "Please wait..."
msgstr "Lütfen bekleyin.."
@ -1384,12 +1616,27 @@ msgstr "Wii Menü ye Dön"
msgid "Right"
msgstr "Sağ"
msgid "Rotating Disc"
msgstr ""
msgid "Rumble"
msgstr "Titreşim"
msgid "SChinese"
msgstr "Basitleştirilmis Çince"
msgid "SD Card could not be accessed."
msgstr ""
msgid "SD GameCube Games Path"
msgstr ""
msgid "SD GameCube Path"
msgstr ""
msgid "SD Path"
msgstr ""
msgid "SFX Volume"
msgstr "Efekt Seviyesi"
@ -1456,6 +1703,9 @@ msgstr ""
msgid "Show Play Count"
msgstr ""
msgid "Show SD"
msgstr ""
msgid "Shutdown System"
msgstr "Sistemi Kapat"
@ -1507,6 +1757,9 @@ msgstr ""
msgid "Standby"
msgstr ""
msgid "Start"
msgstr ""
msgid "Success"
msgstr "Başarılı"
@ -1525,6 +1778,9 @@ msgstr "Başarıyla Güncellendi"
msgid "Successfully Updated thanks to www.techjawa.com"
msgstr ""
msgid "Successfully copied"
msgstr ""
msgid "Successfully deleted:"
msgstr "Başarıyla silindi:"
@ -1555,16 +1811,28 @@ msgstr "TXT Hile Yolu"
msgid "The .them file was not found in the zip."
msgstr ""
msgid "The Miis will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The SYSCONF file will be extracted to your emu nand path and emu nand channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The application might crash if there is currently a read/write access to the SD card!"
msgstr ""
msgid "The entered directory does not exist. Would you like to create it?"
msgstr "Girilen klasör mevcut değil. Oluşturmak ister misin?"
msgid "The files will be extracted to your emu nand path. Attention: All existing files will be overwritten."
msgid "The files will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The game is on USB."
msgstr ""
msgid "The save game will be extracted to your emu nand path."
msgstr ""
msgid "The save games will be extracted to your emu nand path. Attention: All existing saves will be overwritten."
msgid "The save games will be extracted to your emu nand save and channel path. Attention: All existing files will be overwritten."
msgstr ""
msgid "The wad file was installed"
@ -1595,6 +1863,9 @@ msgstr ""
msgid "This IOS was not found on the titles list. If you are sure you have it installed than ignore this warning."
msgstr ""
msgid "This path must be on SD!"
msgstr ""
msgid "Time left:"
msgstr "Kalan zaman:"
@ -1604,6 +1875,9 @@ msgstr "Başlık Başlatıcı"
msgid "Titles from GameTDB"
msgstr ""
msgid "Tooltip Delay"
msgstr ""
msgid "Tooltips"
msgstr "Yardımlar"
@ -1731,6 +2005,9 @@ msgstr ""
msgid "What to extract from NAND?"
msgstr ""
msgid "Where should the game be installed to?"
msgstr ""
msgid "WiFi Features"
msgstr "WiFi Özellikleri"
@ -1792,6 +2069,9 @@ msgstr ""
msgid "You cannot delete this category."
msgstr ""
msgid "Zoom Duration (Speed)"
msgstr ""
msgid "and translators for language files updates"
msgstr ""
@ -1837,6 +2117,9 @@ msgstr "biçimlendirildi!"
msgid "free"
msgstr "boş"
msgid "ms"
msgstr ""
msgid "not set"
msgstr "ayarlanmadı"
@ -1846,6 +2129,15 @@ msgstr "./"
msgid "seconds left"
msgstr "saniye kaldı"
#~ msgid "Insert a Wii Disc!"
#~ msgstr "Bir Wii Diski Takın!"
#~ msgid "No cheats were selected"
#~ msgstr "Hile seçilmedi"
#~ msgid "Not a Wii Disc"
#~ msgstr "Wii Diski Değil"
#~ msgid ">> Deleting tickets..."
#~ msgstr ">> Biletler siliniyor"

View File

@ -44,13 +44,15 @@ SOURCES := source \
source/FileOperations \
source/ImageOperations \
source/SoundOperations \
source/SystemMenu \
source/utils \
source/utils/minizip \
source/usbloader/wbfs
DATA := data \
data/images \
data/fonts \
data/sounds
data/sounds \
data/binary
INCLUDES := source
#---------------------------------------------------------------------------------
@ -112,6 +114,7 @@ PCMFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.pcm)))
WAVFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.wav)))
DOLFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.dol)))
MP3FILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.mp3)))
BNRFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.bnr)))
#---------------------------------------------------------------------------------
# use CXX for linking C++ projects, CC for standard C
@ -127,7 +130,7 @@ export OFILES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
$(TTFFILES:.ttf=.ttf.o) $(PNGFILES:.png=.png.o) $(addsuffix .o,$(DOLFILES)) \
$(OGGFILES:.ogg=.ogg.o) $(PCMFILES:.pcm=.pcm.o) $(MP3FILES:.mp3=.mp3.o) \
$(WAVFILES:.wav=.wav.o) $(addsuffix .o,$(ELFFILES)) $(addsuffix .o,$(BINFILES)) \
$(CURDIR)/data/magic_patcher.o
$(BNRFILES:.bnr=.bnr.o) $(CURDIR)/data/magic_patcher.o
#---------------------------------------------------------------------------------
# build a list of include paths
@ -264,7 +267,9 @@ language: $(wildcard $(PROJECTDIR)/Languages/*.lang) $(wildcard $(PROJECTDIR)/Th
@echo $(notdir $<)
@bin2s -a 32 $< | $(AS) -o $(@)
%.bnr.o : %.bnr
@echo $(notdir $<)
@bin2s -a 32 $< | $(AS) -o $(@)
export PATH := $(PROJECTDIR)/gettext-bin:$(PATH)

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n"
"POT-Creation-Date: 2012-05-06 12:19+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@ -19,6 +19,21 @@ msgstr ""
"Theme-Team: Example\n"
"Theme-Version: Example\n"
msgid "r=237 g=237 b=237 a=255 - banner icon frame color"
msgstr ""
msgid "r=52 g=190 b=237 a=255 - banner icon highlite color"
msgstr ""
msgid "r=130 g=130 b=130 a=0 - banner icon frame edge tev color 1"
msgstr ""
msgid "r=180 g=180 b=180 a=255 - banner icon frame edge tev color 2"
msgstr ""
msgid "r=255 g=255 b=255 a=255 - banner icon frame edge tev color 3"
msgstr ""
msgid "right - checkbox browser scrollbar align hor"
msgstr ""
@ -97,6 +112,12 @@ msgstr ""
msgid "r=0 g=0 b=0 a=255 - keyboard key text color"
msgstr ""
msgid "r=0 g=0 b=0 a=255 - numpad text color"
msgstr ""
msgid "r=0 g=0 b=0 a=255 - numpad key text color"
msgstr ""
msgid "right - options browser scrollbar align hor"
msgstr ""
@ -208,91 +229,100 @@ msgstr ""
msgid "335 - clock pos y"
msgstr ""
msgid "188 - list layout favorite btn pos x"
msgid "168 - list layout favorite btn pos x"
msgstr ""
msgid "230 - list layout favorite btn pos x widescreen"
msgid "214 - list layout favorite btn pos x widescreen"
msgstr ""
msgid "13 - list layout favorite btn pos y"
msgstr ""
msgid "228 - list layout search btn pos x"
msgid "208 - list layout search btn pos x"
msgstr ""
msgid "262 - list layout search btn pos x widescreen"
msgid "246 - list layout search btn pos x widescreen"
msgstr ""
msgid "13 - list layout search btn pos y"
msgstr ""
msgid "268 - list layout abc/sort btn pos x"
msgid "248 - list layout abc/sort btn pos x"
msgstr ""
msgid "294 - list layout abc/sort btn pos x widescreen"
msgid "278 - list layout abc/sort btn pos x widescreen"
msgstr ""
msgid "13 - list layout abc/sort btn pos y"
msgstr ""
msgid "308 - list layout loadermode btn pos x"
msgid "288 - list layout loadermode btn pos x"
msgstr ""
msgid "326 - list layout loadermode btn pos x widescreen"
msgid "310 - list layout loadermode btn pos x widescreen"
msgstr ""
msgid "13 - list layout loadermode btn pos y"
msgstr ""
msgid "348 - list layout category btn pos x"
msgid "328 - list layout category btn pos x"
msgstr ""
msgid "358 - list layout category btn pos x widescreen"
msgid "342 - list layout category btn pos x widescreen"
msgstr ""
msgid "13 - list layout category btn pos y"
msgstr ""
msgid "388 - list layout list btn pos x"
msgid "368 - list layout list btn pos x"
msgstr ""
msgid "390 - list layout list btn pos x widescreen"
msgid "374 - list layout list btn pos x widescreen"
msgstr ""
msgid "13 - list layout list btn pos y"
msgstr ""
msgid "422 - list layout grid btn pos x widescreen"
msgid "406 - list layout grid btn pos x widescreen"
msgstr ""
msgid "428 - list layout grid btn pos x"
msgid "408 - list layout grid btn pos x"
msgstr ""
msgid "13 - list layout grid btn pos y"
msgstr ""
msgid "454 - list layout carousel btn pos x widescreen"
msgid "438 - list layout carousel btn pos x widescreen"
msgstr ""
msgid "468 - list layout carousel btn pos x"
msgid "448 - list layout carousel btn pos x"
msgstr ""
msgid "13 - list layout carousel btn pos y"
msgstr ""
msgid "486 - list layout lock btn pos x widescreen"
msgid "470 - list layout bannergrid btn pos x widescreen"
msgstr ""
msgid "508 - list layout lock btn pos x"
msgid "488 - list bannergrid btn pos x"
msgstr ""
msgid "13 - list layout bannergrid btn pos y"
msgstr ""
msgid "502 - list layout lock btn pos x widescreen"
msgstr ""
msgid "528 - list layout lock btn pos x"
msgstr ""
msgid "13 - list layout lock btn pos y"
msgstr ""
msgid "518 - list layout dvd btn pos x widescreen"
msgid "534 - list layout dvd btn pos x widescreen"
msgstr ""
msgid "548 - list layout dvd btn pos x"
msgid "568 - list layout dvd btn pos x"
msgstr ""
msgid "13 - list layout dvd btn pos y"
@ -310,91 +340,100 @@ msgstr ""
msgid "49 - game list layout pos y"
msgstr ""
msgid "120 - grid layout favorite btn pos x"
msgid "100 - grid layout favorite btn pos x"
msgstr ""
msgid "160 - grid layout favorite btn pos x widescreen"
msgid "144 - grid layout favorite btn pos x widescreen"
msgstr ""
msgid "13 - grid layout favorite btn pos y"
msgstr ""
msgid "160 - grid layout search btn pos x"
msgid "140 - grid layout search btn pos x"
msgstr ""
msgid "192 - grid layout search btn pos x widescreen"
msgid "176 - grid layout search btn pos x widescreen"
msgstr ""
msgid "13 - grid layout search btn pos y"
msgstr ""
msgid "200 - grid layout abc/sort btn pos x"
msgid "180 - grid layout abc/sort btn pos x"
msgstr ""
msgid "224 - grid layout abc/sort btn pos x widescreen"
msgid "208 - grid layout abc/sort btn pos x widescreen"
msgstr ""
msgid "13 - grid layout abc/sort btn pos y"
msgstr ""
msgid "240 - grid layout loadermode btn pos x"
msgid "220 - grid layout loadermode btn pos x"
msgstr ""
msgid "256 - grid layout loadermode btn pos x widescreen"
msgid "240 - grid layout loadermode btn pos x widescreen"
msgstr ""
msgid "13 - grid layout loadermode btn pos y"
msgstr ""
msgid "280 - grid layout category btn pos x"
msgid "260 - grid layout category btn pos x"
msgstr ""
msgid "288 - grid layout category btn pos x widescreen"
msgid "272 - grid layout category btn pos x widescreen"
msgstr ""
msgid "13 - grid layout category btn pos y"
msgstr ""
msgid "320 - grid layout list btn pos x"
msgid "300 - grid layout list btn pos x"
msgstr ""
msgid "320 - grid layout list btn pos x widescreen"
msgid "304 - grid layout list btn pos x widescreen"
msgstr ""
msgid "13 - grid layout list btn pos y"
msgstr ""
msgid "352 - grid layout grid btn pos x widescreen"
msgid "336 - grid layout grid btn pos x widescreen"
msgstr ""
msgid "360 - grid layout grid btn pos x"
msgid "340 - grid layout grid btn pos x"
msgstr ""
msgid "13 - grid layout grid btn pos y"
msgstr ""
msgid "384 - grid layout carousel btn pos x widescreen"
msgid "368 - grid layout carousel btn pos x widescreen"
msgstr ""
msgid "400 - grid layout carousel btn pos x"
msgid "380 - grid layout carousel btn pos x"
msgstr ""
msgid "13 - grid layout carousel btn pos y"
msgstr ""
msgid "416 - grid layout lock btn pos x widescreen"
msgid "400 - grid layout bannergrid btn pos x widescreen"
msgstr ""
msgid "440 - grid layout lock btn pos x"
msgid "420 - grid bannergrid btn pos x"
msgstr ""
msgid "13 - grid layout bannergrid btn pos y"
msgstr ""
msgid "432 - grid layout lock btn pos x widescreen"
msgstr ""
msgid "460 - grid layout lock btn pos x"
msgstr ""
msgid "13 - grid layout lock btn pos y"
msgstr ""
msgid "448 - grid layout dvd btn pos x widescreen"
msgid "464 - grid layout dvd btn pos x widescreen"
msgstr ""
msgid "480 - grid layout dvd btn pos x"
msgid "500 - grid layout dvd btn pos x"
msgstr ""
msgid "13 - grid layout dvd btn pos y"
@ -406,91 +445,100 @@ msgstr ""
msgid "640 - game grid layout width"
msgstr ""
msgid "120 - carousel layout favorite btn pos x"
msgid "100 - carousel layout favorite btn pos x"
msgstr ""
msgid "160 - carousel layout favorite btn pos x widescreen"
msgid "144 - carousel layout favorite btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout favorite btn pos y"
msgstr ""
msgid "160 - carousel layout search btn pos x"
msgid "140 - carousel layout search btn pos x"
msgstr ""
msgid "192 - carousel layout search btn pos x widescreen"
msgid "176 - carousel layout search btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout search btn pos y"
msgstr ""
msgid "200 - carousel layout abc/sort btn pos x"
msgid "180 - carousel layout abc/sort btn pos x"
msgstr ""
msgid "224 - carousel layout abc/sort btn pos x widescreen"
msgid "208 - carousel layout abc/sort btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout abc/sort btn pos y"
msgstr ""
msgid "240 - carousel layout loadermode btn pos x"
msgid "220 - carousel layout loadermode btn pos x"
msgstr ""
msgid "256 - carousel layout loadermode btn pos x widescreen"
msgid "240 - carousel layout loadermode btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout loadermode btn pos y"
msgstr ""
msgid "280 - carousel layout category btn pos x"
msgid "260 - carousel layout category btn pos x"
msgstr ""
msgid "288 - carousel layout category btn pos x widescreen"
msgid "272 - carousel layout category btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout category btn pos y"
msgstr ""
msgid "320 - carousel layout list btn pos x"
msgid "300 - carousel layout list btn pos x"
msgstr ""
msgid "320 - carousel layout list btn pos x widescreen"
msgid "304 - carousel layout list btn pos x widescreen"
msgstr ""
msgid "13 - carousel layout list btn pos y"
msgstr ""
msgid "352 - carousel layout grid btn pos x widescreen"
msgid "336 - carousel layout grid btn pos x widescreen"
msgstr ""
msgid "360 - carousel layout grid btn pos x"
msgid "340 - carousel layout grid btn pos x"
msgstr ""
msgid "13 - carousel layout grid btn pos y"
msgstr ""
msgid "384 - carousel layout carousel btn pos x widescreen"
msgid "368 - carousel layout carousel btn pos x widescreen"
msgstr ""
msgid "400 - carousel layout carousel btn pos x"
msgid "380 - carousel layout carousel btn pos x"
msgstr ""
msgid "13 - carousel layout carousel btn pos y"
msgstr ""
msgid "416 - carousel layout lock btn pos x widescreen"
msgid "400 - carousel layout bannergrid btn pos x widescreen"
msgstr ""
msgid "440 - carousel layout lock btn pos x"
msgid "420 - carousel bannergrid btn pos x"
msgstr ""
msgid "13 - carousel layout bannergrid btn pos y"
msgstr ""
msgid "432 - carousel layout lock btn pos x widescreen"
msgstr ""
msgid "460 - carousel layout lock btn pos x"
msgstr ""
msgid "13 - carousel layout lock btn pos y"
msgstr ""
msgid "448 - carousel layout dvd btn pos x widescreen"
msgid "464 - carousel layout dvd btn pos x widescreen"
msgstr ""
msgid "480 - carousel layout dvd btn pos x"
msgid "500 - carousel layout dvd btn pos x"
msgstr ""
msgid "13 - carousel layout dvd btn pos y"
@ -508,6 +556,111 @@ msgstr ""
msgid "0 - game carousel layout pos x"
msgstr ""
msgid "100 - bannergrid layout favorite btn pos x"
msgstr ""
msgid "144 - bannergrid layout favorite btn pos x widescreen"
msgstr ""
msgid "13 - bannergrid layout favorite btn pos y"
msgstr ""
msgid "140 - bannergrid layout search btn pos x"
msgstr ""
msgid "176 - bannergrid layout search btn pos x widescreen"
msgstr ""
msgid "13 - bannergrid layout search btn pos y"
msgstr ""
msgid "180 - bannergrid layout abc/sort btn pos x"
msgstr ""
msgid "208 - bannergrid layout abc/sort btn pos x widescreen"
msgstr ""
msgid "13 - bannergrid layout abc/sort btn pos y"
msgstr ""
msgid "220 - bannergrid layout loadermode btn pos x"
msgstr ""
msgid "240 - bannergrid layout loadermode btn pos x widescreen"
msgstr ""
msgid "13 - bannergrid layout loadermode btn pos y"
msgstr ""
msgid "260 - bannergrid layout category btn pos x"
msgstr ""
msgid "272 - bannergrid layout category btn pos x widescreen"
msgstr ""
msgid "13 - bannergrid layout category btn pos y"
msgstr ""
msgid "300 - bannergrid layout list btn pos x"
msgstr ""
msgid "304 - bannergrid layout list btn pos x widescreen"
msgstr ""
msgid "13 - bannergrid layout list btn pos y"
msgstr ""
msgid "336 - bannergrid layout grid btn pos x widescreen"
msgstr ""
msgid "340 - bannergrid layout grid btn pos x"
msgstr ""
msgid "13 - bannergrid layout grid btn pos y"
msgstr ""
msgid "368 - bannergrid layout carousel btn pos x widescreen"
msgstr ""
msgid "380 - bannergrid layout carousel btn pos x"
msgstr ""
msgid "13 - bannergrid layout carousel btn pos y"
msgstr ""
msgid "400 - bannergrid layout bannergrid btn pos x widescreen"
msgstr ""
msgid "420 - bannergrid bannergrid btn pos x"
msgstr ""
msgid "13 - bannergrid layout bannergrid btn pos y"
msgstr ""
msgid "432 - bannergrid layout lock btn pos x widescreen"
msgstr ""
msgid "460 - bannergrid layout lock btn pos x"
msgstr ""
msgid "13 - bannergrid layout lock btn pos y"
msgstr ""
msgid "464 - bannergrid layout dvd btn pos x widescreen"
msgstr ""
msgid "500 - bannergrid layout dvd btn pos x"
msgstr ""
msgid "13 - bannergrid layout dvd btn pos y"
msgstr ""
msgid "0 - game bannergrid layout pos x"
msgstr ""
msgid "0 - game bannergrid layout pos y"
msgstr ""
msgid "1 - show hdd info: 1 for on and 0 for off"
msgstr ""
@ -538,6 +691,15 @@ msgstr ""
msgid "68 - region info text pos x"
msgstr ""
msgid "r=0 g=0 b=0 a=255 - banner window playcount text color"
msgstr ""
msgid "0 - banner window play count pos x"
msgstr ""
msgid "215 - banner window play count pos y"
msgstr ""
msgid "r=0 g=0 b=0 a=255 - category prompt title text color"
msgstr ""
@ -661,6 +823,57 @@ msgstr ""
msgid "110 - category prompt back button pos x"
msgstr ""
msgid "r=0 g=0 b=0 a=255 - check box browser prompt title text color"
msgstr ""
msgid "center - check box browser prompt title text align hor"
msgstr ""
msgid "top - check box browser prompt title text align ver"
msgstr ""
msgid "0 - check box browser prompt title text pos x"
msgstr ""
msgid "10 - check box browser prompt title text pos y"
msgstr ""
msgid "center - check box browser prompt browser align hor"
msgstr ""
msgid "top - check box browser prompt browser align ver"
msgstr ""
msgid "0 - check box browser prompt browser pos x"
msgstr ""
msgid "45 - check box browser prompt browser pos y"
msgstr ""
msgid "bottom - check box browser prompt install button align ver"
msgstr ""
msgid "center - check box browser prompt install button align hor"
msgstr ""
msgid "-110 - check box browser prompt install button pos x"
msgstr ""
msgid "0 - check box browser prompt install button pos y"
msgstr ""
msgid "bottom - check box browser prompt back button align ver"
msgstr ""
msgid "center - check box browser prompt back button align hor"
msgstr ""
msgid "0 - check box browser prompt back button pos y"
msgstr ""
msgid "110 - check box browser prompt back button pos x"
msgstr ""
msgid "r=0 g=0 b=0 a=255 - prompt windows text color"
msgstr ""

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 900 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
data/images/gc_icon_bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

BIN
data/sounds/gc_banner.ogg Normal file

Binary file not shown.

View File

@ -7,7 +7,7 @@ outFile="./source/themes/filelist.h"
count_old=$(cat $outFile 2>/dev/null | tr -d '\n\n' | sed 's/[^0-9]*\([0-9]*\).*/\1/')
count=0
for i in $(find ./data/images/ ./data/sounds/ ./data/fonts/ -maxdepth 1 -type f \( ! -printf "%f\n" \))
for i in $(find ./data/images/ ./data/sounds/ ./data/fonts/ ./data/binary/ -maxdepth 1 -type f \( ! -printf "%f\n" \))
do
files[count]=$i
count=$((count+1))

File diff suppressed because one or more lines are too long

View File

@ -186,8 +186,8 @@ void BoxCover::Update(GuiTrigger * t)
if(frameCount-last_manual_move_frame < 250)
return;
Animation = sin(DegToRad(AnimRotate))*2.0f;
Animation2 = cos(DegToRad(AnimRotate))*5.0f;
Animation = sinf(DegToRad(AnimRotate))*2.0f;
Animation2 = cosf(DegToRad(AnimRotate))*5.0f;
AnimRotate += 0.1f;
if(AnimRotate > 360.0f)
AnimRotate = 0.0f;
@ -199,10 +199,15 @@ void BoxCover::Draw()
GX_LoadProjectionMtx(projection, GX_PERSPECTIVE);
GX_ClearVtxDesc();
GX_InvVtxCache();
GX_SetVtxDesc(GX_VA_POS, GX_INDEX8);
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
GX_SetVtxDesc(GX_VA_TEX0, GX_INDEX8);
//! don't draw inside of the box
GX_SetCullMode(GX_CULL_FRONT);
Mtx modelView;
Mtx modelView2;
Mtx modelView3;
@ -305,6 +310,9 @@ void BoxCover::Draw()
GX_End();
}
//! stop cull
GX_SetCullMode(GX_CULL_NONE);
UpdateEffects();
}

View File

@ -255,7 +255,7 @@ u8 *Channels::GetTMD(const u64 &tid, u32 *size, const char *prefix)
if(!prefix)
prefix = "";
sprintf(filepath, "%s/title/%08x/%08x/content/title.tmd", prefix, TITLE_UPPER(tid), TITLE_LOWER(tid));
snprintf(filepath, ISFS_MAXPATH, "%s/title/%08x/%08x/content/title.tmd", prefix, TITLE_UPPER(tid), TITLE_LOWER(tid));
u8 *tmdBuffer = NULL;
u32 tmdSize = 0;
@ -358,7 +358,7 @@ u32 Channels::LoadChannel(const u64 &chantitle)
*BI2 = 0x817FE000; // BI2, the apploader does this too
*Bus_Speed = 0x0E7BE2C0; // bus speed
*CPU_Speed = 0x2B73A840; // cpu speed
*GameID_Address = 0x81000000; // Game id address, while there's all 0s at 0x81000000 when using the apploader...
*GameID_Address = 0x81000000; // Game id address, while there's all 0s at 0x81000000 when using the apploader...
memcpy((void *)Online_Check, (void *)Disc_ID, 4);// online check
memset((void *)0x817FE000, 0, 0x2000); // Clearing BI2
@ -408,7 +408,7 @@ bool Channels::Identify(const u64 &titleid, u8 *tmdBuffer, u32 tmdSize)
return false;
}
sprintf(filepath, "/sys/cert.sys");
strlcpy(filepath, "/sys/cert.sys", ISFS_MAXPATH);
u8 *certBuffer = NULL;
u32 certSize = 0;
if (NandTitle::LoadFileFromNand(filepath, &certBuffer, &certSize) < 0)
@ -557,7 +557,8 @@ bool Channels::GetEmuChanTitle(char *tmdpath, int language, std::string &Title)
if(!ptr)
return false;
sprintf(ptr+1, "%08x.app", cid);
//! tmdpath has length of 1024
snprintf(ptr+1, 1024-(ptr+1-tmdpath), "%08x.app", cid);
FILE *f = fopen(tmdpath, "rb");
if(!f)
@ -617,7 +618,7 @@ bool Channels::GetEmuChanTitle(char *tmdpath, int language, std::string &Title)
return true;
}
u8 *Channels::GetOpeningBnr(const u64 &title, const char *pathPrefix)
u8 *Channels::GetOpeningBnr(const u64 &title, u32 * outsize, const char *pathPrefix)
{
u8 *banner = NULL;
u32 high = TITLE_UPPER(title);
@ -681,16 +682,22 @@ u8 *Channels::GetOpeningBnr(const u64 &title, const char *pathPrefix)
break;
}
banner = (u8 *) memalign(32, filesize-IMET_OFFSET);
// move IMET_OFFSET bytes back
filesize -= IMET_OFFSET;
banner = (u8 *) memalign(32, filesize);
if(!banner)
{
free(buffer);
break;
}
memcpy(banner, buffer + IMET_OFFSET, filesize-IMET_OFFSET);
memcpy(banner, buffer + IMET_OFFSET, filesize);
free(buffer);
if(outsize)
*outsize = filesize;
}
while(0);

View File

@ -42,7 +42,7 @@ public:
static u8 GetRequestedIOS(const u64 &title);
static u8 *GetTMD(const u64 &tid, u32 *size, const char *prefix);
static u8 *GetDol(const u64 &title, u8 *tmdBuffer);
static u8 *GetOpeningBnr(const u64 &title, const char *pathPrefix);
static u8 *GetOpeningBnr(const u64 &title, u32 *outsize, const char *pathPrefix);
void GetChannelList();
void GetEmuChannelList();

View File

@ -29,6 +29,9 @@
#include "PartitionHandle.h"
#include "usbloader/usbstorage2.h"
/**
* libogc device names.
*/
enum
{
SD = 0,
@ -43,7 +46,10 @@ enum
MAXDEVICES
};
const char DeviceName[MAXDEVICES][6] =
/**
* libogc device names.
*/
const char DeviceName[MAXDEVICES][8] =
{
"sd",
"usb1",
@ -72,27 +78,27 @@ class DeviceHandler
bool MountSD();
bool MountAllUSB(bool spinUp = true);
bool MountUSBPort1(bool spinUp = true);
bool SD_Inserted() { if(sd) return sd->IsInserted(); return false; };
bool USB0_Inserted() { if(usb0) return usb0->IsInserted(); return false; };
bool USB1_Inserted() { if(usb1) return usb1->IsInserted(); return false; };
void UnMountSD() { if(sd) delete sd; sd = NULL; };
bool SD_Inserted() { if(sd) return sd->IsInserted(); return false; }
bool USB0_Inserted() { if(usb0) return usb0->IsInserted(); return false; }
bool USB1_Inserted() { if(usb1) return usb1->IsInserted(); return false; }
void UnMountSD() { if(sd) delete sd; sd = NULL; }
void UnMountUSB(int pos);
void UnMountAllUSB();
PartitionHandle * GetSDHandle() const { return sd; };
PartitionHandle * GetUSB0Handle() const { return usb0; };
PartitionHandle * GetUSB1Handle() const { return usb1; };
PartitionHandle * GetSDHandle() const { return sd; }
PartitionHandle * GetUSB0Handle() const { return usb0; }
PartitionHandle * GetUSB1Handle() const { return usb1; }
PartitionHandle * GetUSBHandleFromPartition(int part) const;
static const DISC_INTERFACE *GetUSB0Interface() { return &__io_usbstorage2_port0; }
static const DISC_INTERFACE *GetUSB1Interface() { return &__io_usbstorage2_port1; }
static int GetFilesystemType(int dev);
static const char * GetFSName(int dev);
static int PathToDriveType(const char * path);
static const char * PathToFSName(const char * path) { return GetFSName(PathToDriveType(path)); };
static const char * PathToFSName(const char * path) { return GetFSName(PathToDriveType(path)); }
static int PartitionToUSBPort(int part);
static u16 GetUSBPartitionCount();
static int PartitionToPortPartition(int part);
private:
DeviceHandler() : sd(0), gca(0), gcb(0), usb0(0), usb1(0) { };
DeviceHandler() : sd(0), gca(0), gcb(0), usb0(0), usb1(0) { }
~DeviceHandler();
bool MountUSB(int part);

View File

@ -21,11 +21,18 @@
#include "video.h"
#include "input.h"
Mtx44 WiiPointer::projection;
WiiPointer::WiiPointer(const char *pntrImg)
: posX(screenwidth/2), posY(screenheight/2),
angle(0.0f), lastActivity(301)
{
pointerImg = Resources::GetImageData(pntrImg);
//! create projection matrix
guOrtho(projection, Settings.AdjustOverscanY, screenheight - 1 - Settings.AdjustOverscanY,
Settings.AdjustOverscanX, screenwidth - 1 - Settings.AdjustOverscanX, 0, 10000);
}
WiiPointer::~WiiPointer()
@ -116,7 +123,7 @@ void WiiPointer::Draw(GuiTrigger *t)
posX = LIMIT(posX, -50.0f, screenwidth+50.0f);
posY = LIMIT(posY, -50.0f, screenheight+50.0f);
if(lastActivity < 300) { // (5s on 60Hz and 6s on 50Hz)
if(lastActivity < 180) { // (3s on 60Hz and 3.6s on 50Hz)
t->wpad.ir.valid = 1;
t->wpad.ir.x = posX;
t->wpad.ir.y = posY;
@ -124,11 +131,51 @@ void WiiPointer::Draw(GuiTrigger *t)
}
if(t->wpad.ir.valid)
Menu_DrawImg(posX - pointerImg->GetWidth()/2,
posY - pointerImg->GetHeight()/2,
9900.0f, pointerImg->GetWidth(), pointerImg->GetHeight(),
pointerImg->GetImage(), angle,
Settings.widescreen ? Settings.WSFactor : 1.f, 1.f, 255, 0, 0, 0, 0, 0, 0, 0, 0);
{
GXTexObj texObj;
GX_InitTexObj(&texObj, pointerImg->GetImage(), pointerImg->GetWidth(), pointerImg->GetHeight(), GX_TF_RGBA8, GX_CLAMP, GX_CLAMP, GX_FALSE);
GX_LoadTexObj(&texObj, GX_TEXMAP0);
GX_ClearVtxDesc();
GX_InvVtxCache();
GX_InvalidateTexAll();
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT);
Mtx mv;
guMtxIdentity(mv);
guMtxRotDeg (mv, 'z', angle);
guMtxTransApply(mv, mv, posX, posY, 9900.f);
guMtxConcat(FSModelView2D, mv, mv);
GX_LoadProjectionMtx(projection, GX_ORTHOGRAPHIC);
GX_LoadPosMtxImm(mv, GX_PNMTX0);
// pointer is pointing to center of the texture
f32 width = 0.5f * pointerImg->GetWidth();
f32 height = 0.5f * pointerImg->GetHeight();
GX_Begin(GX_QUADS, GX_VTXFMT0, 4);
GX_Position3f32(-width, -height, 0);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(0, 0);
GX_Position3f32(width, -height, 0);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(1, 0);
GX_Position3f32(width, height, 0);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(1, 1);
GX_Position3f32(-width, height, 0);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(0, 1);
GX_End();
}
}
++lastActivity;

View File

@ -32,6 +32,7 @@ private:
float posX, posY, angle;
u32 lastActivity;
GuiImageData * pointerImg;
static Mtx44 projection;
};
#endif /* WIIPOINTER_H_ */

View File

@ -100,9 +100,6 @@ bool DirList::LoadPath(std::string &folderpath, const char *filter, u32 flags)
if(st->st_mode & S_IFDIR)
{
if(!(flags & Dirs))
continue;
if(strcmp(filename,".") == 0 || strcmp(filename,"..") == 0)
continue;
@ -114,6 +111,9 @@ bool DirList::LoadPath(std::string &folderpath, const char *filter, u32 flags)
LoadPath(folderpath, filter, flags);
folderpath.erase(length);
}
if(!(flags & Dirs))
continue;
}
else
{

View File

@ -42,6 +42,8 @@ class DirList
{
public:
//!Constructor
DirList() {}
//!Overload
//!\param path Path from where to load the filelist of all files
//!\param filter A fileext that needs to be filtered
//!\param flags search/filter flags from the enum
@ -56,15 +58,15 @@ class DirList
const char * GetFilename(int index);
//! Get the a filepath of the list
//!\param list index
const char * GetFilepath(int index) { if(!valid(index)) return NULL; return FileInfo[index].FilePath; };
const char * GetFilepath(int index) { if(!valid(index)) return NULL; return FileInfo[index].FilePath; }
//! Get the a filesize of the list
//!\param list index
u64 GetFilesize(int index) { if(!valid(index)) return 0; return FileInfo[index].FileSize; };
u64 GetFilesize(int index) { if(!valid(index)) return 0; return FileInfo[index].FileSize; }
//! Is index a dir or a file
//!\param list index
bool IsDir(int index) { if(!valid(index)) return 0; return FileInfo[index].isDir; };
bool IsDir(int index) { if(!valid(index)) return 0; return FileInfo[index].isDir; }
//! Get the filecount of the whole list
int GetFilecount() { return FileInfo.size(); };
int GetFilecount() { return FileInfo.size(); }
//! Sort list by filepath
void SortList();
//! Custom sort command for custom sort functions definitions
@ -76,7 +78,7 @@ class DirList
{
Files = 0x01,
Dirs = 0x02,
CheckSubfolders = 0x08,
CheckSubfolders = 0x08
};
protected:
//!Add a list entrie
@ -84,7 +86,7 @@ class DirList
//! Clear the list
void ClearList();
//! Check if valid pos is requested
inline bool valid(int pos) { return (pos >= 0 && pos < (int) FileInfo.size()); };
inline bool valid(int pos) { return (pos >= 0 && pos < (int) FileInfo.size()); }
std::vector<FileInfos> FileInfo;
};

View File

@ -36,7 +36,11 @@
#include <unistd.h>
#include <vector>
#include "prompts/ProgressWindow.h"
#include "language/gettext.h"
#include "DirList.h"
#include "fileops.h"
#include "gecko.h"
#define BLOCKSIZE 70*1024 //70KB
#define VectorResize(List) if(List.capacity()-List.size() == 0) List.reserve(List.size()+100)
@ -126,7 +130,7 @@ extern "C" int LoadFileToMem(const char *filepath, u8 **inbuffer, u32 *size)
{
free(buffer);
fclose(file);
return -10;
return PROGRESS_CANCELED;
}
if(blocksize > filesize-done)
@ -314,15 +318,17 @@ extern "C" int CopyFile(const char * src, const char * dest)
do
{
if(actioncanceled)
if(ProgressCanceled())
{
fclose(source);
fclose(destination);
free(buffer);
RemoveFile((char *) dest);
return -10;
return PROGRESS_CANCELED;
}
ShowProgress(done, sizesrc);
if(blksize > sizesrc - done)
blksize = sizesrc - done;
@ -411,10 +417,7 @@ extern "C" bool RenameFile(const char * srcpath, const char * destpath)
***************************************************************************/
extern "C" bool RemoveDirectory(const char *path)
{
struct dirent *dirent = NULL;
DIR *dir = NULL;
std::string folderpath = path;
std::string folderpath = path;
while(folderpath[folderpath.size()-1] == '/')
folderpath.erase(folderpath.size()-1);
@ -422,43 +425,177 @@ extern "C" bool RemoveDirectory(const char *path)
if(isRoot)
folderpath += '/';
dir = opendir(folderpath.c_str());
if (dir == NULL)
return false;
ProgressCancelEnable(true);
StartProgress(tr("Getting file list..."), tr("Please wait"), 0, false, false);
ShowProgress(0, 1);
char * filepath = new (std::nothrow) char[MAXPATHLEN];
if(!filepath)
//! load list not sorted, to remove in correct order
DirList dir;
dir.LoadPath(folderpath.c_str(), 0, DirList::Dirs | DirList::Files | DirList::CheckSubfolders);
int done = 0;
int fileCount = dir.GetFilecount();
//! remove files first
for(int i = 0; i < fileCount; i++)
{
closedir(dir);
return false;
}
struct stat st;
while ((dirent = readdir(dir)) != 0)
{
if(!dirent->d_name)
continue;
if(!strcmp(dirent->d_name, ".") || !strcmp(dirent->d_name, ".."))
continue;
snprintf(filepath, MAXPATHLEN, "%s%s%s", folderpath.c_str(), isRoot ? "" : "/", dirent->d_name);
if(stat(filepath, &st) != 0)
continue;
if(st.st_mode & S_IFDIR)
if(!dir.IsDir(i))
{
RemoveDirectory(filepath);
}
else
{
remove(filepath);
ShowProgress(tr("Deleting files..."), dir.GetFilename(i), 0, done, fileCount, false, false);
RemoveFile(dir.GetFilepath(i));
done++;
}
}
delete [] filepath;
closedir(dir);
//! now remove all folders
for(int i = 0; i < fileCount; i++)
{
if(dir.IsDir(i))
{
ShowProgress(tr("Deleting directories..."), dir.GetFilename(i), 0, done, fileCount, false, false);
RemoveFile(dir.GetFilepath(i));
done++;
gprintf("%s\n", dir.GetFilepath(i));
}
}
return (remove(folderpath.c_str()) == 0);
ProgressStop();
ProgressCancelEnable(false);
return (RemoveFile(folderpath.c_str()) == 0);
}
/****************************************************************************
* RemoveDirectory
***************************************************************************/
extern "C" int CopyDirectory(const char *path, const char *dst)
{
if(!path || !dst)
return -1;
ProgressCancelEnable(true);
StartProgress(tr("Getting file list..."), tr("Please wait"), 0, true, true);
ShowProgress(0, 1);
//! load list not sorted as there is no need to
DirList dir;
dir.LoadPath(path, 0, DirList::Dirs | DirList::Files | DirList::CheckSubfolders);
int result = 0;
int fileCount = dir.GetFilecount();
int pathlen = strlen(path);
// we are done
if(fileCount == 0) {
ProgressStop();
ProgressCancelEnable(false);
return 0;
}
u64 totalDone = 0;
u64 totalSize = 0;
for(int i = 0; i < fileCount; i++)
totalSize += dir.GetFilesize(i);
char filepath[1024];
u32 blksize = BLOCKSIZE;
u8 * buffer = (u8 *) malloc(blksize);
if(buffer == NULL){
ProgressStop();
ProgressCancelEnable(false);
return -2;
}
for(int i = 0; i < fileCount; i++)
{
const char *srcPath = dir.GetFilepath(i);
if(!srcPath)
continue;
const char *filename = dir.GetFilename(i);
snprintf(filepath, sizeof(filepath), "%s/%s", dst, srcPath+pathlen);
char *ptr = strrchr(filepath, '/');
if(ptr) *ptr = 0;
//! create path for the file
CreateSubfolder(filepath);
snprintf(filepath, sizeof(filepath), "%s/%s", dst, srcPath+pathlen);
// Start copying file
FILE * source = fopen(srcPath, "rb");
if(!source)
continue;
FILE * destination = fopen(filepath, "wb");
if(destination == NULL)
{
fclose(source);
continue;
}
ShowProgress(tr("Copying files..."), filename, 0, totalDone, totalSize, true, true);
blksize = BLOCKSIZE;
u64 done = 0;
u64 filesize = dir.GetFilesize(i);
while(done < filesize)
{
if(ProgressCanceled())
{
fclose(source);
fclose(destination);
free(buffer);
ProgressStop();
ProgressCancelEnable(false);
return PROGRESS_CANCELED;
}
//Display progress
ShowProgress(totalDone, totalSize);
if(blksize > filesize - done)
blksize = filesize - done;
if(fread(buffer, 1, blksize, source) != blksize)
{
result = -5;
break;
}
if(fwrite(buffer, 1, blksize, destination) != blksize)
{
result = -5;
break;
}
done += blksize;
totalDone += blksize;
}
fclose(source);
fclose(destination);
}
free(buffer);
ProgressStop();
ProgressCancelEnable(false);
return result;
}
u64 GetDirectorySize(const char *path)
{
DirList dir(path, 0, DirList::Files | DirList::CheckSubfolders);
int fileCount = dir.GetFilecount();
u64 totalSize = 0;
for(int i = 0; i < fileCount; i++)
totalSize += dir.GetFilesize(i);
return totalSize;
}

View File

@ -37,10 +37,12 @@ extern "C" {
bool CreateSubfolder(const char * fullpath);
bool CheckFile(const char * filepath);
u64 FileSize(const char * filepath);
u64 GetDirectorySize(const char *path);
int LoadFileToMem(const char * filepath, u8 **buffer, u32 *size);
int LoadFileToMemWithProgress(const char *progressText, const char *filePath, u8 **buffer, u32 *size);
int CopyFile(const char * src, const char * dest);
int MoveFile(const char *srcpath, char *destdir);
int CopyDirectory(const char *path, const char *dst);
bool RenameFile(const char * srcpath, const char * destpath);
bool RemoveFile(const char * filepath);
bool RemoveDirectory(const char *path);

View File

@ -21,13 +21,11 @@
*/
#include "FreeTypeGX.h"
#include "memory/mem2.h"
using namespace std;
#define EXPLODE_UINT8_TO_UINT32(x) ((x << 24) | (x << 16) | (x << 8) | x)
#define ALIGN8(x) (((x) + 7) & ~7)
#define ALIGN32(x) (((x) + 31) & ~31)
#define RGBA_TO_IA4(x) (((x & 0x0000f000) >> 8) | ((x & 0x000000f0) >> 4))
/**
* Convert a short char string to a wide char string.
@ -124,7 +122,7 @@ void FreeTypeGX::unloadFont()
for (itr = fontData.begin(); itr != fontData.end(); itr++)
{
for (itr2 = itr->second.begin(); itr2 != itr->second.end(); itr2++)
free(itr2->second.glyphDataTexture);
MEM2_free(itr2->second.glyphDataTexture);
itr->second.clear();
}
@ -239,7 +237,7 @@ void FreeTypeGX::loadGlyphData(FT_Bitmap *bmp, ftgxCharData *charData)
{
int glyphSize = (charData->textureWidth * charData->textureHeight) >> 1;
uint8_t *glyphData = (uint8_t *) memalign(32, glyphSize);
uint8_t *glyphData = (uint8_t *) MEM2_alloc(glyphSize);
memset(glyphData, 0x00, glyphSize);
uint8_t *src = (uint8_t *)bmp->buffer;

View File

@ -0,0 +1,560 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include "GuiBannerGrid.h"
#include "themes/CTheme.h"
#include "settings/CSettings.h"
#include "settings/GameTitles.h"
#include "settings/newtitles.h"
#include "SystemMenu/SystemMenuResources.h"
#include "usbloader/GameList.h"
#include "gecko.h"
//! some math to get the row and column from channel idx
static inline int Idx2Row(int sIdx)
{
if(sIdx > 0)
return (sIdx / 4) % 3;
else if(sIdx < 0)
return (2 + ((sIdx + 1) / 4) % 3);
else
return 0;
}
static inline int Idx2Column(int sIdx)
{
if(sIdx == 0)
return 0;
if(sIdx > 0) {
return ( (sIdx / 12) * 4 + sIdx % 4 );
}
else
{
int column = (sIdx % 4);
if(column == 0)
column = -4;
column += ((sIdx + 1) / 12) * 4;
return column;
}
}
GuiBannerGrid::GuiBannerGrid(int listOffset)
: XOffset(0)
, YOffset(-50)
, fAnimation(0.f)
, fAnimStep(Settings.BannerGridSpeed)
, AnimationRunning(false)
, gridFrameColor(thColor("r=237 g=237 b=237 a=255 - banner icon frame color"))
, highliteColor(thColor("r=52 g=190 b=237 a=255 - banner icon highlite color"))
{
GXColor gridTevColor[3];
gridTevColor[0] = thColor("r=130 g=130 b=130 a=0 - banner icon frame edge tev color 1");
gridTevColor[1] = thColor("r=180 g=180 b=180 a=255 - banner icon frame edge tev color 2");
gridTevColor[2] = thColor("r=255 g=255 b=255 a=255 - banner icon frame edge tev color 3");
for(int i = 0; i < 3; i++)
gridFrameTevColor[i] = (GXColorS10) { gridTevColor[i].r, gridTevColor[i].g, gridTevColor[i].b, gridTevColor[i].a };
trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
trigL.SetButtonOnlyTrigger(-1, WPAD_BUTTON_LEFT | WPAD_CLASSIC_BUTTON_LEFT, PAD_BUTTON_LEFT);
trigR.SetButtonOnlyTrigger(-1, WPAD_BUTTON_RIGHT | WPAD_CLASSIC_BUTTON_RIGHT, PAD_BUTTON_RIGHT);
trigPlus.SetButtonOnlyTrigger(-1, WPAD_BUTTON_PLUS | WPAD_CLASSIC_BUTTON_PLUS, PAD_TRIGGER_R);
trigMinus.SetButtonOnlyTrigger(-1, WPAD_BUTTON_MINUS | WPAD_CLASSIC_BUTTON_MINUS, PAD_TRIGGER_L);
imgLeft = Resources::GetImageData("startgame_arrow_left.png");
imgRight = Resources::GetImageData("startgame_arrow_right.png");
imgNewData = Resources::GetImageData("new.png");
btnLeftImg = new GuiImage(imgLeft);
if (Settings.wsprompt) btnLeftImg->SetWidescreen(Settings.widescreen);
btnLeft = new GuiButton(btnLeftImg, btnLeftImg, ALIGN_LEFT, ALIGN_MIDDLE, 20, YOffset, &trigA, btnSoundOver, btnSoundClick2, 1);
btnLeft->SetTrigger(&trigL);
btnLeft->SetTrigger(&trigMinus);
btnLeft->SetParent(this);
btnRightImg = new GuiImage(imgRight);
if (Settings.wsprompt) btnRightImg->SetWidescreen(Settings.widescreen);
btnRight = new GuiButton(btnRightImg, btnRightImg, ALIGN_RIGHT, ALIGN_MIDDLE, -20, YOffset, &trigA, btnSoundOver, btnSoundClick2, 1);
btnRight->SetTrigger(&trigR);
btnRight->SetTrigger(&trigPlus);
btnRight->SetParent(this);
//! Get chanSel archive
if(SystemMenuResources::Instance()->GetChanSelAsh())
{
U8Archive chanSelArc(SystemMenuResources::Instance()->GetChanSelAsh(), SystemMenuResources::Instance()->GetChanSelAshSize());
//! Create texture for the
gridFrameTex.Load(chanSelArc.GetFile("/arc/timg/IplTopMask4x3.tpl"));
gridFrameEdgeTex.Load(chanSelArc.GetFile("/arc/timg/IplTopMaskEgde4x3.tpl"));
gridHighliteTex.Load(chanSelArc.GetFile("/arc/timg/my_TV_f.tpl"));
//! create static image frame
staticFrame.Load(chanSelArc);
}
//! create vector with empty banner list
bannerList.resize(gameList.size(), NULL);
//! Calculate the page count
//! 1 page is minumum to show statics even if no games are loaded
pageCnt = std::max((int)(bannerList.size() + 11) / 12, 1);
pageNo = LIMIT(listOffset / 12, 0, pageCnt-1);
//! set screen properties
width = ScreenProps.x = screenwidth;
height = ScreenProps.y = screenheight;
//! setup the gridview
guMtxIdentity(gridview);
guMtxTransApply(gridview, gridview, 0.0F, 0.0F, -9900.0F);
for(int i = 0; i < MAX_BUTTONS; i++)
{
int row = Idx2Row(i);
int column = Idx2Column(i);
float fx = XOffset + chanWidth * column + ScreenProps.x * 0.5f - chanWidth * 2.f;
float fy = YOffset + chanHeight * row + (ScreenProps.y - chanHeight) * 0.5f - chanHeight;
gridNewImg[i] = new GuiImage(imgNewData);
gridNewImg[i]->SetAlignment(ALIGN_RIGHT, ALIGN_BOTTOM);
gridNewImg[i]->SetPosition(-5, -5);
gridNewImg[i]->SetScale(0.95f);
gridNewImg[i]->SetEffect(EFFECT_PULSE, 5, 100);
gridTT[i] = new GuiTooltip(NULL);
gridTT[i]->SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
gridBtn[i] = new GuiButton(chanWidth, chanHeight);
gridBtn[i]->SetPosition(fx, fy);
gridBtn[i]->SetTrigger(&trigA);
gridBtn[i]->SetSoundClick(btnSoundClick2);
gridBtn[i]->SetParent(this);
gridBtn[i]->SetIcon(gridNewImg[i]);
if(i >= (int) bannerList.size())
gridBtn[i]->SetState(STATE_DISABLED);
}
UpdateTooltips();
}
GuiBannerGrid::~GuiBannerGrid()
{
for(int i = 0; i < MAX_BUTTONS; ++i)
{
delete gridBtn[i];
delete gridTT[i];
delete gridNewImg[i];
}
for(u32 i = 0; i < bannerList.size(); ++i)
{
if(bannerList[i] != NULL)
BannerAsync::RemoveBanner(bannerList[i]);
}
delete imgLeft;
delete imgRight;
delete imgNewData;
delete btnLeftImg;
delete btnRightImg;
delete btnLeft;
delete btnRight;
}
int GuiBannerGrid::GetClickedOption(void)
{
for (int i = 0; i < MAX_BUTTONS; ++i)
{
if (gridBtn[i]->GetState() == STATE_CLICKED)
{
gridBtn[i]->SetState(STATE_SELECTED);
return pageNo * 12 + i;
}
}
return -1;
}
int GuiBannerGrid::GetSelectedOption(void)
{
for (int i = 0; i < MAX_BUTTONS; ++i)
{
if (gridBtn[i]->GetState() == STATE_SELECTED)
return pageNo * 12 + i;
}
return -1;
}
void GuiBannerGrid::UpdateTooltips(void)
{
int chIdx = pageNo * 12;
for(int i = 0; i < MAX_BUTTONS; i++)
{
if(chIdx < 0 || chIdx >= (int) bannerList.size())
{
gridBtn[i]->SetState(STATE_DISABLED);
}
else
{
if(gridBtn[i]->GetState() == STATE_DISABLED)
gridBtn[i]->SetState(STATE_DEFAULT);
gridTT[i]->SetText(GameTitles.GetTitle(gameList[chIdx]));
gridBtn[i]->SetToolTip(gridTT[i], 0, 30, ALIGN_CENTER, ALIGN_BOTTOM);
if(gridTT[i]->GetLeft() < 20)
gridBtn[i]->SetToolTip(gridTT[i], 20 - gridTT[i]->GetLeft(),
30, ALIGN_CENTER, ALIGN_BOTTOM);
else if((gridTT[i]->GetLeft() + gridTT[i]->GetWidth()) > (screenwidth - 20))
gridBtn[i]->SetToolTip(gridTT[i], (screenwidth - 20) - (gridTT[i]->GetLeft() + gridTT[i]->GetWidth()),
30, ALIGN_CENTER, ALIGN_BOTTOM);
}
chIdx++;
}
}
void GuiBannerGrid::GetIconCoordinates(int icon, f32 *x, f32 *y)
{
int row = Idx2Row(icon % 12);
int column = Idx2Column(icon % 12);
*x = XOffset + chanWidth * column + ScreenProps.x * 0.5f - chanWidth * 2.f;
*y = YOffset + chanHeight * row + (ScreenProps.y - chanHeight) * 0.5f - chanHeight;
}
void GuiBannerGrid::RenderHighliter(Mtx &modelview)
{
u8 Tlut = 0;
gridHighliteTex.Apply(Tlut, GX_TEXMAP0, GX_MIRROR, GX_MIRROR);
Mtx m1, mv;
guMtxIdentity(mv);
guMtxScaleApply(modelview, m1, 1.f, -1.f, 1.f);
guMtxTransApply(m1, m1,ScreenProps.x * 0.5f, ScreenProps.y * 0.5f, 0.f);
guMtxScaleApply(mv, mv, chanWidth, chanHeight, 0.f);
guMtxTransApply(mv, mv, -chanWidth * 0.5f, -chanHeight * 0.5f, 0.f);
guMtxConcat(m1, mv, mv);
GX_LoadPosMtxImm(mv, GX_PNMTX0);
GX_ClearVtxDesc();
GX_InvVtxCache();
GX_InvalidateTexAll();
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT);
GX_Begin(GX_QUADS, GX_VTXFMT0, 4);
GX_Position3f32(0.f, 0.f, 0.f);
GX_Color4u8(highliteColor.r, highliteColor.g, highliteColor.b, highliteColor.a);
GX_TexCoord2f32(0.f, 2.f);
GX_Position3f32(1.f, 0.f, 0.f);
GX_Color4u8(highliteColor.r, highliteColor.g, highliteColor.b, highliteColor.a);
GX_TexCoord2f32(2.f, 2.f);
GX_Position3f32(1.f, 1.f, 0.f);
GX_Color4u8(highliteColor.r, highliteColor.g, highliteColor.b, highliteColor.a);
GX_TexCoord2f32(2.f, 0.f);
GX_Position3f32(0.f, 1.f, 0.f);
GX_Color4u8(highliteColor.r, highliteColor.g, highliteColor.b, highliteColor.a);
GX_TexCoord2f32(0.f, 0.f);
GX_End();
}
void GuiBannerGrid::Update(GuiTrigger *t)
{
if(!t || state == STATE_DISABLED)
return;
for(int i = 0; i < MAX_BUTTONS && !AnimationRunning; i++)
gridBtn[i]->Update(t);
if(pageNo > 0)
{
btnLeft->Update(t);
if((btnLeft->GetState() == STATE_CLICKED) && !AnimationRunning) {
btnLeft->SetState(STATE_DEFAULT);
fAnimation -= chanWidth * 4.f;
pageNo--;
UpdateTooltips();
}
}
if(pageNo < pageCnt-1)
{
btnRight->Update(t);
if((btnRight->GetState() == STATE_CLICKED) && !AnimationRunning) {
btnRight->SetState(STATE_DEFAULT);
fAnimation += chanWidth * 4.f;
pageNo++;
UpdateTooltips();
}
}
}
void GuiBannerGrid::Draw()
{
if(!this->IsVisible())
return;
u8 Tlut = 0;
if(fAnimation > -fAnimStep && fAnimation < fAnimStep)
fAnimation = 0.0f;
else if(fAnimation > 0.0f)
fAnimation -= fAnimStep;
else if(fAnimation < 0.0f)
fAnimation += fAnimStep;
AnimationRunning = (fAnimation != 0.0f);
bool bSkipFrame = Settings.PAL50 && ((frameCount % 6) == 0);
Mtx modelview;
guMtxTransApply(gridview, modelview, fAnimation, 0.f, 0.f);
int chIdx = pageNo * 12;
//! removed unneeded banners
for(int i = 0; i < (int) bannerList.size(); i++)
{
if((i < (chIdx - 24) || i > (chIdx + 36)) && bannerList[i] != NULL)
{
BannerAsync::RemoveBanner(bannerList[i]);
bannerList[i] = NULL;
}
}
//! Load the games that are seen first and after that the rest
for(int i = chIdx+11; i >= chIdx; i--) // counting backwards so the loading is upwards
{
if(i >= 0 && i < (int) bannerList.size())
{
if(!bannerList[i])
bannerList[i] = new BannerAsync(gameList[i]);
if(!bannerList[i]->getIcon())
BannerAsync::PushFront(bannerList[i]);
}
}
//! we start at the channels on pre-pre-page
chIdx -= 24;
int GridCutLeft = 0;
int GridCutRight = vmode->fbWidth;
for(int sIdx = -24; sIdx < 36; sIdx++, chIdx++)
{
int row = Idx2Row(sIdx);
int column = Idx2Column(sIdx);
if(chIdx < 0 || chIdx >= pageCnt*12)
continue;
if(chIdx >= 0 && chIdx < (int) bannerList.size() && !bannerList[chIdx])
bannerList[chIdx] = new BannerAsync(gameList[chIdx]);
Mtx mv1, mv2, iconview;
guMtxTransApply(modelview, iconview, XOffset + chanWidth * column - chanWidth * 1.5f,
-YOffset - chanHeight * row + chanHeight, 0.f);
guMtxScaleApply(iconview, mv1, 1.f, -1.f, 1.f);
guMtxTransApply(mv1,mv1, (ScreenProps.x - chanWidth) * 0.5f, (ScreenProps.y - chanHeight) * 0.5f, 0.f);
guMtxTransApply(mv1,mv2, chanWidth, chanHeight, 0.f);
f32 viewportv[6];
f32 projectionv[7];
GX_GetViewportv(viewportv, vmode);
GX_GetProjectionv(projectionv, FSProjection2D, GX_ORTHOGRAPHIC);
guVector vecTL;
guVector vecBR;
GX_Project(0.0f, 0.0f, 0.0f, mv1, projectionv, viewportv, &vecTL.x, &vecTL.y, &vecTL.z);
GX_Project(0.0f, 0.0f, 0.0f, mv2, projectionv, viewportv, &vecBR.x, &vecBR.y, &vecBR.z);
//! Round scissor box offset up and the box size down
u32 scissorX = (u32)(0.5f + std::max(vecTL.x, (f32)std::max(-Settings.AdjustOverscanX, 0)));
u32 scissorY = (u32)(0.5f + std::max(vecTL.y, (f32)std::max(-Settings.AdjustOverscanY, 0)));
u32 scissorW = (u32)std::max(std::min(vecBR.x, ScreenProps.x-1+Settings.AdjustOverscanX) - scissorX, 0.0f);
u32 scissorH = (u32)std::max(vecBR.y - scissorY, 0.0f);
GX_SetScissor(scissorX, scissorY, scissorW, scissorH );
// save scissor value for grid cut of left/right part
if(chIdx == 0)
GridCutLeft = scissorX;
if(chIdx == pageCnt*12-1)
GridCutRight = scissorX+scissorW;
if(chIdx >= (int) bannerList.size() || !bannerList[chIdx]->getIcon())
{
//! If out of range or the icon is not loaded yet render the static frame
staticFrame.Render(iconview, ScreenProps, Settings.widescreen);
}
else
{
Menu_DrawRectangle(0, 0, screenwidth, screenheight, (GXColor) { 0, 0, 0, 255}, 1);
bannerList[chIdx]->getIcon()->Render(iconview, ScreenProps, Settings.widescreen);
bannerList[chIdx]->getIcon()->AdvanceFrame();
if(bSkipFrame)
bannerList[chIdx]->getIcon()->AdvanceFrame();
}
}
//! only advance the static animation once for the whole loop
staticFrame.AdvanceFrame();
if(bSkipFrame)
staticFrame.AdvanceFrame();
//! scissor box for the grid
//! don't draw grid outside of overscan render range and cut off the stuff before first and after last element
u32 scissorX = (u32)std::max(-Settings.AdjustOverscanX, GridCutLeft);
u32 scissorY = (u32)std::max(-Settings.AdjustOverscanY, 0);
u32 scissorW = (u32)LIMIT(ScreenProps.x-1 + Settings.AdjustOverscanX * 2.f, 0.f, GridCutRight - scissorX);
u32 scissorH = (u32)std::max(ScreenProps.x-1 + Settings.AdjustOverscanY * 2.f, 0.f);
GX_SetScissor(scissorX, scissorY, scissorW, scissorH);
//! Reset GX after icons
ReSetup_GX();
GX_ClearVtxDesc();
GX_InvVtxCache();
GX_InvalidateTexAll();
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT);
Mtx mv;
guMtxIdentity(mv);
guMtxScaleApply(mv, mv, gridwidth, gridheight, 1.0f);
guMtxTransApply(mv, mv, (ScreenProps.x - gridwidth) * 0.5f + XOffset,
(ScreenProps.y - gridheight) * 0.5f + YOffset,
0.f);
guMtxConcat(modelview, mv, mv);
GX_LoadPosMtxImm(mv, GX_PNMTX0);
// this texture uses the default environment
gridFrameTex.Apply(Tlut, GX_TEXMAP0, GX_MIRROR, GX_MIRROR);
GX_Begin(GX_QUADS, GX_VTXFMT0, 4);
GX_Position3f32(0.f, 0.f, 0.f);
GX_Color4u8(gridFrameColor.r, gridFrameColor.g, gridFrameColor.b, gridFrameColor.a);
GX_TexCoord2f32(0.f, 6.f); // 3 rows
GX_Position3f32(1.f, 0.f, 0.f);
GX_Color4u8(gridFrameColor.r, gridFrameColor.g, gridFrameColor.b, gridFrameColor.a);
GX_TexCoord2f32(32.f, 6.f); // 16 columns, 3 rows
GX_Position3f32(1.f, 1.f, 0.f);
GX_Color4u8(gridFrameColor.r, gridFrameColor.g, gridFrameColor.b, gridFrameColor.a);
GX_TexCoord2f32(32.f, 0.f); // 16 columns
GX_Position3f32(0.f, 1.f, 0.f);
GX_Color4u8(gridFrameColor.r, gridFrameColor.g, gridFrameColor.b, gridFrameColor.a);
GX_TexCoord2f32(0.f, 0.f);
GX_End();
// this texture uses it's own tev and the same position as the above
gridFrameEdgeTex.Apply(Tlut, GX_TEXMAP0, GX_MIRROR, GX_MIRROR);
// color registers
GX_SetTevColorS10(GX_TEVREG0, gridFrameTevColor[0]);
GX_SetTevColorS10(GX_TEVREG1, gridFrameTevColor[1]);
GX_SetTevColorS10(GX_TEVREG2, gridFrameTevColor[2]);
// texture environment
GX_SetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD0, GX_TEXMAP0, GX_COLORNULL );
GX_SetTevSwapMode(GX_TEVSTAGE0, GX_TEV_SWAP0, GX_TEV_SWAP0);
GX_SetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C1);
GX_SetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV );
GX_SetTevKColorSel(GX_TEVSTAGE0, GX_TEV_KCSEL_K3_A );
GX_SetTevAlphaIn(GX_TEVSTAGE0, GX_CA_A0, GX_CA_A1, GX_CA_TEXA, GX_CA_ZERO);
GX_SetTevAlphaOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_FALSE, GX_TEVPREV );
GX_SetTevKAlphaSel(GX_TEVSTAGE0, GX_TEV_KASEL_K3_A );
GX_SetNumTevStages(1);
GX_Begin(GX_QUADS, GX_VTXFMT0, 4);
GX_Position3f32(0.f, 0.f, 0.f);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(0.f, 6.f); // 3 rows
GX_Position3f32(1.f, 0.f, 0.f);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(32.f, 6.f); // 16 columns, 3 rows
GX_Position3f32(1.f, 1.f, 0.f);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(32.f, 0.f); // 16 columns
GX_Position3f32(0.f, 1.f, 0.f);
GX_Color4u8(0xFF, 0xFF, 0xFF, 0xFF);
GX_TexCoord2f32(0.f, 0.f);
GX_End();
// reset GX configs
ReSetup_GX();
// render highlter
for(int sIdx = 0; sIdx < MAX_BUTTONS; sIdx++)
{
// only render selected and when no animation is on going
if(!AnimationRunning && gridBtn[sIdx]->GetState() == STATE_SELECTED)
{
int row = Idx2Row(sIdx);
int column = Idx2Column(sIdx);
Mtx hlview;
guMtxTransApply(modelview, hlview, XOffset + chanWidth * column - chanWidth * 1.5f,
-YOffset - chanHeight * row + chanHeight, 0.f);
RenderHighliter(hlview);
}
}
// reset GX configs
ReSetup_GX();
// remove scissor again
GX_SetScissor(0, 0, vmode->fbWidth, vmode->efbHeight);
if(pageNo > 0)
btnLeft->Draw();
if(pageNo < pageCnt-1)
btnRight->Draw();
for(int i = 0; i < MAX_BUTTONS; i++)
{
if(AnimationRunning)
gridBtn[i]->ResetState();
if (!AnimationRunning && Settings.marknewtitles && (pageNo * 12 + i) < gameList.size()
&& NewTitles::Instance()->IsNew(gameList[pageNo * 12 + i]->id))
gridBtn[i]->Draw();
gridBtn[i]->DrawTooltip();
}
}

View File

@ -0,0 +1,95 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef _GUIBANNERGRID_H_
#define _GUIBANNERGRID_H_
#include <vector>
#include "gui.h"
#include "gui_gamebrowser.h"
#include "usbloader/disc.h"
#include "banner/BannerAsync.h"
#include "banner/Texture.h"
#include "SystemMenu/StaticFrame.h"
#define MAX_BUTTONS 12
class GuiBannerGrid : public GuiGameBrowser
{
public:
GuiBannerGrid(int listOffset);
virtual ~GuiBannerGrid();
int GetClickedOption(void);
int GetSelectedOption(void);
int getListOffset(void) const { return pageNo * 12; }
void GetIconCoordinates(int icon, f32 *x, f32 *y);
void Update(GuiTrigger *t);
void SetPage(int page) { pageNo = LIMIT(page, 0, pageCnt-1); UpdateTooltips(); }
void Draw();
private:
void RenderHighliter(Mtx &modelview);
void UpdateTooltips(void);
static const float gridwidth = 2048.f;
static const float gridheight = 288.f;
static const float chanWidth = 128.f;
static const float chanHeight = 96.f;
const int XOffset;
const int YOffset;
float fAnimation;
float fAnimStep;
bool AnimationRunning;
int pageNo;
int pageCnt;
Vec2f ScreenProps;
Texture gridFrameTex;
Texture gridFrameEdgeTex;
Texture gridHighliteTex;
StaticFrame staticFrame;
GXColor gridFrameColor;
GXColor highliteColor;
GXColorS10 gridFrameTevColor[3];
Mtx gridview;
std::vector<BannerAsync *> bannerList;
GuiTrigger trigA;
GuiTrigger trigL;
GuiTrigger trigR;
GuiTrigger trigPlus;
GuiTrigger trigMinus;
GuiImageData * imgLeft;
GuiImageData * imgRight;
GuiImageData * imgNewData;
GuiImage * btnLeftImg;
GuiImage * btnRightImg;
GuiImage * gridNewImg[MAX_BUTTONS];
GuiButton * btnLeft;
GuiButton * btnRight;
GuiButton * gridBtn[MAX_BUTTONS];
GuiTooltip * gridTT[MAX_BUTTONS];
};
#endif

View File

@ -45,6 +45,7 @@
#include "OptionList.hpp"
#include "SoundOperations/gui_sound.h"
#include "SoundOperations/gui_bgm.h"
#include "utils/timer.h"
#include "sigslot.h"
//! Frequently used variables
@ -64,9 +65,9 @@ typedef void (*UpdateCallback)(void * e);
enum
{
ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTRE, ALIGN_TOP, ALIGN_BOTTOM, ALIGN_MIDDLE
ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER, ALIGN_TOP, ALIGN_BOTTOM, ALIGN_MIDDLE
};
#define ALIGN_CENTER ALIGN_CENTRE
enum
{
STATE_DEFAULT, STATE_SELECTED, STATE_CLICKED, STATE_HELD, STATE_DISABLED
@ -352,7 +353,7 @@ class GuiElement
//!\return true if selected, false otherwise
virtual int GetSelected();
//!Sets the element's alignment respective to its parent element
//!\param hor Horizontal alignment (ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTRE)
//!\param hor Horizontal alignment (ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER)
//!\param vert Vertical alignment (ALIGN_TOP, ALIGN_BOTTOM, ALIGN_MIDDLE)
virtual void SetAlignment(int hor, int vert);
//!Called constantly to allow the element to respond to the current input data
@ -644,7 +645,7 @@ class GuiText: public GuiElement
//!\param m Style-Mask attributes
void SetStyle(u16 s);
//!Sets the text alignment
//!\param hor Horizontal alignment (ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTRE)
//!\param hor Horizontal alignment (ALIGN_LEFT, ALIGN_RIGHT, ALIGN_CENTER)
//!\param vert Vertical alignment (ALIGN_TOP, ALIGN_BOTTOM, ALIGN_MIDDLE)
void SetAlignment(int hor, int vert);
//!Set PassChar
@ -712,10 +713,8 @@ class GuiTooltip: public GuiElement
//!Constructor
//!\param t Text
GuiTooltip(const char *t, int Alpha = 255);
//!Destructor
virtual ~GuiTooltip();
//!Gets the element's current scale
//!Considers scale, scaleDyn, and the parent element's GetScale() value
float GetScale();
@ -725,7 +724,6 @@ class GuiTooltip: public GuiElement
void SetWidescreen(bool w); // timely a dummy
//!Constantly called to draw the GuiButton
void Draw();
protected:
GuiImageData * tooltipLeft;
GuiImageData * tooltipTile;
@ -848,7 +846,8 @@ class GuiButton: public GuiElement
GuiImage * iconHold; //!< Button icon for STATE_HELD
GuiImage * iconClick; //!< Button icon for STATE_CLICKED
GuiTooltip *toolTip;
time_t time1, time2;//!< Tooltip timeconstants
Timer ToolTipDelay;
bool bOldTooltipVisible;
GuiText * label[3]; //!< Label(s) to display (default)
GuiText * labelOver[3]; //!< Label(s) to display for STATE_SELECTED
GuiText * labelHold[3]; //!< Label(s) to display for STATE_HELD
@ -926,36 +925,4 @@ class GuiKeyboard: public GuiWindow
GuiTrigger * trigB;
};
//!On-screen keyboard
class GuiNumpad: public GuiWindow
{
public:
GuiNumpad(char * t, u32 max);
virtual ~GuiNumpad();
void Update(GuiTrigger * t);
char kbtextstr[256];
protected:
u32 kbtextmaxlen;
char keys[11];
GuiText * kbText;
GuiImage * keyTextboxImg;
GuiText * keyBackText;
GuiImage * keyBackImg;
GuiImage * keyBackOverImg;
GuiButton * keyBack;
GuiText * keyClearText;
GuiImage * keyClearImg;
GuiImage * keyClearOverImg;
GuiButton * keyClear;
GuiButton * keyBtn[11];
GuiImage * keyImg[11];
GuiImage * keyImgOver[11];
GuiText * keyTxt[11];
GuiImageData * keyTextbox;
GuiImageData * keyMedium;
GuiTrigger * trigA;
GuiTrigger * trigB;
};
#endif

View File

@ -9,6 +9,7 @@
***************************************************************************/
#include "gui.h"
#include "settings/CSettings.h"
static int scrollison = 0;
@ -44,8 +45,7 @@ GuiButton::GuiButton(int w, int h)
selectable = true;
holdable = false;
clickable = true;
time1 = time2 = 0;
bOldTooltipVisible = false;
}
GuiButton::GuiButton(GuiImage* img, GuiImage* imgOver, int hor, int vert, int x, int y, GuiTrigger* trig,
@ -84,6 +84,7 @@ GuiButton::GuiButton(GuiImage* img, GuiImage* imgOver, int hor, int vert, int x,
selectable = true;
holdable = false;
clickable = true;
bOldTooltipVisible = false;
if (grow == 1)
{
@ -91,7 +92,6 @@ GuiButton::GuiButton(GuiImage* img, GuiImage* imgOver, int hor, int vert, int x,
effectAmountOver = 4;
effectTargetOver = 110;
}
time1 = time2 = 0;
}
GuiButton::GuiButton(GuiImage* img, GuiImage* imgOver, int hor, int vert, int x, int y, GuiTrigger* trig,
@ -130,6 +130,7 @@ GuiButton::GuiButton(GuiImage* img, GuiImage* imgOver, int hor, int vert, int x,
selectable = true;
holdable = false;
clickable = true;
bOldTooltipVisible = false;
if (grow == 1)
{
@ -144,9 +145,8 @@ GuiButton::GuiButton(GuiImage* img, GuiImage* imgOver, int hor, int vert, int x,
toolTip->SetParent(this);
toolTip->SetAlignment(h_align, v_align);
toolTip->SetPosition(ttx, tty);
toolTip->SetVisible(false);
}
time1 = time2 = 0;
}
/**
@ -253,7 +253,7 @@ void GuiButton::SetToolTip(GuiTooltip* tt, int x, int y, int h_align, int v_alig
toolTip->SetParent(this);
toolTip->SetAlignment(h_align, v_align);
toolTip->SetPosition(x, y);
toolTip->SetVisible(false);
}
}
@ -341,33 +341,36 @@ void GuiButton::Draw()
}
void GuiButton::DrawTooltip()
{
LOCK( this );
if (this->IsVisible() && state == STATE_SELECTED && toolTip)
{
if (time2 == 0)
{
time(&time1);
time2 = time1;
}
if (time1 != 0) // timer läuft
time(&time1);
if (!toolTip)
return;
if (time1 == 0 || difftime(time1, time2) >= 2)
LOCK( this );
bool isVisible = this->IsVisible() && state == STATE_SELECTED;
if (isVisible)
{
if(!bOldTooltipVisible) {
ToolTipDelay.reset();
}
else if(!toolTip->IsVisible() && (int) ToolTipDelay.elapsed_millisecs() > Settings.TooltipDelay)
{
if (time1 != 0) // timer gerade abgelaufen
toolTip->SetEffect(EFFECT_FADE, 20);
time1 = 0;
toolTip->Draw();
return;
toolTip->SetVisible(true);
}
}
else
{
if (time2 != 0 && time1 == 0) // timer abgelaufen, gerade DESELECT
if (toolTip) toolTip->SetEffect(EFFECT_FADE, -20);
time2 = 0;
if(bOldTooltipVisible)
toolTip->SetEffect(EFFECT_FADE, -20);
if(toolTip->GetEffect() == 0)
toolTip->SetVisible(false);
}
if (toolTip && toolTip->GetEffect()) toolTip->Draw();
toolTip->Draw();
bOldTooltipVisible = isVisible;
}
void GuiButton::ScrollIsOn(int f)
{

View File

@ -36,6 +36,7 @@ GuiCheckboxBrowser::GuiCheckboxBrowser(int w, int h, int s)
selectedItem = 0;
pageIndex = 0;
pressedChan = -1;
maxTextWidth = 280;
maxSize = s;
scrollBar.SetParent(this);
scrollBar.SetAlignment(thAlign("right - checkbox browser scrollbar align hor"), thAlign("top - checkbox browser scrollbar align ver"));
@ -98,6 +99,7 @@ bool GuiCheckboxBrowser::AddEntrie(const string &text, bool checked)
textLineList[currentSize] = new GuiText(text.c_str(), 18, thColor("r=0 g=0 b=0 a=255 - checkbox browser text color"));
textLineList[currentSize]->SetParent(this);
textLineList[currentSize]->SetAlignment(ALIGN_LEFT, ALIGN_TOP);
textLineList[currentSize]->SetMaxWidth(maxTextWidth, DOTTED);
if(textLineDrawn.size() < (u32) maxSize)
{
@ -148,7 +150,7 @@ void GuiCheckboxBrowser::RefreshList()
checkBoxDrawn[i]->SetPosition(-scrollBar.GetWidth()-10, 15+i*(checkBoxDrawn[i]->GetHeight()+6));
textLineDrawn[i] = textLineList[pageIndex+i];
textLineDrawn[i]->SetPosition(25, 15+i*(checkBoxDrawn[i]->GetHeight()+6)+(checkBoxDrawn[i]->GetHeight()-textLineDrawn[i]->GetFontSize())/2+2);
textLineDrawn[i]->SetPosition(25, 10+i*(checkBoxDrawn[i]->GetHeight()+6)+(checkBoxDrawn[i]->GetHeight()-textLineDrawn[i]->GetFontSize())/2+2);
}
scrollBar.SetSelectedItem(selectedItem);
scrollBar.SetSelectedIndex(pageIndex);
@ -190,10 +192,14 @@ void GuiCheckboxBrowser::Update(GuiTrigger *t)
{
if(pressedChan == -1 || (!t->wpad.btns_h && !t->pad.btns_h))
{
if(i != (u32) selectedItem && checkBoxDrawn[i]->GetState() == STATE_SELECTED)
if(i != (u32) selectedItem && checkBoxDrawn[i]->GetState() == STATE_SELECTED) {
textLineList[i]->SetMaxWidth(maxTextWidth, DOTTED);
checkBoxDrawn[i]->ResetState();
else if(i == (u32) selectedItem && checkBoxDrawn[i]->GetState() == STATE_DEFAULT)
}
else if(i == (u32) selectedItem && checkBoxDrawn[i]->GetState() == STATE_DEFAULT) {
checkBoxDrawn[selectedItem]->SetState(STATE_SELECTED, -1);
textLineList[i]->SetMaxWidth(maxTextWidth, SCROLL_HORIZONTAL);
}
checkBoxDrawn[i]->Update(t);

View File

@ -37,7 +37,10 @@ class GuiCheckboxBrowser : public GuiElement, public sigslot::has_slots<>
GuiCheckboxBrowser(int w, int h, int maxSize = 7);
virtual ~GuiCheckboxBrowser();
bool AddEntrie(const string &text, bool checked = false);
int GetSelected() const { return pageIndex+selectedItem; };
int GetSelected() const { return pageIndex+selectedItem; }
bool IsChecked(u32 i) { if(i >= checkBoxList.size()) return false; else return checkBoxList[i]->IsChecked(); }
GuiCheckbox *GetCheckbox(u32 i) { if(i >= checkBoxList.size()) return NULL; else return checkBoxList[i]; }
void SetMaxTextWidth(u32 w) { maxTextWidth = w; }
void SetImage(GuiImage *Img);
void RefreshList();
void Clear();
@ -51,6 +54,7 @@ class GuiCheckboxBrowser : public GuiElement, public sigslot::has_slots<>
int selectedItem;
int pageIndex;
int pressedChan;
int maxTextWidth;
bool blocked;
GuiScrollbar scrollBar;

View File

@ -111,7 +111,7 @@ int GuiElement::GetLeft()
case ALIGN_LEFT:
x = pLeft;
break;
case ALIGN_CENTRE:
case ALIGN_CENTER:
x = pLeft + (pWidth / 2) - (width / 2);
break;
case ALIGN_RIGHT:
@ -541,16 +541,16 @@ void GuiElement::UpdateEffects()
if (fabs(frequency) < circleamount)
{
angleDyn = (frequency + degree + 90.0f) * anglespeed;
xoffsetDyn = (int) lround(((f32) Radius) * cos((frequency + degree) * PI / 180.0f));
yoffsetDyn = (int) lround(((f32) Radius) * sin((frequency + degree) * PI / 180.0f));
xoffsetDyn = (int) lround(((f32) Radius) * cosf((frequency + degree) * PI / 180.0f));
yoffsetDyn = (int) lround(((f32) Radius) * sinf((frequency + degree) * PI / 180.0f));
frequency += ((f32) effectAmount) * 0.01f;
}
else
{
f32 temp_frequency = ((effectAmount < 0) ? -1.0f : 1.0f) * circleamount;
angleDyn = (temp_frequency + degree + 90.0f) * anglespeed;
xoffsetDyn = (int) lround(((f32) Radius) * cos((temp_frequency + degree) * PI / 180.0f));
yoffsetDyn = (int) lround(((f32) Radius) * sin((temp_frequency + degree) * PI / 180.0f));
xoffsetDyn = (int) lround(((f32) Radius) * cosf((temp_frequency + degree) * PI / 180.0f));
yoffsetDyn = (int) lround(((f32) Radius) * sinf((temp_frequency + degree) * PI / 180.0f));
xoffset += xoffsetDyn;
yoffset += yoffsetDyn;
effects ^= EFFECT_GOROUND;
@ -561,20 +561,20 @@ void GuiElement::UpdateEffects()
if (effects & EFFECT_ROCK_VERTICLE)
{
//move up to 10pixel above 0
if (changervar == 0 && yoffsetDynFloat < 11.0)
if (changervar == 0 && yoffsetDynFloat < 11.0f)
{
yoffsetDynFloat += (effectAmount * 0.01);
yoffsetDynFloat += (effectAmount * 0.01f);
}
else if (yoffsetDynFloat > 10.0)
else if (yoffsetDynFloat > 10.0f)
{
changervar = 1;
}
//move down till 10pixel under 0
if (changervar == 1 && yoffsetDynFloat > -11.0)
if (changervar == 1 && yoffsetDynFloat > -11.0f)
{
yoffsetDynFloat -= (effectAmount * 0.01);
yoffsetDynFloat -= (effectAmount * 0.01f);
}
else if (yoffsetDynFloat < -10.0)
else if (yoffsetDynFloat < -10.0f)
{
changervar = 0;
}
@ -598,12 +598,12 @@ void GuiElement::UpdateEffects()
}
if (effects & EFFECT_SCALE)
{
scaleDyn += effectAmount / 100.0;
scaleDyn += effectAmount / 100.0f;
if ((effectAmount < 0 && scaleDyn <= effectTarget / 100.0) || (effectAmount > 0 && scaleDyn >= effectTarget
/ 100.0))
if ((effectAmount < 0 && scaleDyn <= effectTarget / 100.0f) || (effectAmount > 0 && scaleDyn >= effectTarget
/ 100.0f))
{
scaleDyn = effectTarget / 100.0;
scaleDyn = effectTarget / 100.0f;
effects = 0; // shut off effect
}
}
@ -611,19 +611,19 @@ void GuiElement::UpdateEffects()
{
int percent = 10; //go down from target by this
if ((scaleDyn <= (effectTarget * 0.01)) && (!changervar))
if ((scaleDyn <= (effectTarget * 0.01f)) && (!changervar))
{
scaleDyn += (effectAmount * 0.001);
scaleDyn += (effectAmount * 0.001f);
}
else if (scaleDyn > (effectTarget * 0.01))
else if (scaleDyn > (effectTarget * 0.01f))
{
changervar = 1;
}
if ((scaleDyn >= ((effectTarget - percent) * 0.01)) && (changervar))
if ((scaleDyn >= ((effectTarget - percent) * 0.01f)) && (changervar))
{
scaleDyn -= (effectAmount * 0.001);
scaleDyn -= (effectAmount * 0.001f);
}
else if (scaleDyn < ((effectTarget - percent) * 0.01))
else if (scaleDyn < ((effectTarget - percent) * 0.01f))
{
changervar = 0;
}

View File

@ -29,11 +29,11 @@
class GuiGameBrowser : public GuiElement
{
public:
GuiGameBrowser() {};
virtual ~GuiGameBrowser() {};
virtual int GetClickedOption() { return 0; };
virtual int GetSelectedOption() { return 0; };
virtual void SetSelectedOption(int ind) {};
GuiGameBrowser() {}
virtual ~GuiGameBrowser() {}
virtual int GetClickedOption() { return -1; }
virtual int GetSelectedOption() { return -1; }
virtual void SetSelectedOption(int ind) {}
virtual void setListOffset(int off) {}
virtual int getListOffset() const { return 0; }
};

View File

@ -102,7 +102,7 @@ GuiGameCarousel::GuiGameCarousel(int w, int h, const char *themePath, int offset
gamename = new GuiText(" ", 18, thColor("r=55 g=190 b=237 a=255 - carousel game name text color"));
gamename->SetParent(this);
gamename->SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
gamename->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
gamename->SetPosition(0, 330);
gamename->SetMaxWidth(280, DOTTED);
@ -190,7 +190,7 @@ void GuiGameCarousel::Refresh()
delete game[i];
game[i] = new GuiButton(122, 244);
game[i]->SetParent(this);
game[i]->SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
game[i]->SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
game[i]->SetPosition(0, 740);
game[i]->SetImage(coverImg[i]);
game[i]->SetScale(SCALE);

View File

@ -574,7 +574,7 @@ void GuiGameGrid::Update(GuiTrigger * t)
game[i]->SetToolTip(titleTT[i], ttoffset_x, ttoffset_y, ALIGN_LEFT, ALIGN_MIDDLE);
break;
case 1:
game[i]->SetToolTip(titleTT[i], 0, ttoffset_y, ALIGN_CENTRE, ALIGN_MIDDLE);
game[i]->SetToolTip(titleTT[i], 0, ttoffset_y, ALIGN_CENTER, ALIGN_MIDDLE);
break;
case 2:
game[i]->SetToolTip(titleTT[i], -ttoffset_x, ttoffset_y, ALIGN_RIGHT, ALIGN_MIDDLE);
@ -661,7 +661,7 @@ void GuiGameGrid::Update(GuiTrigger * t)
game[i]->SetToolTip(titleTT[i], ttoffset_x, ttoffset_y, ALIGN_LEFT, ALIGN_MIDDLE);
break;
case 1:
game[i]->SetToolTip(titleTT[i], 0, ttoffset_y, ALIGN_CENTRE, ALIGN_MIDDLE);
game[i]->SetToolTip(titleTT[i], 0, ttoffset_y, ALIGN_CENTER, ALIGN_MIDDLE);
break;
case 2:
game[i]->SetToolTip(titleTT[i], -ttoffset_x, ttoffset_y, ALIGN_RIGHT, ALIGN_MIDDLE);
@ -814,7 +814,7 @@ void GuiGameGrid::Reload(int Rows, int ListOffset)
game[i]->SetToolTip(titleTT[i], ttoffset_x, ttoffset_y, ALIGN_LEFT, ALIGN_MIDDLE);
break;
case 1:
game[i]->SetToolTip(titleTT[i], 0, ttoffset_y, ALIGN_CENTRE, ALIGN_MIDDLE);
game[i]->SetToolTip(titleTT[i], 0, ttoffset_y, ALIGN_CENTER, ALIGN_MIDDLE);
break;
case 2:
game[i]->SetToolTip(titleTT[i], -ttoffset_x, ttoffset_y, ALIGN_RIGHT, ALIGN_MIDDLE);

View File

@ -121,7 +121,7 @@ u32 GuiImageAsync::ThreadInit()
if (Thread == LWP_THREAD_NULL)
{
LWP_MutexInit(&ListLock, false);
LWP_CreateThread(&Thread, GuiImageAsyncThread, NULL, NULL, 32768, 80);
LWP_CreateThread(&Thread, GuiImageAsyncThread, NULL, NULL, 32768, 70);
}
return ++ThreadCount;
}

View File

@ -31,7 +31,7 @@ GuiKeyboard::GuiKeyboard(char * t, u32 max, int minimum, int lang)
int mode = lang;
textVisible = true;
selectable = true;
alignmentHor = ALIGN_CENTRE;
alignmentHor = ALIGN_CENTER;
alignmentVert = ALIGN_MIDDLE;
kbtextmaxlen = max > sizeof(kbtextstr) ? sizeof(kbtextstr) : max; // limit max up to sizeof(kbtextstr)
memset(kbtextstr, 0, sizeof(kbtextstr));
@ -209,12 +209,12 @@ GuiKeyboard::GuiKeyboard(char * t, u32 max, int minimum, int lang)
keyTextbox = Resources::GetImageData("keyboard_textbox.png");
keyTextboxImg = new GuiImage(keyTextbox);
keyTextboxImg->SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
keyTextboxImg->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
keyTextboxImg->SetPosition(0, 40);//(0,0);
this->Append(keyTextboxImg);
kbText = new GuiText(kbtextstr, 20, thColor("r=0 g=0 b=0 a=255 - keyboard text color"));
kbText->SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
kbText->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
kbText->SetPosition(0, 53);//(0, 13);
this->Append(kbText);
@ -369,7 +369,7 @@ GuiKeyboard::GuiKeyboard(char * t, u32 max, int minimum, int lang)
//keySpace->SetSoundClick(btnSoundClick);
//keySpace->SetTrigger(trigA);
//keySpace->SetPosition(0+eurocheck, 4*42+120);//(0, 4*42+80);
//keySpace->SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
//keySpace->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
//keySpace->SetEffectGrow();
this->Append(keySpace);
@ -384,7 +384,7 @@ GuiKeyboard::GuiKeyboard(char * t, u32 max, int minimum, int lang)
keyImgOver[i][j] = new GuiImage(keyOver);
txt[0] = keys[i][j].ch;
keyTxt[i][j] = new GuiText(txt, 20, thColor("r=0 g=0 b=0 a=255 - keyboard key text color"));
keyTxt[i][j]->SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM);
keyTxt[i][j]->SetAlignment(ALIGN_CENTER, ALIGN_BOTTOM);
keyTxt[i][j]->SetPosition(0, -10);
keyBtn[i][j] = new GuiButton(keyImg[i][j], keyImgOver[i][j], 0, 3, (j * 42 + 21 * i + 40) + eurocheck,
i * 42 + 120, trigA, btnSoundOver, btnSoundClick, 1);

View File

@ -1,18 +1,31 @@
/****************************************************************************
* USB Loader GX
* Copyright (C) 2009 r-win
* Copyright (C) 2012 Dimok
*
* r-win 2009
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any
* damages arising from the use of this software.
*
* gui_numpad.cpp
* Permission is granted to anyone to use this software for any
* purpose, including commercial applications, and to alter it and
* redistribute it freely, subject to the following restrictions:
*
* GUI class definitions
* 1. The origin of this software must not be misrepresented; you
* must not claim that you wrote the original software. If you use
* this software in a product, an acknowledgment in the product
* documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and
* must not be misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
***************************************************************************/
#include "gui.h"
#include "../main.h"
#include "../settings/CSettings.h"
#include <stdio.h>
#include <string.h>
#include "gui_numpad.h"
#include "main.h"
#include "language/gettext.h"
#include "settings/CSettings.h"
#include "themes/CTheme.h"
/**
* Constructor for the GuiNumpad class.
*/
@ -22,30 +35,27 @@ GuiNumpad::GuiNumpad(char * t, u32 max)
width = 400;
height = 370;
selectable = true;
alignmentHor = ALIGN_CENTRE;
alignmentHor = ALIGN_CENTER;
alignmentVert = ALIGN_MIDDLE;
kbtextmaxlen = max > sizeof(kbtextstr) ? sizeof(kbtextstr) : max; // limit max up to sizeof(kbtextstr)
// strlcpy(kbtextstr, t, kbtextmaxlen);
strncpy(kbtextstr, t, kbtextmaxlen); // strncpy is needed to fill the rest with \0
kbtextstr[sizeof(kbtextstr) - 1] = 0; // terminate with \0
char thekeys[11] = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '\0', '0' };
char thekeys[12] = { '1', '2', '3', '4', '5', '6', '7', '8', '9', '-', '0', '.'};
memcpy(keys, thekeys, sizeof(thekeys));
keyTextbox = new GuiImageData("keyboard_textbox.png");
keyTextbox = Resources::GetImageData("keyboard_textbox.png");
keyTextboxImg = new GuiImage(keyTextbox);
keyTextboxImg->SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
keyTextboxImg->SetPosition(0, 40);//(0,0);
keyTextboxImg->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
keyTextboxImg->SetPosition(0, 0);
this->Append(keyTextboxImg);
kbText = new GuiText(kbtextstr, 20, ( GXColor )
{ 0, 0, 0, 0xff});
kbText->SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
kbText->SetPosition(0, 53);//(0, 13);
kbText->SetPassChar('*');
kbText = new GuiText(kbtextstr, 20, ( GXColor ) thColor("r=0 g=0 b=0 a=255 - numpad text color"));
kbText->SetAlignment(ALIGN_CENTER, ALIGN_TOP);
kbText->SetPosition(0, 10);
this->Append(kbText);
keyMedium = new GuiImageData("keyboard_mediumkey_over.png");
keyMedium = Resources::GetImageData("keyboard_mediumkey_over.png");
trigA = new GuiTrigger;
trigA->SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
@ -53,44 +63,35 @@ GuiNumpad::GuiNumpad(char * t, u32 max)
trigB->SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B);
keyBackImg = new GuiImage(keyMedium);
keyBackOverImg = new GuiImage(keyMedium);
keyBackText = new GuiText("Back", 20, ( GXColor )
{ 0, 0, 0, 0xff});
keyBackText = new GuiText(tr("Back"), 20, (GXColor) thColor("r=0 g=0 b=0 a=255 - numpad key text color"));
keyBack = new GuiButton(keyBackImg, keyBackOverImg, ALIGN_CENTRE, ALIGN_MIDDLE, 90, 80, trigA, btnSoundOver, btnSoundClick, 1);
keyBack = new GuiButton(keyBackImg, keyBackImg, ALIGN_CENTER, ALIGN_MIDDLE, 90, 90, trigA, btnSoundOver, btnSoundClick, 1);
keyBack->SetLabel(keyBackText);
keyBack->SetTrigger(trigB);
this->Append(keyBack);
keyClearImg = new GuiImage(keyMedium);
keyClearOverImg = new GuiImage(keyMedium);
keyClearText = new GuiText("Clear", 20, ( GXColor )
{ 0, 0, 0, 0xff});
keyClear = new GuiButton(keyClearImg, keyClearOverImg, ALIGN_CENTRE, ALIGN_MIDDLE, -90, 80, trigA, btnSoundOver, btnSoundClick, 1);
keyClearText = new GuiText(tr("Clear"), 20, ( GXColor ) thColor("r=0 g=0 b=0 a=255 - numpad key text color"));
keyClear = new GuiButton(keyClearImg, keyClearImg, ALIGN_CENTER, ALIGN_MIDDLE, -90, 90, trigA, btnSoundOver, btnSoundClick, 1);
keyClear->SetLabel(keyClearText);
this->Append(keyClear);
char txt[2] = { 0, 0 };
for (int i = 0; i < 11; i++)
for (int i = 0; i < NUMPAD_BUTTONS; i++)
{
if (keys[i] != '\0')
{
int col = i % 3;
int row = i / 3;
int col = i % 3;
int row = i / 3;
keyImg[i] = new GuiImage(keyMedium);
keyImgOver[i] = new GuiImage(keyMedium);
txt[0] = keys[i];
keyTxt[i] = new GuiText(txt, 20, ( GXColor )
{ 0, 0, 0, 0xff});
keyTxt[i]->SetAlignment(ALIGN_CENTRE, ALIGN_BOTTOM);
keyTxt[i]->SetPosition(0, -10);
keyBtn[i] = new GuiButton(keyImg[i], keyImgOver[i], ALIGN_CENTRE, ALIGN_MIDDLE, -90 + 90 * col, -70 + 50
* row, trigA, btnSoundOver, btnSoundClick, 1);
keyBtn[i]->SetLabel(keyTxt[i]);
txt[0] = keys[i];
keyImg[i] = new GuiImage(keyMedium);
keyTxt[i] = new GuiText(txt, 20, (GXColor) thColor("r=0 g=0 b=0 a=255 - numpad key text color"));
keyTxt[i]->SetAlignment(ALIGN_CENTER, ALIGN_BOTTOM);
keyTxt[i]->SetPosition(0, -10);
keyBtn[i] = new GuiButton(keyImg[i], keyImg[i], ALIGN_CENTER, ALIGN_MIDDLE, -90 + 90 * col, -110 + 50
* row, trigA, btnSoundOver, btnSoundClick, 1);
keyBtn[i]->SetLabel(keyTxt[i]);
this->Append(keyBtn[i]);
}
this->Append(keyBtn[i]);
}
}
@ -104,43 +105,27 @@ GuiNumpad::~GuiNumpad()
delete keyTextboxImg;
delete keyBackText;
delete keyBackImg;
delete keyBackOverImg;
delete keyBack;
delete keyClear;
delete keyClearImg;
delete keyClearOverImg;
delete keyClearText;
delete keyClearImg;
delete keyClear;
delete keyMedium;
delete trigA;
delete trigB;
for (int i = 0; i < 11; i++)
for (int i = 0; i < NUMPAD_BUTTONS; i++)
{
if (keys[i] != '\0')
{
delete keyImg[i];
delete keyImgOver[i];
delete keyTxt[i];
delete keyBtn[i];
}
delete keyImg[i];
delete keyTxt[i];
delete keyBtn[i];
}
}
void GuiNumpad::Update(GuiTrigger * t)
{
LOCK( this );
if (_elements.size() == 0 || (state == STATE_DISABLED && parentElement)) return;
GuiWindow::Update(t);
for (u8 i = 0; i < _elements.size(); i++)
{
try
{
_elements.at(i)->Update(t);
}
catch (const std::exception& e)
{
}
}
LOCK( this );
if (keyBack->GetState() == STATE_CLICKED)
{
@ -158,23 +143,18 @@ void GuiNumpad::Update(GuiTrigger * t)
keyClear->SetState(STATE_SELECTED, t->chan);
}
char txt[2] = { 0, 0 };
for (int i = 0; i < 11; i++)
for (int i = 0; i < NUMPAD_BUTTONS; i++)
{
if (keys[i] != '\0')
if (keyBtn[i]->GetState() == STATE_CLICKED)
{
if (keyBtn[i]->GetState() == STATE_CLICKED)
if (strlen(kbtextstr) < kbtextmaxlen - 1) // -1 --> kbtextmaxlen means with term. '\0'
{
txt[0] = keys[i];
if (strlen(kbtextstr) < kbtextmaxlen - 1) // -1 --> kbtextmaxlen means with term. '\0'
{
kbtextstr[strlen(kbtextstr)] = txt[0];
kbText->SetText(kbtextstr);
}
keyBtn[i]->SetState(STATE_SELECTED, t->chan);
int len = strlen(kbtextstr);
kbtextstr[len] = keys[i];
kbtextstr[len+1] = 0;
kbText->SetText(kbtextstr);
}
keyBtn[i]->SetState(STATE_SELECTED, t->chan);
}
}
kbText->SetPosition(0, 53);
}

66
source/GUI/gui_numpad.h Normal file
View File

@ -0,0 +1,66 @@
/****************************************************************************
* Copyright (C) 2009 r-win
* Copyright (C) 2012 Dimok
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any
* damages arising from the use of this software.
*
* Permission is granted to anyone to use this software for any
* purpose, including commercial applications, and to alter it and
* redistribute it freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you
* must not claim that you wrote the original software. If you use
* this software in a product, an acknowledgment in the product
* documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and
* must not be misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
***************************************************************************/
#ifndef GUI_NUMPAD_H_
#define GUI_NUMPAD_H_
#include "gui.h"
#define NUMPAD_BUTTONS 12
//!On-screen keyboard
class GuiNumpad: public GuiWindow
{
public:
GuiNumpad(char * t, u32 max);
virtual ~GuiNumpad();
const char *GetText() const { return kbtextstr; }
void Update(GuiTrigger * t);
protected:
u32 kbtextmaxlen;
char keys[NUMPAD_BUTTONS];
char kbtextstr[256];
GuiText * kbText;
GuiText * keyBackText;
GuiImage * keyBackImg;
GuiButton * keyBack;
GuiText * keyClearText;
GuiImage * keyClearImg;
GuiButton * keyClear;
GuiButton * keyBtn[NUMPAD_BUTTONS];
GuiImage * keyImg[NUMPAD_BUTTONS];
GuiText * keyTxt[NUMPAD_BUTTONS];
GuiImage * keyTextboxImg;
GuiImageData * keyTextbox;
GuiImageData * keyMedium;
GuiTrigger * trigA;
GuiTrigger * trigB;
};
#endif

View File

@ -41,7 +41,7 @@ GuiSearchBar::GuiSearchBar() :
{
trig.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
trigB.SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B);
SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
cnt = SearchChars.size();
buttons = new cSearchButton*[cnt];

View File

@ -46,7 +46,7 @@ GuiText::GuiText(const char * t, int s, GXColor c)
textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY;
textScrollDelay = TEXT_SCROLL_DELAY;
alignmentHor = ALIGN_CENTRE;
alignmentHor = ALIGN_CENTER;
alignmentVert = ALIGN_MIDDLE;
if (t)
@ -75,7 +75,7 @@ GuiText::GuiText(const wchar_t * t, int s, GXColor c)
textScrollInitialDelay = TEXT_SCROLL_INITIAL_DELAY;
textScrollDelay = TEXT_SCROLL_DELAY;
alignmentHor = ALIGN_CENTRE;
alignmentHor = ALIGN_CENTER;
alignmentVert = ALIGN_MIDDLE;
if (t)
@ -240,6 +240,10 @@ void GuiText::SetFontSize(int s)
void GuiText::SetMaxWidth(int width, int w)
{
//! no need to reset timer on false set
if(wrapMode == w && maxWidth == width)
return;
LOCK( this );
maxWidth = width;
@ -524,10 +528,13 @@ void GuiText::WrapText()
*/
void GuiText::Draw()
{
if (!text) return;
if (!text || (*text == 0)) return;
if (!IsVisible()) return;
GX_LoadProjectionMtx(FSProjection2D, GX_ORTHOGRAPHIC);
GX_LoadPosMtxImm(FSModelView2D, GX_PNMTX0);
GXColor c = color;
c.a = GetAlpha();

View File

@ -0,0 +1,67 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef DML_CONFIG_H_
#define DML_CONFIG_H_
#include <gctypes.h>
#define DML_CONFIG_ADDRESS 0x80001700
#define DML_CONFIG_ADDRESS_V1_2 0x81200000
#define DML_MAGIC 0xD1050CF6
#define DML_VERSION 0x00000001
enum DMLConfig
{
DML_CFG_CHEATS = (1<<0),
DML_CFG_DEBUGGER = (1<<1),
DML_CFG_DEBUGWAIT = (1<<2),
DML_CFG_NMM = (1<<3),
DML_CFG_NMM_DEBUG = (1<<4),
DML_CFG_GAME_PATH = (1<<5),
DML_CFG_CHEAT_PATH = (1<<6),
DML_CFG_ACTIVITY_LED = (1<<7),
DML_CFG_PADHOOK = (1<<8),
DML_CFG_NODISC = (1<<9),
DML_CFG_BOOT_DISC = (1<<10),
DML_CFG_BOOT_DOL = (1<<11)
};
enum DMLVideoModes
{
DML_VID_DML_AUTO = (0<<16),
DML_VID_FORCE = (1<<16),
DML_VID_NONE = (2<<16),
DML_VID_FORCE_PAL50 = (1<<0),
DML_VID_FORCE_PAL60 = (1<<1),
DML_VID_FORCE_NTSC = (1<<2),
DML_VID_FORCE_PROG = (1<<3),
DML_VID_PROG_PATCH = (1<<4)
};
typedef struct _DML_CFG
{
u32 Magicbytes; // 0xD1050CF6
u32 Version; // 0x00000001
u32 VideoMode;
u32 Config;
char GamePath[255];
char CheatPath[255];
} DML_CFG;
#endif

View File

@ -0,0 +1,394 @@
/***************************************************************************
* Copyright (C) 2012
* by OverjoY and FIX94 for Wiiflow
*
* Adjustments for USB Loader GX by Dimok
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any
* damages arising from the use of this software.
*
* Permission is granted to anyone to use this software for any
* purpose, including commercial applications, and to alter it and
* redistribute it freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you
* must not claim that you wrote the original software. If you use
* this software in a product, an acknowledgment in the product
* documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and
* must not be misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
***************************************************************************/
#include <algorithm>
#include <stdio.h>
#include <unistd.h>
#include <malloc.h>
#include <sys/statvfs.h>
#include "GCDumper.hpp"
#include "FileOperations/fileops.h"
#include "language/gettext.h"
#include "prompts/ProgressWindow.h"
#include "usbloader/disc.h"
#include "usbloader/wdvd.h"
#include "usbloader/wbfs/wbfs_fat.h"
#include "usbloader/wbfs/wbfs_rw.h"
#include "utils/ShowError.h"
#include "utils/tools.h"
#include "gecko.h"
static const u32 BUF_SIZE = (64*1024);
GCDumper::GCDumper()
: force_align32(false)
, compressed(false)
, ReadBuffer((u8 *) memalign(32, ALIGN32(BUF_SIZE)))
{
}
GCDumper::~GCDumper()
{
if(ReadBuffer)
free(ReadBuffer);
}
s32 GCDumper::CopyDiscData(FILE *f, u64 offset, u32 length, u8 *buffer)
{
u32 toread = 0;
u32 wrote = 0;
while(length)
{
if(ProgressCanceled())
return PROGRESS_CANCELED;
ShowProgress(discWrote, discTotal);
toread = std::min(length, BUF_SIZE);
s32 ret = __ReadDVDPlain(buffer, toread, offset);
if (ret < 0)
return ret;
fwrite(buffer, 1, toread, f);
wrote += toread;
offset += toread;
length -= toread;
discWrote += toread;
}
return wrote;
}
s32 GCDumper::ReadDiscHeader(void)
{
if(!ReadBuffer)
return -1;
s32 result = 0;
struct discHdr *gcheader = (struct discHdr *) memalign(32, ALIGN32(sizeof(struct discHdr)));
if(!gcheader)
return -1;
s32 ret = Disc_ReadHeader(gcheader);
if(ret < 0) {
free(gcheader);
return ret;
}
if(memcmp(gcheader->id, "GCOPDV", 6) == 0)
{
while(result == 0)
{
__ReadDVDPlain(ReadBuffer, 0x10, 0x40+(gameOffsets.size()*4));
u64 MultiGameOffset = ((u64)(*(u32*)ReadBuffer)) << 2ULL;
if(!MultiGameOffset)
break;
ret = __ReadDVDPlain(gcheader, sizeof(struct discHdr), MultiGameOffset);
if(ret < 0)
result = -3;
if(ReadDiscInfo(MultiGameOffset) < 0)
result = -4;
discHeaders.push_back(*gcheader);
gameOffsets.push_back(MultiGameOffset);
}
}
else
{
discHeaders.push_back(*gcheader);
gameOffsets.push_back(0);
if(ReadDiscInfo(0) < 0)
result = -5;
}
free(gcheader);
return result;
}
int GCDumper::ReadDiscInfo(const u64 &game_offset)
{
if(!ReadBuffer)
return -1;
s32 ret = __ReadDVDPlain(ReadBuffer, 0x440, game_offset);
if(ret < 0)
return -2;
u32 FSTOffset = *(u32*)(ReadBuffer+0x424);
u32 FSTSize = *(u32*)(ReadBuffer+0x428);
u32 GamePartOffset = *(u32*)(ReadBuffer+0x434);
u32 DataSize = *(u32*)(ReadBuffer+0x438);
u32 DiscSize = DataSize + GamePartOffset;
u32 installSize = 0;
if(!compressed)
{
installSize += DiscSize;
}
else
{
u8 *FSTBuffer = (u8 *)memalign(32, ALIGN32(FSTSize));
ret = __ReadDVDPlain(FSTBuffer, ALIGN32(FSTSize), game_offset+FSTOffset);
if(ret < 0)
{
free(FSTBuffer);
return -3;
}
u8 *FSTable = (u8*)FSTBuffer;
u32 FSTEnt = *(u32*)(FSTable+0x08);
FST *fst = (FST *)(FSTable);
installSize += (FSTOffset + FSTSize);
u32 i;
u32 correction;
u32 align;
for( i=1; i < FSTEnt; ++i )
{
if( fst[i].Type ) {
continue;
}
else
{
for(align = 0x8000; align > 2; align/=2)
{
if((fst[i].FileOffset & (align-1)) == 0 || force_align32)
{
correction = 0;
while(((installSize+correction) & (align-1)) != 0)
correction++;
installSize += correction;
break;
}
}
installSize += fst[i].FileLength;
}
}
free(FSTBuffer);
}
gameSizes.push_back(installSize);
return 0;
}
s32 GCDumper::InstallGame(const char *installpath, u32 game)
{
if(!ReadBuffer || game >= discHeaders.size() || game >= gameOffsets.size() || game >= gameSizes.size())
return -1;
const u64 &game_offset = gameOffsets[game];
const struct discHdr &gcheader = discHeaders[game];
discWrote = 0;
discTotal = gameSizes[game];
//! check for enough free space
{
struct statvfs sd_vfs;
if(statvfs(installpath, &sd_vfs) != 0)
{
ShowError(tr("Could not get free device space for game."));
return -102;
}
if(((u64)sd_vfs.f_frsize * (u64)sd_vfs.f_bfree) < discTotal)
{
ShowError(tr("Not enough free space on device."));
return -103;
}
}
s32 ret = __ReadDVDPlain(ReadBuffer, 0x440, game_offset);
if(ret < 0) {
ShowError(tr("Disc read error."));
return -2;
}
u32 Disc = *(u8*)(ReadBuffer+0x06);
u32 ApploaderSize = *(u32*)(ReadBuffer+0x400);
u32 DOLOffset = *(u32*)(ReadBuffer+0x420);
u32 FSTOffset = *(u32*)(ReadBuffer+0x424);
u32 FSTSize = *(u32*)(ReadBuffer+0x428);
u32 GamePartOffset = *(u32*)(ReadBuffer+0x434);
u32 DataSize = *(u32*)(ReadBuffer+0x438);
u32 DOLSize = FSTOffset - DOLOffset;
u32 DiscSize = DataSize + GamePartOffset;
u8 *FSTBuffer = (u8 *)memalign(32, ALIGN32(FSTSize));
if(!FSTBuffer) {
ShowError(tr("Not enough memory for FST."));
return -3;
}
ret = __ReadDVDPlain(FSTBuffer, ALIGN32(FSTSize), game_offset+FSTOffset);
if(ret < 0)
{
free(FSTBuffer);
ShowError(tr("Disc read error."));
return -3;
}
char gametitle[65];
snprintf(gametitle, sizeof(gametitle), "%s", gcheader.title);
Wbfs_Fat::CleanTitleCharacters(gametitle);
char gamepath[512];
snprintf(gamepath, sizeof(gamepath), "%s%s [%.6s]%s/", installpath, gametitle, gcheader.id, Disc ? "2" : "");
CreateSubfolder(gamepath);
snprintf(gamepath, sizeof(gamepath), "%s%s [%.6s]%s/game.iso", installpath, gametitle, gcheader.id, Disc ? "2" : "");
FILE *f = fopen(gamepath, "wb");
if(!f)
{
free(FSTBuffer);
ShowError(tr("Can't open file for write: %s"), gamepath);
return -4;
}
u8 *FSTable = (u8*)FSTBuffer;
u32 FSTEnt = *(u32*)(FSTable+0x08);
FST *fst = (FST *)(FSTable);
gprintf("Dumping: %s %s\n", gcheader.title, compressed ? "compressed" : "full");
gprintf("Apploader size : %d\n", ApploaderSize);
gprintf("DOL offset : 0x%08x\n", DOLOffset);
gprintf("DOL size : %d\n", DOLSize);
gprintf("FST offset : 0x%08x\n", FSTOffset);
gprintf("FST size : %d\n", FSTSize);
gprintf("Num FST entries: %d\n", FSTEnt);
gprintf("Data Offset : 0x%08x\n", FSTOffset+FSTSize);
gprintf("Disc size : %d\n", DiscSize);
if(compressed)
gprintf("Compressed size: %d\n", discTotal);
gprintf("Writing %s\n", gamepath);
s32 result = 0;
ProgressCancelEnable(true);
StartProgress(tr("Installing Game Cube Game..."), gcheader.title, 0, true, true);
if(compressed)
{
u32 align;
u32 correction;
u32 toread;
u32 wrote = 0;
ret = CopyDiscData(f, game_offset, (FSTOffset + FSTSize), ReadBuffer);
if(ret < 0)
result = -3;
wrote += (FSTOffset + FSTSize);
for(u32 i = 1; (result == 0) && (i < FSTEnt); ++i)
{
if(ProgressCanceled()) {
result = PROGRESS_CANCELED;
break;
}
if( fst[i].Type ) {
continue;
}
else
{
for(align = 0x8000; align > 2; align/=2)
{
if((fst[i].FileOffset & (align-1)) == 0 || force_align32)
{
correction = 0;
while(((wrote+correction) & (align-1)) != 0)
correction++;
wrote += correction;
while(correction)
{
toread = std::min(correction, BUF_SIZE);
memset(ReadBuffer, 0, toread);
fwrite(ReadBuffer, 1, toread, f);
correction -= toread;
}
break;
}
}
ret = CopyDiscData(f, game_offset+fst[i].FileOffset, fst[i].FileLength, ReadBuffer);
if(ret < 0) {
result = -2;
break;
}
fst[i].FileOffset = wrote;
wrote += ret;
}
}
fseek(f, FSTOffset, SEEK_SET);
fwrite(fst, 1, FSTSize, f);
gprintf("Done!! Disc old size: %d, disc new size: %d, saved: %d\n", DiscSize, wrote, DiscSize - wrote);
}
else
{
ret = CopyDiscData(f, game_offset, discTotal, ReadBuffer);
if( ret < 0 )
result = -2;
else
gprintf("Done!! Disc size: %d\n", DiscSize);
}
// Stop progress
ProgressStop();
ProgressCancelEnable(false);
free(FSTBuffer);
fclose(f);
if(result < 0)
{
RemoveFile(gamepath);
char *pathPtr = strrchr(gamepath, '/');
if(pathPtr) *pathPtr = 0;
RemoveFile(gamepath);
if(result != PROGRESS_CANCELED)
ShowError(tr("Disc read error."));
}
return result;
}

View File

@ -0,0 +1,86 @@
/***************************************************************************
* Copyright (C) 2012
* by OverjoY and FIX94 for Wiiflow
*
* Adjustments for USB Loader GX by Dimok
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any
* damages arising from the use of this software.
*
* Permission is granted to anyone to use this software for any
* purpose, including commercial applications, and to alter it and
* redistribute it freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you
* must not claim that you wrote the original software. If you use
* this software in a product, an acknowledgment in the product
* documentation would be appreciated but is not required.
*
* 2. Altered source versions must be plainly marked as such, and
* must not be misrepresented as being the original software.
*
* 3. This notice may not be removed or altered from any source
* distribution.
***************************************************************************/
#ifndef GCDUMPER_H_
#define GCDUMPER_H_
#include <gctypes.h>
#include <vector>
using namespace std;
class GCDumper
{
public:
GCDumper();
~GCDumper();
s32 InstallGame(const char *installpath, u32 game);
s32 ReadDiscHeader(void);
int ReadDiscInfo(const u64 &game_offset);
void SetForceAlign(bool b) { force_align32 = b; }
void SetCompressed(bool b) { compressed = b; }
vector<struct discHdr> & GetDiscHeaders() { return discHeaders; }
vector<u32> & GetDiscSizes() { return gameSizes; }
private:
s32 CopyDiscData(FILE *f, u64 offset, u32 length, u8 *buffer);
vector<struct discHdr> discHeaders;
vector<u32> gameSizes;
vector<u64> gameOffsets;
bool force_align32;
bool compressed;
u32 discWrote;
u32 discTotal;
u8 *ReadBuffer;
typedef struct
{
union
{
struct
{
u32 Type :8;
u32 NameOffset :24;
};
u32 TypeName;
};
union
{
struct
{
u32 FileOffset;
u32 FileLength;
};
struct
{
u32 ParentOffset;
u32 NextOffset;
};
u32 entry[2];
};
} FST;
};
#endif

View File

@ -14,14 +14,21 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include <unistd.h>
#include <dirent.h>
#include <sys/stat.h>
#include "GCGames.h"
#include "FileOperations/fileops.h"
#include "settings/GameTitles.h"
#include "settings/CSettings.h"
#include "prompts/GCDeleteMenu.h"
#include "prompts/PromptWindows.h"
#include "prompts/ProgressWindow.h"
#include "language/gettext.h"
#include "usbloader/wbfs/wbfs_fat.h"
#include "utils/tools.h"
#include "menu.h"
#include "gecko.h"
GCGames *GCGames::instance = NULL;
@ -48,11 +55,8 @@ const char *GCGames::GetPath(const char *gameID) const
return "";
}
u32 GCGames::LoadGameList(const string &path)
void GCGames::LoadGameList(const string &path, vector<struct discHdr> &headerList, vector<string> &pathList)
{
PathList.clear();
HeaderList.clear();
struct discHdr tmpHdr;
struct stat st;
u8 id[8];
@ -62,7 +66,7 @@ u32 GCGames::LoadGameList(const string &path)
struct dirent *dirent;
dir_iter = opendir(path.c_str());
if (!dir_iter) return 0;
if (!dir_iter) return;
while ((dirent = readdir(dir_iter)) != 0)
{
@ -72,11 +76,6 @@ u32 GCGames::LoadGameList(const string &path)
if (dirname[0] == '.') continue;
snprintf(fpath, sizeof(fpath), "%s/%s/game.iso", path.c_str(), dirname);
if(stat(fpath, &st) != 0)
continue;
// reset id and title
memset(id, 0, sizeof(id));
*fname_title = 0;
@ -99,29 +98,75 @@ u32 GCGames::LoadGameList(const string &path)
if(isGameID(id))
{
lay_a = true;
snprintf(fname_title, sizeof(fname_title), &dirname[7]);
snprintf(fname_title, sizeof(fname_title), "%s", &dirname[7]);
}
}
}
else if(len == 6 && isGameID((u8*)dirname)) {
memcpy(id, dirname, 6);
lay_a = true;
}
if(!lay_a && !lay_b)
memset(id, 0, sizeof(id));
bool found = false;
bool extracted = false;
for(int i = 0; i < 4; i++)
{
char name[50];
snprintf(name, sizeof(name), "%.6s.%s", (i % 2) == 0 ? "game" : (char *) id, i >= 2 ? "gcm" : "iso");
snprintf(fpath, sizeof(fpath), "%s%s/%s", path.c_str(), dirname, name);
if((found = (stat(fpath, &st) == 0)) == true)
break;
}
if(!found)
{
snprintf(fpath, sizeof(fpath), "%s%s/sys/boot.bin", path.c_str(), dirname);
if(stat(fpath, &st) != 0)
continue;
// this game is extracted
extracted = true;
}
//! GAMEID was not found
if(!lay_a && !lay_b) {
// read game ID and title from disc header
// iso file
FILE *fp = fopen(fpath, "rb");
if (fp != NULL)
{
memset(&tmpHdr, 0, sizeof(tmpHdr));
fread(&tmpHdr, sizeof(struct discHdr), 1, fp);
fclose(fp);
if (tmpHdr.gc_magic == GCGames::MAGIC)
{
memcpy(id, tmpHdr.id, 6);
snprintf(fname_title, sizeof(fname_title), "%s", tmpHdr.title);
}
}
}
// if we have titles.txt entry use that
const char *title = GameTitles.GetTitle(id);
// if no titles.txt get title from dir or file name
if (strlen(title) == 0 && !Settings.ForceDiscTitles && strlen(fname_title) > 0)
title = fname_title;
if (*id != 0 && strlen(title) > 0)
{
string gamePath = string(path) + dirname + (extracted ? "/" : strrchr(fpath, '/'));
memset(&tmpHdr, 0, sizeof(tmpHdr));
memcpy(tmpHdr.id, id, 6);
strncpy(tmpHdr.title, title, sizeof(tmpHdr.title)-1);
tmpHdr.magic = GCGames::MAGIC;
tmpHdr.type = TYPE_GAME_GC_IMG;
HeaderList.push_back(tmpHdr);
PathList.push_back(dirname);
tmpHdr.type = extracted ? TYPE_GAME_GC_EXTRACTED : TYPE_GAME_GC_IMG;
headerList.push_back(tmpHdr);
pathList.push_back(gamePath);
continue;
}
@ -130,15 +175,17 @@ u32 GCGames::LoadGameList(const string &path)
FILE *fp = fopen(fpath, "rb");
if (fp != NULL)
{
memset(&tmpHdr, 0, sizeof(tmpHdr));
fread(&tmpHdr, sizeof(struct discHdr), 1, fp);
fclose(fp);
if (tmpHdr.gc_magic == GCGames::MAGIC)
{
string gamePath = string(path) + dirname + (extracted ? "/" : strrchr(fpath, '/'));
tmpHdr.magic = tmpHdr.gc_magic;
tmpHdr.type = TYPE_GAME_GC_IMG;
HeaderList.push_back(tmpHdr);
PathList.push_back(dirname);
tmpHdr.type = extracted ? TYPE_GAME_GC_EXTRACTED : TYPE_GAME_GC_IMG;
headerList.push_back(tmpHdr);
pathList.push_back(gamePath);
// Save title for next start
GameTitles.SetGameTitle(tmpHdr.id, tmpHdr.title);
@ -147,6 +194,42 @@ u32 GCGames::LoadGameList(const string &path)
}
closedir(dir_iter);
}
u32 GCGames::LoadAllGames(void)
{
PathList.clear();
HeaderList.clear();
sdGCList.clear();
sdGCPathList.clear();
LoadGameList(Settings.GameCubePath, HeaderList, PathList);
if(strcmp(Settings.GameCubePath, Settings.GameCubeSDPath) != 0)
{
LoadGameList(Settings.GameCubeSDPath, sdGCList, sdGCPathList);
for(u32 i = 0; i < sdGCList.size(); ++i)
{
u32 n;
for(n = 0; n < HeaderList.size(); ++n)
{
//! replace the one loaded from USB with the same games on SD since we can load them directly
if(memcmp(HeaderList[n].id, sdGCList[i].id, 6) == 0)
{
memcpy(&HeaderList[n], &sdGCList[i], sizeof(struct discHdr));
PathList[n] = sdGCPathList[i];
break;
}
}
// Not available in the main GC path
if(n == HeaderList.size()) {
HeaderList.push_back(sdGCList[i]);
PathList.push_back(sdGCPathList[i]);
}
}
}
return HeaderList.size();
}
@ -157,21 +240,102 @@ bool GCGames::RemoveGame(const char *gameID)
if(*path == 0)
return false;
RemoveSDGame(gameID);
if(strcmp(Settings.GameCubePath, Settings.GameCubeSDPath) == 0)
return true;
struct discHdr *header = NULL;
for(u32 i = 0; i < HeaderList.size(); ++i)
{
if(strncmp(gameID, (char*)HeaderList[i].id, 6) == 0)
{
header = &HeaderList[i];
break;
}
}
if(!header)
return false;
char filepath[512];
int result = 0;
int ret;
// Remove game iso
snprintf(filepath, sizeof(filepath), "%s%s/game.iso", Settings.GameCubePath, path);
ret = RemoveFile(filepath);
if(ret != 0)
result = -1;
// the main path is the SD path as it is prefered, now delete USB
char cIsoPath[256];
snprintf(cIsoPath, sizeof(cIsoPath), "%s", path + strlen(Settings.GameCubeSDPath));
// Remove path
snprintf(filepath, sizeof(filepath), "%s%s", Settings.GameCubePath, path);
ret = RemoveFile(filepath);
if(ret != 0)
result = -1;
if(header->type == TYPE_GAME_GC_IMG)
{
// Remove game iso
snprintf(filepath, sizeof(filepath), "%s%s", Settings.GameCubePath, cIsoPath);
ret = RemoveFile(filepath);
if(ret != 0)
result = -1;
// Remove path
char *pathPtr = strrchr(filepath, '/');
if(pathPtr) *pathPtr = 0;
ret = RemoveFile(filepath);
if(ret != 0)
result = -1;
}
else if(header->type == TYPE_GAME_GC_EXTRACTED)
{
//! remove extracted gamecube game
snprintf(filepath, sizeof(filepath), "%s%s", Settings.GameCubePath, cIsoPath);
ret = RemoveDirectory(path);
if(ret < 0)
result = -1;
}
return (result == 0);
}
bool GCGames::RemoveSDGame(const char *gameID)
{
const char *path = GetPath(gameID);
if(*path == 0)
return false;
struct discHdr *header = NULL;
for(u32 i = 0; i < HeaderList.size(); ++i)
{
if(strncmp(gameID, (char*)HeaderList[i].id, 6) == 0)
{
header = &HeaderList[i];
break;
}
}
if(!header)
return false;
char filepath[512];
int result = 0;
int ret;
if(header->type == TYPE_GAME_GC_IMG)
{
// Remove game iso
snprintf(filepath, sizeof(filepath), "%s", path);
ret = RemoveFile(filepath);
if(ret != 0)
result = -1;
// Remove path
char *pathPtr = strrchr(filepath, '/');
if(pathPtr) *pathPtr = 0;
ret = RemoveFile(filepath);
if(ret != 0)
result = -1;
}
else if(header->type == TYPE_GAME_GC_EXTRACTED)
{
//! remove extracted gamecube game
ret = RemoveDirectory(path);
if(ret < 0)
result = -1;
}
return (result == 0);
}
@ -183,11 +347,159 @@ float GCGames::GetGameSize(const char *gameID)
return 0.0f;
struct stat st;
char filepath[512];
snprintf(filepath, sizeof(filepath), "%s%s/game.iso", Settings.GameCubePath, path);
if(stat(filepath, &st) != 0)
if(stat(path, &st) != 0)
return 0.0f;
return ((float) st.st_size / GB_SIZE);
}
bool GCGames::IsInstalled(const char *gameID) const
{
for(u32 n = 0; n < HeaderList.size(); n++)
{
if(memcmp(HeaderList[n].id, gameID, 6) == 0)
return true;
}
return false;
}
bool GCGames::CopyUSB2SD(const struct discHdr *header)
{
const char *path = GetPath((char*)header->id);
if(*path == 0)
return false;
int choice = WindowPrompt(tr("The game is on USB."), tr("Do you want to copy the game to SD or delete a game on SD?"), tr("Copy"), tr("Show SD"), tr("Cancel"));
if(choice == 0)
return false;
const char *cpTitle = GameTitles.GetTitle(header);
if(choice == 2)
{
GCDeleteMenu gcDeleteMenu;
gcDeleteMenu.SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
gcDeleteMenu.SetEffect(EFFECT_FADE, 20);
mainWindow->SetState(STATE_DISABLED);
mainWindow->Append(&gcDeleteMenu);
gcDeleteMenu.Show();
gcDeleteMenu.SetEffect(EFFECT_FADE, -20);
while(gcDeleteMenu.GetEffect() > 0) usleep(1000);
mainWindow->Remove(&gcDeleteMenu);
mainWindow->SetState(STATE_DEFAULT);
if(!WindowPrompt(tr("Do you want to copy now?"), cpTitle, tr("Yes"), tr("Cancel")))
return false;
}
struct statvfs sd_vfs;
if(statvfs(Settings.GameCubeSDPath, &sd_vfs) != 0)
{
WindowPrompt(tr("Error:"), tr("SD Card could not be accessed."), tr("OK"));
return false;
}
u64 filesize = 0;
if(header->type == TYPE_GAME_GC_IMG) {
filesize = FileSize(path);
}
else if(header->type == TYPE_GAME_GC_EXTRACTED) {
StartProgress(tr("Getting game folder size..."), tr("Please wait"), 0, true, true);
ShowProgress(0, 1);
filesize = FileSize(path);
ProgressStop();
}
while(((u64)sd_vfs.f_frsize * (u64)sd_vfs.f_bfree) < filesize)
{
choice = WindowPrompt(tr("Error: Not enough space on SD."), tr("Do you want to delete a game on SD?"), tr("Yes"), tr("Cancel"));
if(choice == 0)
return false;
GCDeleteMenu gcDeleteMenu;
gcDeleteMenu.SetAlignment(ALIGN_CENTER, ALIGN_MIDDLE);
gcDeleteMenu.SetEffect(EFFECT_FADE, 20);
mainWindow->SetState(STATE_DISABLED);
mainWindow->Append(&gcDeleteMenu);
gcDeleteMenu.Show();
gcDeleteMenu.SetEffect(EFFECT_FADE, -20);
while(gcDeleteMenu.GetEffect() > 0) usleep(1000);
mainWindow->Remove(&gcDeleteMenu);
mainWindow->SetState(STATE_DEFAULT);
statvfs(Settings.GameCubeSDPath, &sd_vfs);
}
const char *cIsoPath = path + strlen(Settings.GameCubePath);
char destPath[512];
snprintf(destPath, sizeof(destPath), "%s%s", Settings.GameCubeSDPath, cIsoPath);
int res = -1;
if(header->type == TYPE_GAME_GC_IMG)
{
ProgressCancelEnable(true);
StartProgress(tr("Copying GC game..."), cpTitle, 0, true, true);
char *ptr = strrchr(destPath, '/');
if(ptr) *ptr = 0;
CreateSubfolder(destPath);
snprintf(destPath, sizeof(destPath), "%s%s", Settings.GameCubeSDPath, cIsoPath);
res = CopyFile(path, destPath);
}
else if(header->type == TYPE_GAME_GC_EXTRACTED)
{
res = CopyDirectory(path, destPath);
}
// Refresh list
GCGames::Instance()->LoadAllGames();
ProgressStop();
ProgressCancelEnable(false);
if(res == PROGRESS_CANCELED)
{
if(header->type == TYPE_GAME_GC_IMG)
{
// remove file and path
RemoveFile(destPath);
char *ptr = strrchr(destPath, '/');
if(ptr) *ptr = 0;
RemoveFile(destPath);
}
WindowPrompt(tr("Copying Canceled"), 0, tr("OK"));
return false;
}
else if(res < 0)
{
if(header->type == TYPE_GAME_GC_IMG)
{
// remove file and path
RemoveFile(destPath);
char *ptr = strrchr(destPath, '/');
if(ptr) *ptr = 0;
RemoveFile(destPath);
}
WindowPrompt(tr("Error:"), tr("Failed copying file"), tr("OK"));
return false;
}
else
{
return WindowPrompt(tr("Successfully copied"), tr("Do you want to start the game now?"), tr("Yes"), tr("Cancel"));
}
}

View File

@ -35,8 +35,12 @@ public:
static u8 *GetOpeningBnr(const char *gameID);
u32 LoadGameList(const string &path);
u32 LoadAllGames(void);
void LoadGameList(const string &path, vector<struct discHdr> &headerList, vector<string> &pathList);
bool RemoveGame(const char *gameID);
bool RemoveSDGame(const char *gameID);
float GetGameSize(const char *gameID);
const char *GetPath(const char *gameID) const;
@ -44,15 +48,25 @@ public:
vector<struct discHdr> & GetHeaders(void)
{
if(HeaderList.empty())
LoadGameList(Settings.GameCubePath);
LoadAllGames();
return HeaderList;
}
vector<struct discHdr> & GetSDHeaders(void) {
return sdGCList;
}
bool CopyUSB2SD(const struct discHdr *header);
bool IsInstalled(const char *gameID) const;
private:
static GCGames *instance;
vector<string> PathList;
vector<struct discHdr> HeaderList;
vector<struct discHdr> sdGCList;
vector<string> sdGCPathList;
};
#endif

View File

@ -10,7 +10,7 @@
#include "menu.h"
GuiBGM::GuiBGM(const u8 *s, int l, int v) :
GuiSound(s, l, v, false, 0)
GuiSound(s, l, v, 0)
{
currentPath = NULL;
currentPlaying = 0;
@ -57,7 +57,7 @@ bool GuiBGM::LoadStandard()
strcpy(Settings.ogg_path, "");
bool ret = GuiSound::Load(Resources::GetFile("bg_music.ogg"), Resources::GetFileSize("bg_music.ogg"), false);
bool ret = GuiSound::Load(Resources::GetFile("bg_music.ogg"), Resources::GetFileSize("bg_music.ogg"));
if (ret) Play();
@ -71,7 +71,7 @@ bool GuiBGM::ParsePath(const char * folderpath)
if (currentPath) delete[] currentPath;
currentPath = new char[strlen(folderpath) + 1];
sprintf(currentPath, "%s", folderpath);
strcpy(currentPath, folderpath);
char * isdirpath = strrchr(folderpath, '.');
if (isdirpath)
@ -129,7 +129,7 @@ void GuiBGM::AddEntrie(const char * filename)
if (!filename) return;
char * NewEntrie = new char[strlen(filename) + 1];
sprintf(NewEntrie, "%s", filename);
strcpy(NewEntrie, filename);
PlayList.push_back(NewEntrie);
}

View File

@ -87,11 +87,10 @@ GuiSound::GuiSound(const char * filepath)
volume = 255;
SoundEffectLength = 0;
loop = 0;
allocated = false;
Load(filepath);
}
GuiSound::GuiSound(const u8 * snd, s32 len, int vol, bool isallocated, int v)
GuiSound::GuiSound(const u8 * snd, s32 len, int vol, int v)
{
sound = NULL;
length = 0;
@ -106,8 +105,7 @@ GuiSound::GuiSound(const u8 * snd, s32 len, int vol, bool isallocated, int v)
volume = vol;
SoundEffectLength = 0;
loop = 0;
allocated = false;
Load(snd, len, isallocated);
Load(snd, len);
}
GuiSound::~GuiSound()
@ -123,13 +121,10 @@ void GuiSound::FreeMemory()
SoundHandler::Instance()->RemoveDecoder(voice);
if(allocated && sound != NULL)
{
if(sound != NULL && SoundEffectLength != 0)
free(sound);
sound = NULL;
allocated = false;
}
sound = NULL;
SoundEffectLength = 0;
}
@ -140,22 +135,6 @@ bool GuiSound::Load(const char * filepath)
if(!filepath)
return false;
u32 magic;
FILE * f = fopen(filepath, "rb");
if(!f)
return false;
fread(&magic, 1, 4, f);
fclose(f);
if(magic == 'IMD5')
{
u8 * snd = NULL;
u32 filesize = 0;
LoadFileToMem(filepath, &snd, &filesize);
return Load(snd, filesize, true);
}
SoundHandler::Instance()->AddDecoder(voice, filepath);
SoundDecoder * decoder = SoundHandler::Instance()->Decoder(voice);
@ -173,28 +152,15 @@ bool GuiSound::Load(const char * filepath)
return true;
}
bool GuiSound::Load(const u8 * snd, s32 len, bool isallocated)
bool GuiSound::Load(const u8 * snd, s32 len)
{
FreeMemory();
if(!snd)
return false;
if(!isallocated && *((u32 *) snd) == 'RIFF')
{
return LoadSoundEffect(snd, len);
}
if(*((u32 *) snd) == 'IMD5')
{
UncompressSoundbin(snd, len, isallocated);
}
else
{
sound = (u8 *) snd;
length = len;
allocated = isallocated;
}
sound = (u8 *) snd;
length = len;
SoundHandler::Instance()->AddDecoder(voice, sound, length);
@ -243,7 +209,6 @@ bool GuiSound::LoadSoundEffect(const u8 * snd, s32 len)
sound = (u8 *) realloc(sound, done);
SoundEffectLength = done;
allocated = true;
return true;
}
@ -333,7 +298,10 @@ void GuiSound::SetVolume(int vol)
if(vol < 0)
return;
volume = 255*(vol/100.0);
volume = (255 * vol)/100;
if(volume > 255)
volume = 255;
ASND_ChangeVolumeVoice(voice, volume, volume);
}
@ -356,25 +324,3 @@ void GuiSound::Rewind()
decoder->Rewind();
}
void GuiSound::UncompressSoundbin(const u8 * snd, int len, bool isallocated)
{
const u8 * file = snd+32;
if(*((u32 *) file) == 'LZ77')
{
u32 size = 0;
sound = uncompressLZ77(file, len-32, &size);
length = size;
}
else
{
length = len-32;
sound = (u8 *) malloc(length);
memcpy(sound, file, length);
}
if(isallocated)
free((u8 *) snd);
allocated = true;
}

View File

@ -36,13 +36,13 @@ class GuiSound
//!\param sound Pointer to the sound data
//!\param filesize Length of sound data
GuiSound(const char * filepath);
GuiSound(const u8 * sound, int filesize, int volume, bool allocated = false, int voice = -1);
GuiSound(const u8 * sound, int filesize, int volume, int voice = -1);
//!Destructor
virtual ~GuiSound();
//!Load a file and replace the old one
virtual bool Load(const char * filepath);
//!Load a file and replace the old one
bool Load(const u8 * sound, int filesize, bool allocated = true);
bool Load(const u8 * sound, int filesize);
//!For quick playback of the internal soundeffects
bool LoadSoundEffect(const u8 * snd, s32 len);
//!Start sound playback
@ -63,8 +63,6 @@ class GuiSound
void SetVolume(int v);
//!\param l Loop (true to loop)
virtual void SetLoop(u8 l);
//!Special sound case for sound.bin
void UncompressSoundbin(const u8 * snd, int len, bool isallocated);
protected:
//!Stops sound and frees all memory/closes files
void FreeMemory();
@ -74,7 +72,6 @@ class GuiSound
int volume; //!< Sound volume (0-100)
u8 loop; //!< Loop sound playback
u32 SoundEffectLength; //!< Check if it is an app soundeffect for faster playback
bool allocated; //!< Is the file allocated or not
};
#endif

View File

@ -8,6 +8,7 @@
#include "gecko.h"
#include "Controls/DeviceHandler.hpp"
#include "wad/nandtitle.h"
#include "SystemMenu/SystemMenuResources.h"
#include "system/IosLoader.h"
#include "utils/timer.h"
#include "settings/CSettings.h"
@ -186,7 +187,18 @@ int StartUpProcess::Run(int argc, char *argv[])
int StartUpProcess::Execute()
{
Settings.EntryIOS = IOS_GetVersion();
SetTextf("Start up\n");
// Initialize to read the system menu resources
ISFS_Initialize();
SetTextf("Loading system menu resources\n");
SystemMenuResources::Instance()->Init();
// Deinitialize ISFS
ISFS_Deinitialize();
// Reload app cios
SetTextf("Loading application cIOS\n");
if(IosLoader::LoadAppCios() < 0)
{
@ -236,7 +248,7 @@ int StartUpProcess::Execute()
SetupPads();
}
if(!IosLoader::IsHermesIOS())
if(!IosLoader::IsHermesIOS() && !IosLoader::IsD2X())
{
Settings.USBPort = 0;
}
@ -248,17 +260,23 @@ int StartUpProcess::Execute()
}
else if(Settings.USBPort == 2)
{
// Right now we support only one port at once
Settings.USBPort = 0;
/*
SetTextf("Mounting USB Port to 1\n");
DeviceHandler::Instance()->MountUSBPort1();
*/
}
// We only initialize once for the whole session
ISFS_Initialize();
SetTextf("Loading resources\n");
// Do not allow banner grid mode without AHBPROT
// this function does nothing if it was already initiated before
if( !SystemMenuResources::Instance()->IsLoaded() && !SystemMenuResources::Instance()->Init()
&& Settings.gameDisplay == BANNERGRID_MODE)
{
Settings.gameDisplay = LIST_MODE;
Settings.GameWindowMode = GAMEWINDOW_DISC;
}
gprintf("\tLoading game categories...%s\n", GameCategories.Load(Settings.ConfigPath) ? "done" : "failed");
gprintf("\tLoading font...%s\n", Theme::LoadFont(Settings.ConfigPath) ? "done" : "failed (using default)");
gprintf("\tLoading theme...%s\n", Theme::Load(Settings.theme) ? "done" : "failed (using default)");

View File

@ -0,0 +1,115 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include "BannerFrame.h"
#include "SystemMenu/SystemMenuResources.h"
#include "utils/U8Archive.h"
#include "utils/StringTools.h"
BannerFrame::~BannerFrame()
{
delete [] UTF16ButtonA;
delete [] UTF16ButtonB;
}
bool BannerFrame::Load( const U8Archive &chanTtlArc )
{
// read layout data
u8 *brlytFile = chanTtlArc.GetFile( "/arc/blyt/my_ChTop_a.brlyt" );
if( !brlytFile )
return false;
if(!Layout::Load(brlytFile))
return false;
// load textures
LoadTextures(chanTtlArc);
N_BtnA = FindPane("N_BtnA");
N_BtnB = FindPane("N_BtnB");
Loaded = true;
return true;
}
void BannerFrame::SetButtonAText(const char *text)
{
//!< Set button text for left button
const wchar_t *buttonText = wfmt("%s", text);
int len = wcslen(buttonText);
delete [] UTF16ButtonA;
UTF16ButtonA = new u16[len+1];
for(int i = 0; i < len; i++)
UTF16ButtonA[i] = (u16) buttonText[i];
UTF16ButtonA[len] = 0;
Textbox *T_BtnA = (Textbox *)FindPane("T_BtnA");
if(T_BtnA)
T_BtnA->SetText(UTF16ButtonA);
}
void BannerFrame::SetButtonBText(const char *text)
{
//!< Set button text for right button
const wchar_t *buttonText = wfmt("%s", text);
int len = wcslen(buttonText);
delete [] UTF16ButtonB;
UTF16ButtonB = new u16[len+1];
for(int i = 0; i < len; i++)
UTF16ButtonB[i] = (u16) buttonText[i];
UTF16ButtonB[len] = 0;
Textbox *T_BtnB = (Textbox *)FindPane("T_BtnB");
if(T_BtnB)
T_BtnB->SetText(UTF16ButtonB);
}
void BannerFrame::AdvanceFrame()
{
if(!N_BtnA || !N_BtnB)
return;
if(GrowEffectBtnA && ScaleBtnA < 1.05f)
{
ScaleBtnA += 0.01f;
N_BtnA->SetScale(ScaleBtnA);
}
else if(!GrowEffectBtnA && ScaleBtnA > 1.0f)
{
ScaleBtnA -= 0.01f;
N_BtnA->SetScale(ScaleBtnA);
}
if(GrowEffectBtnB && ScaleBtnB < 1.05f)
{
ScaleBtnB += 0.01f;
N_BtnB->SetScale(ScaleBtnB);
}
else if(!GrowEffectBtnB && ScaleBtnB > 1.0f)
{
ScaleBtnB -= 0.01f;
N_BtnB->SetScale(ScaleBtnB);
}
// we don't load any brlan for it
// Layout::AdvanceFrame();
}

View File

@ -0,0 +1,53 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef BANNERFRAME_H
#define BANNERFRAME_H
#include "banner/Layout.h"
// this is a class to deal with the frame the goes over the large banners
class BannerFrame : public Layout
{
public:
BannerFrame()
: Loaded(false),
GrowEffectBtnA(false), GrowEffectBtnB(false),
ScaleBtnA(1.f), ScaleBtnB(1.f),
N_BtnA(0), N_BtnB(0),
UTF16ButtonA(0), UTF16ButtonB(0)
{ }
virtual ~BannerFrame();
bool Load( const U8Archive &archive );
bool IsLoaded() const { return Loaded; }
void AdvanceFrame();
void SetButtonAGrow(bool b) { GrowEffectBtnA = b; }
void SetButtonBGrow(bool b) { GrowEffectBtnB = b; }
void SetButtonAText(const char *text);
void SetButtonBText(const char *text);
private:
bool Loaded;
bool GrowEffectBtnA;
bool GrowEffectBtnB;
float ScaleBtnA;
float ScaleBtnB;
Pane *N_BtnA;
Pane *N_BtnB;
u16 *UTF16ButtonA;
u16 *UTF16ButtonB;
};
#endif // BANNERFRAME_H

View File

@ -0,0 +1,43 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include "SystemMenu/SystemMenuResources.h"
#include "GCBanner.h"
bool GCBanner::Load( const U8Archive &GCBannArc )
{
// read layout data
const u8 *brlytFile = GCBannArc.GetFile("/arc/blyt/my_GCTop_a.brlyt");
if( !brlytFile )
return false;
if(!Layout::Load(brlytFile))
return false;
u32 length_start = 0, length_loop = 0;
const u8 *brlan_loop = GCBannArc.GetFile("/arc/anim/my_GCTop_a_BackLoop.brlan");
if (brlan_loop)
length_loop = Animator::LoadAnimators((const RLAN_Header *)brlan_loop, *this, 1);
LoadTextures(GCBannArc);
SetLanguage("ENG");
SetLoopStart(length_start);
SetLoopEnd(length_start + length_loop);
SetFrame(0);
return true;
}

View File

@ -0,0 +1,29 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef GCBANNER_H
#define GCBANNER_H
#include "banner/Layout.h"
// this is a class to deal with the gc disc channel
class GCBanner : public Layout
{
public:
bool Load( const U8Archive &archive );
};
#endif // STATICFRAME_H

View File

@ -0,0 +1,42 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include "StaticFrame.h"
bool StaticFrame::Load( const U8Archive &chanSelArc )
{
// read layout data
const u8 *brlytFile = chanSelArc.GetFile("/arc/blyt/my_IplTop_b.brlyt");
if( !brlytFile )
return false;
if(!Layout::Load(brlytFile))
return false;
u32 length_start = 0, length_loop = 0;
const u8 *brlan_loop = chanSelArc.GetFile("/arc/anim/my_IplTop_b.brlan");
if (brlan_loop)
length_loop = Animator::LoadAnimators((const RLAN_Header *)brlan_loop, *this, 1);
LoadTextures(chanSelArc);
SetLanguage("ENG");
SetLoopStart(length_start);
SetLoopEnd(length_start + length_loop);
SetFrame(0);
return true;
}

View File

@ -0,0 +1,29 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef STATICFRAME_H
#define STATICFRAME_H
#include "banner/Layout.h"
// this is a class to deal with the frame the goes as default channel
class StaticFrame : public Layout
{
public:
bool Load( const U8Archive &archive );
};
#endif // STATICFRAME_H

View File

@ -0,0 +1,314 @@
/****************************************************************************
* Copyright (C) 2012 Dimok, giantpune
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include "gecko.h"
#include "SystemMenu/SystemMenuResources.h"
#include "memory/mem2.h"
#include "utils/U8Archive.h"
#include "wad/nandtitle.h"
SystemMenuResources *SystemMenuResources::instance = NULL;
SystemMenuResources::SystemMenuResources():
isInited( false ),
wbf1( NULL ),
wbf2( NULL ),
wbf1Buffer( NULL ),
wbf2Buffer( NULL ),
chanTtlAsh( NULL ),
chanSelAsh( NULL ),
GCBannAsh( NULL ),
systemFont( NULL )
{
}
SystemMenuResources::~SystemMenuResources()
{
FreeEverything();
}
bool SystemMenuResources::Init()
{
if( isInited )
return true;
// get tmd
tmd *p_tmd = NandTitles.GetTMD( 0x100000002ull );
if( !p_tmd )
{
gprintf( "can\'t get system menu TMD\n" );
return false;
}
// determine resource cid
u16 idx = 0xffff;
tmd_content *contents = TMD_CONTENTS( p_tmd );
for( u16 i = 0; i < p_tmd->num_contents; i++ )
{
if( contents[ i ].index == 1 )
{
idx = i;
break;
}
}
if( idx == 0xffff )
{
gprintf( "SM main resource not found\n" );
return false;
}
// build file path
char path[ ISFS_MAXPATH ]__attribute__((aligned( 32 )));
sprintf( path, "/title/00000001/00000002/content/%08x.app", contents[ idx ].cid );
// get resource archive
u8* resourceArc = NULL;
u32 resourceLen = 0;
int ret;
if( ( ret = NandTitle::LoadFileFromNand( path, &resourceArc, &resourceLen ) ) < 0 )
{
gprintf( "Error reading resource from nand: %i\n", ret );
return false;
}
// create U8 archive for reading files
U8Archive mainArc( resourceArc, resourceLen );
// Load the font archive
InitFontArchive();
// read ash files
chanTtlAsh = mainArc.GetFileAllocated( "/layout/common/chanTtl.ash", &chanTtlAshSize);
if(!chanTtlAsh)
{
gprintf( "Error while loading chanTtl.ash\n" );
}
// move this to mem2
else if(!isMEM2Buffer(chanTtlAsh))
{
u8 *tmp = (u8 *) MEM2_alloc(chanTtlAshSize);
if(tmp)
{
memcpy(tmp, chanTtlAsh, chanTtlAshSize);
free(chanTtlAsh);
chanTtlAsh = tmp;
}
}
// read ash files
chanSelAsh = mainArc.GetFileAllocated( "/layout/common/chanSel.ash", &chanSelAshSize);
if(!chanSelAsh)
{
gprintf( "Error while loading chanSel.ash\n" );
}
// move this to mem2
else if(!isMEM2Buffer(chanSelAsh))
{
u8 *tmp = (u8 *) MEM2_alloc(chanSelAshSize);
if(tmp)
{
memcpy(tmp, chanSelAsh, chanSelAshSize);
free(chanSelAsh);
chanSelAsh = tmp;
}
}
/* Currently not used since we use a custom banner
// load GC banner for GC games
GCBannAsh = mainArc.GetFileAllocated( "/layout/common/GCBann.ash", &GCBannAshSize);
if(!GCBannAsh)
{
gprintf( "Error while loading GCBannAsh.ash\n" );
}
// move this to mem2
else if(!isMEM2Buffer(GCBannAsh))
{
u8 *tmp = (u8 *) MEM2_alloc(GCBannAshSize);
if(tmp)
{
memcpy(tmp, GCBannAsh, GCBannAshSize);
free(GCBannAsh);
GCBannAsh = tmp;
}
}
*/
// done with the huge U8 archie now that we already got everything out of it
free( resourceArc );
isInited = true;
return true;
}
typedef struct map_entry
{
char name[8];
u8 hash[20];
} __attribute__((packed)) map_entry_t;
static const char contentMapPath[] ATTRIBUTE_ALIGN(32) = "/shared1/content.map";
static const u8 WFB_HASH[] = { 0x4f, 0xad, 0x97, 0xfd, 0x4a, 0x28, 0x8c, 0x47, 0xe0, 0x58, 0x7f, 0x3b, 0xbd, 0x29, 0x23, 0x79, 0xf8, 0x70, 0x9e, 0xb9 };
static const u8 WIIFONT_HASH[] = {0x32, 0xb3, 0x39, 0xcb, 0xbb, 0x50, 0x7d, 0x50, 0x27, 0x79, 0x25, 0x9a, 0x78, 0x66, 0x99, 0x5d, 0x03, 0x0b, 0x1d, 0x88};
static const u8 WIIFONT_HASH_KOR[] = {0xb7, 0x15, 0x6d, 0xf0, 0xf4, 0xae, 0x07, 0x8f, 0xd1, 0x53, 0x58, 0x3e, 0x93, 0x6e, 0x07, 0xc0, 0x98, 0x77, 0x49, 0x0e};
bool SystemMenuResources::InitFontArchive(void)
{
// get content.map
u8 *contentMap = NULL;
u32 mapsize = 0;
NandTitle::LoadFileFromNand(contentMapPath, &contentMap, &mapsize);
if(!contentMap)
{
gprintf( "!contentMap\n" );
return false;
}
int fileCount = mapsize / sizeof(map_entry_t);
map_entry_t *mapEntryList = (map_entry_t *) contentMap;
// search content.map for brfna archive
for( int i = 0; i < fileCount; i++ )
{
if( memcmp(mapEntryList[i].hash, WFB_HASH, 20 ) )
continue;
// Name found
char font_filename[32] ATTRIBUTE_ALIGN(32);
snprintf( font_filename, sizeof( font_filename ), "/shared1/%.8s.app", mapEntryList[ i ].name );
u8 *fontArchiveBuffer = NULL;
u32 fontArchiveSize;
NandTitle::LoadFileFromNand( font_filename, &fontArchiveBuffer, &fontArchiveSize );
if( !fontArchiveBuffer )
{
free(contentMap);
return false;
}
U8Archive fontArc(fontArchiveBuffer, fontArchiveSize);
wbf1Buffer = fontArc.GetFileAllocated("wbf1.brfna");
wbf2Buffer = fontArc.GetFileAllocated("wbf2.brfna");
if(wbf1Buffer)
{
wbf1 = new WiiFont;
wbf1->SetName("wbf1.brfna");
wbf1->Load(wbf1Buffer);
}
if(wbf2Buffer)
{
wbf2 = new WiiFont;
wbf2->SetName("wbf2.brfna");
wbf2->Load(wbf2Buffer);
}
free(fontArchiveBuffer);
break;
}
if(!systemFont)
InitSystemFontArchive(CONF_GetLanguage() == CONF_LANG_KOREAN, contentMap, mapsize);
if(!systemFont)
InitSystemFontArchive(CONF_GetLanguage() != CONF_LANG_KOREAN, contentMap, mapsize);
free( contentMap );
// not found
if( !systemFont || !wbf1Buffer || !wbf2Buffer )
{
// shared fonts not found
return false;
}
return true;
}
bool SystemMenuResources::InitSystemFontArchive(bool korean, u8 *contentMap, u32 mapsize)
{
int fileCount = mapsize / sizeof(map_entry_t);
map_entry_t *mapEntryList = (map_entry_t *) contentMap;
for (int i = 0; i < fileCount; i++)
{
if (memcmp(mapEntryList[i].hash, korean ? WIIFONT_HASH_KOR : WIIFONT_HASH, 20) != 0)
continue;
// Name found, load it and unpack it
char font_filename[32] ATTRIBUTE_ALIGN(32);
snprintf(font_filename, sizeof(font_filename), "/shared1/%.8s.app", mapEntryList[i].name);
u8 *fontArchive = NULL;
u32 filesize = 0;
NandTitle::LoadFileFromNand(font_filename, &fontArchive, &filesize);
if(!fontArchive)
continue;
U8Archive systemFontArc(fontArchive, filesize);
systemFont = systemFontArc.GetFileAllocated(1, &systemFontSize);
if(!systemFont)
{
free(fontArchive);
continue;
}
// move this to mem2
else if(!isMEM2Buffer(systemFont))
{
u8 *tmp = (u8 *) MEM2_alloc(systemFontSize);
if(tmp)
{
memcpy(tmp, systemFont, systemFontSize);
free(systemFont);
systemFont = tmp;
}
}
free(fontArchive);
gprintf("Loaded Wii System Font\n");
return true;
}
return false;
}
void SystemMenuResources::FreeEverything()
{
if(chanTtlAsh)
free(chanTtlAsh);
if(chanSelAsh)
free(chanSelAsh);
if(GCBannAsh)
free(GCBannAsh);
if(wbf1Buffer)
free(wbf1Buffer);
if(wbf2Buffer)
free(wbf2Buffer);
if(systemFont)
free(systemFont);
delete wbf1;
delete wbf2;
chanTtlAsh = NULL;
chanSelAsh = NULL;
GCBannAsh = NULL;
systemFont = NULL;
wbf1Buffer = NULL;
wbf2Buffer = NULL;
wbf1 = NULL;
wbf2 = NULL;
}

View File

@ -0,0 +1,87 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef SYSTEMMENURESOURCES_H
#define SYSTEMMENURESOURCES_H
#include <gctypes.h>
#include "BannerFrame.h"
#include "StaticFrame.h"
#include "utils/U8Archive.h"
class SystemMenuResources
{
public:
static SystemMenuResources *Instance() { if(!instance) instance = new SystemMenuResources; return instance; }
static void DestroyInstance() { delete instance; instance = NULL; }
bool Init();
bool IsLoaded() const { return isInited; }
WiiFont *GetWbf1() const { return wbf1; }
WiiFont *GetWbf2() const { return wbf2; }
const u8 *GetChanSelAsh() const { return chanSelAsh; }
u32 GetChanSelAshSize() const { return chanSelAshSize; }
const u8 *GetChanTtlAsh() const { return chanTtlAsh; }
u32 GetChanTtlAshSize() const { return chanTtlAshSize; }
const u8 *GetGCBannAsh() const { return GCBannAsh; }
u32 GetGCBannAshSize() const { return GCBannAshSize; }
const u8 *GetSystemFont() const { return systemFont; }
u32 GetSystemFontSize() const { return systemFontSize; }
protected:
SystemMenuResources();
~SystemMenuResources();
static SystemMenuResources *instance;
bool InitFontArchive(void);
bool InitSystemFontArchive(bool korean, u8 *contentMap, u32 mapsize);
bool isInited;
//! banner font
WiiFont *wbf1;
WiiFont *wbf2;
u8 *wbf1Buffer;
u8 *wbf2Buffer;
//! chanTtl.ash contains the frame and buttons that goes around the large banners
u8 *chanTtlAsh;
u32 chanTtlAshSize;
//! chanSel.ash contains the channel grid layouts
u8 *chanSelAsh;
u32 chanSelAshSize;
//! GCBann.ash contains the gamecube channel banner
u8 *GCBannAsh;
u32 GCBannAshSize;
//! system font
u8 *systemFont;
u32 systemFontSize;
// free data
void FreeEverything();
};
#endif // SYSTEMMENURESOURCES_H

View File

@ -124,6 +124,8 @@ bool ZipFile::ExtractAll(const char *dest)
int ret = unzGoToFirstFile(File);
if (ret != UNZ_OK) Stop = true;
ProgressCancelEnable(true);
while (!Stop)
{
if (unzGetCurrentFileInfo(File, &cur_file_info, filename, sizeof(filename), NULL, 0, NULL, 0) != UNZ_OK) Stop
@ -154,7 +156,11 @@ bool ZipFile::ExtractAll(const char *dest)
do
{
ShowProgress(tr( "Extracting files..." ), 0, pointer + 1, done, uncompressed_size, true);
if(ProgressCanceled()) {
Stop = true;
break;
}
ShowProgress(tr( "Extracting files..." ), 0, pointer + 1, done, uncompressed_size, true, false);
if (uncompressed_size - done < blocksize) blocksize = uncompressed_size - done;
@ -179,6 +185,7 @@ bool ZipFile::ExtractAll(const char *dest)
buffer = NULL;
ProgressStop();
ProgressCancelEnable(false);
return true;
}

260
source/banner/Animator.cpp Normal file
View File

@ -0,0 +1,260 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include <math.h>
#include "Animator.h"
#include "Layout.h"
// load keyframes from a brlan file
u32 Animator::LoadAnimators(const RLAN_Header *header, Layout& layout, u8 key_set)
{
u32 frame_count = 0;
if (!header || header->magic != MAGIC_ANIMATION || header->endian != 0xFEFF || header->version != 0x0008)
return 0; // bad header
// first section
const u8 *position = ((const u8 *) header) + header->offset;
for(u32 i = 0; i < header->section_count; ++i)
{
section_t *section = (section_t *) position;
position += section->size;
if (section->magic == MAGIC_PANE_ANIMATION_INFO)
{
const PAI1_Header *pai = (const PAI1_Header *) section;
u16 animator_count = pai->animator_count;
frame_count += pai->frame_count;
// read animation file names
const u32 *nameOffsets = (const u32 *)(pai + 1);
for(u32 i = 0; i < pai->file_count; i++)
{
const char* name = (((const char *) nameOffsets) + nameOffsets[i]);
layout.AddPalette(name, key_set);
}
const u32 *offsets = (const u32 *) (((const u8 *)section) + pai->entry_offset);
// read each animator
for(u32 n = 0; n < animator_count; n++)
{
const AnimatorHeader *animHdr = (const AnimatorHeader *) (((const u8 *)section) + offsets[n]);
std::string anim_name(animHdr->name, 0, 20);
Animator* animator = animHdr->is_material ?
(Animator*) layout.FindMaterial(anim_name) :
(Animator*) layout.FindPane(anim_name);
if (animator)
animator->LoadKeyFrames((const u8 *) animHdr, animHdr->tag_count, sizeof(AnimatorHeader), key_set);
}
}
else
{
gprintf("Unknown: %c%c%c%c\n", position[0], position[1], position[2], position[3]);
}
}
return frame_count;
}
void Animator::LoadKeyFrames(const u8 *file, u8 tag_count, u32 offset, u8 key_set)
{
const u32 *tag_offsets = (const u32 *) (file + offset);
for(u32 tag = 0; tag < tag_count; tag++)
{
const Anim_Header *animHdr = (const Anim_Header *) (file + tag_offsets[tag]);
u32 animation_type = animHdr->animation_type;
u8 frame_count = animHdr->frame_count;
const u32 *frame_offsets = (const u32 *) (animHdr + 1);
for(u32 frame = 0; frame < frame_count; frame++)
{
const KeyFrame_Header *keyFrame = (const KeyFrame_Header *)(((const u8 *) animHdr) + frame_offsets[frame]);
const KeyType frame_type(static_cast<AnimationType>(animation_type), keyFrame->index, keyFrame->target);
switch (keyFrame->data_type)
{
// step key frame
case 0x01:
keys[key_set].step_keys[frame_type].Load((const u8 *) (keyFrame+1), keyFrame->key_count);
break;
// hermite key frame
case 0x02:
keys[key_set].hermite_keys[frame_type].Load((const u8 *) (keyFrame+1), keyFrame->key_count);
break;
default:
break;
}
}
}
}
void Animator::SetFrame(FrameNumber frame_number, u8 key_set)
{
std::map<KeyType, HermiteKeyHandler>::iterator itr;
for(itr = keys[key_set].hermite_keys.begin(); itr != keys[key_set].hermite_keys.end(); itr++)
{
const KeyType& frame_type = itr->first;
const float frame_value = itr->second.GetFrame(frame_number);
ProcessHermiteKey(frame_type, frame_value);
}
std::map<KeyType, StepKeyHandler>::iterator itr2;
for(itr2 = keys[key_set].step_keys.begin(); itr2 != keys[key_set].step_keys.end(); itr2++)
{
const KeyType& frame_type = itr2->first;
StepKeyHandler::KeyData const frame_data = itr2->second.GetFrame(frame_number);
ProcessStepKey(frame_type, frame_data);
}
}
void StepKeyHandler::Load(const u8 *file, u16 count)
{
while (count--)
{
FrameNumber frame;
frame = *((FrameNumber *) file);
file += 4;
KeyData& data = keys[frame];
data.data1 = *file;
file++;
data.data2 = *file;
file++;
file += 2;
}
}
void HermiteKeyHandler::Load(const u8 *file, u16 count)
{
while (count--)
{
std::pair<FrameNumber, KeyData> pair;
// read the frame number, value and slope
pair.first = *((FrameNumber *) file);
file += 4;
pair.second.value = *((float *) file);
file += 4;
pair.second.slope = *((float *) file);
file += 4;
keys.insert(pair);
//std::cout << "\t\t\t" "frame: " << frame << ' ' << keys[frame] << '\n';
}
}
StepKeyHandler::KeyData StepKeyHandler::GetFrame(FrameNumber frame_number) const
{
// assuming not empty, a safe assumption currently
// find the current frame, or the one after it
std::map<FrameNumber, KeyData>::const_iterator frame_it = keys.lower_bound(frame_number);
// current frame is higher than any keyframe, use the last keyframe
if (keys.end() == frame_it)
--frame_it;
// if this is after the current frame and not the first keyframe, use the previous one
if (frame_number < frame_it->first && keys.begin() != frame_it)
--frame_it;
return frame_it->second;
}
float HermiteKeyHandler::GetFrame(FrameNumber frame_number) const
{
// assuming not empty, a safe assumption currently
// find the current keyframe, or the one after it
std::multimap<FrameNumber, KeyData>::const_iterator next = keys.lower_bound(frame_number);
// current frame is higher than any keyframe, use the last keyframe
if (keys.end() == next)
--next;
std::multimap<FrameNumber, KeyData>::const_iterator prev = next;
// if this is after the current frame and not the first keyframe, use the previous one
if (frame_number < prev->first && keys.begin() != prev)
--prev;
const float nf = next->first - prev->first;
if (fabs(nf) < 0.01)
{
// same frame numbers, just return the first's value
return prev->second.value;
}
else
{
// different frames, blend them together
// this is a "Cubic Hermite spline" apparently
frame_number = (frame_number < prev->first) ? prev->first :
((frame_number > next->first) ? next->first : frame_number);
const float t = (frame_number - prev->first) / nf;
// old curve-less code
//return prev->second.value + (next->second.value - prev->second.value) * t;
// curvy code from marcan, :p
return
prev->second.slope * nf * (t + powf(t, 3) - 2 * powf(t, 2)) +
next->second.slope * nf * (powf(t, 3) - powf(t, 2)) +
prev->second.value * (1 + (2 * powf(t, 3) - 3 * powf(t, 2))) +
next->second.value * (-2 * powf(t, 3) + 3 * powf(t, 2));
}
}
void Animator::ProcessHermiteKey(const KeyType& type, float value)
{
// std::cout << "unhandled key (" << GetName() << "): type: " << FourCC(type.type)
// << " index: " << (int)type.index
// << " target: " << (int)type.target
// << " value: " << value
// << '\n';
gprintf("Animator::ProcessHermiteKey\n");
}
void Animator::ProcessStepKey(const KeyType& type, StepKeyHandler::KeyData data)
{
// std::cout << "unhandled key (" << GetName() << "): type: " << FourCC(type.type)
// << " index: " << (int)type.index
// << " target: " << (int)type.target
// << " data:" << (int)data.data1 << " " << (int)data.data2
// << '\n';
gprintf("Animator::ProcessStepKey\n");
}

169
source/banner/Animator.h Normal file
View File

@ -0,0 +1,169 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef WII_BNR_ANIMATOR_H_
#define WII_BNR_ANIMATOR_H_
#include <map>
#include <cstring>
#include <string>
#include "BannerTools.h"
typedef float FrameNumber;
enum AnimationType
{
ANIMATION_TYPE_PANE = MAKE_FOURCC('R', 'L', 'P', 'A'),
ANIMATION_TYPE_TEXTURE_SRT = MAKE_FOURCC('R', 'L', 'T', 'S'),
ANIMATION_TYPE_VISIBILITY = MAKE_FOURCC('R', 'L', 'V', 'I'),
ANIMATION_TYPE_VERTEX_COLOR = MAKE_FOURCC('R', 'L', 'V', 'C'),
ANIMATION_TYPE_MATERIAL_COLOR = MAKE_FOURCC('R', 'L', 'M', 'C'),
ANIMATION_TYPE_TEXTURE_PALETTE = MAKE_FOURCC('R', 'L', 'T', 'P'),
ANIMATION_TYPE_IND_MATERIAL = MAKE_FOURCC('R', 'L', 'I', 'M'),
};
struct RLAN_Header
{
u32 magic;
u16 endian;
u16 version;
u32 file_size;
u16 offset;
u16 section_count;
} __attribute__((packed));
struct PAI1_Header
{
u32 magic;
u32 section_size;
u16 frame_count;
u8 loop;
u8 pad;
u16 file_count;
u16 animator_count;
u32 entry_offset;
} __attribute__((packed));
struct AnimatorHeader
{
char name[20];
u8 tag_count;
u8 is_material;
u16 apad;
} __attribute__((packed));
struct Anim_Header
{
u32 animation_type;
u8 frame_count;
u8 pad[3];
} __attribute__((packed));
struct KeyFrame_Header
{
u8 index;
u8 target;
u8 data_type;
u8 pad;
u16 key_count;
u16 pad1;
u32 offset;
} __attribute__((packed));
struct KeyType
{
KeyType(AnimationType _type, u8 _index, u8 _target)
: type(_type)
, index(_index)
, target(_target)
{}
bool operator<(const KeyType& rhs) const
{
return memcmp(this, &rhs, sizeof(*this)) < 0;
}
const AnimationType type;
const u8 index, target;
};
class StepKeyHandler
{
public:
void Load(const u8* file, u16 count);
struct KeyData
{
u8 data1, data2;
};
KeyData GetFrame(FrameNumber frame_number) const;
private:
std::map<FrameNumber, KeyData> keys;
};
class HermiteKeyHandler
{
public:
void Load(const u8* file, u16 count);
struct KeyData
{
float value, slope;
};
float GetFrame(FrameNumber frame_number) const;
private:
std::multimap<FrameNumber, KeyData> keys;
};
class Layout;
class Animator
{
public:
static const u32 MAGIC_ANIMATION = MAKE_FOURCC('R', 'L', 'A', 'N');
static const u32 MAGIC_PANE_ANIMATION_INFO = MAKE_FOURCC('p', 'a', 'i', '1');
static u32 LoadAnimators(const RLAN_Header *header, Layout& layout, u8 key_set);
void LoadKeyFrames(const u8 *file, u8 tag_count, u32 offset, u8 key_set);
virtual void SetFrame(FrameNumber frame, u8 key_set);
protected:
Animator() {}
virtual void ProcessHermiteKey(const KeyType& type, float value);
virtual void ProcessStepKey(const KeyType& type, StepKeyHandler::KeyData data);
private:
struct
{
std::map<KeyType, StepKeyHandler> step_keys;
std::map<KeyType, HermiteKeyHandler> hermite_keys;
} keys[2];
};
#endif

175
source/banner/Banner.cpp Normal file
View File

@ -0,0 +1,175 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include <malloc.h>
#include "SystemMenu/SystemMenuResources.h"
#include "utils/U8Archive.h"
#include "utils/LanguageCode.h"
#include "Banner.h"
Banner::Banner()
: banner_bin(NULL)
, icon_bin(NULL)
, sound_bin(NULL)
, banner_bin_size(0)
, icon_bin_size(0)
, sound_bin_size(0)
, layout_banner(NULL)
, layout_icon(NULL)
{
}
Banner::~Banner()
{
delete layout_banner;
delete layout_icon;
if(banner_bin)
free(banner_bin);
if(icon_bin)
free(icon_bin);
if(sound_bin)
free(sound_bin);
}
bool Banner::LoadBanner(const u8 *opening_bnr, u32 len)
{
delete layout_banner;
if(banner_bin)
free(banner_bin);
U8Archive openingArchive(opening_bnr, len);
banner_bin = openingArchive.GetFileAllocated("/meta/banner.bin", &banner_bin_size);
if(!banner_bin) {
return false;
}
layout_banner = LoadLayout(U8Archive(banner_bin, banner_bin_size), "banner", CONF_GetLanguageString());
return (layout_banner != NULL);
}
bool Banner::LoadIcon(const u8 *opening_bnr, u32 len)
{
delete layout_icon;
if(icon_bin)
free(icon_bin);
U8Archive openingArchive(opening_bnr, len);
icon_bin = openingArchive.GetFileAllocated("/meta/icon.bin", &icon_bin_size);
if(!icon_bin) {
return false;
}
layout_icon = LoadLayout(U8Archive(icon_bin, icon_bin_size), "icon", CONF_GetLanguageString());
return (layout_icon != NULL);
}
bool Banner::LoadSound(const u8 *opening_bnr, u32 len)
{
if(sound_bin)
free(sound_bin);
U8Archive openingArchive(opening_bnr, len);
sound_bin = openingArchive.GetFileAllocated("/meta/sound.bin", &sound_bin_size);
if(!sound_bin) {
return false;
}
return true;
}
Layout* Banner::LoadLayout(const U8Archive &archive, const std::string& lyt_name, const std::string &language)
{
const u8 *brlyt = archive.GetFile("/arc/blyt/" + lyt_name + ".brlyt");
if(!brlyt) {
return NULL;
}
Layout *layout = new Layout;
layout->Load(brlyt);
u32 length_start = 0, length_loop = 0;
const u8 *brlan_start = archive.GetFile("/arc/anim/" + lyt_name + "_Start.brlan");
const u8 *brlan_loop = 0;
// try the alternative file
if(!brlan_start)
brlan_start = archive.GetFile("/arc/anim/" + lyt_name + "_In.brlan");
if (brlan_start)
length_start = Animator::LoadAnimators((const RLAN_Header *)brlan_start, *layout, 0);
brlan_loop = archive.GetFile("/arc/anim/" + lyt_name + ".brlan");
if(!brlan_loop)
brlan_loop = archive.GetFile("/arc/anim/" + lyt_name + "_Loop.brlan");
if(!brlan_loop)
brlan_loop = archive.GetFile("/arc/anim/" + lyt_name + "_Rso0.brlan");// added for "artstyle" wiiware
if (brlan_loop)
length_loop = Animator::LoadAnimators((const RLAN_Header *)brlan_loop, *layout, 1);
// load textures after loading the animations so we get the list of tpl filenames from the brlans
layout->LoadTextures(archive);
layout->LoadFonts(archive);
layout->SetLanguage(language);
layout->SetLoopStart(length_start);
layout->SetLoopEnd(length_start + length_loop);
layout->SetFrame(0);
return layout;
}
void Banner::swap(Banner &ban)
{
u8 *tmp_banner_bin = this->banner_bin;
u8 *tmp_icon_bin = this->icon_bin;
u8 *tmp_sound_bin = this->sound_bin;
u32 tmp_banner_bin_size = this->banner_bin_size;
u32 tmp_icon_bin_size = this->icon_bin_size;
u32 tmp_sound_bin_size = this->sound_bin_size;
Layout *tmp_layout_banner = this->layout_banner;
Layout *tmp_layout_icon = this->layout_icon;
this->banner_bin = ban.banner_bin;
this->icon_bin = ban.icon_bin;
this->sound_bin = ban.sound_bin;
this->banner_bin_size = ban.banner_bin_size;
this->icon_bin_size = ban.icon_bin_size;
this->sound_bin_size = ban.sound_bin_size;
this->layout_banner = ban.layout_banner;
this->layout_icon = ban.layout_icon;
ban.banner_bin = tmp_banner_bin;
ban.icon_bin = tmp_icon_bin;
ban.sound_bin = tmp_sound_bin;
ban.banner_bin_size = tmp_banner_bin_size;
ban.icon_bin_size = tmp_icon_bin_size;
ban.sound_bin_size = tmp_sound_bin_size;
ban.layout_banner = tmp_layout_banner;
ban.layout_icon = tmp_layout_icon;
}

55
source/banner/Banner.h Normal file
View File

@ -0,0 +1,55 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef _BANNER_H_
#define _BANNER_H_
#include "Layout.h"
class Banner
{
public:
Banner();
virtual ~Banner();
bool LoadBanner(const u8 *opening_bnr, u32 len);
bool LoadIcon(const u8 *opening_bnr, u32 len);
bool LoadSound(const u8 *opening_bnr, u32 len);
Layout *getBanner() const { return layout_banner; }
Layout *getIcon() const { return layout_icon; }
const u8 *getSound() const { return sound_bin; }
u32 getSoundSize() const { return sound_bin_size; }
void swap(Banner &ban);
protected:
Layout* LoadLayout(const U8Archive &banner_file, const std::string& lyt_name, const std::string &language);
u8 *banner_bin, *icon_bin, *sound_bin;
u32 banner_bin_size, icon_bin_size, sound_bin_size;
Layout *layout_banner, *layout_icon;
};
#endif

View File

@ -0,0 +1,234 @@
/*
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include <unistd.h>
#include <stdio.h>
#include <malloc.h>
#include <gccore.h>
#include "settings/CSettings.h"
#include "OpeningBNR.hpp"
#include "BannerAsync.h"
vector<BannerAsync *> BannerAsync::List;
queue<BannerAsync *> BannerAsync::DeleteList;
lwp_t BannerAsync::Thread = LWP_THREAD_NULL;
mutex_t BannerAsync::ListLock = LWP_THREAD_NULL;
BannerAsync * BannerAsync::InUse = NULL;
bool BannerAsync::SleepThread = false;
bool BannerAsync::CloseThread = false;
BannerAsync::BannerAsync(const discHdr *hdr)
: header(hdr)
{
ThreadInit();
ThreadAdd(this);
}
BannerAsync::~BannerAsync()
{
ThreadRemove(this);
while(InUse == this)
usleep(100);
}
void BannerAsync::ThreadAdd(BannerAsync *banner)
{
LWP_MutexLock(ListLock);
List.push_back(banner);
LWP_MutexUnlock(ListLock);
LWP_ResumeThread(Thread);
}
void BannerAsync::ThreadRemove(BannerAsync *banner)
{
LWP_MutexLock(ListLock);
for(u32 i = 0; i < List.size(); ++i)
{
if(List[i] == banner)
{
List.erase(List.begin()+i);
break;
}
}
LWP_MutexUnlock(ListLock);
}
void BannerAsync::RemoveBanner(BannerAsync *banner)
{
LWP_MutexLock(ListLock);
DeleteList.push(banner);
LWP_MutexUnlock(ListLock);
LWP_ResumeThread(Thread);
}
void BannerAsync::ClearQueue()
{
LWP_MutexLock(ListLock);
List.clear();
LWP_MutexUnlock(ListLock);
}
void BannerAsync::PushFront(BannerAsync *banner)
{
if(banner == InUse)
return;
LWP_MutexLock(ListLock);
for(u32 i = 0; i < List.size(); ++i)
{
if(List[i] == banner)
{
List.erase(List.begin()+i);
break;
}
}
List.insert(List.begin(), banner);
LWP_MutexUnlock(ListLock);
LWP_ResumeThread(Thread);
}
void * BannerAsync::BannerAsyncThread(void *arg)
{
while(!CloseThread)
{
while(!List.empty() && !CloseThread && !SleepThread)
{
LWP_MutexLock(ListLock);
//! Delete the delete queue
while(!DeleteList.empty())
{
delete DeleteList.front();
DeleteList.pop();
}
//! Check if there is still something to do
if(List.empty())
{
LWP_MutexUnlock(ListLock);
continue;
}
//! Get first entry and pop
InUse = List.front();
List.erase(List.begin());
LWP_MutexUnlock(ListLock);
if (!InUse || !InUse->header)
continue;
const u8 * banner = NULL;
u32 bannerSize = 0;
if((InUse->header->type == TYPE_GAME_GC_IMG) || (InUse->header->type == TYPE_GAME_GC_DISC) || (InUse->header->type == TYPE_GAME_GC_EXTRACTED))
{
//! first see if a cache file is present and load that if needed
if(BNRInstance::Instance()->Load(InUse->header))
{
banner = BNRInstance::Instance()->Get();
bannerSize = BNRInstance::Instance()->GetSize();
}
else
{
//! load our default one
CustomBanner *gcBanner = BNRInstance::Instance()->CreateGCIcon(InUse->header);
if(gcBanner) {
InUse->swap(*gcBanner);
delete gcBanner;
}
}
}
else
{
BNRInstance::Instance()->Load(InUse->header);
banner = BNRInstance::Instance()->Get();
bannerSize = BNRInstance::Instance()->GetSize();
}
if(banner != NULL && bannerSize > 0)
InUse->LoadIcon(banner, bannerSize);
InUse = NULL;
}
//! Delete the delete queue here as well in case list was empty
if(!DeleteList.empty())
{
LWP_MutexLock(ListLock);
while(!DeleteList.empty())
{
delete DeleteList.front();
DeleteList.pop();
}
LWP_MutexUnlock(ListLock);
}
if(!CloseThread)
LWP_SuspendThread(Thread);
}
return NULL;
}
void BannerAsync::ResumeThread(void)
{
SleepThread = false;
if(Thread != LWP_THREAD_NULL)
LWP_ResumeThread(Thread);
}
void BannerAsync::HaltThread(void)
{
SleepThread = true;
if(Thread == LWP_THREAD_NULL)
return;
// wait for thread to finish
while (!LWP_ThreadIsSuspended(Thread))
usleep(100);
}
void BannerAsync::ThreadInit(void)
{
if (Thread == LWP_THREAD_NULL)
{
LWP_MutexInit(&ListLock, false);
LWP_CreateThread(&Thread, BannerAsyncThread, NULL, NULL, 65536, 70);
}
}
void BannerAsync::ThreadExit(void)
{
if(Thread != LWP_THREAD_NULL)
{
ClearQueue();
CloseThread = true;
LWP_ResumeThread(Thread);
LWP_JoinThread(Thread, NULL);
LWP_MutexUnlock(ListLock);
LWP_MutexDestroy(ListLock);
Thread = LWP_THREAD_NULL;
ListLock = LWP_MUTEX_NULL;
}
}

View File

@ -0,0 +1,64 @@
/*
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef _BANNERASYNC_H_
#define _BANNERASYNC_H_
#include <vector>
#include <queue>
#include <string>
#include "usbloader/GameList.h"
#include "Banner.h"
using namespace std;
class BannerAsync : public Banner
{
public:
BannerAsync( const discHdr *header );
virtual ~BannerAsync();
static void ThreadInit(void);
static void ThreadExit(void);
static void HaltThread(void);
static void ResumeThread(void);
static void RemoveBanner(BannerAsync *banner);
static void ClearQueue();
static void PushFront(BannerAsync *banner);
private:
const discHdr *header;
static void * BannerAsyncThread(void *arg);
static void ThreadAdd(BannerAsync* banner);
static void ThreadRemove(BannerAsync* banner);
static vector<BannerAsync *> List;
static queue<BannerAsync *> DeleteList;
static lwp_t Thread;
static mutex_t ListLock;
static BannerAsync * InUse;
static bool SleepThread;
static bool CloseThread;
};
#endif /*_GUIIMAGEASYNC_H_*/

View File

@ -0,0 +1,62 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef BANNER_TOOLS_H_
#define BANNER_TOOLS_H_
#include <gctypes.h>
#include "utils/gx_addons.h"
#include "gecko.h"
#define MAKE_FOURCC(a, b, c, d) ((a) * (1 << 24) + (b) * (1 << 16) + (c) * (1 << 8) + (d) * (1 << 0))
typedef struct
{
u32 magic;
u32 size;
} section_t;
typedef struct
{
float x, y;
} Vec2f;
typedef struct
{
float x, y, z;
} Vec3f;
#define ALIGN32(x) (((x) + 31) & ~31)
#define LIMIT(x, min, max) \
({ \
typeof( x ) _x = x; \
typeof( min ) _min = min; \
typeof( max ) _max = max; \
( ( ( _x ) < ( _min ) ) ? ( _min ) : ( ( _x ) > ( _max ) ) ? ( _max) : ( _x ) ); \
})
#define MultiplyAlpha(a1, a2) ((u16) (a1) * (u16) (a2) / 0xFF)
#define FLOAT_2_U8(x) ((u8)((x) > 255.0f ? 255.0f : ((x) < 0.0f ? 0.0f : (x) + 0.5f)))
#define FLOAT_2_S16(x) ((s16)((x) > 32767.0f ? 32767.0f : ((x) < -32768.0f ? 32768.0f : (x) + 0.5f)))
#endif

View File

@ -0,0 +1,138 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#include <malloc.h>
#include "CustomBanner.h"
#include "ImageOperations/TextureConverter.h"
#include "utils/StringTools.h"
CustomBanner::CustomBanner()
{
}
CustomBanner::~CustomBanner()
{
for(u32 i = 0; i < text_list.size(); i++)
delete [] text_list[i];
}
void CustomBanner::SetBannerTexture(const char *tex_name, const u8 *data, float width, float height, u8 fmt)
{
if(!layout_banner)
return;
Texture *texture = layout_banner->FindTexture( tex_name );
if(texture != NULL && data != NULL) {
texture->LoadTextureData(data, width, height, fmt);
}
}
void CustomBanner::SetBannerText(const char *text_name, const char *text)
{
if(!layout_banner || !text)
return;
Textbox *tbox = dynamic_cast<Textbox *>(layout_banner->FindPane(text_name));
if(tbox)
{
const wchar_t *wText = wfmt("%s", text);
int len = wcslen(wText);
u16 *text_char16 = new u16[len+1];
for(int i = 0; i < len; i++)
text_char16[i] = (u16) wText[i];
text_char16[len] = 0;
tbox->SetText(text_char16);
text_list.push_back(text_char16);
}
}
void CustomBanner::SetIconTexture(const char *tex_name, const u8 *data, float width, float height, u8 fmt)
{
if(!layout_icon)
return;
Texture *texture = layout_icon->FindTexture( tex_name );
if(texture != NULL && data != NULL) {
texture->LoadTextureData(data, width, height, fmt);
}
}
u8 *CustomBanner::LoadTextureFromPng(const u8 * img, u32 imgSize, int *width, int *height)
{
if(!img)
return NULL;
// load png
gdImagePtr gdImg = gdImageCreateFromPngPtr(imgSize, (u8 *)img);
if(!gdImg)
return NULL;
u8 *texture = GDImageToRGBA8(&gdImg, width, height);
// free image object
gdImageDestroy( gdImg );
return texture;
}
void CustomBanner::SetBannerPngImage(const char *tex_name, const u8 * img, u32 imgSize)
{
int pngWidth;
int pngHeight;
u8 * texData = LoadTextureFromPng(img, imgSize, &pngWidth, &pngHeight);
if(texData)
{
SetBannerTexture(tex_name, texData, pngWidth, pngHeight, GX_TF_RGBA8);
free(texData);
}
}
void CustomBanner::SetIconPngImage(const char *tex_name, const u8 * img, u32 imgSize)
{
int pngWidth;
int pngHeight;
u8 * texData = LoadTextureFromPng(img, imgSize, &pngWidth, &pngHeight);
if(texData)
{
SetIconTexture(tex_name, texData, pngWidth, pngHeight, GX_TF_RGBA8);
free(texData);
}
}
void CustomBanner::SetBannerTextureScale(float scale)
{
Pane *pane = layout_banner->FindPane("HBPic");
if(pane)
pane->SetScale(scale);
pane = layout_banner->FindPane("HBPicSha");
if(pane)
pane->SetScale(scale);
}
void CustomBanner::SetBannerPaneVisible(const char *pane_name, bool visible)
{
Pane *pane = layout_banner->FindPane(pane_name);
if(pane)
pane->SetVisible(visible);
}

View File

@ -0,0 +1,43 @@
/****************************************************************************
* Copyright (C) 2012 Dimok
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
****************************************************************************/
#ifndef CUSTOM_BANNER_H_
#define CUSTOM_BANNER_H_
#include <vector>
#include "Banner.h"
using namespace std;
class CustomBanner : public Banner
{
public:
CustomBanner();
virtual ~CustomBanner();
void SetBannerText(const char *text_name, const char *text);
void SetBannerPngImage(const char *tex_name, const u8 * img, u32 imgSize);
void SetIconPngImage(const char *tex_name, const u8 * img, u32 imgSize);
void SetBannerTexture(const char *tex_name, const u8 *data, float width, float height, u8 fmt);
void SetIconTexture(const char *tex_name, const u8 *data, float width, float height, u8 fmt);
void SetBannerTextureScale(float scale);
void SetBannerPaneVisible(const char *pane, bool visible);
private:
u8 *LoadTextureFromPng(const u8 * img, u32 imgSize, int *width, int *height);
vector<u16 *> text_list;
};
#endif /*CUSTOM_BANNER_H_*/

391
source/banner/Layout.cpp Normal file
View File

@ -0,0 +1,391 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include "SystemMenu/SystemMenuResources.h"
#include "Layout.h"
#include "WiiFont.h"
Layout::Layout()
: header(0)
{
}
Layout::~Layout()
{
for(u32 i = 0; i < panes.size(); ++i)
delete panes[i];
for(u32 i = 0; i < resources.materials.size(); ++i)
delete resources.materials[i];
for(u32 i = 0; i < resources.textures.size(); ++i)
delete resources.textures[i];
for(u32 i = 0; i < resources.fonts.size(); ++i) {
if(resources.fonts[i] == SystemMenuResources::Instance()->GetWbf1() ||
resources.fonts[i] == SystemMenuResources::Instance()->GetWbf2())
continue;
delete resources.fonts[i];
}
}
bool Layout::Load(const u8 *brlyt)
{
if(!brlyt)
return false;
const BRLYT_Header *brlytFile = (const BRLYT_Header *) brlyt;
if(brlytFile->magic != BRLYT_MAGIC || brlytFile->version != BRLYT_VERSION)
return false;
Group* last_group = NULL;
std::stack<std::map<std::string, Group>*> group_stack;
group_stack.push(&groups);
Pane* last_pane = NULL;
std::stack<std::vector<Pane*>*> pane_stack;
pane_stack.push(&panes);
const u8 *position = brlyt + brlytFile->header_len;
for(u32 i = 0; i < brlytFile->section_count; ++i)
{
section_t *section = (section_t *) position;
position += section->size;
if(section->magic == Layout::MAGIC)
{
header = (Layout::Header *) (section + 1);
}
else if (section->magic == TextureList::MAGIC)
{
const LytItemList *txl1 = (const LytItemList *) (section+1);
const char *nameoffset = ((const char *)(txl1+1));
const LytStringTable *stringTable = (const LytStringTable *) (((const u8 *)(txl1+1))+txl1->offset_to_first);
for(u32 i = 0; i < txl1->num_items; ++i)
{
const char *name = nameoffset+stringTable[i].offset_filename;
Texture *texture = new Texture;
texture->setName(name);
resources.textures.push_back(texture);
}
}
else if (section->magic == MaterialList::MAGIC)
{
const LytItemList *mat1 = (const LytItemList *) (section+1);
const u32 *mat_offsets = (const u32 *) (((const u8 *)(mat1+1))+mat1->offset_to_first);
for(u32 i = 0; i < mat1->num_items; ++i)
{
Material *material = new Material;
material->Load((Material::Header *) (((const u8 *) section)+mat_offsets[i]));
resources.materials.push_back(material);
}
}
else if (section->magic == FontList::MAGIC)
{
// load font list
const LytItemList *fnl1 = (const LytItemList *) (section+1);
const char *nameoffset = ((const char *)(fnl1+1));
const LytStringTable *stringTable = (const LytStringTable *) (((const u8 *)(fnl1+1))+fnl1->offset_to_first);
for(u32 i = 0; i < fnl1->num_items; i++)
{
const char *name = nameoffset+stringTable[i].offset_filename;
WiiFont *font;
if(strcmp(name, "wbf1.brfna") == 0 || strcmp(name, "RevoIpl_RodinNTLGPro_DB_32_I4.brfnt") == 0) {
//! 1st system font or alias for it
font = SystemMenuResources::Instance()->GetWbf1();
if(!font) continue;
}
else if(strcmp(name, "wbf2.brfna") == 0) {
//! 2nd system font
font = SystemMenuResources::Instance()->GetWbf2();
if(!font) continue;
}
else {
//! font from banner
font = new WiiFont;
font->SetName(name);
}
resources.fonts.push_back(font);
}
}
else if (section->magic == Pane::MAGIC)
{
Pane* pane = new Pane;
pane->Load((Pane::Header *) section);
pane_stack.top()->push_back(last_pane = pane);
}
else if (section->magic == Bounding::MAGIC)
{
Bounding* pane = new Bounding;
pane->Load((Pane::Header *) section);
pane_stack.top()->push_back(last_pane = pane);
}
else if (section->magic == Picture::MAGIC)
{
Picture* pane = new Picture;
pane->Load((Pane::Header *) section);
pane_stack.top()->push_back(last_pane = pane);
}
else if (section->magic == Window::MAGIC)
{
Window* pane = new Window;
pane->Load((Pane::Header *) section);
pane_stack.top()->push_back(last_pane = pane);
}
else if (section->magic == Textbox::MAGIC)
{
Textbox* pane = new Textbox;
pane->Load((Pane::Header *) section);
pane_stack.top()->push_back(last_pane = pane);
}
else if (section->magic == Layout::MAGIC_PANE_PUSH)
{
if (last_pane)
pane_stack.push(&last_pane->panes);
}
else if (section->magic == Layout::MAGIC_PANE_POP)
{
if (pane_stack.size() > 1)
pane_stack.pop();
}
else if (section->magic == Group::MAGIC)
{
const char *grp = (const char *) (section + 1);
std::string group_name(grp, 0, Layout::Group::NAME_LENGTH);
Group& group_ref = (*group_stack.top())[group_name];
grp += Layout::Group::NAME_LENGTH;
u16 sub_count = *(u16 *) grp;
grp += 4; // 2 bytes reserved
while (sub_count--)
{
std::string pane_name(grp, 0, Layout::Group::NAME_LENGTH);
group_ref.panes.push_back(pane_name);
grp += Layout::Group::NAME_LENGTH;
}
last_group = &group_ref;
}
else if (section->magic == Layout::MAGIC_GROUP_PUSH)
{
if (last_group)
group_stack.push(&last_group->groups);
}
else if (section->magic == Layout::MAGIC_GROUP_POP)
{
if (group_stack.size() > 1)
group_stack.pop();
}
else {
gprintf("Uknown layout section: %08X\n", section->magic);
}
}
return true;
}
bool Layout::LoadTextures(const U8Archive &banner_file)
{
bool success = false;
for(u32 i = 0; i < resources.textures.size(); ++i)
{
const u8 *file = banner_file.GetFile("/arc/timg/" + resources.textures[i]->getName());
if (file)
resources.textures[i]->Load(file);
else
success = false;
}
return success;
}
bool Layout::LoadFonts(const U8Archive &banner_file)
{
bool success = false;
for(u32 i = 0; i < resources.fonts.size(); ++i)
{
if(resources.fonts[i]->IsLoaded())
continue;
const u8 *file = banner_file.GetFile("/arc/font/" + resources.fonts[i]->getName());
if (file)
resources.fonts[i]->Load(file);
else
success = false;
}
return success;
}
void Layout::Render(Mtx &modelview, const Vec2f &ScreenProps, bool widescreen, u8 render_alpha) const
{
if(!header)
return;
Mtx mv;
// we draw inverse
guMtxScaleApply(modelview, mv, 1.0f, -1.0f, 1.0f);
// centered draw
if(header->centered)
guMtxTransApply(mv, mv, ScreenProps.x * 0.5f, ScreenProps.y * 0.5f, 0.f);
// render all panes
for(u32 i = 0; i < panes.size(); ++i)
panes[i]->Render(resources, render_alpha, mv, widescreen);
}
void Layout::SetFrame(FrameNumber frame_number)
{
frame_current = frame_number;
const u8 key_set = (frame_current >= frame_loop_start);
if (key_set)
frame_number -= frame_loop_start;
resources.cur_set = key_set;
for(u32 i = 0; i < panes.size(); ++i)
panes[i]->SetFrame(frame_number, key_set);
for(u32 i = 0; i < resources.materials.size(); ++i)
resources.materials[i]->SetFrame(frame_number, key_set);
}
void Layout::AdvanceFrame()
{
++frame_current;
if (frame_current >= frame_loop_end)
frame_current = frame_loop_start;
SetFrame(frame_current);
}
void Layout::SetLanguage(const std::string& language)
{
if(!header)
return;
// check if that language is found
bool lang_found = false;
// hide panes of non-matching languages
std::map<std::string, Group>::iterator itr;
for(itr = groups["RootGroup"].groups.begin(); itr != groups["RootGroup"].groups.end(); itr++)
{
// check if that language exists
if(!lang_found && itr->first == language)
lang_found = true;
// some hax, there are some odd "Rso0" "Rso1" groups that shouldn't be hidden
// only the 3 character language groups should be
if (itr->first != language && itr->first.length() == 3)
{
std::list<std::string>::iterator itr2;
for(itr2 = itr->second.panes.begin(); itr2 != itr->second.panes.end(); itr2++)
{
Pane* const found = FindPane(*itr2);
if (found)
found->SetHide(true);
}
}
}
// show english if langauge is not found
if(!lang_found && language != "ENG")
{
SetLanguage("ENG");
return;
}
// unhide panes of matching language, some banners list language specific panes in multiple language groups
std::list<std::string>::iterator itr2;
for(itr2 = groups["RootGroup"].groups[language].panes.begin(); itr2 != groups["RootGroup"].groups[language].panes.end(); itr2++)
{
Pane* const found = FindPane(*itr2);
if (found)
{
found->SetHide(false);
found->SetVisible(true); // all games with languages start as visible
}
}
}
void Layout::AddPalette(const std::string &name, u8 key_set)
{
resources.palettes[key_set].push_back(name);
if(FindTexture(name) != 0)
return;
Texture *texture = new Texture;
texture->setName(name);
resources.textures.push_back(texture);
}
Pane* Layout::FindPane(const std::string& find_name)
{
for(u32 i = 0; i < panes.size(); ++i)
{
Pane* found = panes[i]->FindPane(find_name);
if(found)
return found;
}
return NULL;
}
Material* Layout::FindMaterial(const std::string& find_name)
{
for(u32 i = 0; i < resources.materials.size(); ++i)
{
if (find_name.compare(0, 20, resources.materials[i]->getName()) == 0)
return resources.materials[i];
}
return NULL;
}
Texture* Layout::FindTexture(const std::string& find_name)
{
for(u32 i = 0; i < resources.textures.size(); ++i)
{
if (find_name == resources.textures[i]->getName())
return resources.textures[i];
}
return NULL;
}

144
source/banner/Layout.h Normal file
View File

@ -0,0 +1,144 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef LAYOUT_H_
#define LAYOUT_H_
#include <gctypes.h>
#include <map>
#include <string>
#include <list>
#include <stack>
#include "Texture.h"
#include "Material.h"
#include "Pane.h"
#include "Picture.h"
#include "Window.h"
#include "WiiFont.h"
#include "Textbox.h"
#include "utils/U8Archive.h"
typedef std::vector<std::string> PaletteList;
struct BannerResources
{
MaterialList materials;
TextureList textures;
FontList fonts;
PaletteList palettes[2];
u8 cur_set;
};
class Layout
{
public:
Layout();
virtual ~Layout();
static const u32 BRLYT_MAGIC = MAKE_FOURCC('R', 'L', 'Y', 'T');
static const u32 BRLYT_VERSION = 0xFEFF0008;
static const u32 MAGIC = MAKE_FOURCC('l', 'y', 't', '1');
static const u32 MAGIC_PANE_PUSH = MAKE_FOURCC('p', 'a', 's', '1');
static const u32 MAGIC_PANE_POP = MAKE_FOURCC('p', 'a', 'e', '1');
static const u32 MAGIC_GROUP_PUSH = MAKE_FOURCC('g', 'r', 's', '1');
static const u32 MAGIC_GROUP_POP = MAKE_FOURCC('g', 'r', 'e', '1');
bool Load(const u8 *brlyt);
bool LoadTextures(const U8Archive &banner_file);
bool LoadFonts(const U8Archive &banner_file);
void Render(Mtx &modelview, const Vec2f &ScreenProps, bool widescreen, u8 render_alpha = 0xFF) const;
FrameNumber GetFrame() const { return frame_current; }
void SetFrame(FrameNumber frame_number);
void AdvanceFrame();
void SetLoopStart(FrameNumber loop_start) { frame_loop_start = loop_start; }
void SetLoopEnd(FrameNumber loop_end) { frame_loop_end = loop_end; }
float GetWidth() const { return header->width; }
void SetWidth(float _width) { header->width = _width; }
float GetHeight() const { return header->height; }
void SetHeight(float _height) { header->height = _height; }
bool isCentered() const { return header->centered; }
void SetLanguage(const std::string& language);
Pane* FindPane(const std::string& name);
Material* FindMaterial(const std::string& name);
Texture *FindTexture(const std::string &name);
void AddPalette(const std::string &name, u8 key_set);
protected:
struct BRLYT_Header
{
u32 magic;
u32 version;
u32 filesize;
u16 header_len;
u16 section_count;
} __attribute__((packed));
struct Header
{
u8 centered;
u8 pad[3];
float width;
float height;
} __attribute__((packed));
struct LytItemList
{
u16 num_items;
u16 offset_to_first;
} __attribute__((packed));
struct LytStringTable
{
u32 offset_filename;
u32 pad;
} __attribute__((packed));
struct Group
{
static const u32 MAGIC = MAKE_FOURCC('g', 'r', 'p', '1');
static const u32 NAME_LENGTH = 0x10;
std::map<std::string, Group> groups;
std::list<std::string> panes;
};
Layout::Header *header;
BannerResources resources;
PaneList panes;
FrameNumber frame_current, frame_loop_start, frame_loop_end;
std::map<std::string, Group> groups;
};
#endif

591
source/banner/Material.cpp Normal file
View File

@ -0,0 +1,591 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok and giantpune
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include <algorithm>
#include <math.h>
#include "Layout.h"
#include "Material.h"
Material::Material()
: flags(0)
, texture_maps(0)
, texture_srts(0)
, texture_coord_gens(0)
, chan_control(0)
, mat_color(0)
, tev_swap_table(0)
, ind_srt(0)
, ind_stage(0)
, tev_stages(0)
, alpha_compare(0)
, blend_mode(0)
, header(0)
{
for( int i = 0; i < 8; i++ )
palette_texture[i] = DEFAULT_PALETTE;
}
void Material::Load(Material::Header *file)
{
header = file;
// Flags
flags = (MatFlags *) &header->flags;
flags->texture_map = std::min((int)MAX_TEX_MAP, (int)flags->texture_map);
flags->texture_srt = std::min((int)MAX_TEX_SRT, (int)flags->texture_srt);
flags->texture_coord_gen = std::min((int)MAX_TEX_GEN, (int)flags->texture_coord_gen);
flags->ind_srt = flags->ind_srt;
flags->ind_stage = std::min((int)MAX_IND_STAGES, (int)flags->ind_stage);
flags->tev_stages = std::min((int)MAX_TEV_STAGES, (int)flags->tev_stages);
u8 *buf_offset = (u8 *) (header+1);
// texture map
if(flags->texture_map)
{
texture_maps = (TextureMap *) buf_offset;
buf_offset += sizeof(TextureMap) * flags->texture_map;
}
// texture srt
if(flags->texture_srt)
{
texture_srts = (TextureSrt *) buf_offset;
buf_offset += sizeof(TextureSrt) * flags->texture_srt;
}
// texture coord gen
if(flags->texture_coord_gen)
{
texture_coord_gens = (TextureCoordGen *) buf_offset;
buf_offset += sizeof(TextureCoordGen) * flags->texture_coord_gen;
}
// channel control
if (flags->channel_control)
{
chan_control = (ChannelControl *) buf_offset;
buf_offset += sizeof(ChannelControl);
}
// material color
if (flags->material_color)
{
mat_color = (GXColor *) buf_offset;
buf_offset += sizeof(GXColor);
}
//else Default to 0xFFFFFFFF
// tev swap table
if (flags->tev_swap_table)
{
tev_swap_table = (TevSwap *) buf_offset;
buf_offset += sizeof(TevSwap) * 4;
}
// ind srt
if(flags->ind_srt)
{
ind_srt = (IndSrt *) buf_offset;
buf_offset += sizeof(IndSrt) * flags->ind_srt;
}
// ind stage
if(flags->ind_stage)
{
ind_stage = (IndStage *) buf_offset;
buf_offset += sizeof(IndStage) * flags->ind_stage;
}
// tev stage
if(flags->tev_stages)
{
tev_stages = (TevStage *) buf_offset;
buf_offset += sizeof(TevStage) * flags->tev_stages;
}
// alpha compare
if (flags->alpha_compare)
{
alpha_compare = (AlphaCompareModes *) buf_offset;
buf_offset += sizeof(AlphaCompareModes);
}
// blend mode
if (flags->blend_mode)
{
blend_mode = (BlendModes *) buf_offset;
buf_offset += sizeof(BlendModes);
}
}
inline void Material::ApplyChannelControl(u8 render_alpha, bool &modulate_colors) const
{
if(flags->channel_control)
{
GX_SetChanCtrl(0, 0, 0, chan_control->color_matsrc, 0, 0, 2 );
GX_SetChanCtrl(2, 0, 0, chan_control->alpha_matsrc, 0, 0, 2 );
if(chan_control->alpha_matsrc != 1 && chan_control->color_matsrc != 1)
modulate_colors = false;
if(!chan_control->alpha_matsrc || !chan_control->color_matsrc)
{
GXColor matColor = (GXColor){0xff, 0xff, 0xff, MultiplyAlpha(0xff, render_alpha) };
if(flags->material_color)
matColor = (GXColor){ mat_color->r, mat_color->g, mat_color->b,
MultiplyAlpha(mat_color->a, render_alpha) };
GX_SetChanMatColor(4, matColor);
if((*(u32 *)&matColor) == 0xFFFFFFFF)
modulate_colors = true;
}
}
else
{
GX_SetChanCtrl(4, 0, 0, 1, 0, 0, 2);
}
GX_SetNumChans(1);
}
inline void Material::ApplyTexCoordGens(void) const
{
// texture coord gen
for(u32 i = 0; i != flags->texture_coord_gen; ++i)
{
const TextureCoordGen &tcg = texture_coord_gens[i];
GX_SetTexCoordGen(GX_TEXCOORD0 + i, tcg.tgen_typ, tcg.tgen_src, tcg.mtxsrc);
const u8 mtrx = (tcg.mtxsrc - GX_TEXMTX0) / 3;
if (tcg.tgen_typ == 1 && tcg.mtxsrc != GX_IDENTITY && mtrx < flags->texture_srt)
{
const TextureSrt& srt = texture_srts[mtrx];
const float rotate_rad = DegToRad(srt.rotate);
const float cosF = cosf(rotate_rad);
const float sinF = sinf(rotate_rad);
// setup texture matrix
Mtx m;
m[0][0] = srt.scale_x * cosF;
m[0][1] = srt.scale_y * -sinF;
m[0][2] = 0.0f;
m[0][3] = -0.5f * (m[0][0] + m[0][1]) + srt.translate_x + 0.5f;
m[1][0] = srt.scale_x * sinF;
m[1][1] = srt.scale_y * cosF;
m[1][2] = 0.0f;
m[1][3] = -0.5f * (m[1][0] + m[1][1]) + srt.translate_y + 0.5f;
m[2][0] = 0.0f;
m[2][1] = 0.0f;
m[2][2] = 1.0f;
m[2][3] = 0.0f;
GX_LoadTexMtxImm(m, tcg.mtxsrc, GX_MTX3x4);
}
}
GX_SetNumTexGens(flags->texture_coord_gen);
}
inline void Material::ApplyTevSwapTable(void) const
{
if (flags->tev_swap_table)
{
for(int i = 0; i < 4; i++)
GX_SetTevSwapModeTable(GX_TEV_SWAP0 + i,
tev_swap_table[i].r, tev_swap_table[i].g,
tev_swap_table[i].b, tev_swap_table[i].a);
}
else
{
GX_SetTevSwapModeTable(GX_TEV_SWAP0, GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA);
GX_SetTevSwapModeTable(GX_TEV_SWAP1, GX_CH_RED, GX_CH_RED, GX_CH_RED, GX_CH_ALPHA);
GX_SetTevSwapModeTable(GX_TEV_SWAP2, GX_CH_GREEN, GX_CH_GREEN, GX_CH_GREEN, GX_CH_ALPHA);
GX_SetTevSwapModeTable(GX_TEV_SWAP3, GX_CH_BLUE, GX_CH_BLUE, GX_CH_BLUE, GX_CH_ALPHA);
}
}
inline void Material::ApplyTevStages(bool modulate_colors) const
{
u32 tev_stages_cnt = 0;
if(flags->tev_stages)
{
// tev stages
for(u32 i = 0; i < flags->tev_stages; ++i)
{
const TevStage &ts = tev_stages[i];
GX_SetTevOrder(i, ts.texcoord, ts.tex_map | (ts.lowBit << 8), ts.color );
GX_SetTevSwapMode(i, ts.ras_sel, ts.tex_sel);
GX_SetTevColorIn(i, ts.color_in.a, ts.color_in.b, ts.color_in.c, ts.color_in.d);
GX_SetTevColorOp(i, ts.color_in.tevop, ts.color_in.tevbias, ts.color_in.tevscale, ts.color_in.clamp, ts.color_in.tevregid );
GX_SetTevKColorSel(i, ts.color_in.sel );
GX_SetTevAlphaIn(i, ts.alpha_in.a, ts.alpha_in.b, ts.alpha_in.c, ts.alpha_in.d);
GX_SetTevAlphaOp(i, ts.alpha_in.tevop, ts.alpha_in.tevbias, ts.alpha_in.tevscale, ts.alpha_in.clamp, ts.alpha_in.tevregid );
GX_SetTevKAlphaSel(i, ts.alpha_in.sel );
GX_SetTevIndirect(i, ts.ind.indtexid, ts.ind.format, ts.ind.bias, ts.ind.mtxid,
ts.ind.wrap_s, ts.ind.wrap_t, ts.ind.addprev, ts.ind.utclod, ts.ind.a);
tev_stages_cnt++;
}
}
else
{
if(flags->texture_map == 0)
{
// 1st stage
GX_SetTevOrder(GX_TEVSTAGE0, 0xFF, 0xFF, 4);
GX_SetTevColorIn(GX_TEVSTAGE0, 0xF, 4, 0xA, 0xF);
GX_SetTevAlphaIn(GX_TEVSTAGE0, 0x7, 2, 0x5, 0x7);
tev_stages_cnt++;
}
else if(flags->texture_map == 1)
{
// 1st stage
GX_SetTevOrder(GX_TEVSTAGE0, 0, 0, 0xFF);
GX_SetTevColorIn(GX_TEVSTAGE0, 2, 4, 8, 0xF);
GX_SetTevAlphaIn(GX_TEVSTAGE0, 1, 2, 4, 7);
tev_stages_cnt++;
// 2nd stage
if(modulate_colors)
{
GX_SetTevOrder(GX_TEVSTAGE0 + tev_stages_cnt, 0xFF, 0xFF, 4);
GX_SetTevColorIn(GX_TEVSTAGE0 + tev_stages_cnt, 0xF, 0, 0xA, 0xF);
GX_SetTevAlphaIn(GX_TEVSTAGE0 + tev_stages_cnt, 7, 0, 5, 7);
tev_stages_cnt++;
}
}
else if(flags->texture_map == 2)
{
// 1st stage
GX_SetTevOrder(GX_TEVSTAGE0, 0, 0, 0xFF);
GX_SetTevColorIn(GX_TEVSTAGE0, 0xF, 0xF, 0xF, 8);
GX_SetTevAlphaIn(GX_TEVSTAGE0, 7, 7, 7, 4);
tev_stages_cnt++;
// 2nd stage
GX_SetTevOrder(GX_TEVSTAGE0 + tev_stages_cnt, 1, 1, 0xFF);
GX_SetTevColorIn(GX_TEVSTAGE0 + tev_stages_cnt, 8, 0, 0xE, 0xF);
GX_SetTevAlphaIn(GX_TEVSTAGE0 + tev_stages_cnt, 4, 0, 6, 7);
GX_SetTevKColorSel(GX_TEVSTAGE0 + tev_stages_cnt, 0x1f);
GX_SetTevKAlphaSel(GX_TEVSTAGE0 + tev_stages_cnt, 0x1f);
tev_stages_cnt++;
// 3rd stage
if(modulate_colors)
{
GX_SetTevOrder(GX_TEVSTAGE0 + tev_stages_cnt, 0xFF, 0xFF, 4);
GX_SetTevColorIn(GX_TEVSTAGE0 + tev_stages_cnt, 0xF, 0, 0xA, 0xF);
GX_SetTevAlphaIn(GX_TEVSTAGE0 + tev_stages_cnt, 7, 0, 5, 7);
tev_stages_cnt++;
}
}
else
{
u32 TevKDefault[] = { 0x1F, 0x1B, 0x17, 0x13, 0x1E, 0x1A, 0x16, 0x12 };
for(int i = 0; i < flags->texture_map; i++)
{
GX_SetTevOrder(i, i, i, 0xff );
GX_SetTevColorIn(i, 0xf, 8, 0xe, i ? 0xf : 0 );
GX_SetTevAlphaIn(i, 7, 4, 6, i ? 7 : 0 );
GX_SetTevKColorSel(i, TevKDefault[i] );
GX_SetTevKAlphaSel(i, TevKDefault[i] );
tev_stages_cnt++;
}
GX_SetTevOrder(GX_TEVSTAGE0 + tev_stages_cnt, 0xff, 0xff, 0xff );
GX_SetTevColorIn(GX_TEVSTAGE0 + tev_stages_cnt, 2, 4, 0, 0xf );
GX_SetTevAlphaIn(GX_TEVSTAGE0 + tev_stages_cnt, 1, 2, 0, 7 );
tev_stages_cnt++;
if(modulate_colors)
{
GX_SetTevOrder(GX_TEVSTAGE0 + tev_stages_cnt, 0xFF, 0xFF, 4);
GX_SetTevColorIn(GX_TEVSTAGE0 + tev_stages_cnt, 0xF, 0, 0xA, 0xF);
GX_SetTevAlphaIn(GX_TEVSTAGE0 + tev_stages_cnt, 7, 0, 5, 7);
tev_stages_cnt++;
}
}
for(u32 i = 0; i < tev_stages_cnt; i++)
{
GX_SetTevColorOp(GX_TEVSTAGE0 + i, 0, 0, 0, 1, 0);
GX_SetTevAlphaOp(GX_TEVSTAGE0 + i, 0, 0, 0, 1, 0);
GX_SetTevDirect(GX_TEVSTAGE0 + i);
GX_SetTevSwapMode(GX_TEVSTAGE0 + i, 0, 0);
}
}
// enable correct number of tev stages
GX_SetNumTevStages(tev_stages_cnt);
}
inline void Material::ApplyIndStages(void) const
{
for( int i = 0; i < flags->ind_srt; i++ )
{
const IndSrt &ind = ind_srt[i];
const float rotate_rad = DegToRad(ind.rotate);
// maybe add a look up table
float cosF = cosf(rotate_rad);
float sinF = sinf(rotate_rad);
int scale_exp = 0;
f32 mtx23[2][3];
f32 mtxabs23[2][3];
mtx23[0][0] = ind.scale_x * cosF;
mtx23[0][1] = ind.scale_y * -sinF;
mtx23[0][2] = ind.translate_x;
mtx23[1][0] = ind.scale_x * sinF;
mtx23[1][1] = ind.scale_y * cosF;
mtx23[1][2] = ind.translate_y;
// create matrix with abs values
// compiler will optimize the loops
for(int n = 0; n < 2; n++)
for(int m = 0; m < 3; m++)
mtxabs23[n][m] = fabs(mtx23[n][m]);
// hardcore clamping going on here
if( (mtxabs23[0][0] >= 1.0f)
|| (mtxabs23[0][1] >= 1.0f)
|| (mtxabs23[0][2] >= 1.0f)
|| (mtxabs23[1][0] >= 1.0f)
|| (mtxabs23[1][1] >= 1.0f)
|| (mtxabs23[1][2] >= 1.0f))
{
while( scale_exp < 0x2E
&& ((mtxabs23[0][0] >= 1.0f)
|| (mtxabs23[0][1] >= 1.0f)
|| (mtxabs23[0][2] >= 1.0f)
|| (mtxabs23[1][0] >= 1.0f)
|| (mtxabs23[1][1] >= 1.0f)
|| (mtxabs23[1][2] >= 1.0f)))
{
for(int n = 0; n < 2; n++)
{
for(int m = 0; m < 3; m++)
{
mtx23[n][m] *= 0.5f;
mtxabs23[n][m] *= 0.5f;
}
}
scale_exp++;
}
}
else if( (mtxabs23[0][0] < 0.5f)
&& (mtxabs23[0][1] < 0.5f)
&& (mtxabs23[0][2] < 0.5f)
&& (mtxabs23[1][0] < 0.5f)
&& (mtxabs23[1][1] < 0.5f)
&& (mtxabs23[1][2] < 0.5f))
{
while( scale_exp > -0x11
&& (mtxabs23[0][0] < 0.5f)
&& (mtxabs23[0][1] < 0.5f)
&& (mtxabs23[0][2] < 0.5f)
&& (mtxabs23[1][0] < 0.5f)
&& (mtxabs23[1][1] < 0.5f)
&& (mtxabs23[1][2] < 0.5f))
{
for(int n = 0; n < 2; n++)
{
for(int m = 0; m < 3; m++)
{
mtx23[n][m] *= 2.0f;
mtxabs23[n][m] *= 2.0f;
}
}
scale_exp--;
}
}
GX_SetIndTexMatrix(GX_ITM_0 + i, mtx23, scale_exp);
}
for( int i = 0; i < flags->ind_stage; i++ )
{
const IndStage &stage = ind_stage[i];
GX_SetIndTexOrder(i, stage.texcoord, stage.tex_map);
GX_SetIndTexCoordScale(i, stage.scale_s, stage.scale_t);
}
GX_SetNumIndStages(flags->ind_stage);
}
inline void Material::ApplyTextures(const BannerResources& resources) const
{
u8 tlut_name = 0;
for(u32 i = 0; i < flags->texture_map; ++i)
{
const TextureMap &tr = texture_maps[i];
if(palette_texture[i] == DEFAULT_PALETTE)
{
if (tr.tex_index < resources.textures.size())
resources.textures[tr.tex_index]->Apply(tlut_name, i, tr.wrap_s, tr.wrap_t);
}
else
{
// find texture from palette
if(palette_texture[i] >= resources.palettes[resources.cur_set].size())
{
gprintf( "palette index is out of range %i\n", palette_texture[i]);
return;
}
for(u32 n = 0; n < resources.textures.size(); n++)
{
if(resources.textures[n]->getName() == resources.palettes[resources.cur_set][palette_texture[i]])
{
resources.textures[n]->Apply(tlut_name, i, tr.wrap_s, tr.wrap_t);
break;
}
}
}
}
// invalidate texture cache
GX_InvalidateTexAll();
}
void Material::Apply(const BannerResources& resources, u8 render_alpha, bool modulate_colors) const
{
// channel control and material color
ApplyChannelControl(render_alpha, modulate_colors);
// texture coordinates gen
ApplyTexCoordGens();
// bind textures
ApplyTextures(resources);
for (u32 i = 0; i < 4; ++i)
{
// tev reg colors
if(i < 3)
GX_SetTevColorS10(GX_TEVREG0 + i, header->color_regs[i]);
// tev k colors
GX_SetTevKColor(GX_KCOLOR0 + i, header->color_constants[i]);
}
// tev swap colors
ApplyTevSwapTable();
// tev stages
ApplyTevStages(modulate_colors);
// ind stages
ApplyIndStages();
// alpha compare
if(flags->alpha_compare)
GX_SetAlphaCompare(alpha_compare->compare & 0xf, alpha_compare->ref0,
alpha_compare->op, alpha_compare->compare >> 4, alpha_compare->ref1);
else
GX_SetAlphaCompare(GX_ALWAYS, 0, GX_AOP_AND, GX_ALWAYS, 0);
// blend mode
if (flags->blend_mode)
GX_SetBlendMode(blend_mode->type, blend_mode->src_factor, blend_mode->dst_factor, blend_mode->logical_op);
else
GX_SetBlendMode(GX_BM_BLEND, GX_BL_SRCALPHA, GX_BL_INVSRCALPHA, GX_LO_SET);
}
void Material::ProcessHermiteKey(const KeyType& type, float value)
{
if (type.type == ANIMATION_TYPE_TEXTURE_SRT) // texture scale/rotate/translate
{
if (type.target < 5 && type.index < flags->texture_srt)
{
(&texture_srts[type.index].translate_x)[type.target] = value;
return;
}
// TODO: Something is still here: target 0-4 and index 1-9 while texture_srt is 1, value is always 0 or 1
return; // TODO remove this
}
else if (type.type == ANIMATION_TYPE_IND_MATERIAL) // ind texture crap
{
if (type.target < 5 && type.index < flags->ind_srt)
{
(&ind_srt[type.index].translate_x)[type.target] = value;
return;
}
return; // TODO remove this
}
else if (type.type == ANIMATION_TYPE_MATERIAL_COLOR) // material color
{
if (type.target < 4)
{
// mat_color
if(flags->material_color)
(&mat_color->r)[type.target] = FLOAT_2_U8(value);
return;
}
else if (type.target < 0x10)
{
(&header->color_regs->r)[type.target - 4] = FLOAT_2_S16(value);
return;
}
else if (type.target < 0x20)
{
(&header->color_constants->r)[type.target - 0x10] = FLOAT_2_U8(value);
return;
}
}
Base::ProcessHermiteKey(type, value);
}
void Material::ProcessStepKey(const KeyType& type, StepKeyHandler::KeyData data)
{
if (type.type == ANIMATION_TYPE_TEXTURE_PALETTE) // tpl palette
{
if(type.index < MAX_TEX_MAP)
{
palette_texture[type.index] = data.data2;
return;
}
}
Base::ProcessStepKey(type, data);
}

253
source/banner/Material.h Normal file
View File

@ -0,0 +1,253 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok and giantpune
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef WII_BNR_MATERIAL_H_
#define WII_BNR_MATERIAL_H_
#include "Animator.h"
#include "Texture.h"
struct BannerResources;
class Material : public Animator
{
public:
typedef Animator Base;
struct Header
{
char name[20];
GXColorS10 color_regs[3];
GXColor color_constants[4];
u32 flags;
} __attribute__((packed));
Material();
void Load(Material::Header *mat);
void Apply(const BannerResources& resources, u8 render_alpha, bool modulate) const;
const char *getName() const { return header->name; }
const Material::Header *GetHeader() const { return header; }
protected:
void ProcessHermiteKey(const KeyType& type, float value);
void ProcessStepKey(const KeyType& type, StepKeyHandler::KeyData data);
private:
void ApplyChannelControl(u8 render_alpha, bool &modulate_colors) const;
void ApplyTevSwapTable(void) const;
void ApplyTexCoordGens(void) const;
void ApplyTevStages(bool modulate_colors) const;
void ApplyIndStages(void) const;
void ApplyTextures(const BannerResources& resources) const;
enum
{
MAX_TEX_MAP = 8,
MAX_TEX_SRT = 10,
MAX_TEX_GEN = 8,
MAX_IND_STAGES = 4,
MAX_TEV_STAGES = 16,
DEFAULT_PALETTE = 0xFF,
};
struct MatFlags
{
u32 pad2 : 4;
u32 material_color : 1;
u32 pad : 1;
u32 channel_control : 1;
u32 blend_mode : 1;
u32 alpha_compare : 1;
u32 tev_stages : 5;
u32 ind_stage : 3;
u32 ind_srt : 2;
u32 tev_swap_table : 1;
u32 texture_coord_gen : 4;
u32 texture_srt : 4;
u32 texture_map : 4;
} __attribute__((packed));
struct TextureMap
{
u16 tex_index;
u8 wrap_s;
u8 wrap_t;
} __attribute__((packed));
struct TextureSrt
{
f32 translate_x;
f32 translate_y;
f32 rotate;
f32 scale_x;
f32 scale_y;
} __attribute__((packed));
struct TextureCoordGen
{
u8 tgen_typ;
u8 tgen_src;
u8 mtxsrc;
u8 pad;
} __attribute__((packed));
struct ChannelControl
{
u8 color_matsrc;
u8 alpha_matsrc;
u16 pad;
} __attribute__((packed));
struct IndSrt
{
f32 translate_x;
f32 translate_y;
f32 rotate;
f32 scale_x;
f32 scale_y;
} __attribute__((packed));
struct IndStage
{
u8 texcoord;
u8 tex_map;
u8 scale_s;
u8 scale_t;
} __attribute__((packed));
struct BlendModes
{
u8 type, src_factor, dst_factor, logical_op;
} __attribute__((packed));
struct AlphaCompareModes
{
u8 compare, op, ref0, ref1;
} __attribute__((packed));
struct TevSwap
{
u32 a : 2;
u32 b : 2;
u32 g : 2;
u32 r : 2;
} __attribute__((packed));
struct TevStage
{
u32 texcoord : 8;
u32 color : 8;
u32 tex_map : 8;
u32 unk : 3;
u32 tex_sel : 2;
u32 ras_sel : 2;
u32 lowBit : 1;
struct
{
u32 b : 4;
u32 a : 4;
u32 d : 4;
u32 c : 4;
u32 tevscale : 2;
u32 tevbias : 2;
u32 tevop : 4;
u32 sel : 5;
u32 tevregid : 2;
u32 clamp : 1;
} __attribute__((packed)) color_in, __attribute__((packed)) alpha_in;
struct
{
u32 unk1 : 6;
u32 indtexid : 2;
u32 unk2 : 1;
u32 mtxid : 4;
u32 bias : 3;
u32 unk3 : 2;
u32 wrap_t : 3;
u32 wrap_s : 3;
u32 unk4 : 2;
u32 a : 2;
u32 utclod : 1;
u32 addprev : 1;
u32 format : 2;
} __attribute__((packed)) ind;
} __attribute__((packed));
// Material flags
MatFlags *flags;
// Texture
TextureMap *texture_maps;
TextureSrt *texture_srts;
TextureCoordGen *texture_coord_gens;
// Color channels
ChannelControl *chan_control;
// Material colors
GXColor *mat_color;
// Tev color swap
TevSwap *tev_swap_table;
// Indirect textures
IndSrt *ind_srt;
IndStage *ind_stage;
// Texture environment
TevStage *tev_stages;
// Blending and alpha compare
AlphaCompareModes *alpha_compare;
BlendModes *blend_mode;
// palette animation
u8 palette_texture[MAX_TEX_MAP];
//! Material header
Material::Header *header;
};
class MaterialList : public std::vector<Material*>
{
public:
static const u32 MAGIC = MAKE_FOURCC('m', 'a', 't', '1');
};
#endif

View File

@ -1,15 +1,46 @@
/*
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include <malloc.h>
#include <stdio.h>
#include "Channels/channels.h"
#include "GameCube/GCGames.h"
#include "libs/libwbfs/gcdisc.h"
#include "FileOperations/fileops.h"
#include "language/gettext.h"
#include "usbloader/disc.h"
#include "usbloader/wbfs.h"
#include "usbloader/wdvd.h"
#include "usbloader/wbfs/wbfs_rw.h"
#include "utils/uncompress.h"
#include "themes/CTheme.h"
#include "settings/GameTitles.h"
#include "wstring.hpp"
#include "OpeningBNR.hpp"
BNRInstance * BNRInstance::instance = NULL;
OpeningBNR::OpeningBNR()
: imetHdr(0)
: imetHdr(0), filesize(0)
{
memset(gameID, 0, sizeof(gameID));
}
@ -20,68 +51,142 @@ OpeningBNR::~OpeningBNR()
free(imetHdr);
}
bool OpeningBNR::Load(const u64 &tid, const char *pathPrefix)
bool OpeningBNR::LoadCachedBNR(const char *id)
{
if(tid == 0)
char path[255];
snprintf(path, sizeof(path), "%s%.6s.bnr", Settings.BNRCachePath, id);
if((filesize = FileSize(path)) == 0)
{
snprintf(path, sizeof(path), "%s%.3s.bnr", Settings.BNRCachePath, id);
if((filesize = FileSize(path)) == 0)
return false;
}
FILE *f = fopen(path, "rb");
if(!f)
return false;
u32 tidLow = (u32) (tid & 0xFFFFFFFF);
char id[6];
memset(id, 0, sizeof(id));
memcpy(id, &tidLow, 4);
if(memcmp(gameID, id, 6) == 0)
return true;
memcpy(gameID, id, 6);
if(imetHdr)
free(imetHdr);
imetHdr = NULL;
imetHdr = (IMETHeader*) Channels::GetOpeningBnr(tid, pathPrefix);
imetHdr = (IMETHeader *) malloc(filesize);
if(!imetHdr)
{
fclose(f);
return false;
}
fread(imetHdr, 1, filesize, f);
fclose(f);
if (imetHdr->fcc != 'IMET')
{
free(imetHdr);
imetHdr = NULL;
return false;
//! check if it's a channel .app file
IMETHeader *channelImet = (IMETHeader *)(((u8 *)imetHdr) + 0x40);
if(channelImet->fcc != 'IMET')
{
free(imetHdr);
imetHdr = NULL;
return false;
}
//! just move it 0x40 bytes back, the rest 0x40 bytes will just be unused
//! as it's a temporary file usually it's not worth to reallocate
filesize -= 0x40;
memcpy(imetHdr, channelImet, filesize);
}
return true;
}
bool OpeningBNR::Load(const u8 * discid)
void OpeningBNR::WriteCachedBNR(const char *id, const u8 *buffer, u32 size)
{
if(!discid)
char path[255];
snprintf(path, sizeof(path), "%s%.6s.bnr", Settings.BNRCachePath, id);
CreateSubfolder(Settings.BNRCachePath);
FILE *f = fopen(path, "wb");
if(!f)
return;
fwrite(buffer, 1, size, f);
fclose(f);
}
bool OpeningBNR::Load(const discHdr * header)
{
if(!header)
return false;
if(memcmp(gameID, discid, 6) == 0)
if(memcmp(gameID, header->id, 6) == 0)
return true;
memcpy(gameID, discid, 6);
memcpy(gameID, header->id, 6);
if(imetHdr)
free(imetHdr);
imetHdr = NULL;
wbfs_disc_t *disc = WBFS_OpenDisc((u8 *) gameID);
if (!disc)
return false;
wiidisc_t *wdisc = wd_open_disc((int(*)(void *, u32, u32, void *)) wbfs_disc_read, disc);
if (!wdisc)
switch(header->type)
{
WBFS_CloseDisc(disc);
return false;
case TYPE_GAME_WII_IMG:
case TYPE_GAME_WII_DISC:
return LoadWiiBanner(header);
case TYPE_GAME_NANDCHAN:
case TYPE_GAME_EMUNANDCHAN:
return LoadChannelBanner(header);
case TYPE_GAME_GC_IMG:
case TYPE_GAME_GC_DISC:
case TYPE_GAME_GC_EXTRACTED:
if(!Settings.CacheBNRFiles)
return false;
return LoadCachedBNR((char *)header->id);
default:
break;
}
imetHdr = (IMETHeader*) wd_extract_file(wdisc, ALL_PARTITIONS, (char *) "opening.bnr");
return false;
}
wd_close_disc(wdisc);
WBFS_CloseDisc(disc);
bool OpeningBNR::LoadWiiBanner(const discHdr * header)
{
if(!header || ( (header->type != TYPE_GAME_WII_IMG)
&& (header->type != TYPE_GAME_WII_DISC)))
return false;
if(Settings.CacheBNRFiles && LoadCachedBNR((const char *)header->id))
return true;
if(header->type == TYPE_GAME_WII_DISC)
{
wiidisc_t *wdisc = wd_open_disc(__ReadDVD, 0);
if (!wdisc)
return false;
imetHdr = (IMETHeader*) wd_extract_file(wdisc, ALL_PARTITIONS, (char *) "opening.bnr");
filesize = wdisc->extracted_size;
wd_close_disc(wdisc);
}
else
{
wbfs_disc_t *disc = WBFS_OpenDisc((u8 *) gameID);
if (!disc)
return false;
wiidisc_t *wdisc = wd_open_disc((int(*)(void *, u32, u32, void *)) wbfs_disc_read, disc);
if (!wdisc)
{
WBFS_CloseDisc(disc);
return false;
}
imetHdr = (IMETHeader*) wd_extract_file(wdisc, ALL_PARTITIONS, (char *) "opening.bnr");
filesize = wdisc->extracted_size;
wd_close_disc(wdisc);
WBFS_CloseDisc(disc);
}
if(!imetHdr)
return false;
@ -93,6 +198,38 @@ bool OpeningBNR::Load(const u8 * discid)
return false;
}
if(Settings.CacheBNRFiles)
WriteCachedBNR((const char *) header->id, (u8 *) imetHdr, filesize);
return true;
}
bool OpeningBNR::LoadChannelBanner(const discHdr *header)
{
if(!header || (header->tid == 0) || ( (header->type != TYPE_GAME_NANDCHAN)
&& (header->type != TYPE_GAME_EMUNANDCHAN)))
return false;
if(Settings.CacheBNRFiles && LoadCachedBNR((char *) header->id))
return true;
const u64 &tid = header->tid;
const char *pathPrefix = (header->type == TYPE_GAME_EMUNANDCHAN) ? Settings.NandEmuChanPath : "";
imetHdr = (IMETHeader*) Channels::GetOpeningBnr(tid, &filesize, pathPrefix);
if(!imetHdr)
return false;
if (imetHdr->fcc != 'IMET')
{
free(imetHdr);
imetHdr = NULL;
return false;
}
if(Settings.CacheBNRFiles)
WriteCachedBNR((char *) header->id, (u8 *) imetHdr, filesize);
return true;
}
@ -101,56 +238,251 @@ const u16 * OpeningBNR::GetIMETTitle(int lang)
if(!imetHdr || lang < 0 || lang >= 10)
return NULL;
if (imetHdr->fcc != 'IMET')
return NULL;
if(imetHdr->names[lang][0] == 0)
lang = CONF_LANG_ENGLISH;
return imetHdr->names[lang];
}
const u8 * OpeningBNR::GetBannerSound(u32 * size)
static int GC_Disc_Read(void *fp, u32 offset, u32 count, void*iobuf)
{
if(!imetHdr)
return NULL;
const U8Header *bnrArcHdr = (U8Header *) (imetHdr + 1);
const U8Entry *fst = (const U8Entry *) (((const u8 *) bnrArcHdr) + bnrArcHdr->rootNodeOffset);
u32 i;
for (i = 1; i < fst[0].numEntries; ++i)
if (fst[i].fileType == 0 && strcasecmp(u8Filename(fst, i), "sound.bin") == 0) break;
if (i >= fst[0].numEntries)
if(fp)
{
return NULL;
fseek((FILE *)fp, offset, SEEK_SET);
return fread(iobuf, 1, count, (FILE *)fp);
}
const u8 *sound_bin = ((const u8 *) bnrArcHdr) + fst[i].fileOffset;
if (((IMD5Header *) sound_bin)->fcc != 'IMD5')
{
return NULL;
}
const u8 *soundChunk = sound_bin + sizeof(IMD5Header);
u32 soundChunkSize = fst[i].fileLength - sizeof(IMD5Header);
return __ReadDVDPlain(iobuf, count, offset);
}
if (*((u32*) soundChunk) == 'LZ77')
u8 *OpeningBNR::LoadGCBNR(const discHdr * header, u32 *len)
{
if(!header || ( (header->type != TYPE_GAME_GC_IMG)
&& (header->type != TYPE_GAME_GC_DISC)
&& (header->type != TYPE_GAME_GC_EXTRACTED)))
return NULL;
const char *path = GCGames::Instance()->GetPath((char *) header->id);
if(!path)
return NULL;
FILE *file = NULL;
GC_OpeningBnr *openingBnr = NULL;
// read from file
if((header->type == TYPE_GAME_GC_IMG) || (header->type == TYPE_GAME_GC_DISC))
{
u32 uncSize = 0;
u8 * uncompressed_data = uncompressLZ77(soundChunk, soundChunkSize, &uncSize);
if (!uncompressed_data)
//! open iso file if it's iso
if(header->type == TYPE_GAME_GC_IMG)
{
file = fopen(path, "rb");
if(!file)
return NULL;
}
gcdisc_t *disc = gc_open_disc(GC_Disc_Read, file);
if(!disc) {
fclose(file);
return NULL;
}
if (size) *size = uncSize;
return uncompressed_data;
if(!strcmp(Settings.db_language, "JA")) {
bool loaded = gc_extract_file(disc, "openingJA.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "opening.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "openingUS.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "openingEU.bnr");
}
else if(!strcmp(Settings.db_language, "EN")) {
bool loaded = gc_extract_file(disc, "openingUS.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "opening.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "openingEU.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "openingJA.bnr");
}
else {
bool loaded = gc_extract_file(disc, "openingEU.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "opening.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "openingUS.bnr");
if(!loaded)
loaded = gc_extract_file(disc, "openingJA.bnr");
}
openingBnr = (GC_OpeningBnr *) disc->extracted_buffer;
if(len)
*len = disc->extracted_size;
gc_close_disc(disc);
}
u8 *out = (u8 *) malloc(soundChunkSize);
if (out)
else if(header->type == TYPE_GAME_GC_EXTRACTED)
{
memcpy(out, soundChunk, soundChunkSize);
if (size) *size = soundChunkSize;
string gamePath = path;
gamePath += "root/";
//! open default file first
file = fopen((gamePath + "opening.bnr").c_str(), "rb");
// if not found try the region specific ones
if(!strcmp(Settings.db_language, "JA")) {
if(!file)
file = fopen((gamePath + "openingJA.bnr").c_str(), "rb");
if(!file)
file = fopen((gamePath + "openingUS.bnr").c_str(), "rb");
if(!file)
file = fopen((gamePath + "openingEU.bnr").c_str(), "rb");
}
else if(!strcmp(Settings.db_language, "EN")) {
if(!file)
file = fopen((gamePath + "openingUS.bnr").c_str(), "rb");
if(!file)
file = fopen((gamePath + "openingEU.bnr").c_str(), "rb");
if(!file)
file = fopen((gamePath + "openingJA.bnr").c_str(), "rb");
}
else {
if(!file)
file = fopen((gamePath + "openingEU.bnr").c_str(), "rb");
if(!file)
file = fopen((gamePath + "openingUS.bnr").c_str(), "rb");
if(!file)
file = fopen((gamePath + "openingJA.bnr").c_str(), "rb");
}
// file not found
if(!file)
return NULL;
fseek(file, 0, SEEK_END);
int size = ftell(file);
rewind(file);
openingBnr = (GC_OpeningBnr *) malloc(size);
if(openingBnr)
{
if(len)
*len = size;
fread(openingBnr, 1, size, file);
}
}
return out;
if(file)
fclose(file);
if(!openingBnr)
return NULL;
// check magic of the opening bnr
if(openingBnr->magic != 'BNR1' && openingBnr->magic != 'BNR2') {
free(openingBnr);
return NULL;
}
return (u8 *) openingBnr;
}
CustomBanner *OpeningBNR::CreateGCBanner(const discHdr * header)
{
int language = 0;
u32 openingBnrSize;
GC_OpeningBnr *openingBnr = (GC_OpeningBnr *) LoadGCBNR(header, &openingBnrSize);
CustomBanner *banner = new CustomBanner;
banner->LoadBanner(Resources::GetFile("custom_banner.bnr"), Resources::GetFileSize("custom_banner.bnr"));
banner->SetBannerPngImage("bg.tpl", Resources::GetFile("gc_banner_bg.png"), Resources::GetFileSize("gc_banner_bg.png"));
banner->SetBannerText("T_PF", tr("GameCube"));
if(openingBnr)
{
banner->SetBannerTexture("HBPic.tpl", openingBnr->tpl_data, 96, 32, GX_TF_RGB5A3);
// European opening bnr file
if(openingBnr->magic == 'BNR2')
{
if(!strcmp(Settings.db_language, "DE")) {
language = 1;
}
else if(!strcmp(Settings.db_language, "FR")) {
language = 2;
}
else if(!strcmp(Settings.db_language, "ES")) {
language = 3;
}
else if(!strcmp(Settings.db_language, "IT")) {
language = 4;
}
else if(!strcmp(Settings.db_language, "NL")) {
language = 5;
}
if((0x1820 + sizeof(openingBnr->description[0]) * language) > openingBnrSize) {
language = 0;
}
}
wString str;
str.resize(strlen((char *) openingBnr->description[language].developer));
for(u32 i = 0; i < str.size(); i++)
str[i] = *(openingBnr->description[language].developer + i);
banner->SetBannerText("T_Coded_by", tr("Developer:"));
banner->SetBannerText("T_coder", str.toUTF8().c_str());
str.resize(strlen((char *) openingBnr->description[language].long_description));
for(u32 i = 0; i < str.size(); i++)
str[i] = *(openingBnr->description[language].long_description + i);
banner->SetBannerText("T_short_descript", str.toUTF8().c_str());
// free buffer
free(openingBnr);
}
else
{
banner->SetBannerPngImage("HBPic.tpl", Resources::GetFile("gc_icon_bg.png"), Resources::GetFileSize("gc_icon_bg.png"));
banner->SetBannerText("T_Coded_by", tr("Developer:"));
banner->SetBannerText("T_coder", tr("Unknown"));
banner->SetBannerText("T_short_descript", " ");
}
banner->SetBannerText("T_name", GameTitles.GetTitle(header));
banner->SetBannerPaneVisible("Line1", false);
banner->SetBannerPaneVisible("Line2", false);
banner->SetBannerPaneVisible("T_Released", false);
banner->SetBannerPaneVisible("T_release_date", false);
banner->SetBannerPaneVisible("T_versiontext", false);
banner->SetBannerPaneVisible("T_version", false);
banner->SetBannerTextureScale(Settings.GCBannerScale);
return banner;
}
CustomBanner *OpeningBNR::CreateGCIcon(const discHdr * header)
{
GC_OpeningBnr *openingBnr = (GC_OpeningBnr *) LoadGCBNR(header);
CustomBanner *newBanner = new CustomBanner;
newBanner->LoadIcon(Resources::GetFile("custom_banner.bnr"), Resources::GetFileSize("custom_banner.bnr"));
if(openingBnr)
newBanner->SetIconTexture("Iconpng.tpl", openingBnr->tpl_data, 96, 32, GX_TF_RGB5A3);
else
newBanner->SetIconPngImage("Iconpng.tpl", Resources::GetFile("gc_icon_bg.png"), Resources::GetFileSize("gc_icon_bg.png"));
newBanner->SetIconPngImage("HBLogo.tpl", Resources::GetFile("gc_icon_bg.png"), Resources::GetFileSize("gc_icon_bg.png"));
// free buffer
if(openingBnr)
free(openingBnr);
return newBanner;
}

View File

@ -1,7 +1,46 @@
/*
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef OPENING_BNR_HPP_
#define OPENING_BNR_HPP_
#include <gctypes.h>
#include "usbloader/disc.h"
#include "CustomBanner.h"
typedef struct _GC_OpeningBnr
{
u32 magic; // BNR1 or BNR2
u8 pad[0x1C];
u8 tpl_data[0x1800]; // 96x32 pixel format GX_TF_RGB5A3
struct
{
u8 disc_title[0x20]; // Gamename
u8 developer_short[0x20]; // Company/Developer
u8 full_title[0x40]; // Full Game Title
u8 developer[0x40]; // Company/Developer Full name, or description
u8 long_description[0x80]; // Game Description
} description[6]; // 6 only on BNR2 => English, German, French, Spanish, Italian, Dutch ??
} GC_OpeningBnr;
typedef struct _IMETHeader
{
@ -60,26 +99,35 @@ class OpeningBNR
public:
OpeningBNR();
~OpeningBNR();
bool Load(const u8 * gameID);
bool Load(const u64 &tid, const char *pathPrefix);
bool Load(const discHdr * header);
bool LoadWiiBanner(const discHdr * header);
bool LoadChannelBanner(const discHdr *header);
CustomBanner *CreateGCBanner(const discHdr * header);
CustomBanner *CreateGCIcon(const discHdr * header);
const u8 * Get() const { return (const u8*) imetHdr; }
u32 GetSize() const { return filesize; }
bool LoadCachedBNR(const char *id);
void WriteCachedBNR(const char *id, const u8 *buffer, u32 size);
const u16 * GetIMETTitle(int lang);
const u16 * GetIMETTitle(const u8 * gameID, int lang) { Load(gameID); return GetIMETTitle(lang); };
const u8 * GetBannerSound(u32 * size);
const u8 * GetBannerSound(const u8 * gameID, u32 * size) { Load(gameID); return GetBannerSound(size); };
const u8 * GetBannerSound(const u64 &tid, u32 * size, const char *pathPrefix) { Load(tid, pathPrefix); return GetBannerSound(size); };
const u16 * GetIMETTitle(const discHdr * header, int lang) { Load(header); return GetIMETTitle(lang); }
private:
u8 *LoadGCBNR(const discHdr * header, u32 *len = 0);
IMETHeader *imetHdr;
u32 filesize;
char gameID[7];
};
class BNRInstance : public OpeningBNR
{
public:
static BNRInstance * Instance() { if(!instance) instance = new BNRInstance; return instance; };
static void DestroyInstance() { delete instance; instance = NULL; };
static BNRInstance * Instance() { if(!instance) instance = new BNRInstance; return instance; }
static void DestroyInstance() { delete instance; instance = NULL; }
private:
BNRInstance() { };
~BNRInstance() { };
BNRInstance() { }
~BNRInstance() { }
static BNRInstance * instance;
};

165
source/banner/Pane.cpp Normal file
View File

@ -0,0 +1,165 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include "Pane.h"
#include "Layout.h"
void Pane::Load(Pane::Header *pan)
{
if(!pan)
return;
header = pan;
hide = false;
RootPane = !strcmp( header->name, "RootPane" );
AlignHor = header->origin % 3;
AlignVer = 2 - header->origin / 3;
}
Pane::~Pane()
{
// delete children
for(u32 i = 0; i < panes.size(); ++i)
delete panes[i];
}
void Pane::SetFrame(FrameNumber frame, u8 key_set)
{
// setframe on self
Animator::SetFrame(frame, key_set);
// setframe on children
for(u32 i = 0; i < panes.size(); ++i)
panes[i]->SetFrame(frame, key_set);
}
void Pane::Render(const BannerResources& resources, u8 parent_alpha, Mtx &modelview,
bool widescreen, bool modify_alpha) const
{
if (!header || !GetVisible() || GetHide())
return;
u8 render_alpha = header->alpha;
if(RootPane && parent_alpha != 0xFF)
{
modify_alpha = true;
render_alpha = MultiplyAlpha(header->alpha, parent_alpha);
}
if(!RootPane && modify_alpha)
{
render_alpha = MultiplyAlpha(header->alpha, parent_alpha);
}
else if(GetInfluencedAlpha() && header->alpha != 0xff)
{
modify_alpha = true;
parent_alpha = MultiplyAlpha(header->alpha, parent_alpha);
}
float ws_scale = 1.0f;
if(widescreen && GetWidescren())
{
ws_scale *= 0.82f; // should actually be 0.75?
widescreen = false;
}
Mtx m1,m2,m3,m4, mv;
guMtxIdentity (m1);
// Scale
guMtxScaleApply(m1,m1, header->scale.x * ws_scale, header->scale.y, 1.f);
// Rotate
guMtxRotDeg ( m2, 'x', header->rotate.x );
guMtxRotDeg ( m3, 'y', header->rotate.y );
guMtxRotDeg ( m4, 'z', header->rotate.z );
guMtxConcat(m2, m3, m2);
guMtxConcat(m2, m4, m2);
guMtxConcat(m1, m2, m1);
// Translate
guMtxTransApply(m1,m1, header->translate.x, header->translate.y, header->translate.z);
guMtxConcat (modelview, m1, mv);
// render self
Draw(resources, render_alpha, ws_scale, mv);
// render children
for(u32 i = 0; i < panes.size(); ++i)
panes[i]->Render(resources, render_alpha, mv, widescreen, modify_alpha);
}
Pane* Pane::FindPane(const std::string& find_name)
{
if(!header)
return NULL;
if (find_name.compare(0, 0x10, getName()) == 0)
return this;
for(u32 i = 0; i < panes.size(); ++i)
{
Pane *found = panes[i]->FindPane(find_name);
if (found)
return found;
}
return NULL;
}
void Pane::ProcessHermiteKey(const KeyType& type, float value)
{
if (type.type == ANIMATION_TYPE_VERTEX_COLOR) // vertex color
{
// only alpha is supported for Panes afaict
if (0x10 == type.target)
{
header->alpha = FLOAT_2_U8(value);
return;
}
}
else if (type.type == ANIMATION_TYPE_PANE) // pane animation
{
if (type.target < 10)
{
(&header->translate.x)[type.target] = value;
return;
}
}
Base::ProcessHermiteKey(type, value);
}
void Pane::ProcessStepKey(const KeyType& type, StepKeyHandler::KeyData data)
{
if (type.type == ANIMATION_TYPE_VISIBILITY) // visibility
{
SetVisible(!!data.data2);
return;
}
Base::ProcessStepKey(type, data);
}

143
source/banner/Pane.h Normal file
View File

@ -0,0 +1,143 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef WII_BNR_PANE_H_
#define WII_BNR_PANE_H_
#include <vector>
#include <gccore.h>
#include "Animator.h"
struct BannerResources;
class Pane;
typedef std::vector<Pane*> PaneList;
class Pane : public Animator
{
public:
typedef Animator Base;
static const u32 MAGIC = MAKE_FOURCC('p', 'a', 'n', '1');
struct Header
{
u32 magic;
u32 size_section;
u8 flags;
u8 origin;
u8 alpha;
u8 padding;
char name [0x10];
char user_data [0x08];
Vec3f translate;
Vec3f rotate;
Vec2f scale;
float width;
float height;
} __attribute__((packed));
Pane() : header(NULL) {}
virtual ~Pane();
void Load(Pane::Header *file);
const char *getName() const { if(!header) return ""; return header->name; }
void Render(const BannerResources& resources, u8 parent_alpha, Mtx &modelview,
bool widescreen, bool modify_alpha = false) const;
void SetFrame(FrameNumber frame, u8 key_set);
void SetScale(float scale) { if(header) header->scale.x = header->scale.y = scale; }
bool GetHide() const { return hide; }
void SetHide(bool _hide) { hide = _hide; }
bool GetVisible() const { if(!header) return false; return ((header->flags & (1 << FLAG_VISIBLE)) != 0); }
void SetVisible(bool visible)
{
if(!header)
return;
if(visible)
header->flags |= (1 << FLAG_VISIBLE);
else
header->flags &= ~(1 << FLAG_VISIBLE);
}
u8 GetOriginX() const { return AlignHor; }
u8 GetOriginY() const { return AlignVer; }
float GetWidth() const { if(!header) return 0.f; return header->width; }
float GetHeight() const { if(!header) return 0.f; return header->height; }
bool GetInfluencedAlpha() const { if(!header) return false; return ((header->flags & (1 << FLAG_INFLUENCED_ALPHA)) != 0); }
void SetInfluencedAlpha(bool influenced)
{
if(!header)
return;
if(influenced)
header->flags |= (1 << FLAG_INFLUENCED_ALPHA);
else
header->flags &= ~(1 << FLAG_INFLUENCED_ALPHA);
}
bool GetWidescren() const { return ((header->flags & (1 << FLAG_WIDESCREEN)) != 0); }
Pane* FindPane(const std::string& name); // recursive
PaneList panes;
protected:
void ProcessHermiteKey(const KeyType& type, float value);
void ProcessStepKey(const KeyType& type, StepKeyHandler::KeyData data);
private:
virtual void Draw(const BannerResources&, u8, const float, Mtx&) const {}
enum
{
FLAG_VISIBLE = 0x00,
FLAG_INFLUENCED_ALPHA = 0x01,
FLAG_WIDESCREEN = 0x02
};
Pane::Header *header;
bool hide; // used by the groups
bool RootPane;
u8 AlignVer;
u8 AlignHor;
};
// apparently Bounding is just a regular pane
class Bounding : public Pane
{
public:
static const u32 MAGIC = MAKE_FOURCC('b', 'n', 'd', '1');
};
#endif

34
source/banner/Picture.cpp Normal file
View File

@ -0,0 +1,34 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include "Picture.h"
void Picture::Load(Pane::Header * file)
{
if(!file)
return;
Pane::Load(file);
QuadPane::Load((QuadPane::Header *) (file+1));
}

40
source/banner/Picture.h Normal file
View File

@ -0,0 +1,40 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#ifndef WII_BNR_PICTURE_H_
#define WII_BNR_PICTURE_H_
#include "QuadPane.h"
class Picture : public QuadPane
{
public:
typedef QuadPane Base;
static const u32 MAGIC = MAKE_FOURCC('p', 'i', 'c', '1');
void Load(Pane::Header *hdr);
};
#endif

126
source/banner/QuadPane.cpp Normal file
View File

@ -0,0 +1,126 @@
/*
Copyright (c) 2010 - Wii Banner Player Project
Copyright (c) 2012 - Dimok
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source
distribution.
*/
#include "QuadPane.h"
#include "Layout.h"
void QuadPane::Load(QuadPane::Header* file)
{
if(!file)
return;
header = file;
tex_coords = (const TexCoords *) (header+1);
}
inline void QuadPane::SetVertex(int ind, float x, float y, u8 render_alpha) const
{
// position
GX_Position3f32(x, y, 0.f);
const GXColor &vertex_color = header->vertex_colors[ind];
// color
GX_Color4u8(vertex_color.r, vertex_color.g, vertex_color.b,
MultiplyAlpha(vertex_color.a, render_alpha));
// texture coord
for(u32 i = 0; i < header->tex_coord_count; i++)
GX_TexCoord2f32(tex_coords[i].coords[ind].s, tex_coords[i].coords[ind].t);
}
static inline bool IsModulateColor(GXColor *colors, u8 render_alpha)
{
if(render_alpha != 0xFF)
return true;
u32 *colorPtr = (u32 *) colors;
for(int i = 0; i < 4; ++i)
{
if(colorPtr[i] != 0xFFFFFFFF)
return true;
}
return false;
}
void QuadPane::Draw(const BannerResources& resources, u8 render_alpha, const float ws_scale, Mtx &modelview, u16 material_index, u8 texture_flip) const
{
if(!header)
return;
if (material_index < resources.materials.size())
{
bool modulate_color = IsModulateColor(header->vertex_colors, render_alpha);
resources.materials[material_index]->Apply(resources, render_alpha, modulate_color);
}
Mtx m, mv;
guMtxIdentity (m);
guMtxTransApply(m,m, -0.5f * GetOriginX(), -0.5f * GetOriginY(), 0.f);
guMtxScaleApply(m,m, GetWidth(), GetHeight(), 1.f);
guMtxConcat (modelview, m, mv);
GX_LoadPosMtxImm (mv, GX_PNMTX0);
GX_ClearVtxDesc();
GX_InvVtxCache();
GX_SetVtxDesc(GX_VA_POS, GX_DIRECT);
GX_SetVtxDesc(GX_VA_CLR0, GX_DIRECT);
for(u32 i = 0; i < header->tex_coord_count; i++)
GX_SetVtxDesc(GX_VA_TEX0+i, GX_DIRECT);
GX_Begin(GX_QUADS, GX_VTXFMT0, 4);
if(texture_flip)
{
SetVertex(0, 0.f, 0.f, render_alpha);
SetVertex(1, 1.f, 0.f, render_alpha);
SetVertex(3, 1.f, 1.f, render_alpha);
SetVertex(2, 0.f, 1.f, render_alpha);
}
else
{
SetVertex(2, 0.f, 0.f, render_alpha);
SetVertex(3, 1.f, 0.f, render_alpha);
SetVertex(1, 1.f, 1.f, render_alpha);
SetVertex(0, 0.f, 1.f, render_alpha);
}
GX_End();
}
void QuadPane::ProcessHermiteKey(const KeyType& type, float value)
{
if (type.type == ANIMATION_TYPE_VERTEX_COLOR) // vertex color
{
if (type.target < 0x10)
{
// vertex colors
(&header->vertex_colors->r)[type.target] = FLOAT_2_U8(value);
return;
}
}
Base::ProcessHermiteKey(type, value);
}

Some files were not shown because too many files have changed in this diff Show More