*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">
<name> USB Loader GX</name>
<coder>USB Loader GX Team</coder>
<version>2.3 r1149</version>
<release_date>201201232120</release_date>
<version>2.3 r1150</version>
<release_date>201202051825</release_date>
<!-- // remove this line to enable arguments
<arguments>
<arg>--ios=250</arg>

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"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"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: Fox888[dk]\n"
"Language-Team: [dk]\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr "Tilføje kategori "
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr "Alle"

View File

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

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: c64rmx\n"
"Language-Team: \n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: Cyan\n"
"Language-Team: Badablek, Amour, ikya, Cyan & Kin8\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr "Nouv. catégorie"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr "Toutes"

View File

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

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: xFede\n"
"Language-Team: Cambo\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr "Aggiungi Categoria"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr "Tutte"

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: nextos@korea.com\n"
"Language-Team: \n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: raschi\n"
"Language-Team: raschi\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr "Legg til kategori"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr "Alle"

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: aniemotion\n"
"Language-Team: boto12, aniemotion\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr "Adicionar categoria"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr "Todas"

View File

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

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: knife.hu kavid emul8ion\n"
"Language-Team: kavid\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: Galen/xFede\n"
"Language-Team: Penn, SirPalax, hvy109\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr "Añadir categoría"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr "Todas"

View File

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

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: Jane.H\n"
"Language-Team: kyogc, Miller, Mika Li, Jane.H\n"
@ -82,6 +82,12 @@ msgstr "AXNextFrame"
msgid "Add category"
msgstr "增加類別"
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr "全部"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: Nitro_subzero \n"
"Language-Team: Nitro_subzero\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: USB Loader GX\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-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"
"Last-Translator: omercigingelini\n"
"Language-Team: omercigingelini\n"
@ -82,6 +82,12 @@ msgstr ""
msgid "Add category"
msgstr ""
msgid "Adjust Overscan X"
msgstr ""
msgid "Adjust Overscan Y"
msgstr ""
msgid "All"
msgstr ""

File diff suppressed because one or more lines are too long

View File

@ -131,19 +131,32 @@ void AifDecoder::OpenFile()
return;
}
SWaveChunk WaveChunk;
do
u32 magic = 0;
while(1)
{
int ret = file_fd->read((u8 *) &WaveChunk, sizeof(SWaveChunk));
int ret = file_fd->read((u8 *) &magic, sizeof(magic));
if(ret <= 0)
{
CloseFile();
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;
file_fd->seek(file_fd->tell()-sizeof(SWaveChunk), SEEK_SET);

View File

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

View File

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

View File

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

View File

@ -8,6 +8,11 @@
extern "C" {
#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_cleanup(void);
void MEM2_takeBigOnes(bool b);

View File

@ -1,10 +1,10 @@
#include "mem2alloc.hpp"
#include <ogc/system.h>
#include <algorithm>
#include <string.h>
#define IOS_RELOAD_AREA 0x90200000
class LockMutex
{
@ -16,7 +16,7 @@ public:
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));
if (m_endAddress > (SBlock *) 0x93300000) //rest is reserved for usb/usb2/network and other stuff... (0xE0000 bytes)
m_endAddress = (SBlock *) 0x93300000;

View File

@ -142,6 +142,8 @@ void CSettings::SetDefault()
GameAspectRatio = ASPECT_SYSTEM_DEFAULT;
PointerSpeed = 0.18f;
UseChanLauncher = OFF;
AdjustOverscanX = 0;
AdjustOverscanY = 0;
}
bool CSettings::Load()
@ -320,6 +322,8 @@ bool CSettings::Save()
fprintf(file, "GameAspectRatio = %d\n", GameAspectRatio);
fprintf(file, "PointerSpeed = %g\n", PointerSpeed);
fprintf(file, "UseChanLauncher = %d\n", UseChanLauncher);
fprintf(file, "AdjustOverscanX = %d\n", AdjustOverscanX);
fprintf(file, "AdjustOverscanY = %d\n", AdjustOverscanY);
fclose(file);
return true;
@ -649,6 +653,14 @@ bool CSettings::SetSetting(char *name, char *value)
{
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)
{
InstallPartitions = strtoul(value, 0, 16);

View File

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

View File

@ -124,6 +124,8 @@ GuiSettingsMenu::GuiSettingsMenu()
Options->SetName(Idx++, "%s", tr( "Use System Font" ));
Options->SetName(Idx++, "%s", tr( "Search Mode" ));
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();
}
@ -197,6 +199,12 @@ void GuiSettingsMenu::SetOptionValues()
//! Settings: Virtual Pointer Speed
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()
@ -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();

View File

@ -116,6 +116,8 @@ void GameBooter::SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct di
{
if(NandEmuMode && strchr(NandEmuPath, '/'))
{
int partition = -1;
//! Create save game path and title.tmd for not existing saves
CreateSavePath(&gameHeader);
@ -123,14 +125,23 @@ void GameBooter::SetupNandEmu(u8 NandEmuMode, const char *NandEmuPath, struct di
Set_FullMode(NandEmuMode == 2);
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)
Set_Partition(atoi(NandEmuPath+3)-1);
//! Unmount SD since NAND Emu mount fails otherwise
else if(strncmp(NandEmuPath, "sd", 2) == 0)
{
//! Set which partition to use (USB only)
partition = atoi(NandEmuPath+3)-1;
Set_Partition(partition);
DeviceHandler::Instance()->UnMount(USB1 + partition);
}
else
DeviceHandler::Instance()->UnMountSD();
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"
"lis %r3, 0x8000\n"
"ori %r3, %r3, 0x18A8\n"
"nop\n"
"mtctr %r3\n"
"bctr\n"
"returnpoint:\n"

View File

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

View File

@ -147,9 +147,13 @@ void InitVideo()
VIDEO_SetBlack(FALSE);
// 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)

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);
s32 TakeScreenshot(const char *path);
void VIDEO_SetWidescreen(bool widescreen);
void AdjustOverscan(int x, int y);
extern int screenheight;
extern int screenwidth;

View File

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