Initial commit

This commit is contained in:
Nekotekina 2015-03-16 21:44:49 +03:00
parent b5a4e21c81
commit 6a0ce1850a
4 changed files with 24 additions and 15 deletions

View file

@ -174,16 +174,17 @@ void ARMv7Thread::DoReset()
void ARMv7Thread::DoRun() void ARMv7Thread::DoRun()
{ {
m_dec = nullptr;
switch(Ini.CPUDecoderMode.GetValue()) switch(Ini.CPUDecoderMode.GetValue())
{ {
case 0: case 0:
//m_dec = new ARMv7Decoder(*new ARMv7DisAsm());
break;
case 1: case 1:
case 2:
m_dec = new ARMv7Decoder(context); m_dec = new ARMv7Decoder(context);
break; break;
default:
LOG_ERROR(PPU, "Invalid CPU decoder mode: %d", Ini.CPUDecoderMode.GetValue());
Emu.Pause();
} }
} }

View file

@ -94,18 +94,21 @@ void PPUThread::CloseStack()
void PPUThread::DoRun() void PPUThread::DoRun()
{ {
m_dec = nullptr;
switch(Ini.CPUDecoderMode.GetValue()) switch(Ini.CPUDecoderMode.GetValue())
{ {
case 0: case 0: // original interpreter
//m_dec = new PPUDecoder(*new PPUDisAsm());
break;
case 1:
{ {
auto ppui = new PPUInterpreter(*this); auto ppui = new PPUInterpreter(*this);
m_dec = new PPUDecoder(ppui); m_dec = new PPUDecoder(ppui);
}
break; break;
}
case 1: // alternative interpreter
{
break;
}
case 2: case 2:
#ifdef PPU_LLVM_RECOMPILER #ifdef PPU_LLVM_RECOMPILER
@ -217,10 +220,14 @@ void PPUThread::Task()
{ {
custom_task(*this); custom_task(*this);
} }
else else if (m_dec)
{ {
CPUThread::Task(); CPUThread::Task();
} }
else
{
}
} }
ppu_thread::ppu_thread(u32 entry, const std::string& name, u32 stack_size, u32 prio) ppu_thread::ppu_thread(u32 entry, const std::string& name, u32 stack_size, u32 prio)

View file

@ -437,6 +437,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
wxCheckBox* chbox_dbg_ap_functioncall = new wxCheckBox(p_hle, wxID_ANY, "Auto Pause at Function Call"); wxCheckBox* chbox_dbg_ap_functioncall = new wxCheckBox(p_hle, wxID_ANY, "Auto Pause at Function Call");
cbox_cpu_decoder->Append("PPU Interpreter"); cbox_cpu_decoder->Append("PPU Interpreter");
cbox_cpu_decoder->Append("PPU Interpreter 2");
cbox_cpu_decoder->Append("PPU JIT (LLVM)"); cbox_cpu_decoder->Append("PPU JIT (LLVM)");
cbox_spu_decoder->Append("SPU Interpreter"); cbox_spu_decoder->Append("SPU Interpreter");
@ -531,7 +532,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
chbox_dbg_ap_systemcall ->SetValue(Ini.DBGAutoPauseSystemCall.GetValue()); chbox_dbg_ap_systemcall ->SetValue(Ini.DBGAutoPauseSystemCall.GetValue());
chbox_dbg_ap_functioncall->SetValue(Ini.DBGAutoPauseFunctionCall.GetValue()); chbox_dbg_ap_functioncall->SetValue(Ini.DBGAutoPauseFunctionCall.GetValue());
cbox_cpu_decoder ->SetSelection(Ini.CPUDecoderMode.GetValue() ? Ini.CPUDecoderMode.GetValue() - 1 : 0); cbox_cpu_decoder ->SetSelection(Ini.CPUDecoderMode.GetValue() ? Ini.CPUDecoderMode.GetValue() : 0);
cbox_spu_decoder ->SetSelection(Ini.SPUDecoderMode.GetValue() ? Ini.SPUDecoderMode.GetValue() - 1 : 0); cbox_spu_decoder ->SetSelection(Ini.SPUDecoderMode.GetValue() ? Ini.SPUDecoderMode.GetValue() - 1 : 0);
cbox_gs_render ->SetSelection(Ini.GSRenderMode.GetValue()); cbox_gs_render ->SetSelection(Ini.GSRenderMode.GetValue());
cbox_gs_resolution ->SetSelection(ResolutionIdToNum(Ini.GSResolution.GetValue()) - 1); cbox_gs_resolution ->SetSelection(ResolutionIdToNum(Ini.GSResolution.GetValue()) - 1);
@ -632,7 +633,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
if(diag.ShowModal() == wxID_OK) if(diag.ShowModal() == wxID_OK)
{ {
Ini.CPUDecoderMode.SetValue(cbox_cpu_decoder->GetSelection() + 1); Ini.CPUDecoderMode.SetValue(cbox_cpu_decoder->GetSelection());
Ini.SPUDecoderMode.SetValue(cbox_spu_decoder->GetSelection() + 1); Ini.SPUDecoderMode.SetValue(cbox_spu_decoder->GetSelection() + 1);
Ini.GSRenderMode.SetValue(cbox_gs_render->GetSelection()); Ini.GSRenderMode.SetValue(cbox_gs_render->GetSelection());
Ini.GSResolution.SetValue(ResolutionNumToId(cbox_gs_resolution->GetSelection() + 1)); Ini.GSResolution.SetValue(ResolutionNumToId(cbox_gs_resolution->GetSelection() + 1));

View file

@ -247,7 +247,7 @@ public:
void Load() void Load()
{ {
// Core // Core
CPUDecoderMode.Load(1); CPUDecoderMode.Load(0);
SPUDecoderMode.Load(1); SPUDecoderMode.Load(1);
// Graphics // Graphics