diff --git a/shell/android/res/values/strings.xml b/shell/android/res/values/strings.xml
index 9f194bd1b..722ff0a1e 100644
--- a/shell/android/res/values/strings.xml
+++ b/shell/android/res/values/strings.xml
@@ -92,7 +92,7 @@
OFF
Copying logcat content to clipboard\nPlease paste in the issue report
-
+ Please generate a config\n(Run BIOS at least once)
Submit Error Logs
diff --git a/shell/android/src/com/reicast/emulator/ConfigureFragment.java b/shell/android/src/com/reicast/emulator/ConfigureFragment.java
index 1f1a4faab..d0e1f4f20 100644
--- a/shell/android/src/com/reicast/emulator/ConfigureFragment.java
+++ b/shell/android/src/com/reicast/emulator/ConfigureFragment.java
@@ -169,10 +169,8 @@ public class ConfigureFragment extends Fragment {
boolean isChecked) {
mPrefs.edit().putBoolean("dynarec_opt", isChecked).commit();
dynarecopt = isChecked;
- if (!executeAppendConfig("Dynarec.Enabled",
- String.valueOf(isChecked ? 1 : 0))) {
- executeWriteConfig();
- }
+ executeAppendConfig("Dynarec.Enabled",
+ String.valueOf(isChecked ? 1 : 0));
}
};
Switch dynarec_opt = (Switch) getView().findViewById(
@@ -191,10 +189,8 @@ public class ConfigureFragment extends Fragment {
boolean isChecked) {
mPrefs.edit().putBoolean("unstable_opt", isChecked).commit();
unstableopt = isChecked;
- if (!executeAppendConfig("Dynarec.unstable-opt",
- String.valueOf(isChecked ? 1 : 0))) {
- executeWriteConfig();
- }
+ executeAppendConfig("Dynarec.unstable-opt",
+ String.valueOf(isChecked ? 1 : 0));
}
};
Switch unstable_opt = (Switch) getView().findViewById(
@@ -227,10 +223,8 @@ public class ConfigureFragment extends Fragment {
int pos, long id) {
mPrefs.edit().putInt("dc_region", pos).commit();
dcregion = pos;
- if (!executeAppendConfig("Dreamcast.Region",
- String.valueOf(pos))) {
- executeWriteConfig();
- }
+ executeAppendConfig("Dreamcast.Region",
+ String.valueOf(pos));
}
@@ -246,10 +240,8 @@ public class ConfigureFragment extends Fragment {
boolean isChecked) {
mPrefs.edit().putBoolean("limit_fps", isChecked).commit();
limitfps = isChecked;
- if (!executeAppendConfig("aica.LimitFPS",
- String.valueOf(isChecked ? 1 : 0))) {
- executeWriteConfig();
- }
+ executeAppendConfig("aica.LimitFPS",
+ String.valueOf(isChecked ? 1 : 0));
}
};
Switch limit_fps = (Switch) getView()
@@ -268,10 +260,8 @@ public class ConfigureFragment extends Fragment {
boolean isChecked) {
mPrefs.edit().putBoolean("use_mipmaps", isChecked).commit();
mipmaps = isChecked;
- if (!executeAppendConfig("rend.UseMipmaps",
- String.valueOf(isChecked ? 1 : 0))) {
- executeWriteConfig();
- }
+ executeAppendConfig("rend.UseMipmaps",
+ String.valueOf(isChecked ? 1 : 0));
}
};
Switch mipmap_opt = (Switch) getView()
@@ -290,10 +280,8 @@ public class ConfigureFragment extends Fragment {
boolean isChecked) {
mPrefs.edit().putBoolean("stretch_view", isChecked).commit();
widescreen = isChecked;
- if (!executeAppendConfig("rend.WideScreen",
- String.valueOf(isChecked ? 1 : 0))) {
- executeWriteConfig();
- }
+ executeAppendConfig("rend.WideScreen",
+ String.valueOf(isChecked ? 1 : 0));
}
};
Switch stretch_view = (Switch) getView().findViewById(
@@ -331,10 +319,8 @@ public class ConfigureFragment extends Fragment {
public void onStopTrackingTouch(SeekBar seekBar) {
mPrefs.edit().putInt("frame_skip", progressChanged).commit();
frameskip = progressChanged;
- if (!executeAppendConfig("ta.skip",
- String.valueOf(progressChanged))) {
- executeWriteConfig();
- }
+ executeAppendConfig("ta.skip",
+ String.valueOf(progressChanged));
}
});
@@ -344,10 +330,8 @@ public class ConfigureFragment extends Fragment {
boolean isChecked) {
mPrefs.edit().putBoolean("pvr_render", isChecked).commit();
pvrrender = isChecked;
- if (!executeAppendConfig("pvr.rend",
- String.valueOf(isChecked ? 1 : 0))) {
- executeWriteConfig();
- }
+ executeAppendConfig("pvr.rend",
+ String.valueOf(isChecked ? 1 : 0));
}
};
Switch pvr_render = (Switch) getView().findViewById(R.id.render_option);
@@ -368,9 +352,7 @@ public class ConfigureFragment extends Fragment {
if (cheatEdit.getText() != null) {
cheatdisk = cheatEdit.getText().toString();
mPrefs.edit().putString("cheat_disk", cheatdisk).commit();
- if (!executeAppendConfig("image", cheatdisk)) {
- executeWriteConfig();
- }
+ executeAppendConfig("image", cheatdisk);
}
}
@@ -405,10 +387,10 @@ public class ConfigureFragment extends Fragment {
}
}
- public boolean executeAppendConfig(String identifier, String value) {
+ public void executeAppendConfig(String identifier, String value) {
File config = new File(home_directory, "emu.cfg");
- if (config.exists()) {
- try {
+ try {
+ if (config.exists()) {
// Read existing emu.cfg and substitute new setting value
StringBuilder rebuildFile = new StringBuilder();
Scanner scanner = new Scanner(config);
@@ -426,53 +408,43 @@ public class ConfigureFragment extends Fragment {
FileOutputStream fos = new FileOutputStream(config);
fos.write(rebuildFile.toString().getBytes());
fos.close();
- return true;
- } catch (Exception e) {
- Log.d("reicast", "Exception: " + e);
+ } else if (config.createNewFile()) {
+ StringBuilder rebuildFile = new StringBuilder();
+ rebuildFile.append("[config]" + "\n");
+ rebuildFile.append("Dynarec.Enabled="
+ + String.valueOf(dynarecopt ? 1 : 0) + "\n");
+ rebuildFile.append("Dynarec.idleskip=1" + "\n");
+ rebuildFile.append("Dynarec.unstable-opt="
+ + String.valueOf(unstableopt ? 1 : 0) + "\n");
+ rebuildFile.append("Dreamcast.Cable=3" + "\n");
+ long dreamTime = (System.currentTimeMillis() / 1000)
+ + MainActivity.dreamRTC;
+ rebuildFile.append("Dreamcast.RTC=" + String.valueOf(dreamTime)
+ + "\n");
+ rebuildFile.append("Dreamcast.Region="
+ + String.valueOf(dcregion) + "\n");
+ rebuildFile.append("Dreamcast.Broadcast=4" + "\n");
+ rebuildFile.append("aica.LimitFPS="
+ + String.valueOf(limitfps ? 1 : 0) + "\n");
+ rebuildFile.append("aica.NoBatch=0" + "\n");
+ rebuildFile.append("rend.UseMipmaps="
+ + String.valueOf(mipmaps ? 1 : 0) + "\n");
+ rebuildFile.append("rend.WideScreen="
+ + 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("image=" + cheatdisk + "\n");
+ FileOutputStream fos = new FileOutputStream(config);
+ fos.write(rebuildFile.toString().getBytes());
+ fos.close();
+ } else {
+ Toast.makeText(parentActivity,
+ parentActivity.getString(R.string.bios_config),
+ Toast.LENGTH_SHORT).show();
}
- }
- return false;
- }
-
- private void executeWriteConfig() {
- try {
- File config = new File(home_directory, "emu.cfg");
- if (config.exists()) {
- config.delete();
- }
-
- // Write new emu.cfg using current display values
-
- StringBuilder rebuildFile = new StringBuilder();
- rebuildFile.append("[config]" + "\n");
- rebuildFile.append("Dynarec.Enabled="
- + String.valueOf(dynarecopt ? 1 : 0) + "\n");
- rebuildFile.append("Dynarec.idleskip=1" + "\n");
- rebuildFile.append("Dynarec.unstable-opt="
- + String.valueOf(unstableopt ? 1 : 0) + "\n");
- rebuildFile.append("Dreamcast.Cable=3" + "\n");
- long dreamTime = (System.currentTimeMillis() / 1000)
- + MainActivity.dreamRTC;
- rebuildFile.append("Dreamcast.RTC=" + String.valueOf(dreamTime)
- + "\n");
- rebuildFile.append("Dreamcast.Region=" + String.valueOf(dcregion)
- + "\n");
- rebuildFile.append("Dreamcast.Broadcast=4" + "\n");
- rebuildFile.append("aica.LimitFPS="
- + String.valueOf(limitfps ? 1 : 0) + "\n");
- rebuildFile.append("aica.NoBatch=0" + "\n");
- rebuildFile.append("rend.UseMipmaps="
- + String.valueOf(mipmaps ? 1 : 0) + "\n");
- rebuildFile.append("rend.WideScreen="
- + 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("image=" + cheatdisk + "\n");
- FileOutputStream fos = new FileOutputStream(config);
- fos.write(rebuildFile.toString().getBytes());
- fos.close();
} catch (Exception e) {
Log.d("reicast", "Exception: " + e);
}