mirror of
https://github.com/wiidev/usbloadergx.git
synced 2024-11-22 11:19:17 +01:00
Support Devolution's progressive patching
This commit is contained in:
parent
8e22fbe8e5
commit
aeb48e4cce
@ -20,7 +20,7 @@
|
|||||||
#define LAUNCH_DEVO() ((void(*)(void))loader_bin)()
|
#define LAUNCH_DEVO() ((void(*)(void))loader_bin)()
|
||||||
|
|
||||||
#define DEVO_SIG 0x3EF9DB23
|
#define DEVO_SIG 0x3EF9DB23
|
||||||
#define DEVO_CONFIG_VERSION 0x0200
|
#define DEVO_CONFIG_VERSION 0x0201
|
||||||
|
|
||||||
enum DEVOConfig
|
enum DEVOConfig
|
||||||
{
|
{
|
||||||
@ -33,6 +33,8 @@ enum DEVOConfig
|
|||||||
DEVO_CFG_CROP_OVERSCAN = (1<<6), // added in Devo r234, config version 0x0200
|
DEVO_CFG_CROP_OVERSCAN = (1<<6), // added in Devo r234, config version 0x0200
|
||||||
DEVO_CFG_DISC_DELAY = (1<<7),
|
DEVO_CFG_DISC_DELAY = (1<<7),
|
||||||
DEVO_CFG_PLAYLOG = (1<<8),
|
DEVO_CFG_PLAYLOG = (1<<8),
|
||||||
|
DEVO_CFG_FORCE_480P = (1<<9), // probably added in Devo r266, config version 0x0201
|
||||||
|
DEVO_CFG_FORCE_576P = (1<<10),
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct _DEVO_CFG
|
typedef struct _DEVO_CFG
|
||||||
|
@ -226,6 +226,7 @@ void GCGameLoadSM::SetOptionNames()
|
|||||||
Options->SetName(Idx++, "%s", tr( "D Buttons" ));
|
Options->SetName(Idx++, "%s", tr( "D Buttons" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Crop Overscan" ));
|
Options->SetName(Idx++, "%s", tr( "Crop Overscan" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Disc Read Delay" ));
|
Options->SetName(Idx++, "%s", tr( "Disc Read Delay" ));
|
||||||
|
Options->SetName(Idx++, "%s", tr( "Progressive Patch" ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -555,6 +556,12 @@ void GCGameLoadSM::SetOptionValues()
|
|||||||
else
|
else
|
||||||
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.DEVODiscDelay]));
|
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.DEVODiscDelay]));
|
||||||
|
|
||||||
|
//! Settings: DML + NIN + Devo Progressive Patch
|
||||||
|
if(GameConfig.DMLProgPatch == INHERIT)
|
||||||
|
Options->SetValue(Idx++, tr("Use global"));
|
||||||
|
else
|
||||||
|
Options->SetValue(Idx++, "%s", tr(OnOffText[GameConfig.DMLProgPatch]));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -949,6 +956,12 @@ int GCGameLoadSM::GetMenuInternal()
|
|||||||
if (++GameConfig.DEVODiscDelay >= MAX_ON_OFF) GameConfig.DEVODiscDelay = INHERIT;
|
if (++GameConfig.DEVODiscDelay >= MAX_ON_OFF) GameConfig.DEVODiscDelay = INHERIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! Settings: DEVO Progressive Patch
|
||||||
|
else if (currentGCmode == GC_MODE_DEVOLUTION && ret == ++Idx)
|
||||||
|
{
|
||||||
|
if (++GameConfig.DMLProgPatch >= MAX_ON_OFF) GameConfig.DMLProgPatch = INHERIT;
|
||||||
|
}
|
||||||
|
|
||||||
SetOptionValues();
|
SetOptionValues();
|
||||||
|
|
||||||
return MENU_NONE;
|
return MENU_NONE;
|
||||||
|
@ -267,9 +267,9 @@ void LoaderSettings::SetOptionNames()
|
|||||||
Options->SetName(Idx++, "%s", tr( "=== GameCube Settings" ));
|
Options->SetName(Idx++, "%s", tr( "=== GameCube Settings" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "GameCube Source" ));
|
Options->SetName(Idx++, "%s", tr( "GameCube Source" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "GameCube Mode" ));
|
Options->SetName(Idx++, "%s", tr( "GameCube Mode" ));
|
||||||
|
Options->SetName(Idx++, "%s", tr( "Progressive Patch" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "--== DM(L) + Nintendont" ));
|
Options->SetName(Idx++, "%s", tr( "--== DM(L) + Nintendont" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Video Mode" ));
|
Options->SetName(Idx++, "%s", tr( "Video Mode" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Progressive Patch" ));
|
|
||||||
Options->SetName(Idx++, "%s", tr( "Force Widescreen" ));
|
Options->SetName(Idx++, "%s", tr( "Force Widescreen" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Debug" ));
|
Options->SetName(Idx++, "%s", tr( "Debug" ));
|
||||||
Options->SetName(Idx++, "%s", tr( "Disc-Select Prompt" ));
|
Options->SetName(Idx++, "%s", tr( "Disc-Select Prompt" ));
|
||||||
@ -413,15 +413,15 @@ void LoaderSettings::SetOptionValues()
|
|||||||
//! Settings: GameCube Mode
|
//! Settings: GameCube Mode
|
||||||
Options->SetValue(Idx++, "%s", tr(GCMode[Settings.GameCubeMode]));
|
Options->SetValue(Idx++, "%s", tr(GCMode[Settings.GameCubeMode]));
|
||||||
|
|
||||||
|
//! Settings: DML + NIN + Devo Progressive Patch
|
||||||
|
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.DMLProgPatch]));
|
||||||
|
|
||||||
//! Settings: TITLE - GameCube DIOS MIOS (Lite) + Nintendont
|
//! Settings: TITLE - GameCube DIOS MIOS (Lite) + Nintendont
|
||||||
Options->SetValue(Idx++, "==-- ");
|
Options->SetValue(Idx++, "==-- ");
|
||||||
|
|
||||||
//! Settings: DML + NIN Video Mode
|
//! Settings: DML + NIN Video Mode
|
||||||
Options->SetValue(Idx++, "%s", tr(DMLVideoText[Settings.DMLVideo]));
|
Options->SetValue(Idx++, "%s", tr(DMLVideoText[Settings.DMLVideo]));
|
||||||
|
|
||||||
//! Settings: DML + NIN Progressive Patch
|
|
||||||
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.DMLProgPatch]));
|
|
||||||
|
|
||||||
//! Settings: DML + NIN Force Widescreen
|
//! Settings: DML + NIN Force Widescreen
|
||||||
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.DMLWidescreen]));
|
Options->SetValue(Idx++, "%s", tr(OnOffText[Settings.DMLWidescreen]));
|
||||||
|
|
||||||
@ -777,6 +777,12 @@ int LoaderSettings::GetMenuInternal()
|
|||||||
if (++Settings.GameCubeMode >= CG_MODE_MAX_CHOICE) Settings.GameCubeMode = 0;
|
if (++Settings.GameCubeMode >= CG_MODE_MAX_CHOICE) Settings.GameCubeMode = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//! Settings: DML + NIN + Devo Progressive Patch
|
||||||
|
else if (ret == ++Idx)
|
||||||
|
{
|
||||||
|
if (++Settings.DMLProgPatch >= MAX_ON_OFF) Settings.DMLProgPatch = 0;
|
||||||
|
}
|
||||||
|
|
||||||
//! Settings: TITLE - GameCube DM(L) + Nintendont
|
//! Settings: TITLE - GameCube DM(L) + Nintendont
|
||||||
else if (ret == ++Idx)
|
else if (ret == ++Idx)
|
||||||
{
|
{
|
||||||
@ -792,12 +798,6 @@ int LoaderSettings::GetMenuInternal()
|
|||||||
if(Settings.DMLVideo >= DML_VIDEO_MAX_CHOICE) Settings.DMLVideo = 0;
|
if(Settings.DMLVideo >= DML_VIDEO_MAX_CHOICE) Settings.DMLVideo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
//! Settings: DML + NIN Progressive Patch
|
|
||||||
else if (ret == ++Idx)
|
|
||||||
{
|
|
||||||
if (++Settings.DMLProgPatch >= MAX_ON_OFF) Settings.DMLProgPatch = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
//! Settings: DML + NIN Force Widescreen
|
//! Settings: DML + NIN Force Widescreen
|
||||||
else if (ret == ++Idx)
|
else if (ret == ++Idx)
|
||||||
{
|
{
|
||||||
|
@ -810,6 +810,7 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
|||||||
|
|
||||||
GameCFG * game_cfg = GameSettings.GetGameCFG(gameHdr->id);
|
GameCFG * game_cfg = GameSettings.GetGameCFG(gameHdr->id);
|
||||||
s8 languageChoice = game_cfg->language == INHERIT ? Settings.language -1 : game_cfg->language;
|
s8 languageChoice = game_cfg->language == INHERIT ? Settings.language -1 : game_cfg->language;
|
||||||
|
u8 devoProgressivePatch = game_cfg->DMLProgPatch == INHERIT ? Settings.DMLProgPatch : game_cfg->DMLProgPatch;
|
||||||
u8 devoMCEmulation = game_cfg->DEVOMCEmulation == INHERIT ? Settings.DEVOMCEmulation : game_cfg->DEVOMCEmulation;
|
u8 devoMCEmulation = game_cfg->DEVOMCEmulation == INHERIT ? Settings.DEVOMCEmulation : game_cfg->DEVOMCEmulation;
|
||||||
u8 devoActivityLEDChoice = game_cfg->DEVOActivityLED == INHERIT ? Settings.DEVOActivityLED : game_cfg->DEVOActivityLED;
|
u8 devoActivityLEDChoice = game_cfg->DEVOActivityLED == INHERIT ? Settings.DEVOActivityLED : game_cfg->DEVOActivityLED;
|
||||||
u8 devoWidescreenChoice = game_cfg->DEVOWidescreen == INHERIT ? Settings.DEVOWidescreen : game_cfg->DEVOWidescreen;
|
u8 devoWidescreenChoice = game_cfg->DEVOWidescreen == INHERIT ? Settings.DEVOWidescreen : game_cfg->DEVOWidescreen;
|
||||||
@ -944,6 +945,11 @@ int GameBooter::BootDevolution(struct discHdr *gameHdr)
|
|||||||
if (devoDiscDelayChoice && DEVO_version >= 234)
|
if (devoDiscDelayChoice && DEVO_version >= 234)
|
||||||
devo_config->options |= DEVO_CFG_DISC_DELAY;
|
devo_config->options |= DEVO_CFG_DISC_DELAY;
|
||||||
// devo_config->options |= DEVO_CFG_PLAYLOG; // Playlog setting managed by USBLoaderGX features menu
|
// devo_config->options |= DEVO_CFG_PLAYLOG; // Playlog setting managed by USBLoaderGX features menu
|
||||||
|
if (devoProgressivePatch && DEVO_version >= 266)
|
||||||
|
{
|
||||||
|
devo_config->options |= DEVO_CFG_FORCE_480P;
|
||||||
|
devo_config->options |= DEVO_CFG_FORCE_576P;
|
||||||
|
}
|
||||||
|
|
||||||
// check memory card
|
// check memory card
|
||||||
if(devoMCEmulation == DEVO_MC_OFF)
|
if(devoMCEmulation == DEVO_MC_OFF)
|
||||||
|
Loading…
Reference in New Issue
Block a user