*added option to adjust screen for overscan TVs

*optimized use of memory (sizes over 30kb go to mem2 now first till it runs out)
*avoid use of mem2 area used on IOS_Reload (first 2 mb)
*fixed bug in aiff sound playback. breaked some banner sounds
*fixed boot of We Dare again (stupid channels added in the pattern again :P)
*unmount the usb partition used for nand emu and remount it after activating nand emu (fat32 cache flush)
This commit is contained in:
strtoul 2012-02-05 18:38:26 +00:00
parent b78388e779
commit c7411c9200
39 changed files with 311 additions and 76 deletions

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n" "Last-Translator: David Jelinek (djelinek@hotmail.com) e->e,r->r,u->u, c->c \n"
"Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n" "Language-Team: r1056 - last version on http://djelinek.sweb.cz/_USBLoderGX/czech.lang \n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Fox888[dk]\n" "Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n" "Language-Team: [dk]\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "Tilføje kategori " msgstr "Tilføje kategori "
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2011-12-17 14:22+0100\n" "PO-Revision-Date: 2011-12-17 14:22+0100\n"
"Last-Translator: Arthur117\n" "Last-Translator: Arthur117\n"
"Language-Team: tj_cool, glowy, Arthur117\n" "Language-Team: tj_cool, glowy, Arthur117\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "Categorie toevoegen" msgstr "Categorie toevoegen"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Alles" msgstr "Alles"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: c64rmx\n" "Last-Translator: c64rmx\n"
"Language-Team: \n" "Language-Team: \n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Cyan\n" "Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n" "Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "Nouv. catégorie" msgstr "Nouv. catégorie"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Toutes" msgstr "Toutes"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2010-07-03 17:35-0800\n" "PO-Revision-Date: 2010-07-03 17:35-0800\n"
"Last-Translator: TheRealVisitor\n" "Last-Translator: TheRealVisitor\n"
"Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n" "Language-Team: Bertilax, Snoozer, wishmasterf, ZEN.13, TheRealVisitor\n"
@ -82,6 +82,12 @@ msgstr "AXNextFrame"
msgid "Add category" msgid "Add category"
msgstr "Kategorie hinzuf." msgstr "Kategorie hinzuf."
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-12-29 11:05+0100\n" "PO-Revision-Date: 2009-12-29 11:05+0100\n"
"Last-Translator: Springdale\n" "Last-Translator: Springdale\n"
"Language-Team: Tusk, Springdale\n" "Language-Team: Tusk, Springdale\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2011-09-11 12:19+0100\n" "PO-Revision-Date: 2011-09-11 12:19+0100\n"
"Last-Translator: xFede\n" "Last-Translator: xFede\n"
"Language-Team: Cambo\n" "Language-Team: Cambo\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "Aggiungi Categoria" msgstr "Aggiungi Categoria"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Tutte" msgstr "Tutte"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: hosigumayuugi\n" "Last-Translator: hosigumayuugi\n"
"Language-Team: hosigumayuugi\n" "Language-Team: hosigumayuugi\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "カテゴリを追加" msgstr "カテゴリを追加"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "全て" msgstr "全て"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nextos@korea.com\n" "Last-Translator: nextos@korea.com\n"
"Language-Team: \n" "Language-Team: \n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: raschi\n" "Last-Translator: raschi\n"
"Language-Team: raschi\n" "Language-Team: raschi\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "Legg til kategori" msgstr "Legg til kategori"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Alle" msgstr "Alle"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: ziom666 (zadania_prog@vp.pl)\n" "Last-Translator: ziom666 (zadania_prog@vp.pl)\n"
"Language-Team: \n" "Language-Team: \n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-23 18:52+0200\n" "PO-Revision-Date: 2009-10-23 18:52+0200\n"
"Last-Translator: aniemotion\n" "Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n" "Language-Team: boto12, aniemotion\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "Adicionar categoria" msgstr "Adicionar categoria"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Todas" msgstr "Todas"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2011-11-03 11:00+0000\n" "PO-Revision-Date: 2011-11-03 11:00+0000\n"
"Last-Translator: pplucky <pplucky@gmail.com>\n" "Last-Translator: pplucky <pplucky@gmail.com>\n"
"Language-Team: Sky8000, pplucky\n" "Language-Team: Sky8000, pplucky\n"
@ -82,6 +82,12 @@ msgstr "AXNextFrame"
msgid "Add category" msgid "Add category"
msgstr "Adicionar categ." msgstr "Adicionar categ."
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Todas" msgstr "Todas"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: nikolai_ca\n" "Last-Translator: nikolai_ca\n"
"Language-Team: Kir, alendit, nikolai_ca\n" "Language-Team: Kir, alendit, nikolai_ca\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: knife.hu kavid emul8ion\n" "Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n" "Language-Team: kavid\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2011-07-25 16:40+0200\n" "PO-Revision-Date: 2011-07-25 16:40+0200\n"
"Last-Translator: Galen/xFede\n" "Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n" "Language-Team: Penn, SirPalax, hvy109\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "Añadir categoría" msgstr "Añadir categoría"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "Todas" msgstr "Todas"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2010-01-19 17:39+0200\n" "PO-Revision-Date: 2010-01-19 17:39+0200\n"
"Last-Translator: Katsurou\n" "Last-Translator: Katsurou\n"
"Language-Team: Katsurou, pirateX\n" "Language-Team: Katsurou, pirateX\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2010-02-15 21:00+0800\n" "PO-Revision-Date: 2010-02-15 21:00+0800\n"
"Last-Translator: Jane.H\n" "Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n" "Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
@ -82,6 +82,12 @@ msgstr "AXNextFrame"
msgid "Add category" msgid "Add category"
msgstr "增加類別" msgstr "增加類別"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "全部" msgstr "全部"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: Nitro_subzero \n" "Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n" "Language-Team: Nitro_subzero\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: USB Loader GX\n" "Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-01-08 19:07+0100\n" "POT-Creation-Date: 2012-02-05 19:25+0100\n"
"PO-Revision-Date: 2009-10-01 01:00+0200\n" "PO-Revision-Date: 2009-10-01 01:00+0200\n"
"Last-Translator: omercigingelini\n" "Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n" "Language-Team: omercigingelini\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category" msgid "Add category"
msgstr "" msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All" msgid "All"
msgstr "" msgstr ""

File diff suppressed because one or more lines are too long

View File

@ -131,19 +131,32 @@ void AifDecoder::OpenFile()
return; return;
} }
SWaveChunk WaveChunk; u32 magic = 0;
do
while(1)
{ {
int ret = file_fd->read((u8 *) &WaveChunk, sizeof(SWaveChunk)); int ret = file_fd->read((u8 *) &magic, sizeof(magic));
if(ret <= 0) if(ret <= 0)
{ {
CloseFile(); CloseFile();
return; return;
} }
}
while(WaveChunk.magicDATA != 'COMM');
DataOffset = file_fd->tell()+WaveChunk.size; if(magic == 'COMM')
break;
else
file_fd->seek(-3, SEEK_CUR);
}
u32 chunk_size = 0;
int ret = file_fd->read((u8 *) &chunk_size, sizeof(chunk_size));
if(ret <= 0)
{
CloseFile();
return;
}
DataOffset = file_fd->tell()+chunk_size;
SAIFFCommChunk CommHdr; SAIFFCommChunk CommHdr;
file_fd->seek(file_fd->tell()-sizeof(SWaveChunk), SEEK_SET); file_fd->seek(file_fd->tell()-sizeof(SWaveChunk), SEEK_SET);

View File

@ -270,6 +270,7 @@ int StartUpProcess::Execute()
InitAudio(); InitAudio();
setlocale(LC_CTYPE, "C-UTF-8"); setlocale(LC_CTYPE, "C-UTF-8");
setlocale(LC_MESSAGES, "C-UTF-8"); setlocale(LC_MESSAGES, "C-UTF-8");
AdjustOverscan(Settings.AdjustOverscanX, Settings.AdjustOverscanY);
return 0; return 0;
} }

View File

@ -33,11 +33,16 @@ extern "C"
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
MEM2_init(48);
__exception_setreload(20); __exception_setreload(20);
// activate magic access rights
MagicPatches(1); MagicPatches(1);
// init video
InitVideo(); InitVideo();
// video frame buffers must be in mem1
MEM2_init(48);
// init gecko
InitGecko(); InitGecko();
// redirect stdout and stderr to gecko
USBGeckoOutput(); USBGeckoOutput();
NandTitles.Get(); NandTitles.Get();
setlocale(LC_ALL, "en.UTF-8"); setlocale(LC_ALL, "en.UTF-8");

View File

@ -6,19 +6,27 @@
#include <string.h> #include <string.h>
#include <ogc/system.h> #include <ogc/system.h>
#define MAX_MEM1_ARENA_LO ((void *) (0x81700000-size)) // Preserve 1MB for other stuff if MEM1 almost out #define MAX_MEM1_ARENA_LO ((void *) (0x81700000-size))
#define MEM2_PRIORITY_SIZE 2097152 //2MB #define MEM2_PRIORITY_SIZE 30720 // 30KB
// Forbid the use of MEM2 through malloc // Forbid the use of MEM2 through malloc
u32 MALLOC_MEM2 = 0; u32 MALLOC_MEM2 = 0;
static CMEM2Alloc g_mem2gp; static CMEM2Alloc g_mem2gp;
static bool g_bigGoesToMem2 = false; static bool g_bigGoesToMem2 = true;
extern "C" extern "C"
{ {
extern __typeof(malloc) __real_malloc;
extern __typeof(calloc) __real_calloc;
extern __typeof(realloc) __real_realloc;
extern __typeof(memalign) __real_memalign;
extern __typeof(free) __real_free;
extern __typeof(malloc_usable_size) __real_malloc_usable_size;
void MEM2_takeBigOnes(bool b) void MEM2_takeBigOnes(bool b)
{ {
g_bigGoesToMem2 = b; g_bigGoesToMem2 = b;
@ -59,19 +67,32 @@ unsigned int MEM2_freesize()
return g_mem2gp.FreeSize(); return g_mem2gp.FreeSize();
} }
extern __typeof(malloc) __real_malloc; void *MEM1_alloc(unsigned int s)
extern __typeof(calloc) __real_calloc; {
extern __typeof(realloc) __real_realloc; return __real_malloc(s);
extern __typeof(memalign) __real_memalign; }
extern __typeof(free) __real_free;
extern __typeof(malloc_usable_size) __real_malloc_usable_size; void *MEM1_memalign(unsigned int a, unsigned int s)
{
return __real_memalign(a, s);
}
void MEM1_free(void *p)
{
__real_free(p);
}
void *MEM1_realloc(void *p, unsigned int s)
{
return __real_realloc(p, s);
}
void *__wrap_malloc(size_t size) void *__wrap_malloc(size_t size)
{ {
void *p; void *p;
if ((SYS_GetArena1Lo() > MAX_MEM1_ARENA_LO) || (g_bigGoesToMem2 && size > MEM2_PRIORITY_SIZE)) if ((SYS_GetArena1Lo() > MAX_MEM1_ARENA_LO) || (g_bigGoesToMem2 && size > MEM2_PRIORITY_SIZE))
{ {
p = MEM2_alloc(size); p = g_mem2gp.allocate(size);
if (p != 0) { if (p != 0) {
return p; return p;
} }
@ -81,7 +102,7 @@ void *__wrap_malloc(size_t size)
if (p != 0) { if (p != 0) {
return p; return p;
} }
return MEM2_alloc(size); return g_mem2gp.allocate(size);
} }
void *__wrap_calloc(size_t n, size_t size) void *__wrap_calloc(size_t n, size_t size)
@ -89,7 +110,7 @@ void *__wrap_calloc(size_t n, size_t size)
void *p; void *p;
if ((SYS_GetArena1Lo() > MAX_MEM1_ARENA_LO) || (g_bigGoesToMem2 && size > MEM2_PRIORITY_SIZE)) if ((SYS_GetArena1Lo() > MAX_MEM1_ARENA_LO) || (g_bigGoesToMem2 && size > MEM2_PRIORITY_SIZE))
{ {
p = MEM2_alloc(n * size); p = g_mem2gp.allocate(n * size);
if (p != 0) if (p != 0)
{ {
memset(p, 0, n * size); memset(p, 0, n * size);
@ -101,7 +122,7 @@ void *__wrap_calloc(size_t n, size_t size)
if (p != 0) { if (p != 0) {
return p; return p;
} }
p = MEM2_alloc(n * size); p = g_mem2gp.allocate(n * size);
if (p != 0) { if (p != 0) {
memset(p, 0, n * size); memset(p, 0, n * size);
} }
@ -115,7 +136,7 @@ void *__wrap_memalign(size_t a, size_t size)
{ {
if (a <= 32 && 32 % a == 0) if (a <= 32 && 32 % a == 0)
{ {
p = MEM2_alloc(size); p = g_mem2gp.allocate(size);
if (p != 0) { if (p != 0) {
return p; return p;
} }
@ -127,7 +148,7 @@ void *__wrap_memalign(size_t a, size_t size)
return p; return p;
} }
return MEM2_alloc(size); return g_mem2gp.allocate(size);
} }
void __wrap_free(void *p) void __wrap_free(void *p)
@ -137,7 +158,7 @@ void __wrap_free(void *p)
if (((u32)p & 0x10000000) != 0) if (((u32)p & 0x10000000) != 0)
{ {
MEM2_free(p); g_mem2gp.release(p);
} }
else else
{ {
@ -151,7 +172,7 @@ void *__wrap_realloc(void *p, size_t size)
// ptr from mem2 // ptr from mem2
if (((u32)p & 0x10000000) != 0 || (p == 0 && g_bigGoesToMem2 && size > MEM2_PRIORITY_SIZE)) if (((u32)p & 0x10000000) != 0 || (p == 0 && g_bigGoesToMem2 && size > MEM2_PRIORITY_SIZE))
{ {
n = MEM2_realloc(p, size); n = g_mem2gp.reallocate(p, size);
if (n != 0) { if (n != 0) {
return n; return n;
} }
@ -162,7 +183,7 @@ void *__wrap_realloc(void *p, size_t size)
if (p != 0) if (p != 0)
{ {
memcpy(n, p, MEM2_usableSize(p) < size ? MEM2_usableSize(p) : size); memcpy(n, p, MEM2_usableSize(p) < size ? MEM2_usableSize(p) : size);
MEM2_free(p); g_mem2gp.release(p);
} }
return n; return n;
} }
@ -171,7 +192,7 @@ void *__wrap_realloc(void *p, size_t size)
if (n != 0) { if (n != 0) {
return n; return n;
} }
n = MEM2_alloc(size); n = g_mem2gp.allocate(size);
if (n == 0) { if (n == 0) {
return 0; return 0;
} }
@ -186,7 +207,7 @@ void *__wrap_realloc(void *p, size_t size)
size_t __wrap_malloc_usable_size(void *p) size_t __wrap_malloc_usable_size(void *p)
{ {
if (((u32)p & 0x10000000) != 0) if (((u32)p & 0x10000000) != 0)
return MEM2_usableSize(p); return CMEM2Alloc::usableSize(p);
return __real_malloc_usable_size(p); return __real_malloc_usable_size(p);
} }

View File

@ -8,6 +8,11 @@
extern "C" { extern "C" {
#endif #endif
void *MEM1_alloc(unsigned int s);
void *MEM1_memalign(unsigned int a, unsigned int s);
void *MEM1_realloc(void *p, unsigned int s);
void MEM1_free(void *p);
void MEM2_init(unsigned int mem2Size); void MEM2_init(unsigned int mem2Size);
void MEM2_cleanup(void); void MEM2_cleanup(void);
void MEM2_takeBigOnes(bool b); void MEM2_takeBigOnes(bool b);

View File

@ -1,10 +1,10 @@
#include "mem2alloc.hpp" #include "mem2alloc.hpp"
#include <ogc/system.h> #include <ogc/system.h>
#include <algorithm> #include <algorithm>
#include <string.h> #include <string.h>
#define IOS_RELOAD_AREA 0x90200000
class LockMutex class LockMutex
{ {
@ -16,7 +16,7 @@ public:
void CMEM2Alloc::init(unsigned int size) void CMEM2Alloc::init(unsigned int size)
{ {
m_baseAddress = (SBlock *) (((u32)SYS_GetArena2Lo() + 31) & ~31); m_baseAddress = (SBlock *) std::max(((u32)SYS_GetArena2Lo() + 31) & ~31, IOS_RELOAD_AREA);
m_endAddress = (SBlock *) ((char *)m_baseAddress + std::min(size * 0x100000, SYS_GetArena2Size() & ~31)); m_endAddress = (SBlock *) ((char *)m_baseAddress + std::min(size * 0x100000, SYS_GetArena2Size() & ~31));
if (m_endAddress > (SBlock *) 0x93300000) //rest is reserved for usb/usb2/network and other stuff... (0xE0000 bytes) if (m_endAddress > (SBlock *) 0x93300000) //rest is reserved for usb/usb2/network and other stuff... (0xE0000 bytes)
m_endAddress = (SBlock *) 0x93300000; m_endAddress = (SBlock *) 0x93300000;

View File

@ -142,6 +142,8 @@ void CSettings::SetDefault()
GameAspectRatio = ASPECT_SYSTEM_DEFAULT; GameAspectRatio = ASPECT_SYSTEM_DEFAULT;
PointerSpeed = 0.18f; PointerSpeed = 0.18f;
UseChanLauncher = OFF; UseChanLauncher = OFF;
AdjustOverscanX = 0;
AdjustOverscanY = 0;
} }
bool CSettings::Load() bool CSettings::Load()
@ -320,6 +322,8 @@ bool CSettings::Save()
fprintf(file, "GameAspectRatio = %d\n", GameAspectRatio); fprintf(file, "GameAspectRatio = %d\n", GameAspectRatio);
fprintf(file, "PointerSpeed = %g\n", PointerSpeed); fprintf(file, "PointerSpeed = %g\n", PointerSpeed);
fprintf(file, "UseChanLauncher = %d\n", UseChanLauncher); fprintf(file, "UseChanLauncher = %d\n", UseChanLauncher);
fprintf(file, "AdjustOverscanX = %d\n", AdjustOverscanX);
fprintf(file, "AdjustOverscanY = %d\n", AdjustOverscanY);
fclose(file); fclose(file);
return true; return true;
@ -649,6 +653,14 @@ bool CSettings::SetSetting(char *name, char *value)
{ {
if (sscanf(value, "%d", &i) == 1) UseChanLauncher = i; if (sscanf(value, "%d", &i) == 1) UseChanLauncher = i;
} }
else if(strcmp(name, "AdjustOverscanX") == 0)
{
AdjustOverscanX = atoi(value);
}
else if(strcmp(name, "AdjustOverscanY") == 0)
{
AdjustOverscanY = atoi(value);
}
else if (strcmp(name, "InstallPartitions") == 0) else if (strcmp(name, "InstallPartitions") == 0)
{ {
InstallPartitions = strtoul(value, 0, 16); InstallPartitions = strtoul(value, 0, 16);

View File

@ -141,6 +141,8 @@ class CSettings
short SearchMode; short SearchMode;
short GameAspectRatio; short GameAspectRatio;
short UseChanLauncher; short UseChanLauncher;
int AdjustOverscanX;
int AdjustOverscanY;
// This variable is not saved to the settings file // This variable is not saved to the settings file
bool FirstTimeRun; bool FirstTimeRun;

View File

@ -124,6 +124,8 @@ GuiSettingsMenu::GuiSettingsMenu()
Options->SetName(Idx++, "%s", tr( "Use System Font" )); Options->SetName(Idx++, "%s", tr( "Use System Font" ));
Options->SetName(Idx++, "%s", tr( "Search Mode" )); Options->SetName(Idx++, "%s", tr( "Search Mode" ));
Options->SetName(Idx++, "%s", tr( "Virtual Pointer Speed" )); Options->SetName(Idx++, "%s", tr( "Virtual Pointer Speed" ));
Options->SetName(Idx++, "%s", tr( "Adjust Overscan X" ));
Options->SetName(Idx++, "%s", tr( "Adjust Overscan Y" ));
SetOptionValues(); SetOptionValues();
} }
@ -197,6 +199,12 @@ void GuiSettingsMenu::SetOptionValues()
//! Settings: Virtual Pointer Speed //! Settings: Virtual Pointer Speed
Options->SetValue(Idx++, "%g", Settings.PointerSpeed); Options->SetValue(Idx++, "%g", Settings.PointerSpeed);
//! Settings: Adjust Overscan X
Options->SetValue(Idx++, "%i", Settings.AdjustOverscanX);
//! Settings: Adjust Overscan Y
Options->SetValue(Idx++, "%i", Settings.AdjustOverscanY);
} }
int GuiSettingsMenu::GetMenuInternal() int GuiSettingsMenu::GetMenuInternal()
@ -398,6 +406,32 @@ int GuiSettingsMenu::GetMenuInternal()
} }
} }
//! Settings: Adjust Overscan X
else if (ret == ++Idx)
{
char entrie[20];
snprintf(entrie, sizeof(entrie), "%i", Settings.AdjustOverscanX);
int ret = OnScreenKeyboard(entrie, sizeof(entrie), 0);
if(ret)
{
Settings.AdjustOverscanX = atoi(entrie);
AdjustOverscan(Settings.AdjustOverscanX, Settings.AdjustOverscanY);
}
}
//! Settings: Adjust Overscan Y
else if (ret == ++Idx)
{
char entrie[20];
snprintf(entrie, sizeof(entrie), "%i", Settings.AdjustOverscanY);
int ret = OnScreenKeyboard(entrie, sizeof(entrie), 0);
if(ret)
{
Settings.AdjustOverscanY = atoi(entrie);
AdjustOverscan(Settings.AdjustOverscanX, Settings.AdjustOverscanY);
}
}
SetOptionValues(); SetOptionValues();

View File

@ -116,6 +116,8 @@ void GameBooter::SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct di
{ {
if(NandEmuMode && strchr(NandEmuPath, '/')) if(NandEmuMode && strchr(NandEmuPath, '/'))
{ {
int partition = -1;
//! Create save game path and title.tmd for not existing saves //! Create save game path and title.tmd for not existing saves
CreateSavePath(&gameHeader); CreateSavePath(&gameHeader);
@ -123,14 +125,23 @@ void GameBooter::SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct di
Set_FullMode(NandEmuMode == 2); Set_FullMode(NandEmuMode == 2);
Set_Path(strchr(NandEmuPath, '/')); Set_Path(strchr(NandEmuPath, '/'));
//! Set which partition to use (USB only) //! Unmount devices to flush data before activating NAND Emu
if(strncmp(NandEmuPath, "usb", 3) == 0) if(strncmp(NandEmuPath, "usb", 3) == 0)
Set_Partition(atoi(NandEmuPath+3)-1); {
//! Unmount SD since NAND Emu mount fails otherwise //! Set which partition to use (USB only)
else if(strncmp(NandEmuPath, "sd", 2) == 0) partition = atoi(NandEmuPath+3)-1;
Set_Partition(partition);
DeviceHandler::Instance()->UnMount(USB1 + partition);
}
else
DeviceHandler::Instance()->UnMountSD(); DeviceHandler::Instance()->UnMountSD();
Enable_Emu(strncmp(NandEmuPath, "usb", 3) == 0 ? EMU_USB : EMU_SD); Enable_Emu(strncmp(NandEmuPath, "usb", 3) == 0 ? EMU_USB : EMU_SD);
//! Mount USB to start game, SD is not required
if(strncmp(NandEmuPath, "usb", 3) == 0)
DeviceHandler::Instance()->Mount(USB1 + partition);
} }
} }

View File

@ -292,6 +292,7 @@ s32 Disc_JumpToEntrypoint(s32 hooktype, u32 dolparameter)
"mtlr %r3\n" "mtlr %r3\n"
"lis %r3, 0x8000\n" "lis %r3, 0x8000\n"
"ori %r3, %r3, 0x18A8\n" "ori %r3, %r3, 0x18A8\n"
"nop\n"
"mtctr %r3\n" "mtctr %r3\n"
"bctr\n" "bctr\n"
"returnpoint:\n" "returnpoint:\n"

View File

@ -46,8 +46,6 @@ s32 __decompressLZ77_11(u8 *in, u32 inputLen, u8 **output, u32 *outputLen)
compressedPos += 0x4; compressedPos += 0x4;
} }
printf("Decompressed size : %i\n", decompressedSize);
out = memalign(32, ALIGN32(decompressedSize)); out = memalign(32, ALIGN32(decompressedSize));
if (out == NULL) if (out == NULL)
{ {
@ -131,10 +129,6 @@ s32 __decompressLZ77_10(u8 *in, u32 inputLen, u8 **output, u32 *outputLen)
decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8; decompressedSize = packBytes(in[0], in[1], in[2], in[3]) >> 8;
//int compressionType = (packBytes(in[0], in[1], in[2], in[3]) >> 4) & 0xF;
printf("Decompressed size : %i\n", decompressedSize);
out = memalign(32, ALIGN32(decompressedSize)); out = memalign(32, ALIGN32(decompressedSize));
if (out == NULL) if (out == NULL)
{ {

View File

@ -147,9 +147,13 @@ void InitVideo()
VIDEO_SetBlack(FALSE); VIDEO_SetBlack(FALSE);
// Finally, the video is up and ready for use :) // Finally, the video is up and ready for use :)
}
// A console is always useful while debugging /****************************************************************************
//console_init(xfb[0], 80, 100, 500, 350, vmode->fbWidth * 2); * AdjustOverscan
***************************************************************************/
void AdjustOverscan(int x, int y)
{
guOrtho(projection, y, screenheight-1 - y, x, screenwidth-1 - x, 0, 10000);
} }
void VIDEO_SetWidescreen(bool widescreen) void VIDEO_SetWidescreen(bool widescreen)

View File

@ -21,6 +21,7 @@ void Menu_DrawTPLImg(f32 xpos, f32 ypos, f32 zpos, f32 width, f32 height, GXTexO
void Menu_DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color, u8 filled); void Menu_DrawRectangle(f32 x, f32 y, f32 width, f32 height, GXColor color, u8 filled);
s32 TakeScreenshot(const char *path); s32 TakeScreenshot(const char *path);
void VIDEO_SetWidescreen(bool widescreen); void VIDEO_SetWidescreen(bool widescreen);
void AdjustOverscan(int x, int y);
extern int screenheight; extern int screenheight;
extern int screenwidth; extern int screenwidth;

View File

@ -478,20 +478,19 @@ typedef struct _ReplaceStruct
{ {
const char * replace; const char * replace;
char orig; char orig;
short size;
} ReplaceStruct; } ReplaceStruct;
//! More replacements can be added if needed //! More replacements can be added if needed
static const ReplaceStruct Replacements[] = static const ReplaceStruct Replacements[] =
{ {
{ "&gt;", '>', 4 }, { "&gt;", '>' },
{ "&lt;", '<', 4 }, { "&lt;", '<' },
{ "&st;", '*', 4 }, { "&st;", '*' },
{ "&cl;", ':', 4 }, { "&cl;", ':' },
{ "&qt;", '\"', 6 }, { "&qt;", '\"' },
{ "&qm;", '?', 6 }, { "&qm;", '?' },
{ "&vb;", '|', 5 }, { "&vb;", '|' },
{ NULL, '\0', 0 } { NULL, '\0' }
}; };
static void ConvertInvalidCharacters(std::string &filepath) static void ConvertInvalidCharacters(std::string &filepath)