From 71c288f0a230db0b0c82902ca70d25287dee1114 Mon Sep 17 00:00:00 2001
From: dimok321 <15055714+dimok789@users.noreply.github.com>
Date: Wed, 20 May 2009 00:03:43 +0000
Subject: [PATCH] *Added new custom backgroundmusic Menu (the music has to be
in OGG Format. if you remove the path to the music the standard of the GUi is
loaded right now) *Added languagefiles again *Added some new
Languagevariables which will be added to wiki tommorow
---
Languages/korean | 171 ++++++++++++++
Languages/norwegian | 177 ++++++++++++++
Languages/schinese | 178 ++++++++++++++
Languages/spanish | 357 ++++++++++++++--------------
Languages/tchinese | 24 +-
gui.pnproj | 2 +-
source/cfg.c | 12 +
source/cfg.h | 2 +
source/fatmounter.c | 2 +-
source/language.c | 31 ++-
source/language.h | 6 +
source/libwiigui/gui.h | 7 +
source/libwiigui/gui_sound.cpp | 44 +++-
source/menu.cpp | 409 ++++++++++++++++++++++++++++++---
source/menu.h | 1 +
source/mp3s.c | 2 +-
source/mp3s.h | 2 +-
source/oggplayer.c | 41 ++++
source/oggplayer.h | 6 +
19 files changed, 1250 insertions(+), 224 deletions(-)
create mode 100644 Languages/korean
create mode 100644 Languages/norwegian
create mode 100644 Languages/schinese
diff --git a/Languages/korean b/Languages/korean
new file mode 100644
index 00000000..1ccc6380
--- /dev/null
+++ b/Languages/korean
@@ -0,0 +1,171 @@
+Specialthanksto = Special thanks to
+t3Covers = 3D Ç¥Áö
+AppLanguage = ¾îÇø®ÄÉÀÌ¼Ç ¾ð¾î
+Areyousure = È®½ÇÇմϱî?
+AutoPatch = ÀÚµ¿ ÆÐÄ¡
+Back = µÚ·Î
+BacktoHBCorWiiMenu = Ȩºê·ù ¸Þ´º ¶Ç´Â Wii ¸Þ´º·Î
+BacktoLoader = Loader·Î µ¹¾Æ°¡±â
+BacktoWiiMenu = Wii ¸Þ´º·Î ³î¾Æ°¡±â
+BootStandard = ºÎÆ®/±âº»
+BothBoth = ÀüºÎ Ç¥½Ã
+Cantcreatedirectory = µð·ºÅ丮¸¦ ¸¸µé ¼ö ¾ø½À´Ï´Ù
+Cancel = Ãë¼Ò
+Cantbeformated = Æ÷¸ËÇÒ ¼ö ¾ø½À´Ï´Ù.
+Cantdelete = »èÁ¦ÇÒ ¼ö ¾ø½À´Ï´Ù:
+ClicktoDownloadCovers = Ç¥Áö¸¦ ´Ù¿î ¹ÞÀ¸·Á¸é Ŭ¸¯Çϼ¼¿ä.
+Clock = ½Ã°è
+Continueinstallgame = °ÔÀÓÀ» ¼³Ä¡ÇÏ°Ú½À´Ï±î?
+ConsoleDefault = ÄÜ¼Ö ±âº»°ª
+Consoleshouldbeunlockedtomodifyit = º¯°æÇÏ·Á¸é ÄÜ¼Ö Àá±èÀ» ÇØÁ¦Çϼ¼¿ä.
+ConsoleLocked = ÄÜ¼Ö Àá±è
+CorrectPassword = ¿Ã¹Ù¸¥ ºñ¹Ð¹øÈ£
+Couldnotinitializenetwork = ³×Æ®¿öÅ© ÃʱâÈ ½ÇÆÐ!
+CouldnotopenDisc = µð½ºÅ©¸¦ ¿ ¼ö ¾ø½À´Ï´Ù.
+CouldnotinitializeDIPmodule = DIP ¸ðµâ ÃʱâÈ ½ÇÆÐ!
+CoverDownload = Ç¥Áö ´Ù¿î·Îµå
+CoverPath = Ç¥Áö °æ·Î
+CoverpathChanged = Ç¥Áö °æ·Î º¯°æµÊ
+Coverpathchange = Ç¥Áö °æ·Î º¯°æ
+Credits = Credits
+DiscImages = µð½ºÅ© À̹ÌÁö
+DiscimagePath = µð½ºÅ© À̹ÌÁö °æ·Î
+DiscpathChanged = »õ·Î¿î µð½ºÅ© °æ·Î
+Discpathchange = µð½ºÅ© °æ·Î º¯°æ
+DiscDefault = µð½ºÅ© ±âº»°ª
+Display = ȸé Ç¥½Ã
+Doyouwanttoformat = Æ÷¸ËÇÏ°Ú½À´Ï±î:
+Doyoureallywanttodelete = Á¤¸»·Î »èÁ¦ÇÏ°Ú½À´Ï±î:
+Doyouwanttoretryfor30secs = 30ÃÊ°£ Àç½Ãµµ ÇÒ±î¿ä?
+Downloadingfile = ÆÄÀÏÀ» ´Ù¿î·ÎµåÇÕ´Ï´Ù:
+DownloadBoxartimage = ¹Ú½º À̹ÌÁö¸¦ ´Ù¿î·Îµå ÇÒ±î¿ä?
+Downloadfinished = ´Ù¿î·Îµå ¿Ï·á
+Error = ¿¡·¯ !
+BOOTERROR = ºÎÆà ¿¡·¯
+ErrorreadingDisc = µð½ºÅ© Àб⠿À·ù
+ExitUSBISOLoader = USB Loader GX¸¦ Á¾·áÇÏ°Ú½À´Ï±î?
+InitializingNetwork = ³×Æ®¿öÅ© ÃʱâÈ
+InsertDisk = µð½ºÅ©¸¦ ³Ö¾îÁÖ¼¼¿ä
+InsertaWiiDisc = Wii µð½ºÅ©¸¦ ³ÖÀ¸¼¼¿ä!
+InsertaSDCardtodownloadimages = ´Ù¿î¹ÞÀº À̹ÌÁö¸¦ ÀúÀåÇÒ SDÄ«µå¸¦ ³ÖÀ¸¼¼¿ä.
+InsertaSDCardtosave = ÀúÀåÇÒ SDÄ«µå¸¦ ³ÖÀ¸¼¼¿ä.
+InstallRenameandDeleteareunlocked = USB Loader GXÀÇ ¸ðµç ±â´É Àá±ÝÇØÁ¦.
+Installerror = ¼³Ä¡ ¿¡·¯!
+Installagame = °ÔÀÓ ¼³Ä¡
+Installinggame = °ÔÀÓ ¼³Ä¡ Áß:
+Failedtoboot = ºÎÆà ½ÇÆÐ:
+FailedtomountfrontSDcard = SDÄ«µå ÀÎ½Ä ½ÇÆÐ
+FailedtosetUSB = USB ¼¼Æà ½ÇÆÐ:
+Failedformating = Æ÷¸Ë ½ÇÆÐ
+filesnotfoundontheserver = ÆÄÀÏÀÌ ¼¹ö¿¡ ¾ø½À´Ï´Ù!
+filesleft = ÆÄÀÏ ³²À½
+FlipX = Flip-X
+Force = °Á¦
+Youneedtoformatapartition = ÆÄƼ¼ÇÀ» Æ÷¸ËÇØ¾ß ÇÕ´Ï´Ù
+Format = Æ÷¸Ë
+Formattingpleasewait = Æ÷¸Ë ÁßÀÔ´Ï´Ù, ±â´Ù·Á ÁÖ¼¼¿ä...
+formated = Æ÷¸Ë ¿Ï·á!
+free = ³²À½
+FreeSpace = ¿©À¯ °ø°£
+FullShutdown = ¿ÏÀüÈ÷ ²ô±â
+GameID = °ÔÀÓ ID
+Games = °ÔÀÓ
+Gameisalreadyinstalled = °ÔÀÓÀÌ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ½À´Ï´Ù.
+GameRegion = Áö¿ª
+GameSize = °ÔÀÓ ¿ë·®
+GoBack = µÚ·Î °¡±â
+//GotoPage = ÆäÀÌÁö·Î °¡±â
+HowtoShutdown = ¾î¶»°Ô Á¾·áÇÒ±î¿ä?
+Language = ¾ð¾î
+Langchange = ¾ð¾î º¯°æ
+Left = ¿ÞÂÊ
+LikeSysMenu = ¼¼½ºÅÛ ¸Þ´ºÃ³·³
+LoadingincIOS = cIOS249·Î ·Îµù
+Lock = Àá±Ý
+LockConsole = ÄÜ¼Ö Àá±Ý
+MP3Menu = MP3 ¸Þ´º
+Missingfiles = ºüÁø ÆÄÀÏ
+Networkiniterror = ³×Æ®¿öÅ© ÃʱâÈ ¿¡·¯
+Neither = Ç¥½Ã ¾øÀ½
+Next = ´ÙÀ½
+No = ¾Æ´Ï¿À
+Nofilemissing = ºüÁø ÆÄÀÏ ¾øÀ½!
+NoHDDfound = ÇÏµå µð½ºÅ©°¡ ¾ø½À´Ï´Ù!
+NoSDcardinserted = SDÄ«µå°¡ ¾ø½À´Ï´Ù!
+Nopartitionsfound = ÆÄƼ¼ÇÀÌ ¾ø½À´Ï´Ù.
+NoUSBDevice = USB ÀåÄ¡°¡ ¾ø½À´Ï´Ù.
+NoWBFSpartitionfound = WBFS ÆÄƼ¼ÇÀÌ ¾ø½À´Ï´Ù.
+NormalCovers = ÀÏ¹Ý Ç¥Áö
+Normal = ÀϹÝ
+NotaWiiDisc = Wii µð½ºÅ©°¡ ¾Æ´Õ´Ï´Ù
+NoUSBDevicefound = USB ÀåÄ¡°¡ ¾ø½À´Ï´Ù.
+Notenoughfreespace = ¿©À¯ °ø°£ÀÌ ºÎÁ·ÇÕ´Ï´Ù!
+notset = ¼³Á¤µÇÁö ¾ÊÀ½
+of = Áß
+OFF = ²¨Áü
+OfficialSite = °ø½Ä »çÀÌÆ®
+ok = OK
+ON = ÄÑÁü
+Parentalcontrol = ÆÄƼ¼Ç Á¦¾î
+Partition = ÆÄƼ¼Ç
+Password = ºñ¹Ð¹øÈ£
+PasswordChanged = »õ·Î¿î ºñ¹Ð¹øÈ£
+Passwordhasbeenchanged = ºñ¹Ð¹øÈ£°¡ º¯°æµÇ¾ú½À´Ï´Ù
+Passwordchange = ºñ¹Ð¹øÈ£ º¯°æ
+PowerofftheWii = Wii Àü¿ø ²ô±â
+Prev = ÀÌÀü
+PromptsButtons = ÇÁ·ÒÇÁÆ® ¹öÆ°
+ReloadSD = SDÄ«µå ´Ù½Ã Àбâ
+RenameGameonWBFS = WBFS¿¡¼ °ÔÀÓ À̸§ ¹Ù²Ù±â
+Restart = ´Ù½Ã ½ÃÀÛ
+Return = µ¹¾Æ°¡±â
+ReturntoWii = Wii ¸Þ´º·Î µ¹¾Æ°¡±â
+Right = ¿À¸¥ÂÊ
+Rumble = 翵+QuickBoot = ÄüºÎÆ®
+Save = ÀúÀå
+SaveFailed = ÀúÀå ½ÇÆÐ
+Specialthanksto = Special thanks to
+For = for
+theUSBLoaderandreleasingthesourcecodethe = ¼Ò½º ÄÚµå ¹èÆ÷
+secondsleft = ÃÊ ³²¾Ò½À´Ï´Ù
+SelectthePartition = Æ÷¸ËÇÏ·Á´Â
+youwanttoformat = ÆÄƼ¼ÇÀ» ¼±ÅÃÇϼ¼¿ä
+settings = ¼³Á¤
+ShutdowntoIdle = Idle»óÅ·ΠÁ¾·á
+ShutdownSystem = ½Ã½ºÅÛ Á¾·á
+Success = ¼º°ø:
+Successfullyinstalled = ¼³Ä¡ ¼º°ø:
+Successfullydeleted = »èÁ¦ ¼º°ø:
+SuccessfullySaved = ÀúÀå ¼º°ø
+SystemDefault = ½Ã½ºÅÛ ±âº»°ª
+ThemePath = Å׸¶ °æ·Î
+ThemepathChanged = Å׸¶ °æ·Î º¯°æµÊ
+Themepathchange = Å׸¶ °æ·Î º¯°æ
+Try = ½Ãµµ
+Tooltips = Tooltips
+Timeleft = ³²Àº ½Ã°£:
+Unlock = Àá±ÝÇØÁ¦
+Uninstall = Á¦°Å
+USBLoaderisprotected = USB Loader GX º¸È£¸ðµå
+USBDevicenotfound = USB ÀåÄ¡°¡ ¾ø½À´Ï´Ù.
+VideoMode = ºñµð¿À ¸ðµå
+VIDTVPatch = VIDTV ÆÐÄ¡
+Volume = º¼·ý
+Waiting = ±â´Ù¸®´Â Áß...
+WaitingforUSBDevice = USB ÀåÄ¡¸¦ ±â´Ù¸®´Â Áß
+WidescreenFix = ¿ÍÀÌµå ½ºÅ©¸° Fix
+WiiMenu = Wii ¸Þ´º
+WrongPassword = À߸øµÈ ºñ¹Ð¹øÈ£
+Yes = ¿¹
+YoudonthavecIOS = cIOS222°¡ ¾ø½À´Ï´Ù.
+Japanese = ÀϺ»¾î
+German = µ¶ÀϾî
+English = ¿µ¾î
+French = ºÒ¾î
+Spanish = ½ºÆäÀξî
+Italian = ÀÌŸ®¾î
+Dutch = ³×´ú¶õµå¾î
+SChinese = Áß±¹¾î(°£Ã¼)
+TChinese = Áß±¹¾î(¹øü)
+Korean = Çѱ¹¾î
\ No newline at end of file
diff --git a/Languages/norwegian b/Languages/norwegian
new file mode 100644
index 00000000..d49c7d76
--- /dev/null
+++ b/Languages/norwegian
@@ -0,0 +1,177 @@
+t3Covers = 3D cover
+AppLanguage = Program språk
+Areyousure = Er du sikker?
+AutoPatch = AutoPatch
+Back = Tilbake
+BacktoHBCorWiiMenu = Tilbake til HBC eller Wii meny
+BacktoLoader = HBC/Loader
+BacktoWiiMenu = Wii meny
+BootStandard = Boot/Standard
+Both = Begge
+Cantcreatedirectory = Kan ikke opprette mappestruktur
+Cancel = Avbryt
+Cantbeformated = Kan ikke formateres
+Cantdelete = Kan ikke slette:
+ClicktoDownloadCovers = Klikk for å laste ned cover
+Clock = Klokke
+Continueinstallgame = Fortsett å installere spill?
+ConsoleDefault = Konsoll Standard
+Consoleshouldbeunlockedtomodifyit = Konsoll må være opplåst for å modifisere.
+ConsoleLocked = Konsoll låst
+CorrectPassword = Riktig passord
+Couldnotinitializenetwork = Kan ikke initialisere nettverk!
+CouldnotopenDisc = Kan ikke åpne plate
+CouldnotinitializeDIPmodule = Kan ikke initialisere DIP modul!
+CoverDownload = Cover nedlasting
+CoverPath = Cover sti
+CoverpathChanged = Cover sti endret
+Coverpathchange = Endre cover sti
+Credits = Medvirkende
+DiscImages = Plate bilder
+DiscimagePath = Plate sti
+DiscpathChanged = Plate sti endret
+Discpathchange = Endre plate sti
+DiscDefault = Plate Standard
+Display = Vis
+Doyouwanttoformat = Vil du formatere:
+Doyoureallywanttodelete = Er du sikker på at du vil slette:
+Doyouwanttoretryfor30secs = Vil du fortsette å prøve i 30 sekunder?
+Downloadingfile = Laster ned fil:
+DownloadBoxartimage = Last ned cover bilde?
+Downloadfinished = Nedlasting ferdig
+Error = Feil !
+BOOTERROR = BOOT FEIL
+ErrorreadingDisc = Feil ved lesing av plate
+ExitUSBISOLoader = Avslutt USB Loader GX?
+InitializingNetwork = Initialiserer nettverk
+InsertDisk = Sett inn plate
+InsertaWiiDisc = Sett inn en Wii plate!
+InsertaSDCardtodownloadimages = Sett inn et SD-kort for å laste ned bilder.
+InsertaSDCardtosave = Sett inn et SD-kort for å lagre.
+InstallRenameandDeleteareunlocked = Alle funksjonene til USB Loader GX er opplåst.
+Installerror = Installasjonsfeil!
+Installagame = Installér et spill
+Installinggame = Installerer spill:
+Failedtoboot = Feil ved start:
+FailedtomountfrontSDcard = Feil ved montering av SD-kort i front
+FailedtosetUSB = Feil ved valgt USB:
+Failedformating = Feil ved formatering
+Filenotfound = Fil ikke funnet.
+filesnotfoundontheserver = filer ikke funnet på serveren!
+filesleft = fil(er) gjenstår
+FlipX = Flip-X
+Force = Tving
+Youneedtoformatapartition = Du må formatere en partisjon
+Format = Formatér
+Formattingpleasewait = Formaterer, vennligst vent...
+formated = formatert!
+free = ledig
+FreeSpace = Ledig plass
+FullShutdown = Skru helt av
+GameID = Spill ID
+Games = Spill
+Gameisalreadyinstalled = Spillet er allerede installert:
+GameRegion = Region
+GameSize = Spill størrelse
+GoBack = Gå tilbake
+//GotoPage = Gå til side
+HowtoShutdown = Hvordan skru av?
+keyboard = Tastatur
+Language = Språk
+Langchange = Bytt språk
+Left = Venstre
+LikeSysMenu = Lik Systemmeny
+LoadingincIOS = Laster i cIOS249
+Loadingstandardlanguage = Laster standard språk.
+Lock = Lås
+LockConsole = Lås konsoll
+MP3Menu = MP3 meny
+Missingfiles = Manglende filer
+Networkiniterror = Nettverk init feil
+Neither = Ingen
+Next = Neste
+No = Nei
+Nofilemissing = Ingen filer mangler!
+NoHDDfound = Ingen HDD funnet!
+NoSDcardinserted = Intet SD-kort satt i!
+Nopartitionsfound = Ingen partisjoner funnet
+NoUSBDevice = Ingen USB enhet
+NoWBFSpartitionfound = Ingen WBFS partisjon funnet
+NormalCovers = Normale cover
+Normal = Normal
+NotaWiiDisc = Ikke en Wii plate
+NoUSBDevicefound = Ingen USB enhet funnet.
+Notenoughfreespace = Ikke nok ledig plass!
+notset = ikke satt
+of = av
+OFF = AV
+OfficialSite = Offisiell nettside
+ok = OK
+ON = PÅ
+Parentalcontrol = Foreldre kontroll
+Partition = Partisjon
+Password = Passord
+PasswordChanged = Passord endret
+Passwordhasbeenchanged = Passord har blitt endret
+Passwordchange = Endre passord
+PowerofftheWii = Skru av Wii
+Prev = Forrige
+PromptsButtons = Dialog knapper
+ReloadSD = Les SD på nytt
+RenameGameonWBFS = Gi nytt navn til spill på WBFS
+Restart = Start på nytt
+Return = Gå tilbake
+ReturntoWii = Tilbake til Wii meny
+Right = Høyre
+Rumble = Vibrasjon
+QuickBoot = Hurtig start
+Save = Lagre
+SaveFailed = Lagre feilet
+Specialthanksto = Spesiell takk til
+Titlestxtpath = Titles.txt sti
+TitlestxtpathChanged = Titles.txt sti endret.
+Titlestxtpathchange = Endre titles.txt sti
+For = for
+theUSBLoaderandreleasingthesourcecodethe = og utgivelse av kildekoden
+secondsleft = sekunder gjenstår
+SelectthePartition = Velg partisjonen
+youwanttoformat = du vil formatere
+settings = Innstillinger
+ShutdowntoIdle = Skru av
+ShutdownSystem = Skru helt av
+Success = Suksess:
+Successfullyinstalled = Vellykket installering:
+Successfullydeleted = Vellykket sletting:
+SuccessfullySaved = Vellykket lagring
+SystemDefault = System Standard
+ThemePath = Tema sti
+ThemepathChanged = Tema sti endret
+Themepathchange = Endre tema sti
+Try = Prøv
+Tooltips = Verktøystips
+Timeleft = Tid igjen:
+Unlock = Lås opp
+Unicodefix = Unicode fiks
+Uninstall = Avinstallér
+USBLoaderisprotected = USB Loader GX er beskyttet
+USBDevicenotfound = USB enhet ikke funnet
+VideoMode = Video modus
+VIDTVPatch = VIDTV Patch
+Volume = Volum
+Waiting = Venter...
+WaitingforUSBDevice = Venter på USB enhet
+WidescreenFix = Fiks for 16/9
+WiiMenu = Wii meny
+WrongPassword = Feil passord
+Yes = Ja
+YoudonthavecIOS = Du har ikke cIOS222
+Japanese = Japansk
+German = Tysk
+English = Engelsk
+French = Fransk
+Spanish = Spansk
+Italian = Italiensk
+Dutch = Nederlandsk
+SChinese = S.Kinesisk
+TChinese = T.Kinesisk
+Korean = Koreansk
\ No newline at end of file
diff --git a/Languages/schinese b/Languages/schinese
new file mode 100644
index 00000000..5bd60ce1
--- /dev/null
+++ b/Languages/schinese
@@ -0,0 +1,178 @@
+Specialthanksto = Ìرð¸Ðл
+t3Coverst = 3D ·âÃæ
+AppLanguage = ÓïÑÔÉ趨
+Areyousure = È·¶¨?
+AutoPatch = ×Ô¶¯Ñ¡Ôñ
+Back = ·µ»Ø
+BacktoHBCorWiiMenu = ·µ»Ø HBC »ò Wii ϵͳ²Ëµ¥
+BacktoLoader = ·µ»Ø Loader
+BacktoWiiMenu = ·µ»Ø Wii ϵͳ²Ëµ¥
+BootStandard = Æô¶¯/±ê×¼
+BothBoth = È«²¿
+Cantcreatedirectory = ÎÞ·¨½¨Á¢Ä¿Â¼
+Cancel = È¡Ïû
+Cantbeformated = ÎÞ·¨¸ñʽ»¯
+Cantdelete = ÎÞ·¨É¾³ý:
+ClicktoDownloadCovers = µã»÷ÏÂÔØ·âÃæ
+Clock = ʱÖÓ
+Continueinstallgame = ¼ÌÐø°²×°ÓÎÏ·?
+ConsoleDefault = Ö÷»úĬÈÏ
+Consoleshouldbeunlockedtomodifyit = Ðè½âËøÒÔ¿ªÆôÉ趨¹¦ÄÜ.
+ConsoleLocked = Ö÷»úËø¶¨
+CorrectPassword = ÃÜÂëÕýÈ·
+Couldnotinitializenetwork = ÎÞ·¨Æô¶¯ÍøÂç!
+CouldnotopenDisc = ÎÞ·¨¿ªÆô¹âÅÌ
+CouldnotinitializeDIPmodule = ÎÞ·¨Æô¶¯ DIP Ä£¿é!
+CoverDownload = ÏÂÔØ·âÃæ
+CoverPath = ·âÃæ´æ·Å·¾¶
+CoverpathChanged = ·âÃæ·¾¶Òѱä¸ü
+Coverpathchange = ±ä¸ü·âÃæ´æ·Å·¾¶
+Credits = Credits
+DiscImages = DVD·âÃæ
+DiscimagePath = ²Ëµ¥·âÃæ´æ·Å·¾¶
+DiscpathChanged = DVD·âÃæ·¾¶Òѱä¸ü
+Discpathchange = ±ä¸üDVD·âÃæ´æ·Å·¾¶
+DiscDefault = ÓÎϷĬÈÏ
+Display = ÏÔʾ
+Doyouwanttoformat = ÊÇ·ñ¸ñʽ»¯:
+Doyoureallywanttodelete = È·¶¨É¾³ý:
+Doyouwanttoretryfor30secs = ÊÇ·ñµÈ´ý30ÃëÖØÊÔ?
+Downloadingfile = ÏÂÔØÎļþ:
+DownloadBoxartimage = ÏÂÔØ·âÃæͼƬ?
+Downloadfinished = ÏÂÔØÍê³É
+Error = ´íÎó !
+BOOTERROR = Æô¶¯´íÎó
+ErrorreadingDisc = ¶ÁÈ¡¹âÅÌ´íÎó
+ExitUSBISOLoader = À뿪 USB Loader GX?
+InitializingNetwork = ÕýÔÚÆô¶¯ÍøÂç
+InsertDisk = ²åÈë¹âÅÌ
+InsertaWiiDisc = ²åÈë Wii ¹âÅÌ!
+InsertaSDCardtodownloadimages = ²åÈë SD ¿¨ÏÂÔØ·âÃæ.
+InsertaSDCardtosave = ²åÈëSD¿¨±£´æ.
+InstallRenameandDeleteareunlocked = USB Loader GX ¹¦ÄÜÒѽâËø.
+Installerror = °²×°´íÎó!
+Installagame = °²×°ÓÎÏ·
+Installinggame = ÕýÔÚ°²×°ÓÎÏ·:
+Failedtoboot = ÎÞ·¨Æô¶¯:
+FailedtomountfrontSDcard = ¹ÒÔØÇ°¶Ë SD ¿¨Ê§°Ü
+FailedtosetUSB = ÎÞ·¨É趨 USB:
+Failedformating = ¸ñʽ»¯Ê§°Ü
+filesnotfoundontheserver = ·þÎñÆ÷ÖÐÎÞ´ËÎļþ!
+filesleft = Ê£ÓàÎļþ
+FlipX = °´¼ü¹æÔò
+Force = Ç¿ÖÆ
+Youneedtoformatapartition = ±ØÐë¸ñʽ»¯Ò»¸ö·ÖÇø
+Format = ¸ñʽ»¯
+Formattingpleasewait = ¸ñʽ»¯ÖÐ, ÇëÉÔºò...
+formated = Íê³É¸ñʽ»¯!
+free = Ê£Óà
+FreeSpace = Ê£Óà¿Õ¼ä
+FullShutdown = ÍêÈ«¹Ø»ú
+GameID = ÓÎÏ·ID
+Games = ÓÎÏ·
+Gameisalreadyinstalled = ÒÑ°²×°¹ýÓÎÏ·:
+GameRegion = ÇøÓò
+GameSize = ÓÎÏ·ÈÝÁ¿
+GoBack = ·µ»Ø
+GotoPage = Ç°ÍùÒ³Ãæ
+HowtoShutdown = ÈçºÎ¹Ø»ú?
+Language = ÓïÑÔ
+Langchange = ±ä¸üÓïÑÔ
+Left = ×ó
+LikeSysMenu = ͬϵͳѡµ¥
+LoadingincIOS = ÒÔ cIOS249 ÔØÈë
+Lock = Ëø¶¨
+LockConsole = Ëø¶¨¿ØÖÆ̨
+MP3Menu = MP3 Ñ¡µ¥
+Missingfiles = ȱÉÙµÄÎļþ
+Networkiniterror = ÍøÂçÆô¶¯´íÎó
+Neither = È«²»
+Next = Íùºó
+No = ·ñ
+Nofilemissing = ûÓÐȱÉÙµÄÎļþ!
+NoHDDfound = ÕÒ²»µ½Ó²ÅÌ!
+NoSDcardinserted = δ²åÈë SD ¿¨!
+Nopartitionsfound = ÕÒ²»µ½·ÖÇø
+NoUSBDevice = ûÓÐ USB É豸
+NoWBFSpartitionfound = ÕÒ²»µ½ WBFS ·ÖÇø
+NormalCovers = Ò»°ã·âÃæ
+Normal = Ò»°ã
+NotaWiiDisc = ²»ÊÇ Wii µÄ¹âÅÌ
+NoUSBDevicefound = ÕÒ²»µ½ USB É豸.
+Notenoughfreespace = Ê£Óà¿Õ¼ä²»×ã!
+notset = δÉ趨
+of = µÄ
+OFF = ¹Ø±Õ
+OfficialSite = ¹Ù·½ÍøÖ·
+ok = È·¶¨
+ON = ¿ªÆô
+Parentalcontrol = ¼Ò³¤¿ØÖÆ
+Partition = ·ÖÇø
+Password = ÃÜÂë
+PasswordChanged = ÃÜÂëÒѱä¸ü
+Passwordhasbeenchanged = ÃÜÂëÒѱ»±ä¸ü
+Passwordchange = ±ä¸üÃÜÂë
+PowerofftheWii = ¹Ø±ÕWiiÖ÷»ú
+Prev = ÍùÇ°
+PromptsButtons = ÏÔʾУÕý
+ReloadSD = ÖØÐÂÔØÈëSD¿¨
+RenameGameonWBFS = ¸Ä±äWBFS(Ó²ÅÌ)ÉϵÄÓÎÏ·Ãû³Æ
+Restart = ÖØÐÂÆô¶¯
+Return = ·µ»Ø
+ReturntoWii = ·µ»ØWiiϵͳ²Ëµ¥
+Right = ÓÒ
+Rumble = Õð¶¯
+QuickBoot = ¿ìËÙÆô¶¯
+Save = ±£´æ
+SaveFailed = ±£´æʧ°Ü
+Specialthanksto = Ìرð¸Ðл
+For = µÄ
+theUSBLoaderandreleasingthesourcecodethe = ·Å³öÔ´úÂë
+secondsleft = Ê£ÓàÃëÊý
+SelectthePartition = Ñ¡Ôñ·ÖÇø
+youwanttoformat = ÊÇ·ñ¸ñʽ»¯
+settings = ÉèÖÃ
+ShutdowntoIdle = ½øÈë´ý»ú״̬
+ShutdownSystem = ¹Ø±Õϵͳ
+Success = ³É¹¦:
+Successfullyinstalled = ³É¹¦µÄ°²×°:
+Successfullydeleted = ³É¹¦µÄɾ³ý:
+SuccessfullySaved = ±£´æ³É¹¦
+SystemDefault = ϵͳĬÈÏ
+ThemePath = Ö÷Ìâ´æ·Å·¾¶
+ThemepathChanged = Ö÷Ìâ·¾¶Òѱä¸ü
+Themepathchange = ±ä¸üÖ÷Ìâ´æ·Å·¾¶
+Try = ³¢ÊÔ
+Tooltips = ¹¤¾ßÌáʾ
+Timeleft = Ê£Óàʱ¼ä:
+Unlock = ½âËø
+Uninstall = ɾ³ý
+USBLoaderisprotected = USB Loader GX ±»Ëø¶¨
+USBDevicenotfound = ÕÒ²»µ½ USB É豸
+VideoMode = ÊÓƵÖÆʽ
+VIDTVPatch = VIDTV ÐÞ¸Ä
+Volume = ÒôÁ¿
+Waiting = µÈ´ýÖÐ...
+WaitingforUSBDevice = µÈ´ý USB É豸
+WidescreenFix = ¿íÆÁУÕý
+WiiMenu = Wii ϵͳ²Ëµ¥
+WrongPassword = ÃÜÂë´íÎó
+Yes = ÊÇ
+YoudonthavecIOS = δ°²×° cIOS222
+Japanese = ÈÕÎÄ
+German = µÂÎÄ
+English = Ó¢ÎÄ
+French = ·¨ÎÄ
+Spanish = Î÷°àÑÀÎÄ
+Italian = Òâ´óÀûÎÄ
+Dutch = ºÉÎÄ
+SChinese = ¼òÌåÖÐÎÄ
+TChinese = ·±ÌåÖÐÎÄ
+Korean = º«ÎÄ
+keyboard = ¼üÅÌ
+Unicodefix = Unicode ÐÞÕý
+Filenotfound = ÕÒ²»µ½Îļþ
+Loadingstandardlanguage = ÔØÈë±ê×¼ÓïÑÔ
+Titlestxtpath = Titles.txt ´æ·Å·¾¶
+TitlestxtpathChanged = titles.txt ·¾¶Òѱä¸ü
+Titlestxtpathchange = ±ä¸ü titles.txt ´æ·Å·¾¶
diff --git a/Languages/spanish b/Languages/spanish
index 444fdb92..7a3e3671 100644
--- a/Languages/spanish
+++ b/Languages/spanish
@@ -1,179 +1,178 @@
-Specialthanksto = Muchas gracias a
-t3Covers = Carátulas 3D
-AppLanguage = Idioma de la aplicación
-Areyousure = ¿Estás Seguro?
-AutoPatch = Auto-Parcheo
-Back = Atrás
-BacktoHBCorWiiMenu = Volver al HBC o Menú Wii
-BacktoLoader = Volver al Cargador
-BacktoWiiMenu = Volver al menú de wii
-BootStandard = Inicio/Estándar
-Both = Ambos
-Cantcreatedirectory = No puedo crear el directorio
-Cancel = Cancelar
-Cantbeformated = No se puede formatear
-Cantdelete = No se puede borrar:
-ClicktoDownloadCovers = Click para descargar carátulas
-Clock = Reloj
-Continueinstallgame = ¿Continuo instalando el juego?
-ConsoleDefault = Predeterm. consola
-Consoleshouldbeunlockedtomodifyit = La consola debería estar desbloqueada
-para modificarlo.
-ConsoleLocked = Consola bloqueada
-CorrectPassword = Contraseña Correcta
-Couldnotinitializenetwork = ¡No puedo iniciar la red!
-CouldnotopenDisc = No se puede abrir el disco
-CouldnotinitializeDIPmodule = ¡No se puede inicializar modulo DIP!
-CoverDownload = Descarga de carátulas
-CoverPath = Ruta a Carátulas
-CoverpathChanged = Ruta a carátulas cambiada
-Coverpathchange = Cambiar ruta a carátulas
-Credits = Créditos
-DiscImages = Imágen Discos
-DiscimagePath = Ruta imágen discos
-DiscpathChanged = Ruta de discos cambiada
-Discpathchange = Cambiar ruta a imágenes de disco
-DiscDefault = Disco por defecto
-Display = Pantalla
-Doyouwanttoformat = ¿Quieres formatear?:
-Doyoureallywanttodelete = ¿Realmente quieres borrar?:
-Doyouwanttoretryfor30secs = ¿Quieres intentarlo otros 30 segundos?
-Downloadingfile = Descargando fichero:
-DownloadBoxartimage = ¿Descargar imagen de caja?
-Downloadfinished = Descarga finalizada
-Error = ¡Error !
-BOOTERROR = ¡Error de arranque !
-ErrorreadingDisc = Error leyendo disco
-ExitUSBISOLoader = Salir del USB Loader GX?
-InitializingNetwork = Inicializando red
-InsertDisk = Introduzca el disco
-InsertaWiiDisc = ¡Ponga un disco de wii!
-InsertaSDCardtodownloadimages = Introduzca una tarjeta SD para descargar imágenes.
-InsertaSDCardtosave = Introduzca una tarjeta SD para guardar.
-InstallRenameandDeleteareunlocked = Todas las opciones de USB Loader GX desbloqueadas.
-Installerror = ¡Error de instalación!
-Installagame = Instalar un juego
-Installinggame = Instalando juego:
-Failedtoboot = Fallo en el inicio:
-FailedtomountfrontSDcard = Fallo al montar la tarjeta SD
-FailedtosetUSB = Fallo al usar el USB:
-Failedformating = Fallo al dar formato
-filesnotfoundontheserver = ¡ Fichero(s) no encontrado(s) en el servidor !
-filesleft = Ficheros(s) restante(s)
-FlipX = Desplazamiento X
-Force = Forzar
-Youneedtoformatapartition = Necesitas formatear una partición
-Format = Formatear
-Formattingpleasewait = Dando formato. por favor, espere...
-formated = ¡Formateado !
-free = Libre
-FreeSpace = Espacio libre
-FullShutdown = Apagado total
-GameID = ID de juego
-Games = Juegos
-Gameisalreadyinstalled = El Juego ya estaba instalado:
-GameRegion = Región
-GameSize = Tamaño del juego
-GoBack = Volver
-//GotoPage = Ir a página
-HowtoShutdown = ¿Cómo apago?
-Language = Idioma
-Langchange = Cambio de idioma
-Left = Izquierda
-LikeSysMenu = Cómo menú de sistema
-LoadingincIOS = Cargando en cIOS249
-Lock = Bloqueo
-LockConsole = Bloquear consola
-MP3Menu = Menu MP3
-Missingfiles = Fichero(s) no encontrado(s)
-Networkiniterror = Error de inicio de red
-Neither = Ninguno
-Next = Siguiente
-No = No
-Nofilemissing = ¡No faltan ficheros!
-NoHDDfound = ¡No encuentro HD!
-NoSDcardinserted = ¡No hay insertada tarjeta SD!
-Nopartitionsfound = ¡No encuentro particiónes!
-NoUSBDevice = No hay dispositivo USB
-NoWBFSpartitionfound = No encuentro partición WBFS
-NormalCovers = Carátulas normales
-Normal = Normal
-NotaWiiDisc = No es un disco de wii
-NoUSBDevicefound = No encuentro dispositivo USB.
-Notenoughfreespace = ¡No hay suficiente espacio libre!
-notset = Sin poner
-of = de
-OFF = Apagado
-OfficialSite = Sitio Oficial
-ok = OK
-ON = Encendido
-Parentalcontrol = Control Parental
-Partition = Partición
-Password = Contraseña
-PasswordChanged = Contraseña Cambiada
-Passwordhasbeenchanged = La contraseña se ha cambiado
-Passwordchange = Cambio de contraseña
-PowerofftheWii = Apague la Wii
-Prev = Anterior
-PromptsButtons = Botones de consulta
-ReloadSD = Recargar SD
-RenameGameonWBFS = Renombrar juego en WBFS
-Restart = Reiniciar
-Return = Volver
-ReturntoWii = Volver al menú de Wii
-Right = Derecha
-Rumble = Vibración
-QuickBoot = Inicio rápido
-Save = Guardar
-SaveFailed = Fallo al guardar
-Specialthanksto = Muchas gracias a
-For = por
-theUSBLoaderandreleasingthesourcecodethe = y liberar el código fuente
-secondsleft = Segundos que faltan
-SelectthePartition = Selecciona la partición
-youwanttoformat = Quieres formatear
-settings = Ajustes
-ShutdowntoIdle = Apagar a Stand-By
-ShutdownSystem = Sistema de apagado
-Success = Conseguido:
-Successfullyinstalled = Instalado con exito:
-Successfullydeleted = Borrado con exito:
-SuccessfullySaved = Guardado
-SystemDefault = Predeterm. consola
-ThemePath = Ruta a Temas
-ThemepathChanged = Ruta a temas cambiada
-Themepathchange = Cambio de ruta a temas
-Try = Intentar
-Tooltips = Herramientas
-Timeleft = Tiempo pendiente:
-Unlock = Desbloqueo
-Uninstall = Desinstalar
-USBLoaderisprotected = USB Loader GX está protegido
-USBDevicenotfound = Dispositivo USB no encontrado
-VideoMode = Modo de video
-VIDTVPatch = Parcheo VIDTV
-Volume = Volumen
-Waiting = Esperando...
-WaitingforUSBDevice = Esperando al dispositivo USB
-WidescreenFix = Ajuste panorámico
-WiiMenu = Menú Wii
-WrongPassword = Contraseña errónea
-Yes = Si
-YoudonthavecIOS = No tienes cIOS 222
-Japanese = Japonés
-German = Alemán
-English = Inglés
-French = Francés
-Spanish = Español
-Italian = Italiano
-Dutch = Holandés
-SChinese = Chino Simplificado
-TChinese = Chino Tradicional
-Korean = Coreano
-keyboard = Teclado
-Unicodefix = Párche Unicode
-Filenotfound = Fichero no encontrado.
-Loadingstandardlanguage = Cargando idioma predeterminado.
-Titlestxtpath = Ruta a Titles.txt
-TitlestxtpathChanged = Ruta a titles.txt cambiada.
-Titlestxtpathchange = Cambiar ruta a titles.txt
+ Specialthanksto = Agradecimientos
+ t3Covers = Carátulas 3D
+ AppLanguage = Idioma Aplic.
+ Areyousure = ¿Estás seguro?
+ AutoPatch = AutoParchar
+ Back = Volver
+ BacktoHBCorWiiMenu = Volver a HBC o Menú Wii
+ BacktoLoader = Volver al HBC
+ BacktoWiiMenu = Volver a Menú Wii
+ BootStandard = Inicio/Estandar
+ Both = Ambos
+ Cantcreatedirectory = No se creó directorio
+ Cancel = Cancelar
+ Cantbeformated = No se pudo formatear
+ Cantdelete = No se eliminó:
+ ClicktoDownloadCovers = Click para bajar Carátulas
+ Clock = Reloj
+ Continueinstallgame = ¿Continuar instalando juego?
+ ConsoleDefault = Pred. Consola
+ Consoleshouldbeunlockedtomodifyit = Consola debe desbloquearse para modificarla.
+ ConsoleLocked = Consola Bloqueada
+ CorrectPassword = Contraseña Correcta
+ Couldnotinitializenetwork = ¡No se pudo iniciar la Conexión!
+ CouldnotopenDisc = No se pudo abrir Disco
+ CouldnotinitializeDIPmodule = ¡No se pudo iniciar módulo DIP!
+ CoverDownload = Descarga de Carátulas
+ CoverPath = Ruta Carátulas
+ CoverpathChanged = Ruta de Carátulas cambiada
+ Coverpathchange = Cambio ruta Carátulas
+ Credits = Créditos
+ DiscImages = Img. de Disco
+ DiscimagePath = Ruta Img. Disco
+ DiscpathChanged = Ruta Img. Disco cambiada
+ Discpathchange = Cambio ruta Img. Disco
+ DiscDefault = Pred. Disco
+ Display = Mostrar
+ Doyouwanttoformat = Quieres formatear:
+ Doyoureallywanttodelete = Realmente quieres eliminar:
+ Doyouwanttoretryfor30secs = ¿Quiéres reintentar por 30 segs.?
+ Downloadingfile = Descargando archivo:
+ DownloadBoxartimage = ¿Descargar Imágenes?
+ Downloadfinished = Descarga completa
+ Error = ¡Error!
+ BOOTERROR = ERROR DE INICIO
+ ErrorreadingDisc = Error leyendo Disco
+ ExitUSBISOLoader = ¿Salir de USB Loader GX?
+ InitializingNetwork = Iniciando Conexión
+ InsertDisk = Inserta el Disco
+ InsertaWiiDisc = ¡Inserta un Disco Wii!
+ InsertaSDCardtodownloadimages = Insertar SD para bajar imágenes.
+ InsertaSDCardtosave = Insertar SD para guardar.
+ InstallRenameandDeleteareunlocked = Todas las caracteristicas del USB Loader GX desbloqueadas.
+ Installerror = ¡Error de Instalación!
+ Installagame = Instalar un juego
+ Installinggame = Instalando juego:
+ Failedtoboot = Fallo al iniciar:
+ FailedtomountfrontSDcard = Fallo al montar SD
+ FailedtosetUSB = Fallo al iniciar USB:
+ Failedformating = Fallo al formatear
+ Filenotfound = Archivo no encontrado.
+ filesnotfoundontheserver = archivos no encontrados en el servidor!
+ filesleft = archivo(s) restante(s)
+ FlipX = Flip-X
+ Force = Forzar
+ Youneedtoformatapartition = Necesitas formatear una partición
+ Format = Formateo
+ Formattingpleasewait = Formateando, por favor espera...
+ formated = formateado!
+ free = libres
+ FreeSpace = Espacio Libre
+ FullShutdown = Apagado Total
+ GameID = ID de Juego
+ Games = Juegos
+ Gameisalreadyinstalled = Juego ya estaba instalado:
+ GameRegion = Región
+ GameSize = Tamaño del Juego
+ GoBack = Volver
+ //GotoPage = Ir a Página
+ HowtoShutdown = ¿Cómo Apagar?
+ Keyboard = Teclado
+ Language = Idioma
+ Langchange = Cambio de Idioma
+ Left = Izquierda
+ LikeSysMenu = Como Menú Sist.
+ LoadingincIOS = Cargando en cIOS249
+ Loadingstandardlanguage = Cargando idioma estandar.
+ Lock = Bloquear
+ LockConsole = Bloquear consola
+ MP3Menu = Menú MP3
+ Missingfiles = Archivo(s) faltante(s)
+ Networkiniterror = Error inicio conexión
+ Neither = Ninguno
+ Next = Siguiente
+ No = No
+ Nofilemissing = ¡No hay archivo(s) faltante(s)!
+ NoHDDfound = ¡HDD no encontrado!
+ NoSDcardinserted = ¡SD no insertada!
+ Nopartitionsfound = Particiones no encontradas
+ NoUSBDevice = USB no encontrado
+ NoWBFSpartitionfound = Partición WBFS no encontrada
+ NormalCovers = Carátulas Norm.
+ Normal = Normal
+ NotaWiiDisc = No es un Disco Wii
+ NoUSBDevicefound = USB no encontrado.
+ Notenoughfreespace = ¡No hay suficiente espacio libre!
+ notset = no puesto
+ of = de
+ OFF = Apagado
+ OfficialSite = Sitio Oficial
+ ok = OK
+ ON = Encendido
+ Parentalcontrol = Control Parental
+ Partition = Partición
+ Password = Contraseña
+ PasswordChanged = Contraseña cambiada
+ Passwordhasbeenchanged = Contraseña ha sido cambiada
+ Passwordchange = Cambio Contraseña
+ PowerofftheWii = Apagar la Wii
+ Prev = Ant.
+ PromptsButtons = Botones
+ ReloadSD = Recargar SD
+ RenameGameonWBFS = Renombrar juego en WBFS
+ Restart = Reiniciar
+ Return = Volver
+ ReturntoWii = Volver a Menú Wii
+ Right = Derecha
+ Rumble = Vibración
+ QuickBoot = Inicio Rápido
+ Save = Guardar
+ SaveFailed = Guardado fallido
+ Specialthanksto = Agradecimientos
+ Titlestxtpath = Ruta Titles.txt
+ TitlestxtpathChanged = Ruta a titles.txt cambiada.
+ Titlestxtpathchange = Cambio ruta titles.txt
+ For = por
+ theUSBLoaderandreleasingthesourcecodethe = y liberar el código fuente
+ secondsleft = segundos restantes
+ SelectthePartition = Selecciona la partición
+ youwanttoformat = quieres formatear
+ settings = Configuración
+ ShutdowntoIdle = Apagar a Idle
+ ShutdownSystem = Apagar Sistema
+ Success = Exito:
+ Successfullyinstalled = Instalado exitósamente:
+ Successfullydeleted = Borrado exitósamente:
+ SuccessfullySaved = Guardado exitósamente
+ SystemDefault = Pred. Sistema
+ ThemePath = Ruta del Tema
+ ThemepathChanged = Ruta de Tema cambiada
+ Themepathchange = Cambio Ruta de Tema
+ Try = Intentar
+ Tooltips = InfoBurbujas
+ Timeleft = T. restante:
+ Unlock = Desbloquear
+ Unicodefix = Arreg. Unicode
+ Uninstall = Desinstalar
+ USBLoaderisprotected = USB Loader GX está protegido
+ USBDevicenotfound = USB no encontrado
+ VideoMode = Modo Video
+ VIDTVPatch = Parche VIDTV
+ Volume = Volumen
+ Waiting = Esperando...
+ WaitingforUSBDevice = Esperando por Dispositivo USB
+ WidescreenFix = Arreg. Widescreen
+ WiiMenu = Menú de Wii
+ WrongPassword = Contraseña incorrecta
+ Yes = Si
+ YoudonthavecIOS = No tienes un cIOS222
+ Japanese = Japonés
+ German = Alemán
+ English = Inglés
+ French = Francés
+ Spanish = Español
+ Italian = Italiano
+ Dutch = Holandés
+ SChinese = Chino Simplif.
+ TChinese = Chino Tradic.
+ Korean = Coreano
diff --git a/Languages/tchinese b/Languages/tchinese
index 940db5ab..473fb761 100644
--- a/Languages/tchinese
+++ b/Languages/tchinese
@@ -8,15 +8,15 @@ BacktoHBCorWiiMenu =
BacktoLoader = ªð¦^ Loader
BacktoWiiMenu = ªð¦^ Wii ¨t²Î¿ï³æ
BootStandard = ±Ò°Ê/¼Ð·Ç
-BothBoth = ¥þ³¡
+Both = ¥þ³¡Åã¥Ü
Cantcreatedirectory = µLªk²£¥Í¥Ø¿ý
Cancel = ¨ú®ø
Cantbeformated = µLªk®æ¦¡¤Æ
Cantdelete = µLªk§R°£:
-ClicktoDownloadCovers = ÂIÀ»¤U¸ü«Ê±
+ClicktoDownloadCovers = ÂIÀ»¶i¦æ«Ê±¤U¸ü
Clock = ®ÉÄÁ
Continueinstallgame = Ä~Äò¦w¸Ë¹CÀ¸?
-ConsoleDefault = ±±¨î¥x¹w³]
+ConsoleDefault = ¥D¾÷¹w³]È
Consoleshouldbeunlockedtomodifyit = »Ý¸ÑÂê¥H¶}±Ò³]©w¥\¯à.
ConsoleLocked = ±±¨î¥xÂê©w
CorrectPassword = ±K½X¥¿½T
@@ -65,17 +65,18 @@ Youneedtoformatapartition =
Format = ®æ¦¡¤Æ
Formattingpleasewait = ®æ¦¡¤Æ¤¤, ½ÐµyÔ...
formated = §¹¦¨®æ¦¡¤Æ!
-free = ³Ñ¾l
+free =
FreeSpace = ³Ñ¾lªÅ¶¡
FullShutdown = §¹¥þÃö¾÷
GameID = ¹CÀ¸¥N½X
-Games = ¹CÀ¸
+Games = ¹CÀ¸¼Æ¶q
Gameisalreadyinstalled = ¤w¦w¸Ë¹L¹CÀ¸:
-GameRegion = °Ï°ì
+GameRegion = ¹CÀ¸°Ï½X
GameSize = ¹CÀ¸®e¶q
GoBack = ªð¦^
-GotoPage = «e©¹¶±
+//GotoPage = «e©¹¶±
HowtoShutdown = ¦p¦óÃö¾÷?
+Keyboard = Áä½L
Language = »y¨¥
Langchange = Åܧó»y¨¥
Left = ¥ª
@@ -86,9 +87,9 @@ LockConsole =
MP3Menu = MP3 ¿ï³æ
Missingfiles = ¿ò¥¢ªºÀÉ®×
Networkiniterror = ºô¸ô±Ò°Ê¿ù»~
-Neither = ¬Ò§_
+Neither = ¬Ò¤£Åã¥Ü
Next = ©¹«á
-No = §_
+No = §_
Nofilemissing = ¨S¦³¯Ê¤ÖªºÀÉ®×!
NoHDDfound = §ä¤£¨ìµwºÐ!
NoSDcardinserted = ¥¼´¡¤J SD ¥d!
@@ -101,7 +102,7 @@ NotaWiiDisc =
NoUSBDevicefound = §ä¤£¨ì USB ¸Ë¸m.
Notenoughfreespace = ³Ñ¾lªÅ¶¡¤£¨¬!
notset = ¥¼³]©w
-of = ªº
+of = ³Ñ¾lªÅ¶¡ Á`®e¶q
OFF = Ãö³¬
OfficialSite = ©x¤èºô§}
ok = ½T©w
@@ -138,7 +139,7 @@ Success =
Successfullyinstalled = ¦¨¥\ªº¦w¸Ë:
Successfullydeleted = ¦¨¥\ªº§R°£:
SuccessfullySaved = Àx¦s¦¨¥\
-SystemDefault = ¨t²Î¹w³]
+SystemDefault = ¨t²Î¹w³]È
ThemePath = I´º¥DÃD
ThemepathChanged = I´º¥DÃD¸ô®|¤wÅܧó
Themepathchange = ÅܧóI´º¥DÃD¸ô®|
@@ -169,7 +170,6 @@ Dutch =
SChinese = ²Å餤¤å
TChinese = ÁcÅ餤¤å
Korean = Áú¤å
-keyboard = Áä½L
Unicodefix = Unicode ×¥¿
Filenotfound = §ä¤£¨ìÀÉ®×
Loadingstandardlanguage = ¸ü¤J¼Ð·Ç»y¨¥
diff --git a/gui.pnproj b/gui.pnproj
index b6996f1d..6e78162b 100644
--- a/gui.pnproj
+++ b/gui.pnproj
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/source/cfg.c b/source/cfg.c
index f545ff3d..1784181a 100644
--- a/source/cfg.c
+++ b/source/cfg.c
@@ -234,6 +234,8 @@ void CFG_Default(int widescreen) // -1 = non forced Mode
snprintf(CFG.titlestxt_path, sizeof(CFG.titlestxt_path), "SD:/config/");//default path for disc images
snprintf(CFG.unlockCode, sizeof(CFG.unlockCode), "ab121b"); // default password
snprintf(CFG.language_path, sizeof(CFG.language_path), "SD:/config/language/");
+ snprintf(CFG.oggload_path, sizeof(CFG.oggload_path), "SD:/config/backgroundmusic/");
+ sprintf(CFG.ogg_path, "notset");
CFG.parentalcontrol = 0;
CFG.maxcharacters = 38;
@@ -483,6 +485,14 @@ void cfg_set(char *name, char *val)
strcopy(CFG.language_path, val, sizeof(CFG.language_path));
return;
}
+ if (strcmp(name, "oggload_path") == 0) {
+ strcopy(CFG.oggload_path, val, sizeof(CFG.oggload_path));
+ return;
+ }
+ if (strcmp(name, "ogg_path") == 0) {
+ strcopy(CFG.ogg_path, val, sizeof(CFG.ogg_path));
+ return;
+ }
cfg_int("parentalcontrol", &CFG.parentalcontrol, 4);
cfg_bool("godmode", &CFG.godmode);
@@ -1017,12 +1027,14 @@ bool cfg_save_global()// save global settings
}
fprintf(f, "disc_path = %s\n ", CFG.disc_path);
fprintf(f, "language_path = %s\n ", CFG.language_path);
+ fprintf(f, "oggload_path = %s\n ", CFG.oggload_path);
fprintf(f, "titlestxt_path = %s\n ", CFG.titlestxt_path);
if(!strcmp("", Settings.unlockCode)) {
fprintf(f, "godmode = %d\n ", CFG.godmode);
} else {
fprintf(f, "godmode = %d\n ", 0);
}
+ fprintf(f, "ogg_path = %s\n ", CFG.ogg_path);
fclose(f);
return true;
}
diff --git a/source/cfg.h b/source/cfg.h
index 93a91314..473f6f18 100644
--- a/source/cfg.h
+++ b/source/cfg.h
@@ -70,6 +70,8 @@ struct CFG
char disc_path[100];
char titlestxt_path[100];
char language_path[100];
+ char oggload_path[100];
+ char ogg_path[150];
short keyset;
};
diff --git a/source/fatmounter.c b/source/fatmounter.c
index f39a821e..a925b7af 100644
--- a/source/fatmounter.c
+++ b/source/fatmounter.c
@@ -42,7 +42,7 @@ int SDCard_Init()
if (!isSdInserted()){
return -1;
}
- if (fatMount("SD", &__io_wiisd, 0, CACHE, SECTORS)) {
+ if (fatMountSimple("SD", &__io_wiisd)) {
return 1;
}
return -1;
diff --git a/source/language.c b/source/language.c
index 73f241fa..1feee152 100644
--- a/source/language.c
+++ b/source/language.c
@@ -35,6 +35,8 @@ snprintf(LANGUAGE.t3Covers, sizeof(LANGUAGE.t3Covers), "3D Covers");
snprintf(LANGUAGE.Areyousure, sizeof(LANGUAGE.Areyousure), "Are you sure?");
snprintf(LANGUAGE.AutoPatch, sizeof(LANGUAGE.AutoPatch), "AutoPatch");
snprintf(LANGUAGE.Back, sizeof(LANGUAGE.Back), "Back");
+snprintf(LANGUAGE.Backgroundmusic, sizeof(LANGUAGE.Backgroundmusic), "Backgroundmusic");
+snprintf(LANGUAGE.Backgroundmusicpath, sizeof(LANGUAGE.Backgroundmusicpath), "Backgroundmusic Path changed.");
snprintf(LANGUAGE.BacktoHBCorWiiMenu, sizeof(LANGUAGE.BacktoHBCorWiiMenu), "Back to HBC or Wii Menu");
snprintf(LANGUAGE.BacktoLoader, sizeof(LANGUAGE.BacktoLoader), "Back to Loader");
snprintf(LANGUAGE.BacktoWiiMenu, sizeof(LANGUAGE.BacktoWiiMenu), "Back to Wii Menu");
@@ -107,13 +109,13 @@ snprintf(LANGUAGE.Gameisalreadyinstalled, sizeof(LANGUAGE.Gameisalreadyinstalled
snprintf(LANGUAGE.GameRegion, sizeof(LANGUAGE.GameRegion), "Game Region");
snprintf(LANGUAGE.GameSize, sizeof(LANGUAGE.GameSize), "Game Size");
snprintf(LANGUAGE.GoBack, sizeof(LANGUAGE.GoBack), "Go Back");
-//snprintf(LANGUAGE.GotoPage, sizeof(LANGUAGE.GotoPage), "Go to Page");
snprintf(LANGUAGE.HowtoShutdown, sizeof(LANGUAGE.HowtoShutdown), "How to Shutdown?");
snprintf(LANGUAGE.Language, sizeof(LANGUAGE.Language), "Game Language");
snprintf(LANGUAGE.Left, sizeof(LANGUAGE.Left), "Left");
snprintf(LANGUAGE.LikeSysMenu, sizeof(LANGUAGE.LikeSysMenu), "Like SysMenu");
snprintf(LANGUAGE.LoadingincIOS, sizeof(LANGUAGE.LoadingincIOS), "Loading in cIOS249");
snprintf(LANGUAGE.Loadingstandardlanguage, sizeof(LANGUAGE.Loadingstandardlanguage), "Loading standard language.");
+snprintf(LANGUAGE.Loadingstandardmusic, sizeof(LANGUAGE.Loadingstandardmusic), "Loading standard music.");
snprintf(LANGUAGE.Lock, sizeof(LANGUAGE.Lock), "Lock");
snprintf(LANGUAGE.LockConsole, sizeof(LANGUAGE.LockConsole), "Lock Console");
snprintf(LANGUAGE.MP3Menu, sizeof(LANGUAGE.MP3Menu), "MP3 Menu");
@@ -133,6 +135,7 @@ snprintf(LANGUAGE.Normal, sizeof(LANGUAGE.Normal), "Normal");
snprintf(LANGUAGE.NotaWiiDisc, sizeof(LANGUAGE.NotaWiiDisc), "Not a Wii Disc");
snprintf(LANGUAGE.NoUSBDevicefound, sizeof(LANGUAGE.NoUSBDevicefound), "No USB Device found.");
snprintf(LANGUAGE.Notenoughfreespace, sizeof(LANGUAGE.Notenoughfreespace), "Not enough free space!");
+snprintf(LANGUAGE.Notasupportedformat, sizeof(LANGUAGE.Notasupportedformat), "Not supported format!");
snprintf(LANGUAGE.notset, sizeof(LANGUAGE.notset), "not set");
snprintf(LANGUAGE.of, sizeof(LANGUAGE.of), "of");
snprintf(LANGUAGE.OFF, sizeof(LANGUAGE.OFF), "OFF");
@@ -161,9 +164,11 @@ snprintf(LANGUAGE.Specialthanksto, sizeof(LANGUAGE.Specialthanksto), "Special th
snprintf(LANGUAGE.For, sizeof(LANGUAGE.For), "for");
snprintf(LANGUAGE.theUSBLoaderandreleasingthesourcecode, sizeof(LANGUAGE.theUSBLoaderandreleasingthesourcecode), "and releasing the source code");
snprintf(LANGUAGE.secondsleft, sizeof(LANGUAGE.secondsleft), "seconds left");
+snprintf(LANGUAGE.Setasbackgroundmusic, sizeof(LANGUAGE.Setasbackgroundmusic), "Set as backgroundmusic?");
snprintf(LANGUAGE.SelectthePartition, sizeof(LANGUAGE.SelectthePartition), "Select the Partition");
snprintf(LANGUAGE.Specialthanksto, sizeof(LANGUAGE.Specialthanksto), "Special thanks to");
snprintf(LANGUAGE.youwanttoformat, sizeof(LANGUAGE.youwanttoformat), "you want to format");
+snprintf(LANGUAGE.Standard, sizeof(LANGUAGE.Standard), "Standard");
snprintf(LANGUAGE.settings, sizeof(LANGUAGE.settings), "Settings");
snprintf(LANGUAGE.ShutdowntoIdle, sizeof(LANGUAGE.ShutdowntoIdle), "Shutdown to Idle");
snprintf(LANGUAGE.ShutdownSystem, sizeof(LANGUAGE.ShutdownSystem), "Shutdown System");
@@ -244,6 +249,14 @@ void language_set(char *name, char *val)
strcopy(LANGUAGE.Back, val, sizeof(LANGUAGE.Back));
return;
}
+ if (strcmp(name, "Backgroundmusic") == 0) {
+ strcopy(LANGUAGE.Backgroundmusic, val, sizeof(LANGUAGE.Backgroundmusic));
+ return;
+ }
+ if (strcmp(name, "Backgroundmusicpath") == 0) {
+ strcopy(LANGUAGE.Backgroundmusicpath, val, sizeof(LANGUAGE.Backgroundmusicpath));
+ return;
+ }
if (strcmp(name, "BacktoHBCorWiiMenu") == 0) {
strcopy(LANGUAGE.BacktoHBCorWiiMenu, val, sizeof(LANGUAGE.BacktoHBCorWiiMenu));
return;
@@ -569,6 +582,10 @@ void language_set(char *name, char *val)
strcopy(LANGUAGE.Loadingstandardlanguage, val, sizeof(LANGUAGE.Loadingstandardlanguage));
return;
}
+ if (strcmp(name, "Loadingstandardmusic") == 0) {
+ strcopy(LANGUAGE.Loadingstandardmusic, val, sizeof(LANGUAGE.Loadingstandardmusic));
+ return;
+ }
if (strcmp(name, "Lock") == 0) {
strcopy(LANGUAGE.Lock, val, sizeof(LANGUAGE.Lock));
return;
@@ -645,6 +662,10 @@ void language_set(char *name, char *val)
strcopy(LANGUAGE.Notenoughfreespace, val, sizeof(LANGUAGE.Notenoughfreespace));
return;
}
+ if (strcmp(name, "Notasupportedformat") == 0) {
+ strcopy(LANGUAGE.Notasupportedformat, val, sizeof(LANGUAGE.Notasupportedformat));
+ return;
+ }
if (strcmp(name, "notset") == 0) {
strcopy(LANGUAGE.notset, val, sizeof(LANGUAGE.notset));
return;
@@ -765,6 +786,10 @@ void language_set(char *name, char *val)
strcopy(LANGUAGE.settings, val, sizeof(LANGUAGE.settings));
return;
}
+ if (strcmp(name, "Setasbackgroundmusic") == 0) {
+ strcopy(LANGUAGE.Setasbackgroundmusic, val, sizeof(LANGUAGE.Setasbackgroundmusic));
+ return;
+ }
if (strcmp(name, "ShutdowntoIdle") == 0) {
strcopy(LANGUAGE.ShutdowntoIdle, val, sizeof(LANGUAGE.ShutdowntoIdle));
return;
@@ -773,6 +798,10 @@ void language_set(char *name, char *val)
strcopy(LANGUAGE.ShutdownSystem, val, sizeof(LANGUAGE.ShutdownSystem));
return;
}
+ if (strcmp(name, "Standard") == 0) {
+ strcopy(LANGUAGE.Standard, val, sizeof(LANGUAGE.Standard));
+ return;
+ }
if (strcmp(name, "Success") == 0) {
strcopy(LANGUAGE.Success, val, sizeof(LANGUAGE.Success));
return;
diff --git a/source/language.h b/source/language.h
index baef1590..0636ad72 100644
--- a/source/language.h
+++ b/source/language.h
@@ -17,6 +17,8 @@ struct LANGUAGE
char Areyousure[50];
char AutoPatch[20];
char Back[20];
+ char Backgroundmusic[80];
+ char Backgroundmusicpath[100];
char BacktoHBCorWiiMenu[50];
char BacktoLoader[50];
char BacktoWiiMenu[50];
@@ -97,6 +99,7 @@ struct LANGUAGE
char LikeSysMenu[50];
char LoadingincIOS[50];
char Loadingstandardlanguage[80];
+ char Loadingstandardmusic[80];
char Lock[30];
char LockConsole[50];
char MP3Menu[40];
@@ -116,6 +119,7 @@ struct LANGUAGE
char NotaWiiDisc[40];
char NoUSBDevicefound[50];
char Notenoughfreespace[50];
+ char Notasupportedformat[100];
char notset[40];
char of[30];
char OFF[30];
@@ -148,6 +152,8 @@ struct LANGUAGE
char SelectthePartition[50];
char youwanttoformat[50];
char settings[50];
+ char Setasbackgroundmusic[90];
+ char Standard[30];
char ShutdowntoIdle[50];
char ShutdownSystem[50];
char Success[30];
diff --git a/source/libwiigui/gui.h b/source/libwiigui/gui.h
index 9355512e..48a2fe5c 100644
--- a/source/libwiigui/gui.h
+++ b/source/libwiigui/gui.h
@@ -131,6 +131,8 @@ class GuiSound
~GuiSound();
//!Start sound playback
void Play();
+ //!Start sound playback from ogg file
+ int PlayOggFile(char * path);
//!Stop sound playback
void Stop();
//!Pause sound playback
@@ -146,6 +148,11 @@ class GuiSound
//!Set the sound to loop playback (only applies to OGG)
//!\param l Loop (true to loop)
void SetLoop(bool l);
+ //!Get the playing time in ms for that moment (only applies to OGG)
+ s32 GetPlayTime();
+ //!Set the starting point or playtime for skipping (only applies to OGG)
+ //!\param time in ms
+ void SetPlayTime(s32 time);
protected:
const u8 * sound; //!< Pointer to the sound data
int type; //!< Sound format type (SOUND_PCM or SOUND_OGG)
diff --git a/source/libwiigui/gui_sound.cpp b/source/libwiigui/gui_sound.cpp
index 3db3bf8c..e37fddb6 100644
--- a/source/libwiigui/gui_sound.cpp
+++ b/source/libwiigui/gui_sound.cpp
@@ -42,6 +42,38 @@ GuiSound::~GuiSound()
StopOgg();
}
+int GuiSound::PlayOggFile(char * path)
+{ /*
+ u32 filesize = 0;
+ char * bufferogg = NULL;
+ size_t resultogg;
+
+ FILE * pFile;
+ pFile = fopen (path, "rb");
+
+ // get file size:
+ fseek (pFile , 0 , SEEK_END);
+ filesize = ftell (pFile);
+ rewind (pFile);
+
+ // allocate memory to contain the whole file:
+ bufferogg = (char*) malloc (sizeof(char)*filesize);
+ if (bufferogg == NULL) {fputs (" Memory error",stderr); exit (2);}
+
+ // copy the file into the buffer:
+ resultogg = fread (bufferogg,1,filesize,pFile);
+ if (resultogg != filesize) {fputs (" Reading error",stderr); exit (3);}
+
+ fclose (pFile);
+
+ sound = (const u8 *) bufferogg;
+ length = filesize;
+ */
+ int ret = PlayOggFromFile(path, loop);
+ SetVolumeOgg(255*(volume/100.0));
+ return ret;
+}
+
void GuiSound::Play()
{
int vol;
@@ -57,7 +89,7 @@ void GuiSound::Play()
break;
case SOUND_OGG:
- voice = 0;
+ voice = ASND_GetFirstUnusedVoice();
if(loop)
PlayOgg(mem_open((char *)sound, length), 0, OGG_INFINITE_TIME);
else
@@ -151,3 +183,13 @@ void GuiSound::SetLoop(bool l)
{
loop = l;
}
+
+s32 GuiSound::GetPlayTime()
+{
+ return GetTimeOgg();
+}
+
+void GuiSound::SetPlayTime(s32 time_pos)
+{
+ SetTimeOgg(time_pos);
+}
diff --git a/source/menu.cpp b/source/menu.cpp
index c11613d4..0feaaa65 100644
--- a/source/menu.cpp
+++ b/source/menu.cpp
@@ -63,7 +63,6 @@ static GuiText sizeTxt(sizeshow, 26, (GXColor){THEME.prompttxt_r, THEME.prompttx
static GuiText *GameIDTxt = NULL;
static GuiText *GameRegionTxt = NULL;
static GuiSound * bgMusic = NULL;
-static GuiSound * creditsMusic = NULL;
static wbfs_t *hdd = NULL;
static u32 gameCnt = 0;
static s32 gameSelected = 0, gameStart = 0;
@@ -170,12 +169,14 @@ HaltGui()
static void WindowCredits(void * ptr)
{
int angle = 0;
+ GuiSound * creditsMusic = NULL;
if(btnLogo->GetState() != STATE_CLICKED) {
return;
}
+ s32 thetimeofbg = bgMusic->GetPlayTime();
+ StopOgg();
- bgMusic->Stop();
creditsMusic = new GuiSound(credits_music_ogg, credits_music_ogg_size, SOUND_OGG, 55);
creditsMusic->SetVolume(55);
creditsMusic->SetLoop(1);
@@ -374,8 +375,14 @@ static void WindowCredits(void * ptr)
delete txt[i];
delete creditsMusic;
- bgMusic->SetLoop(1);
- bgMusic->Play();
+
+ if(!strcmp("", CFG.oggload_path) || !strcmp("notset", CFG.ogg_path)) {
+ bgMusic->Play();
+ } else {
+ bgMusic->PlayOggFile(CFG.ogg_path);
+ }
+ bgMusic->SetPlayTime(thetimeofbg);
+ SetVolumeOgg(255*(vol/100.0));
}
/****************************************************************************
@@ -758,7 +765,7 @@ WindowExitPrompt(const char *title, const char *msg, const char *btn1Label,
closeBtn.SetLabel(&btn1Txt);
closeBtn.SetRumble(false);
closeBtn.SetEffect(EFFECT_SLIDE_TOP | EFFECT_SLIDE_IN, 50);
-
+
GuiImage btn1Img(&top);
GuiImage btn1OverImg(&topOver);
GuiButton btn1(top.GetWidth(), top.GetHeight());
@@ -817,7 +824,7 @@ WindowExitPrompt(const char *title, const char *msg, const char *btn1Label,
btn2Txt.SetFontSize(22);
btn3Txt.SetFontSize(22);
-
+
GuiImage wiimoteImg(&wiimote);
if (Settings.wsprompt == yes){wiimoteImg.SetWidescreen(CFG.widescreen);}
wiimoteImg.SetAlignment(ALIGN_LEFT, ALIGN_BOTTOM);
@@ -982,7 +989,7 @@ int GameWindowPrompt()
char imgPath[100];
snprintf(imgPath, sizeof(imgPath), "%sbutton_dialogue_box.png", CFG.theme_path);
GuiImageData btnOutline(imgPath, button_dialogue_box_png);
-
+
snprintf(imgPath, sizeof(imgPath), "%sstartgame_arrow_left.png", CFG.theme_path);
GuiImageData imgLeft(imgPath, startgame_arrow_left_png);
snprintf(imgPath, sizeof(imgPath), "%sstartgame_arrow_right.png", CFG.theme_path);
@@ -1795,7 +1802,7 @@ ProgressWindow(const char *title, const char *msg)
snprintf(imgPath, sizeof(imgPath), "%sprogressbar_outline.png", CFG.theme_path);
GuiImageData progressbarOutline(imgPath, progressbar_outline_png);
-
+
//GuiImageData progressbarOutline(progressbar_outline_png);
GuiImage progressbarOutlineImg(&progressbarOutline);
if (Settings.wsprompt == yes){
@@ -2993,10 +3000,17 @@ static int MenuDiscList()
}
else if(homeBtn.GetState() == STATE_CLICKED)
{
+ s32 thetimeofbg = bgMusic->GetPlayTime();
bgMusic->Stop();
choice = WindowExitPrompt(LANGUAGE.ExitUSBISOLoader,0, LANGUAGE.BacktoLoader,LANGUAGE.WiiMenu,LANGUAGE.Back,0);
- bgMusic->SetLoop(1);
- bgMusic->Play();
+ if(!strcmp("", CFG.oggload_path) || !strcmp("notset", CFG.ogg_path)) {
+ bgMusic->Play();
+ } else {
+ bgMusic->PlayOggFile(CFG.ogg_path);
+ }
+ bgMusic->SetPlayTime(thetimeofbg);
+ SetVolumeOgg(255*(vol/100.0));
+
if(choice == 3)
{
SYS_ResetSystem(SYS_RETURNTOMENU, 0, 0); // Back to System Menu
@@ -3985,11 +3999,11 @@ static int MenuSettings()
sprintf(options2.name[1], "%s",LANGUAGE.AppLanguage);
sprintf(options2.name[2], "%s",LANGUAGE.keyboard);
sprintf(options2.name[3], "%s",LANGUAGE.Unicodefix);
- sprintf(options2.name[4], "%s",LANGUAGE.MP3Menu);
- sprintf(options2.name[5], "Under");
- sprintf(options2.name[6], "Construction");
+ sprintf(options2.name[4], "%s",LANGUAGE.Backgroundmusic);
+ sprintf(options2.name[5], " ");
+ sprintf(options2.name[6], " ");
sprintf(options2.name[7], " ");
- sprintf(options2.name[8], " ");
+ sprintf(options2.name[8], "%s",LANGUAGE.MP3Menu);
@@ -4399,12 +4413,12 @@ static int MenuSettings()
if (strlen(CFG.language_path) < (9 + 3)) {
sprintf(cfgtext, "%s", CFG.language_path);
- } else {
+ } else {
strncpy(cfgtext, CFG.language_path, 9);
cfgtext[9] = '\0';
strncat(cfgtext, "...", 3);
- }
- sprintf(options2.value[1], "%s", cfgtext);
+ }
+ sprintf(options2.value[1], "%s", cfgtext);
if (Settings.keyset == us) sprintf (options2.value[2],"QWERTY");
@@ -4415,11 +4429,23 @@ static int MenuSettings()
else if (Settings.unicodefix == 1) sprintf (options2.value[3],"%s",LANGUAGE.TChinese);
else if (Settings.unicodefix == 2) sprintf (options2.value[3],"%s",LANGUAGE.SChinese);
- sprintf(options2.value[4], " ");
+ if(!strcmp("notset", CFG.ogg_path) || !strcmp("",CFG.oggload_path)) {
+ sprintf(options2.value[4], "%s", LANGUAGE.Standard);
+ } else {
+ if (strlen(CFG.ogg_path) < (9 + 3)) {
+ sprintf(cfgtext, "%s", CFG.ogg_path);
+ } else {
+ strncpy(cfgtext, CFG.ogg_path, 9);
+ cfgtext[9] = '\0';
+ strncat(cfgtext, "...", 3);
+ }
+ sprintf(options2.value[4], "%s", cfgtext);
+ }
+
sprintf(options2.value[5], " ");
sprintf(options2.value[6], " ");
sprintf(options2.value[7], " ");
- sprintf(options2.value[8], " ");
+ sprintf(options2.value[8], "not working!");
ret = optionBrowser2.GetClickedOption();
@@ -4511,6 +4537,10 @@ static int MenuSettings()
Settings.unicodefix++;
break;
case 4:
+ menu = MENU_OGG;
+ pageToDisplay = 0;
+ break;
+ case 8:
menu = MENU_MP3;
pageToDisplay = 0;
break;
@@ -4551,8 +4581,6 @@ static int MenuSettings()
pageToDisplay = 3;
menu = MENU_NONE;
page3Btn.ResetState();
- //page1Btn.SetImage(&page1dImg);
- //page2Btn.SetImage(&page2Img);
tabBtn.SetImage(&tab3Img);
break;
}
@@ -5024,7 +5052,329 @@ static int MenuCheck()
return menu;
}
+/****************************************************************************
+ * MenuOGG
+ ***************************************************************************/
+int MenuOGG()
+{
+ int menu = MENU_NONE, cnt = 0;
+ int ret = 0, choice = 0;
+ int scrollon, nothingchanged = 0;
+ GuiSound btnSoundOver(button_over_pcm, button_over_pcm_size, SOUND_PCM, vol);
+ GuiSound btnClick(button_click2_pcm, button_click2_pcm_size, SOUND_PCM, vol);
+
+ char imgPath[100];
+
+ snprintf(imgPath, sizeof(imgPath), "%sbutton_dialogue_box.png", CFG.theme_path);
+ GuiImageData btnOutline(imgPath, button_dialogue_box_png);
+ snprintf(imgPath, sizeof(imgPath), "%ssettings_background.png", CFG.theme_path);
+ GuiImageData settingsbg(imgPath, settings_background_png);
+
+ GuiTrigger trigA;
+ trigA.SetSimpleTrigger(-1, WPAD_BUTTON_A | WPAD_CLASSIC_BUTTON_A, PAD_BUTTON_A);
+ GuiTrigger trigB;
+ trigB.SetButtonOnlyTrigger(-1, WPAD_BUTTON_B | WPAD_CLASSIC_BUTTON_B, PAD_BUTTON_B);
+ GuiTrigger trigMinus;
+ trigMinus.SetButtonOnlyTrigger(-1, WPAD_BUTTON_MINUS | WPAD_CLASSIC_BUTTON_MINUS, 0);
+ GuiTrigger trigPlus;
+ trigPlus.SetButtonOnlyTrigger(-1, WPAD_BUTTON_PLUS | WPAD_CLASSIC_BUTTON_PLUS, 0);
+
+ char fullpath[150];
+ char shortpath[35];
+ int countmp3 = GetFiles(CFG.oggload_path);
+
+ if(!strcmp("", CFG.oggload_path)) {
+ sprintf(shortpath, "%s", LANGUAGE.Standard);
+ } else if (strlen(CFG.oggload_path) < (27 + 3)) {
+ sprintf(shortpath, "%s", CFG.oggload_path);
+ }
+ else {
+ strncpy(shortpath, CFG.oggload_path, 27);
+ shortpath[27] = '\0';
+ strncat(shortpath, "...", 3);
+ }
+
+ GuiText titleTxt(shortpath, 24, (GXColor){0, 0, 0, 255});
+ titleTxt.SetAlignment(ALIGN_CENTRE, ALIGN_MIDDLE);
+ titleTxt.SetPosition(0,0);
+ GuiButton pathBtn(300, 50);
+ pathBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ pathBtn.SetPosition(0,28);
+ pathBtn.SetLabel(&titleTxt);
+ pathBtn.SetSoundOver(&btnSoundOver);
+ pathBtn.SetSoundClick(&btnClick);
+ pathBtn.SetTrigger(&trigA);
+ pathBtn.SetEffectGrow();
+
+ GuiImage oggmenubackground(&settingsbg);
+ oggmenubackground.SetAlignment(ALIGN_LEFT, ALIGN_TOP);
+ oggmenubackground.SetPosition(0, 0);
+
+ GuiText backBtnTxt(LANGUAGE.Back , 22, (GXColor){THEME.prompttxt_r, THEME.prompttxt_g, THEME.prompttxt_b, 255}); //{0, 0, 0, 255});
+ backBtnTxt.SetMaxWidth(btnOutline.GetWidth()-30);
+ GuiImage backBtnImg(&btnOutline);
+ if (Settings.wsprompt == yes){
+ backBtnImg.SetWidescreen(CFG.widescreen);}//////
+ GuiButton backBtn(btnOutline.GetWidth(), btnOutline.GetHeight());
+ backBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ backBtn.SetPosition(-180, 400);
+ backBtn.SetLabel(&backBtnTxt);
+ backBtn.SetImage(&backBtnImg);
+ backBtn.SetSoundOver(&btnSoundOver);
+ backBtn.SetSoundClick(&btnClick);
+ backBtn.SetTrigger(&trigA);
+ backBtn.SetTrigger(&trigB);
+ backBtn.SetEffectGrow();
+
+ customOptionList options2(300);
+
+ for (cnt = 0; cnt < countmp3; cnt++) {
+ snprintf(options2.value[cnt], 30, "%s", mp3files[cnt]);
+ sprintf (options2.name[cnt],"%i.", cnt+1);
+ }
+ options2.length = cnt;
+
+ if(cnt < 9) {
+ scrollon = 0;
+ } else {
+ scrollon = 1;
+ }
+
+ GuiCustomOptionBrowser optionBrowser4(396, 280, &options2, CFG.theme_path, "bg_options_settings.png", bg_options_settings_png, scrollon, 85);
+ optionBrowser4.SetPosition(0, 90);
+ optionBrowser4.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ optionBrowser4.SetCol2Position(45);
+
+ int songPlaying=0;
+
+ snprintf(imgPath, sizeof(imgPath), "%sarrow_next.png", CFG.theme_path);
+ GuiImageData next(imgPath, arrow_next_png);
+ snprintf(imgPath, sizeof(imgPath), "%sarrow_previous.png", CFG.theme_path);
+ GuiImageData prev(imgPath, arrow_previous_png);
+ snprintf(imgPath, sizeof(imgPath), "%smp3_stop.png", CFG.theme_path);
+ GuiImageData stop(imgPath, mp3_stop_png);
+ snprintf(imgPath, sizeof(imgPath), "%smp3_pause.png", CFG.theme_path);
+ GuiImageData pause(imgPath, mp3_pause_png);
+ snprintf(imgPath, sizeof(imgPath), "%sstartgame_arrow_right.png", CFG.theme_path);
+ GuiImageData play(imgPath, startgame_arrow_right_png);
+
+ GuiImage nextBtnImg(&next);
+ GuiButton nextBtn(next.GetWidth(), next.GetHeight());
+ nextBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ nextBtn.SetPosition(130, 400);
+ nextBtn.SetImage(&nextBtnImg);
+ nextBtn.SetSoundOver(&btnSoundOver);
+ nextBtn.SetSoundClick(&btnClick);
+ nextBtn.SetTrigger(&trigA);
+ nextBtn.SetEffectGrow();
+
+ GuiImage prevBtnImg(&prev);
+ prevBtnImg.SetWidescreen(CFG.widescreen);
+ GuiButton prevBtn(prev.GetWidth(), prev.GetHeight());
+ prevBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ prevBtn.SetPosition(-60, 400);
+ prevBtn.SetImage(&prevBtnImg);
+ prevBtn.SetSoundOver(&btnSoundOver);
+ prevBtn.SetSoundClick(&btnClick);
+ prevBtn.SetTrigger(&trigA);
+ prevBtn.SetEffectGrow();
+
+ GuiImage playBtnImg(&play);
+ playBtnImg.SetWidescreen(CFG.widescreen);
+ GuiButton playBtn(play.GetWidth(), play.GetHeight());
+ playBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ playBtn.SetPosition(72, 400);
+ playBtn.SetImage(&playBtnImg);
+ playBtn.SetSoundOver(&btnSoundOver);
+ playBtn.SetSoundClick(&btnClick);
+ playBtn.SetTrigger(&trigA);
+ playBtn.SetTrigger(&trigPlus);
+ playBtn.SetEffectGrow();
+
+ GuiImage stopBtnImg(&stop);
+ stopBtnImg.SetWidescreen(CFG.widescreen);
+ GuiButton stopBtn(stop.GetWidth(), stop.GetHeight());
+ stopBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
+ stopBtn.SetPosition(17, 400);
+ stopBtn.SetImage(&stopBtnImg);
+ stopBtn.SetSoundOver(&btnSoundOver);
+ stopBtn.SetSoundClick(&btnClick);
+ stopBtn.SetTrigger(&trigA);
+ stopBtn.SetTrigger(&trigMinus);
+ stopBtn.SetEffectGrow();
+
+ HaltGui();
+ GuiWindow w(screenwidth, screenheight);
+ w.Append(&oggmenubackground);
+ w.Append(&pathBtn);
+ w.Append(&backBtn);
+ w.Append(&playBtn);
+ w.Append(&nextBtn);
+ w.Append(&prevBtn);
+ w.Append(&stopBtn);
+ mainWindow->Append(&w);
+ mainWindow->Append(&optionBrowser4);
+
+ ResumeGui();
+
+ while(menu == MENU_NONE)
+ {
+
+ if (backBtn.GetState() == STATE_CLICKED) {
+ if(nothingchanged == 1 && countmp3 > 0) {
+ if(!strcmp("", CFG.oggload_path) || !strcmp("notset", CFG.ogg_path)) {
+ bgMusic->Play();
+ } else {
+ bgMusic->PlayOggFile(CFG.ogg_path);
+ }
+ }
+ menu = MENU_SETTINGS;
+ break;
+ }
+
+ if (pathBtn.GetState() == STATE_CLICKED) {
+ mainWindow->Remove(&optionBrowser4);
+ w.Remove(&backBtn);
+ w.Remove(&pathBtn);
+ w.Remove(&playBtn);
+ w.Remove(&nextBtn);
+ w.Remove(&prevBtn);
+ w.Remove(&stopBtn);
+ char entered[43] = "";
+ strncpy(entered, CFG.oggload_path, sizeof(entered));
+ int result = OnScreenKeyboard(entered,43,0);
+ mainWindow->Append(&optionBrowser4);
+ w.Append(&pathBtn);
+ w.Append(&backBtn);
+ w.Append(&playBtn);
+ w.Append(&nextBtn);
+ w.Append(&prevBtn);
+ w.Append(&stopBtn);
+ if ( result == 1 ) {
+ strncpy(CFG.oggload_path, entered, sizeof(CFG.oggload_path));
+ WindowPrompt(LANGUAGE.Backgroundmusicpath,0,LANGUAGE.ok,0,0,0);
+ if(isSdInserted() == 1) {
+ cfg_save_global();
+ if(!strcmp("", CFG.oggload_path)) {
+ bgMusic->Play();
+ }
+ menu = MENU_OGG;
+ break;
+ } else {
+ WindowPrompt(LANGUAGE.NoSDcardinserted, LANGUAGE.InsertaSDCardtosave, LANGUAGE.ok, 0,0,0);
+ }
+ }
+ if(countmp3 > 0) {
+ optionBrowser4.SetFocus(1);
+ }
+ pathBtn.ResetState();
+ }
+
+ ret = optionBrowser4.GetClickedOption();
+
+ if(ret>=0) {
+ choice = WindowPrompt(LANGUAGE.Setasbackgroundmusic,mp3files[ret],LANGUAGE.Yes,LANGUAGE.No,0,0);
+ if(choice == 1) {
+ snprintf(fullpath,150,"%s%s",CFG.oggload_path,mp3files[ret]);
+ choice = bgMusic->PlayOggFile(fullpath);
+ if(choice < 0) {
+ WindowPrompt(LANGUAGE.Notasupportedformat, LANGUAGE.Loadingstandardmusic, LANGUAGE.ok, 0,0,0);
+ sprintf(CFG.ogg_path, "notset");
+ bgMusic->Play();
+ } else {
+ snprintf(CFG.ogg_path, sizeof(CFG.ogg_path), "%s", fullpath);
+ cfg_save_global();
+ SetVolumeOgg(255*(vol/100.0));
+ nothingchanged = 0;
+ }
+ }
+ optionBrowser4.SetFocus(1);
+ }
+
+ if (playBtn.GetState() == STATE_CLICKED && countmp3 > 0) {
+ if(countmp3 > 0) {
+ ret = optionBrowser4.GetSelectedOption();
+ songPlaying=ret;
+ snprintf(fullpath, 150,"%s%s", CFG.oggload_path,mp3files[ret]);
+ choice = bgMusic->PlayOggFile(fullpath);
+ if(choice < 0) {
+ WindowPrompt(LANGUAGE.Notasupportedformat, LANGUAGE.Loadingstandardmusic, LANGUAGE.ok, 0,0,0);
+ if(!strcmp("", CFG.oggload_path) || !strcmp("notset", CFG.ogg_path)) {
+ bgMusic->Play();
+ } else {
+ bgMusic->PlayOggFile(CFG.ogg_path);
+ }
+ }
+ SetVolumeOgg(255*(vol/100.0));
+ songPlaying=ret;
+ nothingchanged = 1;
+ optionBrowser4.SetFocus(1);
+ }
+ playBtn.ResetState();
+ }
+
+ if(nextBtn.GetState() == STATE_CLICKED){
+ if(countmp3 > 0) {
+ songPlaying++;
+ if (songPlaying>(countmp3 - 1)){songPlaying=0;}
+ snprintf(fullpath,150,"%s%s", CFG.oggload_path,mp3files[songPlaying]);
+ choice = bgMusic->PlayOggFile(fullpath);
+ if(choice < 0) {
+ WindowPrompt(LANGUAGE.Notasupportedformat, LANGUAGE.Loadingstandardmusic, LANGUAGE.ok, 0,0,0);
+ if(!strcmp("", CFG.oggload_path) || !strcmp("notset", CFG.ogg_path)) {
+ bgMusic->Play();
+ } else {
+ bgMusic->PlayOggFile(CFG.ogg_path);
+ }
+ }
+ nothingchanged = 1;
+ optionBrowser4.SetFocus(1);
+ }
+ SetVolumeOgg(255*(vol/100.0));
+ nextBtn.ResetState();
+ }
+ if(prevBtn.GetState() == STATE_CLICKED) {
+ if(countmp3 > 0) {
+ songPlaying--;
+ if (songPlaying<0){songPlaying=(countmp3 - 1);}
+ snprintf(fullpath,150,"%s%s", CFG.oggload_path,mp3files[songPlaying]);
+ choice = bgMusic->PlayOggFile(fullpath);
+ if(choice < 0) {
+ WindowPrompt(LANGUAGE.Notasupportedformat, LANGUAGE.Loadingstandardmusic, LANGUAGE.ok, 0,0,0);
+ if(!strcmp("", CFG.oggload_path) || !strcmp("notset", CFG.ogg_path)) {
+ bgMusic->Play();
+ } else {
+ bgMusic->PlayOggFile(CFG.ogg_path);
+ }
+ }
+ nothingchanged = 1;
+ optionBrowser4.SetFocus(1);
+ }
+ SetVolumeOgg(255*(vol/100.0));
+ prevBtn.ResetState();
+ }
+ if(stopBtn.GetState() == STATE_CLICKED) {
+ if(countmp3 > 0) {
+ StopOgg();
+ nothingchanged = 1;
+ optionBrowser4.SetFocus(1);
+ }
+ stopBtn.ResetState();
+ }
+ }
+
+ HaltGui();
+ mainWindow->Remove(&optionBrowser4);
+ mainWindow->Remove(&w);
+ ResumeGui();
+
+ return menu;
+}
+
+/****************************************************************************
+ * MenuMp3
+ ***************************************************************************/
int MenuMp3()
{
int menu = MENU_NONE, cnt = 0;
@@ -5102,8 +5452,6 @@ int MenuMp3()
snprintf(imgPath, sizeof(imgPath), "%sstartgame_arrow_right.png", CFG.theme_path);
GuiImageData play(imgPath, startgame_arrow_right_png);
-
-
GuiImage nextBtnImg(&next);
GuiButton nextBtn(next.GetWidth(), next.GetHeight());
nextBtn.SetAlignment(ALIGN_CENTRE, ALIGN_TOP);
@@ -5241,8 +5589,6 @@ int MenuMp3()
mainWindow->Remove(&optionBrowser4);
mainWindow->Remove(&w);
ResumeGui();
- return menu;
-
return menu;
}
@@ -5286,11 +5632,17 @@ int MainMenu(int menu)
bgMusic = new GuiSound(bg_music_ogg, bg_music_ogg_size, SOUND_OGG, vol);
bgMusic->SetVolume(vol);
bgMusic->SetLoop(1); //loop music
- bgMusic->Play(); // startup music
+ // startup music
+ if(!strcmp("", CFG.oggload_path) || !strcmp("notset", CFG.ogg_path)) {
+ bgMusic->Play();
+ } else {
+ bgMusic->PlayOggFile(CFG.ogg_path);
+ }
while(currentMenu != MENU_EXIT)
{
- bgMusic->SetVolume(vol);
+ SetVolumeOgg(255*(vol/100.0));
+
switch (currentMenu)
{
case MENU_CHECK:
@@ -5311,6 +5663,9 @@ int MainMenu(int menu)
case MENU_MP3:
currentMenu = MenuMp3();
break;
+ case MENU_OGG:
+ currentMenu = MenuOGG();
+ break;
default: // unrecognized menu
currentMenu = MenuCheck();
break;
diff --git a/source/menu.h b/source/menu.h
index e8b280fc..f25b9692 100644
--- a/source/menu.h
+++ b/source/menu.h
@@ -25,6 +25,7 @@ enum
MENU_INSTALL,
MENU_CHECK,
MENU_GAME_SETTINGS,
+ MENU_OGG,
MENU_MP3
};
diff --git a/source/mp3s.c b/source/mp3s.c
index 7c71fd67..6a879835 100644
--- a/source/mp3s.c
+++ b/source/mp3s.c
@@ -134,7 +134,7 @@ if (dir == NULL) //If empty
}
}
- qsort(mp3files, countmp3, sizeof(char[80]), filenamescmp);
+ qsort(mp3files, countmp3, sizeof(char[70]), filenamescmp);
return countmp3;
}
diff --git a/source/mp3s.h b/source/mp3s.h
index f0abdd00..a5a06aeb 100644
--- a/source/mp3s.h
+++ b/source/mp3s.h
@@ -6,7 +6,7 @@ extern "C"
{
#endif
-char mp3files[500][80];
+char mp3files[300][70];
void StopMp3();
void SetMp3Volume(u32 vol);
diff --git a/source/oggplayer.c b/source/oggplayer.c
index 6e562e17..01221987 100644
--- a/source/oggplayer.c
+++ b/source/oggplayer.c
@@ -25,7 +25,10 @@
*/
#include "oggplayer.h"
+#include "mp3s.h"
#include
+#include
+#include
/* OGG control */
@@ -287,6 +290,43 @@ int PlayOgg(int fd, int time_pos, int mode)
return 0;
}
+
+int PlayOggFromFile(char * path, int loop) {
+
+ u32 filesize = 0;
+ char * bufferogg = NULL;
+ size_t resultogg;
+
+ FILE * pFile;
+ pFile = fopen (path, "rb");
+
+ //Check that pFile exist
+ if (pFile==NULL){
+ return -1;
+ }
+
+ // get file size:
+ fseek (pFile , 0 , SEEK_END);
+ filesize = ftell (pFile);
+ rewind (pFile);
+
+ // allocate memory to contain the whole file:
+ bufferogg = (char*) malloc (sizeof(char)*filesize);
+ if (bufferogg == NULL) {fputs (" Memory error",stderr); exit (2);}
+
+ // copy the file into the buffer:
+ resultogg = fread (bufferogg,1,filesize,pFile);
+ if (resultogg != filesize) {fputs (" Reading error",stderr); exit (3);}
+
+ fclose (pFile);
+
+ if (loop)
+ return PlayOgg(mem_open((char *)bufferogg, filesize), 0, OGG_INFINITE_TIME);
+ else
+ return PlayOgg(mem_open((char *)bufferogg, filesize), 0, OGG_ONE_TIME);
+}
+
+
void PauseOgg(int pause)
{
if (pause)
@@ -325,6 +365,7 @@ int StatusOgg()
void SetVolumeOgg(int volume)
{
private_ogg.volume = volume;
+ SND_Pause(0);
SND_ChangeVolumeVoice(0, volume, volume);
}
diff --git a/source/oggplayer.h b/source/oggplayer.h
index 5c4610d1..7478263f 100644
--- a/source/oggplayer.h
+++ b/source/oggplayer.h
@@ -68,6 +68,12 @@ extern "C"
int PlayOgg(int fd, int time_pos, int mode);
+/*------------------------------------------------------------------------------------------------------------------------------------------------------*/
+/* int PlayOgg(char * path, int loop);
+ Just give the function the full device+path to OGG to play it
+ loop = 1 for Loop and 0 for one time playing
+*/
+int PlayOggFromFile(char * path, int loop);
/*------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* void StopOgg();