diff --git a/core/hw/pvr/ta_vtx.cpp b/core/hw/pvr/ta_vtx.cpp index 587ba6288..4d122a7c4 100644 --- a/core/hw/pvr/ta_vtx.cpp +++ b/core/hw/pvr/ta_vtx.cpp @@ -1390,15 +1390,19 @@ public: FifoSplitter<0> TAFifo0; +int ta_parse_cnt = 0; + bool ta_parse_vdrc(TA_context* ctx) { - bool rv=true; + bool rv=false; verify( vd_ctx == 0); vd_ctx = ctx; vd_rc = vd_ctx->rend; - - if (!settings.pvr.ta_skip) + + ta_parse_cnt++; + + if (0 == (ta_parse_cnt % ( settings.pvr.ta_skip + 1))) { TAFifo0.vdec_init(); diff --git a/shell/android/res/values/strings.xml b/shell/android/res/values/strings.xml index ab66f48ad..670bc05ea 100644 --- a/shell/android/res/values/strings.xml +++ b/shell/android/res/values/strings.xml @@ -10,7 +10,7 @@ Default Game Storage Widescreen Mode Frameskipping Amount - PVR Rendering + Unstable Optimisations Available Dreamcast Games diff --git a/shell/android/src/com/reicast/emulator/ConfigureFragment.java b/shell/android/src/com/reicast/emulator/ConfigureFragment.java index 3d2324611..3c2b56f0f 100644 --- a/shell/android/src/com/reicast/emulator/ConfigureFragment.java +++ b/shell/android/src/com/reicast/emulator/ConfigureFragment.java @@ -33,7 +33,7 @@ public class ConfigureFragment extends Fragment { TextView mainFrames; OnClickListener mCallback; boolean widescreen = false; - boolean pvrrender = false; + boolean unstable_opt = false; int frameskip = 0; private SharedPreferences mPrefs; @@ -83,9 +83,9 @@ public class ConfigureFragment extends Fragment { frameskip = Integer.valueOf(currentLine.replace( "ta.skip=", "")); } - if (StringUtils.containsIgnoreCase(currentLine, "pvr.rend")) { - pvrrender = Boolean.valueOf(currentLine.replace( - "pvr.rend=", "")); + if (StringUtils.containsIgnoreCase(currentLine, "Dynarec.unstable-opt")) { + unstable_opt = Boolean.valueOf(currentLine.replace( + "Dynarec.unstable-opt=", "")); } } scanner.close(); @@ -164,9 +164,9 @@ public class ConfigureFragment extends Fragment { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - mPrefs.edit().putBoolean("pvr_render", isChecked).commit(); - pvrrender = isChecked; - if (!executeAppendConfig("pvr.rend", + mPrefs.edit().putBoolean("unstable_opt", isChecked).commit(); + unstable_opt = isChecked; + if (!executeAppendConfig("Dynarec.unstable-opt", String.valueOf(isChecked ? 1 : 0))) { executeWriteConfig(); } @@ -175,7 +175,7 @@ public class ConfigureFragment extends Fragment { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) { Switch pvr_render = (Switch) getView().findViewById( R.id.render_option); - boolean rendered = mPrefs.getBoolean("pvr_render", pvrrender); + boolean rendered = mPrefs.getBoolean("unstable_opt", unstable_opt); if (rendered) { pvr_render.setChecked(true); } else { @@ -185,7 +185,7 @@ public class ConfigureFragment extends Fragment { } else { CheckBox pvr_render = (CheckBox) getView().findViewById( R.id.render_option); - boolean rendered = mPrefs.getBoolean("pvr_render", pvrrender); + boolean rendered = mPrefs.getBoolean("unstable_opt", unstable_opt); if (rendered) { pvr_render.setChecked(true); } else { @@ -233,7 +233,7 @@ public class ConfigureFragment extends Fragment { rebuildFile.append("[config]" + "\n"); rebuildFile.append("Dynarec.Enabled=1" + "\n"); rebuildFile.append("Dynarec.idleskip=1" + "\n"); - rebuildFile.append("Dynarec.unstable-opt=0" + "\n"); + rebuildFile.append("Dynarec.unstable-opt=" + String.valueOf(unstable_opt ? 1 : 0) + "\n"); rebuildFile.append("Dreamcast.Cable=3" + "\n"); rebuildFile.append("Dreamcast.RTC=2018927206" + "\n"); rebuildFile.append("Dreamcast.Region=3" + "\n"); @@ -245,8 +245,7 @@ public class ConfigureFragment extends Fragment { + String.valueOf(widescreen ? 1 : 0) + "\n"); rebuildFile.append("pvr.Subdivide=0" + "\n"); rebuildFile.append("ta.skip=" + String.valueOf(frameskip) + "\n"); - rebuildFile.append("pvr.rend=" + String.valueOf(pvrrender ? 1 : 0) - + "\n"); + rebuildFile.append("pvr.rend=1" + "\n"); rebuildFile.append("image=null" + "\n"); FileOutputStream fos = new FileOutputStream(config); fos.write(rebuildFile.toString().getBytes());