Frameskip, unstable opts

- make ta_skip to ta frame skipping instead of skipping parsing entierly. it handles 1 out of every (N+1) frames.
- re purpose rend to unstable opts, as pvr.rend is of no real use right now
This commit is contained in:
Stefanos Kornilios Mitsis Poiitidis 2014-01-03 19:28:37 +01:00
parent 12b29f003a
commit 05571cf7ea
3 changed files with 19 additions and 16 deletions

View File

@ -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();

View File

@ -10,7 +10,7 @@
<string name="game_path">Default Game Storage</string>
<string name="select_stretch">Widescreen Mode</string>
<string name="set_frameskip">Frameskipping Amount</string>
<string name="select_render">PVR Rendering</string>
<string name="select_render">Unstable Optimisations</string>
<string name="games_listing">Available Dreamcast Games</string>
<string-array name="images">

View File

@ -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());