GameCube Config: Add option to override the NTSC auto language change.
Some NTSC games have translations on the game disc that can be accessed via the system language byte.
This commit is contained in:
parent
ffe25da78a
commit
33f5aaf956
|
@ -186,7 +186,7 @@ bool BootCore(const std::string& _rFilename)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Some NTSC GameCube games such as Baten Kaitos react strangely to language settings that would be invalid on an NTSC system
|
// Some NTSC GameCube games such as Baten Kaitos react strangely to language settings that would be invalid on an NTSC system
|
||||||
if (StartUp.bNTSC)
|
if (!StartUp.bOverrideGCLanguage && StartUp.bNTSC)
|
||||||
{
|
{
|
||||||
StartUp.SelectedLanguage = 0;
|
StartUp.SelectedLanguage = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -191,6 +191,7 @@ void SConfig::SaveCoreSettings(IniFile& ini)
|
||||||
core->Set("Apploader", m_LocalCoreStartupParameter.m_strApploader);
|
core->Set("Apploader", m_LocalCoreStartupParameter.m_strApploader);
|
||||||
core->Set("EnableCheats", m_LocalCoreStartupParameter.bEnableCheats);
|
core->Set("EnableCheats", m_LocalCoreStartupParameter.bEnableCheats);
|
||||||
core->Set("SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage);
|
core->Set("SelectedLanguage", m_LocalCoreStartupParameter.SelectedLanguage);
|
||||||
|
core->Set("OverrideGCLang", m_LocalCoreStartupParameter.bOverrideGCLanguage);
|
||||||
core->Set("DPL2Decoder", m_LocalCoreStartupParameter.bDPL2Decoder);
|
core->Set("DPL2Decoder", m_LocalCoreStartupParameter.bDPL2Decoder);
|
||||||
core->Set("Latency", m_LocalCoreStartupParameter.iLatency);
|
core->Set("Latency", m_LocalCoreStartupParameter.iLatency);
|
||||||
core->Set("MemcardAPath", m_strMemoryCardA);
|
core->Set("MemcardAPath", m_strMemoryCardA);
|
||||||
|
@ -437,6 +438,7 @@ void SConfig::LoadCoreSettings(IniFile& ini)
|
||||||
core->Get("Apploader", &m_LocalCoreStartupParameter.m_strApploader);
|
core->Get("Apploader", &m_LocalCoreStartupParameter.m_strApploader);
|
||||||
core->Get("EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false);
|
core->Get("EnableCheats", &m_LocalCoreStartupParameter.bEnableCheats, false);
|
||||||
core->Get("SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0);
|
core->Get("SelectedLanguage", &m_LocalCoreStartupParameter.SelectedLanguage, 0);
|
||||||
|
core->Get("OverrideGCLang", &m_LocalCoreStartupParameter.bOverrideGCLanguage, false);
|
||||||
core->Get("DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, false);
|
core->Get("DPL2Decoder", &m_LocalCoreStartupParameter.bDPL2Decoder, false);
|
||||||
core->Get("Latency", &m_LocalCoreStartupParameter.iLatency, 2);
|
core->Get("Latency", &m_LocalCoreStartupParameter.iLatency, 2);
|
||||||
core->Get("MemcardAPath", &m_strMemoryCardA);
|
core->Get("MemcardAPath", &m_strMemoryCardA);
|
||||||
|
|
|
@ -43,7 +43,7 @@ SCoreStartupParameter::SCoreStartupParameter()
|
||||||
bMMU(false), bDCBZOFF(false),
|
bMMU(false), bDCBZOFF(false),
|
||||||
iBBDumpPort(0),
|
iBBDumpPort(0),
|
||||||
bFastDiscSpeed(false), bSyncGPU(false),
|
bFastDiscSpeed(false), bSyncGPU(false),
|
||||||
SelectedLanguage(0), bWii(false),
|
SelectedLanguage(0), bOverrideGCLanguage(false), bWii(false),
|
||||||
bConfirmStop(false), bHideCursor(false),
|
bConfirmStop(false), bHideCursor(false),
|
||||||
bAutoHideCursor(false), bUsePanicHandlers(true), bOnScreenDisplayMessages(true),
|
bAutoHideCursor(false), bUsePanicHandlers(true), bOnScreenDisplayMessages(true),
|
||||||
iRenderWindowXPos(-1), iRenderWindowYPos(-1),
|
iRenderWindowXPos(-1), iRenderWindowYPos(-1),
|
||||||
|
@ -86,6 +86,7 @@ void SCoreStartupParameter::LoadDefaults()
|
||||||
bFastDiscSpeed = false;
|
bFastDiscSpeed = false;
|
||||||
bEnableMemcardSaving = true;
|
bEnableMemcardSaving = true;
|
||||||
SelectedLanguage = 0;
|
SelectedLanguage = 0;
|
||||||
|
bOverrideGCLanguage = false;
|
||||||
bWii = false;
|
bWii = false;
|
||||||
bDPL2Decoder = false;
|
bDPL2Decoder = false;
|
||||||
iLatency = 14;
|
iLatency = 14;
|
||||||
|
|
|
@ -193,6 +193,7 @@ struct SCoreStartupParameter
|
||||||
float fSyncGpuOverclock;
|
float fSyncGpuOverclock;
|
||||||
|
|
||||||
int SelectedLanguage;
|
int SelectedLanguage;
|
||||||
|
bool bOverrideGCLanguage;
|
||||||
|
|
||||||
bool bWii;
|
bool bWii;
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,10 @@ void GameCubeConfigPane::InitializeGUI()
|
||||||
m_system_lang_choice->SetToolTip(_("Sets the GameCube system language."));
|
m_system_lang_choice->SetToolTip(_("Sets the GameCube system language."));
|
||||||
m_system_lang_choice->Bind(wxEVT_CHOICE, &GameCubeConfigPane::OnSystemLanguageChange, this);
|
m_system_lang_choice->Bind(wxEVT_CHOICE, &GameCubeConfigPane::OnSystemLanguageChange, this);
|
||||||
|
|
||||||
|
m_override_lang_checkbox = new wxCheckBox(this, wxID_ANY, _("Override Language on NTSC Games"));
|
||||||
|
m_override_lang_checkbox->SetToolTip(_("Lets the system language be set to values that games were not designed for. This can allow the use of extra translations for a few games, but can also lead to text display issues."));
|
||||||
|
m_override_lang_checkbox->Bind(wxEVT_CHECKBOX, &GameCubeConfigPane::OnOverrideLanguageCheckBoxChanged, this);
|
||||||
|
|
||||||
m_skip_bios_checkbox = new wxCheckBox(this, wxID_ANY, _("Skip BIOS"));
|
m_skip_bios_checkbox = new wxCheckBox(this, wxID_ANY, _("Skip BIOS"));
|
||||||
m_skip_bios_checkbox->Bind(wxEVT_CHECKBOX, &GameCubeConfigPane::OnSkipBiosCheckBoxChanged, this);
|
m_skip_bios_checkbox->Bind(wxEVT_CHECKBOX, &GameCubeConfigPane::OnSkipBiosCheckBoxChanged, this);
|
||||||
|
|
||||||
|
@ -96,6 +100,7 @@ void GameCubeConfigPane::InitializeGUI()
|
||||||
sGamecubeIPLSettings->Add(new wxStaticText(this, wxID_ANY, _("System Language:")),
|
sGamecubeIPLSettings->Add(new wxStaticText(this, wxID_ANY, _("System Language:")),
|
||||||
wxGBPosition(1, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT | wxBOTTOM, 5);
|
wxGBPosition(1, 0), wxDefaultSpan, wxALIGN_CENTER_VERTICAL | wxLEFT | wxRIGHT | wxBOTTOM, 5);
|
||||||
sGamecubeIPLSettings->Add(m_system_lang_choice, wxGBPosition(1, 1), wxDefaultSpan, wxLEFT | wxRIGHT | wxBOTTOM, 5);
|
sGamecubeIPLSettings->Add(m_system_lang_choice, wxGBPosition(1, 1), wxDefaultSpan, wxLEFT | wxRIGHT | wxBOTTOM, 5);
|
||||||
|
sGamecubeIPLSettings->Add(m_override_lang_checkbox, wxGBPosition(2, 0), wxGBSpan(1, 2), wxALL, 5);
|
||||||
|
|
||||||
wxStaticBoxSizer* const sbGamecubeIPLSettings = new wxStaticBoxSizer(wxVERTICAL, this, _("IPL Settings"));
|
wxStaticBoxSizer* const sbGamecubeIPLSettings = new wxStaticBoxSizer(wxVERTICAL, this, _("IPL Settings"));
|
||||||
sbGamecubeIPLSettings->Add(sGamecubeIPLSettings);
|
sbGamecubeIPLSettings->Add(sGamecubeIPLSettings);
|
||||||
|
@ -128,6 +133,7 @@ void GameCubeConfigPane::LoadGUIValues()
|
||||||
|
|
||||||
m_system_lang_choice->SetSelection(startup_params.SelectedLanguage);
|
m_system_lang_choice->SetSelection(startup_params.SelectedLanguage);
|
||||||
m_skip_bios_checkbox->SetValue(startup_params.bHLE_BS2);
|
m_skip_bios_checkbox->SetValue(startup_params.bHLE_BS2);
|
||||||
|
m_override_lang_checkbox->SetValue(startup_params.bOverrideGCLanguage);
|
||||||
|
|
||||||
wxArrayString slot_devices;
|
wxArrayString slot_devices;
|
||||||
slot_devices.Add(_(DEV_NONE_STR));
|
slot_devices.Add(_(DEV_NONE_STR));
|
||||||
|
@ -199,6 +205,7 @@ void GameCubeConfigPane::RefreshGUI()
|
||||||
if (Core::IsRunning())
|
if (Core::IsRunning())
|
||||||
{
|
{
|
||||||
m_system_lang_choice->Disable();
|
m_system_lang_choice->Disable();
|
||||||
|
m_override_lang_checkbox->Disable();
|
||||||
m_skip_bios_checkbox->Disable();
|
m_skip_bios_checkbox->Disable();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -210,6 +217,13 @@ void GameCubeConfigPane::OnSystemLanguageChange(wxCommandEvent& event)
|
||||||
AddPendingEvent(wxCommandEvent(wxDOLPHIN_CFG_REFRESH_LIST));
|
AddPendingEvent(wxCommandEvent(wxDOLPHIN_CFG_REFRESH_LIST));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GameCubeConfigPane::OnOverrideLanguageCheckBoxChanged(wxCommandEvent& event)
|
||||||
|
{
|
||||||
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bOverrideGCLanguage = m_override_lang_checkbox->IsChecked();
|
||||||
|
|
||||||
|
AddPendingEvent(wxCommandEvent(wxDOLPHIN_CFG_REFRESH_LIST));
|
||||||
|
}
|
||||||
|
|
||||||
void GameCubeConfigPane::OnSkipBiosCheckBoxChanged(wxCommandEvent& event)
|
void GameCubeConfigPane::OnSkipBiosCheckBoxChanged(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
SConfig::GetInstance().m_LocalCoreStartupParameter.bHLE_BS2 = m_skip_bios_checkbox->IsChecked();
|
SConfig::GetInstance().m_LocalCoreStartupParameter.bHLE_BS2 = m_skip_bios_checkbox->IsChecked();
|
||||||
|
|
|
@ -23,6 +23,7 @@ private:
|
||||||
void RefreshGUI();
|
void RefreshGUI();
|
||||||
|
|
||||||
void OnSystemLanguageChange(wxCommandEvent&);
|
void OnSystemLanguageChange(wxCommandEvent&);
|
||||||
|
void OnOverrideLanguageCheckBoxChanged(wxCommandEvent&);
|
||||||
void OnSkipBiosCheckBoxChanged(wxCommandEvent&);
|
void OnSkipBiosCheckBoxChanged(wxCommandEvent&);
|
||||||
void OnSlotAChanged(wxCommandEvent&);
|
void OnSlotAChanged(wxCommandEvent&);
|
||||||
void OnSlotBChanged(wxCommandEvent&);
|
void OnSlotBChanged(wxCommandEvent&);
|
||||||
|
@ -36,6 +37,7 @@ private:
|
||||||
wxArrayString m_ipl_language_strings;
|
wxArrayString m_ipl_language_strings;
|
||||||
|
|
||||||
wxChoice* m_system_lang_choice;
|
wxChoice* m_system_lang_choice;
|
||||||
|
wxCheckBox* m_override_lang_checkbox;
|
||||||
wxCheckBox* m_skip_bios_checkbox;
|
wxCheckBox* m_skip_bios_checkbox;
|
||||||
wxChoice* m_exi_devices[3];
|
wxChoice* m_exi_devices[3];
|
||||||
wxButton* m_memcard_path[2];
|
wxButton* m_memcard_path[2];
|
||||||
|
|
Loading…
Reference in New Issue