Fix issue 1523, disable x64 path on Jit64::lXz causing issue 615, and revert the FPU change from r4441, as it's causing weird issues in SSBM
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4522 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
1c95100eb1
commit
07408d7625
|
@ -88,11 +88,9 @@ inline double ForceSingle(double _x)
|
||||||
if (FPSCR.NI)
|
if (FPSCR.NI)
|
||||||
_x = FlushToZeroAsFloat(_x);
|
_x = FlushToZeroAsFloat(_x);
|
||||||
|
|
||||||
IntDouble single;
|
double x = static_cast<float>(_x);
|
||||||
single.d = _x;
|
|
||||||
single.i &= 0xFFFFFFFFE0000000ULL;
|
|
||||||
|
|
||||||
return single.d;
|
return x;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline double ForceDouble(double d)
|
inline double ForceDouble(double d)
|
||||||
|
|
|
@ -193,7 +193,7 @@ void Jit64::lXz(UGeckoInstruction inst)
|
||||||
}
|
}
|
||||||
|
|
||||||
//Still here? Do regular path.
|
//Still here? Do regular path.
|
||||||
#if defined(_M_X64)
|
#if defined(_M_X64) && 0 // This is disabled, it's unaccurate
|
||||||
if (accessSize == 8 || accessSize == 16 || !jo.enableFastMem) {
|
if (accessSize == 8 || accessSize == 16 || !jo.enableFastMem) {
|
||||||
#else
|
#else
|
||||||
if (true) {
|
if (true) {
|
||||||
|
@ -210,7 +210,7 @@ void Jit64::lXz(UGeckoInstruction inst)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fast and daring
|
// Fast and daring/failing
|
||||||
gpr.Lock(a, d);
|
gpr.Lock(a, d);
|
||||||
gpr.LoadToX64(a, true, false);
|
gpr.LoadToX64(a, true, false);
|
||||||
gpr.LoadToX64(d, a == d, true);
|
gpr.LoadToX64(d, a == d, true);
|
||||||
|
|
|
@ -53,17 +53,21 @@ void CARCodeAddEdit::CreateGUIControls(int _selection)
|
||||||
}
|
}
|
||||||
|
|
||||||
wxBoxSizer* sEditCheat = new wxBoxSizer(wxVERTICAL);
|
wxBoxSizer* sEditCheat = new wxBoxSizer(wxVERTICAL);
|
||||||
|
wxBoxSizer* sEditCheatButtons = new wxBoxSizer(wxHORIZONTAL);
|
||||||
wxStaticBoxSizer* sbEntry = new wxStaticBoxSizer(wxVERTICAL, this, _("Cheat Code"));
|
wxStaticBoxSizer* sbEntry = new wxStaticBoxSizer(wxVERTICAL, this, _("Cheat Code"));
|
||||||
|
wxGridBagSizer* sgEntry = new wxGridBagSizer(0, 0);
|
||||||
|
|
||||||
wxStaticText* EditCheatNameText = new wxStaticText(this, ID_EDITCHEAT_NAME_TEXT, _("Name:"), wxDefaultPosition, wxDefaultSize);
|
wxStaticText* EditCheatNameText = new wxStaticText(this, ID_EDITCHEAT_NAME_TEXT, _("Name:"), wxDefaultPosition, wxDefaultSize);
|
||||||
EditCheatName = new wxTextCtrl(this, ID_EDITCHEAT_NAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
|
EditCheatName = new wxTextCtrl(this, ID_EDITCHEAT_NAME, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
|
||||||
EditCheatName->SetValue(currentName);
|
EditCheatName->SetValue(currentName);
|
||||||
EntrySelection = new wxSpinButton(this, ID_ENTRY_SELECT, wxDefaultPosition, wxDefaultSize, wxVERTICAL);
|
EntrySelection = new wxSpinButton(this, ID_ENTRY_SELECT, wxDefaultPosition, wxDefaultSize, wxVERTICAL);
|
||||||
EntrySelection->SetRange(1, ((int)arCodes.size()) > 0 ? (int)arCodes.size() : 1);
|
EntrySelection->SetRange(1, ((int)arCodes.size()) > 0 ? (int)arCodes.size() : 1);
|
||||||
EntrySelection->SetValue((int)(arCodes.size() - _selection));
|
EntrySelection->SetValue((int)(arCodes.size() - _selection));
|
||||||
EditCheatCode = new wxTextCtrl(this, ID_EDITCHEAT_CODE, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE);
|
EditCheatCode = new wxTextCtrl(this, ID_EDITCHEAT_CODE, wxEmptyString, wxDefaultPosition, wxSize(300, 100), wxTE_MULTILINE);
|
||||||
UpdateTextCtrl(tempEntries);
|
UpdateTextCtrl(tempEntries);
|
||||||
|
wxButton* bOK = new wxButton(this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
wxButton* bCancel = new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
||||||
|
|
||||||
wxGridBagSizer* sgEntry = new wxGridBagSizer(0, 0);
|
|
||||||
sgEntry->AddGrowableCol(1);
|
sgEntry->AddGrowableCol(1);
|
||||||
sgEntry->AddGrowableRow(1);
|
sgEntry->AddGrowableRow(1);
|
||||||
sgEntry->Add(EditCheatNameText, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER|wxALL, 5);
|
sgEntry->Add(EditCheatNameText, wxGBPosition(0, 0), wxGBSpan(1, 1), wxALIGN_CENTER|wxALL, 5);
|
||||||
|
@ -71,16 +75,15 @@ void CARCodeAddEdit::CreateGUIControls(int _selection)
|
||||||
sgEntry->Add(EntrySelection, wxGBPosition(0, 2), wxGBSpan(2, 1), wxEXPAND|wxALL, 5);
|
sgEntry->Add(EntrySelection, wxGBPosition(0, 2), wxGBSpan(2, 1), wxEXPAND|wxALL, 5);
|
||||||
sgEntry->Add(EditCheatCode, wxGBPosition(1, 0), wxGBSpan(1, 2), wxEXPAND|wxALL, 5);
|
sgEntry->Add(EditCheatCode, wxGBPosition(1, 0), wxGBSpan(1, 2), wxEXPAND|wxALL, 5);
|
||||||
sbEntry->Add(sgEntry, 1, wxEXPAND|wxALL);
|
sbEntry->Add(sgEntry, 1, wxEXPAND|wxALL);
|
||||||
sEditCheat->Add(sbEntry, 1, wxEXPAND|wxALL, 5);
|
|
||||||
wxBoxSizer* sEditCheatButtons = new wxBoxSizer(wxHORIZONTAL);
|
sEditCheatButtons->AddStretchSpacer();
|
||||||
wxButton* bOK = new wxButton(this, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
|
||||||
wxButton* bCancel = new wxButton(this, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
|
||||||
sEditCheatButtons->Add(0, 0, 1, wxEXPAND, 5);
|
|
||||||
sEditCheatButtons->Add(bOK, 0, wxALL, 5);
|
sEditCheatButtons->Add(bOK, 0, wxALL, 5);
|
||||||
sEditCheatButtons->Add(bCancel, 0, wxALL, 5);
|
sEditCheatButtons->Add(bCancel, 0, wxALL, 5);
|
||||||
|
|
||||||
|
sEditCheat->Add(sbEntry, 1, wxEXPAND|wxALL, 5);
|
||||||
sEditCheat->Add(sEditCheatButtons, 0, wxEXPAND, 5);
|
sEditCheat->Add(sEditCheatButtons, 0, wxEXPAND, 5);
|
||||||
this->SetSizer(sEditCheat);
|
|
||||||
sEditCheat->Layout();
|
SetSizerAndFit(sEditCheat);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CARCodeAddEdit::OnClose(wxCloseEvent& WXUNUSED (event))
|
void CARCodeAddEdit::OnClose(wxCloseEvent& WXUNUSED (event))
|
||||||
|
|
|
@ -1119,6 +1119,7 @@ void CISOProperties::ActionReplayButtonClicked(wxCommandEvent& event)
|
||||||
break;
|
break;
|
||||||
case ID_REMOVECHEAT:
|
case ID_REMOVECHEAT:
|
||||||
arCodes.erase(arCodes.begin() + Cheats->GetSelection());
|
arCodes.erase(arCodes.begin() + Cheats->GetSelection());
|
||||||
|
Cheats->Delete(Cheats->GetSelection());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue