mirror of
https://github.com/Fledge68/WiiFlow_Lite.git
synced 2024-11-01 00:55:06 +01:00
- added framebuffer video width game option taken from usblgx. thanks to wiidev/blackb0x. #345
This commit is contained in:
parent
b878b9e2ee
commit
1239b90751
Binary file not shown.
BIN
out/boot.dol
BIN
out/boot.dol
Binary file not shown.
Before Width: | Height: | Size: 4.4 MiB After Width: | Height: | Size: 4.4 MiB |
@ -206,7 +206,7 @@ u32 LoadChannel(u64 title, bool dol, u32 *IOS)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PatchChannel(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio,
|
void PatchChannel(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio,
|
||||||
u32 returnTo, u8 private_server, const char *server_addr, bool patchFix480p, u8 deflicker, u8 bootType)
|
u32 returnTo, u8 private_server, const char *server_addr, u8 videoWidth, bool patchFix480p, u8 deflicker, u8 bootType)
|
||||||
{
|
{
|
||||||
u8 vfilter_off[7] = {0, 0, 21, 22, 21, 0, 0};
|
u8 vfilter_off[7] = {0, 0, 21, 22, 21, 0, 0};
|
||||||
u8 vfilter_low[7] = {4, 4, 16, 16, 16, 4, 4};
|
u8 vfilter_low[7] = {4, 4, 16, 16, 16, 4, 4};
|
||||||
@ -232,6 +232,9 @@ void PatchChannel(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryStrin
|
|||||||
if(hooktype != 0 && hookpatched == false)
|
if(hooktype != 0 && hookpatched == false)
|
||||||
hookpatched = dogamehooks(dolchunkoffset[i], dolchunksize[i], true);
|
hookpatched = dogamehooks(dolchunkoffset[i], dolchunksize[i], true);
|
||||||
|
|
||||||
|
if (videoWidth == WIDTH_FRAMEBUFFER)
|
||||||
|
patch_width(dolchunkoffset[i], dolchunksize[i]);
|
||||||
|
|
||||||
if (deflicker == DEFLICKER_ON_LOW)
|
if (deflicker == DEFLICKER_ON_LOW)
|
||||||
{
|
{
|
||||||
patch_vfilters(dolchunkoffset[i], dolchunksize[i], vfilter_low);
|
patch_vfilters(dolchunkoffset[i], dolchunksize[i], vfilter_low);
|
||||||
|
@ -14,7 +14,7 @@ typedef struct _dolheader
|
|||||||
} ATTRIBUTE_PACKED dolheader;
|
} ATTRIBUTE_PACKED dolheader;
|
||||||
|
|
||||||
void PatchChannel(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio,
|
void PatchChannel(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio,
|
||||||
u32 returnTo, u8 private_server, const char *server_addr, bool patchFix480p, u8 deflicker, u8 bootType);
|
u32 returnTo, u8 private_server, const char *server_addr, u8 videoWidth, bool patchFix480p, u8 deflicker, u8 bootType);
|
||||||
u32 LoadChannel(u64 title, bool dol, u32 *IOS);
|
u32 LoadChannel(u64 title, bool dol, u32 *IOS);
|
||||||
|
|
||||||
extern bool isForwarder;
|
extern bool isForwarder;
|
||||||
|
@ -49,6 +49,7 @@ struct the_CFG {
|
|||||||
s8 aspectRatio;
|
s8 aspectRatio;
|
||||||
bool patchFix480p;
|
bool patchFix480p;
|
||||||
u8 deflicker;
|
u8 deflicker;
|
||||||
|
u8 videoWidth;
|
||||||
u8 private_server;
|
u8 private_server;
|
||||||
char server_addr[24];
|
char server_addr[24];
|
||||||
u8 *cheats;
|
u8 *cheats;
|
||||||
|
@ -26,8 +26,8 @@ static u8 *appldr = (u8*)0x81200000;
|
|||||||
static const char *GameID = (const char*)0x80000000;
|
static const char *GameID = (const char*)0x80000000;
|
||||||
|
|
||||||
/* Constants */
|
/* Constants */
|
||||||
#define APPLDR_OFFSET 0x910
|
#define APPLDR_OFFSET 0x910// usblgx uses 0x2440 -huh?
|
||||||
#define APPLDR_CODE 0x918
|
#define APPLDR_CODE 0x918// usblgx uses APPLDR_OFFSET + 0x20 - huh?
|
||||||
|
|
||||||
void maindolpatches(void *dst, int len, u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio,
|
void maindolpatches(void *dst, int len, u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio,
|
||||||
u32 returnTo, bool patchregion, u8 private_server, const char *server_addr, u8 deflicker, u8 bootType);
|
u32 returnTo, bool patchregion, u8 private_server, const char *server_addr, u8 deflicker, u8 bootType);
|
||||||
@ -39,18 +39,19 @@ static void NewSuperMarioBrosPatch();
|
|||||||
static void Patch_23400_and_MKWii_vulnerability();
|
static void Patch_23400_and_MKWii_vulnerability();
|
||||||
bool hookpatched = false;
|
bool hookpatched = false;
|
||||||
|
|
||||||
|
// wiiflow uses a struct to hold the appldr hdr and usblgx uses a u32 buffer[32] array to hold it.
|
||||||
/* Thanks Tinyload */
|
/* Thanks Tinyload */
|
||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
char revision[16];
|
char revision[16];//[0-3] 16 divided by 4 bytes = 4
|
||||||
void *entry;
|
void *entry;// [4] 4 bytes
|
||||||
s32 size;
|
s32 size;//[5] 4 bytes
|
||||||
s32 trailersize;
|
s32 trailersize;// [6] 4 bytes
|
||||||
s32 padding;
|
s32 padding;// [7] 4 bytes
|
||||||
} apploader_hdr ATTRIBUTE_ALIGN(32);
|
} apploader_hdr ATTRIBUTE_ALIGN(32);// 16+4+4+4+4=32 bytes
|
||||||
|
|
||||||
u32 Apploader_Run(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio, u32 returnTo,
|
u32 Apploader_Run(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio, u32 returnTo,
|
||||||
bool patchregion , u8 private_server, const char *server_addr, bool patchFix480p, u8 deflicker, u8 bootType)
|
bool patchregion , u8 private_server, const char *server_addr, u8 videoWidth, bool patchFix480p, u8 deflicker, u8 bootType)
|
||||||
{
|
{
|
||||||
//! Disable private server for games that still have official servers.
|
//! Disable private server for games that still have official servers.
|
||||||
if(memcmp(GameID, "SC7", 3) == 0 || memcmp(GameID, "RJA", 3) == 0 ||
|
if(memcmp(GameID, "SC7", 3) == 0 || memcmp(GameID, "RJA", 3) == 0 ||
|
||||||
@ -118,6 +119,12 @@ u32 Apploader_Run(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryStrin
|
|||||||
prog(20);
|
prog(20);
|
||||||
}
|
}
|
||||||
free_wip();
|
free_wip();
|
||||||
|
|
||||||
|
patch_kirby((u8 *)0x80000000);// can't be done during maindolpatches.
|
||||||
|
|
||||||
|
if(videoWidth == WIDTH_FRAMEBUFFER)
|
||||||
|
patch_width((void*)0x80000000, 0x900000);
|
||||||
|
|
||||||
if(hooktype != 0 && hookpatched)
|
if(hooktype != 0 && hookpatched)
|
||||||
ocarina_do_code();
|
ocarina_do_code();
|
||||||
|
|
||||||
@ -153,36 +160,28 @@ void maindolpatches(void *dst, int len, u8 vidMode, GXRModeObj *vmode, bool vipa
|
|||||||
u8 vfilter_medium[7] = {4, 8, 12, 16, 12, 8, 4};
|
u8 vfilter_medium[7] = {4, 8, 12, 16, 12, 8, 4};
|
||||||
u8 vfilter_high[7] = {8, 8, 10, 12, 10, 8, 8};
|
u8 vfilter_high[7] = {8, 8, 10, 12, 10, 8, 8};
|
||||||
|
|
||||||
patch_kirby((u8 *)0x80000000);
|
|
||||||
do_wip_code((u8 *)dst, len);
|
|
||||||
Remove_001_Protection(dst, len);
|
|
||||||
if(CurrentIOS.Type == IOS_TYPE_WANIN && CurrentIOS.Revision < 13)
|
|
||||||
Anti_002_fix(dst, len);
|
|
||||||
if((CurrentIOS.Type == IOS_TYPE_WANIN && CurrentIOS.Revision < 13) || CurrentIOS.Type == IOS_TYPE_HERMES)
|
|
||||||
patch_NoDiscinDrive(dst, len);
|
|
||||||
patchVideoModes(dst, len, vidMode, vmode, patchVidModes, bootType);
|
patchVideoModes(dst, len, vidMode, vmode, patchVidModes, bootType);
|
||||||
|
|
||||||
if(debuggerselect == 2)
|
if(debuggerselect == 2)
|
||||||
Patch_fwrite(dst, len);
|
Patch_fwrite(dst, len);
|
||||||
if(hooktype != 0 && hookpatched == false)
|
if(hooktype != 0 && hookpatched == false)
|
||||||
hookpatched = dogamehooks(dst, len, false);
|
hookpatched = dogamehooks(dst, len, false);
|
||||||
if(patchVidModes > 0)
|
|
||||||
PatchVideoSneek(dst, len);
|
|
||||||
if(vipatch)
|
if(vipatch)
|
||||||
vidolpatcher(dst, len);
|
vidolpatcher(dst, len);
|
||||||
|
if(patchVidModes > 0)
|
||||||
|
PatchVideoSneek(dst, len);
|
||||||
if(configbytes[0] != 0xCD)
|
if(configbytes[0] != 0xCD)
|
||||||
langpatcher(dst, len);
|
langpatcher(dst, len);
|
||||||
if(countryString)
|
if(countryString)
|
||||||
PatchCountryStrings(dst, len); // Country Patch by WiiPower
|
PatchCountryStrings(dst, len); // Country Patch by WiiPower
|
||||||
if(aspectRatio != -1)
|
do_wip_code((u8 *)dst, len);
|
||||||
PatchAspectRatio(dst, len, aspectRatio);
|
Remove_001_Protection(dst, len);
|
||||||
if(returnTo)
|
if(CurrentIOS.Type == IOS_TYPE_WANIN && CurrentIOS.Revision < 13)
|
||||||
PatchReturnTo(dst, len, returnTo);
|
Anti_002_fix(dst, len);
|
||||||
|
if((CurrentIOS.Type == IOS_TYPE_WANIN && CurrentIOS.Revision < 13) || CurrentIOS.Type == IOS_TYPE_HERMES)
|
||||||
|
patch_NoDiscinDrive(dst, len);
|
||||||
if(patchregion)
|
if(patchregion)
|
||||||
PatchRegion(dst, len);
|
PatchRegion(dst, len);
|
||||||
if(private_server)
|
|
||||||
PrivateServerPatcher(dst, len, private_server, serverAddr);
|
|
||||||
|
|
||||||
if(deflicker == DEFLICKER_ON_LOW)
|
if(deflicker == DEFLICKER_ON_LOW)
|
||||||
{
|
{
|
||||||
patch_vfilters(dst, len, vfilter_low);
|
patch_vfilters(dst, len, vfilter_low);
|
||||||
@ -206,6 +205,12 @@ void maindolpatches(void *dst, int len, u8 vidMode, GXRModeObj *vmode, bool vipa
|
|||||||
if (deflicker == DEFLICKER_OFF_EXTENDED)
|
if (deflicker == DEFLICKER_OFF_EXTENDED)
|
||||||
deflicker_patch(dst, len);
|
deflicker_patch(dst, len);
|
||||||
}
|
}
|
||||||
|
if(returnTo)
|
||||||
|
PatchReturnTo(dst, len, returnTo);
|
||||||
|
if(aspectRatio != -1)
|
||||||
|
PatchAspectRatio(dst, len, aspectRatio);
|
||||||
|
if(private_server)
|
||||||
|
PrivateServerPatcher(dst, len, private_server, serverAddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void patch_NoDiscinDrive(void *buffer, u32 len)
|
static void patch_NoDiscinDrive(void *buffer, u32 len)
|
||||||
|
@ -7,7 +7,7 @@ extern "C" {
|
|||||||
|
|
||||||
/* Prototypes */
|
/* Prototypes */
|
||||||
u32 Apploader_Run(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio, u32 returnTo,
|
u32 Apploader_Run(u8 vidMode, GXRModeObj *vmode, bool vipatch, bool countryString, u8 patchVidModes, int aspectRatio, u32 returnTo,
|
||||||
bool patchregion, u8 private_server, const char * server_addr, bool patchFix480p, u8 deflicker, u8 bootType);
|
bool patchregion, u8 private_server, const char * server_addr, u8 videoWidth, bool patchFix480p, u8 deflicker, u8 bootType);
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -28,6 +28,13 @@ enum
|
|||||||
DEFLICKER_ON_HIGH
|
DEFLICKER_ON_HIGH
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
WIDTH_AUTO,
|
||||||
|
WIDTH_FRAMEBUFFER,
|
||||||
|
WIDTH_MAX
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
@ -107,8 +107,8 @@ int main()
|
|||||||
if(normalCFG.vidMode == 5)
|
if(normalCFG.vidMode == 5)
|
||||||
normalCFG.patchVidMode = 1; //progressive mode requires this
|
normalCFG.patchVidMode = 1; //progressive mode requires this
|
||||||
vmode = Disc_SelectVMode(normalCFG.vidMode, &vmode_reg);// requires Disc_ID[3]
|
vmode = Disc_SelectVMode(normalCFG.vidMode, &vmode_reg);// requires Disc_ID[3]
|
||||||
AppEntrypoint = Apploader_Run(normalCFG.vidMode, vmode, normalCFG.vipatch, normalCFG.countryString, normalCFG.patchVidMode, normalCFG.aspectRatio,
|
AppEntrypoint = Apploader_Run(normalCFG.vidMode, vmode, normalCFG.vipatch, normalCFG.countryString, normalCFG.patchVidMode, normalCFG.aspectRatio, normalCFG.returnTo,
|
||||||
normalCFG.returnTo, normalCFG.patchregion, normalCFG.private_server, normalCFG.server_addr, normalCFG.patchFix480p, normalCFG.deflicker, normalCFG.BootType);
|
normalCFG.patchregion, normalCFG.private_server, normalCFG.server_addr, normalCFG.videoWidth, normalCFG.patchFix480p, normalCFG.deflicker, normalCFG.BootType);
|
||||||
WDVD_Close();
|
WDVD_Close();
|
||||||
}
|
}
|
||||||
else if(normalCFG.BootType == TYPE_CHANNEL)
|
else if(normalCFG.BootType == TYPE_CHANNEL)
|
||||||
@ -118,7 +118,7 @@ int main()
|
|||||||
ISFS_Deinitialize();
|
ISFS_Deinitialize();
|
||||||
vmode = Disc_SelectVMode(normalCFG.vidMode, &vmode_reg);// requires Disc_ID[3]
|
vmode = Disc_SelectVMode(normalCFG.vidMode, &vmode_reg);// requires Disc_ID[3]
|
||||||
PatchChannel(normalCFG.vidMode, vmode, normalCFG.vipatch, normalCFG.countryString, normalCFG.patchVidMode, normalCFG.aspectRatio,
|
PatchChannel(normalCFG.vidMode, vmode, normalCFG.vipatch, normalCFG.countryString, normalCFG.patchVidMode, normalCFG.aspectRatio,
|
||||||
normalCFG.returnTo, normalCFG.private_server, normalCFG.server_addr, normalCFG.patchFix480p, normalCFG.deflicker, normalCFG.BootType);
|
normalCFG.returnTo, normalCFG.private_server, normalCFG.server_addr, normalCFG.videoWidth, normalCFG.patchFix480p, normalCFG.deflicker, normalCFG.BootType);
|
||||||
}
|
}
|
||||||
gprintf("Entrypoint: %08x, Requested Game IOS: %i\n", AppEntrypoint, GameIOS);
|
gprintf("Entrypoint: %08x, Requested Game IOS: %i\n", AppEntrypoint, GameIOS);
|
||||||
setprog(320);
|
setprog(320);
|
||||||
|
@ -1337,7 +1337,7 @@ u32 do_new_wiimmfi() {
|
|||||||
// Deflicker filter patching by wiidev (blackb0x @ GBAtemp)
|
// Deflicker filter patching by wiidev (blackb0x @ GBAtemp)
|
||||||
void patch_vfilters(void *addr, u32 len, u8 *vfilter)
|
void patch_vfilters(void *addr, u32 len, u8 *vfilter)
|
||||||
{
|
{
|
||||||
u8 *addr_start = addr;
|
u8 *addr_start = (u8 *)addr;
|
||||||
while (len >= sizeof(GXRModeObj))
|
while (len >= sizeof(GXRModeObj))
|
||||||
{
|
{
|
||||||
GXRModeObj *vidmode = (GXRModeObj *)addr_start;
|
GXRModeObj *vidmode = (GXRModeObj *)addr_start;
|
||||||
@ -1369,8 +1369,8 @@ void patch_vfilters_rogue(void *addr, u32 len, u8 *vfilter)
|
|||||||
{4, 4, 16, 16, 16, 4, 4},
|
{4, 4, 16, 16, 16, 4, 4},
|
||||||
{2, 2, 17, 22, 17, 2, 2}
|
{2, 2, 17, 22, 17, 2, 2}
|
||||||
};
|
};
|
||||||
u8 *addr_start = addr;
|
u8 *addr_start = (u8 *)addr;
|
||||||
u8 *addr_end = addr + len - 8;
|
u8 *addr_end = addr_start + len - 8;
|
||||||
while (addr_start <= addr_end)
|
while (addr_start <= addr_end)
|
||||||
{
|
{
|
||||||
u8 known_vfilter[7];
|
u8 known_vfilter[7];
|
||||||
@ -1400,8 +1400,8 @@ void deflicker_patch(void *addr, u32 len)
|
|||||||
0x508BC00E, 0x99498000, 0x500CC00E,
|
0x508BC00E, 0x99498000, 0x500CC00E,
|
||||||
0x90698000, 0x99498000, 0x90E98000,
|
0x90698000, 0x99498000, 0x90E98000,
|
||||||
0x99498000, 0x91098000, 0x41820040};
|
0x99498000, 0x91098000, 0x41820040};
|
||||||
u8 *addr_start = addr;
|
u8 *addr_start = (u8 *)addr;
|
||||||
u8 *addr_end = addr + len - sizeof(SearchPattern);
|
u8 *addr_end = addr_start + len - sizeof(SearchPattern);
|
||||||
while (addr_start <= addr_end)
|
while (addr_start <= addr_end)
|
||||||
{
|
{
|
||||||
if (memcmp(addr_start, SearchPattern, sizeof(SearchPattern)) == 0)
|
if (memcmp(addr_start, SearchPattern, sizeof(SearchPattern)) == 0)
|
||||||
@ -1413,3 +1413,51 @@ void deflicker_patch(void *addr, u32 len)
|
|||||||
addr_start += 4;
|
addr_start += 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void patch_width(void *addr, u32 len)
|
||||||
|
{
|
||||||
|
u8 SearchPattern[32] = {
|
||||||
|
0x40, 0x82, 0x00, 0x08, 0x48, 0x00, 0x00, 0x1C,
|
||||||
|
0x28, 0x09, 0x00, 0x03, 0x40, 0x82, 0x00, 0x08,
|
||||||
|
0x48, 0x00, 0x00, 0x10, 0x2C, 0x03, 0x00, 0x00,
|
||||||
|
0x40, 0x82, 0x00, 0x08, 0x54, 0xA5, 0x0C, 0x3C};
|
||||||
|
u8 *addr_start = (u8 *)addr;
|
||||||
|
u8 *addr_end = addr_start + len - sizeof(SearchPattern);
|
||||||
|
while (addr_start <= addr_end)
|
||||||
|
{
|
||||||
|
if (memcmp(addr_start, SearchPattern, sizeof(SearchPattern)) == 0)
|
||||||
|
{
|
||||||
|
if (addr_start[-0x70] == 0xA0 && addr_start[-0x6E] == 0x00 && addr_start[-0x6D] == 0x0A)
|
||||||
|
{
|
||||||
|
if (addr_start[-0x44] == 0xA0 && addr_start[-0x42] == 0x00 && addr_start[-0x41] == 0x0E)
|
||||||
|
{
|
||||||
|
u8 reg_a = (addr_start[-0x6F] >> 5);
|
||||||
|
u8 reg_b = (addr_start[-0x43] >> 5);
|
||||||
|
|
||||||
|
// Patch to the framebuffer resolution
|
||||||
|
addr_start[-0x41] = 0x04;
|
||||||
|
|
||||||
|
// Center the image
|
||||||
|
void *offset = addr_start - 0x70;
|
||||||
|
|
||||||
|
u32 old_heap_ptr = *(u32 *)0x80003110;
|
||||||
|
*(u32 *)0x80003110 = old_heap_ptr - 0x40;
|
||||||
|
u32 heap_space = old_heap_ptr - 0x40;
|
||||||
|
|
||||||
|
u32 org_address = (addr_start[-0x70] << 24) | (addr_start[-0x6F] << 16);
|
||||||
|
*(u32 *)(heap_space + 0x00) = org_address | 4;
|
||||||
|
*(u32 *)(heap_space + 0x04) = 0x200002D0 | (reg_b << 21) | (reg_a << 16);
|
||||||
|
*(u32 *)(heap_space + 0x08) = 0x38000002 | (reg_a << 21);
|
||||||
|
*(u32 *)(heap_space + 0x0C) = 0x7C000396 | (reg_a << 21) | (reg_b << 16) | (reg_a << 11);
|
||||||
|
|
||||||
|
*(u32 *)offset = 0x48000000 + ((heap_space - (u32)offset) & 0x3ffffff);
|
||||||
|
*(u32 *)(heap_space + 0x10) = 0x48000000 + ((((u32)offset + 0x04) - (heap_space + 0x10)) & 0x3ffffff);
|
||||||
|
|
||||||
|
gprintf("Patched resolution. Branched from 0x%x to 0x%x\n", offset, heap_space);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
addr_start += 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -33,6 +33,7 @@ extern u8 configbytes[2];
|
|||||||
void deflicker_patch(void *addr, u32 len);
|
void deflicker_patch(void *addr, u32 len);
|
||||||
void patch_vfilters(void *addr, u32 len, u8 *vfilter);
|
void patch_vfilters(void *addr, u32 len, u8 *vfilter);
|
||||||
void patch_vfilters_rogue(void *addr, u32 len, u8 *vfilter);
|
void patch_vfilters_rogue(void *addr, u32 len, u8 *vfilter);
|
||||||
|
void patch_width(void *addr, u32 len);
|
||||||
bool dogamehooks(void *addr, u32 len, bool channel);
|
bool dogamehooks(void *addr, u32 len, bool channel);
|
||||||
void langpatcher(void *addr, u32 len);
|
void langpatcher(void *addr, u32 len);
|
||||||
void vidolpatcher(void *addr, u32 len);
|
void vidolpatcher(void *addr, u32 len);
|
||||||
|
@ -49,6 +49,7 @@ struct the_CFG {
|
|||||||
s8 aspectRatio;
|
s8 aspectRatio;
|
||||||
bool patchFix480p;
|
bool patchFix480p;
|
||||||
u8 deflicker;
|
u8 deflicker;
|
||||||
|
u8 videoWidth;
|
||||||
u8 private_server;
|
u8 private_server;
|
||||||
char server_addr[24];
|
char server_addr[24];
|
||||||
u8 *cheats;
|
u8 *cheats;
|
||||||
|
@ -62,7 +62,7 @@ u8 *booter_ptr = NULL;
|
|||||||
u32 booter_size = 0;
|
u32 booter_size = 0;
|
||||||
|
|
||||||
void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, s8 aspectRatio, u8 private_server, const char *server_addr,
|
void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, s8 aspectRatio, u8 private_server, const char *server_addr,
|
||||||
bool patchFix480p, u8 deflicker, u32 returnTo, u8 BootType, bool use_led)
|
u8 videoWidth, bool patchFix480p, u8 deflicker, u32 returnTo, u8 BootType, bool use_led)
|
||||||
{
|
{
|
||||||
normalCFG.vidMode = vidMode;
|
normalCFG.vidMode = vidMode;
|
||||||
normalCFG.vipatch = vipatch;
|
normalCFG.vipatch = vipatch;
|
||||||
@ -73,6 +73,7 @@ void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 pat
|
|||||||
strncpy(normalCFG.server_addr, server_addr, 23);
|
strncpy(normalCFG.server_addr, server_addr, 23);
|
||||||
normalCFG.patchFix480p = patchFix480p;
|
normalCFG.patchFix480p = patchFix480p;
|
||||||
normalCFG.deflicker = deflicker;
|
normalCFG.deflicker = deflicker;
|
||||||
|
normalCFG.videoWidth = videoWidth;
|
||||||
normalCFG.returnTo = returnTo;
|
normalCFG.returnTo = returnTo;
|
||||||
normalCFG.configbytes[0] = configbytes[0];
|
normalCFG.configbytes[0] = configbytes[0];
|
||||||
normalCFG.configbytes[1] = configbytes[1];
|
normalCFG.configbytes[1] = configbytes[1];
|
||||||
|
@ -29,7 +29,7 @@ extern u32 hooktype;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, s8 aspectRatio, u8 private_server, const char *server_addr,
|
void WiiFlow_ExternalBooter(u8 vidMode, bool vipatch, bool countryString, u8 patchVidMode, s8 aspectRatio, u8 private_server, const char *server_addr,
|
||||||
bool patchFix480p, u8 deflicker, u32 returnTo, u8 BootType, bool use_led);
|
u8 videoWidth, bool patchFix480p, u8 deflicker, u32 returnTo, u8 BootType, bool use_led);
|
||||||
bool ExternalBooter_LoadBins(const char *binDir);
|
bool ExternalBooter_LoadBins(const char *binDir);
|
||||||
void ExternalBooter_ChannelSetup(u64 title, bool dol);
|
void ExternalBooter_ChannelSetup(u64 title, bool dol);
|
||||||
void ExternalBooter_WiiGameSetup(bool wbfs, bool dvd, bool patchregion, const char *ID);
|
void ExternalBooter_WiiGameSetup(bool wbfs, bool dvd, bool patchregion, const char *ID);
|
||||||
|
@ -1018,6 +1018,8 @@ private:
|
|||||||
static const SOption _languages[11];
|
static const SOption _languages[11];
|
||||||
static const SOption _GlobalDeflickerOptions[6];
|
static const SOption _GlobalDeflickerOptions[6];
|
||||||
static const SOption _DeflickerOptions[7];
|
static const SOption _DeflickerOptions[7];
|
||||||
|
static const SOption _GlobalVideoWidths[2];
|
||||||
|
static const SOption _VideoWidths[3];
|
||||||
static const SOption _AspectRatio[3];
|
static const SOption _AspectRatio[3];
|
||||||
static const SOption _WidescreenWiiu[3];
|
static const SOption _WidescreenWiiu[3];
|
||||||
static const SOption _vidModePatch[4];
|
static const SOption _vidModePatch[4];
|
||||||
|
@ -48,6 +48,17 @@ const CMenu::SOption CMenu::_DeflickerOptions[7] = {
|
|||||||
{ "df_high", L"On (High)" },
|
{ "df_high", L"On (High)" },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const CMenu::SOption CMenu::_GlobalVideoWidths[2] = {
|
||||||
|
{ "vw_auto", L"Auto" },
|
||||||
|
{ "vw_frmbuf", L"Framebuffer" },
|
||||||
|
};
|
||||||
|
|
||||||
|
const CMenu::SOption CMenu::_VideoWidths[3] = {
|
||||||
|
{ "vw_def", L"Default" },
|
||||||
|
{ "vw_auto", L"Auto" },
|
||||||
|
{ "vw_frmbuf", L"Framebuffer" },
|
||||||
|
};
|
||||||
|
|
||||||
const CMenu::SOption CMenu::_languages[11] = {
|
const CMenu::SOption CMenu::_languages[11] = {
|
||||||
{ "lngdef", L"Default" },// next should be console
|
{ "lngdef", L"Default" },// next should be console
|
||||||
{ "lngjap", L"Japanese" },
|
{ "lngjap", L"Japanese" },
|
||||||
@ -253,7 +264,6 @@ void CMenu::_showConfigGame()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
i = 0;
|
i = 0;
|
||||||
|
|
||||||
if(i > 0)
|
if(i > 0)
|
||||||
m_btnMgr.setText(m_configLbl2Val, wfmt(L"%i", i));
|
m_btnMgr.setText(m_configLbl2Val, wfmt(L"%i", i));
|
||||||
else
|
else
|
||||||
@ -396,17 +406,20 @@ void CMenu::_showConfigGame()
|
|||||||
}
|
}
|
||||||
else if(m_configGamePage == 5)
|
else if(m_configGamePage == 5)
|
||||||
{
|
{
|
||||||
m_btnMgr.setText(m_configLbl1, _t("cfgg38", L"Activity LED"));
|
m_btnMgr.setText(m_configLbl1, _t("cfgg45", L"Private Server"));
|
||||||
m_btnMgr.setText(m_configBtn1, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0)));
|
|
||||||
m_btnMgr.show(m_configLbl1);
|
|
||||||
m_btnMgr.show(m_configBtn1);
|
|
||||||
|
|
||||||
m_btnMgr.setText(m_configLbl2, _t("cfgg45", L"Private Server"));
|
|
||||||
i = min(m_gcfg2.getUInt(id, "private_server", 0), ARRAY_SIZE(CMenu::_privateServer) - 1u);
|
i = min(m_gcfg2.getUInt(id, "private_server", 0), ARRAY_SIZE(CMenu::_privateServer) - 1u);
|
||||||
if(i < 3)
|
if(i < 3)
|
||||||
m_btnMgr.setText(m_configLbl2Val, _t(CMenu::_privateServer[i].id, CMenu::_privateServer[i].text));
|
m_btnMgr.setText(m_configLbl1Val, _t(CMenu::_privateServer[i].id, CMenu::_privateServer[i].text));
|
||||||
else
|
else
|
||||||
m_btnMgr.setText(m_configLbl2Val, custom_servers[i - 3]);//wstringEx()
|
m_btnMgr.setText(m_configLbl1Val, custom_servers[i - 3]);//wstringEx()
|
||||||
|
m_btnMgr.show(m_configLbl1);
|
||||||
|
m_btnMgr.show(m_configLbl1Val);
|
||||||
|
m_btnMgr.show(m_configBtn1P);
|
||||||
|
m_btnMgr.show(m_configBtn1M);
|
||||||
|
|
||||||
|
m_btnMgr.setText(m_configLbl2, _t("cfgg65", L"Video Width"));
|
||||||
|
i = min(m_gcfg2.getUInt(id, "video_width", 0), ARRAY_SIZE(CMenu::_VideoWidths) - 1u);
|
||||||
|
m_btnMgr.setText(m_configLbl2Val, _t(CMenu::_VideoWidths[i].id, CMenu::_VideoWidths[i].text));
|
||||||
m_btnMgr.show(m_configLbl2);
|
m_btnMgr.show(m_configLbl2);
|
||||||
m_btnMgr.show(m_configLbl2Val);
|
m_btnMgr.show(m_configLbl2Val);
|
||||||
m_btnMgr.show(m_configBtn2P);
|
m_btnMgr.show(m_configBtn2P);
|
||||||
@ -444,6 +457,13 @@ void CMenu::_showConfigGame()
|
|||||||
m_btnMgr.show(m_configBtn2P);
|
m_btnMgr.show(m_configBtn2P);
|
||||||
m_btnMgr.show(m_configBtn2M);
|
m_btnMgr.show(m_configBtn2M);
|
||||||
}
|
}
|
||||||
|
else // wii only
|
||||||
|
{
|
||||||
|
m_btnMgr.setText(m_configLbl2, _t("cfgg38", L"Activity LED"));
|
||||||
|
m_btnMgr.setText(m_configBtn2, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0)));
|
||||||
|
m_btnMgr.show(m_configLbl2);
|
||||||
|
m_btnMgr.show(m_configBtn2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -739,20 +759,22 @@ void CMenu::_configGame(const dir_discHdr *hdr, bool disc)
|
|||||||
}
|
}
|
||||||
else if(m_configGamePage == 5)
|
else if(m_configGamePage == 5)
|
||||||
{
|
{
|
||||||
if(m_btnMgr.selected(m_configBtn1))
|
if(m_btnMgr.selected(m_configBtn1P) || m_btnMgr.selected(m_configBtn1M))
|
||||||
{
|
{
|
||||||
m_gcfg2.setBool(id, "led", !m_gcfg2.getBool(id, "led", 0));
|
s8 direction = m_btnMgr.selected(m_configBtn1P) ? 1 : -1;
|
||||||
m_btnMgr.setText(m_configBtn1, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0)));
|
i = loopNum(m_gcfg2.getUInt(id, "private_server") + direction, ARRAY_SIZE(CMenu::_privateServer) + custom_servers.size());
|
||||||
|
m_gcfg2.setUInt(id, "private_server", i);
|
||||||
|
if(i < 3)
|
||||||
|
m_btnMgr.setText(m_configLbl1Val, _t(CMenu::_privateServer[i].id, CMenu::_privateServer[i].text));
|
||||||
|
else
|
||||||
|
m_btnMgr.setText(m_configLbl1Val, custom_servers[i - 3]);//wstringEx()
|
||||||
}
|
}
|
||||||
else if(m_btnMgr.selected(m_configBtn2P) || m_btnMgr.selected(m_configBtn2M))
|
else if(m_btnMgr.selected(m_configBtn2P) || m_btnMgr.selected(m_configBtn2M))
|
||||||
{
|
{
|
||||||
s8 direction = m_btnMgr.selected(m_configBtn2P) ? 1 : -1;
|
s8 direction = m_btnMgr.selected(m_configBtn2P) ? 1 : -1;
|
||||||
i = loopNum(m_gcfg2.getUInt(id, "private_server") + direction, ARRAY_SIZE(CMenu::_privateServer) + custom_servers.size());
|
i = loopNum(m_gcfg2.getUInt(id, "video_width") + direction, ARRAY_SIZE(CMenu::_VideoWidths));
|
||||||
m_gcfg2.setUInt(id, "private_server", i);
|
m_gcfg2.setInt(id, "video_width", i);
|
||||||
if(i < 3)
|
m_btnMgr.setText(m_configLbl2Val, _t(CMenu::_VideoWidths[i].id, CMenu::_VideoWidths[i].text));
|
||||||
m_btnMgr.setText(m_configLbl2Val, _t(CMenu::_privateServer[i].id, CMenu::_privateServer[i].text));
|
|
||||||
else
|
|
||||||
m_btnMgr.setText(m_configLbl2Val, custom_servers[i - 3]);//wstringEx()
|
|
||||||
}
|
}
|
||||||
else if(m_btnMgr.selected(m_configBtn3P) || m_btnMgr.selected(m_configBtn3M))
|
else if(m_btnMgr.selected(m_configBtn3P) || m_btnMgr.selected(m_configBtn3M))
|
||||||
{
|
{
|
||||||
@ -798,13 +820,18 @@ void CMenu::_configGame(const dir_discHdr *hdr, bool disc)
|
|||||||
_error(_t("dlmsg14", L"Done."));
|
_error(_t("dlmsg14", L"Done."));
|
||||||
_showConfigGame();
|
_showConfigGame();
|
||||||
}
|
}
|
||||||
else if(m_btnMgr.selected(m_configBtn2P) || m_btnMgr.selected(m_configBtn2M))
|
else if(m_btnMgr.selected(m_configBtn2P) || m_btnMgr.selected(m_configBtn2M))// wii u only
|
||||||
{
|
{
|
||||||
s8 direction = m_btnMgr.selected(m_configBtn2P) ? 1 : -1;
|
s8 direction = m_btnMgr.selected(m_configBtn2P) ? 1 : -1;
|
||||||
i = loopNum(m_gcfg2.getUInt(id, "widescreen_wiiu", 0) + direction, ARRAY_SIZE(CMenu::_WidescreenWiiu));
|
i = loopNum(m_gcfg2.getUInt(id, "widescreen_wiiu", 0) + direction, ARRAY_SIZE(CMenu::_WidescreenWiiu));
|
||||||
m_gcfg2.setInt(id, "widescreen_wiiu", i);
|
m_gcfg2.setInt(id, "widescreen_wiiu", i);
|
||||||
m_btnMgr.setText(m_configLbl2Val, _t(CMenu::_WidescreenWiiu[i].id, CMenu::_WidescreenWiiu[i].text));
|
m_btnMgr.setText(m_configLbl2Val, _t(CMenu::_WidescreenWiiu[i].id, CMenu::_WidescreenWiiu[i].text));
|
||||||
}
|
}
|
||||||
|
else if(m_btnMgr.selected(m_configBtn2))// wii only
|
||||||
|
{
|
||||||
|
m_gcfg2.setBool(id, "led", !m_gcfg2.getBool(id, "led", 0));
|
||||||
|
m_btnMgr.setText(m_configBtn2, _optBoolToString(m_gcfg2.getOptBool(id, "led", 0)));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -122,8 +122,7 @@ void CMenu::_showConfigMain()
|
|||||||
{
|
{
|
||||||
m_btnMgr.show(m_configLbl1);
|
m_btnMgr.show(m_configLbl1);
|
||||||
m_btnMgr.show(m_configLbl3);
|
m_btnMgr.show(m_configLbl3);
|
||||||
if(mainCfg_curPage != 14)
|
m_btnMgr.show(m_configLbl4);
|
||||||
m_btnMgr.show(m_configLbl4);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(mainCfg_curPage == 1)
|
if(mainCfg_curPage == 1)
|
||||||
@ -409,6 +408,9 @@ void CMenu::_showConfigMain()
|
|||||||
m_btnMgr.show(m_configLbl3Val);
|
m_btnMgr.show(m_configLbl3Val);
|
||||||
m_btnMgr.show(m_configBtn3M);
|
m_btnMgr.show(m_configBtn3M);
|
||||||
m_btnMgr.show(m_configBtn3P);
|
m_btnMgr.show(m_configBtn3P);
|
||||||
|
m_btnMgr.show(m_configLbl4Val);
|
||||||
|
m_btnMgr.show(m_configBtn4M);
|
||||||
|
m_btnMgr.show(m_configBtn4P);
|
||||||
m_btnMgr.setText(m_configLbl1, _t("cfg729", L"Use system proxy settings"));
|
m_btnMgr.setText(m_configLbl1, _t("cfg729", L"Use system proxy settings"));
|
||||||
m_btnMgr.setText(m_configBtn1, m_cfg.getBool("PROXY", "proxy_use_system") ? _t("on", L"On") : _t("off", L"Off"));
|
m_btnMgr.setText(m_configBtn1, m_cfg.getBool("PROXY", "proxy_use_system") ? _t("on", L"On") : _t("off", L"Off"));
|
||||||
m_btnMgr.setText(m_configLbl2, _t("cfg730", L"Always show main icons"));
|
m_btnMgr.setText(m_configLbl2, _t("cfg730", L"Always show main icons"));
|
||||||
@ -416,6 +418,9 @@ void CMenu::_showConfigMain()
|
|||||||
m_btnMgr.setText(m_configLbl3, _t("cfgg61", L"Deflicker Filter"));
|
m_btnMgr.setText(m_configLbl3, _t("cfgg61", L"Deflicker Filter"));
|
||||||
int i = min(max(0, m_cfg.getInt("GENERAL", "deflicker_wii", 0)), (int)ARRAY_SIZE(CMenu::_GlobalDeflickerOptions) - 1);
|
int i = min(max(0, m_cfg.getInt("GENERAL", "deflicker_wii", 0)), (int)ARRAY_SIZE(CMenu::_GlobalDeflickerOptions) - 1);
|
||||||
m_btnMgr.setText(m_configLbl3Val, _t(CMenu::_GlobalDeflickerOptions[i].id, CMenu::_GlobalDeflickerOptions[i].text));
|
m_btnMgr.setText(m_configLbl3Val, _t(CMenu::_GlobalDeflickerOptions[i].id, CMenu::_GlobalDeflickerOptions[i].text));
|
||||||
|
m_btnMgr.setText(m_configLbl4, _t("cfgg65", L"Video Width"));
|
||||||
|
i = min(max(0, m_cfg.getInt("GENERAL", "video_width", 0)), (int)ARRAY_SIZE(CMenu::_GlobalVideoWidths) - 1);
|
||||||
|
m_btnMgr.setText(m_configLbl4Val, _t(CMenu::_GlobalVideoWidths[i].id, CMenu::_GlobalVideoWidths[i].text));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -961,6 +966,13 @@ void CMenu::_configMain(void)
|
|||||||
int val = m_cfg.getInt("GENERAL", "deflicker_wii");
|
int val = m_cfg.getInt("GENERAL", "deflicker_wii");
|
||||||
m_btnMgr.setText(m_configLbl3Val, _t(CMenu::_GlobalDeflickerOptions[val].id, CMenu::_GlobalDeflickerOptions[val].text));
|
m_btnMgr.setText(m_configLbl3Val, _t(CMenu::_GlobalDeflickerOptions[val].id, CMenu::_GlobalDeflickerOptions[val].text));
|
||||||
}
|
}
|
||||||
|
else if(m_btnMgr.selected(m_configBtn4P) || m_btnMgr.selected(m_configBtn4M))
|
||||||
|
{
|
||||||
|
s8 direction = m_btnMgr.selected(m_configBtn4P) ? 1 : -1;
|
||||||
|
m_cfg.setInt("GENERAL", "video_width", loopNum(m_cfg.getUInt("GENERAL", "video_width") + direction, ARRAY_SIZE(CMenu::_GlobalVideoWidths)));
|
||||||
|
int val = m_cfg.getInt("GENERAL", "video_width");
|
||||||
|
m_btnMgr.setText(m_configLbl4Val, _t(CMenu::_GlobalVideoWidths[val].id, CMenu::_GlobalVideoWidths[val].text));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -861,6 +861,9 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
|
|||||||
u8 deflicker = min(m_gcfg2.getUInt(id, "deflicker_wii", 0), ARRAY_SIZE(CMenu::_DeflickerOptions) - 1u);
|
u8 deflicker = min(m_gcfg2.getUInt(id, "deflicker_wii", 0), ARRAY_SIZE(CMenu::_DeflickerOptions) - 1u);
|
||||||
deflicker = (deflicker == 0) ? min(m_cfg.getUInt("GENERAL", "deflicker_wii", 0), ARRAY_SIZE(CMenu::_GlobalDeflickerOptions) - 1u) : deflicker - 1;
|
deflicker = (deflicker == 0) ? min(m_cfg.getUInt("GENERAL", "deflicker_wii", 0), ARRAY_SIZE(CMenu::_GlobalDeflickerOptions) - 1u) : deflicker - 1;
|
||||||
|
|
||||||
|
u8 videoWidth = min(m_gcfg2.getUInt(id, "video_width", 0), ARRAY_SIZE(CMenu::_VideoWidths) - 1u);
|
||||||
|
videoWidth = (videoWidth == 0) ? min(m_cfg.getUInt("GENERAL", "video_width", 0), ARRAY_SIZE(CMenu::_GlobalVideoWidths) - 1u) : videoWidth-1;
|
||||||
|
|
||||||
u8 private_server = m_gcfg2.getUInt(id, "private_server", 0);
|
u8 private_server = m_gcfg2.getUInt(id, "private_server", 0);
|
||||||
string server_addr = "";
|
string server_addr = "";
|
||||||
if(private_server > 2)
|
if(private_server > 2)
|
||||||
@ -1010,7 +1013,7 @@ void CMenu::_launchChannel(dir_discHdr *hdr)
|
|||||||
|
|
||||||
ExternalBooter_ChannelSetup(gameTitle, use_dol);
|
ExternalBooter_ChannelSetup(gameTitle, use_dol);
|
||||||
WiiFlow_ExternalBooter(videoMode, vipatch, countryPatch, patchVidMode, aspectRatio, private_server, server_addr.c_str(),
|
WiiFlow_ExternalBooter(videoMode, vipatch, countryPatch, patchVidMode, aspectRatio, private_server, server_addr.c_str(),
|
||||||
fix480p, deflicker, 0, TYPE_CHANNEL, use_led);
|
videoWidth, fix480p, deflicker, 0, TYPE_CHANNEL, use_led);
|
||||||
|
|
||||||
Sys_Exit();
|
Sys_Exit();
|
||||||
}
|
}
|
||||||
@ -1116,6 +1119,9 @@ void CMenu::_launchWii(dir_discHdr *hdr, bool dvd, bool disc_cfg)
|
|||||||
u8 deflicker = min(m_gcfg2.getUInt(id, "deflicker_wii", 0), ARRAY_SIZE(CMenu::_DeflickerOptions) - 1u);
|
u8 deflicker = min(m_gcfg2.getUInt(id, "deflicker_wii", 0), ARRAY_SIZE(CMenu::_DeflickerOptions) - 1u);
|
||||||
deflicker = (deflicker == 0) ? min(m_cfg.getUInt("GENERAL", "deflicker_wii", 0), ARRAY_SIZE(CMenu::_GlobalDeflickerOptions) - 1u) : deflicker-1;
|
deflicker = (deflicker == 0) ? min(m_cfg.getUInt("GENERAL", "deflicker_wii", 0), ARRAY_SIZE(CMenu::_GlobalDeflickerOptions) - 1u) : deflicker-1;
|
||||||
|
|
||||||
|
u8 videoWidth = min(m_gcfg2.getUInt(id, "video_width", 0), ARRAY_SIZE(CMenu::_VideoWidths) - 1u);
|
||||||
|
videoWidth = (videoWidth == 0) ? min(m_cfg.getUInt("GENERAL", "video_width", 0), ARRAY_SIZE(CMenu::_GlobalVideoWidths) - 1u) : videoWidth-1;
|
||||||
|
|
||||||
u8 private_server = m_gcfg2.getUInt(id, "private_server", 0);
|
u8 private_server = m_gcfg2.getUInt(id, "private_server", 0);
|
||||||
string server_addr = "";
|
string server_addr = "";
|
||||||
if(private_server > 2)
|
if(private_server > 2)
|
||||||
@ -1331,7 +1337,7 @@ void CMenu::_launchWii(dir_discHdr *hdr, bool dvd, bool disc_cfg)
|
|||||||
|
|
||||||
ExternalBooter_WiiGameSetup(wbfs_partition, dvd, patchregion, id.c_str());
|
ExternalBooter_WiiGameSetup(wbfs_partition, dvd, patchregion, id.c_str());
|
||||||
WiiFlow_ExternalBooter(videoMode, vipatch, countryPatch, patchVidMode, aspectRatio, private_server, server_addr.c_str(),
|
WiiFlow_ExternalBooter(videoMode, vipatch, countryPatch, patchVidMode, aspectRatio, private_server, server_addr.c_str(),
|
||||||
fix480p, deflicker, returnTo, TYPE_WII_GAME, use_led);
|
videoWidth, fix480p, deflicker, returnTo, TYPE_WII_GAME, use_led);
|
||||||
|
|
||||||
Sys_Exit();
|
Sys_Exit();
|
||||||
}
|
}
|
||||||
|
@ -164,6 +164,7 @@ cfgg57=Não permitido para disco!
|
|||||||
cfgg58=Somente adultos
|
cfgg58=Somente adultos
|
||||||
cfgg59=Emulação BBA
|
cfgg59=Emulação BBA
|
||||||
cfgg60=Perfil BBA Net
|
cfgg60=Perfil BBA Net
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Patch strings de países
|
cfgg4=Patch strings de países
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -478,6 +479,9 @@ vmpall=Todas
|
|||||||
vmpmore=Mais
|
vmpmore=Mais
|
||||||
vmpnone=Nenhum
|
vmpnone=Nenhum
|
||||||
vmpnormal=Normal
|
vmpnormal=Normal
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=Instalar WAD
|
wad1=Instalar WAD
|
||||||
wad2=Ok
|
wad2=Ok
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -167,6 +167,7 @@ cfgg57=Niet toegestaan voor schijf!
|
|||||||
cfgg58=Alleen volwassenen
|
cfgg58=Alleen volwassenen
|
||||||
cfgg59=BBA-emulatie
|
cfgg59=BBA-emulatie
|
||||||
cfgg60=BBA Net Profile
|
cfgg60=BBA Net Profile
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Landinstellingenpatch
|
cfgg4=Landinstellingenpatch
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -483,6 +484,9 @@ vmpall=Alles
|
|||||||
vmpmore=Meer
|
vmpmore=Meer
|
||||||
vmpnone=Geen
|
vmpnone=Geen
|
||||||
vmpnormal=Normaal
|
vmpnormal=Normaal
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=WAD installeren
|
wad1=WAD installeren
|
||||||
wad2=Starten
|
wad2=Starten
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -169,6 +169,7 @@ cfgg61=Deflicker Filter
|
|||||||
cfgg62=Reload cached cover
|
cfgg62=Reload cached cover
|
||||||
cfgg63=Converting cover please wait...
|
cfgg63=Converting cover please wait...
|
||||||
cfgg64=Reset Settings to Defaults
|
cfgg64=Reset Settings to Defaults
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Patch country strings
|
cfgg4=Patch country strings
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -487,6 +488,9 @@ vmpall=All
|
|||||||
vmpmore=More
|
vmpmore=More
|
||||||
vmpnone=None
|
vmpnone=None
|
||||||
vmpnormal=Normal
|
vmpnormal=Normal
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=Install WAD
|
wad1=Install WAD
|
||||||
wad2=Go
|
wad2=Go
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -164,6 +164,7 @@ cfgg57=Non-Autorisé pour ce Disque!
|
|||||||
cfgg58=Résérvé aux Adultes
|
cfgg58=Résérvé aux Adultes
|
||||||
cfgg59=Emulation BBA
|
cfgg59=Emulation BBA
|
||||||
cfgg60=Profil Net BBA
|
cfgg60=Profil Net BBA
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Patcher Jeux Import
|
cfgg4=Patcher Jeux Import
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -469,6 +470,9 @@ vmpall=Tout
|
|||||||
vmpmore=Plus
|
vmpmore=Plus
|
||||||
vmpnone=Aucun
|
vmpnone=Aucun
|
||||||
vmpnormal=Normal
|
vmpnormal=Normal
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=Installer WAD
|
wad1=Installer WAD
|
||||||
wad2=Aller
|
wad2=Aller
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -168,6 +168,7 @@ cfgg58=Nur für Erwachsene
|
|||||||
cfgg59=BBA-Emulation
|
cfgg59=BBA-Emulation
|
||||||
cfgg60=BBA-Netzprofil
|
cfgg60=BBA-Netzprofil
|
||||||
cfgg61=Entflimmer-Filter
|
cfgg61=Entflimmer-Filter
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Länder-Strings patchen
|
cfgg4=Länder-Strings patchen
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -500,6 +501,9 @@ vmpall=Alle
|
|||||||
vmpmore=Mehr
|
vmpmore=Mehr
|
||||||
vmpnone=Keinen
|
vmpnone=Keinen
|
||||||
vmpnormal=Normal
|
vmpnormal=Normal
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=WAD Installieren
|
wad1=WAD Installieren
|
||||||
wad2=Start
|
wad2=Start
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -160,6 +160,7 @@ cfgg57=Non consentito per i dischi!
|
|||||||
cfgg58=solo adulti
|
cfgg58=solo adulti
|
||||||
cfgg59=Emulazione BBA
|
cfgg59=Emulazione BBA
|
||||||
cfgg60=BBA Profilo di Rete
|
cfgg60=BBA Profilo di Rete
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg7=Vipatch
|
cfgg7=Vipatch
|
||||||
cfgg8=Indietro
|
cfgg8=Indietro
|
||||||
cfghb1=Impostazioni Homebrew
|
cfghb1=Impostazioni Homebrew
|
||||||
@ -462,6 +463,9 @@ vmpall=Tutte
|
|||||||
vmpmore=Di più
|
vmpmore=Di più
|
||||||
vmpnone=Nessuna
|
vmpnone=Nessuna
|
||||||
vmpnormal=Normale
|
vmpnormal=Normale
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=Installa WAD
|
wad1=Installa WAD
|
||||||
wad2=Avvia
|
wad2=Avvia
|
||||||
wad3=Selezionato %s, dopo l'installazione ritornerai all'explorer
|
wad3=Selezionato %s, dopo l'installazione ritornerai all'explorer
|
||||||
|
@ -168,6 +168,7 @@ cfgg58=성인용
|
|||||||
cfgg59=BBA 에뮬레이션
|
cfgg59=BBA 에뮬레이션
|
||||||
cfgg60=BBA 넷 프로파일
|
cfgg60=BBA 넷 프로파일
|
||||||
cfgg61=디플리커 필터
|
cfgg61=디플리커 필터
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=국가 문자열 패치
|
cfgg4=국가 문자열 패치
|
||||||
cfgg5=오카리나
|
cfgg5=오카리나
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -491,6 +492,9 @@ vmpall=모두
|
|||||||
vmpmore=더 많은
|
vmpmore=더 많은
|
||||||
vmpnone=없음
|
vmpnone=없음
|
||||||
vmpnormal=보통
|
vmpnormal=보통
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=WAD 설치
|
wad1=WAD 설치
|
||||||
wad2=가기
|
wad2=가기
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -167,6 +167,7 @@ cfgg57=Niedozwolone przez płytę!
|
|||||||
cfgg58=Ustaw znacznik tylko dla dorosłych
|
cfgg58=Ustaw znacznik tylko dla dorosłych
|
||||||
cfgg59=Emulacja BBA
|
cfgg59=Emulacja BBA
|
||||||
cfgg60=Profil Net BBA
|
cfgg60=Profil Net BBA
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Spatchuj ustawienia kraju
|
cfgg4=Spatchuj ustawienia kraju
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -481,6 +482,9 @@ vmpall=Wszystkie
|
|||||||
vmpmore=Więcej
|
vmpmore=Więcej
|
||||||
vmpnone=Żadne
|
vmpnone=Żadne
|
||||||
vmpnormal=Normal
|
vmpnormal=Normal
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=Zainstaluj plik WAD
|
wad1=Zainstaluj plik WAD
|
||||||
wad2=Rozpocznij
|
wad2=Rozpocznij
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -169,6 +169,7 @@ cfgg61=Фильтр подавления мерцания
|
|||||||
cfgg62=Перезагрузить кэшированную обложку
|
cfgg62=Перезагрузить кэшированную обложку
|
||||||
cfgg63=Конвертирование обложки, подождите...
|
cfgg63=Конвертирование обложки, подождите...
|
||||||
cfgg64=Сбросить настройки до значений по умолчанию
|
cfgg64=Сбросить настройки до значений по умолчанию
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Патч Country Strings
|
cfgg4=Патч Country Strings
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -487,6 +488,9 @@ vmpall=Все
|
|||||||
vmpmore=Больше
|
vmpmore=Больше
|
||||||
vmpnone=Отсутствует
|
vmpnone=Отсутствует
|
||||||
vmpnormal=Обычное
|
vmpnormal=Обычное
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=Установить WAD
|
wad1=Установить WAD
|
||||||
wad2=Перейти
|
wad2=Перейти
|
||||||
wad3=
|
wad3=
|
||||||
|
@ -165,6 +165,7 @@ cfgg58=Solo para adultos
|
|||||||
cfgg59=Emulación BBA
|
cfgg59=Emulación BBA
|
||||||
cfgg60=Perfil de red BBA
|
cfgg60=Perfil de red BBA
|
||||||
cfgg61=Filtro Antiparpadeo de video
|
cfgg61=Filtro Antiparpadeo de video
|
||||||
|
cfgg65=Video Width
|
||||||
cfgg4=Parchar cadenas de país
|
cfgg4=Parchar cadenas de país
|
||||||
cfgg5=Ocarina
|
cfgg5=Ocarina
|
||||||
cfgg6=
|
cfgg6=
|
||||||
@ -480,6 +481,9 @@ vmpall=Todos
|
|||||||
vmpmore=Más
|
vmpmore=Más
|
||||||
vmpnone=Ninguno
|
vmpnone=Ninguno
|
||||||
vmpnormal=Normal
|
vmpnormal=Normal
|
||||||
|
vw_auto=Auto
|
||||||
|
vw_def=Default
|
||||||
|
vw_frmbuf=Framebuffer
|
||||||
wad1=Instalar WAD
|
wad1=Instalar WAD
|
||||||
wad2=Empezar
|
wad2=Empezar
|
||||||
wad3=
|
wad3=
|
||||||
|
Loading…
Reference in New Issue
Block a user