From e1ea7a28c3718fb44ae3fa77a60a848d34c69158 Mon Sep 17 00:00:00 2001 From: DHrpcs3 Date: Mon, 22 Dec 2014 01:10:22 +0200 Subject: [PATCH] Fixed condition decompilation in vertex & fragment shaders Added 30 & 60 modes to frame limiter --- rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp | 2 +- rpcs3/Emu/RSX/GL/GLVertexProgram.cpp | 4 ++-- rpcs3/Emu/RSX/RSXThread.cpp | 6 ++++-- rpcs3/Gui/MainFrame.cpp | 2 +- rpcs3/rpcs3.vcxproj | 3 --- rpcs3/rpcs3.vcxproj.filters | 3 --- 6 files changed, 8 insertions(+), 12 deletions(-) diff --git a/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp b/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp index e62608832d..984aa82eee 100644 --- a/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp +++ b/rpcs3/Emu/RSX/GL/GLFragmentProgram.cpp @@ -47,7 +47,7 @@ void GLFragmentDecompilerThread::SetDst(std::string code, bool append_mask) std::string dest = AddReg(dst.dest_reg, dst.fp16) + "$m"; - AddCodeCond(dest, code); + AddCodeCond(Format(dest), code); //AddCode("$ifcond " + dest + code + (append_mask ? "$m;" : ";")); if (dst.set_cond) diff --git a/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp b/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp index fe99a79847..186c70ed29 100644 --- a/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp +++ b/rpcs3/Emu/RSX/GL/GLVertexProgram.cpp @@ -165,7 +165,7 @@ void GLVertexDecompilerThread::SetDST(bool is_sca, std::string value) //code += dest + value; //AddCode(code + ";"); - AddCodeCond(dest, value); + AddCodeCond(Format(dest), value); } std::string GLVertexDecompilerThread::GetFunc() @@ -454,7 +454,7 @@ std::string GLVertexDecompilerThread::BuildCode() std::string fp; - for (int i = m_funcs.size() - 1; i>0; --i) + for (int i = m_funcs.size() - 1; i > 0; --i) { fp += fmt::Format("void %s();\n", m_funcs[i].name.c_str()); } diff --git a/rpcs3/Emu/RSX/RSXThread.cpp b/rpcs3/Emu/RSX/RSXThread.cpp index 328b7a7b73..7e92b8642b 100644 --- a/rpcs3/Emu/RSX/RSXThread.cpp +++ b/rpcs3/Emu/RSX/RSXThread.cpp @@ -340,9 +340,11 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const double limit; switch (Ini.GSFrameLimit.GetValue()) { - case 1: limit = 50.0; break; + case 1: limit = 50.; break; case 2: limit = 59.94; break; - case 3: limit = m_fps_limit; break; //TODO + case 3: limit = 30.; break; + case 4: limit = 60.; break; + case 5: limit = m_fps_limit; break; //TODO case 0: default: diff --git a/rpcs3/Gui/MainFrame.cpp b/rpcs3/Gui/MainFrame.cpp index 6a9ff7013c..2530f1de4b 100644 --- a/rpcs3/Gui/MainFrame.cpp +++ b/rpcs3/Gui/MainFrame.cpp @@ -450,7 +450,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event)) cbox_gs_aspect->Append("4:3"); cbox_gs_aspect->Append("16:9"); - for (auto item : { "Off", "50", "59.94", "Auto" }) + for (auto item : { "Off", "50", "59.94", "30", "60", "Auto" }) cbox_gs_frame_limit->Append(item); cbox_pad_handler->Append("Null"); diff --git a/rpcs3/rpcs3.vcxproj b/rpcs3/rpcs3.vcxproj index 76bec7e9fb..946b6cb66e 100644 --- a/rpcs3/rpcs3.vcxproj +++ b/rpcs3/rpcs3.vcxproj @@ -231,9 +231,6 @@ {c4a10229-4712-4bd2-b63e-50d93c67a038} - - - diff --git a/rpcs3/rpcs3.vcxproj.filters b/rpcs3/rpcs3.vcxproj.filters index f840ef10d7..5fce1aa362 100644 --- a/rpcs3/rpcs3.vcxproj.filters +++ b/rpcs3/rpcs3.vcxproj.filters @@ -192,7 +192,4 @@ Gui - - - \ No newline at end of file