Compare commits
16 commits
enhanced
...
USB_Loader
Author | SHA1 | Date | |
---|---|---|---|
|
53f7aab136 | ||
|
1c150901e4 | ||
|
a661109541 | ||
|
61fd18e438 | ||
|
1618b4b1e0 | ||
|
72c39f8cab | ||
|
7e0e4cab5c | ||
|
c922f1b92d | ||
|
124c3f05ed | ||
|
02d53a5e09 | ||
|
70d8b4f4a4 | ||
|
6c7e7a2a03 | ||
|
e9423c807e | ||
|
11e17e07ab | ||
|
b4ba424be0 | ||
|
d27dcc314b |
10
HBC/META.XML
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<app version="1">
|
||||
<name>USB Loader GX</name>
|
||||
<coder>USB Loader GX Team</coder>
|
||||
<version>1.0</version>
|
||||
<release_date>20090118030000</release_date>
|
||||
<short_description>Loads games from USB-devices</short_description>
|
||||
<long_description>USB Loader GX is a libwiigui based USB iso loader with a wii-like GUI. You can install games to your HDDs and boot them with shorter loading times. The interactive GUI is completely controllable with WiiMote, Classic Controller or GC Controller. Features are automatic widescreen detection, coverdownload, parental control, theme support and many more.
|
||||
Coders: dimok/nIxx/cyrex/giantpune/Hungyip84/NeoRame/WiiShizzza/ardi.</long_description>
|
||||
</app>
|
BIN
HBC/icon.png
Before Width: | Height: | Size: 7.8 KiB |
173
Languages/danish
|
@ -1,173 +0,0 @@
|
|||
Specialthanksto = Special tak til
|
||||
Favorite = Favorit
|
||||
t3Coverst = 3D Covers
|
||||
AppLanguage = Program Sprog
|
||||
Areyousure = Er du sikker?
|
||||
AutoPatch = AutoPatch
|
||||
Keyboard = Tastatur
|
||||
Back = Tilbage
|
||||
Backgroundmusic = Baggrunds musik
|
||||
BacktoHBCorWiiMenu = Tilbage til HBC eller Wii Menu
|
||||
BacktoLoader = Tilbage til Loaderen
|
||||
BacktoWiiMenu = Tilbage til HBC
|
||||
BootStandard = Boot/Standard
|
||||
BothBoth = Begge
|
||||
Cantcreatedirectory = Kan ikke lave ny mappe
|
||||
Cancel = Annullere
|
||||
Cantbeformated = Kan ikke formatteres
|
||||
Cantdelete = Kan ikke slettes:
|
||||
ClicktoDownloadCovers = Klik for at Downloade Covers
|
||||
Clock = Klokke
|
||||
Continueinstallgame = Vil du blive ved med at installere spillet?
|
||||
ConsoleDefault = Konsol Standard
|
||||
Consoleshouldbeunlockedtomodifyit = Konsol skal være låst op for ændre dette.
|
||||
ConsoleLocked = Konsol låst
|
||||
CorrectPassword = Korrekt Password
|
||||
Couldnotinitializenetwork = Kunne ikke initialisere netværk!
|
||||
CouldnotopenDisc = Kunne ikke åbne dvd
|
||||
CouldnotinitializeDIPmodule = Kunne ikke initialisere DIP module!
|
||||
CoverDownload = Cover Download
|
||||
CoverPath = Cover Sti
|
||||
CoverpathChanged = CoverSti Ændret
|
||||
Coverpathchange = CoverSti Ændringer
|
||||
Credits = Lavet af:
|
||||
DiscImages = Dvdbilleder
|
||||
DiscimagePath = Dvdbilleder sti
|
||||
DiscpathChanged = DvdSti Ændret
|
||||
Discpathchange = DvdSti ændringer
|
||||
DiscDefault = Spillets standard
|
||||
Display = Skærm
|
||||
Doyouwanttoformat = Vil du formattere?:
|
||||
Doyoureallywanttodelete = Vil du virkelig slette:
|
||||
Doyouwanttoretryfor30secs = Vil du prøve igen?
|
||||
Downloadingfile = Downloader fil:
|
||||
DownloadBoxartimage = Downloade Boxart billede?
|
||||
Downloadfinished = Download færdig
|
||||
Error = Fejl!
|
||||
BOOTERROR = BOOT FEJL
|
||||
ErrorreadingDisc = Disken kunne ikke læses
|
||||
ExitUSBISOLoader = Afslut USB Loader GX?
|
||||
InitializingNetwork = Initialiserer Netværk
|
||||
InsertDisk = Indsæt en disk
|
||||
InsertaWiiDisc = Indsæt en wii disk!
|
||||
InsertaSDCardtodownloadimages = Indsæt et sd kort for at downloade billeder.
|
||||
InsertaSDCardtosave = Indsæt et sd kort for at gemme.
|
||||
InstallRenameandDeleteareunlocked = Alle USB Loader GX's funktioner er låst op.
|
||||
Installerror = Installations fejl!
|
||||
Installagame = Installer et spil?
|
||||
Installinggame = Installerer spillet:
|
||||
Failedtoboot = Kunne ikke start op:
|
||||
FailedtomountfrontSDcard = Kunne ikke montere sd kort
|
||||
FailedtosetUSB = Kunne ikke sætte usb:
|
||||
Failedformating = Formatteringen mislykkedes
|
||||
filesnotfoundontheserver = Filerne blev ikke fundet på serveren!
|
||||
filesleft = Fil(er) tilbage
|
||||
FlipX = Flip-X
|
||||
Force = Tving
|
||||
Youneedtoformatapartition = Du må formattere en partition
|
||||
Format = Format
|
||||
Formattingpleasewait = Formatterer, vent venligst...
|
||||
formated = Formatteret!
|
||||
free = ledig
|
||||
FreeSpace = Ledig plads
|
||||
FullShutdown = Fuld shutdown
|
||||
GameID = Spil ID
|
||||
Games = Spil
|
||||
Gameisalreadyinstalled = Dette spil er allerede installeret:
|
||||
GameRegion = Region
|
||||
GameSize = Spil størrelse
|
||||
GoBack = Gå tilbage
|
||||
//GotoPage = Gå til side
|
||||
HowtoShutdown = Hvordan skal den slukkes?
|
||||
Language = Sprog
|
||||
Langchange = Sprog skift
|
||||
Left = Venstre
|
||||
LikeSysMenu = Ligesom wii menu
|
||||
LoadingincIOS = Loader i cIOS249
|
||||
Lock = Lås
|
||||
LockConsole = Lås Konsol
|
||||
MP3Menu = MP3 Menu
|
||||
Missingfiles = Manglende filer
|
||||
Networkiniterror = Netværket kunne ikke intialiseres
|
||||
Next = Næste
|
||||
No = Nej
|
||||
Nofilemissing = Ingen filer mangler!
|
||||
NoHDDfound = Ingen HDD fundet!
|
||||
NoSDcardinserted = Intet SD-kort fundet!
|
||||
Nopartitionsfound = Ingen partitioner fundet
|
||||
NoUSBDevice = Intet USB apparat tilsluttet
|
||||
NoWBFSpartitionfound = Ingen WBFS partition fundet
|
||||
NormalCovers = Normale Covers
|
||||
Normal = Normal
|
||||
NotaWiiDisc = Ikke en Wii Disk
|
||||
NoUSBDevicefound = Intet USB apparat fundet.
|
||||
Notenoughfreespace = Ikke nok ledig plads!
|
||||
notset = Ikke sat
|
||||
of = af
|
||||
OFF = Fra
|
||||
OfficialSite = Officielle Side
|
||||
ok = OK
|
||||
ON = Til
|
||||
Parentalcontrol = Forælder kontrol
|
||||
Partition = Partition
|
||||
Password = Password
|
||||
PasswordChanged = Password Ændret
|
||||
Passwordhasbeenchanged = Passwordet er blevet ændret
|
||||
Passwordchange = Password skift
|
||||
PowerofftheWii = Sluk wii'en
|
||||
Prev = Forrig
|
||||
PromptsButtons = Prompts Buttons
|
||||
ReloadSD = Genindlæs SD
|
||||
RenameGameonWBFS = Omdøb spil på WBFS
|
||||
Restart = Genstart
|
||||
Return = Tilbage
|
||||
ReturntoWii = Vend tilbage til menuen
|
||||
Right = Højre
|
||||
Rumble = Vibration
|
||||
QuickBoot = Hurtig opstart
|
||||
Save = Gem
|
||||
SaveFailed = Gemningen mislykkedes
|
||||
Specialthanksto = Speciel tak til
|
||||
For = for
|
||||
theUSBLoaderandreleasingthesourcecodethe = og for at gøre deres source code tilgængelig
|
||||
secondsleft = Sekunder tilbage
|
||||
SelectthePartition = Vælg Partitionen
|
||||
youwanttoformat = du vil formatter
|
||||
settings = Indstillinger
|
||||
ShutdowntoIdle = Almindeligt
|
||||
ShutdownSystem = Sluk Totalt(Rødt lys)
|
||||
Success = Succes:
|
||||
Successfullyinstalled = Installationen lykkedes:
|
||||
Successfullydeleted = Sletningen lykkedes:
|
||||
SuccessfullySaved = Successfully Saved:
|
||||
SystemDefault = System standard
|
||||
ThemePath = TemaSti
|
||||
ThemepathChanged = TemaSti ændret
|
||||
Themepathchange = TemaSti æmdringer
|
||||
Try = Prøv
|
||||
Tooltips = Værktøjtips
|
||||
Timeleft = Tid tilbage:
|
||||
Unlock = Lås op
|
||||
Uninstall = Afinstaller
|
||||
USBLoaderisprotected = USB Loader GX er beskyttet
|
||||
USBapparatnotfound = USB apparat ikke fundet
|
||||
VideoMode = Video Mode
|
||||
VIDTVPatch = VIDTV Patch
|
||||
Volume = Lydstyrke
|
||||
Waiting = Venter.....
|
||||
WaitingforUSBapparat = Venter på USB apparat
|
||||
WidescreenFix = Widescreen Fix
|
||||
WiiMenu = Wii Menu
|
||||
WrongPassword = Forkert Password
|
||||
Yes = Ja
|
||||
YoudonthavecIOS = Du har ikke cIOS222
|
||||
Japanese = Japansk
|
||||
German = Tysk
|
||||
English = Engelsk
|
||||
French = Fransk
|
||||
Spanish = Spansk
|
||||
Italian = Italiensk
|
||||
Dutch = Nederlandsk
|
||||
SChinese = Simpelt Kinesisk
|
||||
TChinese = Tradionelt Kinesisk
|
||||
Korean = Koreansk
|
171
Languages/dutch
|
@ -1,171 +0,0 @@
|
|||
Specialthanksto = Speciale dank aan
|
||||
t3Covers = 3D hoesjes
|
||||
AppLanguage = Applicatietaal
|
||||
Areyousure = Zeker weten?
|
||||
AutoPatch = Automatisch patchen
|
||||
Back = Terug
|
||||
BacktoHBCorWiiMenu = Naar HBC of Wiimenu
|
||||
BacktoLoader = Naar Loader
|
||||
BacktoWiiMenu = Terug naar Wiimenu
|
||||
BootStandard = Boot/Standaard
|
||||
BothBoth = Beide
|
||||
Cantcreatedirectory = Kan map niet maken
|
||||
Cancel = Annuleren
|
||||
Cantbeformated = Kan niet formatteren
|
||||
Cantdelete = Kan niet verwijderen:
|
||||
ClicktoDownloadCovers = Klik om hoesjes te downloaden
|
||||
Clock = Klok
|
||||
Continueinstallgame = Installatie van spel voortzetten?
|
||||
ConsoleDefault = Consolestandaard
|
||||
Consoleshouldbeunlockedtomodifyit = Aanpassen vereist vrijgeven console
|
||||
ConsoleLocked = Console op slot
|
||||
CorrectPassword = Correct wachtwoord
|
||||
Couldnotinitializenetwork = Netwerk kan niet worden ingesteld
|
||||
CouldnotopenDisc = Schijf kan niet worden geopend
|
||||
CouldnotinitializeDIPmodule = DIP module kan niet worden ingesteld
|
||||
CoverDownload = Hoesjes downloaden
|
||||
CoverPath = Hoesjesmap
|
||||
CoverpathChanged = Hoesjesmap gewijzigd
|
||||
Coverpathchange = Hoesjesmap wijzigen
|
||||
Credits = Credits
|
||||
DiscImages = Discplaatjes
|
||||
DiscimagePath = Discplaatjesmap
|
||||
DiscpathChanged = Discplaatjesmap gewijzigd
|
||||
Discpathchange = Discplaatjesmap wijzigen
|
||||
DiscDefault = Discstandaard
|
||||
Display = Weergeven
|
||||
Doyouwanttoformat = Wil je dit formatteren:
|
||||
Doyoureallywanttodelete = Wil je dit echt verwijderen:
|
||||
Doyouwanttoretryfor30secs = 30 seconden lang opnieuw proberen?
|
||||
Downloadingfile = Bezig met downloaden:
|
||||
DownloadBoxartimage = Hoesjes downloaden?
|
||||
Downloadfinished = Downloaden voltooid
|
||||
Error = Fout!
|
||||
BOOTERROR = BOOT FOUT
|
||||
ErrorreadingDisc = Fout tijdens lezen van disc
|
||||
ExitUSBISOLoader = USB Loader GX afsluiten?
|
||||
InitializingNetwork = Netwerk instellen
|
||||
InsertDisk = Voer een schijf in
|
||||
InsertaWiiDisc = Voer een Wiischijf in
|
||||
InsertaSDCardtodownloadimages = Voer een SD-kaart in voor de plaatjes
|
||||
InsertaSDCardtosave = Voor een SD-kaart in voor het opslaan
|
||||
InstallRenameandDeleteareunlocked = Alle functies van de USB-loader zijn vrijgegeven
|
||||
Installerror = Installatiefout
|
||||
Installagame = Spel installeren
|
||||
Installinggame = Bezig met installeren:
|
||||
Failedtoboot = Fout tijdens laden van:
|
||||
FailedtomountfrontSDcard = Kan SD-kaart niet koppelen
|
||||
FailedtosetUSB = Kan USB niet instellen:
|
||||
Failedformating = Formatteren mislukt
|
||||
filesnotfoundontheserver = Bestanden niet gevonden op de server
|
||||
filesleft = bestanden resterend:
|
||||
FlipX = X wisselen
|
||||
Force = Afdwingen
|
||||
Youneedtoformatapartition = Je moet een partitie formatteren
|
||||
Format = Formatteren
|
||||
Formattingpleasewait = Bezig met formatteren, even geduld
|
||||
formated = geformatteerd!
|
||||
free = beschikbaar
|
||||
FreeSpace = Beschikbare ruimte
|
||||
FullShutdown = Volledig
|
||||
GameID = Spel ID
|
||||
Games = Spellen
|
||||
Gameisalreadyinstalled = Spel is reeds geïnstalleerd!
|
||||
GameRegion = Regio
|
||||
GameSize = Spelgrootte
|
||||
GoBack = Ga terug
|
||||
//GotoPage = Ga naar pagina
|
||||
HowtoShutdown = Op welke manier uitschakelen?
|
||||
Language = Taal
|
||||
Langchange = Taal wijzigen
|
||||
Left = Links
|
||||
LikeSysMenu = Zoals systeemmenu
|
||||
LoadingincIOS = Laden in Cios249
|
||||
Lock = Vergrendelen
|
||||
LockConsole = Console vergrendelen
|
||||
MP3Menu = MP3 Menu
|
||||
Missingfiles = Ontbrekende bestanden
|
||||
Networkiniterror = Network initialisatiefout
|
||||
Neither = Geen
|
||||
Next = Volgende
|
||||
No = Nee
|
||||
Nofilemissing = Alle bestanden compleet!
|
||||
NoHDDfound = Geen harde schijf gevonden!
|
||||
NoSDcardinserted = Geen SD-kaart gevonden!
|
||||
Nopartitionsfound = Geen partities gevonden
|
||||
NoUSBDevice = Geen USB-apparaat
|
||||
NoWBFSpartitionfound = Geen WBFS partities gevonden
|
||||
NormalCovers = Standaard hoesjes
|
||||
Normal = Standaard
|
||||
NotaWiiDisc = Geen Wiidisc
|
||||
NoUSBDevicefound = Geen USB-apparaat gevonden
|
||||
Notenoughfreespace = Onvoldoende vrije ruimte
|
||||
notset = niet ingesteld
|
||||
of = of
|
||||
OFF = UIT
|
||||
OfficialSite = Officiële site
|
||||
ok = oké
|
||||
ON = AAN
|
||||
Parentalcontrol = Ouderlijk toezicht
|
||||
Partition = Partitie
|
||||
Password = Wachtwoord
|
||||
PasswordChanged = Wachtwoord gewijzigsd
|
||||
Passwordhasbeenchanged = Het wachtwoord is gewijzigd
|
||||
Passwordchange = Wachtwoord wijzigen
|
||||
PowerofftheWii = Wii uitschakelen
|
||||
Prev = Vorige
|
||||
PromptsButtons = Weergave knoppen
|
||||
ReloadSD = SD herladen
|
||||
RenameGameonWBFS = Spel hernoemen op WBFS
|
||||
Restart = Herstarten
|
||||
Return = Terug
|
||||
ReturntoWii = Terug naar Wiimenu
|
||||
Right = Rechts
|
||||
Rumble = Trillen
|
||||
QuickBoot = Snelstarten
|
||||
Save = Opslaan
|
||||
SaveFailed = Opslaan mislukt
|
||||
Specialthanksto = Met speciale dank aan
|
||||
For = voor
|
||||
theUSBLoaderandreleasingthesourcecodethe = De USB-Loader en het vrijgeven van de broncode
|
||||
secondsleft = seconden resterend
|
||||
SelectthePartition = Selecteer de partitie
|
||||
youwanttoformat = wil je formatteren
|
||||
settings = Instellingen
|
||||
ShutdowntoIdle = Slaapstand
|
||||
ShutdownSystem = Systeem uitschakelen
|
||||
Success = Voltooid:
|
||||
Successfullyinstalled = Installatie voltooid:
|
||||
Successfullydeleted = Verwijdering voltooid:
|
||||
SuccessfullySaved = Opslaan voltooid:
|
||||
SystemDefault = Systeemstandaard
|
||||
ThemePath = Themamap
|
||||
ThemepathChanged = Themamap gewijzigd
|
||||
Themepathchange = Themamap gewijzigd
|
||||
Try = Proberen
|
||||
Tooltips = Tekstballonen
|
||||
Timeleft = Tijd resterend:
|
||||
Unlock = Vrijgeven
|
||||
Uninstall = Deïnstalleren
|
||||
USBLoaderisprotected = USB Loader GX is op slot
|
||||
USBDevicenotfound = USB apparaat niet gevonden
|
||||
VideoMode = Video Modus
|
||||
VIDTVPatch = VIDTV Patch
|
||||
Volume = Volume
|
||||
Waiting = Wachten...
|
||||
WaitingforUSBDevice = Wachten op USB-apparaat
|
||||
WidescreenFix = Breedbeeld
|
||||
WiiMenu = Wiimenu
|
||||
WrongPassword = Onjuist wachtwoord
|
||||
Yes = Ja
|
||||
YoudonthavecIOS = cIOS222 niet geïnstalleerd
|
||||
Japanese = Japans
|
||||
German = Duits
|
||||
English = Engels
|
||||
French = Frans
|
||||
Spanish = Spaans
|
||||
Italian = Italiaans
|
||||
Dutch = Nederlands
|
||||
SChinese = SChinees
|
||||
TChinese = TChinees
|
||||
Korean = Koreaans
|
|
@ -1,171 +0,0 @@
|
|||
Specialthanksto = Erikoiskiitokset:
|
||||
t3Coverst = 3D kannet
|
||||
AppLanguage = Ohjelman kieli
|
||||
Areyousure = Oletko varma?
|
||||
AutoPatch = AutoPatch
|
||||
Back = Takaisin
|
||||
BacktoHBCorWiiMenu = Takaisin HBC:hen tai Wii Menuun
|
||||
BacktoLoader = HBC
|
||||
BacktoWiiMenu = Takaisin Wii Menuun
|
||||
BootStandard = K%äynnistys/Standardi
|
||||
BothBoth = Molemmat
|
||||
Cantcreatedirectory = Ei voi luoda kansiota
|
||||
Cancel = Peruuta
|
||||
Cantbeformated = Ei voida formatoida
|
||||
Cantdelete = Ei voida poistaa:
|
||||
ClicktoDownloadCovers = Klikkaa ladataksesi kansia
|
||||
Clock = Kello
|
||||
Continueinstallgame = Jatka pelin asennusta?
|
||||
ConsoleDefault = Konsolin oletus
|
||||
Consoleshouldbeunlockedtomodifyit = Avaa konsolin lukitus muokataksesi asetuksia.
|
||||
ConsoleLocked = Konsoli lukittu
|
||||
CorrectPassword = Oikea salasana
|
||||
Couldnotinitializenetwork = Verkkoon ei voitu yhdistää!
|
||||
CouldnotopenDisc = Levyä ei voitu lukea
|
||||
CouldnotinitializeDIPmodule = DIP Moduulia ei voitu alustaa!
|
||||
CoverDownload = kansien lataus
|
||||
CoverPath = kansien sijainti
|
||||
CoverpathChanged = kansien sijainti muutettu
|
||||
Coverpathchange = kansien sijainti
|
||||
Credits = Tekij%ät
|
||||
DiscImages = Levykuvat
|
||||
DiscimagePath = Levykuvien sijainti
|
||||
DiscpathChanged = Levykuvien sijainti muutettu
|
||||
Discpathchange = Levykuvien sijainti
|
||||
DiscDefault = Levy oletus
|
||||
Display = N%äytt%ö
|
||||
Doyouwanttoformat = Haluatko formatoida:
|
||||
Doyoureallywanttodelete = Haluatko varmasti formatoida:
|
||||
Doyouwanttoretryfor30secs = Haluatko odottaa 30 sekuntia?
|
||||
Downloadingfile = Lataa tiedostoa:
|
||||
DownloadBoxartimage = Lataa kansikuva?
|
||||
Downloadfinished = Lataus valmistunut
|
||||
Error = Virhe !
|
||||
BOOTERROR = BOOTTAUS VIRHE
|
||||
ErrorreadingDisc = Virhe luettaessa levyä
|
||||
ExitUSBISOLoader = Poistu USB Loader GX:stä?
|
||||
InitializingNetwork = Yhdistää verkkoon
|
||||
InsertDisk = Aseta levy Wiihin
|
||||
InsertaWiiDisc = Aseta Wii-levy!
|
||||
InsertaSDCardtodownloadimages = Aseta SD-kortti ladataksesi kansia.
|
||||
InsertaSDCardtosave = Aseta SD-kortti tallentaaksesi asetuksia.
|
||||
InstallRenameandDeleteareunlocked = Kaikki asetukset on nyt käytettävissä.
|
||||
Installerror = Asennusvirhe!
|
||||
Installagame = Asenna peli
|
||||
Installinggame = Asentaa peliä:
|
||||
Failedtoboot = Käynnistys ei onnistunut:
|
||||
FailedtomountfrontSDcard = Ei voinut asentaa SD-korttia
|
||||
FailedtosetUSB = USB:ta ei voitu asentaa:
|
||||
Failedformating = Formatointi ei onnistunut
|
||||
filesnotfoundontheserver = tiedostoja ei löytynyt serveriltä!
|
||||
filesleft = tiedosto(j)a jäljellä
|
||||
FlipX = k%ä%änn%ä-X
|
||||
Force = Pakota
|
||||
Youneedtoformatapartition = Sinun täytyy formatoida osio
|
||||
Format = Formatoi
|
||||
Formattingpleasewait = Formatoi, odota...
|
||||
formated = formatoitu!
|
||||
free = vapaa
|
||||
FreeSpace = Vapaata tilaa
|
||||
FullShutdown = Täysi sammutus
|
||||
GameID = Peli ID
|
||||
Games = Pelejä
|
||||
Gameisalreadyinstalled = Peli on jo asennettu:
|
||||
GameRegion = Alue
|
||||
GameSize = Pelin koko
|
||||
GoBack = Mene takaisin
|
||||
//GotoPage = Mene sivulle
|
||||
HowtoShutdown = Miten sammutetaan?
|
||||
Language = Kieli
|
||||
Langchange = Kielen muuttaminen
|
||||
Left = Vasen
|
||||
LikeSysMenu = Kuin wii-menu
|
||||
LoadingincIOS = Lataa cIOS249
|
||||
Lock = Lukitse
|
||||
LockConsole = Lukitse konsoli
|
||||
MP3Menu = MP3 valikko
|
||||
Missingfiles = tiedostoa puuttuu
|
||||
Networkiniterror = Verkon alustusvirhe
|
||||
Neither = Ei kumpikaan
|
||||
Next = Seuraava
|
||||
No = Ei
|
||||
Nofilemissing = Ei tiedostoja kadoksissa!
|
||||
NoHDDfound = Kovalevyä ei löytynyt!
|
||||
NoSDcardinserted = SD-korttia ei ole asetettu wiihin!
|
||||
Nopartitionsfound = Osioita ei löytynyt
|
||||
NoUSBDevice = Ei USB-laitetta
|
||||
NoWBFSpartitionfound = Ei WBFS-osioita löytynyt
|
||||
NormalCovers = Normaalit kannet
|
||||
Normal = Normaali
|
||||
NotaWiiDisc = Ei Wii-levy
|
||||
NoUSBDevicefound = USB-laitetta ei löytynyt.
|
||||
Notenoughfreespace = Ei tarpeeksi tilaa!
|
||||
notset = ei asetettu
|
||||
of = josta
|
||||
OFF = OFF
|
||||
OfficialSite = Virallinen sivusto
|
||||
ok = OK
|
||||
ON = ON
|
||||
Parentalcontrol = Valvonta
|
||||
Partition = Osio
|
||||
Password = Salasana
|
||||
PasswordChanged = Salasana muutettu
|
||||
Passwordhasbeenchanged = Salasana on muutettu
|
||||
Passwordchange = Salasanan vaihto
|
||||
PowerofftheWii = Sammuta Wii
|
||||
Prev = Edellinen
|
||||
PromptsButtons = Napit
|
||||
ReloadSD = Uudelleenlataa SD
|
||||
RenameGameonWBFS = Uudelleennimeä peli
|
||||
Restart = Käynnistä uudelleen
|
||||
Return = Palaa
|
||||
ReturntoWii = Palaa Wii-menuun
|
||||
Right = Oikea
|
||||
Rumble = V%ärin%ä
|
||||
QuickBoot = Pikak%äynnistys
|
||||
Save = Tallenna
|
||||
SaveFailed = Tallennus ei onnistunut
|
||||
Specialthanksto = Erikoiskiitokset
|
||||
For =
|
||||
theUSBLoaderandreleasingthesourcecodethe = ja l%ähdekoodin julkaisemisesta
|
||||
secondsleft = sekuntia jäljellä
|
||||
SelectthePartition = Valitse osio
|
||||
youwanttoformat = jonka haluat formatoida
|
||||
settings = Asetukset
|
||||
ShutdowntoIdle = Valmiustila
|
||||
ShutdownSystem = Sammuta järjestelmä
|
||||
Success = Onnistui:
|
||||
Successfullyinstalled = Asennettu onnistuneesti:
|
||||
Successfullydeleted = Poistettu onnistuneesti:
|
||||
SuccessfullySaved = Tallennettu onnistuneesti
|
||||
SystemDefault = Wiin oletus
|
||||
ThemePath = Teeman sijainti
|
||||
ThemepathChanged = Teeman sijainti muutettu
|
||||
Themepathchange = Teeman sijainti
|
||||
Try = Yrit%ä
|
||||
Tooltips = vinkit
|
||||
Timeleft = Aikaa jäljellä:
|
||||
Unlock = Avaa
|
||||
Uninstall = Poista
|
||||
USBLoaderisprotected = USB Loader GX on suojattu.
|
||||
USBDevicenotfound = USB-laitetta ei löytynyt
|
||||
VideoMode = Video tila
|
||||
VIDTVPatch = VIDTV korjaus
|
||||
Volume = Voimakkuus
|
||||
Waiting = Odottaa...
|
||||
WaitingforUSBDevice = Odottaa USB-laitetta...
|
||||
WidescreenFix = Laajakuva korjaus
|
||||
WiiMenu = Wii Menu
|
||||
WrongPassword = Väärä salasana
|
||||
Yes = Kyllä
|
||||
YoudonthavecIOS = Sinulla ei ole cIOS222:sta
|
||||
Japanese = Japani
|
||||
German = Saksa
|
||||
English = Englanti
|
||||
French = Ranska
|
||||
Spanish = Espanja
|
||||
Italian = Italia
|
||||
Dutch = Hollanti
|
||||
SChinese = SKiina
|
||||
TChinese = TKiina
|
||||
Korean = Korea
|
210
Languages/french
|
@ -1,210 +0,0 @@
|
|||
t3Covers = Jaquettes 3D
|
||||
addToFavorite = Ajouter aux favoris
|
||||
all = Alphabétique
|
||||
AppLanguage = Langue d'interface
|
||||
Areyousure = Êtes-vous sûr?
|
||||
available = disponible
|
||||
AutoPatch = AutoPatch
|
||||
Back = Retour
|
||||
Backgroundmusic = Fond sonore
|
||||
Backgroundmusicpath = Dossier fond sonore modifié
|
||||
BacktoHBCorWiiMenu = Retour HBC / Menu Wii
|
||||
BacktoLoader = Wii HomeBrews
|
||||
BacktoWiiMenu = Retour Menu Wii
|
||||
BootStandard = Boot/Standard
|
||||
Both = Tous
|
||||
Cantcreatedirectory = Création du répertoire impossible
|
||||
Cancel = Annuler
|
||||
Cantbeformated = Formatage impossible
|
||||
CheckingforUpdates = Recherche de Mise à Jour
|
||||
Cantdelete = Impossible de supprimer :
|
||||
ClicktoDownloadCovers = Téléchargement des jaquettes
|
||||
Clock = Horloge
|
||||
Close = Fermer
|
||||
Continueinstallgame = Continuer l'installation ?
|
||||
ConsoleDefault = Console par défaut
|
||||
Consoleshouldbeunlockedtomodifyit = La console doit être déverrouillée.
|
||||
ConsoleLocked = Console verrouillée
|
||||
CorrectPassword = Mot de passe correct
|
||||
Couldnotinitializenetwork = Initialisation réseau impossible !
|
||||
CouldnotopenDisc = Initialisation disque impossible
|
||||
CouldnotinitializeDIPmodule = Initialisation DIP impossible !
|
||||
CoverDownload = Téléchargement Jaquettes
|
||||
CoverPath = Dossier Jaquettes
|
||||
CoverpathChanged = Dossier des jaquettes modifié
|
||||
Coverpathchange = Dossier des jaquettes
|
||||
count = Utilisation
|
||||
Credits = Crédits
|
||||
DiscImages = Labels DVD
|
||||
DiscimagePath = Dossier Labels DVD
|
||||
DiscpathChanged = Dossier des labels DVD changé
|
||||
Discpathchange = Dossier des labels DVD
|
||||
DiscDefault = Disque par défaut
|
||||
Display = Affichage
|
||||
Doyouwanttoformat = Voulez-vous formater ?
|
||||
Doyoureallywanttodelete = Voulez-vous vraiment supprimer ?
|
||||
Doyouwanttoretryfor30secs = Réessayer pendant 30 sec. ?
|
||||
Doyouwanttoupdate = Comment faire la Mise à Jour ?
|
||||
Downloadingfile = Téléchargement du fichier
|
||||
DownloadBoxartimage = Télécharger les jaquettes ?
|
||||
Downloadfinished = Téléchargement terminé
|
||||
//Defaultgamesettings = Rétablir les paramètres du jeu par défaut
|
||||
//Defaultsettings = Rétablir les paramètres par défaut
|
||||
Defaultgamesettings = Reset Paramètres Jeu
|
||||
Defaultsettings = Reset Paramètres
|
||||
Error = Erreur !
|
||||
hour = Heures
|
||||
Homemenu = Menu HOME
|
||||
BOOTERROR = ERREUR DE DÉMARRAGE
|
||||
ErrorreadingDisc = Erreur à la lecture du disque
|
||||
ExitUSBISOLoader = Quitter USB Loader GX ?
|
||||
InitializingNetwork = Initialisation du réseau
|
||||
InsertDisk = Insérez un disque
|
||||
InsertaWiiDisc = Insérez un disque Wii !
|
||||
InsertaSDCardtodownloadimages = Insérez une carte SD pour télécharger les jaquettes.
|
||||
InsertaSDCardtosave = Insérez une carte SD pour enregistrer.
|
||||
InsertaSDCardtousethatoption = Insérez une carte SD pour utiliser cette option.
|
||||
InstallRenameandDeleteareunlocked = Toutes les fonctionnalités sont déverrouillées.
|
||||
Installerror = Erreur à l'installation !
|
||||
Installagame = Installer un jeu
|
||||
Installinggame = Installation du jeu :
|
||||
Failedtoboot = Échec au démarrage de :
|
||||
FailedtomountfrontSDcard = Échec à l'initialisation de la SD
|
||||
FailedtosetUSB = Échec d'initialisation USB :
|
||||
Failedformating = Échec du formatage
|
||||
fave = Favoris
|
||||
Filenotfound = Fichier introuvable.
|
||||
filesnotfoundontheserver = fichiers introuvables sur le serveur !
|
||||
filesleft = fichier(s) restant(s)
|
||||
FlipX = Inversion-X
|
||||
Force = Forcer
|
||||
Youneedtoformatapartition = Vous devez formater une partition
|
||||
Format = Formater
|
||||
Formattingpleasewait = Formatage en cours, veuillez patienter...
|
||||
formated = formaté !
|
||||
free = libre
|
||||
FreeSpace = Espace restant
|
||||
FullShutdown = Éteindre
|
||||
GameID = ID du jeu
|
||||
Games = Jeux
|
||||
Gameisalreadyinstalled = Le jeu est déjà installé :
|
||||
GameRegion = Région
|
||||
GameSize = Taille du jeu
|
||||
GoBack = Retour
|
||||
HowtoShutdown = Arrêt de la Wii ?
|
||||
keyboard = Clavier
|
||||
Language = Langue du jeu
|
||||
Langchange = Changer la langue
|
||||
Left = Gauche
|
||||
LikeSysMenu = Menu système
|
||||
LoadingincIOS = Charger avec cIOS249
|
||||
ListSort = Tri des Jeux
|
||||
Loadingstandardlanguage = Chargement de la langue par défaut.
|
||||
Loadingstandardmusic = Chargement musique standard.
|
||||
Lock = Verrouiller
|
||||
LockConsole = Verrouiller la console
|
||||
MP3Menu = Menu MP3
|
||||
Missingfiles = Fichier(s) manquant(s)
|
||||
Networkiniterror = Erreur d'initialisation réseau
|
||||
Neither = Aucun
|
||||
Next = Suivant
|
||||
Nonewupdates = Pas de nouvelle Mise à Jour.
|
||||
No = Non
|
||||
Nofilemissing = Aucun fichier manquant !
|
||||
NoHDDfound = Aucun HDD trouvé !
|
||||
NoSDcardinserted = Aucune carte SD insérée !
|
||||
Nopartitionsfound = Aucune partition trouvée
|
||||
NoUSBDevice = Aucun périphérique USB
|
||||
NoWBFSpartitionfound = Aucune partition WBFS trouvée
|
||||
NormalCovers = Normales
|
||||
Normal = 4:3
|
||||
NotaWiiDisc = Ce n'est pas un jeu Wii
|
||||
NoUSBDevicefound = Aucun périphérique USB trouvé.
|
||||
Notenoughfreespace = Espace libre insuffisant !
|
||||
Notasupportedformat = Format non supporté !
|
||||
notset = non défini
|
||||
of = sur
|
||||
OFF = Désactivé
|
||||
OfficialSite = Site Officiel
|
||||
ok = OK
|
||||
ON = Activé
|
||||
OnlyInstall = Jeu installé seulement
|
||||
Parentalcontrol = Contrôle parental
|
||||
Partition = Partition
|
||||
Password = Mot de passe
|
||||
PasswordChanged = Mot de passe modifié
|
||||
Passwordhasbeenchanged = Le mot de passe a été modifié
|
||||
Passwordchange = Modification du mot de passe
|
||||
Plays = Utilisation
|
||||
PowerofftheWii = Éteindre la Wii
|
||||
Prev = Précédent
|
||||
PromptsButtons = Interface
|
||||
ReloadSD = Recharger la SD
|
||||
RenameGameonWBFS = Renommer un jeu
|
||||
Restart = Redémarrer
|
||||
Restarting = Redémarrage...
|
||||
Return = Retour
|
||||
ReturntoWii = Retourner au menu Wii
|
||||
Right = Droite
|
||||
Rumble = Vibrations
|
||||
QuickBoot = Démarrage rapide
|
||||
Save = Enregistrer
|
||||
SaveFailed = Échec de sauvegarde
|
||||
Specialthanksto = Remerciements à
|
||||
For = pour
|
||||
theUSBLoaderandreleasingthesourcecodethe = et pour avoir partagé le code source
|
||||
secondsleft = secondes restantes
|
||||
Setasbackgroundmusic = Utiliser comme fond sonore ?
|
||||
SelectthePartition = Choisissez la partition
|
||||
youwanttoformat = Vous voulez formater
|
||||
Standard = Standard
|
||||
settings = Paramètres
|
||||
ShutdowntoIdle = Veille
|
||||
ShutdownSystem = Arrêt
|
||||
Success = Succès :
|
||||
Successfullyinstalled = Installé avec succès :
|
||||
Successfullyupdated = Mise à Jour réussie
|
||||
Successfullydeleted = Supprimé avec succès :
|
||||
SuccessfullySaved = Enregistré avec succès
|
||||
SystemDefault = Système par défaut
|
||||
ThemePath = Dossier Thème
|
||||
ThemepathChanged = Dossier du thème modifié
|
||||
Themepathchange = Dossier du thème
|
||||
Titlestxtpath = Localisation titles.txt
|
||||
TitlestxtpathChanged = Localisation de titles.txt modifié
|
||||
Titlestxtpathchange = Localisation de titles.txt
|
||||
Try = Essayer
|
||||
Tooltips = Info-bulles
|
||||
Timeleft = Temps restant :
|
||||
updating = Mise à Jour
|
||||
Unlock = Déverrouiller
|
||||
Unicodefix = Unicode
|
||||
Uninstall = Désinstaller
|
||||
Updatepath= Dossier Mise à Jour
|
||||
Updatepathchanged = Dossier de Mise à Jour changé.
|
||||
Updatefailed = Mise à Jour échouée
|
||||
Updatedol = DOL seul
|
||||
Updateall = Totale
|
||||
USBLoaderisprotected = USB Loader GX est verrouillé
|
||||
USBDevicenotfound = Périphérique USB introuvable
|
||||
VideoMode = Mode vidéo
|
||||
VIDTVPatch = Patch VIDTV
|
||||
Volume = Volume
|
||||
Waiting = En attente...
|
||||
WaitingforUSBDevice = Attente d'un périphérique USB
|
||||
WidescreenFix = 16:9
|
||||
WiiMenu = Menu Wii
|
||||
Wiilight = Illumination Wii
|
||||
WrongPassword = Mot de passe incorrect
|
||||
Yes = Oui
|
||||
YoudonthavecIOS = cIOS222 non installé
|
||||
Japanese = Japonais
|
||||
German = Allemand
|
||||
English = Anglais
|
||||
French = Français
|
||||
Spanish = Espagnol
|
||||
Italian = Italien
|
||||
Dutch = Néerlandais
|
||||
SChinese = Chinois simplifié
|
||||
TChinese = Chinois traditionnel
|
||||
Korean = Coréen
|
178
Languages/german
|
@ -1,178 +0,0 @@
|
|||
Specialthanksto = Besonderer dank an
|
||||
t3Covers = 3D Cover
|
||||
AppLanguage = Sprache
|
||||
Areyousure = Bist du sicher?
|
||||
AutoPatch = AutoPatch
|
||||
Back = Zurück
|
||||
BacktoHBCorWiiMenu = Zurück zum HBC oder Wii Menü
|
||||
BacktoLoader = Zurück zum Loader
|
||||
BacktoWiiMenu = Zurück ins Wii Menü
|
||||
BootStandard = Boot/Standard
|
||||
Both = Beides
|
||||
Cantcreatedirectory = Verzeichnis kann nicht erstellt werden
|
||||
Cancel = Abbrechen
|
||||
Cantbeformated = Konnte nicht formatiert werden
|
||||
Cantdelete = Löschen fehlgeschlagen:
|
||||
ClicktoDownloadCovers = Klick um Cover runterzuladen
|
||||
Clock = Uhr
|
||||
Continueinstallgame = Spiel installieren?
|
||||
ConsoleDefault = Konsolenstandard
|
||||
Consoleshouldbeunlockedtomodifyit = Konsole zum ändern bitte entsperren.
|
||||
ConsoleLocked = Konsole gesperrt
|
||||
CorrectPassword = Passwort korrekt
|
||||
Couldnotinitializenetwork = Netzwerk konnte nicht initialisiert werden!
|
||||
CouldnotopenDisc = Konnte Disc nicht öffnen
|
||||
CouldnotinitializeDIPmodule = DIP Modul konnte nict initialisiert werden!
|
||||
CoverDownload = Cover Download
|
||||
CoverPath = Cover Pfad
|
||||
CoverpathChanged = Cover Pfad geändert
|
||||
Coverpathchange = Cover Pfad ändern
|
||||
Credits = Credits
|
||||
DiscImages = Disc Images
|
||||
DiscimagePath = Discimage Pfad
|
||||
DiscpathChanged = Disc Pfad geändert
|
||||
Discpathchange = Disc Pfad ändern
|
||||
DiscDefault = Disc Standard
|
||||
Display = Anzeige
|
||||
Doyouwanttoformat = Wollen sie formatieren:
|
||||
Doyoureallywanttodelete = Wirklich löschen:
|
||||
Doyouwanttoretryfor30secs = 30 sek lang erneut versuchen?
|
||||
Downloadingfile = Downloade Datei:
|
||||
DownloadBoxartimage = Download Boxart Grafik?
|
||||
Downloadfinished = Download abgeschlossen
|
||||
Error = Fehler !
|
||||
BOOTERROR = BOOT FEHLER
|
||||
ErrorreadingDisc = Disclesefehler
|
||||
ExitUSBISOLoader = USB Loader GX beenden?
|
||||
InitializingNetwork = Initialisiere Netzwerk
|
||||
InsertDisk = Disc einlegen
|
||||
InsertaWiiDisc = Wii Disc einlegen!
|
||||
InsertaSDCardtodownloadimages = SD Card für Grafik-Download einlegen.
|
||||
InsertaSDCardtosave = SD-Card zum speichern einlegen.
|
||||
InstallRenameandDeleteareunlocked = Alle Funktionen des USB Loader GX freigeschaltet.
|
||||
Installerror = Installationsfehler!
|
||||
Installagame = Spiel installieren
|
||||
Installinggame = Installiere Spiel:
|
||||
Failedtoboot = Bootfehler:
|
||||
FailedtomountfrontSDcard = SD-Card Mount-Fehler
|
||||
FailedtosetUSB = USB-Fehler:
|
||||
Failedformating = Formatieren fehlgeschlagen
|
||||
Filenotfound = Datei nicht gefunden.
|
||||
filesnotfoundontheserver = Datei(en) konnte(n) auf dem Server nicht gefunden werden!
|
||||
filesleft = Datei(en) verbleiben
|
||||
FlipX = Flip-X
|
||||
Force = Erzwinge
|
||||
Youneedtoformatapartition = Partition muss formatiert werden
|
||||
Format = Formatieren
|
||||
Formattingpleasewait = Formatiere, bitte warten...
|
||||
formated = formatiert!
|
||||
free = frei
|
||||
FreeSpace = Freier Speicher
|
||||
FullShutdown = Ausschalten
|
||||
GameID = Spiel ID
|
||||
Games = Spiele
|
||||
Gameisalreadyinstalled = Spiel bereits vorhanden:
|
||||
GameRegion = Region
|
||||
GameSize = Grösse
|
||||
GoBack = Zurück
|
||||
//GotoPage = Gehe zu Seite
|
||||
HowtoShutdown = Wie beenden?
|
||||
keyboard = Tastatur
|
||||
Language = Sprache
|
||||
Langchange = Sprache ändern
|
||||
Left = Links
|
||||
LikeSysMenu = Wie SysMenü
|
||||
LoadingincIOS = Lade in cIOS249
|
||||
Loadingstandardlanguage = Lade Standardsprache.
|
||||
Lock = Sperren
|
||||
LockConsole = Konsole sperren
|
||||
MP3Menu = MP3 Menü
|
||||
Missingfiles = Fehlende Datei(en)
|
||||
Networkiniterror = Netzwerk init Fehler
|
||||
Neither = Nichts
|
||||
Next = Nächste
|
||||
No = Nein
|
||||
Nofilemissing = Alle Dateien vorhanden!
|
||||
NoHDDfound = Keine HDD gefunden!
|
||||
NoSDcardinserted = Keine SD-Card eingelegt!
|
||||
Nopartitionsfound = Keine Partitionen gefunden
|
||||
NoUSBDevice = Kein USB Gerät
|
||||
NoWBFSpartitionfound = Keine WBFS Partition gefunden
|
||||
NormalCovers = Normale Cover
|
||||
Normal = Normal
|
||||
NotaWiiDisc = Keine Wii Disc
|
||||
NoUSBDevicefound = Kein USB Gerät gefunden.
|
||||
Notenoughfreespace = Nicht genug freier Speicher!
|
||||
notset = nicht gesetzt
|
||||
of = von
|
||||
OFF = AUS
|
||||
OfficialSite = Offizielle Seite
|
||||
ok = OK
|
||||
ON = AN
|
||||
Parentalcontrol = Jugenschutz
|
||||
Partition = Partition
|
||||
Password = Passwort
|
||||
PasswordChanged = Passwort geändert
|
||||
Passwordhasbeenchanged = Passwort geändert
|
||||
Passwordchange = Passwort ändern
|
||||
PowerofftheWii = Wii ausschalten
|
||||
Prev = Vorherige
|
||||
PromptsButtons = Button Anzeige
|
||||
ReloadSD = SD aktualisieren
|
||||
RenameGameonWBFS = Spiel umbenennen
|
||||
Restart = Neustart
|
||||
Return = Zurück
|
||||
ReturntoWii = Zurück ins Wii Menü
|
||||
Right = Rechts
|
||||
Rumble = Rumble
|
||||
QuickBoot = Quick Boot
|
||||
Save = Speichern
|
||||
SaveFailed = Speichern fehlgeschlagen
|
||||
Specialthanksto = Besonderer Dank an
|
||||
Titlestxtpath = Titles.txt Pfad
|
||||
TitlestxtpathChanged = Pfad zu titles.txt geändert.
|
||||
Titlestxtpathchange = Pfad von titles.txt ändern
|
||||
For = für
|
||||
theUSBLoaderandreleasingthesourcecodethe = und die veröffentlichung des Quellcodes
|
||||
secondsleft = sekunden verbleiben
|
||||
SelectthePartition = Partition auswählen
|
||||
youwanttoformat = sie wollen formatieren
|
||||
settings = Einstellungen
|
||||
ShutdowntoIdle = StandBy
|
||||
ShutdownSystem = System abschalten
|
||||
Success = Erfolg:
|
||||
Successfullyinstalled = Erfolgreich installiert:
|
||||
Successfullydeleted = Erfolgreich gelöscht:
|
||||
SuccessfullySaved = Erfolgreich gespeichert
|
||||
SystemDefault = Systemstandard
|
||||
ThemePath = Theme Pfad
|
||||
ThemepathChanged = Theme Pfad geändert
|
||||
Themepathchange = Theme Pfad ändern
|
||||
Try = Versuche
|
||||
Tooltips = ToolTips
|
||||
Timeleft = Dauer:
|
||||
Unlock = Entsperren
|
||||
Unicodefix = Unicode Fix
|
||||
Uninstall = Deinstallieren
|
||||
USBLoaderisprotected = USB Loader GX ist geschützt
|
||||
USBDevicenotfound = USB Gerät nicht gefunden
|
||||
VideoMode = Video Modus
|
||||
VIDTVPatch = VIDTV Patch
|
||||
Volume = Lautstärke
|
||||
Waiting = Warte...
|
||||
WaitingforUSBDevice = Warte auf USB Gerät
|
||||
WidescreenFix = Widescreen Fix
|
||||
WiiMenu = Wii Menü
|
||||
WrongPassword = Passwort falsch
|
||||
Yes = Ja
|
||||
YoudonthavecIOS = cIOS222 nicht vorhanden
|
||||
Japanese = Japanisch
|
||||
German = Deutsch
|
||||
English = Englisch
|
||||
French = Französisch
|
||||
Spanish = Spanisch
|
||||
Italian = Italienisch
|
||||
Dutch = Niederländisch
|
||||
SChinese = Simpl.Chinesisch
|
||||
TChinese = Trad.Chinesisch
|
||||
Korean = Koreanisch
|
|
@ -1,192 +0,0 @@
|
|||
Specialthanksto = Un Ringraziamento Speciale a
|
||||
t3Covers = 3D
|
||||
AppLanguage = Percorso Lingua
|
||||
Areyousure = Sei sicuro?
|
||||
AutoPatch = Automatico
|
||||
Back = Indietro
|
||||
BacktoHBCorWiiMenu = Torna a HBC/Menù Wii
|
||||
BacktoLoader = Torna al Loader
|
||||
BacktoWiiMenu = Torna al Menù Wii
|
||||
BootStandard = Riavvio/Standard
|
||||
Both = Entrambi
|
||||
Cantcreatedirectory = Non posso creare la cartella
|
||||
Cancel = Cancella
|
||||
Cantbeformated = Non può essere Formattato
|
||||
Cantdelete = Non Posso Eliminare:
|
||||
ClicktoDownloadCovers = Premi per scaricare le Copertine
|
||||
Clock = Orologio
|
||||
Continueinstallgame = Continua ad Installare il gioco?
|
||||
ConsoleDefault = Predefinito Console
|
||||
Consoleshouldbeunlockedtomodifyit = Console deve essere Sbloccata per Modificarla.
|
||||
ConsoleLocked = Console Bloccata
|
||||
CorrectPassword = Password Corretta
|
||||
Couldnotinitializenetwork = Non posso Inizializzare la rete!
|
||||
CouldnotopenDisc = Non posso caricare il Disco!
|
||||
CouldnotinitializeDIPmodule = Non posso inizializzare il modulo DIP!
|
||||
CoverDownload = Scaricamento Copertina
|
||||
CoverPath = Percorso Copertina
|
||||
CoverpathChanged = Percorso Copertina Modificato
|
||||
Coverpathchange = Modifico Percorso Copertina
|
||||
Credits = Credits
|
||||
DiscImages = Immagine Disco
|
||||
DiscimagePath = Percorso Imm. Disco
|
||||
DiscpathChanged = Percorso Immagine Disco Modificato
|
||||
Discpathchange = Modifica Percorso Immagine Disco
|
||||
DiscDefault = Predefinito Disco
|
||||
Display = Display
|
||||
Doyouwanttoformat = Vuoi Formattare:
|
||||
Doyoureallywanttodelete = Vuoi realmente Eliminare:
|
||||
Doyouwanttoretryfor30secs = Vuoi Riprovare per 30 sec?
|
||||
Downloadingfile = Scaricamento file:
|
||||
DownloadBoxartimage = Scaricamento Immagine Boxart?
|
||||
Downloadfinished = Scaricamento Completato
|
||||
Error = Errore !
|
||||
BOOTERROR = Errore Avvio
|
||||
ErrorreadingDisc = Errore Lettura Disco
|
||||
ExitUSBISOLoader = Esci da USB Loader GX?
|
||||
InitializingNetwork = Inizializzazione rete
|
||||
InsertDisk = Inserisci Disco
|
||||
InsertaWiiDisc = Inserisci un Disco nella Wii!
|
||||
InsertaSDCardtodownloadimages = Inserisci una scheda SD per scaricare le immagini.
|
||||
InsertaSDCardtosave = Inserisci una scheda SD per Salvare.
|
||||
InstallRenameandDeleteareunlocked = Tutte le funzioni di USB Loader GX sono sbloccate.
|
||||
Installerror = Errore Installazione!
|
||||
Installagame = Installa un gioco
|
||||
Installinggame = Sto Installando il gioco:
|
||||
Failedtoboot = Erroe Avvio:
|
||||
FailedtomountfrontSDcard = Errore lettura scheda SD
|
||||
FailedtosetUSB = Errore a Settare porta USB:
|
||||
Failedformating = Errore Formattazione
|
||||
Filenotfound = File non trovato.
|
||||
filesnotfoundontheserver = file non trovato/i sul server!
|
||||
filesleft = file mancante/i
|
||||
FlipX = Flip-X
|
||||
Force = Forza
|
||||
Youneedtoformatapartition = Devi Formattare una Partizione
|
||||
Format = Formatta
|
||||
Formattingpleasewait = Sto Formattando, prego attendere...
|
||||
formated = formattato!
|
||||
free = liberi
|
||||
FreeSpace = Spazio libero
|
||||
FullShutdown = Completo
|
||||
GameID = ID Gioco
|
||||
Games = Giochi
|
||||
Gameisalreadyinstalled = Gioco già installato:
|
||||
GameRegion = Regione
|
||||
GameSize = Dimensione Gioco
|
||||
GoBack = Indietro
|
||||
//GotoPage = Vai alla Pagina
|
||||
HowtoShutdown = Spegnimento Wii?
|
||||
keyboard = tastiera
|
||||
Language = Lingua
|
||||
Langchange = Cambio Lingua
|
||||
Left = Sinistra
|
||||
LikeSysMenu = Come SysMenu
|
||||
LoadingincIOS = Caricamento in cIOS249
|
||||
Loadingstandardlanguage = Caricamento Lingua Standard.
|
||||
Lock = Blocco
|
||||
LockConsole = Blocco Console
|
||||
MP3Menu = Menù MP3
|
||||
Missingfiles = File Mancante/i
|
||||
Networkiniterror = Errore inizializzazione rete
|
||||
Neither = Nessuno
|
||||
Next = Avanti
|
||||
No = No
|
||||
Nofilemissing = Nessun file mancante!
|
||||
NoHDDfound = Nessun HDD trovato!
|
||||
NoSDcardinserted = Nessuna scheda SD inserita!
|
||||
Nopartitionsfound = Nessuna partizione trovata
|
||||
NoUSBDevice = Nessun Dispositivo USB
|
||||
NoWBFSpartitionfound = Nessuna partizione WBFS trovata
|
||||
NormalCovers = Normali
|
||||
Normal = Normale
|
||||
NotaWiiDisc = Non è un Disco Wii
|
||||
NoUSBDevicefound = Nessun Dispositivo USB trovato.
|
||||
Notenoughfreespace = Spazio Insufficiente!
|
||||
notset = non inserita
|
||||
of = di
|
||||
OFF = OFF
|
||||
OfficialSite = Sito Ufficiale
|
||||
ok = OK
|
||||
ON = ON
|
||||
Parentalcontrol = Controllo Genitori
|
||||
Partition = Partizione
|
||||
Password = Password
|
||||
PasswordChanged = Password Modificata
|
||||
Passwordhasbeenchanged = Password è stata modificata
|
||||
Passwordchange = Modifica Password
|
||||
PowerofftheWii = Spegnimento Wii
|
||||
Prev = Indietro
|
||||
PromptsButtons = Pulsanti
|
||||
ReloadSD = Ricarica SD
|
||||
RenameGameonWBFS = Rinomina Gioco su WBFS
|
||||
Restart = RiAvvia
|
||||
Return = Ritorna
|
||||
ReturntoWii = Ritorna al Menù Wii
|
||||
Right = Destra
|
||||
Rumble = Vibrazione
|
||||
QuickBoot = Avvio Veloce
|
||||
Save = Salva
|
||||
SaveFailed = Salvataggio Fallito
|
||||
Specialthanksto = Ringraziamenti Speciali a
|
||||
Titlestxtpath = Percorso Titles.txt
|
||||
TitlestxtpathChanged = Percorso of titles.txt modificato.
|
||||
Titlestxtpathchange = Modifica percorso titles.txt
|
||||
For = per
|
||||
theUSBLoaderandreleasingthesourcecodethe = e rilascio codice sorgente
|
||||
secondsleft = secondi mancanti
|
||||
SelectthePartition = Seleziona la Partizione
|
||||
youwanttoformat = vuoi formattare
|
||||
settings = Strumenti
|
||||
ShutdowntoIdle = StandBy
|
||||
ShutdownSystem = Spegnimento
|
||||
Success = Successo:
|
||||
Successfullyinstalled = Installato con successo:
|
||||
Successfullydeleted = Eliminato con successo:
|
||||
SuccessfullySaved = Salvato con successo
|
||||
SystemDefault = Predefinito Sistema
|
||||
ThemePath = Percorso Tema
|
||||
ThemepathChanged = Percorso Tema modificato
|
||||
Themepathchange = Modifica Percorso Tema
|
||||
Try = Prova
|
||||
Tooltips = Suggerimenti
|
||||
Timeleft = Restante:
|
||||
Unlock = Sblocca
|
||||
Unicodefix = Caratteri Speciali
|
||||
Uninstall = Disinstalla
|
||||
USBLoaderisprotected = USB Loader GX è Protetto
|
||||
USBDevicenotfound = Dispositivo USB non Trovato
|
||||
VideoMode = Modalità Video
|
||||
VIDTVPatch = Forza Video
|
||||
Volume = Volume
|
||||
Waiting = Caricamento...
|
||||
WaitingforUSBDevice = Caricamento Dispositivo USB
|
||||
WidescreenFix = Widescreen
|
||||
WiiMenu = Menù Wii
|
||||
WrongPassword = Password Errata
|
||||
Yes = Sì
|
||||
YoudonthavecIOS = Non Possiedi cIOS222
|
||||
Japanese = Giapponese
|
||||
German = Tedesco
|
||||
English = Inglese
|
||||
French = Francese
|
||||
Spanish = Spagnolo
|
||||
Italian = Italiano
|
||||
Dutch = Olandese
|
||||
SChinese = Cinese Moderno
|
||||
TChinese = Cinese Tradizionale
|
||||
Korean = Coreano
|
||||
addToFavorite = Favoriti
|
||||
Backgroundmusic = Musica di Fondo
|
||||
Backgroundmusicpath = Percorso Musica
|
||||
hour = ore
|
||||
Loadingstandardmusic = Caricamento Musica std.
|
||||
Notasupportedformat = Formato non supportato.
|
||||
Setasbackgroundmusic = Imposta come Musica fondo
|
||||
Standard = Standard
|
||||
Plays = Giocati
|
||||
all = Alfabetico
|
||||
count = più giocati
|
||||
fave = Favoriti
|
||||
ListSort = Ordine Giochi
|
||||
InsertaSDCardtousethatoption = Inserire scheda SD per questa opzione
|
|
@ -1,193 +0,0 @@
|
|||
t3Covers = 3D カバー
|
||||
addToFavorite = お気に入り
|
||||
all = 全て
|
||||
AppLanguage = Appの表示言語
|
||||
Areyousure = 実行しますか?
|
||||
AutoPatch = 自動パッチ
|
||||
Back = 戻る
|
||||
BacktoHBCorWiiMenu = HBC/Wiiメニューへ戻る
|
||||
Backgroundmusic = サウンド
|
||||
Backgroundmusicpath = サウンドのPath
|
||||
BacktoLoader = HBCへ戻る
|
||||
BacktoWiiMenu = Wiiメニューへ戻る
|
||||
BootStandard = ブート/標準
|
||||
BothBoth = 両方
|
||||
Cantcreatedirectory = ディレクトリ作成に失敗しました。
|
||||
Cancel = キャンセル
|
||||
Cantbeformated = フォーマットに失敗しました。
|
||||
Cantdelete = 削除に失敗しました:
|
||||
ClicktoDownloadCovers = カバーをダウンロードするのにクリックして下さい。
|
||||
Clock = Clock
|
||||
Close = 閉じる
|
||||
Continueinstallgame = ゲームのインストールを続けますか?
|
||||
ConsoleDefault = デフォルトコンソール
|
||||
Consoleshouldbeunlockedtomodifyit = 変更にはコンソールのロック解除が必要です。
|
||||
ConsoleLocked = コンソールがロックされています。
|
||||
CorrectPassword = 正しいパスワード
|
||||
Couldnotinitializenetwork = ネットワークの初期化ができません!
|
||||
CouldnotopenDisc = ディスクオープンに失敗しました。
|
||||
CouldnotinitializeDIPmodule = DIPモジュールの初期化ができません!
|
||||
CoverDownload = カバー ダウンロード
|
||||
CoverPath = カバーパス
|
||||
CoverpathChanged = カバーパスを変更しました。
|
||||
Coverpathchange = カバーパスの変更
|
||||
count = プレイ時間
|
||||
Credits = 協力者
|
||||
DiscImages = ディスクイメージ
|
||||
DiscimagePath = ディスクイメージパス
|
||||
DiscpathChanged = ディスクパスを変更しました。
|
||||
Discpathchange = ディスクパスの変更
|
||||
DiscDefault = デフォルトディスク
|
||||
Display = ディスプレイ
|
||||
Doyouwanttoformat = フォーマットしますか:
|
||||
Doyoureallywanttodelete = 削除しますか:
|
||||
Doyouwanttoretryfor30secs = 再実行しますか?(30秒)
|
||||
Downloadingfile = ファイルのダウンロード中:
|
||||
DownloadBoxartimage = Boxart imageをダウンロードしますか?
|
||||
Downloadfinished = ダウンロードを終了しました。
|
||||
Error = Error !
|
||||
BOOTERROR = BOOT ERROR
|
||||
ErrorreadingDisc = ディスク読込み失敗(Error reading Disc)
|
||||
ExitUSBISOLoader = USB Loader GXを終了しますか?
|
||||
Homemenu = ホームメニュー
|
||||
InitializingNetwork = ネットワークの初期化中...
|
||||
InsertDisk = ディスク挿入
|
||||
InsertaWiiDisc = Wiiディスクを挿入して下さい!
|
||||
InsertaSDCardtodownloadimages = イメージをダウンロードするSDカードを挿入して下さい。
|
||||
InsertaSDCardtosave = 保存するSDカードを挿入して下さい。
|
||||
InsertaSDCardtousethatoption = このオプションを使用するのにSDカードを挿入して下さい。
|
||||
InstallRenameandDeleteareunlocked = 全ての機能がアンロックされてました。
|
||||
Installerror = Install Error!
|
||||
Installagame = ゲームインストール
|
||||
Installinggame = ゲームをインストール中:
|
||||
Failedtoboot = 起動に失敗:
|
||||
FailedtomountfrontSDCard = SDカードの認識に失敗しました。
|
||||
FailedtosetUSB = USB接続に失敗:
|
||||
Failedformating = フォーマットに失敗しました。
|
||||
fave = お気に入り
|
||||
Filenotfound = ファイルを検出できませんでした。
|
||||
filesnotfoundontheserver = サーバーにファイルがありません!
|
||||
filesleft = file(s) left(残りのファイル数)
|
||||
FlipX = Flip-X
|
||||
Force = Force
|
||||
Youneedtoformatapartition = パーティションをフォーマットして下さい。
|
||||
Format = フォーマット
|
||||
Formattingpleasewait = フォーマット中です、暫くお待ち下さい...
|
||||
formated = フォーマット完了!
|
||||
free = 空き
|
||||
FreeSpace = 空容量
|
||||
FullShutdown = 完全シャットダウン
|
||||
GameID = ゲームID
|
||||
Games = ゲーム
|
||||
Gameisalreadyinstalled = ゲームは既にインストール済みです:
|
||||
GameRegion = ゲームの地域情報
|
||||
GameSize = ゲームサイズ
|
||||
GoBack = 戻る
|
||||
//GotoPage = Go to Page
|
||||
HowtoShutdown = シャットダウンの方法は?
|
||||
hour = 時間
|
||||
keyboard = キーボード
|
||||
Language = 言語
|
||||
Langchange = 言語の変更
|
||||
Left = 左
|
||||
LikeSysMenu = Like SysMenu
|
||||
LoadingincIOS = cIOS249でロード中...
|
||||
Loadingstandardlanguage = 標準の言語をロード中...
|
||||
LikeSysMenu = Like SysMenu Loading
|
||||
IOS = cIOS249ロード
|
||||
Lock = ロック
|
||||
LockConsole = コンソールをロックする
|
||||
MP3Menu = MP3メニュー
|
||||
Missingfiles = 検出できなかったファイル
|
||||
Networkiniterror = Network initialization error
|
||||
Neither = どちらでもない
|
||||
Next = 次へ
|
||||
No = いいえ
|
||||
Nofilemissing = ファイルを検出できませんでした!
|
||||
NoHDDfound = HDDを検出できませんでした!
|
||||
NoSDCardinserted = SDカードを検出できませんでした!
|
||||
Nopartitionsfound = パーティションを検出できませんでした。
|
||||
NoUSBDevice = USBデバイスを検出できませんでした。
|
||||
NoWBFSpartitionfound = WBFSパーティションを検出できませんでした。
|
||||
NormalCovers = ノ-マルカバー
|
||||
Normal = Normal(4:3)
|
||||
NotaWiiDisc = Wiiディスクではありません。
|
||||
NoUSBDevicefound = USBデバイズが検出されていません。
|
||||
Notenoughfreespace = 空容量が不足しています!
|
||||
Notasupportedformat = ディスク形式はサポートされていません。
|
||||
notset = セットされませんでした。
|
||||
of = of
|
||||
OFF = オフ
|
||||
OfficialSite = オフィシャルサイト
|
||||
ok = OK
|
||||
ON = オン
|
||||
Parentalcontrol = 保護者による制限
|
||||
Partition = パーティション
|
||||
Password = パスワード
|
||||
PasswordChanged = パスワード変更
|
||||
Passwordhasbeenchanged = パスワードを変更しました
|
||||
Passwordchange = パスワード変更
|
||||
PowerofftheWii = Wiiを電源OFFする
|
||||
Plays = プレイ時間
|
||||
Prev = 前へ
|
||||
PromptsButtons = ボタンを押して~
|
||||
ReloadSDカード = SDカードのリロード
|
||||
RenameGameonWBFS = WBFS上のゲーム名変更
|
||||
Restart = リスタート
|
||||
Return = 戻る
|
||||
ReturntoWii = Wiiメニューへ戻る
|
||||
Right = 右
|
||||
Rumble = 振動
|
||||
QuickBoot = クイック起動
|
||||
Save = セーブ
|
||||
SaveFailed = セーブに失敗しました。
|
||||
Specialthanksto = この場を借りて感謝です☆
|
||||
For = for
|
||||
theUSBLoaderandreleasingthesourcecodethe = 及びリリースされているソースコード
|
||||
secondsleft = 完了までの秒数
|
||||
SelectthePartition = パーティション選択
|
||||
youwanttoformat = フォーマットを実行する。
|
||||
settings = 設定
|
||||
Setasbackgroundmusic = サウンドとして設定する
|
||||
Standard = 標準
|
||||
ShutdowntoIdle = システムをアイドル状態にする
|
||||
ShutdownSystem = システムを終了する
|
||||
Success = 成功:
|
||||
Successfullyinstalled = インストールに成功:
|
||||
Successfullydeleted = 削除に成功:
|
||||
SuccessfullySaved = セーブに成功:
|
||||
SystemDefault = デフォルトシステム
|
||||
ThemePath = テーマパス
|
||||
ThemepathChanged = テーマパスを変更しました。
|
||||
Themepathchange = テーマパスの変更
|
||||
Titlestxtpath = Titles.txt Path
|
||||
TitlestxtpathChanged = titles.txtのPathを変更しました。
|
||||
Titlestxtpathchange = titles.txtのPathを変更
|
||||
Try = 試みる
|
||||
Tooltips = ツールヒント
|
||||
Timeleft = 残り時間:
|
||||
Unlock = アンロック
|
||||
Unicodefix = Unicode Fix
|
||||
Uninstall = アンインストール
|
||||
USBLoaderisprotected = USB Loaderは保護されています。
|
||||
USBDevicenotfound = USBデバイスを検出できませんでした。
|
||||
VideoMode = ビデオモード
|
||||
VIDTVPatch = VIDTVパッチ
|
||||
Volume = ボリューム
|
||||
Waiting = 暫くお待ちください...
|
||||
WaitingforUSBDevice = USBデバイスの応答待ち。
|
||||
WidescreenFix = Widescreen(16:9)
|
||||
WiiMenu = Wiiメニュー
|
||||
WrongPassword = パスワードが違います。
|
||||
Yes = はい
|
||||
YoudonthavecIOS = cIOS222が検出できませんでした。
|
||||
Japanese = 日本語
|
||||
German = ドイツ語
|
||||
English = 英語
|
||||
French = フランス語
|
||||
Spanish = スペイン語
|
||||
Italian = イタリア語
|
||||
Dutch = オランダ語
|
||||
SChinese = 中国語(簡体字)
|
||||
TChinese = 中国語(繁体字)
|
||||
Korean = 韓国語
|
171
Languages/korean
|
@ -1,171 +0,0 @@
|
|||
Specialthanksto = Special thanks to
|
||||
t3Covers = 3D 표지
|
||||
AppLanguage = USB 로더 언어
|
||||
Areyousure = 확실합니까?
|
||||
AutoPatch = 자동 패치
|
||||
Back = 뒤로
|
||||
BacktoHBCorWiiMenu = 홈브류 메뉴 또는 Wii 메뉴로
|
||||
BacktoLoader = 로더로 돌아감
|
||||
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로더 GX를 종료할까요?
|
||||
InitializingNetwork = 네트워크 초기화
|
||||
InsertDisk = 디스크를 넣어주세요
|
||||
InsertaWiiDisc = Wii 디스크를 넣으세요!
|
||||
InsertaSDCardtodownloadimages = 다운받은 이미지를 저장할 SD카드를 넣으세요.
|
||||
InsertaSDCardtosave = 저장할 SD카드를 넣으세요.
|
||||
InstallRenameandDeleteareunlocked = USB로더 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 = Special thanks to
|
||||
For = for
|
||||
theUSBLoaderandreleasingthesourcecodethe = and releasing the source code
|
||||
secondsleft = 초 남았습니다
|
||||
SelectthePartition = 포맷하려는
|
||||
youwanttoformat = 파티션을 선택하세요
|
||||
settings = 설정
|
||||
ShutdowntoIdle = 대기 상태로
|
||||
ShutdownSystem = 시스템 종료
|
||||
Success = 성공:
|
||||
Successfullyinstalled = 설치 성공:
|
||||
Successfullydeleted = 삭제 성공:
|
||||
SuccessfullySaved = 저장 성공
|
||||
SystemDefault = 시스템 기본값
|
||||
ThemePath = 테마 경로
|
||||
ThemepathChanged = 테마 경로 변경됨
|
||||
Themepathchange = 테마 경로 변경
|
||||
Try = 시도
|
||||
Tooltips = Tooltips
|
||||
Timeleft = 남은 시간:
|
||||
Unlock = 잠금해제
|
||||
Uninstall = 제거
|
||||
USBLoaderisprotected = USB 로더 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 = 한국어
|
|
@ -1,192 +0,0 @@
|
|||
//r380, Norwegian v2, 21.05.2009
|
||||
ok = OK
|
||||
addToFavorite = Favoritt
|
||||
all = Alfabetisk
|
||||
AppLanguage = Program språk
|
||||
t3Covers = 3D cover
|
||||
Areyousure = Er du sikker?
|
||||
AutoPatch = AutoPatch
|
||||
Back = Tilbake
|
||||
Backgroundmusic = Bakgrunnsmusikk
|
||||
Backgroundmusicpath = Bakgrunnsmusikk sti endret
|
||||
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
|
||||
Close = Lukk
|
||||
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
|
||||
count = Ganger spilt
|
||||
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 !
|
||||
hour = Timer
|
||||
Homemenu = HOME Meny
|
||||
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.
|
||||
InsertaSDCardtousethatoption = Sett inn et SD-kort for å bruke innstillingen.
|
||||
InstallRenameandDeleteareunlocked = Alle funksjonene til USB Loader GX er opplåst.
|
||||
Installerror = Installasjonsfeil!
|
||||
Installagame = Installer 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
|
||||
fave = Favoritter
|
||||
filesnotfoundontheserver = filer ikke funnet på serveren!
|
||||
Filenotfound = Fil ikke funnet.
|
||||
filesleft = fil(er) gjenstår
|
||||
FlipX = Flip-X
|
||||
Force = Tving
|
||||
Youneedtoformatapartition = Du må formatere en partisjon
|
||||
Format = Formater
|
||||
keyboard = Tastatur
|
||||
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
|
||||
HowtoShutdown = Hvordan skru av?
|
||||
Language = Språk
|
||||
Left = Venstre
|
||||
LikeSysMenu = Lik Systemmeny
|
||||
LoadingincIOS = Laster i cIOS249
|
||||
ListSort = Sorter spill liste
|
||||
Loadingstandardlanguage = Laster standard språk.
|
||||
Loadingstandardmusic = Laster standard musikk.
|
||||
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!
|
||||
Notasupportedformat = Ikke et støttet format!
|
||||
notset = ikke satt
|
||||
of = av
|
||||
OFF = AV
|
||||
OfficialSite = Offisiell nettside
|
||||
ON = PÅ
|
||||
Parentalcontrol = Foreldre kontroll
|
||||
Partition = Partisjon
|
||||
Password = Passord
|
||||
PasswordChanged = Passord endret
|
||||
Passwordhasbeenchanged = Passord har blitt endret
|
||||
Passwordchange = Endre passord
|
||||
Plays = Ganger spilt
|
||||
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
|
||||
For = for
|
||||
theUSBLoaderandreleasingthesourcecodethe = og utgivelse av kildekoden
|
||||
secondsleft = sekunder gjenstår
|
||||
Setasbackgroundmusic = Bruk som bakgrunnsmusikk?
|
||||
SelectthePartition = Velg partisjonen
|
||||
youwanttoformat = du vil formatere
|
||||
Standard = Standard
|
||||
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
|
||||
Titlestxtpath = Titles.txt sti
|
||||
TitlestxtpathChanged = Titles.txt sti endret.
|
||||
Titlestxtpathchange = Endre titles.txt sti
|
||||
Try = Prøv
|
||||
Tooltips = Verktøystips
|
||||
Timeleft = Tid igjen:
|
||||
Unlock = Lås opp
|
||||
Unicodefix = Unicode fiks
|
||||
Uninstall = Avinstaller
|
||||
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
|
|
@ -1,194 +0,0 @@
|
|||
t3Covers = Capas 3D
|
||||
addToFavorite = Adicionar aos favoritos
|
||||
all = Alfabética
|
||||
AppLanguage = Idioma
|
||||
Areyousure = Tem a certeza?
|
||||
AutoPatch = Patch automático
|
||||
Back = Voltar
|
||||
Backgroundmusic = Música de fundo
|
||||
Backgroundmusicpath = Pasta Música Fundo
|
||||
BacktoHBCorWiiMenu = Voltar ao Loader/Menu da Wii
|
||||
BacktoLoader = Loader
|
||||
BacktoWiiMenu = Menu da Wii
|
||||
BootStandard = Arranque/Standard
|
||||
Both = Ambos
|
||||
Cantcreatedirectory = Não foi possível criar a pasta
|
||||
Cancel = Cancelar
|
||||
Cantbeformated = Não pode pode ser formatado
|
||||
Cantdelete = Não foi possível apagar:
|
||||
ClicktoDownloadCovers = Carregue para descarregar capas
|
||||
Clock = Relógio
|
||||
Close = Fechar
|
||||
Continueinstallgame = Continuar instalação do jogo?
|
||||
ConsoleDefault = Predefinição Consola
|
||||
Consoleshouldbeunlockedtomodifyit = É necessário desbloquear a configuração para poder modificar o parâmetro.
|
||||
ConsoleLocked = Configuração Bloqueada
|
||||
CorrectPassword = Password Correcta
|
||||
Couldnotinitializenetwork = Não foi possível incializar a Ligação de Rede!
|
||||
CouldnotopenDisc = Não foi possível abrir o Disco
|
||||
CouldnotinitializeDIPmodule = Não foi possível inicializar o módulo DIP!
|
||||
CoverDownload = Download de Capas
|
||||
CoverPath = Pasta Capas
|
||||
CoverpathChanged = Pasta das Capas alterado
|
||||
Coverpathchange = Alterar Pasta das Capas
|
||||
count = Vezes jogadas
|
||||
Credits = Créditos
|
||||
DiscImages = Imagens de Disco
|
||||
DiscimagePath = Pasta Imagens Disco
|
||||
DiscpathChanged = Pasta das Imagens Disco alterada
|
||||
Discpathchange = Alterar da Pasta das Imagens de Disco
|
||||
DiscDefault = Predefinição Disco
|
||||
Display = Mostrar
|
||||
Doyouwanttoformat = Deseja FORMATAR:
|
||||
Doyoureallywanttodelete = Quer mesmo REMOVER o jogo:
|
||||
Doyouwanttoretryfor30secs = Deseja tentar novamente dentro de 30 segs?
|
||||
Downloadingfile = Descarregando ficheiro:
|
||||
DownloadBoxartimage = Descarregar imagem da Caixa?
|
||||
Downloadfinished = Download Terminado
|
||||
Error = Erro !
|
||||
hour = Horas
|
||||
BOOTERROR = ERRO DE ARRANQUE
|
||||
ErrorreadingDisc = Erro ao ler o Disco
|
||||
ExitUSBISOLoader = Pretende sair do USB Loader GX?
|
||||
InitializingNetwork = Inicializando Ligação de Rede
|
||||
InsertDisk = Insira o Disco
|
||||
InsertaWiiDisc = Insira um Disco da Wii!
|
||||
InsertaSDCardtodownloadimages = Insira um cartão SD para descarregar as imagens.
|
||||
InsertaSDCardtosave = Insira um cartão SD para guardar.
|
||||
InsertaSDCardtousethatoption = Insira um cartão SD para usar esta funcionalidade.
|
||||
InstallRenameandDeleteareunlocked = As configurações estão desbloqueadas.
|
||||
Installerror = Erro de Instalação!
|
||||
Installagame = Instalar um jogo
|
||||
Installinggame = Instalando jogo:
|
||||
Failedtoboot = Falha ao arrancar:
|
||||
FailedtomountfrontSDcard = Falha ao montar cartão SD
|
||||
FailedtosetUSB = Falha ao iniciar USB:
|
||||
Failedformating = Falha ao formatar
|
||||
fave = Favoritos
|
||||
Filenotfound = Ficheiro não encontrado.
|
||||
filesnotfoundontheserver = ficheiros não encontrados no servidor!
|
||||
filesleft = ficheiros(s) restante(s)
|
||||
FlipX = Paginação Horizontal
|
||||
Force = Forçar
|
||||
Youneedtoformatapartition = É necessário FORMATAR a partição
|
||||
Format = Formatar
|
||||
Formattingpleasewait = Formatando, por favor aguarde...
|
||||
formated = formatado!
|
||||
free = livres
|
||||
FreeSpace = Espaço Livre
|
||||
FullShutdown = Desligar
|
||||
GameID = ID do Jogo
|
||||
Games = Jogos
|
||||
Gameisalreadyinstalled = Este jogo já está instalado:
|
||||
GameRegion = Região
|
||||
GameSize = Tamanho do Jogo
|
||||
GoBack = Voltar
|
||||
//GotoPage = Ir para a Página
|
||||
HowtoShutdown = Como desligar a consola?
|
||||
Homemenu = Menú Inicial
|
||||
Keyboard = Teclado
|
||||
Language = Idioma
|
||||
Langchange = Alterar Idioma
|
||||
Left = Esquerda
|
||||
LikeSysMenu = Igual ao Menu da Wii
|
||||
ListSort = Ordenação Jogos
|
||||
LoadingincIOS = Carregando com o cIOS249
|
||||
Loadingstandardlanguage = Carregado idioma padrão.
|
||||
Loadingstandardmusic = Carregando música padrão.
|
||||
Lock = Bloquear
|
||||
LockConsole = Bloquear Configurações
|
||||
MP3Menu = Menu MP3
|
||||
Missingfiles = Ficheiros em falta
|
||||
Networkiniterror = Erro ao inicializar ligação de rede
|
||||
Neither = Nenhum
|
||||
Next = Próximo
|
||||
No = Não
|
||||
Nofilemissing = Não há ficheiros em falta!
|
||||
NoHDDfound = Não foi encontrado nenhum Disco Rígido!
|
||||
NoSDcardinserted = Cartão SD não inserido!
|
||||
Nopartitionsfound = Não foram encontradas partições
|
||||
NoUSBDevice = Nenhum dispositivo USB encontrado
|
||||
NoWBFSpartitionfound = Não foi encontrada nenhuma partição WBFS
|
||||
NormalCovers = Capas Normais
|
||||
Normal = Normal
|
||||
NotaWiiDisc = Não é um Disco da Wii
|
||||
NoUSBDevicefound = Nenhum dispositivo USB encontrado.
|
||||
Notenoughfreespace = Não há espaço livre suficiente!
|
||||
notset = não definido
|
||||
of = de
|
||||
OFF = Desligado
|
||||
OfficialSite = Site Oficial
|
||||
ok = OK
|
||||
ON = Ligado
|
||||
Parentalcontrol = Controlo Parental
|
||||
Partition = Partição
|
||||
Password = Password
|
||||
PasswordChanged = Password Alterada
|
||||
Passwordhasbeenchanged = A Password foi alterada
|
||||
Passwordchange = Alterar Password
|
||||
Plays = Vezes jogadas
|
||||
PowerofftheWii = Desligar a Wii
|
||||
Prev = Anterior
|
||||
PromptsButtons = Mensagens/Botões
|
||||
ReloadSD = Actualizar do cartão SD
|
||||
RenameGameonWBFS = Alterar nome do jogo na partição WBFS
|
||||
Restart = Reiniciar
|
||||
Return = Voltar
|
||||
ReturntoWii = Menu da Wii
|
||||
Right = Direita
|
||||
Rumble = Vibração
|
||||
QuickBoot = Arranque Rápido
|
||||
Save = Gravar
|
||||
SaveFailed = Falha ao Gravar
|
||||
Specialthanksto = Agradecimentos
|
||||
Titlestxtpath = Pasta Titles.txt
|
||||
TitlestxtpathChanged = Pasta do ficheiro titles.txt alterada.
|
||||
Titlestxtpathchange = Alterar pasta do titles.txt
|
||||
For = pelo
|
||||
theUSBLoaderandreleasingthesourcecodethe = e ter disponibilizado o código fonte
|
||||
secondsleft = segundos restantes
|
||||
SelectthePartition = Seleccione a Partição
|
||||
youwanttoformat = Deseja formatar?
|
||||
Standard = Standard
|
||||
settings = Configurações
|
||||
ShutdowntoIdle = Standby
|
||||
ShutdownSystem = Desligar
|
||||
Success = Sucesso:
|
||||
Successfullyinstalled = Instalado com Sucesso:
|
||||
Successfullydeleted = Removido com Sucesso:
|
||||
SuccessfullySaved = Gravado com Sucesso
|
||||
SystemDefault = Predefinição Sistema
|
||||
ThemePath = Pasta Temas
|
||||
ThemepathChanged = Pasta dos Temas alterada
|
||||
Themepathchange = Alterar pasta dos Temas
|
||||
Try = Tentar
|
||||
Tooltips = Dicas
|
||||
Timeleft = Tempo restante:
|
||||
Unlock = Desbloquear
|
||||
Unicodefix = Corrigir Unicode
|
||||
Uninstall = Remover
|
||||
USBLoaderisprotected = O USB Loader GX está bloqueado
|
||||
USBDevicenotfound = Dispositivo USB não encontrado
|
||||
VideoMode = Modo de Vídeo
|
||||
VIDTVPatch = Patch VIDTV
|
||||
Volume = Volume
|
||||
Waiting = Aguardando...
|
||||
WaitingforUSBDevice = Aguardando pelo Dispositivo USB
|
||||
WidescreenFix = Correcção Widescreen
|
||||
WiiMenu = Menu da Wii
|
||||
WrongPassword = Password Incorrecta
|
||||
Yes = Sim
|
||||
YoudonthavecIOS = cIOS222 não instalado
|
||||
Japanese = Japonês
|
||||
German = Alemão
|
||||
English = Inglês
|
||||
French = Francês
|
||||
Spanish = Espanhol
|
||||
Italian = Italiano
|
||||
Dutch = Holandês
|
||||
SChinese = Chinês Simplificado
|
||||
TChinese = Chinês Tradicional
|
||||
Korean = Coreano
|
||||
// Portuguese(pt-pt) Language File rev4.4 (22-05-2009 9:54) for GUI USB Loader GX 1
|
||||
// Tested with Loader rev385
|
||||
// Translated by Sky8000
|
|
@ -1,186 +0,0 @@
|
|||
Specialthanksto = Отдельное спасибо :
|
||||
addToFavorite = Добавить в избранное
|
||||
t3Covers = 3D Обложки
|
||||
AppLanguage = Язык приложения
|
||||
Areyousure = Вы уверены ?
|
||||
AutoPatch = Авто Патч
|
||||
Back = Назад
|
||||
Backgroundmusic = Фоновая музыка
|
||||
Backgroundmusicpath = Путь к фоновой музыке
|
||||
BacktoHBCorWiiMenu = Вернуться в HBC или меню Wii
|
||||
BacktoLoader = Вернуться в загрузчик
|
||||
BacktoWiiMenu = Вернуться в меню Wii
|
||||
BootStandard = Загрузка/Стандарт
|
||||
Both = Оба
|
||||
Cantcreatedirectory = Не могу создать папку
|
||||
Cancel = Отмена
|
||||
Cantbeformated = Невозможно отформатировать
|
||||
Cantdelete = Невозможно удалить:
|
||||
ClicktoDownloadCovers = Нажми, чтобы скачать обложки
|
||||
Clock = Часы
|
||||
Close = Закрыть
|
||||
Continueinstallgame = Продолжить установку игры ?
|
||||
ConsoleDefault = По умолчанию (консоль)
|
||||
Consoleshouldbeunlockedtomodifyit = Для изменения консоль должна быть разблокирована.
|
||||
ConsoleLocked = Консоль заблокирована
|
||||
CorrectPassword = Правильный пароль
|
||||
Couldnotinitializenetwork = Не могу инициализировать сеть!
|
||||
CouldnotopenDisc = Не могу прочесть диск
|
||||
CouldnotinitializeDIPmodule = Не могу запустить модуль DIP!
|
||||
CoverDownload = Скачать обложку
|
||||
CoverPath = Путь к обложкам
|
||||
CoverpathChanged = Путь к обложкам был изменен.
|
||||
Coverpathchange = Сменить путь к обложкам
|
||||
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 карту.
|
||||
InsertaSDCardtousethatoption = Для использования этой функции нужна SD карта
|
||||
InstallRenameandDeleteareunlocked = Все функции USB Loader GX разблокированы.
|
||||
Installerror = Ошибка установки!
|
||||
Installagame = Установить игру
|
||||
Installinggame = Устанавливаю игру:
|
||||
Failedtoboot = Ошибка загрузки:
|
||||
FailedtomountfrontSDcard = Ошибка при монтировании SD карты
|
||||
FailedtosetUSB = Ошибка инициализации USB:
|
||||
Failedformating = Форматирование не удалось
|
||||
Filenotfound = Файл не найден
|
||||
filesnotfoundontheserver = файлы не найдены на сервере!
|
||||
filesleft = осталось файлов:
|
||||
FlipX = Flip-X
|
||||
Force = Принудительно
|
||||
Youneedtoformatapartition = Требуется форматирование раздела
|
||||
Format = Форматировать
|
||||
Formattingpleasewait = Форматирую, пожалуйста подождите...
|
||||
formated = форматирование завершено!
|
||||
free = свободно
|
||||
FreeSpace = Свободное пространство
|
||||
FullShutdown = Полное отключение
|
||||
GameID = ID игры
|
||||
Games = Игры
|
||||
Gameisalreadyinstalled = Игра уже установлена:
|
||||
GameRegion = Регион
|
||||
GameSize = Размер игры
|
||||
GoBack = Назад
|
||||
GotoPage = На страницу
|
||||
HowtoShutdown = Способ отключения?
|
||||
Homemenu = Домашнее Меню
|
||||
Language = Язык
|
||||
Langchange = Сменить язык
|
||||
Left = Налево
|
||||
LikeSysMenu = как SysMenu
|
||||
LoadingincIOS = загружаю с cIOS249
|
||||
Lock = Заблокировать
|
||||
LockConsole = Заблокировать консоль
|
||||
MP3Menu = Меню MP3
|
||||
Missingfiles = Отсутствующие файлы
|
||||
Networkiniterror = Ошибка инициализации сети
|
||||
Neither = Ни то, ни другое
|
||||
Next = Следующий
|
||||
No = Нет
|
||||
Nofilemissing = Файл не найден!
|
||||
NoHDDfound = HDD не найден!
|
||||
NoSDcardinserted = SD карта не вставлена!
|
||||
Nopartitionsfound = Разделы не найдены
|
||||
NoUSBDevice = Нет USB устройств
|
||||
NoWBFSpartitionfound = Не найден раздел WBFS
|
||||
NormalCovers = Обычные обложки
|
||||
Normal = Обычный
|
||||
NotaWiiDisc = Это не диск Wii
|
||||
NoUSBDevicefound =USB устройств не обнаружено
|
||||
Notenoughfreespace = Не хватает свободного места!
|
||||
Notasupportedformat = Формат не поддерживается
|
||||
notset = не установлено
|
||||
of = из
|
||||
OFF = ВЫКЛ
|
||||
OfficialSite = Официальный сайт
|
||||
ok = OK
|
||||
ON = ВКЛ
|
||||
Parentalcontrol = Родительский контроль
|
||||
Partition = Раздел
|
||||
Password = Пароль
|
||||
PasswordChanged = Пароль изменен
|
||||
Passwordhasbeenchanged = Пароль был изменен
|
||||
Passwordchange = Сменить пароль
|
||||
PowerofftheWii = Выключить Wii
|
||||
Plays = Воспроизводится
|
||||
Prev = Предыдущий
|
||||
PromptsButtons = Кнопки приглашения
|
||||
ReloadSD = Перечитать SD карту
|
||||
RenameGameonWBFS = Переименовать игры в WBFS
|
||||
Restart = Перезапустить
|
||||
Return = Вернуться
|
||||
ReturntoWii = Вернуться в меню Wii
|
||||
Right = Направо
|
||||
Rumble = Вибрация
|
||||
QuickBoot = Быстрая загрузка
|
||||
Save = Сохранить
|
||||
SaveFailed = Сохранение не удалось
|
||||
Specialthanksto = Отдельные благодарности
|
||||
For = за
|
||||
theUSBLoaderandreleasingthesourcecodethe = и публикацию исходного кода
|
||||
secondsleft = секунд осталось
|
||||
SelectthePartition = Выберите раздел,
|
||||
youwanttoformat = который вы хотите отформатировать
|
||||
settings = Установки
|
||||
Standard = Стандартный
|
||||
ShutdowntoIdle = Перевести в режим сна
|
||||
ShutdownSystem = Выключить систему
|
||||
Success = Успех:
|
||||
Successfullyinstalled = Успешно установлено:
|
||||
Successfullydeleted = Успешно удалено:
|
||||
SuccessfullySaved = Успешно сохранено
|
||||
SystemDefault = По умолчанию
|
||||
ThemePath = Путь к темам
|
||||
ThemepathChanged = путь к темам изменён
|
||||
Themepathchange = изменить путь к темам
|
||||
Titlestxtpath = путь к titles.txt
|
||||
Titlestxtpathchange = изменить путь к titles.txt
|
||||
TitlestxtpathChanged = путь к titles.txt изменён
|
||||
Try = Попытка
|
||||
Tooltips = Подсказки
|
||||
Timeleft = Осталось времени:
|
||||
Unlock = Разблокировать
|
||||
Unicodefix = фикс Unicode
|
||||
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 = Корейский
|
||||
Russian = Русский
|
|
@ -1,178 +0,0 @@
|
|||
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 存放路径
|
|
@ -1,194 +0,0 @@
|
|||
t3Covers = Carátulas 3D
|
||||
addToFavorite = Favoritos
|
||||
all = Alfabético
|
||||
AppLanguage = Idioma Aplic.
|
||||
Areyousure = ¿Estás seguro?
|
||||
AutoPatch = Auto-Parchear
|
||||
Back = Volver
|
||||
Backgroundmusic = Música de fondo
|
||||
Backgroundmusicpath = Ruta a Música cambiada
|
||||
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
|
||||
Close = Cerrar
|
||||
Continueinstallgame = ¿Continuar instalando juego?
|
||||
ConsoleDefault = Pred. Consola
|
||||
Consoleshouldbeunlockedtomodifyit = Debes desbloquear la consola para modificar.
|
||||
ConsoleLocked = Consola Bloqueada
|
||||
CorrectPassword = Contraseña Correcta
|
||||
Couldnotinitializenetwork = ¡No se pudo iniciar la Conexión!
|
||||
CouldnotopenDisc = No se puede 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
|
||||
count = Veces Jugadas
|
||||
Credits = Créditos
|
||||
DiscImages = Imágen Discos
|
||||
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 borrar?:
|
||||
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?
|
||||
Homemenu = Menú de Inicio
|
||||
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.
|
||||
InsertaSDCardtousethatoption = Insertar SD para usar esta opción
|
||||
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
|
||||
fave = Favoritos
|
||||
Filenotfound = Archivo no encontrado.
|
||||
filesnotfoundontheserver = ¡ Archivo(s) no encontrado(s) en el servidor!
|
||||
filesleft = archivo(s) restante(s)
|
||||
FlipX = Desplazamiento 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 = El juego ya estaba instalado:
|
||||
GameRegion = Región
|
||||
GameSize = Tamaño del Juego
|
||||
GoBack = Volver
|
||||
//GotoPage = Ir a Página
|
||||
HowtoShutdown = ¿Cómo Apagar?
|
||||
hour = Horas
|
||||
Keyboard = Teclado
|
||||
Language = Idioma
|
||||
Langchange = Cambio de Idioma
|
||||
Left = Izquierda
|
||||
LikeSysMenu = Como Menú Sist.
|
||||
LoadingincIOS = Cargando en cIOS249
|
||||
ListSort = Ordenar juegos
|
||||
Loadingstandardlanguage = Cargando idioma estandar.
|
||||
Loadingstandardmusic = Cargando música 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 faltan archivos!
|
||||
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!
|
||||
Notasupportedformat = Formato no soportado.
|
||||
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
|
||||
Plays = Veces Jugadas
|
||||
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 = Fallo al guardar
|
||||
Specialthanksto = Agradecimientos a
|
||||
For = por
|
||||
theUSBLoaderandreleasingthesourcecodethe = y liberar el código fuente
|
||||
secondsleft = segundos restantes
|
||||
SelectthePartition = Selecciona la partición
|
||||
youwanttoformat = ¿quieres formatear?
|
||||
settings = Configuración
|
||||
Setasbackgroundmusic = Poner como música de fondo
|
||||
Standard = Estandar
|
||||
ShutdowntoIdle = Apagar a Idle
|
||||
ShutdownSystem = Apagar Sistema
|
||||
Success = Conseguido:
|
||||
Successfullyinstalled = Instalado correctamente:
|
||||
Successfullydeleted = Borrado correctamente:
|
||||
SuccessfullySaved = Guardado correctamente
|
||||
SystemDefault = Pred. Sistema
|
||||
ThemePath = Ruta del Tema
|
||||
ThemepathChanged = Ruta de Tema cambiada
|
||||
Themepathchange = Cambio Ruta de Tema
|
||||
Titlestxtpath = Ruta Titles.txt
|
||||
TitlestxtpathChanged = Ruta a titles.txt cambiada.
|
||||
Titlestxtpathchange = Cambio ruta titles.txt
|
||||
Try = Intentar
|
||||
Tooltips = InfoBurbujas
|
||||
Timeleft = T. restante:
|
||||
Unlock = Desbloquear
|
||||
Unicodefix = Párche 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 al Dispositivo USB
|
||||
WidescreenFix = Ajuste panorámico
|
||||
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
|
||||
|
|
@ -1,178 +0,0 @@
|
|||
Specialthanksto = 特別感謝
|
||||
t3Coverst = 3D 封面
|
||||
AppLanguage = 語言設定
|
||||
Areyousure = 確定?
|
||||
AutoPatch = 自動修改
|
||||
Back = 返回
|
||||
BacktoHBCorWiiMenu = 返回 HBC 或 Wii 系統選單
|
||||
BacktoLoader = 返回 Loader
|
||||
BacktoWiiMenu = 返回 Wii 系統選單
|
||||
BootStandard = 啟動/標準
|
||||
Both = 全部顯示
|
||||
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 = 按鍵規則
|
||||
Force = 強制
|
||||
Youneedtoformatapartition = 必須格式化一個磁區
|
||||
Format = 格式化
|
||||
Formattingpleasewait = 格式化中, 請稍候...
|
||||
formated = 完成格式化!
|
||||
free =
|
||||
FreeSpace = 剩餘空間
|
||||
FullShutdown = 完全關機
|
||||
GameID = 遊戲代碼
|
||||
Games = 遊戲數量
|
||||
Gameisalreadyinstalled = 已安裝過遊戲:
|
||||
GameRegion = 遊戲區碼
|
||||
GameSize = 遊戲容量
|
||||
GoBack = 返回
|
||||
//GotoPage = 前往頁面
|
||||
HowtoShutdown = 如何關機?
|
||||
Keyboard = 鍵盤
|
||||
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 = 韓文
|
||||
Unicodefix = Unicode 修正
|
||||
Filenotfound = 找不到檔案
|
||||
Loadingstandardlanguage = 載入標準語言
|
||||
Titlestxtpath = Titles.txt 路徑
|
||||
TitlestxtpathChanged = titles.txt 路徑已變更
|
||||
Titlestxtpathchange = 變更 titles.txt 路徑
|
|
@ -1,172 +0,0 @@
|
|||
Specialthanksto = Özel tesekkürler :
|
||||
t3Covers = 3B Kapaklar
|
||||
AppLanguage = Program Lisani
|
||||
Areyousure = Emin misiniz?
|
||||
AutoPatch = OtoYama
|
||||
Back = Geri
|
||||
BacktoHBCorWiiMenu = HBC veya Wii Menüye dönüs
|
||||
BacktoLoader = Yükleyiciye dönüs
|
||||
BacktoWiiMenu = Wii Menüye dönüs
|
||||
BootStandard = Boot/Standard
|
||||
BothBoth = Ikisi de
|
||||
Cantcreatedirectory = Klasör olusturulamiyorF
|
||||
Cancel = Iptal
|
||||
Cantbeformated = Biçimlendirilemiyor
|
||||
Cantdelete = Silinemiyor
|
||||
ClicktoDownloadCovers = Kapaklari Indirmek için Tiklayin
|
||||
Clock = Saat
|
||||
Continueinstallgame = Oyunu kurmaya devam et?
|
||||
ConsoleDefault = Konsol Ayari
|
||||
Consoleshouldbeunlockedtomodifyit = Degistirmek için konsolun kilidini açmalisin.
|
||||
ConsoleLocked = Konsol Kilitli
|
||||
CorrectPassword = Dogru Sifre
|
||||
Couldnotinitializenetwork = Aga baglanilamiyor!
|
||||
CouldnotopenDisc = Disk açilamiyor
|
||||
CouldnotinitializeDIPmodule = DIP modülü baslatilamiyor!
|
||||
CoverDownload = Kapak Indirme
|
||||
CoverPath = Kapak Yolu
|
||||
CoverpathChanged = Kapak Yolu Degistir
|
||||
Coverpathchange = Kapak Yolunu Degistir
|
||||
Credits = Emegi Geçenler
|
||||
DiscImages = Disk Resimleri
|
||||
DiscimagePath = Disk Resimleri Yolu
|
||||
DiscpathChanged = Disk Resimleri Yolu Degistirildi
|
||||
Discpathchange = Disk Resimleri Yolunu Degistir
|
||||
DiscDefault = Disk Ayari
|
||||
Display = Görüntü
|
||||
Doyouwanttoformat = Formatlamak istiyor musunuz:
|
||||
Doyoureallywanttodelete = Gerçekten silmek istiyor musunuz:
|
||||
Doyouwanttoretryfor30secs = 30 saniye sonra denemek ister misiniz?
|
||||
Downloadingfile = Indirilen dosya:
|
||||
DownloadBoxartimage = Kutu resmini indirmek ister misiniz?
|
||||
Downloadfinished = Indirme tamamlandi
|
||||
Error = Hata !
|
||||
BOOTERROR = AÇILIS HATASI
|
||||
ErrorreadingDisc = Disk Okuma Hatasi
|
||||
ExitUSBISOLoader = USB Loader GX'dan çik?
|
||||
InitializingNetwork = Aga Baglaniliyor
|
||||
InsertDisk = Diski Takin
|
||||
InsertaWiiDisc = Wii Diski Takin!
|
||||
InsertaSDCardtodownloadimages = Resimleri indirebilmek için SD-Card takin.
|
||||
InsertaSDCardtosave = Kaydedebilmek için SD-Card takin.
|
||||
InstallRenameandDeleteareunlocked = USB Loader GX'in tüm özellikleri kilitli.
|
||||
Installerror = Yükleme Hatasi!
|
||||
Installagame = Oyun yükle
|
||||
Installinggame = Yüklenen oyun:
|
||||
Failedtoboot = Açilamadi:
|
||||
FailedtomountfrontSDcard = SD-card monte edilemedi
|
||||
FailedtosetUSB = USB ayarlamasi basarisiz oldu:
|
||||
Failedformating = Biçimlendirme basarisiz oldu
|
||||
filesnotfoundontheserver = dosyalar sunucuda bulunamadi!
|
||||
filesleft = dosya kaldi
|
||||
FlipX = Flip-X
|
||||
Force = Zorla
|
||||
Youneedtoformatapartition = Bir bölüm biçimlendirmeniz gerekiyor
|
||||
Format = Biçimlendir
|
||||
Formattingpleasewait = Biçimlendiriliyor, bekleyiniz...
|
||||
formated = biçimlendirildi!
|
||||
free = bos
|
||||
FreeSpace = Bos Yer
|
||||
FullShutdown = Tam Kapama
|
||||
GameID = Oyun ID
|
||||
Games = Oyunlar
|
||||
Gameisalreadyinstalled = Oyun zaten yüklü:
|
||||
GameRegion = Bölge
|
||||
GameSize = Oyun Boyutu
|
||||
GoBack = Geri Dön
|
||||
//GotoPage = Sayfaya Git
|
||||
HowtoShutdown = Nasil Kapansin?
|
||||
Language = Lisan
|
||||
Langchange = Lisan degistirme
|
||||
Left = Sol
|
||||
LikeSysMenu = Sistem Menüsü Gibi
|
||||
LoadingincIOS = cIOS249'dan yükleme
|
||||
Lock = Kilitle
|
||||
LockConsole = Konsolu Kilitle
|
||||
MP3Menu = MP3 Menüsü
|
||||
Missingfiles = Kayip dosyalar
|
||||
Networkiniterror = Ag baslatma hatasi
|
||||
Neither = Hiçbiri
|
||||
Next = Ileri
|
||||
No = Hayir
|
||||
Nofilemissing = Kayip dosya yok!
|
||||
NoHDDfound = HDD bulunamadi!
|
||||
NoSDcardinserted = SD-Card takili degil!
|
||||
Nopartitionsfound = Bölüm bulunamadi
|
||||
NoUSBDevice = USB Aygiti bulunamadi
|
||||
NoWBFSpartitionfound = WBFS bölümü bulunamadi
|
||||
NormalCovers = Normal Kapaklar
|
||||
Normal = Normal
|
||||
NotaWiiDisc = Wii Diski Degil
|
||||
NoUSBDevicefound = USB Aygiti bulunamadi
|
||||
Notenoughfreespace = Gerekli bos yer yok!
|
||||
notset = ayarlanmadi
|
||||
of = /
|
||||
OFF = KAPALI
|
||||
OfficialSite = Resmi Site
|
||||
ok = OK
|
||||
ON = AÇIK
|
||||
Parentalcontrol = Ebeveyn kontrolü
|
||||
Partition = Bölüm
|
||||
Password = Parola
|
||||
PasswordChanged = Parola degistirildi
|
||||
Passwordhasbeenchanged = Password has been changed
|
||||
Passwordchange = Password change
|
||||
PowerofftheWii = Wii'yi kapat
|
||||
Prev = Önceki
|
||||
PromptsButtons = Hiz ve Butonlar
|
||||
ReloadSD = SD-Card'i yeniden oku
|
||||
RenameGameonWBFS = WBFS'deki oyunu yeniden isimlendir
|
||||
Restart = Yeniden Baslat
|
||||
Return = Dönüs
|
||||
ReturntoWii = Wii Menü'ye Dönüs
|
||||
Right = Sag
|
||||
Rumble = Titresim
|
||||
QuickBoot = Hizli Açilis
|
||||
Save = Kaydet
|
||||
SaveFailed = Kaydetme Basarisiz
|
||||
Specialthanksto = Özel tesekkürler
|
||||
For = ,
|
||||
theUSBLoaderandreleasingthesourcecodethe = kaynak kodunu açtigi için
|
||||
secondsleft = saniye kaldi
|
||||
SelectthePartition = Bölümü Seçin
|
||||
youwanttoformat = biçimlendirmek istiyorsunuz
|
||||
settings = Ayarlar
|
||||
ShutdowntoIdle = Yari Kapat
|
||||
ShutdownSystem = Tam Kapat
|
||||
Success = Basarili:
|
||||
Successfullyinstalled = Basariyla yüklendi:
|
||||
Successfullydeleted = Basariyla silindi:
|
||||
SuccessfullySaved = Basariyla Kaydedildi
|
||||
SystemDefault = Sistem Ayari
|
||||
ThemePath = Tema Yolu
|
||||
ThemepathChanged = Tema Yolu Degisti
|
||||
Themepathchange = Tema yolunu degistir
|
||||
Try = Dene
|
||||
Tooltips = Yardimlar
|
||||
Timeleft = Kalan zaman:
|
||||
Unlock = Kilidi Kaldir
|
||||
Uninstall = Sil
|
||||
USBLoaderisprotected = USB Loader GX koruma altinda
|
||||
USBDevicenotfound = USB Aygiti bulunamadi
|
||||
VideoMode = Video Modu
|
||||
VIDTVPatch = VIDTV Yamasi
|
||||
Volume = Ses
|
||||
Waiting = Bekliyor...
|
||||
WaitingforUSBDevice = USB Aygiti için Bekleniyor
|
||||
WidescreenFix = Genisekran Çözümü
|
||||
WiiMenu = Wii Menü
|
||||
WrongPassword = Yanlis Parola
|
||||
Yes = Evet
|
||||
YoudonthavecIOS = cIOS222'ye sahip degilsiniz
|
||||
Japanese = Japonca
|
||||
German = Almanca
|
||||
English = Ingilizce
|
||||
French = Fransizca
|
||||
Spanish = Ispanyolca
|
||||
Italian = Italyanca
|
||||
Dutch = Hollandaca
|
||||
SChinese = Basitlestirilmis Çince
|
||||
TChinese = Geleneksel Çince
|
||||
Korean = Korece
|
||||
Turkish = Türkçe
|
306
Makefile
|
@ -1,155 +1,151 @@
|
|||
#---------------------------------------------------------------------------------
|
||||
# Clear the implicit built in rules
|
||||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
ifeq ($(strip $(DEVKITPPC)),)
|
||||
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
|
||||
endif
|
||||
|
||||
include $(DEVKITPPC)/wii_rules
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# TARGET is the name of the output
|
||||
# BUILD is the directory where object files & intermediate files will be placed
|
||||
# SOURCES is a list of directories containing source code
|
||||
# INCLUDES is a list of directories containing extra header files
|
||||
#---------------------------------------------------------------------------------
|
||||
TARGET := boot
|
||||
BUILD := build
|
||||
SOURCES := source source/libwiigui source/images source/fonts source/sounds source/libwbfs
|
||||
INCLUDES := source
|
||||
SVNDEV := -D'SVN_REV="$(shell svnversion -n ..)"'
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
CFLAGS = -g -O2 -Wall $(SVNDEV) $(MACHDEP) $(INCLUDE)
|
||||
CXXFLAGS = -save-temps -Xassembler -aln=$@.lst $(CFLAGS)
|
||||
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map,--section-start,.init=0x80a00100
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# any extra libraries we wish to link with the project
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBS := -lfat -lpngu -lpng -lmetaphrasis -lm -lz -lwiiuse -lmad -lbte -lasnd -logc -ltremor -lfreetype
|
||||
#---------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level containing
|
||||
# include and lib
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBDIRS := $(DEVKITPPC)/lib $(CURDIR)
|
||||
#---------------------------------------------------------------------------------
|
||||
# no real need to edit anything past this point unless you need to add additional
|
||||
# rules for different file extensions
|
||||
#---------------------------------------------------------------------------------
|
||||
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
export OUTPUT := $(CURDIR)/$(TARGETDIR)/$(TARGET)
|
||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# automatically build a list of object files for our project
|
||||
#---------------------------------------------------------------------------------
|
||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
||||
sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
|
||||
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
|
||||
TTFFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.ttf)))
|
||||
PNGFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.png)))
|
||||
OGGFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.ogg)))
|
||||
PCMFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.pcm)))
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# use CXX for linking C++ projects, CC for standard C
|
||||
#---------------------------------------------------------------------------------
|
||||
ifeq ($(strip $(CPPFILES)),)
|
||||
export LD := $(CC)
|
||||
else
|
||||
export LD := $(CXX)
|
||||
endif
|
||||
|
||||
export OFILES := $(addsuffix .o,$(BINFILES)) \
|
||||
$(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
|
||||
$(sFILES:.s=.o) $(SFILES:.S=.o) \
|
||||
$(TTFFILES:.ttf=.ttf.o) $(PNGFILES:.png=.png.o) \
|
||||
$(OGGFILES:.ogg=.ogg.o) $(PCMFILES:.pcm=.pcm.o)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# build a list of include paths
|
||||
#---------------------------------------------------------------------------------
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES),-I$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD) \
|
||||
-I$(LIBOGC_INC)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# build a list of library paths
|
||||
#---------------------------------------------------------------------------------
|
||||
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
|
||||
-L$(LIBOGC_LIB)
|
||||
|
||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
||||
.PHONY: $(BUILD) clean
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
$(BUILD):
|
||||
@[ -d $@ ] || mkdir -p $@
|
||||
@make --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
clean:
|
||||
@echo clean ...
|
||||
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
run:
|
||||
wiiload $(OUTPUT).dol
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
reload:
|
||||
wiiload -r $(OUTPUT).dol
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
release:
|
||||
make
|
||||
cp boot.dol ./hbc/boot.dol
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#---------------------------------------------------------------------------------
|
||||
$(OUTPUT).dol: $(OUTPUT).elf
|
||||
$(OUTPUT).elf: $(OFILES)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# This rule links in binary data with .ttf, .png, and .mp3 extensions
|
||||
#---------------------------------------------------------------------------------
|
||||
%.ttf.o : %.ttf
|
||||
@echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
%.png.o : %.png
|
||||
@echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
%.ogg.o : %.ogg
|
||||
@echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
%.pcm.o : %.pcm
|
||||
@echo $(notdir $<)
|
||||
$(bin2o)
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------
|
||||
#---------------------------------------------------------------------------------
|
||||
# Clear the implicit built in rules
|
||||
#---------------------------------------------------------------------------------
|
||||
.SUFFIXES:
|
||||
#---------------------------------------------------------------------------------
|
||||
ifeq ($(strip $(DEVKITPPC)),)
|
||||
$(error "Please set DEVKITPPC in your environment. export DEVKITPPC=<path to>devkitPPC")
|
||||
endif
|
||||
|
||||
include $(DEVKITPPC)/wii_rules
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# TARGET is the name of the output
|
||||
# BUILD is the directory where object files & intermediate files will be placed
|
||||
# SOURCES is a list of directories containing source code
|
||||
# INCLUDES is a list of directories containing extra header files
|
||||
#---------------------------------------------------------------------------------
|
||||
TARGET := boot
|
||||
BUILD := build
|
||||
SOURCES := source source/images
|
||||
DATA := data
|
||||
INCLUDES :=
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# options for code generation
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
CFLAGS = -g -O3 -Wall $(MACHDEP) $(INCLUDE)
|
||||
CXXFLAGS = $(CFLAGS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# move loader to another location - THANKS CREDIAR - 0x81330000 for HBC
|
||||
#---------------------------------------------------------------------------------
|
||||
#LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map -Wl,--section-start,.init=0x81000000
|
||||
LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map
|
||||
#LDFLAGS = -g $(MACHDEP) -Wl,-Map,$(notdir $@).map -Wl,--section-start,.init=0x80003f00
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# any extra libraries we wish to link with the project
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBS := -lfat -lntfs -lext2fs -lpng -lz -lbte -logc -lm
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# list of directories containing libraries, this must be the top level containing
|
||||
# include and lib
|
||||
#---------------------------------------------------------------------------------
|
||||
LIBDIRS := $(CURDIR)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# no real need to edit anything past this point unless you need to add additional
|
||||
# rules for different file extensions
|
||||
#---------------------------------------------------------------------------------
|
||||
ifneq ($(BUILD),$(notdir $(CURDIR)))
|
||||
#---------------------------------------------------------------------------------
|
||||
|
||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
||||
|
||||
export VPATH := $(foreach dir,$(SOURCES),$(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(DATA),$(CURDIR)/$(dir))
|
||||
|
||||
export DEPSDIR := $(CURDIR)/$(BUILD)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# automatically build a list of object files for our project
|
||||
#---------------------------------------------------------------------------------
|
||||
CFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.c)))
|
||||
CPPFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.cpp)))
|
||||
sFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.s)))
|
||||
SFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.S)))
|
||||
BINFILES := $(foreach dir,$(DATA),$(notdir $(wildcard $(dir)/*.*)))
|
||||
PNGFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.png)))
|
||||
DOLFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.dol)))
|
||||
ELFFILES := $(foreach dir,$(SOURCES),$(notdir $(wildcard $(dir)/*.elf)))
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# use CXX for linking C++ projects, CC for standard C
|
||||
#---------------------------------------------------------------------------------
|
||||
ifeq ($(strip $(CPPFILES)),)
|
||||
export LD := $(CC)
|
||||
else
|
||||
export LD := $(CXX)
|
||||
endif
|
||||
|
||||
export OFILES := $(CPPFILES:.cpp=.o) $(CFILES:.c=.o) \
|
||||
$(sFILES:.s=.o) $(SFILES:.S=.o) \
|
||||
$(PNGFILES:.png=.png.o) $(addsuffix .o,$(BINFILES))
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# build a list of include paths
|
||||
#---------------------------------------------------------------------------------
|
||||
export INCLUDE := $(foreach dir,$(INCLUDES), -iquote $(CURDIR)/$(dir)) \
|
||||
$(foreach dir,$(LIBDIRS),-I$(dir)/include) \
|
||||
-I$(CURDIR)/$(BUILD) \
|
||||
-I$(LIBOGC_INC) -I$(PORTLIBS)/include
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# build a list of library paths
|
||||
#---------------------------------------------------------------------------------
|
||||
export LIBPATHS := $(foreach dir,$(LIBDIRS),-L$(dir)/lib) \
|
||||
-L$(LIBOGC_LIB) -L$(PORTLIBS)/lib
|
||||
|
||||
export OUTPUT := $(CURDIR)/$(TARGET)
|
||||
.PHONY: $(BUILD) clean
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
$(BUILD):
|
||||
@[ -d $@ ] || mkdir -p $@
|
||||
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
clean:
|
||||
@echo clean ...
|
||||
@rm -fr $(BUILD) $(OUTPUT).elf $(OUTPUT).dol
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
run:
|
||||
wiiload $(TARGET).dol
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
pack:
|
||||
zip -9 loadMii.zip $(TARGET).dol ../icon.png ../meta.xml ../README
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
else
|
||||
|
||||
DEPENDS := $(OFILES:.o=.d)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# main targets
|
||||
#---------------------------------------------------------------------------------
|
||||
$(OUTPUT).dol: $(OUTPUT).elf
|
||||
$(OUTPUT).elf: $(OFILES)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
# This rule links in binary data with the .jpg extension
|
||||
#---------------------------------------------------------------------------------
|
||||
%.png.o : %.png
|
||||
@echo $(notdir $<)
|
||||
@bin2s -a 32 $< | $(AS) -o $(@)
|
||||
|
||||
%.bin.o : %.bin
|
||||
@echo $(notdir $<)
|
||||
@bin2s -a 32 $< | $(AS) -o $(@)
|
||||
|
||||
-include $(DEPENDS)
|
||||
|
||||
#---------------------------------------------------------------------------------
|
||||
endif
|
||||
#---------------------------------------------------------------------------------
|
||||
|
|
BIN
data/app_booter.bin
Normal file
1
forwarder.pnproj
Normal file
|
@ -0,0 +1 @@
|
|||
<Project name="Forwarder"><Folder name="source"><Folder name="images"><File path="source\images\background.png"></File><File path="source\images\background169.png"></File></Folder><File path="source\cfg.c"></File><File path="source\cfg.h"></File><File path="source\dolloader.c"></File><File path="source\dolloader.h"></File><File path="source\elfloader.c"></File><File path="source\elfloader.h"></File><File path="source\elf_abi.h"></File><File path="source\fatmounter.c"></File><File path="source\fatmounter.h"></File><File path="source\filelist.h"></File><File path="source\main.cpp"></File><File path="source\video.cpp"></File><File path="source\video.h"></File></Folder><File path="Makefile"></File></Project>
|
1
forwarder.pnps
Normal file
|
@ -0,0 +1 @@
|
|||
<pd><ViewState><e p="Forwarder" x="true"></e><e p="Forwarder\source" x="false"></e></ViewState></pd>
|
1
gui.pnps
|
@ -1 +0,0 @@
|
|||
<pd><ViewState><e p="gui" x="true"></e><e p="gui\source" x="true"></e><e p="gui\source\fonts" x="false"></e><e p="gui\source\images" x="false"></e><e p="gui\source\libwbfs" x="false"></e><e p="gui\source\libwiigui" x="true"></e><e p="gui\source\sounds" x="false"></e></ViewState></pd>
|
3161
source/CH2Unicode.c
|
@ -1,22 +0,0 @@
|
|||
|
||||
#ifndef CH2UNICODE_H_
|
||||
#define CH2UNICODE_H_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int CH2Unicode(char *szFrom,wchar_t *wszTo); //,int ctype);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,791 +0,0 @@
|
|||
/*
|
||||
* FreeTypeGX is a wrapper class for libFreeType which renders a compiled
|
||||
* FreeType parsable font into a GX texture for Wii homebrew development.
|
||||
* Copyright (C) 2008 Armin Tamzarian
|
||||
* Modified by Tantric, 2009
|
||||
*
|
||||
* This file is part of FreeTypeGX.
|
||||
*
|
||||
* FreeTypeGX is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* FreeTypeGX 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with FreeTypeGX. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "FreeTypeGX.h"
|
||||
#include "CH2Unicode.h"
|
||||
#include "GB2Unicode.h"
|
||||
#include "main.h"
|
||||
#include "cfg.h"
|
||||
|
||||
/*! \struct ftgxCharData_
|
||||
*
|
||||
* Font face character glyph relevant data structure.
|
||||
*/
|
||||
typedef struct ftgxCharData_ {
|
||||
int16_t renderOffsetX; /**< Texture X axis bearing offset. */
|
||||
uint16_t glyphAdvanceX; /**< Character glyph X coordinate advance in pixels. */
|
||||
uint16_t glyphIndex; /**< Charachter glyph index in the font face. */
|
||||
|
||||
uint16_t textureWidth; /**< Texture width in pixels/bytes. */
|
||||
uint16_t textureHeight; /**< Texture glyph height in pixels/bytes. */
|
||||
|
||||
int16_t renderOffsetY; /**< Texture Y axis bearing offset. */
|
||||
int16_t renderOffsetMax; /**< Texture Y axis bearing maximum value. */
|
||||
int16_t renderOffsetMin; /**< Texture Y axis bearing minimum value. */
|
||||
|
||||
uint32_t* glyphDataTexture; /**< Glyph texture bitmap data buffer. */
|
||||
} ftgxCharData;
|
||||
|
||||
/*! \struct ftgxDataOffset_
|
||||
*
|
||||
* Offset structure which hold both a maximum and minimum value.
|
||||
*/
|
||||
typedef struct ftgxDataOffset_ {
|
||||
int16_t ascender; /**< Maximum data offset. */
|
||||
int16_t descender; /**< Minimum data offset. */
|
||||
int16_t max; /**< Maximum data offset. */
|
||||
int16_t min; /**< Minimum data offset. */
|
||||
} ftgxDataOffset;
|
||||
|
||||
|
||||
/**
|
||||
* Default constructor for the FreeTypeGX class.
|
||||
*
|
||||
* @param textureFormat Optional format (GX_TF_*) of the texture as defined by the libogc gx.h header file. If not specified default value is GX_TF_RGBA8.
|
||||
* @param vertexIndex Optional vertex format index (GX_VTXFMT*) of the glyph textures as defined by the libogc gx.h header file. If not specified default value is GX_VTXFMT1.
|
||||
*/
|
||||
FreeTypeGX::FreeTypeGX(uint8_t textureFormat, uint8_t vertexIndex) {
|
||||
FT_Init_FreeType(&this->ftLibrary);
|
||||
|
||||
this->textureFormat = textureFormat;
|
||||
this->setVertexFormat(vertexIndex);
|
||||
this->setCompatibilityMode(FTGX_COMPATIBILITY_NONE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Default destructor for the FreeTypeGX class.
|
||||
*/
|
||||
FreeTypeGX::~FreeTypeGX() {
|
||||
this->unloadFont();
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert a short char sctring to a wide char string.
|
||||
*
|
||||
* This routine converts a supplied shot character string into a wide character string.
|
||||
* Note that it is the user's responsibility to clear the returned buffer once it is no longer needed.
|
||||
*
|
||||
* @param strChar Character string to be converted.
|
||||
* @return Wide character representation of supplied character string.
|
||||
*/
|
||||
wchar_t* FreeTypeGX::charToWideChar(char* strChar) {
|
||||
wchar_t *strWChar;
|
||||
strWChar = new wchar_t[strlen(strChar) + 1];
|
||||
|
||||
if(Settings.unicodefix == 1) {
|
||||
CH2Unicode(strChar, strWChar);
|
||||
} else if(Settings.unicodefix == 2) {
|
||||
ConverGB2Unicode(strChar, strWChar);
|
||||
} else {
|
||||
char *tempSrc = strChar;
|
||||
wchar_t *tempDest = strWChar;
|
||||
while((*tempDest++ = *tempSrc++));
|
||||
}
|
||||
|
||||
|
||||
return strWChar;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* \overload
|
||||
*/
|
||||
wchar_t* FreeTypeGX::charToWideChar(const char* strChar) {
|
||||
return FreeTypeGX::charToWideChar((char*) strChar);
|
||||
}
|
||||
|
||||
/**
|
||||
* Setup the vertex attribute formats for the glyph textures.
|
||||
*
|
||||
* This function sets up the vertex format for the glyph texture on the specified vertex format index.
|
||||
* Note that this function should not need to be called except if the vertex formats are cleared or the specified
|
||||
* vertex format index is modified.
|
||||
*
|
||||
* @param vertexIndex Vertex format index (GX_VTXFMT*) of the glyph textures as defined by the libogc gx.h header file.
|
||||
*/
|
||||
void FreeTypeGX::setVertexFormat(uint8_t vertexIndex) {
|
||||
this->vertexIndex = vertexIndex;
|
||||
|
||||
GX_SetVtxAttrFmt(this->vertexIndex, GX_VA_POS, GX_POS_XY, GX_S16, 0);
|
||||
GX_SetVtxAttrFmt(this->vertexIndex, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
|
||||
GX_SetVtxAttrFmt(this->vertexIndex, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the TEV and VTX rendering compatibility requirements for the class.
|
||||
*
|
||||
* This sets up the default TEV opertion and VTX descriptions rendering values for the class. This ensures that FreeTypeGX
|
||||
* can remain compatible with external liraries or project code. Certain external libraries or code by design or lack of
|
||||
* foresight assume that the TEV opertion and VTX descriptions values will remain constant or are always returned to a
|
||||
* certain value. This will enable compatibility with those libraries and any other code which cannot or will not be changed.
|
||||
*
|
||||
* @param compatibilityMode Compatibility descritor (FTGX_COMPATIBILITY_*) as defined in FreeTypeGX.h
|
||||
*/
|
||||
void FreeTypeGX::setCompatibilityMode(uint32_t compatibilityMode) {
|
||||
this->compatibilityMode = compatibilityMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the TEV operation and VTX descriptor values after texture rendering it complete.
|
||||
*
|
||||
* This function calls the GX_SetTevOp and GX_SetVtxDesc functions with the compatibility parameters specified
|
||||
* in setCompatibilityMode.
|
||||
*/
|
||||
void FreeTypeGX::setDefaultMode() {
|
||||
if(this->compatibilityMode) {
|
||||
switch(this->compatibilityMode & 0x00FF) {
|
||||
case FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_MODULATE:
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_MODULATE);
|
||||
break;
|
||||
case FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_DECAL:
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_DECAL);
|
||||
break;
|
||||
case FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_BLEND:
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_BLEND);
|
||||
break;
|
||||
case FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_REPLACE:
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_REPLACE);
|
||||
break;
|
||||
case FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_PASSCLR:
|
||||
GX_SetTevOp(GX_TEVSTAGE0, GX_PASSCLR);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch(this->compatibilityMode & 0xFF00) {
|
||||
case FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_NONE:
|
||||
GX_SetVtxDesc(GX_VA_TEX0, GX_NONE);
|
||||
break;
|
||||
case FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_DIRECT:
|
||||
GX_SetVtxDesc(GX_VA_TEX0, GX_DIRECT);
|
||||
break;
|
||||
case FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_INDEX8:
|
||||
GX_SetVtxDesc(GX_VA_TEX0, GX_INDEX8);
|
||||
break;
|
||||
case FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_INDEX16:
|
||||
GX_SetVtxDesc(GX_VA_TEX0, GX_INDEX16);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads and processes a specified true type font buffer to a specific point size.
|
||||
*
|
||||
* This routine takes a precompiled true type font buffer and loads the necessary processed data into memory. This routine should be called before drawText will succeed.
|
||||
*
|
||||
* @param fontBuffer A pointer in memory to a precompiled true type font buffer.
|
||||
* @param bufferSize Size of the true type font buffer in bytes.
|
||||
* @param pointSize The desired point size this wrapper's configured font face.
|
||||
* @param cacheAll Optional flag to specify if all font characters should be cached when the class object is created. If specified as false the characters only become cached the first time they are used. If not specified default value is false.
|
||||
*/
|
||||
uint16_t FreeTypeGX::loadFont(uint8_t* fontBuffer, FT_Long bufferSize, FT_UInt pointSize, bool cacheAll) {
|
||||
this->unloadFont();
|
||||
this->ftPointSize = pointSize;
|
||||
|
||||
FT_New_Memory_Face(this->ftLibrary, (FT_Byte *)fontBuffer, bufferSize, 0, &this->ftFace);
|
||||
|
||||
if(this->ftPointSize > 0)
|
||||
FT_Set_Pixel_Sizes(this->ftFace, 0, this->ftPointSize);
|
||||
|
||||
this->ftSlot = this->ftFace->glyph;
|
||||
this->ftKerningEnabled = FT_HAS_KERNING(this->ftFace);
|
||||
|
||||
if (cacheAll) {
|
||||
return this->cacheGlyphDataComplete();
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* \overload
|
||||
*/
|
||||
uint16_t FreeTypeGX::loadFont(const uint8_t* fontBuffer, FT_Long bufferSize, FT_UInt pointSize, bool cacheAll) {
|
||||
return this->loadFont((uint8_t *)fontBuffer, bufferSize, pointSize, cacheAll);
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all loaded font glyph data.
|
||||
*
|
||||
* This routine clears all members of the font map structure and frees all allocated memory back to the system.
|
||||
*/
|
||||
void FreeTypeGX::unloadFont() {
|
||||
if(this->fontData.size() == 0)
|
||||
return;
|
||||
|
||||
GX_DrawDone();
|
||||
GX_Flush();
|
||||
|
||||
for( std::map<wchar_t, ftgxCharData>::iterator i = this->fontData.begin(); i != this->fontData.end(); i++) {
|
||||
free(i->second.glyphDataTexture);
|
||||
}
|
||||
|
||||
this->fontData.clear();
|
||||
}
|
||||
|
||||
void FreeTypeGX::changeSize(FT_UInt vPointSize, FT_UInt hPointSize/*=0*/) {
|
||||
this->unloadFont();
|
||||
this->ftPointSize = vPointSize;
|
||||
FT_Set_Pixel_Sizes(this->ftFace, hPointSize, this->ftPointSize);
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjusts the texture data buffer to necessary width for a given texture format.
|
||||
*
|
||||
* This routine determines adjusts the given texture width into the required width to hold the necessary texture data for proper alignment.
|
||||
*
|
||||
* @param textureWidth The initial guess for the texture width.
|
||||
* @param textureFormat The texture format to which the data is to be converted.
|
||||
* @return The correctly adjusted texture width.
|
||||
*/
|
||||
uint16_t FreeTypeGX::adjustTextureWidth(uint16_t textureWidth, uint8_t textureFormat) {
|
||||
uint16_t alignment;
|
||||
|
||||
switch(textureFormat) {
|
||||
case GX_TF_I4: /* 8x8 Tiles - 4-bit Intensity */
|
||||
case GX_TF_I8: /* 8x4 Tiles - 8-bit Intensity */
|
||||
case GX_TF_IA4: /* 8x4 Tiles - 4-bit Intensity, , 4-bit Alpha */
|
||||
alignment = 8;
|
||||
break;
|
||||
|
||||
case GX_TF_IA8: /* 4x4 Tiles - 8-bit Intensity, 8-bit Alpha */
|
||||
case GX_TF_RGB565: /* 4x4 Tiles - RGB565 Format */
|
||||
case GX_TF_RGB5A3: /* 4x4 Tiles - RGB5A3 Format */
|
||||
case GX_TF_RGBA8: /* 4x4 Tiles - RGBA8 Dual Cache Line Format */
|
||||
default:
|
||||
alignment = 4;
|
||||
break;
|
||||
}
|
||||
return textureWidth % alignment == 0 ? textureWidth : alignment + textureWidth - (textureWidth % alignment);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Adjusts the texture data buffer to necessary height for a given texture format.
|
||||
*
|
||||
* This routine determines adjusts the given texture height into the required height to hold the necessary texture data for proper alignment.
|
||||
*
|
||||
* @param textureHeight The initial guess for the texture height.
|
||||
* @param textureFormat The texture format to which the data is to be converted.
|
||||
* @return The correctly adjusted texture height.
|
||||
*/
|
||||
uint16_t FreeTypeGX::adjustTextureHeight(uint16_t textureHeight, uint8_t textureFormat) {
|
||||
uint16_t alignment;
|
||||
|
||||
switch(textureFormat) {
|
||||
case GX_TF_I4: /* 8x8 Tiles - 4-bit Intensity */
|
||||
alignment = 8;
|
||||
break;
|
||||
|
||||
case GX_TF_I8: /* 8x4 Tiles - 8-bit Intensity */
|
||||
case GX_TF_IA4: /* 8x4 Tiles - 4-bit Intensity, , 4-bit Alpha */
|
||||
case GX_TF_IA8: /* 4x4 Tiles - 8-bit Intensity, 8-bit Alpha */
|
||||
case GX_TF_RGB565: /* 4x4 Tiles - RGB565 Format */
|
||||
case GX_TF_RGB5A3: /* 4x4 Tiles - RGB5A3 Format */
|
||||
case GX_TF_RGBA8: /* 4x4 Tiles - RGBA8 Dual Cache Line Format */
|
||||
default:
|
||||
alignment = 4;
|
||||
break;
|
||||
}
|
||||
return textureHeight % alignment == 0 ? textureHeight : alignment + textureHeight - (textureHeight % alignment);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Caches the given font glyph in the instance font texture buffer.
|
||||
*
|
||||
* This routine renders and stores the requested glyph's bitmap and relevant information into its own quickly addressible
|
||||
* structure within an instance-specific map.
|
||||
*
|
||||
* @param charCode The requested glyph's character code.
|
||||
* @return A pointer to the allocated font structure.
|
||||
*/
|
||||
ftgxCharData *FreeTypeGX::cacheGlyphData(wchar_t charCode) {
|
||||
FT_UInt gIndex;
|
||||
uint16_t textureWidth = 0, textureHeight = 0;
|
||||
|
||||
gIndex = FT_Get_Char_Index( this->ftFace, charCode );
|
||||
if (!FT_Load_Glyph(this->ftFace, gIndex, FT_LOAD_DEFAULT )) {
|
||||
FT_Render_Glyph( this->ftSlot, FT_RENDER_MODE_NORMAL );
|
||||
|
||||
if(this->ftSlot->format == FT_GLYPH_FORMAT_BITMAP) {
|
||||
FT_Bitmap *glyphBitmap = &this->ftSlot->bitmap;
|
||||
|
||||
textureWidth = adjustTextureWidth(glyphBitmap->width, this->textureFormat);
|
||||
textureHeight = adjustTextureHeight(glyphBitmap->rows, this->textureFormat);
|
||||
|
||||
this->fontData[charCode] = (ftgxCharData){
|
||||
this->ftSlot->bitmap_left,
|
||||
this->ftSlot->advance.x >> 6,
|
||||
gIndex,
|
||||
textureWidth,
|
||||
textureHeight,
|
||||
this->ftSlot->bitmap_top,
|
||||
this->ftSlot->bitmap_top,
|
||||
glyphBitmap->rows - this->ftSlot->bitmap_top,
|
||||
NULL
|
||||
};
|
||||
this->loadGlyphData(glyphBitmap, &this->fontData[charCode]);
|
||||
|
||||
return &this->fontData[charCode];
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Locates each character in this wrapper's configured font face and proccess them.
|
||||
*
|
||||
* This routine locates each character in the configured font face and renders the glyph's bitmap.
|
||||
* Each bitmap and relevant information is loaded into its own quickly addressible structure within an instance-specific map.
|
||||
*/
|
||||
uint16_t FreeTypeGX::cacheGlyphDataComplete() {
|
||||
uint16_t i = 0;
|
||||
FT_UInt gIndex;
|
||||
FT_ULong charCode = FT_Get_First_Char( this->ftFace, &gIndex );
|
||||
while ( gIndex != 0 ) {
|
||||
|
||||
if(this->cacheGlyphData(charCode) != NULL) {
|
||||
i++;
|
||||
}
|
||||
|
||||
charCode = FT_Get_Next_Char( this->ftFace, charCode, &gIndex );
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads the rendered bitmap into the relevant structure's data buffer.
|
||||
*
|
||||
* This routine does a simple byte-wise copy of the glyph's rendered 8-bit grayscale bitmap into the structure's buffer.
|
||||
* Each byte is converted from the bitmap's intensity value into the a uint32_t RGBA value.
|
||||
*
|
||||
* @param bmp A pointer to the most recently rendered glyph's bitmap.
|
||||
* @param charData A pointer to an allocated ftgxCharData structure whose data represent that of the last rendered glyph.
|
||||
*/
|
||||
void FreeTypeGX::loadGlyphData(FT_Bitmap *bmp, ftgxCharData *charData) {
|
||||
|
||||
uint32_t *glyphData = (uint32_t *)memalign(32, charData->textureWidth * charData->textureHeight * 4);
|
||||
memset(glyphData, 0x00, charData->textureWidth * charData->textureHeight * 4);
|
||||
|
||||
for (uint16_t imagePosY = 0; imagePosY < bmp->rows; imagePosY++) {
|
||||
for (uint16_t imagePosX = 0; imagePosX < bmp->width; imagePosX++) {
|
||||
uint32_t pixel = (uint32_t) bmp->buffer[imagePosY * bmp->width + imagePosX];
|
||||
glyphData[imagePosY * charData->textureWidth + imagePosX] = 0x00000000 | (pixel << 24) | (pixel << 16) | (pixel << 8) | pixel;
|
||||
}
|
||||
}
|
||||
|
||||
switch(this->textureFormat) {
|
||||
case GX_TF_I4:
|
||||
charData->glyphDataTexture = Metaphrasis::convertBufferToI4(glyphData, charData->textureWidth, charData->textureHeight);
|
||||
break;
|
||||
case GX_TF_I8:
|
||||
charData->glyphDataTexture = Metaphrasis::convertBufferToI8(glyphData, charData->textureWidth, charData->textureHeight);
|
||||
break;
|
||||
case GX_TF_IA4:
|
||||
charData->glyphDataTexture = Metaphrasis::convertBufferToIA4(glyphData, charData->textureWidth, charData->textureHeight);
|
||||
break;
|
||||
case GX_TF_IA8:
|
||||
charData->glyphDataTexture = Metaphrasis::convertBufferToIA8(glyphData, charData->textureWidth, charData->textureHeight);
|
||||
break;
|
||||
case GX_TF_RGB565:
|
||||
charData->glyphDataTexture = Metaphrasis::convertBufferToRGB565(glyphData, charData->textureWidth, charData->textureHeight);
|
||||
break;
|
||||
case GX_TF_RGB5A3:
|
||||
charData->glyphDataTexture = Metaphrasis::convertBufferToRGB5A3(glyphData, charData->textureWidth, charData->textureHeight);
|
||||
break;
|
||||
case GX_TF_RGBA8:
|
||||
default:
|
||||
charData->glyphDataTexture = Metaphrasis::convertBufferToRGBA8(glyphData, charData->textureWidth, charData->textureHeight);
|
||||
break;
|
||||
}
|
||||
|
||||
free(glyphData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the x offset of the rendered string.
|
||||
*
|
||||
* This routine calculates the x offset of the rendered string based off of a supplied positional format parameter.
|
||||
*
|
||||
* @param width Current pixel width of the string.
|
||||
* @param format Positional format of the string.
|
||||
*/
|
||||
int16_t FreeTypeGX::getStyleOffsetWidth(uint16_t width, uint16_t format) {
|
||||
|
||||
switch(format & FTGX_JUSTIFY_MASK)
|
||||
{
|
||||
case FTGX_JUSTIFY_LEFT:
|
||||
return 0;
|
||||
|
||||
default:
|
||||
case FTGX_JUSTIFY_CENTER:
|
||||
return -(width >> 1);
|
||||
|
||||
case FTGX_JUSTIFY_RIGHT:
|
||||
return -width;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the y offset of the rendered string.
|
||||
*
|
||||
* This routine calculates the y offset of the rendered string based off of a supplied positional format parameter.
|
||||
*
|
||||
* @param offset Current pixel offset data of the string.
|
||||
* @param format Positional format of the string.
|
||||
*/
|
||||
int16_t FreeTypeGX::getStyleOffsetHeight(ftgxDataOffset *offset, uint16_t format)
|
||||
{
|
||||
switch(format & FTGX_ALIGN_MASK)
|
||||
{
|
||||
case FTGX_ALIGN_TOP:
|
||||
return offset->ascender;
|
||||
|
||||
default:
|
||||
case FTGX_ALIGN_MIDDLE:
|
||||
return (offset->ascender + offset->descender + 1) >> 1;
|
||||
|
||||
case FTGX_ALIGN_BOTTOM:
|
||||
return offset->descender;
|
||||
|
||||
case FTGX_ALIGN_BASELINE:
|
||||
return 0;
|
||||
|
||||
case FTGX_ALIGN_GLYPH_TOP:
|
||||
return offset->max;
|
||||
|
||||
case FTGX_ALIGN_GLYPH_MIDDLE:
|
||||
return (offset->max + offset->min + 1) >> 1;
|
||||
|
||||
case FTGX_ALIGN_GLYPH_BOTTOM:
|
||||
return offset->min;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the supplied text string and prints the results at the specified coordinates.
|
||||
*
|
||||
* This routine processes each character of the supplied text string, loads the relevant preprocessed bitmap buffer,
|
||||
* a texture from said buffer, and loads the resultant texture into the EFB.
|
||||
*
|
||||
* @param x Screen X coordinate at which to output the text.
|
||||
* @param y Screen Y coordinate at which to output the text. Note that this value corresponds to the text string origin and not the top or bottom of the glyphs.
|
||||
* @param text NULL terminated string to output.
|
||||
* @param color Optional color to apply to the text characters. If not specified default value is ftgxWhite: (GXColor){0xff, 0xff, 0xff, 0xff}
|
||||
* @param textStyle Flags which specify any styling which should be applied to the rendered string.
|
||||
* @return The number of characters printed.
|
||||
*/
|
||||
uint16_t FreeTypeGX::drawText(int16_t x, int16_t y, wchar_t *text, GXColor color, uint16_t textStyle) {
|
||||
uint16_t strLength = wcslen(text);
|
||||
uint16_t x_pos = x, printed = 0;
|
||||
uint16_t x_offset = 0, y_offset = 0;
|
||||
GXTexObj glyphTexture;
|
||||
FT_Vector pairDelta;
|
||||
ftgxDataOffset offset;
|
||||
|
||||
if(textStyle & FTGX_JUSTIFY_MASK) {
|
||||
x_offset = this->getStyleOffsetWidth(this->getWidth(text), textStyle);
|
||||
}
|
||||
if(textStyle & FTGX_ALIGN_MASK) {
|
||||
y_offset = this->getStyleOffsetHeight(this->getOffset(text, &offset), textStyle);
|
||||
}
|
||||
|
||||
for (uint16_t i = 0; i < strLength; i++) {
|
||||
|
||||
ftgxCharData* glyphData = NULL;
|
||||
if( this->fontData.find(text[i]) != this->fontData.end() ) {
|
||||
glyphData = &this->fontData[text[i]];
|
||||
}
|
||||
else {
|
||||
glyphData = this->cacheGlyphData(text[i]);
|
||||
}
|
||||
|
||||
if(glyphData != NULL) {
|
||||
|
||||
if(this->ftKerningEnabled && i) {
|
||||
FT_Get_Kerning( this->ftFace, this->fontData[text[i - 1]].glyphIndex, glyphData->glyphIndex, FT_KERNING_DEFAULT, &pairDelta );
|
||||
x_pos += pairDelta.x >> 6;
|
||||
}
|
||||
|
||||
GX_InitTexObj(&glyphTexture, glyphData->glyphDataTexture, glyphData->textureWidth, glyphData->textureHeight, this->textureFormat, GX_CLAMP, GX_CLAMP, GX_FALSE);
|
||||
this->copyTextureToFramebuffer(&glyphTexture, glyphData->textureWidth, glyphData->textureHeight, x_pos + glyphData->renderOffsetX + x_offset, y - glyphData->renderOffsetY + y_offset, color);
|
||||
|
||||
x_pos += glyphData->glyphAdvanceX;
|
||||
printed++;
|
||||
}
|
||||
}
|
||||
|
||||
if(textStyle & FTGX_STYLE_MASK) {
|
||||
this->drawTextFeature(x + x_offset, y + y_offset, this->getWidth(text), this->getOffset(text, &offset), textStyle, color);
|
||||
}
|
||||
|
||||
return printed;
|
||||
}
|
||||
|
||||
/**
|
||||
* \overload
|
||||
*/
|
||||
uint16_t FreeTypeGX::drawText(int16_t x, int16_t y, wchar_t const *text, GXColor color, uint16_t textStyle) {
|
||||
return this->drawText(x, y, (wchar_t *)text, color, textStyle);
|
||||
}
|
||||
|
||||
void FreeTypeGX::drawTextFeature(int16_t x, int16_t y, uint16_t width, ftgxDataOffset *offsetData, uint16_t format, GXColor color) {
|
||||
uint16_t featureHeight = this->ftPointSize >> 4 > 0 ? this->ftPointSize >> 4 : 1;
|
||||
|
||||
if (format & FTGX_STYLE_UNDERLINE ) {
|
||||
switch(format & FTGX_ALIGN_MASK) {
|
||||
/*
|
||||
case FTGX_ALIGN_TOP:
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y + offsetData->max + 1, color);
|
||||
break;
|
||||
case FTGX_ALIGN_MIDDLE:
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y + ((offsetData->max - offsetData->min + 1) >> 1), color);
|
||||
break;
|
||||
case FTGX_ALIGN_BOTTOM:
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y - offsetData->min, color);
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y + 1, color);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (format & FTGX_STYLE_STRIKE ) {
|
||||
switch(format & FTGX_ALIGN_MASK) {
|
||||
/*
|
||||
case FTGX_ALIGN_TOP:
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y + ((offsetData->max - offsetData->min + 1) >> 1), color);
|
||||
break;
|
||||
case FTGX_ALIGN_MIDDLE:
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y, color);
|
||||
break;
|
||||
case FTGX_ALIGN_BOTTOM:
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y - ((offsetData->max + offsetData->min) >> 1), color);
|
||||
break;
|
||||
*/
|
||||
default:
|
||||
// this->copyFeatureToFramebuffer(width, featureHeight, x, y - ((offsetData->max - offsetData->min) >> 1), color);
|
||||
this->copyFeatureToFramebuffer(width, featureHeight, x, y - ((offsetData->max) >> 1), color);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the supplied string and return the width of the string in pixels.
|
||||
*
|
||||
* This routine processes each character of the supplied text string and calculates the width of the entire string.
|
||||
* Note that if precaching of the entire font set is not enabled any uncached glyph will be cached after the call to this function.
|
||||
*
|
||||
* @param text NULL terminated string to calculate.
|
||||
* @return The width of the text string in pixels.
|
||||
*/
|
||||
uint16_t FreeTypeGX::getWidth(wchar_t *text) {
|
||||
uint16_t strLength = wcslen(text);
|
||||
uint16_t strWidth = 0;
|
||||
FT_Vector pairDelta;
|
||||
|
||||
for (uint16_t i = 0; i < strLength; i++) {
|
||||
|
||||
ftgxCharData* glyphData = NULL;
|
||||
if( this->fontData.find(text[i]) != this->fontData.end() ) {
|
||||
glyphData = &this->fontData[text[i]];
|
||||
}
|
||||
else {
|
||||
glyphData = this->cacheGlyphData(text[i]);
|
||||
}
|
||||
|
||||
if(glyphData != NULL) {
|
||||
if(this->ftKerningEnabled && (i > 0)) {
|
||||
FT_Get_Kerning( this->ftFace, this->fontData[text[i - 1]].glyphIndex, glyphData->glyphIndex, FT_KERNING_DEFAULT, &pairDelta );
|
||||
strWidth += pairDelta.x >> 6;
|
||||
}
|
||||
|
||||
strWidth += glyphData->glyphAdvanceX;
|
||||
}
|
||||
}
|
||||
|
||||
return strWidth;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* \overload
|
||||
*/
|
||||
uint16_t FreeTypeGX::getWidth(wchar_t const *text) {
|
||||
return this->getWidth((wchar_t *)text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes the supplied string and return the height of the string in pixels.
|
||||
*
|
||||
* This routine processes each character of the supplied text string and calculates the height of the entire string.
|
||||
* Note that if precaching of the entire font set is not enabled any uncached glyph will be cached after the call to this function.
|
||||
*
|
||||
* @param text NULL terminated string to calculate.
|
||||
* @return The height of the text string in pixels.
|
||||
*/
|
||||
uint16_t FreeTypeGX::getHeight(wchar_t *text) {
|
||||
ftgxDataOffset offset;
|
||||
this->getOffset(text, &offset);
|
||||
|
||||
return offset.max - offset.min;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* \overload
|
||||
*/
|
||||
uint16_t FreeTypeGX::getHeight(wchar_t const *text) {
|
||||
return this->getHeight((wchar_t *)text);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the maximum offset above and minimum offset below the font origin line.
|
||||
*
|
||||
* This function calculates the maximum pixel height above the font origin line and the minimum
|
||||
* pixel height below the font origin line and returns the values in an addressible structure.
|
||||
*
|
||||
* @param text NULL terminated string to calculate.
|
||||
* @param offset returns the max and min values above and below the font origin line
|
||||
*
|
||||
*/
|
||||
ftgxDataOffset* FreeTypeGX::getOffset(wchar_t *text, ftgxDataOffset* offset) {
|
||||
uint16_t strLength = wcslen(text);
|
||||
int16_t strMax = 0, strMin = 9999;
|
||||
|
||||
for (uint16_t i = 0; i < strLength; i++) {
|
||||
|
||||
ftgxCharData* glyphData = NULL;
|
||||
if( this->fontData.find(text[i]) != this->fontData.end() ) {
|
||||
glyphData = &this->fontData[text[i]];
|
||||
}
|
||||
else {
|
||||
glyphData = this->cacheGlyphData(text[i]);
|
||||
}
|
||||
|
||||
if(glyphData != NULL) {
|
||||
strMax = glyphData->renderOffsetMax > strMax ? glyphData->renderOffsetMax : strMax;
|
||||
strMin = glyphData->renderOffsetMin < strMin ? glyphData->renderOffsetMin : strMin;
|
||||
}
|
||||
}
|
||||
offset->ascender = this->ftFace->size->metrics.ascender>>6;
|
||||
offset->descender = this->ftFace->size->metrics.descender>>6;
|
||||
offset->max = strMax;
|
||||
offset->min = strMin;
|
||||
return offset;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* \overload
|
||||
*/
|
||||
ftgxDataOffset* FreeTypeGX::getOffset(wchar_t const *text, ftgxDataOffset* offset) {
|
||||
return this->getOffset(text, offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* Copies the supplied texture quad to the EFB.
|
||||
*
|
||||
* This routine uses the in-built GX quad builder functions to define the texture bounds and location on the EFB target.
|
||||
*
|
||||
* @param texObj A pointer to the glyph's initialized texture object.
|
||||
* @param texWidth The pixel width of the texture object.
|
||||
* @param texHeight The pixel height of the texture object.
|
||||
* @param screenX The screen X coordinate at which to output the rendered texture.
|
||||
* @param screenY The screen Y coordinate at which to output the rendered texture.
|
||||
* @param color Color to apply to the texture.
|
||||
*/
|
||||
void FreeTypeGX::copyTextureToFramebuffer(GXTexObj *texObj, f32 texWidth, f32 texHeight, int16_t screenX, int16_t screenY, GXColor color) {
|
||||
|
||||
GX_LoadTexObj(texObj, GX_TEXMAP0);
|
||||
GX_InvalidateTexAll();
|
||||
|
||||
GX_SetTevOp (GX_TEVSTAGE0, GX_MODULATE);
|
||||
GX_SetVtxDesc (GX_VA_TEX0, GX_DIRECT);
|
||||
|
||||
GX_Begin(GX_QUADS, this->vertexIndex, 4);
|
||||
GX_Position2s16(screenX, screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
GX_TexCoord2f32(0.0f, 0.0f);
|
||||
|
||||
GX_Position2s16(texWidth + screenX, screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
GX_TexCoord2f32(1.0f, 0.0f);
|
||||
|
||||
GX_Position2s16(texWidth + screenX, texHeight + screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
GX_TexCoord2f32(1.0f, 1.0f);
|
||||
|
||||
GX_Position2s16(screenX, texHeight + screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
GX_TexCoord2f32(0.0f, 1.0f);
|
||||
GX_End();
|
||||
|
||||
this->setDefaultMode();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a feature quad to the EFB.
|
||||
*
|
||||
* This function creates a simple quad for displaying underline or strikeout text styling.
|
||||
*
|
||||
* @param featureWidth The pixel width of the quad.
|
||||
* @param featureHeight The pixel height of the quad.
|
||||
* @param screenX The screen X coordinate at which to output the quad.
|
||||
* @param screenY The screen Y coordinate at which to output the quad.
|
||||
* @param color Color to apply to the texture.
|
||||
*/
|
||||
void FreeTypeGX::copyFeatureToFramebuffer(f32 featureWidth, f32 featureHeight, int16_t screenX, int16_t screenY, GXColor color) {
|
||||
|
||||
GX_SetTevOp (GX_TEVSTAGE0, GX_PASSCLR);
|
||||
GX_SetVtxDesc (GX_VA_TEX0, GX_NONE);
|
||||
|
||||
GX_Begin(GX_QUADS, this->vertexIndex, 4);
|
||||
GX_Position2s16(screenX, screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
|
||||
GX_Position2s16(featureWidth + screenX, screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
|
||||
GX_Position2s16(featureWidth + screenX, featureHeight + screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
|
||||
GX_Position2s16(screenX, featureHeight + screenY);
|
||||
GX_Color4u8(color.r, color.g, color.b, color.a);
|
||||
GX_End();
|
||||
|
||||
this->setDefaultMode();
|
||||
}
|
|
@ -1,272 +0,0 @@
|
|||
/*
|
||||
* FreeTypeGX is a wrapper class for libFreeType which renders a compiled
|
||||
* FreeType parsable font into a GX texture for Wii homebrew development.
|
||||
* Copyright (C) 2008 Armin Tamzarian
|
||||
* Modified by Tantric, 2009
|
||||
*
|
||||
* This file is part of FreeTypeGX.
|
||||
*
|
||||
* FreeTypeGX is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published
|
||||
* by the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* FreeTypeGX 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 Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with FreeTypeGX. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
/** \mainpage FreeTypeGX
|
||||
*
|
||||
* \section sec_intro Introduction
|
||||
*
|
||||
* FreeTypeGX is a wrapper class for libFreeType which renders a compiled FreeType parsable font into a GX texture for Wii homebrew development.
|
||||
* <br>
|
||||
* FreeTypeGX is written in C++ and makes use of a selectable pre-buffered or buffer-on-demand methodology to allow fast and efficient printing of text to the EFB.
|
||||
* <p>
|
||||
* This library was developed in-full by Armin Tamzarian with the support of developers in \#wiibrew on EFnet.
|
||||
*
|
||||
* \section sec_installation_source Installation (Source Code)
|
||||
*
|
||||
* -# Ensure that you have the <a href = "http://www.tehskeen.com/forums/showthread.php?t=9404">libFreeType</a> Wii library installed in your development environment with the library added to your Makefile where appropriate.
|
||||
* -# Ensure that you have the <a href = "http://code.google.com/p/metaphrasis">Metaphrasis</a> library installed in your development environment with the library added to your Makefile where appropriate.
|
||||
* -# Extract the FreeTypeGX archive.
|
||||
* -# Copy the contents of the <i>src</i> directory into your project's development path.
|
||||
* -# Include the FreeTypeGX header file in your code using syntax such as the following:
|
||||
* \code
|
||||
* #include "FreeTypeGX.h"
|
||||
* \endcode
|
||||
*
|
||||
* \section sec_installation_library Installation (Library)
|
||||
*
|
||||
* -# Ensure that you have the <a href = "http://www.tehskeen.com/forums/showthread.php?t=9404">libFreeType</a> Wii library installed in your development environment with the library added to your Makefile where appropriate.
|
||||
* -# Ensure that you have the <a href = "http://code.google.com/p/metaphrasis">Metaphrasis</a> library installed in your development environment with the library added to your Makefile where appropriate.
|
||||
* -# Extract the FreeTypeGX archive.
|
||||
* -# Copy the contents of the <i>lib</i> directory into your <i>devKitPro/libogc</i> directory.
|
||||
* -# Include the FreeTypeGX header file in your code using syntax such as the following:
|
||||
* \code
|
||||
* #include "FreeTypeGX.h"
|
||||
* \endcode
|
||||
*
|
||||
* \section sec_freetypegx_prerequisites FreeTypeGX Prerequisites
|
||||
*
|
||||
* Before you begin using FreeTypeGX in your project you must ensure that the desired font in compiled into your project. For this example I will assume you are building your project with a Makefile using devKitPro evironment and are attempting to include a font whose filename is rursus_compact_mono.ttf.
|
||||
*
|
||||
* -# Copy the font into a directory which will be processed by the project's Makefile. If you are unsure about where you should place your font just copy the it into your project's source directory.
|
||||
* \n\n
|
||||
* -# Modify the Makefile to convert the font into an object file:
|
||||
* \code
|
||||
* %.ttf.o : %.ttf
|
||||
* @echo $(notdir $<)
|
||||
* $(bin2o)
|
||||
* \endcode
|
||||
* \n
|
||||
* -# Include the font object's generated header file in your source code:
|
||||
* \code
|
||||
* #include "rursus_compact_mono_ttf.h"
|
||||
* \endcode
|
||||
* This header file defines the two variables that you will need for use within your project:
|
||||
* \code
|
||||
* extern const u8 rursus_compact_mono_ttf[]; A pointer to the font buffer within the compiled project.
|
||||
* extern const u32 rursus_compact_mono_ttf_size; The size of the font's buffer in bytes.
|
||||
* \endcode
|
||||
*
|
||||
* \section sec_freetypegx_usage FreeTypeGX Usage
|
||||
*
|
||||
* -# Within the file you included the FreeTypeGX.h header create an instance object of the FreeTypeGX class:
|
||||
* \code
|
||||
* FreeTypeGX *freeTypeGX = new FreeTypeGX();
|
||||
* \endcode
|
||||
* Alternately you can specify a texture format to which you would like to render the font characters. Note that the default value for this parameter is GX_TF_RGBA8.
|
||||
* \code
|
||||
* FreeTypeGX *freeTypeGX = new FreeTypeGX(GX_TF_RGB565);
|
||||
* \endcode
|
||||
* Furthermore, you can also specify a vertex format index to avoid conflicts with concurrent libraries or other systems. Note that the default value for this parameter is GX_VTXFMT1.
|
||||
* \code
|
||||
* FreeTypeGX *freeTypeGX = new FreeTypeGX(GX_TF_RGB565, GX_VTXFMT1);
|
||||
* \endcode
|
||||
* \n
|
||||
* Currently supported textures are:
|
||||
* \li <i>GX_TF_I4</i>
|
||||
* \li <i>GX_TF_I8</i>
|
||||
* \li <i>GX_TF_IA4</i>
|
||||
* \li <i>GX_TF_IA8</i>
|
||||
* \li <i>GX_TF_RGB565</i>
|
||||
* \li <i>GX_TF_RGB5A3</i>
|
||||
* \li <i>GX_TF_RGBA8</i>
|
||||
*
|
||||
* \n
|
||||
* -# Using the allocated FreeTypeGX instance object call the loadFont function to load the font from the compiled buffer and specify the desired point size. Note that this function can be called multiple times to load a new:
|
||||
* \code
|
||||
* freeTypeGX->loadFont(rursus_compact_mono_ttf, rursus_compact_mono_ttf_size, 64);
|
||||
* \endcode
|
||||
* Alternately you can specify a flag which will load and cache all available font glyphs immidiately. Note that on large font sets enabling this feature could take a significant amount of time.
|
||||
* \code
|
||||
* freeTypeGX->loadFont(rursus_compact_mono_ttf, rursus_compact_mono_ttf_size, 64, true);
|
||||
* \endcode
|
||||
* \n
|
||||
* -# If necessary you can enable compatibility modes with concurrent libraries or systems. For more information on this feature see the documentation for setCompatibilityMode:
|
||||
* \code
|
||||
* freeTypeGX->setCompatibilityMode(FTGX_COMPATIBILITY_GRRLIB);
|
||||
* \endcode
|
||||
* -# Using the allocated FreeTypeGX instance object call the drawText function to print a string at the specified screen X and Y coordinates to the current EFB:
|
||||
* \code
|
||||
* freeTypeGX->drawText(10, 25, _TEXT("FreeTypeGX Rocks!"));
|
||||
* \endcode
|
||||
* Alternately you can specify a <i>GXColor</i> object you would like to apply to the printed characters:
|
||||
* \code
|
||||
* freeTypeGX->drawText(10, 25, _TEXT("FreeTypeGX Rocks!"),
|
||||
* (GXColor){0xff, 0xee, 0xaa, 0xff});
|
||||
* \endcode
|
||||
* Furthermore you can also specify a group of styling parameters which will modify the positioning or style of the text:
|
||||
* \code
|
||||
* freeTypeGX->drawText(10, 25, _TEXT("FreeTypeGX Rocks!"),
|
||||
* (GXColor){0xff, 0xee, 0xaa, 0xff},
|
||||
* FTGX_JUSTIFY_CENTER | FTGX_ALIGN_BOTTOM | FTGX_STYLE_UNDERLINE);
|
||||
* \endcode
|
||||
* \n
|
||||
* Currently style parameters are:
|
||||
* \li <i>FTGX_JUSTIFY_LEFT</i>
|
||||
* \li <i>FTGX_JUSTIFY_CENTER</i>
|
||||
* \li <i>FTGX_JUSTIFY_RIGHT</i>
|
||||
* \li <i>FTGX_ALIGN_TOP</i>
|
||||
* \li <i>FTGX_ALIGN_MIDDLE</i>
|
||||
* \li <i>FTGX_ALIGN_BOTTOM</i>
|
||||
* \li <i>FTGX_STYLE_UNDERLINE</i>
|
||||
* \li <i>FTGX_STYLE_STRIKE</i>
|
||||
*
|
||||
* \section sec_license License
|
||||
*
|
||||
* FreeTypeGX is distributed under the GNU Lesser General Public License.
|
||||
*
|
||||
* \section sec_contact Contact
|
||||
*
|
||||
* If you have any suggestions, questions, or comments regarding this library feel free to e-mail me at tamzarian1989 [at] gmail [dawt] com.
|
||||
*/
|
||||
|
||||
#ifndef FREETYPEGX_H_
|
||||
#define FREETYPEGX_H_
|
||||
|
||||
#include <gccore.h>
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#include FT_BITMAP_H
|
||||
#include <Metaphrasis.h>
|
||||
|
||||
#include <malloc.h>
|
||||
#include <string.h>
|
||||
#include <map>
|
||||
|
||||
/*! forward deklaration of private structures
|
||||
*
|
||||
*/
|
||||
typedef struct ftgxCharData_ ftgxCharData;
|
||||
typedef struct ftgxDataOffset_ ftgxDataOffset;
|
||||
|
||||
#define _TEXT(t) L ## t /**< Unicode helper macro. */
|
||||
|
||||
#define FTGX_NULL 0x0000
|
||||
#define FTGX_JUSTIFY_LEFT 0x0001
|
||||
#define FTGX_JUSTIFY_CENTER 0x0002
|
||||
#define FTGX_JUSTIFY_RIGHT 0x0003
|
||||
#define FTGX_JUSTIFY_MASK 0x000f
|
||||
|
||||
#define FTGX_ALIGN_TOP 0x0010
|
||||
#define FTGX_ALIGN_MIDDLE 0x0020
|
||||
#define FTGX_ALIGN_BOTTOM 0x0030
|
||||
#define FTGX_ALIGN_BASELINE 0x0040
|
||||
#define FTGX_ALIGN_GLYPH_TOP 0x0050
|
||||
#define FTGX_ALIGN_GLYPH_MIDDLE 0x0060
|
||||
#define FTGX_ALIGN_GLYPH_BOTTOM 0x0070
|
||||
#define FTGX_ALIGN_MASK 0x00f0
|
||||
|
||||
#define FTGX_STYLE_UNDERLINE 0x0100
|
||||
#define FTGX_STYLE_STRIKE 0x0200
|
||||
#define FTGX_STYLE_MASK 0x0f00
|
||||
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_MODULATE 0X0001
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_DECAL 0X0002
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_BLEND 0X0004
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_REPLACE 0X0008
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_PASSCLR 0X0010
|
||||
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_NONE 0X0100
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_DIRECT 0X0200
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_INDEX8 0X0400
|
||||
#define FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_INDEX16 0X0800
|
||||
|
||||
#define FTGX_COMPATIBILITY_NONE 0x0000
|
||||
#define FTGX_COMPATIBILITY_GRRLIB FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_PASSCLR | FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_NONE
|
||||
#define FTGX_COMPATIBILITY_LIBWIISPRITE FTGX_COMPATIBILITY_DEFAULT_TEVOP_GX_MODULATE | FTGX_COMPATIBILITY_DEFAULT_VTXDESC_GX_DIRECT
|
||||
|
||||
const GXColor ftgxWhite = (GXColor){0xff, 0xff, 0xff, 0xff}; /**< Constant color value used only to sanitize Doxygen documentation. */
|
||||
|
||||
/*! \class FreeTypeGX
|
||||
* \brief Wrapper class for the libFreeType library with GX rendering.
|
||||
* \author Armin Tamzarian
|
||||
* \version 0.2.4
|
||||
*
|
||||
* FreeTypeGX acts as a wrapper class for the libFreeType library. It supports precaching of transformed glyph data into
|
||||
* a specified texture format. Rendering of the data to the EFB is accomplished through the application of high performance
|
||||
* GX texture functions resulting in high throughput of string rendering.
|
||||
*/
|
||||
class FreeTypeGX {
|
||||
|
||||
private:
|
||||
FT_Library ftLibrary; /**< FreeType FT_Library instance. */
|
||||
FT_Face ftFace; /**< FreeType reusable FT_Face typographic object. */
|
||||
FT_GlyphSlot ftSlot; /**< FreeType reusable FT_GlyphSlot glyph container object. */
|
||||
FT_UInt ftPointSize; /**< Requested size of the rendered font. */
|
||||
bool ftKerningEnabled; /**< Flag indicating the availability of font kerning data. */
|
||||
|
||||
uint8_t textureFormat; /**< Defined texture format of the target EFB. */
|
||||
uint8_t vertexIndex; /**< Vertex format descriptor index. */
|
||||
uint32_t compatibilityMode; /**< Compatibility mode for default tev operations and vertex descriptors. */
|
||||
std::map<wchar_t, ftgxCharData> fontData; /**< Map which holds the glyph data structures for the corresponding characters. */
|
||||
|
||||
static uint16_t adjustTextureWidth(uint16_t textureWidth, uint8_t textureFormat);
|
||||
static uint16_t adjustTextureHeight(uint16_t textureHeight, uint8_t textureFormat);
|
||||
|
||||
static int16_t getStyleOffsetWidth(uint16_t width, uint16_t format);
|
||||
static int16_t getStyleOffsetHeight(ftgxDataOffset *offset, uint16_t format);
|
||||
|
||||
void unloadFont();
|
||||
ftgxCharData *cacheGlyphData(wchar_t charCode);
|
||||
uint16_t cacheGlyphDataComplete();
|
||||
void loadGlyphData(FT_Bitmap *bmp, ftgxCharData *charData);
|
||||
|
||||
void setDefaultMode();
|
||||
|
||||
void drawTextFeature(int16_t x, int16_t y, uint16_t width, ftgxDataOffset *offsetData, uint16_t format, GXColor color);
|
||||
void copyTextureToFramebuffer(GXTexObj *texObj, f32 texWidth, f32 texHeight, int16_t screenX, int16_t screenY, GXColor color);
|
||||
void copyFeatureToFramebuffer(f32 featureWidth, f32 featureHeight, int16_t screenX, int16_t screenY, GXColor color);
|
||||
|
||||
public:
|
||||
FreeTypeGX(uint8_t textureFormat = GX_TF_RGBA8, uint8_t vertexIndex = GX_VTXFMT1);
|
||||
~FreeTypeGX();
|
||||
|
||||
static wchar_t* charToWideChar(char* p);
|
||||
static wchar_t* charToWideChar(const char* p);
|
||||
void setVertexFormat(uint8_t vertexIndex);
|
||||
void setCompatibilityMode(uint32_t compatibilityMode);
|
||||
|
||||
uint16_t loadFont(uint8_t* fontBuffer, FT_Long bufferSize, FT_UInt pointSize, bool cacheAll = false);
|
||||
uint16_t loadFont(const uint8_t* fontBuffer, FT_Long bufferSize, FT_UInt pointSize, bool cacheAll = false);
|
||||
void changeSize(FT_UInt vPointSize, FT_UInt hPointSize=0);
|
||||
|
||||
uint16_t drawText(int16_t x, int16_t y, wchar_t *text, GXColor color = ftgxWhite, uint16_t textStyling = FTGX_NULL);
|
||||
uint16_t drawText(int16_t x, int16_t y, wchar_t const *text, GXColor color = ftgxWhite, uint16_t textStyling = FTGX_NULL);
|
||||
|
||||
uint16_t getWidth(wchar_t *text);
|
||||
uint16_t getWidth(wchar_t const *text);
|
||||
uint16_t getHeight(wchar_t *text);
|
||||
uint16_t getHeight(wchar_t const *text);
|
||||
ftgxDataOffset* getOffset(wchar_t *text, ftgxDataOffset* offset);
|
||||
ftgxDataOffset* getOffset(wchar_t const *text, ftgxDataOffset* offset);
|
||||
};
|
||||
|
||||
#endif /* FREETYPEGX_H_ */
|
|
@ -1,997 +0,0 @@
|
|||
//GB2Unicode.c
|
||||
|
||||
|
||||
#include "GB2Unicode.h"
|
||||
|
||||
|
||||
|
||||
|
||||
unsigned short bGbUnicodedat1[]={
|
||||
0x3000,0x3001,0x3002,0x00B7,0x02C9,0x02C7,0x00A8,0x3003,
|
||||
0x3005,0x2014,0xFF5E,0x2016,0x2026,0x2018,0x2019,0x201C,
|
||||
0x201D,0x3014,0x3015,0x3008,0x3009,0x300A,0x300B,0x300C,
|
||||
0x300D,0x300E,0x300F,0x3016,0x3017,0x3010,0x3011,0x00B1,
|
||||
0x00D7,0x00F7,0x2236,0x2227,0x2228,0x2211,0x220F,0x222A,
|
||||
0x2229,0x2208,0x2237,0x221A,0x22A5,0x2225,0x2220,0x2312,
|
||||
0x2299,0x222B,0x222E,0x2261,0x224C,0x2248,0x223D,0x221D,
|
||||
0x2260,0x226E,0x226F,0x2264,0x2265,0x221E,0x2235,0x2234,
|
||||
0x2642,0x2640,0x00B0,0x2032,0x2033,0x2103,0xFF04,0x00A4,
|
||||
0xFFE0,0xFFE1,0x2030,0x00A7,0x2116,0x2606,0x2605,0x25CB,
|
||||
0x25CF,0x25CE,0x25C7,0x25C6,0x25A1,0x25A0,0x25B3,0x25B2,
|
||||
0x203B,0x2192,0x2190,0x2191,0x2193,0x3013,0x2170,0x2171,
|
||||
0x2172,0x2173,0x2174,0x2175,0x2176,0x2177,0x2178,0x2179,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2488,0x2489,
|
||||
0x248A,0x248B,0x248C,0x248D,0x248E,0x248F,0x2490,0x2491,
|
||||
0x2492,0x2493,0x2494,0x2495,0x2496,0x2497,0x2498,0x2499,
|
||||
0x249A,0x249B,0x2474,0x2475,0x2476,0x2477,0x2478,0x2479,
|
||||
0x247A,0x247B,0x247C,0x247D,0x247E,0x247F,0x2480,0x2481,
|
||||
0x2482,0x2483,0x2484,0x2485,0x2486,0x2487,0x2460,0x2461,
|
||||
0x2462,0x2463,0x2464,0x2465,0x2466,0x2467,0x2468,0x2469,
|
||||
0x2000,0x2000,0x3220,0x3221,0x3222,0x3223,0x3224,0x3225,
|
||||
0x3226,0x3227,0x3228,0x3229,0x2000,0x2000,0x2160,0x2161,
|
||||
0x2162,0x2163,0x2164,0x2165,0x2166,0x2167,0x2168,0x2169,
|
||||
0x216A,0x216B,0x2000,0x2000,0xFF01,0xFF02,0xFF03,0xFFE5,
|
||||
0xFF05,0xFF06,0xFF07,0xFF08,0xFF09,0xFF0A,0xFF0B,0xFF0C,
|
||||
0xFF0D,0xFF0E,0xFF0F,0xFF10,0xFF11,0xFF12,0xFF13,0xFF14,
|
||||
0xFF15,0xFF16,0xFF17,0xFF18,0xFF19,0xFF1A,0xFF1B,0xFF1C,
|
||||
0xFF1D,0xFF1E,0xFF1F,0xFF20,0xFF21,0xFF22,0xFF23,0xFF24,
|
||||
0xFF25,0xFF26,0xFF27,0xFF28,0xFF29,0xFF2A,0xFF2B,0xFF2C,
|
||||
0xFF2D,0xFF2E,0xFF2F,0xFF30,0xFF31,0xFF32,0xFF33,0xFF34,
|
||||
0xFF35,0xFF36,0xFF37,0xFF38,0xFF39,0xFF3A,0xFF3B,0xFF3C,
|
||||
0xFF3D,0xFF3E,0xFF3F,0xFF40,0xFF41,0xFF42,0xFF43,0xFF44,
|
||||
0xFF45,0xFF46,0xFF47,0xFF48,0xFF49,0xFF4A,0xFF4B,0xFF4C,
|
||||
0xFF4D,0xFF4E,0xFF4F,0xFF50,0xFF51,0xFF52,0xFF53,0xFF54,
|
||||
0xFF55,0xFF56,0xFF57,0xFF58,0xFF59,0xFF5A,0xFF5B,0xFF5C,
|
||||
0xFF5D,0xFFE3,0x3041,0x3042,0x3043,0x3044,0x3045,0x3046,
|
||||
0x3047,0x3048,0x3049,0x304A,0x304B,0x304C,0x304D,0x304E,
|
||||
0x304F,0x3050,0x3051,0x3052,0x3053,0x3054,0x3055,0x3056,
|
||||
0x3057,0x3058,0x3059,0x305A,0x305B,0x305C,0x305D,0x305E,
|
||||
0x305F,0x3060,0x3061,0x3062,0x3063,0x3064,0x3065,0x3066,
|
||||
0x3067,0x3068,0x3069,0x306A,0x306B,0x306C,0x306D,0x306E,
|
||||
0x306F,0x3070,0x3071,0x3072,0x3073,0x3074,0x3075,0x3076,
|
||||
0x3077,0x3078,0x3079,0x307A,0x307B,0x307C,0x307D,0x307E,
|
||||
0x307F,0x3080,0x3081,0x3082,0x3083,0x3084,0x3085,0x3086,
|
||||
0x3087,0x3088,0x3089,0x308A,0x308B,0x308C,0x308D,0x308E,
|
||||
0x308F,0x3090,0x3091,0x3092,0x3093,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x30A1,0x30A2,0x30A3,0x30A4,0x30A5,0x30A6,0x30A7,0x30A8,
|
||||
0x30A9,0x30AA,0x30AB,0x30AC,0x30AD,0x30AE,0x30AF,0x30B0,
|
||||
0x30B1,0x30B2,0x30B3,0x30B4,0x30B5,0x30B6,0x30B7,0x30B8,
|
||||
0x30B9,0x30BA,0x30BB,0x30BC,0x30BD,0x30BE,0x30BF,0x30C0,
|
||||
0x30C1,0x30C2,0x30C3,0x30C4,0x30C5,0x30C6,0x30C7,0x30C8,
|
||||
0x30C9,0x30CA,0x30CB,0x30CC,0x30CD,0x30CE,0x30CF,0x30D0,
|
||||
0x30D1,0x30D2,0x30D3,0x30D4,0x30D5,0x30D6,0x30D7,0x30D8,
|
||||
0x30D9,0x30DA,0x30DB,0x30DC,0x30DD,0x30DE,0x30DF,0x30E0,
|
||||
0x30E1,0x30E2,0x30E3,0x30E4,0x30E5,0x30E6,0x30E7,0x30E8,
|
||||
0x30E9,0x30EA,0x30EB,0x30EC,0x30ED,0x30EE,0x30EF,0x30F0,
|
||||
0x30F1,0x30F2,0x30F3,0x30F4,0x30F5,0x30F6,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x0391,0x0392,
|
||||
0x0393,0x0394,0x0395,0x0396,0x0397,0x0398,0x0399,0x039A,
|
||||
0x039B,0x039C,0x039D,0x039E,0x039F,0x03A0,0x03A1,0x03A3,
|
||||
0x03A4,0x03A5,0x03A6,0x03A7,0x03A8,0x03A9,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x03B1,0x03B2,
|
||||
0x03B3,0x03B4,0x03B5,0x03B6,0x03B7,0x03B8,0x03B9,0x03BA,
|
||||
0x03BB,0x03BC,0x03BD,0x03BE,0x03BF,0x03C0,0x03C1,0x03C3,
|
||||
0x03C4,0x03C5,0x03C6,0x03C7,0x03C8,0x03C9,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0xFE35,0xFE36,0xFE39,
|
||||
0xFE3A,0xFE3F,0xFE40,0xFE3D,0xFE3E,0xFE41,0xFE42,0xFE43,
|
||||
0xFE44,0x2000,0x2000,0xFE3B,0xFE3C,0xFE37,0xFE38,0xFE31,
|
||||
0x2000,0xFE33,0xFE34,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x0410,0x0411,0x0412,0x0413,
|
||||
0x0414,0x0415,0x0401,0x0416,0x0417,0x0418,0x0419,0x041A,
|
||||
0x041B,0x041C,0x041D,0x041E,0x041F,0x0420,0x0421,0x0422,
|
||||
0x0423,0x0424,0x0425,0x0426,0x0427,0x0428,0x0429,0x042A,
|
||||
0x042B,0x042C,0x042D,0x042E,0x042F,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x0430,0x0431,0x0432,0x0433,
|
||||
0x0434,0x0435,0x0451,0x0436,0x0437,0x0438,0x0439,0x043A,
|
||||
0x043B,0x043C,0x043D,0x043E,0x043F,0x0440,0x0441,0x0442,
|
||||
0x0443,0x0444,0x0445,0x0446,0x0447,0x0448,0x0449,0x044A,
|
||||
0x044B,0x044C,0x044D,0x044E,0x044F,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x0101,0x00E1,0x01CE,0x00E0,0x0113,0x00E9,
|
||||
0x011B,0x00E8,0x012B,0x00ED,0x01D0,0x00EC,0x014D,0x00F3,
|
||||
0x01D2,0x00F2,0x016B,0x00FA,0x01D4,0x00F9,0x01D6,0x01D8,
|
||||
0x01DA,0x01DC,0x00FC,0x00EA,0x0251,0xE7C7,0x0144,0x0148,
|
||||
0xE7C8,0x0261,0x2000,0x2000,0x2000,0x2000,0x3105,0x3106,
|
||||
0x3107,0x3108,0x3109,0x310A,0x310B,0x310C,0x310D,0x310E,
|
||||
0x310F,0x3110,0x3111,0x3112,0x3113,0x3114,0x3115,0x3116,
|
||||
0x3117,0x3118,0x3119,0x311A,0x311B,0x311C,0x311D,0x311E,
|
||||
0x311F,0x3120,0x3121,0x3122,0x3123,0x3124,0x3125,0x3126,
|
||||
0x3127,0x3128,0x3129,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2500,0x2501,0x2502,0x2503,0x2504,
|
||||
0x2505,0x2506,0x2507,0x2508,0x2509,0x250A,0x250B,0x250C,
|
||||
0x250D,0x250E,0x250F,0x2510,0x2511,0x2512,0x2513,0x2514,
|
||||
0x2515,0x2516,0x2517,0x2518,0x2519,0x251A,0x251B,0x251C,
|
||||
0x251D,0x251E,0x251F,0x2520,0x2521,0x2522,0x2523,0x2524,
|
||||
0x2525,0x2526,0x2527,0x2528,0x2529,0x252A,0x252B,0x252C,
|
||||
0x252D,0x252E,0x252F,0x2530,0x2531,0x2532,0x2533,0x2534,
|
||||
0x2535,0x2536,0x2537,0x2538,0x2539,0x253A,0x253B,0x253C,
|
||||
0x253D,0x253E,0x253F,0x2540,0x2541,0x2542,0x2543,0x2544,
|
||||
0x2545,0x2546,0x2547,0x2548,0x2549,0x254A,0x254B,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x2000,0x2000,0x2000,0x2000,0x2000,0x2000
|
||||
};
|
||||
unsigned short bGbUnicodedat2[]={
|
||||
0x554A,0x963F,0x57C3,0x6328,0x54CE,0x5509,0x54C0,0x7691,
|
||||
0x764C,0x853C,0x77EE,0x827E,0x788D,0x7231,0x9698,0x978D,
|
||||
0x6C28,0x5B89,0x4FFA,0x6309,0x6697,0x5CB8,0x80FA,0x6848,
|
||||
0x80AE,0x6602,0x76CE,0x51F9,0x6556,0x71AC,0x7FF1,0x8884,
|
||||
0x50B2,0x5965,0x61CA,0x6FB3,0x82AD,0x634C,0x6252,0x53ED,
|
||||
0x5427,0x7B06,0x516B,0x75A4,0x5DF4,0x62D4,0x8DCB,0x9776,
|
||||
0x628A,0x8019,0x575D,0x9738,0x7F62,0x7238,0x767D,0x67CF,
|
||||
0x767E,0x6446,0x4F70,0x8D25,0x62DC,0x7A17,0x6591,0x73ED,
|
||||
0x642C,0x6273,0x822C,0x9881,0x677F,0x7248,0x626E,0x62CC,
|
||||
0x4F34,0x74E3,0x534A,0x529E,0x7ECA,0x90A6,0x5E2E,0x6886,
|
||||
0x699C,0x8180,0x7ED1,0x68D2,0x78C5,0x868C,0x9551,0x508D,
|
||||
0x8C24,0x82DE,0x80DE,0x5305,0x8912,0x5265,0x8584,0x96F9,
|
||||
0x4FDD,0x5821,0x9971,0x5B9D,0x62B1,0x62A5,0x66B4,0x8C79,
|
||||
0x9C8D,0x7206,0x676F,0x7891,0x60B2,0x5351,0x5317,0x8F88,
|
||||
0x80CC,0x8D1D,0x94A1,0x500D,0x72C8,0x5907,0x60EB,0x7119,
|
||||
0x88AB,0x5954,0x82EF,0x672C,0x7B28,0x5D29,0x7EF7,0x752D,
|
||||
0x6CF5,0x8E66,0x8FF8,0x903C,0x9F3B,0x6BD4,0x9119,0x7B14,
|
||||
0x5F7C,0x78A7,0x84D6,0x853D,0x6BD5,0x6BD9,0x6BD6,0x5E01,
|
||||
0x5E87,0x75F9,0x95ED,0x655D,0x5F0A,0x5FC5,0x8F9F,0x58C1,
|
||||
0x81C2,0x907F,0x965B,0x97AD,0x8FB9,0x7F16,0x8D2C,0x6241,
|
||||
0x4FBF,0x53D8,0x535E,0x8FA8,0x8FA9,0x8FAB,0x904D,0x6807,
|
||||
0x5F6A,0x8198,0x8868,0x9CD6,0x618B,0x522B,0x762A,0x5F6C,
|
||||
0x658C,0x6FD2,0x6EE8,0x5BBE,0x6448,0x5175,0x51B0,0x67C4,
|
||||
0x4E19,0x79C9,0x997C,0x70B3,0x75C5,0x5E76,0x73BB,0x83E0,
|
||||
0x64AD,0x62E8,0x94B5,0x6CE2,0x535A,0x52C3,0x640F,0x94C2,
|
||||
0x7B94,0x4F2F,0x5E1B,0x8236,0x8116,0x818A,0x6E24,0x6CCA,
|
||||
0x9A73,0x6355,0x535C,0x54FA,0x8865,0x57E0,0x4E0D,0x5E03,
|
||||
0x6B65,0x7C3F,0x90E8,0x6016,0x64E6,0x731C,0x88C1,0x6750,
|
||||
0x624D,0x8D22,0x776C,0x8E29,0x91C7,0x5F69,0x83DC,0x8521,
|
||||
0x9910,0x53C2,0x8695,0x6B8B,0x60ED,0x60E8,0x707F,0x82CD,
|
||||
0x8231,0x4ED3,0x6CA7,0x85CF,0x64CD,0x7CD9,0x69FD,0x66F9,
|
||||
0x8349,0x5395,0x7B56,0x4FA7,0x518C,0x6D4B,0x5C42,0x8E6D,
|
||||
0x63D2,0x53C9,0x832C,0x8336,0x67E5,0x78B4,0x643D,0x5BDF,
|
||||
0x5C94,0x5DEE,0x8BE7,0x62C6,0x67F4,0x8C7A,0x6400,0x63BA,
|
||||
0x8749,0x998B,0x8C17,0x7F20,0x94F2,0x4EA7,0x9610,0x98A4,
|
||||
0x660C,0x7316,0x573A,0x5C1D,0x5E38,0x957F,0x507F,0x80A0,
|
||||
0x5382,0x655E,0x7545,0x5531,0x5021,0x8D85,0x6284,0x949E,
|
||||
0x671D,0x5632,0x6F6E,0x5DE2,0x5435,0x7092,0x8F66,0x626F,
|
||||
0x64A4,0x63A3,0x5F7B,0x6F88,0x90F4,0x81E3,0x8FB0,0x5C18,
|
||||
0x6668,0x5FF1,0x6C89,0x9648,0x8D81,0x886C,0x6491,0x79F0,
|
||||
0x57CE,0x6A59,0x6210,0x5448,0x4E58,0x7A0B,0x60E9,0x6F84,
|
||||
0x8BDA,0x627F,0x901E,0x9A8B,0x79E4,0x5403,0x75F4,0x6301,
|
||||
0x5319,0x6C60,0x8FDF,0x5F1B,0x9A70,0x803B,0x9F7F,0x4F88,
|
||||
0x5C3A,0x8D64,0x7FC5,0x65A5,0x70BD,0x5145,0x51B2,0x866B,
|
||||
0x5D07,0x5BA0,0x62BD,0x916C,0x7574,0x8E0C,0x7A20,0x6101,
|
||||
0x7B79,0x4EC7,0x7EF8,0x7785,0x4E11,0x81ED,0x521D,0x51FA,
|
||||
0x6A71,0x53A8,0x8E87,0x9504,0x96CF,0x6EC1,0x9664,0x695A,
|
||||
0x7840,0x50A8,0x77D7,0x6410,0x89E6,0x5904,0x63E3,0x5DDD,
|
||||
0x7A7F,0x693D,0x4F20,0x8239,0x5598,0x4E32,0x75AE,0x7A97,
|
||||
0x5E62,0x5E8A,0x95EF,0x521B,0x5439,0x708A,0x6376,0x9524,
|
||||
0x5782,0x6625,0x693F,0x9187,0x5507,0x6DF3,0x7EAF,0x8822,
|
||||
0x6233,0x7EF0,0x75B5,0x8328,0x78C1,0x96CC,0x8F9E,0x6148,
|
||||
0x74F7,0x8BCD,0x6B64,0x523A,0x8D50,0x6B21,0x806A,0x8471,
|
||||
0x56F1,0x5306,0x4ECE,0x4E1B,0x51D1,0x7C97,0x918B,0x7C07,
|
||||
0x4FC3,0x8E7F,0x7BE1,0x7A9C,0x6467,0x5D14,0x50AC,0x8106,
|
||||
0x7601,0x7CB9,0x6DEC,0x7FE0,0x6751,0x5B58,0x5BF8,0x78CB,
|
||||
0x64AE,0x6413,0x63AA,0x632B,0x9519,0x642D,0x8FBE,0x7B54,
|
||||
0x7629,0x6253,0x5927,0x5446,0x6B79,0x50A3,0x6234,0x5E26,
|
||||
0x6B86,0x4EE3,0x8D37,0x888B,0x5F85,0x902E,0x6020,0x803D,
|
||||
0x62C5,0x4E39,0x5355,0x90F8,0x63B8,0x80C6,0x65E6,0x6C2E,
|
||||
0x4F46,0x60EE,0x6DE1,0x8BDE,0x5F39,0x86CB,0x5F53,0x6321,
|
||||
0x515A,0x8361,0x6863,0x5200,0x6363,0x8E48,0x5012,0x5C9B,
|
||||
0x7977,0x5BFC,0x5230,0x7A3B,0x60BC,0x9053,0x76D7,0x5FB7,
|
||||
0x5F97,0x7684,0x8E6C,0x706F,0x767B,0x7B49,0x77AA,0x51F3,
|
||||
0x9093,0x5824,0x4F4E,0x6EF4,0x8FEA,0x654C,0x7B1B,0x72C4,
|
||||
0x6DA4,0x7FDF,0x5AE1,0x62B5,0x5E95,0x5730,0x8482,0x7B2C,
|
||||
0x5E1D,0x5F1F,0x9012,0x7F14,0x98A0,0x6382,0x6EC7,0x7898,
|
||||
0x70B9,0x5178,0x975B,0x57AB,0x7535,0x4F43,0x7538,0x5E97,
|
||||
0x60E6,0x5960,0x6DC0,0x6BBF,0x7889,0x53FC,0x96D5,0x51CB,
|
||||
0x5201,0x6389,0x540A,0x9493,0x8C03,0x8DCC,0x7239,0x789F,
|
||||
0x8776,0x8FED,0x8C0D,0x53E0,0x4E01,0x76EF,0x53EE,0x9489,
|
||||
0x9876,0x9F0E,0x952D,0x5B9A,0x8BA2,0x4E22,0x4E1C,0x51AC,
|
||||
0x8463,0x61C2,0x52A8,0x680B,0x4F97,0x606B,0x51BB,0x6D1E,
|
||||
0x515C,0x6296,0x6597,0x9661,0x8C46,0x9017,0x75D8,0x90FD,
|
||||
0x7763,0x6BD2,0x728A,0x72EC,0x8BFB,0x5835,0x7779,0x8D4C,
|
||||
0x675C,0x9540,0x809A,0x5EA6,0x6E21,0x5992,0x7AEF,0x77ED,
|
||||
0x953B,0x6BB5,0x65AD,0x7F0E,0x5806,0x5151,0x961F,0x5BF9,
|
||||
0x58A9,0x5428,0x8E72,0x6566,0x987F,0x56E4,0x949D,0x76FE,
|
||||
0x9041,0x6387,0x54C6,0x591A,0x593A,0x579B,0x8EB2,0x6735,
|
||||
0x8DFA,0x8235,0x5241,0x60F0,0x5815,0x86FE,0x5CE8,0x9E45,
|
||||
0x4FC4,0x989D,0x8BB9,0x5A25,0x6076,0x5384,0x627C,0x904F,
|
||||
0x9102,0x997F,0x6069,0x800C,0x513F,0x8033,0x5C14,0x9975,
|
||||
0x6D31,0x4E8C,0x8D30,0x53D1,0x7F5A,0x7B4F,0x4F10,0x4E4F,
|
||||
0x9600,0x6CD5,0x73D0,0x85E9,0x5E06,0x756A,0x7FFB,0x6A0A,
|
||||
0x77FE,0x9492,0x7E41,0x51E1,0x70E6,0x53CD,0x8FD4,0x8303,
|
||||
0x8D29,0x72AF,0x996D,0x6CDB,0x574A,0x82B3,0x65B9,0x80AA,
|
||||
0x623F,0x9632,0x59A8,0x4EFF,0x8BBF,0x7EBA,0x653E,0x83F2,
|
||||
0x975E,0x5561,0x98DE,0x80A5,0x532A,0x8BFD,0x5420,0x80BA,
|
||||
0x5E9F,0x6CB8,0x8D39,0x82AC,0x915A,0x5429,0x6C1B,0x5206,
|
||||
0x7EB7,0x575F,0x711A,0x6C7E,0x7C89,0x594B,0x4EFD,0x5FFF,
|
||||
0x6124,0x7CAA,0x4E30,0x5C01,0x67AB,0x8702,0x5CF0,0x950B,
|
||||
0x98CE,0x75AF,0x70FD,0x9022,0x51AF,0x7F1D,0x8BBD,0x5949,
|
||||
0x51E4,0x4F5B,0x5426,0x592B,0x6577,0x80A4,0x5B75,0x6276,
|
||||
0x62C2,0x8F90,0x5E45,0x6C1F,0x7B26,0x4F0F,0x4FD8,0x670D,
|
||||
0x6D6E,0x6DAA,0x798F,0x88B1,0x5F17,0x752B,0x629A,0x8F85,
|
||||
0x4FEF,0x91DC,0x65A7,0x812F,0x8151,0x5E9C,0x8150,0x8D74,
|
||||
0x526F,0x8986,0x8D4B,0x590D,0x5085,0x4ED8,0x961C,0x7236,
|
||||
0x8179,0x8D1F,0x5BCC,0x8BA3,0x9644,0x5987,0x7F1A,0x5490,
|
||||
0x5676,0x560E,0x8BE5,0x6539,0x6982,0x9499,0x76D6,0x6E89,
|
||||
0x5E72,0x7518,0x6746,0x67D1,0x7AFF,0x809D,0x8D76,0x611F,
|
||||
0x79C6,0x6562,0x8D63,0x5188,0x521A,0x94A2,0x7F38,0x809B,
|
||||
0x7EB2,0x5C97,0x6E2F,0x6760,0x7BD9,0x768B,0x9AD8,0x818F,
|
||||
0x7F94,0x7CD5,0x641E,0x9550,0x7A3F,0x544A,0x54E5,0x6B4C,
|
||||
0x6401,0x6208,0x9E3D,0x80F3,0x7599,0x5272,0x9769,0x845B,
|
||||
0x683C,0x86E4,0x9601,0x9694,0x94EC,0x4E2A,0x5404,0x7ED9,
|
||||
0x6839,0x8DDF,0x8015,0x66F4,0x5E9A,0x7FB9,0x57C2,0x803F,
|
||||
0x6897,0x5DE5,0x653B,0x529F,0x606D,0x9F9A,0x4F9B,0x8EAC,
|
||||
0x516C,0x5BAB,0x5F13,0x5DE9,0x6C5E,0x62F1,0x8D21,0x5171,
|
||||
0x94A9,0x52FE,0x6C9F,0x82DF,0x72D7,0x57A2,0x6784,0x8D2D,
|
||||
0x591F,0x8F9C,0x83C7,0x5495,0x7B8D,0x4F30,0x6CBD,0x5B64,
|
||||
0x59D1,0x9F13,0x53E4,0x86CA,0x9AA8,0x8C37,0x80A1,0x6545,
|
||||
0x987E,0x56FA,0x96C7,0x522E,0x74DC,0x5250,0x5BE1,0x6302,
|
||||
0x8902,0x4E56,0x62D0,0x602A,0x68FA,0x5173,0x5B98,0x51A0,
|
||||
0x89C2,0x7BA1,0x9986,0x7F50,0x60EF,0x704C,0x8D2F,0x5149,
|
||||
0x5E7F,0x901B,0x7470,0x89C4,0x572D,0x7845,0x5F52,0x9F9F,
|
||||
0x95FA,0x8F68,0x9B3C,0x8BE1,0x7678,0x6842,0x67DC,0x8DEA,
|
||||
0x8D35,0x523D,0x8F8A,0x6EDA,0x68CD,0x9505,0x90ED,0x56FD,
|
||||
0x679C,0x88F9,0x8FC7,0x54C8,0x9AB8,0x5B69,0x6D77,0x6C26,
|
||||
0x4EA5,0x5BB3,0x9A87,0x9163,0x61A8,0x90AF,0x97E9,0x542B,
|
||||
0x6DB5,0x5BD2,0x51FD,0x558A,0x7F55,0x7FF0,0x64BC,0x634D,
|
||||
0x65F1,0x61BE,0x608D,0x710A,0x6C57,0x6C49,0x592F,0x676D,
|
||||
0x822A,0x58D5,0x568E,0x8C6A,0x6BEB,0x90DD,0x597D,0x8017,
|
||||
0x53F7,0x6D69,0x5475,0x559D,0x8377,0x83CF,0x6838,0x79BE,
|
||||
0x548C,0x4F55,0x5408,0x76D2,0x8C89,0x9602,0x6CB3,0x6DB8,
|
||||
0x8D6B,0x8910,0x9E64,0x8D3A,0x563F,0x9ED1,0x75D5,0x5F88,
|
||||
0x72E0,0x6068,0x54FC,0x4EA8,0x6A2A,0x8861,0x6052,0x8F70,
|
||||
0x54C4,0x70D8,0x8679,0x9E3F,0x6D2A,0x5B8F,0x5F18,0x7EA2,
|
||||
0x5589,0x4FAF,0x7334,0x543C,0x539A,0x5019,0x540E,0x547C,
|
||||
0x4E4E,0x5FFD,0x745A,0x58F6,0x846B,0x80E1,0x8774,0x72D0,
|
||||
0x7CCA,0x6E56,0x5F27,0x864E,0x552C,0x62A4,0x4E92,0x6CAA,
|
||||
0x6237,0x82B1,0x54D7,0x534E,0x733E,0x6ED1,0x753B,0x5212,
|
||||
0x5316,0x8BDD,0x69D0,0x5F8A,0x6000,0x6DEE,0x574F,0x6B22,
|
||||
0x73AF,0x6853,0x8FD8,0x7F13,0x6362,0x60A3,0x5524,0x75EA,
|
||||
0x8C62,0x7115,0x6DA3,0x5BA6,0x5E7B,0x8352,0x614C,0x9EC4,
|
||||
0x78FA,0x8757,0x7C27,0x7687,0x51F0,0x60F6,0x714C,0x6643,
|
||||
0x5E4C,0x604D,0x8C0E,0x7070,0x6325,0x8F89,0x5FBD,0x6062,
|
||||
0x86D4,0x56DE,0x6BC1,0x6094,0x6167,0x5349,0x60E0,0x6666,
|
||||
0x8D3F,0x79FD,0x4F1A,0x70E9,0x6C47,0x8BB3,0x8BF2,0x7ED8,
|
||||
0x8364,0x660F,0x5A5A,0x9B42,0x6D51,0x6DF7,0x8C41,0x6D3B,
|
||||
0x4F19,0x706B,0x83B7,0x6216,0x60D1,0x970D,0x8D27,0x7978,
|
||||
0x51FB,0x573E,0x57FA,0x673A,0x7578,0x7A3D,0x79EF,0x7B95,
|
||||
0x808C,0x9965,0x8FF9,0x6FC0,0x8BA5,0x9E21,0x59EC,0x7EE9,
|
||||
0x7F09,0x5409,0x6781,0x68D8,0x8F91,0x7C4D,0x96C6,0x53CA,
|
||||
0x6025,0x75BE,0x6C72,0x5373,0x5AC9,0x7EA7,0x6324,0x51E0,
|
||||
0x810A,0x5DF1,0x84DF,0x6280,0x5180,0x5B63,0x4F0E,0x796D,
|
||||
0x5242,0x60B8,0x6D4E,0x5BC4,0x5BC2,0x8BA1,0x8BB0,0x65E2,
|
||||
0x5FCC,0x9645,0x5993,0x7EE7,0x7EAA,0x5609,0x67B7,0x5939,
|
||||
0x4F73,0x5BB6,0x52A0,0x835A,0x988A,0x8D3E,0x7532,0x94BE,
|
||||
0x5047,0x7A3C,0x4EF7,0x67B6,0x9A7E,0x5AC1,0x6B7C,0x76D1,
|
||||
0x575A,0x5C16,0x7B3A,0x95F4,0x714E,0x517C,0x80A9,0x8270,
|
||||
0x5978,0x7F04,0x8327,0x68C0,0x67EC,0x78B1,0x7877,0x62E3,
|
||||
0x6361,0x7B80,0x4FED,0x526A,0x51CF,0x8350,0x69DB,0x9274,
|
||||
0x8DF5,0x8D31,0x89C1,0x952E,0x7BAD,0x4EF6,0x5065,0x8230,
|
||||
0x5251,0x996F,0x6E10,0x6E85,0x6DA7,0x5EFA,0x50F5,0x59DC,
|
||||
0x5C06,0x6D46,0x6C5F,0x7586,0x848B,0x6868,0x5956,0x8BB2,
|
||||
0x5320,0x9171,0x964D,0x8549,0x6912,0x7901,0x7126,0x80F6,
|
||||
0x4EA4,0x90CA,0x6D47,0x9A84,0x5A07,0x56BC,0x6405,0x94F0,
|
||||
0x77EB,0x4FA5,0x811A,0x72E1,0x89D2,0x997A,0x7F34,0x7EDE,
|
||||
0x527F,0x6559,0x9175,0x8F7F,0x8F83,0x53EB,0x7A96,0x63ED,
|
||||
0x63A5,0x7686,0x79F8,0x8857,0x9636,0x622A,0x52AB,0x8282,
|
||||
0x6854,0x6770,0x6377,0x776B,0x7AED,0x6D01,0x7ED3,0x89E3,
|
||||
0x59D0,0x6212,0x85C9,0x82A5,0x754C,0x501F,0x4ECB,0x75A5,
|
||||
0x8BEB,0x5C4A,0x5DFE,0x7B4B,0x65A4,0x91D1,0x4ECA,0x6D25,
|
||||
0x895F,0x7D27,0x9526,0x4EC5,0x8C28,0x8FDB,0x9773,0x664B,
|
||||
0x7981,0x8FD1,0x70EC,0x6D78,0x5C3D,0x52B2,0x8346,0x5162,
|
||||
0x830E,0x775B,0x6676,0x9CB8,0x4EAC,0x60CA,0x7CBE,0x7CB3,
|
||||
0x7ECF,0x4E95,0x8B66,0x666F,0x9888,0x9759,0x5883,0x656C,
|
||||
0x955C,0x5F84,0x75C9,0x9756,0x7ADF,0x7ADE,0x51C0,0x70AF,
|
||||
0x7A98,0x63EA,0x7A76,0x7EA0,0x7396,0x97ED,0x4E45,0x7078,
|
||||
0x4E5D,0x9152,0x53A9,0x6551,0x65E7,0x81FC,0x8205,0x548E,
|
||||
0x5C31,0x759A,0x97A0,0x62D8,0x72D9,0x75BD,0x5C45,0x9A79,
|
||||
0x83CA,0x5C40,0x5480,0x77E9,0x4E3E,0x6CAE,0x805A,0x62D2,
|
||||
0x636E,0x5DE8,0x5177,0x8DDD,0x8E1E,0x952F,0x4FF1,0x53E5,
|
||||
0x60E7,0x70AC,0x5267,0x6350,0x9E43,0x5A1F,0x5026,0x7737,
|
||||
0x5377,0x7EE2,0x6485,0x652B,0x6289,0x6398,0x5014,0x7235,
|
||||
0x89C9,0x51B3,0x8BC0,0x7EDD,0x5747,0x83CC,0x94A7,0x519B,
|
||||
0x541B,0x5CFB,0x4FCA,0x7AE3,0x6D5A,0x90E1,0x9A8F,0x5580,
|
||||
0x5496,0x5361,0x54AF,0x5F00,0x63E9,0x6977,0x51EF,0x6168,
|
||||
0x520A,0x582A,0x52D8,0x574E,0x780D,0x770B,0x5EB7,0x6177,
|
||||
0x7CE0,0x625B,0x6297,0x4EA2,0x7095,0x8003,0x62F7,0x70E4,
|
||||
0x9760,0x5777,0x82DB,0x67EF,0x68F5,0x78D5,0x9897,0x79D1,
|
||||
0x58F3,0x54B3,0x53EF,0x6E34,0x514B,0x523B,0x5BA2,0x8BFE,
|
||||
0x80AF,0x5543,0x57A6,0x6073,0x5751,0x542D,0x7A7A,0x6050,
|
||||
0x5B54,0x63A7,0x62A0,0x53E3,0x6263,0x5BC7,0x67AF,0x54ED,
|
||||
0x7A9F,0x82E6,0x9177,0x5E93,0x88E4,0x5938,0x57AE,0x630E,
|
||||
0x8DE8,0x80EF,0x5757,0x7B77,0x4FA9,0x5FEB,0x5BBD,0x6B3E,
|
||||
0x5321,0x7B50,0x72C2,0x6846,0x77FF,0x7736,0x65F7,0x51B5,
|
||||
0x4E8F,0x76D4,0x5CBF,0x7AA5,0x8475,0x594E,0x9B41,0x5080,
|
||||
0x9988,0x6127,0x6E83,0x5764,0x6606,0x6346,0x56F0,0x62EC,
|
||||
0x6269,0x5ED3,0x9614,0x5783,0x62C9,0x5587,0x8721,0x814A,
|
||||
0x8FA3,0x5566,0x83B1,0x6765,0x8D56,0x84DD,0x5A6A,0x680F,
|
||||
0x62E6,0x7BEE,0x9611,0x5170,0x6F9C,0x8C30,0x63FD,0x89C8,
|
||||
0x61D2,0x7F06,0x70C2,0x6EE5,0x7405,0x6994,0x72FC,0x5ECA,
|
||||
0x90CE,0x6717,0x6D6A,0x635E,0x52B3,0x7262,0x8001,0x4F6C,
|
||||
0x59E5,0x916A,0x70D9,0x6D9D,0x52D2,0x4E50,0x96F7,0x956D,
|
||||
0x857E,0x78CA,0x7D2F,0x5121,0x5792,0x64C2,0x808B,0x7C7B,
|
||||
0x6CEA,0x68F1,0x695E,0x51B7,0x5398,0x68A8,0x7281,0x9ECE,
|
||||
0x7BF1,0x72F8,0x79BB,0x6F13,0x7406,0x674E,0x91CC,0x9CA4,
|
||||
0x793C,0x8389,0x8354,0x540F,0x6817,0x4E3D,0x5389,0x52B1,
|
||||
0x783E,0x5386,0x5229,0x5088,0x4F8B,0x4FD0,0x75E2,0x7ACB,
|
||||
0x7C92,0x6CA5,0x96B6,0x529B,0x7483,0x54E9,0x4FE9,0x8054,
|
||||
0x83B2,0x8FDE,0x9570,0x5EC9,0x601C,0x6D9F,0x5E18,0x655B,
|
||||
0x8138,0x94FE,0x604B,0x70BC,0x7EC3,0x7CAE,0x51C9,0x6881,
|
||||
0x7CB1,0x826F,0x4E24,0x8F86,0x91CF,0x667E,0x4EAE,0x8C05,
|
||||
0x64A9,0x804A,0x50DA,0x7597,0x71CE,0x5BE5,0x8FBD,0x6F66,
|
||||
0x4E86,0x6482,0x9563,0x5ED6,0x6599,0x5217,0x88C2,0x70C8,
|
||||
0x52A3,0x730E,0x7433,0x6797,0x78F7,0x9716,0x4E34,0x90BB,
|
||||
0x9CDE,0x6DCB,0x51DB,0x8D41,0x541D,0x62CE,0x73B2,0x83F1,
|
||||
0x96F6,0x9F84,0x94C3,0x4F36,0x7F9A,0x51CC,0x7075,0x9675,
|
||||
0x5CAD,0x9886,0x53E6,0x4EE4,0x6E9C,0x7409,0x69B4,0x786B,
|
||||
0x998F,0x7559,0x5218,0x7624,0x6D41,0x67F3,0x516D,0x9F99,
|
||||
0x804B,0x5499,0x7B3C,0x7ABF,0x9686,0x5784,0x62E2,0x9647,
|
||||
0x697C,0x5A04,0x6402,0x7BD3,0x6F0F,0x964B,0x82A6,0x5362,
|
||||
0x9885,0x5E90,0x7089,0x63B3,0x5364,0x864F,0x9C81,0x9E93,
|
||||
0x788C,0x9732,0x8DEF,0x8D42,0x9E7F,0x6F5E,0x7984,0x5F55,
|
||||
0x9646,0x622E,0x9A74,0x5415,0x94DD,0x4FA3,0x65C5,0x5C65,
|
||||
0x5C61,0x7F15,0x8651,0x6C2F,0x5F8B,0x7387,0x6EE4,0x7EFF,
|
||||
0x5CE6,0x631B,0x5B6A,0x6EE6,0x5375,0x4E71,0x63A0,0x7565,
|
||||
0x62A1,0x8F6E,0x4F26,0x4ED1,0x6CA6,0x7EB6,0x8BBA,0x841D,
|
||||
0x87BA,0x7F57,0x903B,0x9523,0x7BA9,0x9AA1,0x88F8,0x843D,
|
||||
0x6D1B,0x9A86,0x7EDC,0x5988,0x9EBB,0x739B,0x7801,0x8682,
|
||||
0x9A6C,0x9A82,0x561B,0x5417,0x57CB,0x4E70,0x9EA6,0x5356,
|
||||
0x8FC8,0x8109,0x7792,0x9992,0x86EE,0x6EE1,0x8513,0x66FC,
|
||||
0x6162,0x6F2B,0x8C29,0x8292,0x832B,0x76F2,0x6C13,0x5FD9,
|
||||
0x83BD,0x732B,0x8305,0x951A,0x6BDB,0x77DB,0x94C6,0x536F,
|
||||
0x8302,0x5192,0x5E3D,0x8C8C,0x8D38,0x4E48,0x73AB,0x679A,
|
||||
0x6885,0x9176,0x9709,0x7164,0x6CA1,0x7709,0x5A92,0x9541,
|
||||
0x6BCF,0x7F8E,0x6627,0x5BD0,0x59B9,0x5A9A,0x95E8,0x95F7,
|
||||
0x4EEC,0x840C,0x8499,0x6AAC,0x76DF,0x9530,0x731B,0x68A6,
|
||||
0x5B5F,0x772F,0x919A,0x9761,0x7CDC,0x8FF7,0x8C1C,0x5F25,
|
||||
0x7C73,0x79D8,0x89C5,0x6CCC,0x871C,0x5BC6,0x5E42,0x68C9,
|
||||
0x7720,0x7EF5,0x5195,0x514D,0x52C9,0x5A29,0x7F05,0x9762,
|
||||
0x82D7,0x63CF,0x7784,0x85D0,0x79D2,0x6E3A,0x5E99,0x5999,
|
||||
0x8511,0x706D,0x6C11,0x62BF,0x76BF,0x654F,0x60AF,0x95FD,
|
||||
0x660E,0x879F,0x9E23,0x94ED,0x540D,0x547D,0x8C2C,0x6478,
|
||||
0x6479,0x8611,0x6A21,0x819C,0x78E8,0x6469,0x9B54,0x62B9,
|
||||
0x672B,0x83AB,0x58A8,0x9ED8,0x6CAB,0x6F20,0x5BDE,0x964C,
|
||||
0x8C0B,0x725F,0x67D0,0x62C7,0x7261,0x4EA9,0x59C6,0x6BCD,
|
||||
0x5893,0x66AE,0x5E55,0x52DF,0x6155,0x6728,0x76EE,0x7766,
|
||||
0x7267,0x7A46,0x62FF,0x54EA,0x5450,0x94A0,0x90A3,0x5A1C,
|
||||
0x7EB3,0x6C16,0x4E43,0x5976,0x8010,0x5948,0x5357,0x7537,
|
||||
0x96BE,0x56CA,0x6320,0x8111,0x607C,0x95F9,0x6DD6,0x5462,
|
||||
0x9981,0x5185,0x5AE9,0x80FD,0x59AE,0x9713,0x502A,0x6CE5,
|
||||
0x5C3C,0x62DF,0x4F60,0x533F,0x817B,0x9006,0x6EBA,0x852B,
|
||||
0x62C8,0x5E74,0x78BE,0x64B5,0x637B,0x5FF5,0x5A18,0x917F,
|
||||
0x9E1F,0x5C3F,0x634F,0x8042,0x5B7D,0x556E,0x954A,0x954D,
|
||||
0x6D85,0x60A8,0x67E0,0x72DE,0x51DD,0x5B81,0x62E7,0x6CDE,
|
||||
0x725B,0x626D,0x94AE,0x7EBD,0x8113,0x6D53,0x519C,0x5F04,
|
||||
0x5974,0x52AA,0x6012,0x5973,0x6696,0x8650,0x759F,0x632A,
|
||||
0x61E6,0x7CEF,0x8BFA,0x54E6,0x6B27,0x9E25,0x6BB4,0x85D5,
|
||||
0x5455,0x5076,0x6CA4,0x556A,0x8DB4,0x722C,0x5E15,0x6015,
|
||||
0x7436,0x62CD,0x6392,0x724C,0x5F98,0x6E43,0x6D3E,0x6500,
|
||||
0x6F58,0x76D8,0x78D0,0x76FC,0x7554,0x5224,0x53DB,0x4E53,
|
||||
0x5E9E,0x65C1,0x802A,0x80D6,0x629B,0x5486,0x5228,0x70AE,
|
||||
0x888D,0x8DD1,0x6CE1,0x5478,0x80DA,0x57F9,0x88F4,0x8D54,
|
||||
0x966A,0x914D,0x4F69,0x6C9B,0x55B7,0x76C6,0x7830,0x62A8,
|
||||
0x70F9,0x6F8E,0x5F6D,0x84EC,0x68DA,0x787C,0x7BF7,0x81A8,
|
||||
0x670B,0x9E4F,0x6367,0x78B0,0x576F,0x7812,0x9739,0x6279,
|
||||
0x62AB,0x5288,0x7435,0x6BD7,0x5564,0x813E,0x75B2,0x76AE,
|
||||
0x5339,0x75DE,0x50FB,0x5C41,0x8B6C,0x7BC7,0x504F,0x7247,
|
||||
0x9A97,0x98D8,0x6F02,0x74E2,0x7968,0x6487,0x77A5,0x62FC,
|
||||
0x9891,0x8D2B,0x54C1,0x8058,0x4E52,0x576A,0x82F9,0x840D,
|
||||
0x5E73,0x51ED,0x74F6,0x8BC4,0x5C4F,0x5761,0x6CFC,0x9887,
|
||||
0x5A46,0x7834,0x9B44,0x8FEB,0x7C95,0x5256,0x6251,0x94FA,
|
||||
0x4EC6,0x8386,0x8461,0x83E9,0x84B2,0x57D4,0x6734,0x5703,
|
||||
0x666E,0x6D66,0x8C31,0x66DD,0x7011,0x671F,0x6B3A,0x6816,
|
||||
0x621A,0x59BB,0x4E03,0x51C4,0x6F06,0x67D2,0x6C8F,0x5176,
|
||||
0x68CB,0x5947,0x6B67,0x7566,0x5D0E,0x8110,0x9F50,0x65D7,
|
||||
0x7948,0x7941,0x9A91,0x8D77,0x5C82,0x4E5E,0x4F01,0x542F,
|
||||
0x5951,0x780C,0x5668,0x6C14,0x8FC4,0x5F03,0x6C7D,0x6CE3,
|
||||
0x8BAB,0x6390,0x6070,0x6D3D,0x7275,0x6266,0x948E,0x94C5,
|
||||
0x5343,0x8FC1,0x7B7E,0x4EDF,0x8C26,0x4E7E,0x9ED4,0x94B1,
|
||||
0x94B3,0x524D,0x6F5C,0x9063,0x6D45,0x8C34,0x5811,0x5D4C,
|
||||
0x6B20,0x6B49,0x67AA,0x545B,0x8154,0x7F8C,0x5899,0x8537,
|
||||
0x5F3A,0x62A2,0x6A47,0x9539,0x6572,0x6084,0x6865,0x77A7,
|
||||
0x4E54,0x4FA8,0x5DE7,0x9798,0x64AC,0x7FD8,0x5CED,0x4FCF,
|
||||
0x7A8D,0x5207,0x8304,0x4E14,0x602F,0x7A83,0x94A6,0x4FB5,
|
||||
0x4EB2,0x79E6,0x7434,0x52E4,0x82B9,0x64D2,0x79BD,0x5BDD,
|
||||
0x6C81,0x9752,0x8F7B,0x6C22,0x503E,0x537F,0x6E05,0x64CE,
|
||||
0x6674,0x6C30,0x60C5,0x9877,0x8BF7,0x5E86,0x743C,0x7A77,
|
||||
0x79CB,0x4E18,0x90B1,0x7403,0x6C42,0x56DA,0x914B,0x6CC5,
|
||||
0x8D8B,0x533A,0x86C6,0x66F2,0x8EAF,0x5C48,0x9A71,0x6E20,
|
||||
0x53D6,0x5A36,0x9F8B,0x8DA3,0x53BB,0x5708,0x98A7,0x6743,
|
||||
0x919B,0x6CC9,0x5168,0x75CA,0x62F3,0x72AC,0x5238,0x529D,
|
||||
0x7F3A,0x7094,0x7638,0x5374,0x9E4A,0x69B7,0x786E,0x96C0,
|
||||
0x88D9,0x7FA4,0x7136,0x71C3,0x5189,0x67D3,0x74E4,0x58E4,
|
||||
0x6518,0x56B7,0x8BA9,0x9976,0x6270,0x7ED5,0x60F9,0x70ED,
|
||||
0x58EC,0x4EC1,0x4EBA,0x5FCD,0x97E7,0x4EFB,0x8BA4,0x5203,
|
||||
0x598A,0x7EAB,0x6254,0x4ECD,0x65E5,0x620E,0x8338,0x84C9,
|
||||
0x8363,0x878D,0x7194,0x6EB6,0x5BB9,0x7ED2,0x5197,0x63C9,
|
||||
0x67D4,0x8089,0x8339,0x8815,0x5112,0x5B7A,0x5982,0x8FB1,
|
||||
0x4E73,0x6C5D,0x5165,0x8925,0x8F6F,0x962E,0x854A,0x745E,
|
||||
0x9510,0x95F0,0x6DA6,0x82E5,0x5F31,0x6492,0x6D12,0x8428,
|
||||
0x816E,0x9CC3,0x585E,0x8D5B,0x4E09,0x53C1,0x4F1E,0x6563,
|
||||
0x6851,0x55D3,0x4E27,0x6414,0x9A9A,0x626B,0x5AC2,0x745F,
|
||||
0x8272,0x6DA9,0x68EE,0x50E7,0x838E,0x7802,0x6740,0x5239,
|
||||
0x6C99,0x7EB1,0x50BB,0x5565,0x715E,0x7B5B,0x6652,0x73CA,
|
||||
0x82EB,0x6749,0x5C71,0x5220,0x717D,0x886B,0x95EA,0x9655,
|
||||
0x64C5,0x8D61,0x81B3,0x5584,0x6C55,0x6247,0x7F2E,0x5892,
|
||||
0x4F24,0x5546,0x8D4F,0x664C,0x4E0A,0x5C1A,0x88F3,0x68A2,
|
||||
0x634E,0x7A0D,0x70E7,0x828D,0x52FA,0x97F6,0x5C11,0x54E8,
|
||||
0x90B5,0x7ECD,0x5962,0x8D4A,0x86C7,0x820C,0x820D,0x8D66,
|
||||
0x6444,0x5C04,0x6151,0x6D89,0x793E,0x8BBE,0x7837,0x7533,
|
||||
0x547B,0x4F38,0x8EAB,0x6DF1,0x5A20,0x7EC5,0x795E,0x6C88,
|
||||
0x5BA1,0x5A76,0x751A,0x80BE,0x614E,0x6E17,0x58F0,0x751F,
|
||||
0x7525,0x7272,0x5347,0x7EF3,0x7701,0x76DB,0x5269,0x80DC,
|
||||
0x5723,0x5E08,0x5931,0x72EE,0x65BD,0x6E7F,0x8BD7,0x5C38,
|
||||
0x8671,0x5341,0x77F3,0x62FE,0x65F6,0x4EC0,0x98DF,0x8680,
|
||||
0x5B9E,0x8BC6,0x53F2,0x77E2,0x4F7F,0x5C4E,0x9A76,0x59CB,
|
||||
0x5F0F,0x793A,0x58EB,0x4E16,0x67FF,0x4E8B,0x62ED,0x8A93,
|
||||
0x901D,0x52BF,0x662F,0x55DC,0x566C,0x9002,0x4ED5,0x4F8D,
|
||||
0x91CA,0x9970,0x6C0F,0x5E02,0x6043,0x5BA4,0x89C6,0x8BD5,
|
||||
0x6536,0x624B,0x9996,0x5B88,0x5BFF,0x6388,0x552E,0x53D7,
|
||||
0x7626,0x517D,0x852C,0x67A2,0x68B3,0x6B8A,0x6292,0x8F93,
|
||||
0x53D4,0x8212,0x6DD1,0x758F,0x4E66,0x8D4E,0x5B70,0x719F,
|
||||
0x85AF,0x6691,0x66D9,0x7F72,0x8700,0x9ECD,0x9F20,0x5C5E,
|
||||
0x672F,0x8FF0,0x6811,0x675F,0x620D,0x7AD6,0x5885,0x5EB6,
|
||||
0x6570,0x6F31,0x6055,0x5237,0x800D,0x6454,0x8870,0x7529,
|
||||
0x5E05,0x6813,0x62F4,0x971C,0x53CC,0x723D,0x8C01,0x6C34,
|
||||
0x7761,0x7A0E,0x542E,0x77AC,0x987A,0x821C,0x8BF4,0x7855,
|
||||
0x6714,0x70C1,0x65AF,0x6495,0x5636,0x601D,0x79C1,0x53F8,
|
||||
0x4E1D,0x6B7B,0x8086,0x5BFA,0x55E3,0x56DB,0x4F3A,0x4F3C,
|
||||
0x9972,0x5DF3,0x677E,0x8038,0x6002,0x9882,0x9001,0x5B8B,
|
||||
0x8BBC,0x8BF5,0x641C,0x8258,0x64DE,0x55FD,0x82CF,0x9165,
|
||||
0x4FD7,0x7D20,0x901F,0x7C9F,0x50F3,0x5851,0x6EAF,0x5BBF,
|
||||
0x8BC9,0x8083,0x9178,0x849C,0x7B97,0x867D,0x968B,0x968F,
|
||||
0x7EE5,0x9AD3,0x788E,0x5C81,0x7A57,0x9042,0x96A7,0x795F,
|
||||
0x5B59,0x635F,0x7B0B,0x84D1,0x68AD,0x5506,0x7F29,0x7410,
|
||||
0x7D22,0x9501,0x6240,0x584C,0x4ED6,0x5B83,0x5979,0x5854,
|
||||
0x736D,0x631E,0x8E4B,0x8E0F,0x80CE,0x82D4,0x62AC,0x53F0,
|
||||
0x6CF0,0x915E,0x592A,0x6001,0x6C70,0x574D,0x644A,0x8D2A,
|
||||
0x762B,0x6EE9,0x575B,0x6A80,0x75F0,0x6F6D,0x8C2D,0x8C08,
|
||||
0x5766,0x6BEF,0x8892,0x78B3,0x63A2,0x53F9,0x70AD,0x6C64,
|
||||
0x5858,0x642A,0x5802,0x68E0,0x819B,0x5510,0x7CD6,0x5018,
|
||||
0x8EBA,0x6DCC,0x8D9F,0x70EB,0x638F,0x6D9B,0x6ED4,0x7EE6,
|
||||
0x8404,0x6843,0x9003,0x6DD8,0x9676,0x8BA8,0x5957,0x7279,
|
||||
0x85E4,0x817E,0x75BC,0x8A8A,0x68AF,0x5254,0x8E22,0x9511,
|
||||
0x63D0,0x9898,0x8E44,0x557C,0x4F53,0x66FF,0x568F,0x60D5,
|
||||
0x6D95,0x5243,0x5C49,0x5929,0x6DFB,0x586B,0x7530,0x751C,
|
||||
0x606C,0x8214,0x8146,0x6311,0x6761,0x8FE2,0x773A,0x8DF3,
|
||||
0x8D34,0x94C1,0x5E16,0x5385,0x542C,0x70C3,0x6C40,0x5EF7,
|
||||
0x505C,0x4EAD,0x5EAD,0x633A,0x8247,0x901A,0x6850,0x916E,
|
||||
0x77B3,0x540C,0x94DC,0x5F64,0x7AE5,0x6876,0x6345,0x7B52,
|
||||
0x7EDF,0x75DB,0x5077,0x6295,0x5934,0x900F,0x51F8,0x79C3,
|
||||
0x7A81,0x56FE,0x5F92,0x9014,0x6D82,0x5C60,0x571F,0x5410,
|
||||
0x5154,0x6E4D,0x56E2,0x63A8,0x9893,0x817F,0x8715,0x892A,
|
||||
0x9000,0x541E,0x5C6F,0x81C0,0x62D6,0x6258,0x8131,0x9E35,
|
||||
0x9640,0x9A6E,0x9A7C,0x692D,0x59A5,0x62D3,0x553E,0x6316,
|
||||
0x54C7,0x86D9,0x6D3C,0x5A03,0x74E6,0x889C,0x6B6A,0x5916,
|
||||
0x8C4C,0x5F2F,0x6E7E,0x73A9,0x987D,0x4E38,0x70F7,0x5B8C,
|
||||
0x7897,0x633D,0x665A,0x7696,0x60CB,0x5B9B,0x5A49,0x4E07,
|
||||
0x8155,0x6C6A,0x738B,0x4EA1,0x6789,0x7F51,0x5F80,0x65FA,
|
||||
0x671B,0x5FD8,0x5984,0x5A01,0x5DCD,0x5FAE,0x5371,0x97E6,
|
||||
0x8FDD,0x6845,0x56F4,0x552F,0x60DF,0x4E3A,0x6F4D,0x7EF4,
|
||||
0x82C7,0x840E,0x59D4,0x4F1F,0x4F2A,0x5C3E,0x7EAC,0x672A,
|
||||
0x851A,0x5473,0x754F,0x80C3,0x5582,0x9B4F,0x4F4D,0x6E2D,
|
||||
0x8C13,0x5C09,0x6170,0x536B,0x761F,0x6E29,0x868A,0x6587,
|
||||
0x95FB,0x7EB9,0x543B,0x7A33,0x7D0A,0x95EE,0x55E1,0x7FC1,
|
||||
0x74EE,0x631D,0x8717,0x6DA1,0x7A9D,0x6211,0x65A1,0x5367,
|
||||
0x63E1,0x6C83,0x5DEB,0x545C,0x94A8,0x4E4C,0x6C61,0x8BEC,
|
||||
0x5C4B,0x65E0,0x829C,0x68A7,0x543E,0x5434,0x6BCB,0x6B66,
|
||||
0x4E94,0x6342,0x5348,0x821E,0x4F0D,0x4FAE,0x575E,0x620A,
|
||||
0x96FE,0x6664,0x7269,0x52FF,0x52A1,0x609F,0x8BEF,0x6614,
|
||||
0x7199,0x6790,0x897F,0x7852,0x77FD,0x6670,0x563B,0x5438,
|
||||
0x9521,0x727A,0x7A00,0x606F,0x5E0C,0x6089,0x819D,0x5915,
|
||||
0x60DC,0x7184,0x70EF,0x6EAA,0x6C50,0x7280,0x6A84,0x88AD,
|
||||
0x5E2D,0x4E60,0x5AB3,0x559C,0x94E3,0x6D17,0x7CFB,0x9699,
|
||||
0x620F,0x7EC6,0x778E,0x867E,0x5323,0x971E,0x8F96,0x6687,
|
||||
0x5CE1,0x4FA0,0x72ED,0x4E0B,0x53A6,0x590F,0x5413,0x6380,
|
||||
0x9528,0x5148,0x4ED9,0x9C9C,0x7EA4,0x54B8,0x8D24,0x8854,
|
||||
0x8237,0x95F2,0x6D8E,0x5F26,0x5ACC,0x663E,0x9669,0x73B0,
|
||||
0x732E,0x53BF,0x817A,0x9985,0x7FA1,0x5BAA,0x9677,0x9650,
|
||||
0x7EBF,0x76F8,0x53A2,0x9576,0x9999,0x7BB1,0x8944,0x6E58,
|
||||
0x4E61,0x7FD4,0x7965,0x8BE6,0x60F3,0x54CD,0x4EAB,0x9879,
|
||||
0x5DF7,0x6A61,0x50CF,0x5411,0x8C61,0x8427,0x785D,0x9704,
|
||||
0x524A,0x54EE,0x56A3,0x9500,0x6D88,0x5BB5,0x6DC6,0x6653,
|
||||
0x5C0F,0x5B5D,0x6821,0x8096,0x5578,0x7B11,0x6548,0x6954,
|
||||
0x4E9B,0x6B47,0x874E,0x978B,0x534F,0x631F,0x643A,0x90AA,
|
||||
0x659C,0x80C1,0x8C10,0x5199,0x68B0,0x5378,0x87F9,0x61C8,
|
||||
0x6CC4,0x6CFB,0x8C22,0x5C51,0x85AA,0x82AF,0x950C,0x6B23,
|
||||
0x8F9B,0x65B0,0x5FFB,0x5FC3,0x4FE1,0x8845,0x661F,0x8165,
|
||||
0x7329,0x60FA,0x5174,0x5211,0x578B,0x5F62,0x90A2,0x884C,
|
||||
0x9192,0x5E78,0x674F,0x6027,0x59D3,0x5144,0x51F6,0x80F8,
|
||||
0x5308,0x6C79,0x96C4,0x718A,0x4F11,0x4FEE,0x7F9E,0x673D,
|
||||
0x55C5,0x9508,0x79C0,0x8896,0x7EE3,0x589F,0x620C,0x9700,
|
||||
0x865A,0x5618,0x987B,0x5F90,0x8BB8,0x84C4,0x9157,0x53D9,
|
||||
0x65ED,0x5E8F,0x755C,0x6064,0x7D6E,0x5A7F,0x7EEA,0x7EED,
|
||||
0x8F69,0x55A7,0x5BA3,0x60AC,0x65CB,0x7384,0x9009,0x7663,
|
||||
0x7729,0x7EDA,0x9774,0x859B,0x5B66,0x7A74,0x96EA,0x8840,
|
||||
0x52CB,0x718F,0x5FAA,0x65EC,0x8BE2,0x5BFB,0x9A6F,0x5DE1,
|
||||
0x6B89,0x6C5B,0x8BAD,0x8BAF,0x900A,0x8FC5,0x538B,0x62BC,
|
||||
0x9E26,0x9E2D,0x5440,0x4E2B,0x82BD,0x7259,0x869C,0x5D16,
|
||||
0x8859,0x6DAF,0x96C5,0x54D1,0x4E9A,0x8BB6,0x7109,0x54BD,
|
||||
0x9609,0x70DF,0x6DF9,0x76D0,0x4E25,0x7814,0x8712,0x5CA9,
|
||||
0x5EF6,0x8A00,0x989C,0x960E,0x708E,0x6CBF,0x5944,0x63A9,
|
||||
0x773C,0x884D,0x6F14,0x8273,0x5830,0x71D5,0x538C,0x781A,
|
||||
0x96C1,0x5501,0x5F66,0x7130,0x5BB4,0x8C1A,0x9A8C,0x6B83,
|
||||
0x592E,0x9E2F,0x79E7,0x6768,0x626C,0x4F6F,0x75A1,0x7F8A,
|
||||
0x6D0B,0x9633,0x6C27,0x4EF0,0x75D2,0x517B,0x6837,0x6F3E,
|
||||
0x9080,0x8170,0x5996,0x7476,0x6447,0x5C27,0x9065,0x7A91,
|
||||
0x8C23,0x59DA,0x54AC,0x8200,0x836F,0x8981,0x8000,0x6930,
|
||||
0x564E,0x8036,0x7237,0x91CE,0x51B6,0x4E5F,0x9875,0x6396,
|
||||
0x4E1A,0x53F6,0x66F3,0x814B,0x591C,0x6DB2,0x4E00,0x58F9,
|
||||
0x533B,0x63D6,0x94F1,0x4F9D,0x4F0A,0x8863,0x9890,0x5937,
|
||||
0x9057,0x79FB,0x4EEA,0x80F0,0x7591,0x6C82,0x5B9C,0x59E8,
|
||||
0x5F5D,0x6905,0x8681,0x501A,0x5DF2,0x4E59,0x77E3,0x4EE5,
|
||||
0x827A,0x6291,0x6613,0x9091,0x5C79,0x4EBF,0x5F79,0x81C6,
|
||||
0x9038,0x8084,0x75AB,0x4EA6,0x88D4,0x610F,0x6BC5,0x5FC6,
|
||||
0x4E49,0x76CA,0x6EA2,0x8BE3,0x8BAE,0x8C0A,0x8BD1,0x5F02,
|
||||
0x7FFC,0x7FCC,0x7ECE,0x8335,0x836B,0x56E0,0x6BB7,0x97F3,
|
||||
0x9634,0x59FB,0x541F,0x94F6,0x6DEB,0x5BC5,0x996E,0x5C39,
|
||||
0x5F15,0x9690,0x5370,0x82F1,0x6A31,0x5A74,0x9E70,0x5E94,
|
||||
0x7F28,0x83B9,0x8424,0x8425,0x8367,0x8747,0x8FCE,0x8D62,
|
||||
0x76C8,0x5F71,0x9896,0x786C,0x6620,0x54DF,0x62E5,0x4F63,
|
||||
0x81C3,0x75C8,0x5EB8,0x96CD,0x8E0A,0x86F9,0x548F,0x6CF3,
|
||||
0x6D8C,0x6C38,0x607F,0x52C7,0x7528,0x5E7D,0x4F18,0x60A0,
|
||||
0x5FE7,0x5C24,0x7531,0x90AE,0x94C0,0x72B9,0x6CB9,0x6E38,
|
||||
0x9149,0x6709,0x53CB,0x53F3,0x4F51,0x91C9,0x8BF1,0x53C8,
|
||||
0x5E7C,0x8FC2,0x6DE4,0x4E8E,0x76C2,0x6986,0x865E,0x611A,
|
||||
0x8206,0x4F59,0x4FDE,0x903E,0x9C7C,0x6109,0x6E1D,0x6E14,
|
||||
0x9685,0x4E88,0x5A31,0x96E8,0x4E0E,0x5C7F,0x79B9,0x5B87,
|
||||
0x8BED,0x7FBD,0x7389,0x57DF,0x828B,0x90C1,0x5401,0x9047,
|
||||
0x55BB,0x5CEA,0x5FA1,0x6108,0x6B32,0x72F1,0x80B2,0x8A89,
|
||||
0x6D74,0x5BD3,0x88D5,0x9884,0x8C6B,0x9A6D,0x9E33,0x6E0A,
|
||||
0x51A4,0x5143,0x57A3,0x8881,0x539F,0x63F4,0x8F95,0x56ED,
|
||||
0x5458,0x5706,0x733F,0x6E90,0x7F18,0x8FDC,0x82D1,0x613F,
|
||||
0x6028,0x9662,0x66F0,0x7EA6,0x8D8A,0x8DC3,0x94A5,0x5CB3,
|
||||
0x7CA4,0x6708,0x60A6,0x9605,0x8018,0x4E91,0x90E7,0x5300,
|
||||
0x9668,0x5141,0x8FD0,0x8574,0x915D,0x6655,0x97F5,0x5B55,
|
||||
0x531D,0x7838,0x6742,0x683D,0x54C9,0x707E,0x5BB0,0x8F7D,
|
||||
0x518D,0x5728,0x54B1,0x6512,0x6682,0x8D5E,0x8D43,0x810F,
|
||||
0x846C,0x906D,0x7CDF,0x51FF,0x85FB,0x67A3,0x65E9,0x6FA1,
|
||||
0x86A4,0x8E81,0x566A,0x9020,0x7682,0x7076,0x71E5,0x8D23,
|
||||
0x62E9,0x5219,0x6CFD,0x8D3C,0x600E,0x589E,0x618E,0x66FE,
|
||||
0x8D60,0x624E,0x55B3,0x6E23,0x672D,0x8F67,0x94E1,0x95F8,
|
||||
0x7728,0x6805,0x69A8,0x548B,0x4E4D,0x70B8,0x8BC8,0x6458,
|
||||
0x658B,0x5B85,0x7A84,0x503A,0x5BE8,0x77BB,0x6BE1,0x8A79,
|
||||
0x7C98,0x6CBE,0x76CF,0x65A9,0x8F97,0x5D2D,0x5C55,0x8638,
|
||||
0x6808,0x5360,0x6218,0x7AD9,0x6E5B,0x7EFD,0x6A1F,0x7AE0,
|
||||
0x5F70,0x6F33,0x5F20,0x638C,0x6DA8,0x6756,0x4E08,0x5E10,
|
||||
0x8D26,0x4ED7,0x80C0,0x7634,0x969C,0x62DB,0x662D,0x627E,
|
||||
0x6CBC,0x8D75,0x7167,0x7F69,0x5146,0x8087,0x53EC,0x906E,
|
||||
0x6298,0x54F2,0x86F0,0x8F99,0x8005,0x9517,0x8517,0x8FD9,
|
||||
0x6D59,0x73CD,0x659F,0x771F,0x7504,0x7827,0x81FB,0x8D1E,
|
||||
0x9488,0x4FA6,0x6795,0x75B9,0x8BCA,0x9707,0x632F,0x9547,
|
||||
0x9635,0x84B8,0x6323,0x7741,0x5F81,0x72F0,0x4E89,0x6014,
|
||||
0x6574,0x62EF,0x6B63,0x653F,0x5E27,0x75C7,0x90D1,0x8BC1,
|
||||
0x829D,0x679D,0x652F,0x5431,0x8718,0x77E5,0x80A2,0x8102,
|
||||
0x6C41,0x4E4B,0x7EC7,0x804C,0x76F4,0x690D,0x6B96,0x6267,
|
||||
0x503C,0x4F84,0x5740,0x6307,0x6B62,0x8DBE,0x53EA,0x65E8,
|
||||
0x7EB8,0x5FD7,0x631A,0x63B7,0x81F3,0x81F4,0x7F6E,0x5E1C,
|
||||
0x5CD9,0x5236,0x667A,0x79E9,0x7A1A,0x8D28,0x7099,0x75D4,
|
||||
0x6EDE,0x6CBB,0x7A92,0x4E2D,0x76C5,0x5FE0,0x949F,0x8877,
|
||||
0x7EC8,0x79CD,0x80BF,0x91CD,0x4EF2,0x4F17,0x821F,0x5468,
|
||||
0x5DDE,0x6D32,0x8BCC,0x7CA5,0x8F74,0x8098,0x5E1A,0x5492,
|
||||
0x76B1,0x5B99,0x663C,0x9AA4,0x73E0,0x682A,0x86DB,0x6731,
|
||||
0x732A,0x8BF8,0x8BDB,0x9010,0x7AF9,0x70DB,0x716E,0x62C4,
|
||||
0x77A9,0x5631,0x4E3B,0x8457,0x67F1,0x52A9,0x86C0,0x8D2E,
|
||||
0x94F8,0x7B51,0x4F4F,0x6CE8,0x795D,0x9A7B,0x6293,0x722A,
|
||||
0x62FD,0x4E13,0x7816,0x8F6C,0x64B0,0x8D5A,0x7BC6,0x6869,
|
||||
0x5E84,0x88C5,0x5986,0x649E,0x58EE,0x72B6,0x690E,0x9525,
|
||||
0x8FFD,0x8D58,0x5760,0x7F00,0x8C06,0x51C6,0x6349,0x62D9,
|
||||
0x5353,0x684C,0x7422,0x8301,0x914C,0x5544,0x7740,0x707C,
|
||||
0x6D4A,0x5179,0x54A8,0x8D44,0x59FF,0x6ECB,0x6DC4,0x5B5C,
|
||||
0x7D2B,0x4ED4,0x7C7D,0x6ED3,0x5B50,0x81EA,0x6E0D,0x5B57,
|
||||
0x9B03,0x68D5,0x8E2A,0x5B97,0x7EFC,0x603B,0x7EB5,0x90B9,
|
||||
0x8D70,0x594F,0x63CD,0x79DF,0x8DB3,0x5352,0x65CF,0x7956,
|
||||
0x8BC5,0x963B,0x7EC4,0x94BB,0x7E82,0x5634,0x9189,0x6700,
|
||||
0x7F6A,0x5C0A,0x9075,0x6628,0x5DE6,0x4F50,0x67DE,0x505A,
|
||||
0x4F5C,0x5750,0x5EA7,0x2000,0x2000,0x2000,0x2000,0x2000,
|
||||
0x4E8D,0x4E0C,0x5140,0x4E10,0x5EFF,0x5345,0x4E15,0x4E98,
|
||||
0x4E1E,0x9B32,0x5B6C,0x5669,0x4E28,0x79BA,0x4E3F,0x5315,
|
||||
0x4E47,0x592D,0x723B,0x536E,0x6C10,0x56DF,0x80E4,0x9997,
|
||||
0x6BD3,0x777E,0x9F17,0x4E36,0x4E9F,0x9F10,0x4E5C,0x4E69,
|
||||
0x4E93,0x8288,0x5B5B,0x556C,0x560F,0x4EC4,0x538D,0x539D,
|
||||
0x53A3,0x53A5,0x53AE,0x9765,0x8D5D,0x531A,0x53F5,0x5326,
|
||||
0x532E,0x533E,0x8D5C,0x5366,0x5363,0x5202,0x5208,0x520E,
|
||||
0x522D,0x5233,0x523F,0x5240,0x524C,0x525E,0x5261,0x525C,
|
||||
0x84AF,0x527D,0x5282,0x5281,0x5290,0x5293,0x5182,0x7F54,
|
||||
0x4EBB,0x4EC3,0x4EC9,0x4EC2,0x4EE8,0x4EE1,0x4EEB,0x4EDE,
|
||||
0x4F1B,0x4EF3,0x4F22,0x4F64,0x4EF5,0x4F25,0x4F27,0x4F09,
|
||||
0x4F2B,0x4F5E,0x4F67,0x6538,0x4F5A,0x4F5D,0x4F5F,0x4F57,
|
||||
0x4F32,0x4F3D,0x4F76,0x4F74,0x4F91,0x4F89,0x4F83,0x4F8F,
|
||||
0x4F7E,0x4F7B,0x4FAA,0x4F7C,0x4FAC,0x4F94,0x4FE6,0x4FE8,
|
||||
0x4FEA,0x4FC5,0x4FDA,0x4FE3,0x4FDC,0x4FD1,0x4FDF,0x4FF8,
|
||||
0x5029,0x504C,0x4FF3,0x502C,0x500F,0x502E,0x502D,0x4FFE,
|
||||
0x501C,0x500C,0x5025,0x5028,0x507E,0x5043,0x5055,0x5048,
|
||||
0x504E,0x506C,0x507B,0x50A5,0x50A7,0x50A9,0x50BA,0x50D6,
|
||||
0x5106,0x50ED,0x50EC,0x50E6,0x50EE,0x5107,0x510B,0x4EDD,
|
||||
0x6C3D,0x4F58,0x4F65,0x4FCE,0x9FA0,0x6C46,0x7C74,0x516E,
|
||||
0x5DFD,0x9EC9,0x9998,0x5181,0x5914,0x52F9,0x530D,0x8A07,
|
||||
0x5310,0x51EB,0x5919,0x5155,0x4EA0,0x5156,0x4EB3,0x886E,
|
||||
0x88A4,0x4EB5,0x8114,0x88D2,0x7980,0x5B34,0x8803,0x7FB8,
|
||||
0x51AB,0x51B1,0x51BD,0x51BC,0x51C7,0x5196,0x51A2,0x51A5,
|
||||
0x8BA0,0x8BA6,0x8BA7,0x8BAA,0x8BB4,0x8BB5,0x8BB7,0x8BC2,
|
||||
0x8BC3,0x8BCB,0x8BCF,0x8BCE,0x8BD2,0x8BD3,0x8BD4,0x8BD6,
|
||||
0x8BD8,0x8BD9,0x8BDC,0x8BDF,0x8BE0,0x8BE4,0x8BE8,0x8BE9,
|
||||
0x8BEE,0x8BF0,0x8BF3,0x8BF6,0x8BF9,0x8BFC,0x8BFF,0x8C00,
|
||||
0x8C02,0x8C04,0x8C07,0x8C0C,0x8C0F,0x8C11,0x8C12,0x8C14,
|
||||
0x8C15,0x8C16,0x8C19,0x8C1B,0x8C18,0x8C1D,0x8C1F,0x8C20,
|
||||
0x8C21,0x8C25,0x8C27,0x8C2A,0x8C2B,0x8C2E,0x8C2F,0x8C32,
|
||||
0x8C33,0x8C35,0x8C36,0x5369,0x537A,0x961D,0x9622,0x9621,
|
||||
0x9631,0x962A,0x963D,0x963C,0x9642,0x9649,0x9654,0x965F,
|
||||
0x9667,0x966C,0x9672,0x9674,0x9688,0x968D,0x9697,0x96B0,
|
||||
0x9097,0x909B,0x909D,0x9099,0x90AC,0x90A1,0x90B4,0x90B3,
|
||||
0x90B6,0x90BA,0x90B8,0x90B0,0x90CF,0x90C5,0x90BE,0x90D0,
|
||||
0x90C4,0x90C7,0x90D3,0x90E6,0x90E2,0x90DC,0x90D7,0x90DB,
|
||||
0x90EB,0x90EF,0x90FE,0x9104,0x9122,0x911E,0x9123,0x9131,
|
||||
0x912F,0x9139,0x9143,0x9146,0x520D,0x5942,0x52A2,0x52AC,
|
||||
0x52AD,0x52BE,0x54FF,0x52D0,0x52D6,0x52F0,0x53DF,0x71EE,
|
||||
0x77CD,0x5EF4,0x51F5,0x51FC,0x9B2F,0x53B6,0x5F01,0x755A,
|
||||
0x5DEF,0x574C,0x57A9,0x57A1,0x587E,0x58BC,0x58C5,0x58D1,
|
||||
0x5729,0x572C,0x572A,0x5733,0x5739,0x572E,0x572F,0x575C,
|
||||
0x573B,0x5742,0x5769,0x5785,0x576B,0x5786,0x577C,0x577B,
|
||||
0x5768,0x576D,0x5776,0x5773,0x57AD,0x57A4,0x578C,0x57B2,
|
||||
0x57CF,0x57A7,0x57B4,0x5793,0x57A0,0x57D5,0x57D8,0x57DA,
|
||||
0x57D9,0x57D2,0x57B8,0x57F4,0x57EF,0x57F8,0x57E4,0x57DD,
|
||||
0x580B,0x580D,0x57FD,0x57ED,0x5800,0x581E,0x5819,0x5844,
|
||||
0x5820,0x5865,0x586C,0x5881,0x5889,0x589A,0x5880,0x99A8,
|
||||
0x9F19,0x61FF,0x8279,0x827D,0x827F,0x828F,0x828A,0x82A8,
|
||||
0x8284,0x828E,0x8291,0x8297,0x8299,0x82AB,0x82B8,0x82BE,
|
||||
0x82B0,0x82C8,0x82CA,0x82E3,0x8298,0x82B7,0x82AE,0x82CB,
|
||||
0x82CC,0x82C1,0x82A9,0x82B4,0x82A1,0x82AA,0x829F,0x82C4,
|
||||
0x82CE,0x82A4,0x82E1,0x8309,0x82F7,0x82E4,0x830F,0x8307,
|
||||
0x82DC,0x82F4,0x82D2,0x82D8,0x830C,0x82FB,0x82D3,0x8311,
|
||||
0x831A,0x8306,0x8314,0x8315,0x82E0,0x82D5,0x831C,0x8351,
|
||||
0x835B,0x835C,0x8308,0x8392,0x833C,0x8334,0x8331,0x839B,
|
||||
0x835E,0x832F,0x834F,0x8347,0x8343,0x835F,0x8340,0x8317,
|
||||
0x8360,0x832D,0x833A,0x8333,0x8366,0x8365,0x8368,0x831B,
|
||||
0x8369,0x836C,0x836A,0x836D,0x836E,0x83B0,0x8378,0x83B3,
|
||||
0x83B4,0x83A0,0x83AA,0x8393,0x839C,0x8385,0x837C,0x83B6,
|
||||
0x83A9,0x837D,0x83B8,0x837B,0x8398,0x839E,0x83A8,0x83BA,
|
||||
0x83BC,0x83C1,0x8401,0x83E5,0x83D8,0x5807,0x8418,0x840B,
|
||||
0x83DD,0x83FD,0x83D6,0x841C,0x8438,0x8411,0x8406,0x83D4,
|
||||
0x83DF,0x840F,0x8403,0x83F8,0x83F9,0x83EA,0x83C5,0x83C0,
|
||||
0x8426,0x83F0,0x83E1,0x845C,0x8451,0x845A,0x8459,0x8473,
|
||||
0x8487,0x8488,0x847A,0x8489,0x8478,0x843C,0x8446,0x8469,
|
||||
0x8476,0x848C,0x848E,0x8431,0x846D,0x84C1,0x84CD,0x84D0,
|
||||
0x84E6,0x84BD,0x84D3,0x84CA,0x84BF,0x84BA,0x84E0,0x84A1,
|
||||
0x84B9,0x84B4,0x8497,0x84E5,0x84E3,0x850C,0x750D,0x8538,
|
||||
0x84F0,0x8539,0x851F,0x853A,0x8556,0x853B,0x84FF,0x84FC,
|
||||
0x8559,0x8548,0x8568,0x8564,0x855E,0x857A,0x77A2,0x8543,
|
||||
0x8572,0x857B,0x85A4,0x85A8,0x8587,0x858F,0x8579,0x85AE,
|
||||
0x859C,0x8585,0x85B9,0x85B7,0x85B0,0x85D3,0x85C1,0x85DC,
|
||||
0x85FF,0x8627,0x8605,0x8629,0x8616,0x863C,0x5EFE,0x5F08,
|
||||
0x593C,0x5941,0x8037,0x5955,0x595A,0x5958,0x530F,0x5C22,
|
||||
0x5C25,0x5C2C,0x5C34,0x624C,0x626A,0x629F,0x62BB,0x62CA,
|
||||
0x62DA,0x62D7,0x62EE,0x6322,0x62F6,0x6339,0x634B,0x6343,
|
||||
0x63AD,0x63F6,0x6371,0x637A,0x638E,0x63B4,0x636D,0x63AC,
|
||||
0x638A,0x6369,0x63AE,0x63BC,0x63F2,0x63F8,0x63E0,0x63FF,
|
||||
0x63C4,0x63DE,0x63CE,0x6452,0x63C6,0x63BE,0x6445,0x6441,
|
||||
0x640B,0x641B,0x6420,0x640C,0x6426,0x6421,0x645E,0x6484,
|
||||
0x646D,0x6496,0x647A,0x64B7,0x64B8,0x6499,0x64BA,0x64C0,
|
||||
0x64D0,0x64D7,0x64E4,0x64E2,0x6509,0x6525,0x652E,0x5F0B,
|
||||
0x5FD2,0x7519,0x5F11,0x535F,0x53F1,0x53FD,0x53E9,0x53E8,
|
||||
0x53FB,0x5412,0x5416,0x5406,0x544B,0x5452,0x5453,0x5454,
|
||||
0x5456,0x5443,0x5421,0x5457,0x5459,0x5423,0x5432,0x5482,
|
||||
0x5494,0x5477,0x5471,0x5464,0x549A,0x549B,0x5484,0x5476,
|
||||
0x5466,0x549D,0x54D0,0x54AD,0x54C2,0x54B4,0x54D2,0x54A7,
|
||||
0x54A6,0x54D3,0x54D4,0x5472,0x54A3,0x54D5,0x54BB,0x54BF,
|
||||
0x54CC,0x54D9,0x54DA,0x54DC,0x54A9,0x54AA,0x54A4,0x54DD,
|
||||
0x54CF,0x54DE,0x551B,0x54E7,0x5520,0x54FD,0x5514,0x54F3,
|
||||
0x5522,0x5523,0x550F,0x5511,0x5527,0x552A,0x5567,0x558F,
|
||||
0x55B5,0x5549,0x556D,0x5541,0x5555,0x553F,0x5550,0x553C,
|
||||
0x5537,0x5556,0x5575,0x5576,0x5577,0x5533,0x5530,0x555C,
|
||||
0x558B,0x55D2,0x5583,0x55B1,0x55B9,0x5588,0x5581,0x559F,
|
||||
0x557E,0x55D6,0x5591,0x557B,0x55DF,0x55BD,0x55BE,0x5594,
|
||||
0x5599,0x55EA,0x55F7,0x55C9,0x561F,0x55D1,0x55EB,0x55EC,
|
||||
0x55D4,0x55E6,0x55DD,0x55C4,0x55EF,0x55E5,0x55F2,0x55F3,
|
||||
0x55CC,0x55CD,0x55E8,0x55F5,0x55E4,0x8F94,0x561E,0x5608,
|
||||
0x560C,0x5601,0x5624,0x5623,0x55FE,0x5600,0x5627,0x562D,
|
||||
0x5658,0x5639,0x5657,0x562C,0x564D,0x5662,0x5659,0x565C,
|
||||
0x564C,0x5654,0x5686,0x5664,0x5671,0x566B,0x567B,0x567C,
|
||||
0x5685,0x5693,0x56AF,0x56D4,0x56D7,0x56DD,0x56E1,0x56F5,
|
||||
0x56EB,0x56F9,0x56FF,0x5704,0x570A,0x5709,0x571C,0x5E0F,
|
||||
0x5E19,0x5E14,0x5E11,0x5E31,0x5E3B,0x5E3C,0x5E37,0x5E44,
|
||||
0x5E54,0x5E5B,0x5E5E,0x5E61,0x5C8C,0x5C7A,0x5C8D,0x5C90,
|
||||
0x5C96,0x5C88,0x5C98,0x5C99,0x5C91,0x5C9A,0x5C9C,0x5CB5,
|
||||
0x5CA2,0x5CBD,0x5CAC,0x5CAB,0x5CB1,0x5CA3,0x5CC1,0x5CB7,
|
||||
0x5CC4,0x5CD2,0x5CE4,0x5CCB,0x5CE5,0x5D02,0x5D03,0x5D27,
|
||||
0x5D26,0x5D2E,0x5D24,0x5D1E,0x5D06,0x5D1B,0x5D58,0x5D3E,
|
||||
0x5D34,0x5D3D,0x5D6C,0x5D5B,0x5D6F,0x5D5D,0x5D6B,0x5D4B,
|
||||
0x5D4A,0x5D69,0x5D74,0x5D82,0x5D99,0x5D9D,0x8C73,0x5DB7,
|
||||
0x5DC5,0x5F73,0x5F77,0x5F82,0x5F87,0x5F89,0x5F8C,0x5F95,
|
||||
0x5F99,0x5F9C,0x5FA8,0x5FAD,0x5FB5,0x5FBC,0x8862,0x5F61,
|
||||
0x72AD,0x72B0,0x72B4,0x72B7,0x72B8,0x72C3,0x72C1,0x72CE,
|
||||
0x72CD,0x72D2,0x72E8,0x72EF,0x72E9,0x72F2,0x72F4,0x72F7,
|
||||
0x7301,0x72F3,0x7303,0x72FA,0x72FB,0x7317,0x7313,0x7321,
|
||||
0x730A,0x731E,0x731D,0x7315,0x7322,0x7339,0x7325,0x732C,
|
||||
0x7338,0x7331,0x7350,0x734D,0x7357,0x7360,0x736C,0x736F,
|
||||
0x737E,0x821B,0x5925,0x98E7,0x5924,0x5902,0x9963,0x9967,
|
||||
0x9968,0x9969,0x996A,0x996B,0x996C,0x9974,0x9977,0x997D,
|
||||
0x9980,0x9984,0x9987,0x998A,0x998D,0x9990,0x9991,0x9993,
|
||||
0x9994,0x9995,0x5E80,0x5E91,0x5E8B,0x5E96,0x5EA5,0x5EA0,
|
||||
0x5EB9,0x5EB5,0x5EBE,0x5EB3,0x8D53,0x5ED2,0x5ED1,0x5EDB,
|
||||
0x5EE8,0x5EEA,0x81BA,0x5FC4,0x5FC9,0x5FD6,0x5FCF,0x6003,
|
||||
0x5FEE,0x6004,0x5FE1,0x5FE4,0x5FFE,0x6005,0x6006,0x5FEA,
|
||||
0x5FED,0x5FF8,0x6019,0x6035,0x6026,0x601B,0x600F,0x600D,
|
||||
0x6029,0x602B,0x600A,0x603F,0x6021,0x6078,0x6079,0x607B,
|
||||
0x607A,0x6042,0x606A,0x607D,0x6096,0x609A,0x60AD,0x609D,
|
||||
0x6083,0x6092,0x608C,0x609B,0x60EC,0x60BB,0x60B1,0x60DD,
|
||||
0x60D8,0x60C6,0x60DA,0x60B4,0x6120,0x6126,0x6115,0x6123,
|
||||
0x60F4,0x6100,0x610E,0x612B,0x614A,0x6175,0x61AC,0x6194,
|
||||
0x61A7,0x61B7,0x61D4,0x61F5,0x5FDD,0x96B3,0x95E9,0x95EB,
|
||||
0x95F1,0x95F3,0x95F5,0x95F6,0x95FC,0x95FE,0x9603,0x9604,
|
||||
0x9606,0x9608,0x960A,0x960B,0x960C,0x960D,0x960F,0x9612,
|
||||
0x9615,0x9616,0x9617,0x9619,0x961A,0x4E2C,0x723F,0x6215,
|
||||
0x6C35,0x6C54,0x6C5C,0x6C4A,0x6CA3,0x6C85,0x6C90,0x6C94,
|
||||
0x6C8C,0x6C68,0x6C69,0x6C74,0x6C76,0x6C86,0x6CA9,0x6CD0,
|
||||
0x6CD4,0x6CAD,0x6CF7,0x6CF8,0x6CF1,0x6CD7,0x6CB2,0x6CE0,
|
||||
0x6CD6,0x6CFA,0x6CEB,0x6CEE,0x6CB1,0x6CD3,0x6CEF,0x6CFE,
|
||||
0x6D39,0x6D27,0x6D0C,0x6D43,0x6D48,0x6D07,0x6D04,0x6D19,
|
||||
0x6D0E,0x6D2B,0x6D4D,0x6D2E,0x6D35,0x6D1A,0x6D4F,0x6D52,
|
||||
0x6D54,0x6D33,0x6D91,0x6D6F,0x6D9E,0x6DA0,0x6D5E,0x6D93,
|
||||
0x6D94,0x6D5C,0x6D60,0x6D7C,0x6D63,0x6E1A,0x6DC7,0x6DC5,
|
||||
0x6DDE,0x6E0E,0x6DBF,0x6DE0,0x6E11,0x6DE6,0x6DDD,0x6DD9,
|
||||
0x6E16,0x6DAB,0x6E0C,0x6DAE,0x6E2B,0x6E6E,0x6E4E,0x6E6B,
|
||||
0x6EB2,0x6E5F,0x6E86,0x6E53,0x6E54,0x6E32,0x6E25,0x6E44,
|
||||
0x6EDF,0x6EB1,0x6E98,0x6EE0,0x6F2D,0x6EE2,0x6EA5,0x6EA7,
|
||||
0x6EBD,0x6EBB,0x6EB7,0x6ED7,0x6EB4,0x6ECF,0x6E8F,0x6EC2,
|
||||
0x6E9F,0x6F62,0x6F46,0x6F47,0x6F24,0x6F15,0x6EF9,0x6F2F,
|
||||
0x6F36,0x6F4B,0x6F74,0x6F2A,0x6F09,0x6F29,0x6F89,0x6F8D,
|
||||
0x6F8C,0x6F78,0x6F72,0x6F7C,0x6F7A,0x6FD1,0x6FC9,0x6FA7,
|
||||
0x6FB9,0x6FB6,0x6FC2,0x6FE1,0x6FEE,0x6FDE,0x6FE0,0x6FEF,
|
||||
0x701A,0x7023,0x701B,0x7039,0x7035,0x704F,0x705E,0x5B80,
|
||||
0x5B84,0x5B95,0x5B93,0x5BA5,0x5BB8,0x752F,0x9A9E,0x6434,
|
||||
0x5BE4,0x5BEE,0x8930,0x5BF0,0x8E47,0x8B07,0x8FB6,0x8FD3,
|
||||
0x8FD5,0x8FE5,0x8FEE,0x8FE4,0x8FE9,0x8FE6,0x8FF3,0x8FE8,
|
||||
0x9005,0x9004,0x900B,0x9026,0x9011,0x900D,0x9016,0x9021,
|
||||
0x9035,0x9036,0x902D,0x902F,0x9044,0x9051,0x9052,0x9050,
|
||||
0x9068,0x9058,0x9062,0x905B,0x66B9,0x9074,0x907D,0x9082,
|
||||
0x9088,0x9083,0x908B,0x5F50,0x5F57,0x5F56,0x5F58,0x5C3B,
|
||||
0x54AB,0x5C50,0x5C59,0x5B71,0x5C63,0x5C66,0x7FBC,0x5F2A,
|
||||
0x5F29,0x5F2D,0x8274,0x5F3C,0x9B3B,0x5C6E,0x5981,0x5983,
|
||||
0x598D,0x59A9,0x59AA,0x59A3,0x5997,0x59CA,0x59AB,0x599E,
|
||||
0x59A4,0x59D2,0x59B2,0x59AF,0x59D7,0x59BE,0x5A05,0x5A06,
|
||||
0x59DD,0x5A08,0x59E3,0x59D8,0x59F9,0x5A0C,0x5A09,0x5A32,
|
||||
0x5A34,0x5A11,0x5A23,0x5A13,0x5A40,0x5A67,0x5A4A,0x5A55,
|
||||
0x5A3C,0x5A62,0x5A75,0x80EC,0x5AAA,0x5A9B,0x5A77,0x5A7A,
|
||||
0x5ABE,0x5AEB,0x5AB2,0x5AD2,0x5AD4,0x5AB8,0x5AE0,0x5AE3,
|
||||
0x5AF1,0x5AD6,0x5AE6,0x5AD8,0x5ADC,0x5B09,0x5B17,0x5B16,
|
||||
0x5B32,0x5B37,0x5B40,0x5C15,0x5C1C,0x5B5A,0x5B65,0x5B73,
|
||||
0x5B51,0x5B53,0x5B62,0x9A75,0x9A77,0x9A78,0x9A7A,0x9A7F,
|
||||
0x9A7D,0x9A80,0x9A81,0x9A85,0x9A88,0x9A8A,0x9A90,0x9A92,
|
||||
0x9A93,0x9A96,0x9A98,0x9A9B,0x9A9C,0x9A9D,0x9A9F,0x9AA0,
|
||||
0x9AA2,0x9AA3,0x9AA5,0x9AA7,0x7E9F,0x7EA1,0x7EA3,0x7EA5,
|
||||
0x7EA8,0x7EA9,0x7EAD,0x7EB0,0x7EBE,0x7EC0,0x7EC1,0x7EC2,
|
||||
0x7EC9,0x7ECB,0x7ECC,0x7ED0,0x7ED4,0x7ED7,0x7EDB,0x7EE0,
|
||||
0x7EE1,0x7EE8,0x7EEB,0x7EEE,0x7EEF,0x7EF1,0x7EF2,0x7F0D,
|
||||
0x7EF6,0x7EFA,0x7EFB,0x7EFE,0x7F01,0x7F02,0x7F03,0x7F07,
|
||||
0x7F08,0x7F0B,0x7F0C,0x7F0F,0x7F11,0x7F12,0x7F17,0x7F19,
|
||||
0x7F1C,0x7F1B,0x7F1F,0x7F21,0x7F22,0x7F23,0x7F24,0x7F25,
|
||||
0x7F26,0x7F27,0x7F2A,0x7F2B,0x7F2C,0x7F2D,0x7F2F,0x7F30,
|
||||
0x7F31,0x7F32,0x7F33,0x7F35,0x5E7A,0x757F,0x5DDB,0x753E,
|
||||
0x9095,0x738E,0x7391,0x73AE,0x73A2,0x739F,0x73CF,0x73C2,
|
||||
0x73D1,0x73B7,0x73B3,0x73C0,0x73C9,0x73C8,0x73E5,0x73D9,
|
||||
0x987C,0x740A,0x73E9,0x73E7,0x73DE,0x73BA,0x73F2,0x740F,
|
||||
0x742A,0x745B,0x7426,0x7425,0x7428,0x7430,0x742E,0x742C,
|
||||
0x741B,0x741A,0x7441,0x745C,0x7457,0x7455,0x7459,0x7477,
|
||||
0x746D,0x747E,0x749C,0x748E,0x7480,0x7481,0x7487,0x748B,
|
||||
0x749E,0x74A8,0x74A9,0x7490,0x74A7,0x74D2,0x74BA,0x97EA,
|
||||
0x97EB,0x97EC,0x674C,0x6753,0x675E,0x6748,0x6769,0x67A5,
|
||||
0x6787,0x676A,0x6773,0x6798,0x67A7,0x6775,0x67A8,0x679E,
|
||||
0x67AD,0x678B,0x6777,0x677C,0x67F0,0x6809,0x67D8,0x680A,
|
||||
0x67E9,0x67B0,0x680C,0x67D9,0x67B5,0x67DA,0x67B3,0x67DD,
|
||||
0x6800,0x67C3,0x67B8,0x67E2,0x680E,0x67C1,0x67FD,0x6832,
|
||||
0x6833,0x6860,0x6861,0x684E,0x6862,0x6844,0x6864,0x6883,
|
||||
0x681D,0x6855,0x6866,0x6841,0x6867,0x6840,0x683E,0x684A,
|
||||
0x6849,0x6829,0x68B5,0x688F,0x6874,0x6877,0x6893,0x686B,
|
||||
0x68C2,0x696E,0x68FC,0x691F,0x6920,0x68F9,0x6924,0x68F0,
|
||||
0x690B,0x6901,0x6957,0x68E3,0x6910,0x6971,0x6939,0x6960,
|
||||
0x6942,0x695D,0x6984,0x696B,0x6980,0x6998,0x6978,0x6934,
|
||||
0x69CC,0x6987,0x6988,0x69CE,0x6989,0x6966,0x6963,0x6979,
|
||||
0x699B,0x69A7,0x69BB,0x69AB,0x69AD,0x69D4,0x69B1,0x69C1,
|
||||
0x69CA,0x69DF,0x6995,0x69E0,0x698D,0x69FF,0x6A2F,0x69ED,
|
||||
0x6A17,0x6A18,0x6A65,0x69F2,0x6A44,0x6A3E,0x6AA0,0x6A50,
|
||||
0x6A5B,0x6A35,0x6A8E,0x6A79,0x6A3D,0x6A28,0x6A58,0x6A7C,
|
||||
0x6A91,0x6A90,0x6AA9,0x6A97,0x6AAB,0x7337,0x7352,0x6B81,
|
||||
0x6B82,0x6B87,0x6B84,0x6B92,0x6B93,0x6B8D,0x6B9A,0x6B9B,
|
||||
0x6BA1,0x6BAA,0x8F6B,0x8F6D,0x8F71,0x8F72,0x8F73,0x8F75,
|
||||
0x8F76,0x8F78,0x8F77,0x8F79,0x8F7A,0x8F7C,0x8F7E,0x8F81,
|
||||
0x8F82,0x8F84,0x8F87,0x8F8B,0x8F8D,0x8F8E,0x8F8F,0x8F98,
|
||||
0x8F9A,0x8ECE,0x620B,0x6217,0x621B,0x621F,0x6222,0x6221,
|
||||
0x6225,0x6224,0x622C,0x81E7,0x74EF,0x74F4,0x74FF,0x750F,
|
||||
0x7511,0x7513,0x6534,0x65EE,0x65EF,0x65F0,0x660A,0x6619,
|
||||
0x6772,0x6603,0x6615,0x6600,0x7085,0x66F7,0x661D,0x6634,
|
||||
0x6631,0x6636,0x6635,0x8006,0x665F,0x6654,0x6641,0x664F,
|
||||
0x6656,0x6661,0x6657,0x6677,0x6684,0x668C,0x66A7,0x669D,
|
||||
0x66BE,0x66DB,0x66DC,0x66E6,0x66E9,0x8D32,0x8D33,0x8D36,
|
||||
0x8D3B,0x8D3D,0x8D40,0x8D45,0x8D46,0x8D48,0x8D49,0x8D47,
|
||||
0x8D4D,0x8D55,0x8D59,0x89C7,0x89CA,0x89CB,0x89CC,0x89CE,
|
||||
0x89CF,0x89D0,0x89D1,0x726E,0x729F,0x725D,0x7266,0x726F,
|
||||
0x727E,0x727F,0x7284,0x728B,0x728D,0x728F,0x7292,0x6308,
|
||||
0x6332,0x63B0,0x643F,0x64D8,0x8004,0x6BEA,0x6BF3,0x6BFD,
|
||||
0x6BF5,0x6BF9,0x6C05,0x6C07,0x6C06,0x6C0D,0x6C15,0x6C18,
|
||||
0x6C19,0x6C1A,0x6C21,0x6C29,0x6C24,0x6C2A,0x6C32,0x6535,
|
||||
0x6555,0x656B,0x724D,0x7252,0x7256,0x7230,0x8662,0x5216,
|
||||
0x809F,0x809C,0x8093,0x80BC,0x670A,0x80BD,0x80B1,0x80AB,
|
||||
0x80AD,0x80B4,0x80B7,0x80E7,0x80E8,0x80E9,0x80EA,0x80DB,
|
||||
0x80C2,0x80C4,0x80D9,0x80CD,0x80D7,0x6710,0x80DD,0x80EB,
|
||||
0x80F1,0x80F4,0x80ED,0x810D,0x810E,0x80F2,0x80FC,0x6715,
|
||||
0x8112,0x8C5A,0x8136,0x811E,0x812C,0x8118,0x8132,0x8148,
|
||||
0x814C,0x8153,0x8174,0x8159,0x815A,0x8171,0x8160,0x8169,
|
||||
0x817C,0x817D,0x816D,0x8167,0x584D,0x5AB5,0x8188,0x8182,
|
||||
0x8191,0x6ED5,0x81A3,0x81AA,0x81CC,0x6726,0x81CA,0x81BB,
|
||||
0x81C1,0x81A6,0x6B24,0x6B37,0x6B39,0x6B43,0x6B46,0x6B59,
|
||||
0x98D1,0x98D2,0x98D3,0x98D5,0x98D9,0x98DA,0x6BB3,0x5F40,
|
||||
0x6BC2,0x89F3,0x6590,0x9F51,0x6593,0x65BC,0x65C6,0x65C4,
|
||||
0x65C3,0x65CC,0x65CE,0x65D2,0x65D6,0x7080,0x709C,0x7096,
|
||||
0x709D,0x70BB,0x70C0,0x70B7,0x70AB,0x70B1,0x70E8,0x70CA,
|
||||
0x7110,0x7113,0x7116,0x712F,0x7131,0x7173,0x715C,0x7168,
|
||||
0x7145,0x7172,0x714A,0x7178,0x717A,0x7198,0x71B3,0x71B5,
|
||||
0x71A8,0x71A0,0x71E0,0x71D4,0x71E7,0x71F9,0x721D,0x7228,
|
||||
0x706C,0x7118,0x7166,0x71B9,0x623E,0x623D,0x6243,0x6248,
|
||||
0x6249,0x793B,0x7940,0x7946,0x7949,0x795B,0x795C,0x7953,
|
||||
0x795A,0x7962,0x7957,0x7960,0x796F,0x7967,0x797A,0x7985,
|
||||
0x798A,0x799A,0x79A7,0x79B3,0x5FD1,0x5FD0,0x603C,0x605D,
|
||||
0x605A,0x6067,0x6041,0x6059,0x6063,0x60AB,0x6106,0x610D,
|
||||
0x615D,0x61A9,0x619D,0x61CB,0x61D1,0x6206,0x8080,0x807F,
|
||||
0x6C93,0x6CF6,0x6DFC,0x77F6,0x77F8,0x7800,0x7809,0x7817,
|
||||
0x7818,0x7811,0x65AB,0x782D,0x781C,0x781D,0x7839,0x783A,
|
||||
0x783B,0x781F,0x783C,0x7825,0x782C,0x7823,0x7829,0x784E,
|
||||
0x786D,0x7856,0x7857,0x7826,0x7850,0x7847,0x784C,0x786A,
|
||||
0x789B,0x7893,0x789A,0x7887,0x789C,0x78A1,0x78A3,0x78B2,
|
||||
0x78B9,0x78A5,0x78D4,0x78D9,0x78C9,0x78EC,0x78F2,0x7905,
|
||||
0x78F4,0x7913,0x7924,0x791E,0x7934,0x9F9B,0x9EF9,0x9EFB,
|
||||
0x9EFC,0x76F1,0x7704,0x770D,0x76F9,0x7707,0x7708,0x771A,
|
||||
0x7722,0x7719,0x772D,0x7726,0x7735,0x7738,0x7750,0x7751,
|
||||
0x7747,0x7743,0x775A,0x7768,0x7762,0x7765,0x777F,0x778D,
|
||||
0x777D,0x7780,0x778C,0x7791,0x779F,0x77A0,0x77B0,0x77B5,
|
||||
0x77BD,0x753A,0x7540,0x754E,0x754B,0x7548,0x755B,0x7572,
|
||||
0x7579,0x7583,0x7F58,0x7F61,0x7F5F,0x8A48,0x7F68,0x7F74,
|
||||
0x7F71,0x7F79,0x7F81,0x7F7E,0x76CD,0x76E5,0x8832,0x9485,
|
||||
0x9486,0x9487,0x948B,0x948A,0x948C,0x948D,0x948F,0x9490,
|
||||
0x9494,0x9497,0x9495,0x949A,0x949B,0x949C,0x94A3,0x94A4,
|
||||
0x94AB,0x94AA,0x94AD,0x94AC,0x94AF,0x94B0,0x94B2,0x94B4,
|
||||
0x94B6,0x94B7,0x94B8,0x94B9,0x94BA,0x94BC,0x94BD,0x94BF,
|
||||
0x94C4,0x94C8,0x94C9,0x94CA,0x94CB,0x94CC,0x94CD,0x94CE,
|
||||
0x94D0,0x94D1,0x94D2,0x94D5,0x94D6,0x94D7,0x94D9,0x94D8,
|
||||
0x94DB,0x94DE,0x94DF,0x94E0,0x94E2,0x94E4,0x94E5,0x94E7,
|
||||
0x94E8,0x94EA,0x94E9,0x94EB,0x94EE,0x94EF,0x94F3,0x94F4,
|
||||
0x94F5,0x94F7,0x94F9,0x94FC,0x94FD,0x94FF,0x9503,0x9502,
|
||||
0x9506,0x9507,0x9509,0x950A,0x950D,0x950E,0x950F,0x9512,
|
||||
0x9513,0x9514,0x9515,0x9516,0x9518,0x951B,0x951D,0x951E,
|
||||
0x951F,0x9522,0x952A,0x952B,0x9529,0x952C,0x9531,0x9532,
|
||||
0x9534,0x9536,0x9537,0x9538,0x953C,0x953E,0x953F,0x9542,
|
||||
0x9535,0x9544,0x9545,0x9546,0x9549,0x954C,0x954E,0x954F,
|
||||
0x9552,0x9553,0x9554,0x9556,0x9557,0x9558,0x9559,0x955B,
|
||||
0x955E,0x955F,0x955D,0x9561,0x9562,0x9564,0x9565,0x9566,
|
||||
0x9567,0x9568,0x9569,0x956A,0x956B,0x956C,0x956F,0x9571,
|
||||
0x9572,0x9573,0x953A,0x77E7,0x77EC,0x96C9,0x79D5,0x79ED,
|
||||
0x79E3,0x79EB,0x7A06,0x5D47,0x7A03,0x7A02,0x7A1E,0x7A14,
|
||||
0x7A39,0x7A37,0x7A51,0x9ECF,0x99A5,0x7A70,0x7688,0x768E,
|
||||
0x7693,0x7699,0x76A4,0x74DE,0x74E0,0x752C,0x9E20,0x9E22,
|
||||
0x9E28,0x9E29,0x9E2A,0x9E2B,0x9E2C,0x9E32,0x9E31,0x9E36,
|
||||
0x9E38,0x9E37,0x9E39,0x9E3A,0x9E3E,0x9E41,0x9E42,0x9E44,
|
||||
0x9E46,0x9E47,0x9E48,0x9E49,0x9E4B,0x9E4C,0x9E4E,0x9E51,
|
||||
0x9E55,0x9E57,0x9E5A,0x9E5B,0x9E5C,0x9E5E,0x9E63,0x9E66,
|
||||
0x9E67,0x9E68,0x9E69,0x9E6A,0x9E6B,0x9E6C,0x9E71,0x9E6D,
|
||||
0x9E73,0x7592,0x7594,0x7596,0x75A0,0x759D,0x75AC,0x75A3,
|
||||
0x75B3,0x75B4,0x75B8,0x75C4,0x75B1,0x75B0,0x75C3,0x75C2,
|
||||
0x75D6,0x75CD,0x75E3,0x75E8,0x75E6,0x75E4,0x75EB,0x75E7,
|
||||
0x7603,0x75F1,0x75FC,0x75FF,0x7610,0x7600,0x7605,0x760C,
|
||||
0x7617,0x760A,0x7625,0x7618,0x7615,0x7619,0x761B,0x763C,
|
||||
0x7622,0x7620,0x7640,0x762D,0x7630,0x763F,0x7635,0x7643,
|
||||
0x763E,0x7633,0x764D,0x765E,0x7654,0x765C,0x7656,0x766B,
|
||||
0x766F,0x7FCA,0x7AE6,0x7A78,0x7A79,0x7A80,0x7A86,0x7A88,
|
||||
0x7A95,0x7AA6,0x7AA0,0x7AAC,0x7AA8,0x7AAD,0x7AB3,0x8864,
|
||||
0x8869,0x8872,0x887D,0x887F,0x8882,0x88A2,0x88C6,0x88B7,
|
||||
0x88BC,0x88C9,0x88E2,0x88CE,0x88E3,0x88E5,0x88F1,0x891A,
|
||||
0x88FC,0x88E8,0x88FE,0x88F0,0x8921,0x8919,0x8913,0x891B,
|
||||
0x890A,0x8934,0x892B,0x8936,0x8941,0x8966,0x897B,0x758B,
|
||||
0x80E5,0x76B2,0x76B4,0x77DC,0x8012,0x8014,0x8016,0x801C,
|
||||
0x8020,0x8022,0x8025,0x8026,0x8027,0x8029,0x8028,0x8031,
|
||||
0x800B,0x8035,0x8043,0x8046,0x804D,0x8052,0x8069,0x8071,
|
||||
0x8983,0x9878,0x9880,0x9883,0x9889,0x988C,0x988D,0x988F,
|
||||
0x9894,0x989A,0x989B,0x989E,0x989F,0x98A1,0x98A2,0x98A5,
|
||||
0x98A6,0x864D,0x8654,0x866C,0x866E,0x867F,0x867A,0x867C,
|
||||
0x867B,0x86A8,0x868D,0x868B,0x86AC,0x869D,0x86A7,0x86A3,
|
||||
0x86AA,0x8693,0x86A9,0x86B6,0x86C4,0x86B5,0x86CE,0x86B0,
|
||||
0x86BA,0x86B1,0x86AF,0x86C9,0x86CF,0x86B4,0x86E9,0x86F1,
|
||||
0x86F2,0x86ED,0x86F3,0x86D0,0x8713,0x86DE,0x86F4,0x86DF,
|
||||
0x86D8,0x86D1,0x8703,0x8707,0x86F8,0x8708,0x870A,0x870D,
|
||||
0x8709,0x8723,0x873B,0x871E,0x8725,0x872E,0x871A,0x873E,
|
||||
0x8748,0x8734,0x8731,0x8729,0x8737,0x873F,0x8782,0x8722,
|
||||
0x877D,0x877E,0x877B,0x8760,0x8770,0x874C,0x876E,0x878B,
|
||||
0x8753,0x8763,0x877C,0x8764,0x8759,0x8765,0x8793,0x87AF,
|
||||
0x87A8,0x87D2,0x87C6,0x8788,0x8785,0x87AD,0x8797,0x8783,
|
||||
0x87AB,0x87E5,0x87AC,0x87B5,0x87B3,0x87CB,0x87D3,0x87BD,
|
||||
0x87D1,0x87C0,0x87CA,0x87DB,0x87EA,0x87E0,0x87EE,0x8816,
|
||||
0x8813,0x87FE,0x880A,0x881B,0x8821,0x8839,0x883C,0x7F36,
|
||||
0x7F42,0x7F44,0x7F45,0x8210,0x7AFA,0x7AFD,0x7B08,0x7B03,
|
||||
0x7B04,0x7B15,0x7B0A,0x7B2B,0x7B0F,0x7B47,0x7B38,0x7B2A,
|
||||
0x7B19,0x7B2E,0x7B31,0x7B20,0x7B25,0x7B24,0x7B33,0x7B3E,
|
||||
0x7B1E,0x7B58,0x7B5A,0x7B45,0x7B75,0x7B4C,0x7B5D,0x7B60,
|
||||
0x7B6E,0x7B7B,0x7B62,0x7B72,0x7B71,0x7B90,0x7BA6,0x7BA7,
|
||||
0x7BB8,0x7BAC,0x7B9D,0x7BA8,0x7B85,0x7BAA,0x7B9C,0x7BA2,
|
||||
0x7BAB,0x7BB4,0x7BD1,0x7BC1,0x7BCC,0x7BDD,0x7BDA,0x7BE5,
|
||||
0x7BE6,0x7BEA,0x7C0C,0x7BFE,0x7BFC,0x7C0F,0x7C16,0x7C0B,
|
||||
0x7C1F,0x7C2A,0x7C26,0x7C38,0x7C41,0x7C40,0x81FE,0x8201,
|
||||
0x8202,0x8204,0x81EC,0x8844,0x8221,0x8222,0x8223,0x822D,
|
||||
0x822F,0x8228,0x822B,0x8238,0x823B,0x8233,0x8234,0x823E,
|
||||
0x8244,0x8249,0x824B,0x824F,0x825A,0x825F,0x8268,0x887E,
|
||||
0x8885,0x8888,0x88D8,0x88DF,0x895E,0x7F9D,0x7F9F,0x7FA7,
|
||||
0x7FAF,0x7FB0,0x7FB2,0x7C7C,0x6549,0x7C91,0x7C9D,0x7C9C,
|
||||
0x7C9E,0x7CA2,0x7CB2,0x7CBC,0x7CBD,0x7CC1,0x7CC7,0x7CCC,
|
||||
0x7CCD,0x7CC8,0x7CC5,0x7CD7,0x7CE8,0x826E,0x66A8,0x7FBF,
|
||||
0x7FCE,0x7FD5,0x7FE5,0x7FE1,0x7FE6,0x7FE9,0x7FEE,0x7FF3,
|
||||
0x7CF8,0x7D77,0x7DA6,0x7DAE,0x7E47,0x7E9B,0x9EB8,0x9EB4,
|
||||
0x8D73,0x8D84,0x8D94,0x8D91,0x8DB1,0x8D67,0x8D6D,0x8C47,
|
||||
0x8C49,0x914A,0x9150,0x914E,0x914F,0x9164,0x9162,0x9161,
|
||||
0x9170,0x9169,0x916F,0x917D,0x917E,0x9172,0x9174,0x9179,
|
||||
0x918C,0x9185,0x9190,0x918D,0x9191,0x91A2,0x91A3,0x91AA,
|
||||
0x91AD,0x91AE,0x91AF,0x91B5,0x91B4,0x91BA,0x8C55,0x9E7E,
|
||||
0x8DB8,0x8DEB,0x8E05,0x8E59,0x8E69,0x8DB5,0x8DBF,0x8DBC,
|
||||
0x8DBA,0x8DC4,0x8DD6,0x8DD7,0x8DDA,0x8DDE,0x8DCE,0x8DCF,
|
||||
0x8DDB,0x8DC6,0x8DEC,0x8DF7,0x8DF8,0x8DE3,0x8DF9,0x8DFB,
|
||||
0x8DE4,0x8E09,0x8DFD,0x8E14,0x8E1D,0x8E1F,0x8E2C,0x8E2E,
|
||||
0x8E23,0x8E2F,0x8E3A,0x8E40,0x8E39,0x8E35,0x8E3D,0x8E31,
|
||||
0x8E49,0x8E41,0x8E42,0x8E51,0x8E52,0x8E4A,0x8E70,0x8E76,
|
||||
0x8E7C,0x8E6F,0x8E74,0x8E85,0x8E8F,0x8E94,0x8E90,0x8E9C,
|
||||
0x8E9E,0x8C78,0x8C82,0x8C8A,0x8C85,0x8C98,0x8C94,0x659B,
|
||||
0x89D6,0x89DE,0x89DA,0x89DC,0x89E5,0x89EB,0x89EF,0x8A3E,
|
||||
0x8B26,0x9753,0x96E9,0x96F3,0x96EF,0x9706,0x9701,0x9708,
|
||||
0x970F,0x970E,0x972A,0x972D,0x9730,0x973E,0x9F80,0x9F83,
|
||||
0x9F85,0x9F86,0x9F87,0x9F88,0x9F89,0x9F8A,0x9F8C,0x9EFE,
|
||||
0x9F0B,0x9F0D,0x96B9,0x96BC,0x96BD,0x96CE,0x96D2,0x77BF,
|
||||
0x96E0,0x928E,0x92AE,0x92C8,0x933E,0x936A,0x93CA,0x938F,
|
||||
0x943E,0x946B,0x9C7F,0x9C82,0x9C85,0x9C86,0x9C87,0x9C88,
|
||||
0x7A23,0x9C8B,0x9C8E,0x9C90,0x9C91,0x9C92,0x9C94,0x9C95,
|
||||
0x9C9A,0x9C9B,0x9C9E,0x9C9F,0x9CA0,0x9CA1,0x9CA2,0x9CA3,
|
||||
0x9CA5,0x9CA6,0x9CA7,0x9CA8,0x9CA9,0x9CAB,0x9CAD,0x9CAE,
|
||||
0x9CB0,0x9CB1,0x9CB2,0x9CB3,0x9CB4,0x9CB5,0x9CB6,0x9CB7,
|
||||
0x9CBA,0x9CBB,0x9CBC,0x9CBD,0x9CC4,0x9CC5,0x9CC6,0x9CC7,
|
||||
0x9CCA,0x9CCB,0x9CCC,0x9CCD,0x9CCE,0x9CCF,0x9CD0,0x9CD3,
|
||||
0x9CD4,0x9CD5,0x9CD7,0x9CD8,0x9CD9,0x9CDC,0x9CDD,0x9CDF,
|
||||
0x9CE2,0x977C,0x9785,0x9791,0x9792,0x9794,0x97AF,0x97AB,
|
||||
0x97A3,0x97B2,0x97B4,0x9AB1,0x9AB0,0x9AB7,0x9E58,0x9AB6,
|
||||
0x9ABA,0x9ABC,0x9AC1,0x9AC0,0x9AC5,0x9AC2,0x9ACB,0x9ACC,
|
||||
0x9AD1,0x9B45,0x9B43,0x9B47,0x9B49,0x9B48,0x9B4D,0x9B51,
|
||||
0x98E8,0x990D,0x992E,0x9955,0x9954,0x9ADF,0x9AE1,0x9AE6,
|
||||
0x9AEF,0x9AEB,0x9AFB,0x9AED,0x9AF9,0x9B08,0x9B0F,0x9B13,
|
||||
0x9B1F,0x9B23,0x9EBD,0x9EBE,0x7E3B,0x9E82,0x9E87,0x9E88,
|
||||
0x9E8B,0x9E92,0x93D6,0x9E9D,0x9E9F,0x9EDB,0x9EDC,0x9EDD,
|
||||
0x9EE0,0x9EDF,0x9EE2,0x9EE9,0x9EE7,0x9EE5,0x9EEA,0x9EEF,
|
||||
0x9F22,0x9F2C,0x9F2F,0x9F39,0x9F37,0x9F3D,0x9F3E,0x9F44
|
||||
};
|
||||
|
||||
//#define B_DEBUG
|
||||
int ConverGB2Unicode(char *szFrom,wchar_t *wszTo)
|
||||
{
|
||||
int i=0;
|
||||
int j=0;
|
||||
int k=0;
|
||||
int size=strlen(szFrom);
|
||||
unsigned char utemp=0;
|
||||
|
||||
for(i=0;i<size;i++)
|
||||
{
|
||||
utemp=(unsigned char)szFrom[i];
|
||||
if(utemp<128)
|
||||
{
|
||||
wszTo[k]=szFrom[i];
|
||||
k++;
|
||||
}
|
||||
else
|
||||
{ j=szFrom[i]*0x100+(unsigned char)szFrom[i+1];
|
||||
wszTo[k]=0x2000;
|
||||
if (j>=0xA1A1 && j<=0xA9FE)
|
||||
wszTo[k]=bGbUnicodedat1[(szFrom[i]-0xA1)*94+ (unsigned char)szFrom[i+1]-0xA1];
|
||||
if (j>=0xB0A1 && j<=0xF7FE)
|
||||
wszTo[k]=bGbUnicodedat2[(szFrom[i]-0xB0)*94+ (unsigned char)szFrom[i+1]-0xA1];
|
||||
i++;
|
||||
k++;
|
||||
}
|
||||
}
|
||||
wszTo[k]=0;
|
||||
return k;
|
||||
}
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
//GB2Unicode.h
|
||||
|
||||
|
||||
#ifndef GB2UNICODE_H_
|
||||
#define GB2UNICODE_H_
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int ConverGB2Unicode(char *szFrom,wchar_t *wszTo);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif //GB2UNICODE_H_
|
||||
|
|
@ -1,331 +0,0 @@
|
|||
#include <stdio.h>
|
||||
#include <ogcsys.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "apploader.h"
|
||||
#include "wdvd.h"
|
||||
#include "wpad.h"
|
||||
#include "patchcode.h"
|
||||
#include "kenobiwii.h" /*FISHEARS*/
|
||||
|
||||
/*KENOBI! - FISHEARS*/
|
||||
extern const unsigned char kenobiwii[];
|
||||
extern const int kenobiwii_size;
|
||||
/*KENOBI! - FISHEARS*/
|
||||
|
||||
/* Apploader function pointers */
|
||||
typedef int (*app_main)(void **dst, int *size, int *offset);
|
||||
typedef void (*app_init)(void (*report)(const char *fmt, ...));
|
||||
typedef void *(*app_final)();
|
||||
typedef void (*app_entry)(void (**init)(void (*report)(const char *fmt, ...)), int (**main)(), void *(**final)());
|
||||
|
||||
/* Apploader pointers */
|
||||
static u8 *appldr = (u8 *)0x81200000;
|
||||
|
||||
|
||||
/* Constants */
|
||||
#define APPLDR_OFFSET 0x2440
|
||||
|
||||
/* Variables */
|
||||
static u32 buffer[0x20] ATTRIBUTE_ALIGN(32);
|
||||
|
||||
|
||||
static void __noprint(const char *fmt, ...)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool compare_videomodes(GXRModeObj* mode1, GXRModeObj* mode2)
|
||||
{
|
||||
if (mode1->viTVMode != mode2->viTVMode || mode1->fbWidth != mode2->fbWidth || mode1->efbHeight != mode2->efbHeight || mode1->xfbHeight != mode2->xfbHeight ||
|
||||
mode1->viXOrigin != mode2->viXOrigin || mode1->viYOrigin != mode2->viYOrigin || mode1->viWidth != mode2->viWidth || mode1->viHeight != mode2->viHeight ||
|
||||
mode1->xfbMode != mode2->xfbMode || mode1->field_rendering != mode2->field_rendering || mode1->aa != mode2->aa || mode1->sample_pattern[0][0] != mode2->sample_pattern[0][0] ||
|
||||
mode1->sample_pattern[1][0] != mode2->sample_pattern[1][0] || mode1->sample_pattern[2][0] != mode2->sample_pattern[2][0] ||
|
||||
mode1->sample_pattern[3][0] != mode2->sample_pattern[3][0] || mode1->sample_pattern[4][0] != mode2->sample_pattern[4][0] ||
|
||||
mode1->sample_pattern[5][0] != mode2->sample_pattern[5][0] || mode1->sample_pattern[6][0] != mode2->sample_pattern[6][0] ||
|
||||
mode1->sample_pattern[7][0] != mode2->sample_pattern[7][0] || mode1->sample_pattern[8][0] != mode2->sample_pattern[8][0] ||
|
||||
mode1->sample_pattern[9][0] != mode2->sample_pattern[9][0] || mode1->sample_pattern[10][0] != mode2->sample_pattern[10][0] ||
|
||||
mode1->sample_pattern[11][0] != mode2->sample_pattern[11][0] || mode1->sample_pattern[0][1] != mode2->sample_pattern[0][1] ||
|
||||
mode1->sample_pattern[1][1] != mode2->sample_pattern[1][1] || mode1->sample_pattern[2][1] != mode2->sample_pattern[2][1] ||
|
||||
mode1->sample_pattern[3][1] != mode2->sample_pattern[3][1] || mode1->sample_pattern[4][1] != mode2->sample_pattern[4][1] ||
|
||||
mode1->sample_pattern[5][1] != mode2->sample_pattern[5][1] || mode1->sample_pattern[6][1] != mode2->sample_pattern[6][1] ||
|
||||
mode1->sample_pattern[7][1] != mode2->sample_pattern[7][1] || mode1->sample_pattern[8][1] != mode2->sample_pattern[8][1] ||
|
||||
mode1->sample_pattern[9][1] != mode2->sample_pattern[9][1] || mode1->sample_pattern[10][1] != mode2->sample_pattern[10][1] ||
|
||||
mode1->sample_pattern[11][1] != mode2->sample_pattern[11][1] || mode1->vfilter[0] != mode2->vfilter[0] ||
|
||||
mode1->vfilter[1] != mode2->vfilter[1] || mode1->vfilter[2] != mode2->vfilter[2] || mode1->vfilter[3] != mode2->vfilter[3] || mode1->vfilter[4] != mode2->vfilter[4] ||
|
||||
mode1->vfilter[5] != mode2->vfilter[5] || mode1->vfilter[6] != mode2->vfilter[6] )
|
||||
{
|
||||
return false;
|
||||
} else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void patch_videomode(GXRModeObj* mode1, GXRModeObj* mode2)
|
||||
{
|
||||
mode1->viTVMode = mode2->viTVMode;
|
||||
mode1->fbWidth = mode2->fbWidth;
|
||||
mode1->efbHeight = mode2->efbHeight;
|
||||
mode1->xfbHeight = mode2->xfbHeight;
|
||||
mode1->viXOrigin = mode2->viXOrigin;
|
||||
mode1->viYOrigin = mode2->viYOrigin;
|
||||
mode1->viWidth = mode2->viWidth;
|
||||
mode1->viHeight = mode2->viHeight;
|
||||
mode1->xfbMode = mode2->xfbMode;
|
||||
mode1->field_rendering = mode2->field_rendering;
|
||||
mode1->aa = mode2->aa;
|
||||
mode1->sample_pattern[0][0] = mode2->sample_pattern[0][0];
|
||||
mode1->sample_pattern[1][0] = mode2->sample_pattern[1][0];
|
||||
mode1->sample_pattern[2][0] = mode2->sample_pattern[2][0];
|
||||
mode1->sample_pattern[3][0] = mode2->sample_pattern[3][0];
|
||||
mode1->sample_pattern[4][0] = mode2->sample_pattern[4][0];
|
||||
mode1->sample_pattern[5][0] = mode2->sample_pattern[5][0];
|
||||
mode1->sample_pattern[6][0] = mode2->sample_pattern[6][0];
|
||||
mode1->sample_pattern[7][0] = mode2->sample_pattern[7][0];
|
||||
mode1->sample_pattern[8][0] = mode2->sample_pattern[8][0];
|
||||
mode1->sample_pattern[9][0] = mode2->sample_pattern[9][0];
|
||||
mode1->sample_pattern[10][0] = mode2->sample_pattern[10][0];
|
||||
mode1->sample_pattern[11][0] = mode2->sample_pattern[11][0];
|
||||
mode1->sample_pattern[0][1] = mode2->sample_pattern[0][1];
|
||||
mode1->sample_pattern[1][1] = mode2->sample_pattern[1][1];
|
||||
mode1->sample_pattern[2][1] = mode2->sample_pattern[2][1];
|
||||
mode1->sample_pattern[3][1] = mode2->sample_pattern[3][1];
|
||||
mode1->sample_pattern[4][1] = mode2->sample_pattern[4][1];
|
||||
mode1->sample_pattern[5][1] = mode2->sample_pattern[5][1];
|
||||
mode1->sample_pattern[6][1] = mode2->sample_pattern[6][1];
|
||||
mode1->sample_pattern[7][1] = mode2->sample_pattern[7][1];
|
||||
mode1->sample_pattern[8][1] = mode2->sample_pattern[8][1];
|
||||
mode1->sample_pattern[9][1] = mode2->sample_pattern[9][1];
|
||||
mode1->sample_pattern[10][1] = mode2->sample_pattern[10][1];
|
||||
mode1->sample_pattern[11][1] = mode2->sample_pattern[11][1];
|
||||
mode1->vfilter[0] = mode2->vfilter[0];
|
||||
mode1->vfilter[1] = mode2->vfilter[1];
|
||||
mode1->vfilter[2] = mode2->vfilter[2];
|
||||
mode1->vfilter[3] = mode2->vfilter[3];
|
||||
mode1->vfilter[4] = mode2->vfilter[4];
|
||||
mode1->vfilter[5] = mode2->vfilter[5];
|
||||
mode1->vfilter[6] = mode2->vfilter[6];
|
||||
}
|
||||
|
||||
GXRModeObj* vmodes[] = {
|
||||
&TVNtsc240Ds,
|
||||
&TVNtsc240DsAa,
|
||||
&TVNtsc240Int,
|
||||
&TVNtsc240IntAa,
|
||||
&TVNtsc480IntDf,
|
||||
&TVNtsc480IntAa,
|
||||
&TVNtsc480Prog,
|
||||
&TVMpal480IntDf,
|
||||
&TVPal264Ds,
|
||||
&TVPal264DsAa,
|
||||
&TVPal264Int,
|
||||
&TVPal264IntAa,
|
||||
&TVPal524IntAa,
|
||||
&TVPal528Int,
|
||||
&TVPal528IntDf,
|
||||
&TVPal574IntDfScale,
|
||||
&TVEurgb60Hz240Ds,
|
||||
&TVEurgb60Hz240DsAa,
|
||||
&TVEurgb60Hz240Int,
|
||||
&TVEurgb60Hz240IntAa,
|
||||
&TVEurgb60Hz480Int,
|
||||
&TVEurgb60Hz480IntDf,
|
||||
&TVEurgb60Hz480IntAa,
|
||||
&TVEurgb60Hz480Prog,
|
||||
&TVEurgb60Hz480ProgSoft,
|
||||
&TVEurgb60Hz480ProgAa
|
||||
};
|
||||
|
||||
GXRModeObj* PAL2NTSC[]={
|
||||
&TVMpal480IntDf, &TVNtsc480IntDf,
|
||||
&TVPal264Ds, &TVNtsc240Ds,
|
||||
&TVPal264DsAa, &TVNtsc240DsAa,
|
||||
&TVPal264Int, &TVNtsc240Int,
|
||||
&TVPal264IntAa, &TVNtsc240IntAa,
|
||||
&TVPal524IntAa, &TVNtsc480IntAa,
|
||||
&TVPal528Int, &TVNtsc480IntAa,
|
||||
&TVPal528IntDf, &TVNtsc480IntDf,
|
||||
&TVPal574IntDfScale, &TVNtsc480IntDf,
|
||||
&TVEurgb60Hz240Ds, &TVNtsc240Ds,
|
||||
&TVEurgb60Hz240DsAa, &TVNtsc240DsAa,
|
||||
&TVEurgb60Hz240Int, &TVNtsc240Int,
|
||||
&TVEurgb60Hz240IntAa, &TVNtsc240IntAa,
|
||||
&TVEurgb60Hz480Int, &TVNtsc480IntAa,
|
||||
&TVEurgb60Hz480IntDf, &TVNtsc480IntDf,
|
||||
&TVEurgb60Hz480IntAa, &TVNtsc480IntAa,
|
||||
&TVEurgb60Hz480Prog, &TVNtsc480Prog,
|
||||
&TVEurgb60Hz480ProgSoft,&TVNtsc480Prog,
|
||||
&TVEurgb60Hz480ProgAa, &TVNtsc480Prog,
|
||||
0,0
|
||||
};
|
||||
|
||||
GXRModeObj* NTSC2PAL[]={
|
||||
&TVNtsc240Ds, &TVPal264Ds,
|
||||
&TVNtsc240DsAa, &TVPal264DsAa,
|
||||
&TVNtsc240Int, &TVPal264Int,
|
||||
&TVNtsc240IntAa, &TVPal264IntAa,
|
||||
&TVNtsc480IntDf, &TVPal528IntDf,
|
||||
&TVNtsc480IntAa, &TVPal524IntAa,
|
||||
&TVNtsc480Prog, &TVPal528IntDf,
|
||||
0,0
|
||||
};
|
||||
|
||||
GXRModeObj* NTSC2PAL60[]={
|
||||
&TVNtsc240Ds, &TVEurgb60Hz240Ds,
|
||||
&TVNtsc240DsAa, &TVEurgb60Hz240DsAa,
|
||||
&TVNtsc240Int, &TVEurgb60Hz240Int,
|
||||
&TVNtsc240IntAa, &TVEurgb60Hz240IntAa,
|
||||
&TVNtsc480IntDf, &TVEurgb60Hz480IntDf,
|
||||
&TVNtsc480IntAa, &TVEurgb60Hz480IntAa,
|
||||
&TVNtsc480Prog, &TVEurgb60Hz480Prog,
|
||||
0,0
|
||||
};
|
||||
bool Search_and_patch_Video_Modes(void *Address, u32 Size, GXRModeObj* Table[])
|
||||
{
|
||||
u8 *Addr = (u8 *)Address;
|
||||
bool found = 0;
|
||||
u32 i;
|
||||
|
||||
while(Size >= sizeof(GXRModeObj))
|
||||
{
|
||||
|
||||
|
||||
|
||||
for(i = 0; Table[i]; i+=2)
|
||||
{
|
||||
|
||||
|
||||
if(compare_videomodes(Table[i], (GXRModeObj*)Addr))
|
||||
|
||||
{
|
||||
found = 1;
|
||||
patch_videomode((GXRModeObj*)Addr, Table[i+1]);
|
||||
Addr += (sizeof(GXRModeObj)-4);
|
||||
Size -= (sizeof(GXRModeObj)-4);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Addr += 4;
|
||||
Size -= 4;
|
||||
}
|
||||
|
||||
|
||||
return found;
|
||||
}
|
||||
|
||||
s32 Apploader_Run(entry_point *entry, u8 cheat, u8 videoSelected, u8 vipatch, u8 patchcountrystring)
|
||||
{
|
||||
app_entry appldr_entry;
|
||||
app_init appldr_init;
|
||||
app_main appldr_main;
|
||||
app_final appldr_final;
|
||||
|
||||
u32 appldr_len;
|
||||
s32 ret;
|
||||
|
||||
/* Read apploader header */
|
||||
ret = WDVD_Read(buffer, 0x20, APPLDR_OFFSET);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Calculate apploader length */
|
||||
appldr_len = buffer[5] + buffer[6];
|
||||
|
||||
/* Read apploader code */
|
||||
ret = WDVD_Read(appldr, appldr_len, APPLDR_OFFSET + 0x20);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Set apploader entry function */
|
||||
appldr_entry = (app_entry)buffer[4];
|
||||
|
||||
/* Call apploader entry */
|
||||
appldr_entry(&appldr_init, &appldr_main, &appldr_final);
|
||||
|
||||
/* Initialize apploader */
|
||||
appldr_init(__noprint);
|
||||
|
||||
if (cheat)
|
||||
{
|
||||
/*HOOKS STUFF - FISHEARS*/
|
||||
memset((void*)0x80001800,0,kenobiwii_size);
|
||||
memcpy((void*)0x80001800,kenobiwii,kenobiwii_size);
|
||||
DCFlushRange((void*)0x80001800,kenobiwii_size);
|
||||
hooktype = 1;
|
||||
memcpy((void*)0x80001800, (char*)0x80000000, 6); // For WiiRD
|
||||
/*HOOKS STUFF - FISHEARS*/
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
void *dst = NULL;
|
||||
int len = 0, offset = 0;
|
||||
GXRModeObj** table = NULL;
|
||||
|
||||
/* Run apploader main function */
|
||||
ret = appldr_main(&dst, &len, &offset);
|
||||
if (!ret)
|
||||
break;
|
||||
|
||||
/* Read data from DVD */
|
||||
WDVD_Read(dst, len, (u64)(offset << 2));
|
||||
|
||||
|
||||
if (videoSelected == 5) // patch
|
||||
|
||||
{
|
||||
switch(CONF_GetVideo())
|
||||
{
|
||||
case CONF_VIDEO_PAL:
|
||||
if(CONF_GetEuRGB60() > 0)
|
||||
{
|
||||
table = NTSC2PAL60;
|
||||
}
|
||||
else
|
||||
{
|
||||
table = NTSC2PAL;
|
||||
}
|
||||
break;
|
||||
|
||||
case CONF_VIDEO_MPAL:
|
||||
|
||||
|
||||
|
||||
table = NTSC2PAL;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
table = PAL2NTSC;
|
||||
break;
|
||||
}
|
||||
Search_and_patch_Video_Modes(dst, len, table);
|
||||
}
|
||||
|
||||
/*GAME HOOK - FISHEARS*/
|
||||
dogamehooks(dst,len);
|
||||
|
||||
if (vipatch)
|
||||
vidolpatcher(dst,len);
|
||||
|
||||
|
||||
/*LANGUAGE PATCH - FISHEARS*/
|
||||
langpatcher(dst,len);
|
||||
|
||||
/*Thanks to WiiPower*/
|
||||
if(patchcountrystring == 1)
|
||||
PatchCountryStrings(dst, len);
|
||||
|
||||
DCFlushRange(dst, len);
|
||||
}
|
||||
/* Set entry point from apploader */
|
||||
*entry = appldr_final();
|
||||
|
||||
return 0;
|
||||
}
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
|
@ -1,10 +0,0 @@
|
|||
#ifndef _APPLOADER_H_
|
||||
#define _APPLOADER_H_
|
||||
|
||||
/* Entry point */
|
||||
typedef void (*entry_point)(void);
|
||||
|
||||
/* Prototypes */
|
||||
s32 Apploader_Run(entry_point *, u8, u8, u8, u8);
|
||||
|
||||
#endif
|
|
@ -1,35 +0,0 @@
|
|||
/****************************************************************************
|
||||
* libwiigui Template
|
||||
* Tantric 2009
|
||||
*
|
||||
* audio.cpp
|
||||
* Audio support
|
||||
***************************************************************************/
|
||||
|
||||
#include <gccore.h>
|
||||
#include <ogcsys.h>
|
||||
#include <asndlib.h>
|
||||
|
||||
/****************************************************************************
|
||||
* InitAudio
|
||||
*
|
||||
* Initializes the Wii's audio subsystem
|
||||
***************************************************************************/
|
||||
void InitAudio()
|
||||
{
|
||||
AUDIO_Init(NULL);
|
||||
ASND_Init();
|
||||
ASND_Pause(0);
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* ShutdownAudio
|
||||
*
|
||||
* Shuts down audio subsystem. Useful to avoid unpleasant sounds if a
|
||||
* crash occurs during shutdown.
|
||||
***************************************************************************/
|
||||
void ShutdownAudio()
|
||||
{
|
||||
ASND_Pause(1);
|
||||
ASND_End();
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
/****************************************************************************
|
||||
* libwiigui Template
|
||||
* Tantric 2009
|
||||
*
|
||||
* audio.h
|
||||
* Audio support
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _AUDIO_H_
|
||||
#define _AUDIO_H_
|
||||
|
||||
void InitAudio();
|
||||
void ShutdownAudio();
|
||||
|
||||
#endif
|
75
source/background_image.c
Normal file
|
@ -0,0 +1,75 @@
|
|||
#include <malloc.h>
|
||||
#include "pngu.h"
|
||||
#include "video.h"
|
||||
#include "filelist.h"
|
||||
|
||||
extern int screenwidth;
|
||||
extern int screenheight;
|
||||
static int imagewidth = 0;
|
||||
static int imageheight = 0;
|
||||
|
||||
u8 * GetImageData()
|
||||
{
|
||||
PNGUPROP imgProp;
|
||||
IMGCTX ctx;
|
||||
u8 * data = NULL;
|
||||
int ret;
|
||||
|
||||
if(CONF_GetAspectRatio() == CONF_ASPECT_16_9)
|
||||
ctx = PNGU_SelectImageFromBuffer(background169_png);
|
||||
else
|
||||
ctx = PNGU_SelectImageFromBuffer(background_png);
|
||||
|
||||
if (!ctx)
|
||||
return NULL;
|
||||
|
||||
ret = PNGU_GetImageProperties(ctx, &imgProp);
|
||||
if (ret != PNGU_OK)
|
||||
return NULL;
|
||||
|
||||
imagewidth = imgProp.imgWidth;
|
||||
imageheight = imgProp.imgHeight;
|
||||
|
||||
int len = ((((imgProp.imgWidth+3)>>2)*((imgProp.imgHeight+3)>>2)*32*2) + 31) & ~31;
|
||||
|
||||
data = (u8 *)memalign (32, len);
|
||||
|
||||
ret = PNGU_DecodeTo4x4RGBA8 (ctx, imgProp.imgWidth, imgProp.imgHeight, data, 255);
|
||||
|
||||
DCFlushRange(data, len);
|
||||
|
||||
PNGU_ReleaseImageContext(ctx);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
void Background_Show(float x, float y, float z, u8 * data, float angle, float scaleX, float scaleY, u8 alpha)
|
||||
{
|
||||
/* Draw image */
|
||||
Menu_DrawImg(x, y, z, imagewidth, imageheight, data, angle, scaleX, scaleY, alpha);
|
||||
Menu_Render();
|
||||
}
|
||||
|
||||
void fadein(u8 * imgdata)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* fadein of image */
|
||||
for(i = 0; i < 255; i = i+10)
|
||||
{
|
||||
if(i>255) i = 255;
|
||||
Background_Show(screenwidth/2-imagewidth/2, screenheight/2-imageheight/2, 0, imgdata, 0, (float)screenwidth/(float)imagewidth, 1, i);
|
||||
}
|
||||
}
|
||||
|
||||
void fadeout(u8 * imgdata)
|
||||
{
|
||||
int i;
|
||||
|
||||
/* fadeoout of image */
|
||||
for(i = 255; i > 1; i = i-7)
|
||||
{
|
||||
if(i < 0) i = 0;
|
||||
Background_Show(screenwidth/2-imagewidth/2, screenheight/2-imageheight/2, 0, imgdata, 0, (float)screenwidth/(float)imagewidth, 1, i);
|
||||
}
|
||||
}
|
9
source/background_image.h
Normal file
|
@ -0,0 +1,9 @@
|
|||
#ifndef BACKGROUND_IMAGE_H_
|
||||
#define BACKGROUND_IMAGE_H_
|
||||
|
||||
u8 * GetImageData();
|
||||
void Background_Show(float x, float y, float z, u8 * data, float angle, float scaleX, float scaleY, u8 alpha);
|
||||
void fadein(u8 * imgdata);
|
||||
void fadeout(u8 * imgdata);
|
||||
|
||||
#endif
|
1595
source/cfg.c
374
source/cfg.h
|
@ -1,359 +1,15 @@
|
|||
#ifndef _CFG_H_
|
||||
#define _CFG_H_
|
||||
|
||||
#include <gctypes.h>
|
||||
#include "disc.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#define CFG_HOME_REBOOT 0
|
||||
#define CFG_HOME_EXIT 1
|
||||
|
||||
#define CFG_VIDEO_SYS 0 // system default
|
||||
#define CFG_VIDEO_DEFAULT 1
|
||||
#define CFG_VIDEO_GAME 1 // game default
|
||||
#define CFG_VIDEO_PATCH 2 // patch mode
|
||||
#define CFG_VIDEO_PAL50 3 // force PAL
|
||||
#define CFG_VIDEO_PAL60 4 // force PAL60
|
||||
#define CFG_VIDEO_NTSC 5 // force NTSC
|
||||
#define CFG_VIDEO_COUNT 6
|
||||
|
||||
#define CFG_LANG_CONSOLE 0
|
||||
#define CFG_LANG_JAPANESE 1
|
||||
#define CFG_LANG_ENGLISH 2
|
||||
#define CFG_LANG_GERMAN 3
|
||||
#define CFG_LANG_FRENCH 4
|
||||
#define CFG_LANG_SPANISH 5
|
||||
#define CFG_LANG_ITALIAN 6
|
||||
#define CFG_LANG_DUTCH 7
|
||||
#define CFG_LANG_S_CHINESE 8
|
||||
#define CFG_LANG_T_CHINESE 9
|
||||
#define CFG_LANG_KOREAN 10
|
||||
#define CFG_LANG_COUNT 11
|
||||
|
||||
#define CFG_ALIGN_LEFT 0
|
||||
#define CFG_ALIGN_RIGHT 1
|
||||
#define CFG_ALIGN_CENTRE 2
|
||||
#define CFG_ALIGN_TOP 3
|
||||
#define CFG_ALIGN_BOTTOM 4
|
||||
#define CFG_ALIGN_MIDDLE 5
|
||||
|
||||
extern char *cfg_path;
|
||||
//extern char *cfg_images_path;
|
||||
|
||||
struct CFG
|
||||
{
|
||||
// char *background;
|
||||
// short covers;
|
||||
// short simple;
|
||||
// short video;
|
||||
// short language;
|
||||
// short ocarina;
|
||||
// short vipatch;
|
||||
// short home;
|
||||
// short download;
|
||||
// short installdownload;
|
||||
// short hidesettingmenu;
|
||||
// short savesettings;
|
||||
short widescreen;
|
||||
short parentalcontrol;
|
||||
// short maxcharacters;
|
||||
short godmode;
|
||||
short xflip;
|
||||
short wsprompt;
|
||||
char unlockCode[20];
|
||||
char covers_path[100];
|
||||
char theme_path[100];
|
||||
char disc_path[100];
|
||||
char titlestxt_path[100];
|
||||
char language_path[100];
|
||||
char oggload_path[100];
|
||||
char ogg_path[150];
|
||||
char update_path[150];
|
||||
short keyset;
|
||||
};
|
||||
|
||||
|
||||
struct THEME
|
||||
{
|
||||
int selection_x;
|
||||
int selection_y;
|
||||
int selection_w;
|
||||
int selection_h;
|
||||
short cover_x;
|
||||
short cover_y;
|
||||
short showID;
|
||||
// short maxcharacters;
|
||||
short batteryUnused;
|
||||
short id_x;
|
||||
short id_y;
|
||||
short region_x;
|
||||
short region_y;
|
||||
short power_x;
|
||||
short power_y;
|
||||
short home_x;
|
||||
short home_y;
|
||||
short battery1_x;
|
||||
short battery2_x;
|
||||
short battery3_x;
|
||||
short battery4_x;
|
||||
short battery1_y;
|
||||
short battery2_y;
|
||||
short battery3_y;
|
||||
short battery4_y;
|
||||
short favorite_x;
|
||||
short favorite_y;
|
||||
short abc_x;
|
||||
short abc_y;
|
||||
short list_x;
|
||||
short list_y;
|
||||
short grid_x;
|
||||
short grid_y;
|
||||
short carousel_x;
|
||||
short carousel_y;
|
||||
short count_x;
|
||||
short count_y;
|
||||
short sortBarOffset;
|
||||
// short showPower;
|
||||
// short showHome;
|
||||
short setting_x;
|
||||
short setting_y;
|
||||
short install_x;
|
||||
short install_y;
|
||||
short showHDD;
|
||||
short hddInfoAlign;
|
||||
short hddInfo_x;
|
||||
short hddInfo_y;
|
||||
short showGameCnt;
|
||||
short gameCntAlign;
|
||||
short gameCnt_x;
|
||||
short gameCnt_y;
|
||||
short showRegion;
|
||||
short showBattery;
|
||||
short showToolTip;
|
||||
//color
|
||||
short info_r;
|
||||
short info_g;
|
||||
short info_b;
|
||||
short prompttxt_r;
|
||||
short prompttxt_g;
|
||||
short prompttxt_b;
|
||||
short clock_x;
|
||||
short clock_y;
|
||||
short clockAlign;
|
||||
short sdcard_x;
|
||||
short sdcard_y;
|
||||
short gameText_r;
|
||||
short gameText_g;
|
||||
short gameText_b;
|
||||
short pagesize;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
extern struct CFG CFG;
|
||||
extern struct THEME THEME;
|
||||
extern u8 ocarinaChoice;
|
||||
extern u16 playcnt;
|
||||
extern u8 videoChoice;
|
||||
extern u8 languageChoice;
|
||||
extern u8 viChoice;
|
||||
extern u8 iosChoice;
|
||||
extern u8 faveChoice;
|
||||
extern u8 parentalcontrolChoice;
|
||||
extern u8 xflip;
|
||||
extern u8 qboot;
|
||||
extern u8 sort;
|
||||
extern u8 fave;
|
||||
extern u8 wsprompt;
|
||||
extern u8 keyset;
|
||||
extern u8 gameDisplay;
|
||||
|
||||
struct Game_CFG
|
||||
{
|
||||
u8 id[8];
|
||||
u8 video;
|
||||
u8 language;
|
||||
u8 ocarina;
|
||||
u8 vipatch;
|
||||
u8 ios;
|
||||
u8 parentalcontrol;
|
||||
};
|
||||
struct Game_NUM
|
||||
{
|
||||
u8 id[8];
|
||||
u8 favorite;
|
||||
u16 count;
|
||||
};
|
||||
|
||||
|
||||
void CFG_Default(int widescreen); // -1 = non forced mode
|
||||
void CFG_Load(void);
|
||||
void lang_defualt();
|
||||
struct Game_CFG* CFG_get_game_opt(u8 *id);
|
||||
struct Game_NUM* CFG_get_game_num(u8 *id);
|
||||
bool CFG_save_game_opt(u8 *id);
|
||||
bool CFG_save_game_num(u8 *id);
|
||||
bool CFG_forget_game_opt(u8 *id);
|
||||
int subfoldercheck(char * directory);
|
||||
|
||||
//Astidof - Begin of modification
|
||||
enum {
|
||||
ConsoleLangDefault=0,
|
||||
jap,
|
||||
eng,
|
||||
ger,
|
||||
fren,
|
||||
esp,
|
||||
it,
|
||||
dut,
|
||||
schin,
|
||||
tchin,
|
||||
kor,
|
||||
|
||||
settings_language_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
systemdefault=0,
|
||||
discdefault,
|
||||
patch,
|
||||
pal50,
|
||||
pal60,
|
||||
ntsc,
|
||||
settings_video_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
off=0,
|
||||
on,
|
||||
settings_off_on_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
GameID,
|
||||
GameRegion,
|
||||
Both,
|
||||
Neither,
|
||||
settings_sinfo_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
i249=0,
|
||||
i222,
|
||||
};
|
||||
|
||||
enum {
|
||||
ios249=0,
|
||||
ios222,
|
||||
settings_cios_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
hr12=0,
|
||||
hr24,
|
||||
Off,
|
||||
settings_clock_max // always the last entry
|
||||
};
|
||||
enum {
|
||||
all=0,
|
||||
pcount,
|
||||
};
|
||||
|
||||
enum {
|
||||
RumbleOff=0,
|
||||
RumbleOn,
|
||||
settings_rumble_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
TooltipsOff=0,
|
||||
TooltipsOn,
|
||||
settings_tooltips_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
v10=0,
|
||||
v20,
|
||||
v30,
|
||||
v40,
|
||||
v50,
|
||||
v60,
|
||||
v70,
|
||||
v80,
|
||||
v90,
|
||||
v100,
|
||||
v0,
|
||||
settings_volume_max // always the last entry
|
||||
};
|
||||
|
||||
enum {
|
||||
no=0,
|
||||
yes,
|
||||
sysmenu,
|
||||
wtf,
|
||||
disk3d,
|
||||
settings_xflip_max // always the last entry
|
||||
};
|
||||
enum {
|
||||
us=0,
|
||||
dvorak,
|
||||
euro,
|
||||
azerty,
|
||||
settings_keyset_max // always the last entry
|
||||
};
|
||||
enum {
|
||||
list,
|
||||
grid,
|
||||
carousel,
|
||||
};
|
||||
enum {
|
||||
scrollDefault,
|
||||
scrollMarquee,
|
||||
|
||||
settings_scrolleffect_max // always the last entry
|
||||
};
|
||||
struct SSettings {
|
||||
int video;
|
||||
int language;
|
||||
int ocarina;
|
||||
int vpatch;
|
||||
int ios;
|
||||
int sinfo;
|
||||
int hddinfo;
|
||||
int rumble;
|
||||
int xflip;
|
||||
int volume;
|
||||
int tooltips;
|
||||
char unlockCode[20];
|
||||
int parentalcontrol;
|
||||
int cios;
|
||||
int qboot;
|
||||
int wsprompt;
|
||||
int keyset;
|
||||
int unicodefix;
|
||||
int sort;
|
||||
int fave;
|
||||
int wiilight;
|
||||
int gameDisplay;
|
||||
int patchcountrystrings;
|
||||
};
|
||||
|
||||
void CFG_LoadGlobal(void);
|
||||
bool cfg_save_global(void);
|
||||
//Astidof - End of modification
|
||||
|
||||
char *get_title(struct discHdr *header);
|
||||
u8 get_block(struct discHdr *header);
|
||||
|
||||
void CFG_Cleanup(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#ifndef _CFG_H_
|
||||
#define _CFG_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
bool cfg_parsefile(char * fname, int maxsize);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
BIN
source/data1
Before Width: | Height: | Size: 22 KiB |
134
source/devicemounter.c
Normal file
|
@ -0,0 +1,134 @@
|
|||
#include <gccore.h>
|
||||
#include <ogc/mutex.h>
|
||||
#include <ogc/system.h>
|
||||
#include <ogc/usbstorage.h>
|
||||
#include <ogc/lwp_watchdog.h>
|
||||
#include <malloc.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <fat.h>
|
||||
#include <ntfs.h>
|
||||
#include <ext2.h>
|
||||
#include <sdcard/wiisd_io.h>
|
||||
#include <unistd.h>
|
||||
#include <time.h>
|
||||
#include "devicemounter.h"
|
||||
|
||||
#define MAX_SECTOR_SIZE 4096
|
||||
|
||||
//these are the only stable and speed is good
|
||||
#define CACHE 8
|
||||
#define SECTORS 64
|
||||
|
||||
typedef struct _PARTITION_RECORD {
|
||||
u8 status; /* Partition status; see above */
|
||||
u8 chs_start[3]; /* Cylinder-head-sector address to first block of partition */
|
||||
u8 type; /* Partition type; see above */
|
||||
u8 chs_end[3]; /* Cylinder-head-sector address to last block of partition */
|
||||
u32 lba_start; /* Local block address to first sector of partition */
|
||||
u32 block_count; /* Number of blocks in partition */
|
||||
} __attribute__((__packed__)) PARTITION_RECORD;
|
||||
|
||||
|
||||
typedef struct _MASTER_BOOT_RECORD {
|
||||
u8 code_area[446]; /* Code area; normally empty */
|
||||
PARTITION_RECORD partitions[4]; /* 4 primary partitions */
|
||||
u16 signature; /* MBR signature; 0xAA55 */
|
||||
} __attribute__((__packed__)) MASTER_BOOT_RECORD;
|
||||
|
||||
|
||||
#define PARTITION_TYPE_LINUX 0x83
|
||||
#define le32(i) (((((u32) i) & 0xFF) << 24) | ((((u32) i) & 0xFF00) << 8) | \
|
||||
((((u32) i) & 0xFF0000) >> 8) | ((((u32) i) & 0xFF000000) >> 24))
|
||||
|
||||
int USBDevice_Init()
|
||||
{
|
||||
time_t start = time(0);
|
||||
|
||||
while(time(0)-start < 10) // 10 sec
|
||||
{
|
||||
if(__io_usbstorage.startup() && __io_usbstorage.isInserted())
|
||||
break;
|
||||
|
||||
usleep(200000); // 1/5 sec
|
||||
}
|
||||
|
||||
if(!__io_usbstorage.startup() || !__io_usbstorage.isInserted())
|
||||
return -1;
|
||||
|
||||
int i;
|
||||
MASTER_BOOT_RECORD *mbr = (MASTER_BOOT_RECORD *) malloc(MAX_SECTOR_SIZE);
|
||||
char *BootSector = (char *) malloc(MAX_SECTOR_SIZE);
|
||||
if(!mbr || !BootSector)
|
||||
return -1;
|
||||
|
||||
__io_usbstorage.readSectors(0, 1, mbr);
|
||||
|
||||
for(i = 0; i < 4; ++i)
|
||||
{
|
||||
if(mbr->partitions[i].type == 0)
|
||||
continue;
|
||||
|
||||
__io_usbstorage.readSectors(le32(mbr->partitions[i].lba_start), 1, BootSector);
|
||||
|
||||
if(*((u16 *) (BootSector + 0x1FE)) == 0x55AA)
|
||||
{
|
||||
//! Partition typ can be missleading the correct partition format. Stupid lazy ass Partition Editors.
|
||||
if(memcmp(BootSector + 0x36, "FAT", 3) == 0 || memcmp(BootSector + 0x52, "FAT", 3) == 0)
|
||||
{
|
||||
fatMount(DeviceName[USB1+i], &__io_usbstorage, le32(mbr->partitions[i].lba_start), CACHE, SECTORS);
|
||||
}
|
||||
else if (memcmp(BootSector + 0x03, "NTFS", 4) == 0)
|
||||
{
|
||||
ntfsMount(DeviceName[USB1+i], &__io_usbstorage, le32(mbr->partitions[i].lba_start), CACHE, SECTORS, NTFS_SHOW_HIDDEN_FILES | NTFS_RECOVER | NTFS_IGNORE_CASE);
|
||||
}
|
||||
}
|
||||
else if(mbr->partitions[i].type == PARTITION_TYPE_LINUX)
|
||||
{
|
||||
ext2Mount(DeviceName[USB1+i], &__io_usbstorage, le32(mbr->partitions[i].lba_start), CACHE, SECTORS, EXT2_FLAG_DEFAULT);
|
||||
}
|
||||
}
|
||||
|
||||
free(mbr);
|
||||
free(BootSector);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void USBDevice_deInit()
|
||||
{
|
||||
int dev;
|
||||
char Name[20];
|
||||
|
||||
for(dev = USB1; dev <= USB4; ++dev)
|
||||
{
|
||||
sprintf(Name, "%s:/", DeviceName[dev]);
|
||||
fatUnmount(Name);
|
||||
ext2Unmount(Name);
|
||||
ntfsUnmount(Name, true);
|
||||
}
|
||||
//Let's not shutdown so it stays awake for the application
|
||||
__io_usbstorage.shutdown();
|
||||
USB_Deinitialize();
|
||||
}
|
||||
|
||||
int SDCard_Init()
|
||||
{
|
||||
if(!__io_wiisd.startup() || !__io_wiisd.isInserted())
|
||||
return -1;
|
||||
|
||||
if (fatMount(DeviceName[SD], &__io_wiisd, 0, CACHE, SECTORS))
|
||||
return 1;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void SDCard_deInit()
|
||||
{
|
||||
char Name[20];
|
||||
sprintf(Name, "%s:/", DeviceName[SD]);
|
||||
//closing all open Files write back the cache and then shutdown em!
|
||||
fatUnmount(Name);
|
||||
//Let's not shutdown so it stays awake for the application
|
||||
__io_wiisd.shutdown();
|
||||
}
|
|
@ -1,19 +1,37 @@
|
|||
#ifndef _FATMOUNTER_H_
|
||||
#define _FATMOUNTER_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
int USBDevice_Init();
|
||||
void USBDevice_deInit();
|
||||
int isSdInserted();
|
||||
int SDCard_Init();
|
||||
void SDCard_deInit();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#ifndef _FATMOUNTER_H_
|
||||
#define _FATMOUNTER_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
SD = 0,
|
||||
USB1,
|
||||
USB2,
|
||||
USB3,
|
||||
USB4,
|
||||
MAXDEVICES
|
||||
};
|
||||
|
||||
static const char DeviceName[MAXDEVICES][6] =
|
||||
{
|
||||
"sd",
|
||||
"usb1",
|
||||
"usb2",
|
||||
"usb3",
|
||||
"usb4"
|
||||
};
|
||||
|
||||
int USBDevice_Init();
|
||||
void USBDevice_deInit();
|
||||
int SDCard_Init();
|
||||
void SDCard_deInit();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
390
source/disc.c
|
@ -1,390 +0,0 @@
|
|||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <ogcsys.h>
|
||||
#include <ogc/lwp_watchdog.h>
|
||||
#include <wiiuse/wpad.h>
|
||||
|
||||
|
||||
#include "apploader.h"
|
||||
#include "disc.h"
|
||||
#include "video.h"
|
||||
#include "wdvd.h"
|
||||
#include "fst.h"
|
||||
|
||||
/* Constants */
|
||||
#define PTABLE_OFFSET 0x40000
|
||||
#define WII_MAGIC 0x5D1C9EA3
|
||||
|
||||
/* Disc pointers */
|
||||
static u32 *buffer = (u32 *)0x93000000;
|
||||
static u8 *diskid = (u8 *)0x80000000;
|
||||
static char gameid[8];
|
||||
|
||||
|
||||
void __Disc_SetLowMem(void)
|
||||
{
|
||||
/* Setup low memory */
|
||||
*(vu32 *)0x80000030 = 0x00000000;
|
||||
*(vu32 *)0x80000060 = 0x38A00040;
|
||||
*(vu32 *)0x800000E4 = 0x80431A80;
|
||||
*(vu32 *)0x800000EC = 0x81800000;
|
||||
*(vu32 *)0x800000F4 = 0x817E5480;
|
||||
*(vu32 *)0x800000F8 = 0x0E7BE2C0;
|
||||
*(vu32 *)0x800000FC = 0x2B73A840;
|
||||
|
||||
/* Copy disc ID */
|
||||
memcpy((void *)0x80003180, (void *)0x80000000, 4);
|
||||
|
||||
/* Flush cache */
|
||||
DCFlushRange((void *)0x80000000, 0x3F00);
|
||||
}
|
||||
|
||||
void __Disc_SetVMode(u8 videoselected)
|
||||
{
|
||||
GXRModeObj *vmode = NULL;
|
||||
|
||||
u32 progressive, tvmode, vmode_reg = 0;
|
||||
|
||||
/* Get video mode configuration */
|
||||
progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable();
|
||||
tvmode = CONF_GetVideo();
|
||||
|
||||
/* Select video mode register */
|
||||
switch (tvmode) {
|
||||
case CONF_VIDEO_PAL:
|
||||
vmode_reg = (CONF_GetEuRGB60() > 0) ? 5 : 1;
|
||||
break;
|
||||
|
||||
case CONF_VIDEO_MPAL:
|
||||
vmode_reg = 4;
|
||||
break;
|
||||
|
||||
case CONF_VIDEO_NTSC:
|
||||
vmode_reg = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
switch (videoselected) {
|
||||
case 0:
|
||||
|
||||
/* Select video mode */
|
||||
switch(diskid[3]) {
|
||||
/* PAL */
|
||||
case 'D':
|
||||
case 'F':
|
||||
case 'P':
|
||||
case 'X':
|
||||
case 'Y':
|
||||
if (tvmode != CONF_VIDEO_PAL) {
|
||||
vmode_reg = 5;
|
||||
vmode = (progressive) ? &TVNtsc480Prog : &TVEurgb60Hz480IntDf;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
/* NTSC or unknown */
|
||||
case 'E':
|
||||
case 'J':
|
||||
if (tvmode != CONF_VIDEO_NTSC) {
|
||||
vmode_reg = 0;
|
||||
vmode = (progressive) ? &TVNtsc480Prog : &TVNtsc480IntDf;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 1:
|
||||
vmode_reg = 1;
|
||||
progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable();
|
||||
vmode = (progressive) ? &TVEurgb60Hz480Prog : &TVPal528IntDf;
|
||||
break;
|
||||
case 2:
|
||||
vmode_reg = 5;
|
||||
progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable();
|
||||
vmode = (progressive) ? &TVEurgb60Hz480Prog : &TVEurgb60Hz480IntDf;
|
||||
break;
|
||||
case 3:
|
||||
vmode_reg = 0;
|
||||
progressive = (CONF_GetProgressiveScan() > 0) && VIDEO_HaveComponentCable();
|
||||
vmode = (progressive) ? &TVNtsc480Prog : &TVNtsc480IntDf;
|
||||
break;
|
||||
case 4:
|
||||
// vmode = VIDEO_GetPreferredMode(NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
/* Set video mode register */
|
||||
*(vu32 *)0x800000CC = vmode_reg;
|
||||
|
||||
/* Set video mode */
|
||||
if (vmode) {
|
||||
|
||||
VIDEO_Configure(vmode);
|
||||
|
||||
/* Setup video */
|
||||
VIDEO_SetBlack(FALSE);
|
||||
VIDEO_Flush();
|
||||
VIDEO_WaitVSync();
|
||||
|
||||
if (vmode->viTVMode & VI_NON_INTERLACE)
|
||||
VIDEO_WaitVSync();
|
||||
}
|
||||
}
|
||||
|
||||
void __Disc_SetTime(void)
|
||||
{
|
||||
/* Extern */
|
||||
extern void settime(u64);
|
||||
|
||||
/* Set proper time */
|
||||
settime(secs_to_ticks(time(NULL) - 946684800));
|
||||
}
|
||||
|
||||
s32 __Disc_FindPartition(u64 *outbuf)
|
||||
{
|
||||
u64 offset = 0, table_offset = 0;
|
||||
|
||||
u32 cnt, nb_partitions;
|
||||
s32 ret;
|
||||
|
||||
/* Read partition info */
|
||||
ret = WDVD_UnencryptedRead(buffer, 0x20, PTABLE_OFFSET);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Get data */
|
||||
nb_partitions = buffer[0];
|
||||
table_offset = buffer[1] << 2;
|
||||
|
||||
/* Read partition table */
|
||||
ret = WDVD_UnencryptedRead(buffer, 0x20, table_offset);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Find game partition */
|
||||
for (cnt = 0; cnt < nb_partitions; cnt++) {
|
||||
u32 type = buffer[cnt * 2 + 1];
|
||||
|
||||
/* Game partition */
|
||||
if(!type)
|
||||
offset = buffer[cnt * 2] << 2;
|
||||
}
|
||||
|
||||
/* No game partition found */
|
||||
if (!offset)
|
||||
return -1;
|
||||
|
||||
/* Set output buffer */
|
||||
*outbuf = offset;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
s32 Disc_Init(void)
|
||||
{
|
||||
/* Init DVD subsystem */
|
||||
return WDVD_Init();
|
||||
}
|
||||
|
||||
s32 Disc_Open(void)
|
||||
{
|
||||
s32 ret;
|
||||
|
||||
/* Reset drive */
|
||||
ret = WDVD_Reset();
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Read disc ID */
|
||||
return WDVD_ReadDiskId(diskid);
|
||||
}
|
||||
|
||||
s32 Disc_Wait(void)
|
||||
{
|
||||
u32 cover = 0;
|
||||
s32 ret;
|
||||
|
||||
/* Wait for disc */
|
||||
while (!(cover & 0x2)) {
|
||||
/* Get cover status */
|
||||
ret = WDVD_GetCoverStatus(&cover);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 Disc_SetUSB(u8 *id, int ios222)
|
||||
{
|
||||
/* Set USB mode */
|
||||
return WDVD_SetUSBMode(id, ios222);
|
||||
}
|
||||
|
||||
s32 Disc_ReadHeader(void *outbuf)
|
||||
{
|
||||
/* Read disc header */
|
||||
return WDVD_UnencryptedRead(outbuf, sizeof(struct discHdr), 0);
|
||||
}
|
||||
|
||||
s32 Disc_IsWii(void)
|
||||
{
|
||||
struct discHdr *header = (struct discHdr *)buffer;
|
||||
|
||||
s32 ret;
|
||||
|
||||
/* Read disc header */
|
||||
ret = Disc_ReadHeader(header);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Check magic word */
|
||||
if (header->magic != WII_MAGIC)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 Disc_BootPartition(u64 offset, u8 videoselected, u8 cheat, u8 vipatch, u8 patchcountrystring)
|
||||
{
|
||||
entry_point p_entry;
|
||||
|
||||
s32 ret;
|
||||
|
||||
/* Open specified partition */
|
||||
ret = WDVD_OpenPartition(offset);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Run apploader */
|
||||
ret = Apploader_Run(&p_entry, cheat, videoselected, vipatch, patchcountrystring);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Setup low memory */
|
||||
__Disc_SetLowMem();
|
||||
|
||||
/* Set an appropiate video mode */
|
||||
__Disc_SetVMode(videoselected);
|
||||
|
||||
/* Set time */
|
||||
__Disc_SetTime();
|
||||
|
||||
if (cheat == 1) {
|
||||
/* OCARINA STUFF - FISHEARS*/
|
||||
memset(gameid, 0, 8);
|
||||
memcpy(gameid, (char*)0x80000000, 6);
|
||||
do_sd_code(gameid);
|
||||
/* OCARINA STUFF - FISHEARS*/
|
||||
}
|
||||
|
||||
/* Disconnect Wiimote */
|
||||
WPAD_Flush(0);
|
||||
WPAD_Disconnect(0);
|
||||
WPAD_Shutdown();
|
||||
|
||||
/* Shutdown IOS subsystems */
|
||||
SYS_ResetSystem(SYS_SHUTDOWN, 0, 0);
|
||||
|
||||
/* Jump to entry point */
|
||||
p_entry();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 Disc_WiiBoot(u8 videoselected, u8 cheat, u8 vipatch, u8 patchcountrystring)
|
||||
{
|
||||
u64 offset;
|
||||
s32 ret;
|
||||
|
||||
/* Find game partition offset */
|
||||
ret = __Disc_FindPartition(&offset);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
/* Boot partition */
|
||||
return Disc_BootPartition(offset, videoselected, cheat, vipatch, patchcountrystring);
|
||||
}
|
||||
|
||||
void PatchCountryStrings(void *Address, int Size)
|
||||
{
|
||||
u8 SearchPattern[4] = { 0x00, 0x00, 0x00, 0x00 };
|
||||
u8 PatchData[4] = { 0x00, 0x00, 0x00, 0x00 };
|
||||
u8 *Addr = (u8*)Address;
|
||||
|
||||
int wiiregion = CONF_GetRegion();
|
||||
|
||||
switch (wiiregion)
|
||||
{
|
||||
case CONF_REGION_JP:
|
||||
SearchPattern[0] = 0x00;
|
||||
SearchPattern[1] = 0x4A; // J
|
||||
SearchPattern[2] = 0x50; // P
|
||||
break;
|
||||
case CONF_REGION_EU:
|
||||
SearchPattern[0] = 0x02;
|
||||
SearchPattern[1] = 0x45; // E
|
||||
SearchPattern[2] = 0x55; // U
|
||||
break;
|
||||
case CONF_REGION_KR:
|
||||
SearchPattern[0] = 0x04;
|
||||
SearchPattern[1] = 0x4B; // K
|
||||
SearchPattern[2] = 0x52; // R
|
||||
break;
|
||||
case CONF_REGION_CN:
|
||||
SearchPattern[0] = 0x05;
|
||||
SearchPattern[1] = 0x43; // C
|
||||
SearchPattern[2] = 0x4E; // N
|
||||
break;
|
||||
case CONF_REGION_US:
|
||||
default:
|
||||
SearchPattern[0] = 0x01;
|
||||
SearchPattern[1] = 0x55; // U
|
||||
SearchPattern[2] = 0x53; // S
|
||||
}
|
||||
|
||||
switch (diskid[3])
|
||||
{
|
||||
case 'J':
|
||||
PatchData[1] = 0x4A; // J
|
||||
PatchData[2] = 0x50; // P
|
||||
break;
|
||||
|
||||
case 'D':
|
||||
case 'F':
|
||||
case 'P':
|
||||
case 'X':
|
||||
case 'Y':
|
||||
PatchData[1] = 0x45; // E
|
||||
PatchData[2] = 0x55; // U
|
||||
break;
|
||||
|
||||
case 'E':
|
||||
default:
|
||||
PatchData[1] = 0x55; // U
|
||||
PatchData[2] = 0x53; // S
|
||||
}
|
||||
|
||||
while (Size >= 4)
|
||||
{
|
||||
if (Addr[0] == SearchPattern[0] && Addr[1] == SearchPattern[1] && Addr[2] == SearchPattern[2] && Addr[3] == SearchPattern[3])
|
||||
{
|
||||
//*Addr = PatchData[0];
|
||||
Addr += 1;
|
||||
*Addr = PatchData[1];
|
||||
Addr += 1;
|
||||
*Addr = PatchData[2];
|
||||
Addr += 1;
|
||||
//*Addr = PatchData[3];
|
||||
Addr += 1;
|
||||
Size -= 4;
|
||||
} else
|
||||
{
|
||||
Addr += 4;
|
||||
Size -= 4;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,57 +0,0 @@
|
|||
#ifndef _DISC_H_
|
||||
#define _DISC_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
/* Disc header structure */
|
||||
struct discHdr
|
||||
{
|
||||
/* Game ID */
|
||||
u8 id[6];
|
||||
|
||||
/* Game version */
|
||||
u16 version;
|
||||
|
||||
/* Audio streaming */
|
||||
u8 streaming;
|
||||
u8 bufsize;
|
||||
|
||||
/* Padding */
|
||||
u8 unused1[14];
|
||||
|
||||
/* Magic word */
|
||||
u32 magic;
|
||||
|
||||
/* Padding */
|
||||
u8 unused2[4];
|
||||
|
||||
/* Game title */
|
||||
char title[64];
|
||||
|
||||
/* Encryption/Hashing */
|
||||
u8 encryption;
|
||||
u8 h3_verify;
|
||||
|
||||
/* Padding */
|
||||
u8 unused3[30];
|
||||
} ATTRIBUTE_PACKED;
|
||||
|
||||
/* Prototypes */
|
||||
s32 Disc_Init(void);
|
||||
s32 Disc_Open(void);
|
||||
s32 Disc_Wait(void);
|
||||
void __Disc_SetLowMem(void);
|
||||
s32 Disc_SetUSB(u8 *, int ios222);
|
||||
s32 Disc_ReadHeader(void *);
|
||||
s32 Disc_IsWii(void);
|
||||
s32 Disc_BootPartition(u64, u8, u8, u8, u8);
|
||||
s32 Disc_WiiBoot(u8, u8, u8, u8);
|
||||
void PatchCountryStrings(void *Address, int Size);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
122
source/dns.c
|
@ -1,122 +0,0 @@
|
|||
#include "dns.h"
|
||||
|
||||
/**
|
||||
* Resolves a domainname to an ip address
|
||||
* It makes use of net_gethostbyname from libogc, which in turn makes use of a Wii BIOS function
|
||||
* Just like the net_gethostbyname function this function is NOT threadsafe!
|
||||
*
|
||||
* @param char* The domain name to resolve
|
||||
* @return u32 The ipaddress represented by four bytes inside an u32 (in network order)
|
||||
*/
|
||||
u32 getipbyname(char *domain)
|
||||
{
|
||||
//Care should be taken when using net_gethostbyname,
|
||||
//it returns a static buffer which makes it not threadsafe
|
||||
//TODO: implement some locking mechanism to make below code atomic
|
||||
struct hostent *host = net_gethostbyname(domain);
|
||||
|
||||
if(host == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
u32 *ip = (u32*)host->h_addr_list[0];
|
||||
return *ip;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//Defines how many DNS entries should be cached by getipbynamecached()
|
||||
#define MAX_DNS_CACHE_ENTRIES 20
|
||||
|
||||
//The cache is defined as a linked list,
|
||||
//The last resolved domain name will always be at the front
|
||||
//This will allow heavily used domainnames to always stay cached
|
||||
struct dnsentry {
|
||||
char *domain;
|
||||
u32 ip;
|
||||
struct dnsentry *nextnode;
|
||||
} ;
|
||||
|
||||
static struct dnsentry *firstdnsentry = NULL;
|
||||
static int dnsentrycount = 0;
|
||||
|
||||
/**
|
||||
* Performs the same function as getipbyname(),
|
||||
* except that it will prevent extremely expensive net_gethostbyname() calls by caching the result
|
||||
*/
|
||||
u32 getipbynamecached(char *domain)
|
||||
{
|
||||
//Search if this domainname is already cached
|
||||
struct dnsentry *node = firstdnsentry;
|
||||
struct dnsentry *previousnode = NULL;
|
||||
|
||||
while(node != NULL)
|
||||
{
|
||||
if(strcmp(node->domain, domain) == 0)
|
||||
{
|
||||
//DNS node found in the cache, move it to the front of the list
|
||||
if(previousnode != NULL)
|
||||
previousnode->nextnode = node->nextnode;
|
||||
|
||||
if(node != firstdnsentry)
|
||||
node->nextnode = firstdnsentry;
|
||||
firstdnsentry = node;
|
||||
|
||||
return node->ip;
|
||||
}
|
||||
//Go to the next element in the list
|
||||
previousnode = node;
|
||||
node = node->nextnode;
|
||||
}
|
||||
u32 ip = getipbyname(domain);
|
||||
|
||||
//No cache of this domain could be found, create a cache node and add it to the front of the cache
|
||||
struct dnsentry *newnode = malloc(sizeof(struct dnsentry));
|
||||
if(newnode == NULL) {
|
||||
return ip;
|
||||
}
|
||||
|
||||
newnode->ip = ip;
|
||||
newnode->domain = malloc(strlen(domain)+1);
|
||||
if(newnode->domain == NULL)
|
||||
{
|
||||
free(newnode);
|
||||
return ip;
|
||||
}
|
||||
strcpy(newnode->domain, domain);
|
||||
|
||||
newnode->nextnode = firstdnsentry;
|
||||
firstdnsentry = newnode;
|
||||
dnsentrycount++;
|
||||
|
||||
//If the cache grows too big delete the last (and probably least important) node of the list
|
||||
if(dnsentrycount > MAX_DNS_CACHE_ENTRIES)
|
||||
{
|
||||
struct dnsentry *node = firstdnsentry;
|
||||
struct dnsentry *previousnode = NULL;
|
||||
|
||||
//Fetch the last two elements of the list
|
||||
while(node->nextnode != NULL)
|
||||
{
|
||||
previousnode = node;
|
||||
node = node->nextnode;
|
||||
}
|
||||
|
||||
if(node == NULL)
|
||||
{
|
||||
printf("Configuration error, MAX_DNS_ENTRIES reached while the list is empty\n");
|
||||
exit(1);
|
||||
} else if(previousnode == NULL)
|
||||
{
|
||||
firstdnsentry = NULL;
|
||||
} else {
|
||||
previousnode->nextnode = NULL;
|
||||
}
|
||||
|
||||
free(node->domain);
|
||||
free(node);
|
||||
dnsentrycount--;
|
||||
}
|
||||
|
||||
return newnode->ip;
|
||||
}
|
23
source/dns.h
|
@ -1,23 +0,0 @@
|
|||
#ifndef _DNS_H_
|
||||
#define _DNS_H_
|
||||
|
||||
#include <network.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <unistd.h> //usleep
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
u32 getipbyname(char *domain);
|
||||
u32 getipbynamecached(char *domain);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _DNS_H_ */
|
|
@ -1,612 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2008 Nuke (wiinuke@gmail.com)
|
||||
*
|
||||
* this file is part of GeckoOS for USB Gecko
|
||||
* http://www.usbgecko.com
|
||||
*
|
||||
* 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 2 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, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <malloc.h>
|
||||
#include <time.h>
|
||||
#include <gcutil.h>
|
||||
#include <ogc/lwp_queue.h>
|
||||
#include <gccore.h>
|
||||
|
||||
#include "dvd_broadway.h"
|
||||
|
||||
#define DI_CMDCTX_CNT 4
|
||||
|
||||
#define DVD_DISKIDSIZE 0x20
|
||||
#define DVD_DRVINFSIZE 0x20
|
||||
|
||||
#define IOCTL_DI_INQUIRY 0x12
|
||||
#define IOCTL_DI_READID 0x70
|
||||
#define IOCTL_DI_READ 0x71
|
||||
#define IOCTL_DI_WAITCVRCLOSE 0x79
|
||||
#define IOCTL_DI_COVER 0x7A
|
||||
#define IOCTL_DI_RESETNOTIFY 0x7E
|
||||
#define IOCTL_DI_RESET 0x8A
|
||||
#define IOCTL_DI_OPENPART 0x8B
|
||||
#define IOCTL_DI_CLOSEPART 0x8C
|
||||
#define IOCTL_DI_UNENCREAD 0x8D
|
||||
#define IOCTL_DI_ENABLE_DVD 0x8E
|
||||
#define IOCTL_DI_SEEK 0xAB
|
||||
#define IOCTL_DI_READ_DVDVIDEO 0xD0
|
||||
#define IOCTL_DI_STOPLASER 0xD2
|
||||
#define IOCTL_DI_OFFSET 0xD9
|
||||
#define IOCTL_DI_REQERROR 0xE0
|
||||
#define IOCTL_DI_STOPMOTOR 0xE3
|
||||
#define IOCTL_DI_SETOFFBASE 0xF0
|
||||
#define IOCTL_DI_GETOFFBASE 0xF1
|
||||
#define IOCTL_DI_SETCRYPTMODE 0xF2
|
||||
#define IOCTL_DI_GETCRYPTMODE 0xF3
|
||||
#define IOCTL_DI_SETDVDROMMODE 0xF4
|
||||
#define IOCTL_DI_GETDVDROMMODE 0xF5
|
||||
|
||||
#define _SHIFTL(v, s, w) \
|
||||
((u32) (((u32)(v) & ((0x01 << (w)) - 1)) << (s)))
|
||||
#define _SHIFTR(v, s, w) \
|
||||
((u32)(((u32)(v) >> (s)) & ((0x01 << (w)) - 1)))
|
||||
|
||||
struct dicommand
|
||||
{
|
||||
u32 diReg[8];
|
||||
};
|
||||
|
||||
struct dicontext
|
||||
{
|
||||
lwp_node node;
|
||||
dvdcallbacklow cb;
|
||||
struct dicommand *cmd;
|
||||
};
|
||||
|
||||
static s32 __dvd_fd = -1;
|
||||
static u32 __dvd_spinupval = 1;
|
||||
static lwp_queue __di_contextq;
|
||||
static u32 __dvd_readlength = 0;
|
||||
static u32 __dvd_cbinprogress = 0;
|
||||
static u32 __dvd_reqinprogress = 0;
|
||||
static u32 __dvd_lowinitcalled = 0;
|
||||
static struct dicommand *__di_commands = NULL;
|
||||
static struct dicontext __di_contexts[DI_CMDCTX_CNT];
|
||||
static u32 __di_regbuffer[0x08] ATTRIBUTE_ALIGN(32);
|
||||
static u32 __di_regvalcache[0x08] ATTRIBUTE_ALIGN(32);
|
||||
static u32 __di_lastticketerror[0x08] ATTRIBUTE_ALIGN(32);
|
||||
static ioctlv __di_iovector[0x08] ATTRIBUTE_ALIGN(32);
|
||||
static char __di_fs[] ATTRIBUTE_ALIGN(32) = "/dev/di";
|
||||
|
||||
extern u32 __IPC_ClntInit();
|
||||
|
||||
static __inline__ lwp_node* __lwp_queue_head(lwp_queue *queue)
|
||||
{
|
||||
return (lwp_node*)queue;
|
||||
}
|
||||
|
||||
static __inline__ lwp_node* __lwp_queue_tail(lwp_queue *queue)
|
||||
{
|
||||
return (lwp_node*)&queue->perm_null;
|
||||
}
|
||||
|
||||
|
||||
static __inline__ void __lwp_queue_init_empty(lwp_queue *queue)
|
||||
{
|
||||
queue->first = __lwp_queue_tail(queue);
|
||||
queue->perm_null = NULL;
|
||||
queue->last = __lwp_queue_head(queue);
|
||||
}
|
||||
|
||||
static struct dicontext* __dvd_getcontext(dvdcallbacklow cb)
|
||||
{
|
||||
struct dicontext *ctx;
|
||||
|
||||
ctx = (struct dicontext*)__lwp_queue_get(&__di_contextq);
|
||||
if(ctx!=NULL) ctx->cb = cb;
|
||||
|
||||
return ctx;
|
||||
}
|
||||
|
||||
static s32 __dvd_iostransactionCB(s32 result,void *usrdata)
|
||||
{
|
||||
struct dicontext *ctx = (struct dicontext*)usrdata;
|
||||
|
||||
__dvd_reqinprogress = 0;
|
||||
|
||||
if(ctx->cb!=NULL) {
|
||||
__dvd_cbinprogress = 1;
|
||||
if(result!=0) __dvd_readlength = 0;
|
||||
ctx->cb(result);
|
||||
__dvd_cbinprogress = 0;
|
||||
}
|
||||
__lwp_queue_append(&__di_contextq,&ctx->node);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static s32 __dvd_ioscoverregisterCB(s32 result,void *usrdata)
|
||||
{
|
||||
struct dicontext *ctx = (struct dicontext*)usrdata;
|
||||
|
||||
__dvd_reqinprogress = 0;
|
||||
__di_regvalcache[1] = __di_regbuffer[0];
|
||||
|
||||
if(ctx->cb!=NULL) {
|
||||
__dvd_cbinprogress = 1;
|
||||
ctx->cb(result);
|
||||
__dvd_cbinprogress = 0;
|
||||
}
|
||||
__lwp_queue_append(&__di_contextq,&ctx->node);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static s32 __dvd_ioscovercloseCB(s32 result,void *usrdata)
|
||||
{
|
||||
struct dicontext *ctx = (struct dicontext*)usrdata;
|
||||
|
||||
__dvd_reqinprogress = 0;
|
||||
|
||||
if(ctx->cb!=NULL) {
|
||||
__dvd_cbinprogress = 1;
|
||||
ctx->cb(result);
|
||||
__dvd_cbinprogress = 0;
|
||||
}
|
||||
__lwp_queue_append(&__di_contextq,&ctx->node);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowInit()
|
||||
{
|
||||
s32 i,ret = 0;
|
||||
u32 ipclo,ipchi;
|
||||
lwp_queue inactives;
|
||||
struct dicontext *ctx;
|
||||
|
||||
if(__dvd_lowinitcalled==0) {
|
||||
ret = __IPC_ClntInit();
|
||||
if(ret<0) return ret;
|
||||
|
||||
ipclo = (((u32)IPC_GetBufferLo()+0x1f)&~0x1f);
|
||||
ipchi = (u32)IPC_GetBufferHi();
|
||||
if(ipchi>=(ipclo+(sizeof(struct dicommand)*DI_CMDCTX_CNT))) {
|
||||
__di_commands = (struct dicommand*)ipclo;
|
||||
IPC_SetBufferLo((void*)(ipclo+(sizeof(struct dicommand)*DI_CMDCTX_CNT)));
|
||||
|
||||
memset(__di_commands,0,(sizeof(struct dicommand)*DI_CMDCTX_CNT));
|
||||
|
||||
i = 0;
|
||||
__lwp_queue_init_empty(&__di_contextq);
|
||||
__lwp_queue_initialize(&inactives,__di_contexts,DI_CMDCTX_CNT,sizeof(struct dicontext));
|
||||
while((ctx=(struct dicontext*)__lwp_queue_get(&inactives))!=NULL) {
|
||||
ctx->cmd = &__di_commands[i];
|
||||
ctx->cb = NULL;
|
||||
__lwp_queue_append(&__di_contextq,&ctx->node);
|
||||
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
ret = IOS_Open(__di_fs,0);
|
||||
if(ret<0) return ret;
|
||||
|
||||
__dvd_fd = ret;
|
||||
// __dvd_lowinitcalled = 1;
|
||||
|
||||
// printf("DVD_LowInit(%d)\n",ret);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowInquiry(dvddrvinfo *info,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_INQUIRY<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_INQUIRY,cmd->diReg,sizeof(struct dicommand),info,DVD_DRVINFSIZE,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowReadID(dvddiskid *diskID,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret = 0;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
// printf("DVD_LowReadID()\n");
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_READID<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_READID,cmd->diReg,sizeof(struct dicommand),diskID,DVD_DISKIDSIZE,__dvd_iostransactionCB,ctx);
|
||||
|
||||
// printf("DVD_LowReadID(%d)\n",ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
s32 bwDVD_LowRead(void *buf,u32 len,u32 offset,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
if(buf==NULL || ((u32)buf%32)!=0) return -1;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
__dvd_readlength = len;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_READ<<24);
|
||||
cmd->diReg[1] = len;
|
||||
cmd->diReg[2] = offset;
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_READ,cmd->diReg,sizeof(struct dicommand),buf,len,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// never got this function working, probably removed from wii
|
||||
s32 bwDVD_LowReadVideo(void *buf,u32 len,u32 offset,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
__dvd_readlength = len;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_READ_DVDVIDEO<<24);
|
||||
cmd->diReg[1] = len;
|
||||
cmd->diReg[2] = offset;
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_READ_DVDVIDEO,cmd->diReg,sizeof(struct dicommand),buf,len,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
s32 bwDVD_LowStopLaser(dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_STOPLASER<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_STOPLASER,cmd->diReg,sizeof(struct dicommand),__di_regvalcache,0x20,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
// never got this function working, probably removed from wii
|
||||
s32 bwDVD_EnableVideo(dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_ENABLE_DVD<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_ENABLE_DVD,cmd->diReg,sizeof(struct dicommand),__di_regvalcache,0x20,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowSeek(u32 offset,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_SEEK<<24);
|
||||
cmd->diReg[1] = offset;
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_SEEK,cmd->diReg,sizeof(struct dicommand),NULL,0,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowOffset(u64 offset,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
u32 *off = (u32*)(void*)(&offset);
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_OFFSET<<24);
|
||||
cmd->diReg[1] = 0;
|
||||
if(off[0]) cmd->diReg[1] = 1;
|
||||
cmd->diReg[2] = off[1];
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_OFFSET,cmd->diReg,sizeof(struct dicommand),__di_regvalcache,0x20,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowPrepareCoverRegister(dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_COVER<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_COVER,cmd->diReg,sizeof(struct dicommand),__di_regbuffer,0x20,__dvd_ioscoverregisterCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowOpenPartition(u32 offset,void *eticket,u32 certin_len,void *certificate_in,void *certificate_out,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
if(eticket!=NULL && ((u32)eticket%32)!=0) return -1;
|
||||
if(certificate_in!=NULL && ((u32)certificate_in%32)!=0) return -1;
|
||||
if(certificate_out!=NULL && ((u32)certificate_out%32)!=0) return -1;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_OPENPART<<24);
|
||||
cmd->diReg[1] = offset;
|
||||
|
||||
__di_iovector[0].data = cmd;
|
||||
__di_iovector[0].len = sizeof(struct dicommand);
|
||||
|
||||
__di_iovector[1].data = eticket;
|
||||
if(eticket==NULL) __di_iovector[1].len = 0;
|
||||
else __di_iovector[1].len = 676;
|
||||
|
||||
__di_iovector[2].data = certificate_in;
|
||||
if(certificate_in==NULL) __di_iovector[2].len = 0;
|
||||
else __di_iovector[2].len = certin_len;
|
||||
|
||||
__di_iovector[3].data = certificate_out;
|
||||
__di_iovector[3].len = 18916;
|
||||
__di_iovector[4].data = __di_lastticketerror;
|
||||
__di_iovector[4].len = 0x20;
|
||||
ret = IOS_IoctlvAsync(__dvd_fd,IOCTL_DI_OPENPART,3,2,__di_iovector,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowClosePartition(dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_CLOSEPART<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_CLOSEPART,cmd->diReg,sizeof(struct dicommand),NULL,0,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowUnencryptedRead(void *buf,u32 len,u32 offset,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
__dvd_readlength = len;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_UNENCREAD<<24);
|
||||
cmd->diReg[1] = len;
|
||||
cmd->diReg[2] = offset;
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_UNENCREAD,cmd->diReg,sizeof(struct dicommand),buf,len,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowWaitCoverClose(dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_WAITCVRCLOSE<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_WAITCVRCLOSE,cmd->diReg,sizeof(struct dicommand),NULL,0,__dvd_ioscovercloseCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowResetNotify()
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
if(__dvd_cbinprogress==1) return -1;
|
||||
|
||||
ctx = __dvd_getcontext(NULL);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_RESETNOTIFY<<24);
|
||||
ret = IOS_Ioctl(__dvd_fd,IOCTL_DI_RESETNOTIFY,cmd->diReg,sizeof(struct dicommand),NULL,0);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowReset(dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
// printf("DVD_LowReset()\n");
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_RESET<<24);
|
||||
cmd->diReg[1] = __dvd_spinupval;
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_RESET,cmd->diReg,sizeof(struct dicommand),NULL,0,__dvd_iostransactionCB,ctx);
|
||||
|
||||
// printf("DVD_LowReset(%d)\n",ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
s32 bwDVD_LowStopMotor(u8 stop1,u8 stop2,dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_STOPMOTOR<<24);
|
||||
cmd->diReg[1] = (stop1<<24);
|
||||
cmd->diReg[2] = (stop2<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_STOPMOTOR,cmd->diReg,sizeof(struct dicommand),__di_regvalcache,0x20,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
s32 bwDVD_LowRequestError(dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_REQERROR<<24);
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_REQERROR,cmd->diReg,sizeof(struct dicommand),__di_regvalcache,0x20,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
s32 bwDVD_SetDecryption(s32 mode, dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_SETCRYPTMODE<<24);
|
||||
cmd->diReg[1] = mode;
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_SETCRYPTMODE,cmd->diReg,sizeof(struct dicommand),__di_regvalcache,0x20,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
s32 bwDVD_SetOffset(u32 offset, dvdcallbacklow cb)
|
||||
{
|
||||
s32 ret;
|
||||
struct dicontext *ctx;
|
||||
struct dicommand *cmd;
|
||||
|
||||
__dvd_reqinprogress = 1;
|
||||
|
||||
ctx = __dvd_getcontext(cb);
|
||||
if(ctx==NULL) return IPC_ENOMEM;
|
||||
|
||||
cmd = ctx->cmd;
|
||||
cmd->diReg[0] = (IOCTL_DI_SETOFFBASE<<24);
|
||||
cmd->diReg[1] = offset;
|
||||
ret = IOS_IoctlAsync(__dvd_fd,IOCTL_DI_SETOFFBASE,cmd->diReg,sizeof(struct dicommand),__di_regvalcache,0x20,__dvd_iostransactionCB,ctx);
|
||||
|
||||
return ret;
|
||||
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2008 Nuke (wiinuke@gmail.com)
|
||||
*
|
||||
* this file is part of GeckoOS for USB Gecko
|
||||
* http://www.usbgecko.com
|
||||
*
|
||||
* 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 2 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, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __DVD_BROADWAY_H__
|
||||
#define __DVD_BROADWAY_H__
|
||||
|
||||
#include <gctypes.h>
|
||||
#include <ogc/ipc.h>
|
||||
#include <ogc/dvd.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif /* __cplusplus */
|
||||
|
||||
typedef void (*dvdcallbacklow)(s32 result);
|
||||
|
||||
s32 bwDVD_LowInit();
|
||||
s32 bwDVD_LowInquiry(dvddrvinfo *info,dvdcallbacklow cb);
|
||||
s32 bwDVD_LowReadID(dvddiskid *diskID,dvdcallbacklow cb);
|
||||
s32 bwDVD_LowClosePartition(dvdcallbacklow cb);
|
||||
s32 bwDVD_LowOpenPartition(u32 offset,void *eticket,u32 certin_len,void *certificate_in,void *certificate_out,dvdcallbacklow cb);
|
||||
s32 bwDVD_LowUnencryptedRead(void *buf,u32 len,u32 offset,dvdcallbacklow cb);
|
||||
s32 bwDVD_LowReset(dvdcallbacklow cb);
|
||||
s32 bwDVD_LowWaitCoverClose(dvdcallbacklow cb);
|
||||
s32 bwDVD_LowRead(void *buf,u32 len,u32 offset,dvdcallbacklow cb);
|
||||
s32 bwDVD_EnableVideo(dvdcallbacklow cb);
|
||||
s32 bwDVD_LowReadVideo(void *buf,u32 len,u32 offset,dvdcallbacklow cb);
|
||||
s32 bwDVD_SetDecryption(s32 mode, dvdcallbacklow cb);
|
||||
s32 bwDVD_SetOffset(u32 offset, dvdcallbacklow cb);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
|
@ -1,57 +0,0 @@
|
|||
#include <fat.h>
|
||||
#include <sys/dir.h>
|
||||
#include <ogc/lwp_watchdog.h>
|
||||
#include <ogc/mutex.h>
|
||||
#include <ogc/system.h>
|
||||
#include <ogc/usbstorage.h>
|
||||
#include <sdcard/wiisd_io.h>
|
||||
|
||||
#define CACHE 1
|
||||
#define SECTORS 64
|
||||
|
||||
|
||||
int USBDevice_Init()
|
||||
{
|
||||
//right now only mounts first partition and only under IOS36
|
||||
__io_usbstorage.startup();
|
||||
|
||||
if (fatMount("USB", &__io_usbstorage, 0, CACHE, SECTORS)) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
void USBDevice_deInit()
|
||||
{
|
||||
//First unmount all the devs...
|
||||
fatUnmount("USB");
|
||||
//...and then shutdown em!
|
||||
__io_usbstorage.shutdown();
|
||||
}
|
||||
|
||||
int isSdInserted()
|
||||
{
|
||||
return __io_wiisd.isInserted();
|
||||
}
|
||||
|
||||
int SDCard_Init()
|
||||
{
|
||||
//mount SD if inserted
|
||||
__io_wiisd.startup();
|
||||
if (!isSdInserted()){
|
||||
return -1;
|
||||
}
|
||||
if (fatMount("SD", &__io_wiisd, 0, CACHE, SECTORS)) {
|
||||
return 1;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
void SDCard_deInit()
|
||||
{
|
||||
//First unmount all the devs...
|
||||
fatUnmount("SD:/");
|
||||
//...and then shutdown em!
|
||||
__io_wiisd.shutdown();
|
||||
}
|
|
@ -1,296 +1,20 @@
|
|||
/****************************************************************************
|
||||
* libwiigui Template
|
||||
* Tantric 2009
|
||||
*
|
||||
* imagelist.h
|
||||
* Contains a list of all of the files in the images, fonts, sounds folders
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef _FILELIST_H_
|
||||
#define _FILELIST_H_
|
||||
|
||||
#include <gccore.h>
|
||||
|
||||
extern const u8 font_ttf[];
|
||||
extern const u32 font_ttf_size;
|
||||
|
||||
extern const u8 clock_ttf[];
|
||||
extern const u32 clock_ttf_size;
|
||||
|
||||
extern const u8 closebutton_png[];
|
||||
extern const u32 closebutton_png_size;
|
||||
|
||||
extern const u8 sdcard_png[];
|
||||
extern const u32 sdcard_png_size;
|
||||
|
||||
extern const u8 wiimote_png[];
|
||||
extern const u32 wiimote_png_size;
|
||||
|
||||
extern const u8 bg_music_ogg[];
|
||||
extern const u32 bg_music_ogg_size;
|
||||
|
||||
extern const u8 credits_music_ogg[];
|
||||
extern const u32 credits_music_ogg_size;
|
||||
|
||||
extern const u8 menuin_ogg[];
|
||||
extern const u32 menuin_ogg_size;
|
||||
|
||||
extern const u8 menuout_ogg[];
|
||||
extern const u32 menuout_ogg_size;
|
||||
|
||||
extern const u8 tab_bg1_png[];
|
||||
extern const u32 tab_bg1_png_size;
|
||||
|
||||
extern const u8 tab_bg2_png[];
|
||||
extern const u32 tab_bg2_png_size;
|
||||
|
||||
extern const u8 tab_bg3_png[];
|
||||
extern const u32 tab_bg3_png_size;
|
||||
|
||||
extern const u8 credits_button_png[];
|
||||
extern const u32 credits_button_png_size;
|
||||
|
||||
extern const u8 credits_button_over_png[];
|
||||
extern const u32 credits_button_over_png_size;
|
||||
|
||||
extern const u8 button_over_pcm[];
|
||||
extern const u32 button_over_pcm_size;
|
||||
|
||||
extern const u8 button_click_pcm[];
|
||||
extern const u32 button_click_pcm_size;
|
||||
|
||||
extern const u8 button_click2_pcm[];
|
||||
extern const u32 button_click2_pcm_size;
|
||||
|
||||
extern const u8 tooltip_left_png[];
|
||||
extern const u32 tooltip_left_png_size;
|
||||
|
||||
extern const u8 tooltip_tile_png[];
|
||||
extern const u32 tooltip_tile_png_size;
|
||||
|
||||
extern const u8 tooltip_right_png[];
|
||||
extern const u32 tooltip_right_png_size;
|
||||
|
||||
extern const u8 startgame_arrow_left_png[];
|
||||
extern const u32 startgame_arrow_left_png_size;
|
||||
|
||||
extern const u8 startgame_arrow_right_png[];
|
||||
extern const u32 startgame_arrow_right_png_size;
|
||||
|
||||
extern const u8 credits_bg_png[];
|
||||
extern const u32 credits_bg_png_size;
|
||||
|
||||
extern const u8 little_star_png[];
|
||||
extern const u32 little_star_png_size;
|
||||
|
||||
extern const u8 background_png[];
|
||||
extern const u32 background_png_size;
|
||||
|
||||
extern const u8 wbackground_png[];
|
||||
extern const u32 wbackground_png_size;
|
||||
|
||||
extern const u8 bg_options_settings_png[];
|
||||
extern const u32 bg_options_settings_png_size;
|
||||
|
||||
extern const u8 settings_background_png[];
|
||||
extern const u32 settings_background_png_size;
|
||||
|
||||
extern const u8 nocover_png[];
|
||||
extern const u32 nocover_png_size;
|
||||
|
||||
extern const u8 nodisc_png[];
|
||||
extern const u32 nodisc_png_size;
|
||||
|
||||
extern const u8 button_install_png[];
|
||||
extern const u32 button_install_png_size;
|
||||
|
||||
extern const u8 button_install_over_png[];
|
||||
extern const u32 button_install_over_png_size;
|
||||
|
||||
extern const u8 dialogue_box_startgame_png[];
|
||||
extern const u32 dialogue_box_startgame_png_size;
|
||||
|
||||
extern const u8 wdialogue_box_startgame_png[];
|
||||
extern const u32 wdialogue_box_startgame_png_size;
|
||||
|
||||
extern const u8 button_dialogue_box_startgame_png[];
|
||||
extern const u32 button_dialogue_box_startgame_size;
|
||||
|
||||
extern const u8 button_dialogue_box_png[];
|
||||
extern const u32 button_dialogue_box_size;
|
||||
|
||||
extern const u8 keyboard_textbox_png[];
|
||||
extern const u32 keyboard_textbox_png_size;
|
||||
|
||||
extern const u8 keyboard_key_png[];
|
||||
extern const u32 keyboard_key_png_size;
|
||||
|
||||
extern const u8 keyboard_key_over_png[];
|
||||
extern const u32 keyboard_key_over_png_size;
|
||||
|
||||
extern const u8 keyboard_mediumkey_over_png[];
|
||||
extern const u32 keyboard_mediumkey_over_png_size;
|
||||
|
||||
extern const u8 keyboard_largekey_over_png[];
|
||||
extern const u32 keyboard_largekey_over_png_size;
|
||||
|
||||
extern const u8 menu_button_png[];
|
||||
extern const u32 menu_button_size;
|
||||
|
||||
extern const u8 menu_button_over_png[];
|
||||
extern const u32 menu_button_over_size;
|
||||
|
||||
extern const u8 settings_button_png[];
|
||||
extern const u32 settings_button_size;
|
||||
|
||||
extern const u8 settings_button_over_png[];
|
||||
extern const u32 settings_button_over_size;
|
||||
|
||||
extern const u8 settings_menu_button_png[];
|
||||
extern const u32 settings_menu_button_size;
|
||||
|
||||
extern const u8 wiimote_poweroff_png[];
|
||||
extern const u32 wiimote_poweroff_png_size;
|
||||
|
||||
extern const u8 dialogue_box_png[];
|
||||
extern const u32 dialogue_box_png_size;
|
||||
|
||||
extern const u8 wiimote_poweroff_over_png[];
|
||||
extern const u32 wiimote_poweroff_over_png_size;
|
||||
|
||||
extern const u8 bg_options_png[];
|
||||
extern const u32 bg_options_png_size;
|
||||
|
||||
extern const u8 bg_options_entry_png[];
|
||||
extern const u32 bg_options_entry_png_size;
|
||||
|
||||
extern const u8 scrollbar_png[];
|
||||
extern const u32 scrollbar_png_size;
|
||||
|
||||
extern const u8 scrollbar_arrowup_png[];
|
||||
extern const u32 scrollbar_arrowup_png_size;
|
||||
|
||||
extern const u8 scrollbar_arrowup_over_png[];
|
||||
extern const u32 scrollbar_arrowup_over_png_size;
|
||||
|
||||
extern const u8 scrollbar_arrowdown_png[];
|
||||
extern const u32 scrollbar_arrowdown_png_size;
|
||||
|
||||
extern const u8 scrollbar_arrowdown_over_png[];
|
||||
extern const u32 scrollbar_arrowdown_over_png_size;
|
||||
|
||||
extern const u8 scrollbar_box_png[];
|
||||
extern const u32 scrollbar_box_png_size;
|
||||
|
||||
extern const u8 scrollbar_box_over_png[];
|
||||
extern const u32 scrollbar_box_over_png_size;
|
||||
|
||||
extern const u8 progressbar_png[];
|
||||
extern const u32 progressbar_png_size;
|
||||
|
||||
extern const u8 progressbar_empty_png[];
|
||||
extern const u32 progressbar_empty_png_size;
|
||||
|
||||
extern const u8 progressbar_outline_png[];
|
||||
extern const u32 progressbar_outline_png_size;
|
||||
|
||||
extern const u8 player1_point_png[];
|
||||
extern const u32 player1_point_png_size;
|
||||
|
||||
extern const u8 player2_point_png[];
|
||||
extern const u32 player2_point_png_size;
|
||||
|
||||
extern const u8 player3_point_png[];
|
||||
extern const u32 player3_point_png_size;
|
||||
|
||||
extern const u8 player4_point_png[];
|
||||
extern const u32 player4_point_png_size;
|
||||
|
||||
extern const u8 battery_png[];
|
||||
extern const u32 battery_png_size;
|
||||
|
||||
extern const u8 battery_bar_png[];
|
||||
extern const u32 battery_bar_png_size;
|
||||
|
||||
extern const u8 battery_white_png[];
|
||||
extern const u32 battery_white_png_size;
|
||||
|
||||
extern const u8 battery_bar_white_png[];
|
||||
extern const u32 battery_bar_white_png_size;
|
||||
|
||||
extern const u8 battery_red_png[];
|
||||
extern const u32 battery_red_png_size;
|
||||
|
||||
extern const u8 arrow_next_png[];
|
||||
extern const u32 arrow_next_png_size;
|
||||
|
||||
extern const u8 arrow_previous_png[];
|
||||
extern const u32 arrow_previous_png_size;
|
||||
|
||||
extern const u8 mp3_pause_png[];
|
||||
extern const u32 mp3_pause_png_size;
|
||||
|
||||
extern const u8 exit_top_png[];
|
||||
extern const u32 exit_top_png_size;
|
||||
|
||||
extern const u8 exit_top_over_png[];
|
||||
extern const u32 exit_top_over_png_size;
|
||||
|
||||
extern const u8 exit_bottom_png[];
|
||||
extern const u32 exit_bottom_png_size;
|
||||
|
||||
extern const u8 exit_bottom_over_png[];
|
||||
extern const u32 exit_bottom_over_png_size;
|
||||
|
||||
extern const u8 exit_button_png[];
|
||||
extern const u32 exit_button_png_size;
|
||||
|
||||
extern const u8 mp3_stop_png[];
|
||||
extern const u32 mp3_stop_png_size;
|
||||
/****************************************************************************
|
||||
* filelist.h
|
||||
* Contains a list of all of the files in the images, fonts, sounds folders
|
||||
***************************************************************************/
|
||||
|
||||
extern const u8 favorite_png[];
|
||||
extern const u32 favorite_png_size;
|
||||
#ifndef _FILELIST_H_
|
||||
#define _FILELIST_H_
|
||||
|
||||
extern const u8 not_favorite_png[];
|
||||
extern const u32 not_favorite_png_size;
|
||||
|
||||
extern const u8 favIcon_png[];
|
||||
extern const u32 favIcon_png_size;
|
||||
|
||||
extern const u8 abcIcon_png[];
|
||||
extern const u32 abcIcon_png_size;
|
||||
|
||||
extern const u8 playCountIcon_png[];
|
||||
extern const u32 playCountIcon_png_size;
|
||||
#include <gccore.h>
|
||||
|
||||
extern const u8 arrangeList_png[];
|
||||
extern const u32 arrangeList_png_size;
|
||||
|
||||
extern const u8 arrangeGrid_png[];
|
||||
extern const u32 arrangeGrid_png_size;
|
||||
|
||||
extern const u8 arrangeCarousel_png[];
|
||||
extern const u32 arrangeCarousel_png_size;
|
||||
|
||||
extern const u8 favIcon_gray_png[];
|
||||
extern const u32 favIcon_gray_png_size;
|
||||
|
||||
extern const u8 abcIcon_gray_png[];
|
||||
extern const u32 abcIcon_gray_png_size;
|
||||
|
||||
extern const u8 playCountIcon_gray_png[];
|
||||
extern const u32 playCountIcon_gray_png_size;
|
||||
|
||||
extern const u8 arrangeGrid_gray_png[];
|
||||
extern const u32 arrangeGrid_gray_png_size;
|
||||
|
||||
extern const u8 arrangeList_gray_png[];
|
||||
extern const u32 arrangeList_gray_png_size;
|
||||
|
||||
extern const u8 arrangeCarousel_gray_png[];
|
||||
extern const u32 arrangeCarousel_gray_png_size;
|
||||
|
||||
extern const u8 updateRev_png[];
|
||||
extern const u32 updateRev_png_size;
|
||||
|
||||
#endif
|
||||
extern const u8 app_booter_bin[];
|
||||
extern const u32 app_booter_bin_size;
|
||||
|
||||
extern const u8 background_png[];
|
||||
extern const u32 background_png_size;
|
||||
|
||||
extern const u8 background169_png[];
|
||||
extern const u32 background169_png_size;
|
||||
|
||||
#endif
|
||||
|
|
115
source/fst.c
|
@ -1,115 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2008 Nuke (wiinuke@gmail.com)
|
||||
*
|
||||
* this file is part of GeckoOS for USB Gecko
|
||||
* http://www.usbgecko.com
|
||||
*
|
||||
* 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 2 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, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <gccore.h>
|
||||
#include <malloc.h>
|
||||
#include <sys/unistd.h>
|
||||
#include <fat.h>
|
||||
#include <sdcard/wiisd_io.h>
|
||||
#include "ogc/ipc.h"
|
||||
#include "fst.h"
|
||||
#include "dvd_broadway.h"
|
||||
#include "wpad.h"
|
||||
|
||||
|
||||
#define FSTDIRTYPE 1
|
||||
#define FSTFILETYPE 0
|
||||
#define ENTRYSIZE 0xC
|
||||
#define FILEDIR "SD:/codes"
|
||||
|
||||
#define MAX_FILENAME_LEN 128
|
||||
|
||||
|
||||
static vu32 dvddone = 0;
|
||||
|
||||
|
||||
// Real basic
|
||||
u32 do_sd_code(char *filename)
|
||||
{
|
||||
FILE *fp;
|
||||
u8 *filebuff;
|
||||
u32 filesize;
|
||||
u32 ret;
|
||||
char filepath[128];
|
||||
|
||||
__io_wiisd.startup();
|
||||
ret = fatMountSimple("SD", &__io_wiisd);
|
||||
|
||||
if (!ret) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
fflush(stdout);
|
||||
|
||||
sprintf(filepath, FILEDIR "/%s", filename);
|
||||
filepath[16] = 0x2E;
|
||||
filepath[17] = 0x67;
|
||||
filepath[18] = 0x63;
|
||||
filepath[19] = 0x74;
|
||||
filepath[20] = 0;
|
||||
//printf("filename %s\n",filepath);
|
||||
|
||||
fp = fopen(filepath, "rb");
|
||||
if (!fp) {
|
||||
fatUnmount("SD");
|
||||
__io_wiisd.shutdown();
|
||||
return 0;
|
||||
}
|
||||
|
||||
fseek(fp, 0, SEEK_END);
|
||||
filesize = ftell(fp);
|
||||
fseek(fp, 0, SEEK_SET);
|
||||
|
||||
filebuff = (u8*) malloc (filesize);
|
||||
if(filebuff == 0){
|
||||
fclose(fp);
|
||||
sleep(2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
ret = fread(filebuff, 1, filesize, fp);
|
||||
if(ret != filesize){
|
||||
free(filebuff);
|
||||
fclose(fp);
|
||||
fatUnmount("SD");
|
||||
__io_wiisd.shutdown();
|
||||
return 0;
|
||||
}
|
||||
|
||||
memcpy((void*)0x800027E8,filebuff,filesize);
|
||||
*(vu8*)0x80001807 = 0x01;
|
||||
|
||||
|
||||
|
||||
free(filebuff);
|
||||
fclose(fp);
|
||||
|
||||
fatUnmount("SD");
|
||||
__io_wiisd.shutdown();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
38
source/fst.h
|
@ -1,38 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2008 Nuke (wiinuke@gmail.com)
|
||||
*
|
||||
* this file is part of GeckoOS for USB Gecko
|
||||
* http://www.usbgecko.com
|
||||
*
|
||||
* 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 2 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, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __FST_H__
|
||||
#define __FST_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
//u32 do_fst(u32 fstlocation);
|
||||
u32 do_sd_code(char *filename);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
unsigned char fwrite_patch_bin[] = {
|
||||
0x7c, 0x84, 0x29, 0xd6, 0x39, 0x40, 0x00, 0x00, 0x94, 0x21, 0xff, 0xf0,
|
||||
0x93, 0xe1, 0x00, 0x0c, 0x7f, 0x8a, 0x20, 0x00, 0x40, 0x9c, 0x00, 0x64,
|
||||
0x3d, 0x00, 0xcd, 0x00, 0x3d, 0x60, 0xcd, 0x00, 0x3d, 0x20, 0xcd, 0x00,
|
||||
0x61, 0x08, 0x68, 0x14, 0x61, 0x6b, 0x68, 0x24, 0x61, 0x29, 0x68, 0x20,
|
||||
0x39, 0x80, 0x00, 0xd0, 0x38, 0xc0, 0x00, 0x19, 0x38, 0xe0, 0x00, 0x00,
|
||||
0x91, 0x88, 0x00, 0x00, 0x7c, 0x03, 0x50, 0xae, 0x54, 0x00, 0xa0, 0x16,
|
||||
0x64, 0x00, 0xb0, 0x00, 0x90, 0x0b, 0x00, 0x00, 0x90, 0xc9, 0x00, 0x00,
|
||||
0x80, 0x09, 0x00, 0x00, 0x70, 0x1f, 0x00, 0x01, 0x40, 0x82, 0xff, 0xf8,
|
||||
0x80, 0x0b, 0x00, 0x00, 0x90, 0xe8, 0x00, 0x00, 0x54, 0x00, 0x37, 0xfe,
|
||||
0x7d, 0x4a, 0x02, 0x14, 0x7f, 0x8a, 0x20, 0x00, 0x41, 0x9c, 0xff, 0xc8,
|
||||
0x7c, 0xa3, 0x2b, 0x78, 0x83, 0xe1, 0x00, 0x0c, 0x38, 0x21, 0x00, 0x10,
|
||||
0x4e, 0x80, 0x00, 0x20
|
||||
};
|
||||
unsigned int fwrite_patch_bin_len = 136;
|
|
@ -1,60 +0,0 @@
|
|||
/*
|
||||
* Copyright (C) 2008 Nuke (wiinuke@gmail.com)
|
||||
*
|
||||
* this file is part of GeckoOS for USB Gecko
|
||||
* http://www.usbgecko.com
|
||||
*
|
||||
* 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 2 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, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __GECKOMENU_H__
|
||||
#define __GECKOMENU_H__
|
||||
|
||||
|
||||
#define ROOTMENU 0
|
||||
#define ABOUTMENU 1
|
||||
#define CONFIGMENU 2
|
||||
#define REBOOTMENU 3
|
||||
#define root_itemcount 7
|
||||
#define about_itemcount 4
|
||||
#define config_itemcount 9
|
||||
#define rebooter_itemcount 6
|
||||
|
||||
u32 currentmenu; // 0 ROOT
|
||||
u32 rootmenu_item;
|
||||
u32 menufreeze;
|
||||
u32 langselect;
|
||||
u32 langsaved;
|
||||
u32 pal60select;
|
||||
u32 pal50select;
|
||||
u32 viselect;
|
||||
u32 ntscselect;
|
||||
u32 hookselect;
|
||||
u32 ocarinaselect;
|
||||
u32 recoveryselect;
|
||||
u32 regionfreeselect;
|
||||
u32 nocopyselect;
|
||||
u32 buttonskipselect;
|
||||
|
||||
u32 doprogress(u32 progstate, u32 noelements);
|
||||
void drawmenu(u32 menuid);
|
||||
void drawselected(u32 menuidpos);
|
||||
void processwpad();
|
||||
void clearscreen(u32 *framebuffer, u16 xscreen, u16 yscreen, u16 width, u16 height, u32 color);
|
||||
void drawicon(u32 *framebuffer, u16 xscreen, u16 yscreen, u16 width, u16 height, u32 gicon);
|
||||
u32 CvtRGB (u8 r1, u8 g1, u8 b1, u8 r2, u8 g2, u8 b2);
|
||||
|
||||
|
||||
#endif // __GECKOLOAD_H__
|
245
source/http.c
|
@ -1,245 +0,0 @@
|
|||
#include "http.h"
|
||||
|
||||
/**
|
||||
* Emptyblock is a statically defined variable for functions to return if they are unable
|
||||
* to complete a request
|
||||
*/
|
||||
const struct block emptyblock = {0, NULL};
|
||||
|
||||
//The maximum amount of bytes to send per net_write() call
|
||||
#define NET_BUFFER_SIZE 1024
|
||||
|
||||
// Write our message to the server
|
||||
static s32 send_message(s32 server, char *msg) {
|
||||
s32 bytes_transferred = 0;
|
||||
s32 remaining = strlen(msg);
|
||||
while (remaining) {
|
||||
if ((bytes_transferred = net_write(server, msg, remaining > NET_BUFFER_SIZE ? NET_BUFFER_SIZE : remaining)) > 0) {
|
||||
remaining -= bytes_transferred;
|
||||
usleep (20 * 1000);
|
||||
} else if (bytes_transferred < 0) {
|
||||
return bytes_transferred;
|
||||
} else {
|
||||
return -ENODATA;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Connect to a remote server via TCP on a specified port
|
||||
*
|
||||
* @param u32 ip address of the server to connect to
|
||||
* @param u32 the port to connect to on the server
|
||||
* @return s32 The connection to the server (negative number if connection could not be established)
|
||||
*/
|
||||
static s32 server_connect(u32 ipaddress, u32 socket_port) {
|
||||
//Initialize socket
|
||||
s32 connection = net_socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
|
||||
if (connection < 0) return connection;
|
||||
|
||||
struct sockaddr_in connect_addr;
|
||||
memset(&connect_addr, 0, sizeof(connect_addr));
|
||||
connect_addr.sin_family = AF_INET;
|
||||
connect_addr.sin_port = socket_port;
|
||||
connect_addr.sin_addr.s_addr= ipaddress;
|
||||
|
||||
//Attemt to open the socket
|
||||
if (net_connect(connection, (struct sockaddr*)&connect_addr, sizeof(connect_addr)) == -1) {
|
||||
net_close(connection);
|
||||
return -1;
|
||||
}
|
||||
return connection;
|
||||
}
|
||||
|
||||
//The amount of memory in bytes reserved initially to store the HTTP response in
|
||||
//Be careful in increasing this number, reading from a socket on the Wii
|
||||
//will fail if you request more than 20k or so
|
||||
#define HTTP_BUFFER_SIZE 1024 * 5
|
||||
|
||||
//The amount of memory the buffer should expanded with if the buffer is full
|
||||
#define HTTP_BUFFER_GROWTH 1024 * 5
|
||||
|
||||
/**
|
||||
* This function reads all the data from a connection into a buffer which it returns.
|
||||
* It will return an empty buffer if something doesn't go as planned
|
||||
*
|
||||
* @param s32 connection The connection identifier to suck the response out of
|
||||
* @return block A 'block' struct (see http.h) in which the buffer is located
|
||||
*/
|
||||
struct block read_message(s32 connection)
|
||||
{
|
||||
//Create a block of memory to put in the response
|
||||
struct block buffer;
|
||||
buffer.data = malloc(HTTP_BUFFER_SIZE);
|
||||
buffer.size = HTTP_BUFFER_SIZE;
|
||||
|
||||
if(buffer.data == NULL) {
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
//The offset variable always points to the first byte of memory that is free in the buffer
|
||||
u32 offset = 0;
|
||||
|
||||
while(1)
|
||||
{
|
||||
//Fill the buffer with a new batch of bytes from the connection,
|
||||
//starting from where we left of in the buffer till the end of the buffer
|
||||
s32 bytes_read = net_read(connection, buffer.data + offset, buffer.size - offset);
|
||||
|
||||
//Anything below 0 is an error in the connection
|
||||
if(bytes_read < 0)
|
||||
{
|
||||
//printf("Connection error from net_read() Errorcode: %i\n", bytes_read);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
//No more bytes were read into the buffer,
|
||||
//we assume this means the HTTP response is done
|
||||
if(bytes_read == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
offset += bytes_read;
|
||||
|
||||
//Check if we have enough buffer left over,
|
||||
//if not expand it with an additional HTTP_BUFFER_GROWTH worth of bytes
|
||||
if(offset >= buffer.size)
|
||||
{
|
||||
buffer.size += HTTP_BUFFER_GROWTH;
|
||||
buffer.data = realloc(buffer.data, buffer.size);
|
||||
|
||||
if(buffer.data == NULL)
|
||||
{
|
||||
return emptyblock;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//At the end of above loop offset should be precisely the amount of bytes that were read from the connection
|
||||
buffer.size = offset;
|
||||
|
||||
//Shrink the size of the buffer so the data fits exactly in it
|
||||
realloc(buffer.data, buffer.size);
|
||||
|
||||
return buffer;
|
||||
}
|
||||
|
||||
/**
|
||||
* Downloads the contents of a URL to memory
|
||||
* This method is not threadsafe (because networking is not threadsafe on the Wii)
|
||||
*/
|
||||
struct block downloadfile(const char *url)
|
||||
{
|
||||
//Check if the url starts with "http://", if not it is not considered a valid url
|
||||
if(strncmp(url, "http://", strlen("http://")) != 0)
|
||||
{
|
||||
//printf("URL '%s' doesn't start with 'http://'\n", url);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
//Locate the path part of the url by searching for '/' past "http://"
|
||||
char *path = strchr(url + strlen("http://"), '/');
|
||||
|
||||
//At the very least the url has to end with '/', ending with just a domain is invalid
|
||||
if(path == NULL)
|
||||
{
|
||||
//printf("URL '%s' has no PATH part\n", url);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
//Extract the domain part out of the url
|
||||
int domainlength = path - url - strlen("http://");
|
||||
|
||||
if(domainlength == 0)
|
||||
{
|
||||
//printf("No domain part in URL '%s'\n", url);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
char domain[domainlength + 1];
|
||||
strncpy(domain, url + strlen("http://"), domainlength);
|
||||
domain[domainlength] = '\0';
|
||||
|
||||
//Parsing of the URL is done, start making an actual connection
|
||||
u32 ipaddress = getipbynamecached(domain);
|
||||
|
||||
if(ipaddress == 0)
|
||||
{
|
||||
//printf("\ndomain %s could not be resolved", domain);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
|
||||
s32 connection = server_connect(ipaddress, 80);
|
||||
|
||||
if(connection < 0) {
|
||||
//printf("Error establishing connection");
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
//Form a nice request header to send to the webserver
|
||||
char* headerformat = "GET %s HTTP/1.0\r\nHost: %s\r\nUser-Agent: WiiEarthh 1.0\r\n\r\n";;
|
||||
char header[strlen(headerformat) + strlen(domain) + strlen(path)];
|
||||
sprintf(header, headerformat, path, domain);
|
||||
|
||||
//Do the request and get the response
|
||||
send_message(connection, header);
|
||||
struct block response = read_message(connection);
|
||||
net_close(connection);
|
||||
|
||||
//Search for the 4-character sequence \r\n\r\n in the response which signals the start of the http payload (file)
|
||||
unsigned char *filestart = NULL;
|
||||
u32 filesize = 0;
|
||||
int i;
|
||||
for(i = 3; i < response.size; i++)
|
||||
{
|
||||
if(response.data[i] == '\n' &&
|
||||
response.data[i-1] == '\r' &&
|
||||
response.data[i-2] == '\n' &&
|
||||
response.data[i-3] == '\r')
|
||||
{
|
||||
filestart = response.data + i + 1;
|
||||
filesize = response.size - i - 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(filestart == NULL)
|
||||
{
|
||||
//printf("HTTP Response was without a file\n");
|
||||
free(response.data);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
//Copy the file part of the response into a new memoryblock to return
|
||||
struct block file;
|
||||
file.data = malloc(filesize);
|
||||
file.size = filesize;
|
||||
|
||||
if(file.data == NULL)
|
||||
{
|
||||
//printf("No more memory to copy file from HTTP response\n");
|
||||
free(response.data);
|
||||
return emptyblock;
|
||||
}
|
||||
|
||||
memcpy(file.data, filestart, filesize);
|
||||
|
||||
//Dispose of the original response
|
||||
free(response.data);
|
||||
|
||||
return file;
|
||||
}
|
||||
|
||||
s32 GetConnection(char * domain) {
|
||||
|
||||
u32 ipaddress = getipbynamecached(domain);
|
||||
if(ipaddress == 0) {
|
||||
return -1;
|
||||
}
|
||||
s32 connection = server_connect(ipaddress, 80);
|
||||
return connection;
|
||||
|
||||
}
|
|
@ -1,39 +0,0 @@
|
|||
#ifndef _HTTP_H_
|
||||
#define _HTTP_H_
|
||||
|
||||
#include <errno.h>
|
||||
#include <network.h>
|
||||
#include <ogcsys.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#include "dns.h"
|
||||
|
||||
/**
|
||||
* A simple structure to keep track of the size of a malloc()ated block of memory
|
||||
*/
|
||||
struct block
|
||||
{
|
||||
u32 size;
|
||||
unsigned char *data;
|
||||
};
|
||||
|
||||
extern const struct block emptyblock;
|
||||
|
||||
struct block downloadfile(const char *url);
|
||||
s32 GetConnection(char * domain);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* _HTTP_H_ */
|
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 813 B |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1,016 B |
Before Width: | Height: | Size: 910 B |
Before Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 913 B |
Before Width: | Height: | Size: 709 B |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 114 KiB |
BIN
source/images/background169.png
Normal file
After Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 118 B |
Before Width: | Height: | Size: 225 B |
Before Width: | Height: | Size: 142 B |
Before Width: | Height: | Size: 138 B |
Before Width: | Height: | Size: 86 B |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 59 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 4.7 KiB |
Before Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 983 B |
Before Width: | Height: | Size: 4 KiB |
Before Width: | Height: | Size: 609 B |
Before Width: | Height: | Size: 909 B |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 992 B |
Before Width: | Height: | Size: 823 B |
Before Width: | Height: | Size: 11 KiB |