Added rtt menu options

This commit is contained in:
Marcel Szewczyk 2018-11-11 15:28:39 +01:00
parent f309a59fac
commit 4fd9de54ce
13 changed files with 107 additions and 0 deletions

View File

@ -294,6 +294,7 @@ void LoadSettings()
settings.dreamcast.RTC = cfgLoadInt("config", "Dreamcast.RTC", GetRTC_now()); settings.dreamcast.RTC = cfgLoadInt("config", "Dreamcast.RTC", GetRTC_now());
settings.dreamcast.region = cfgLoadInt("config", "Dreamcast.Region", 3); settings.dreamcast.region = cfgLoadInt("config", "Dreamcast.Region", 3);
settings.dreamcast.broadcast = cfgLoadInt("config", "Dreamcast.Broadcast", 4); settings.dreamcast.broadcast = cfgLoadInt("config", "Dreamcast.Broadcast", 4);
settings.dreamcast.rttOption = cfgLoadInt("config", "Dreamcast.Rtt", 0);
settings.aica.LimitFPS = cfgLoadInt("config", "aica.LimitFPS", 1); settings.aica.LimitFPS = cfgLoadInt("config", "aica.LimitFPS", 1);
settings.aica.NoBatch = cfgLoadInt("config", "aica.NoBatch", 0); settings.aica.NoBatch = cfgLoadInt("config", "aica.NoBatch", 0);
settings.aica.NoSound = cfgLoadInt("config", "aica.NoSound", 0); settings.aica.NoSound = cfgLoadInt("config", "aica.NoSound", 0);
@ -377,4 +378,5 @@ void SaveSettings()
cfgSaveInt("config","Dreamcast.RTC", settings.dreamcast.RTC); cfgSaveInt("config","Dreamcast.RTC", settings.dreamcast.RTC);
cfgSaveInt("config","Dreamcast.Region", settings.dreamcast.region); cfgSaveInt("config","Dreamcast.Region", settings.dreamcast.region);
cfgSaveInt("config","Dreamcast.Broadcast", settings.dreamcast.broadcast); cfgSaveInt("config","Dreamcast.Broadcast", settings.dreamcast.broadcast);
cfgSaveInt("config","Dreamcast.Rtt", settings.dreamcast.rttOption);
} }

View File

@ -1,4 +1,5 @@
#include <math.h> #include <math.h>
#include <types.h>
#include "gles.h" #include "gles.h"
#include "rend/TexCache.h" #include "rend/TexCache.h"
#include "cfg/cfg.h" #include "cfg/cfg.h"
@ -1779,6 +1780,8 @@ bool RenderFrame()
#endif #endif
} }
printf("RTT option: %d", settings.dreamcast.rttOption);
//Clear depth //Clear depth
//Color is cleared by the bgp //Color is cleared by the bgp
if (settings.rend.WideScreen) if (settings.rend.WideScreen)

View File

@ -640,6 +640,7 @@ struct settings_t
u32 RTC; u32 RTC;
u32 region; u32 region;
u32 broadcast; u32 broadcast;
u32 rttOption;
} dreamcast; } dreamcast;
struct struct

View File

@ -16,6 +16,7 @@ public class Emulator extends Application {
public static final String pref_cable = "dc_cable"; public static final String pref_cable = "dc_cable";
public static final String pref_dcregion = "dc_region"; public static final String pref_dcregion = "dc_region";
public static final String pref_broadcast = "dc_broadcast"; public static final String pref_broadcast = "dc_broadcast";
public static final String pref_rtt = "dc_rtt";
public static final String pref_limitfps = "limit_fps"; public static final String pref_limitfps = "limit_fps";
public static final String pref_nosound = "sound_disabled"; public static final String pref_nosound = "sound_disabled";
public static final String pref_mipmaps = "use_mipmaps"; public static final String pref_mipmaps = "use_mipmaps";
@ -34,6 +35,7 @@ public class Emulator extends Application {
public static int cable = 3; public static int cable = 3;
public static int dcregion = 3; public static int dcregion = 3;
public static int broadcast = 4; public static int broadcast = 4;
public static int rtt = 3;
public static boolean limitfps = true; public static boolean limitfps = true;
public static boolean nobatch = false; public static boolean nobatch = false;
public static boolean nosound = false; public static boolean nosound = false;
@ -57,6 +59,7 @@ public class Emulator extends Application {
Emulator.cable = mPrefs.getInt(pref_cable, cable); Emulator.cable = mPrefs.getInt(pref_cable, cable);
Emulator.dcregion = mPrefs.getInt(pref_dcregion, dcregion); Emulator.dcregion = mPrefs.getInt(pref_dcregion, dcregion);
Emulator.broadcast = mPrefs.getInt(pref_broadcast, broadcast); Emulator.broadcast = mPrefs.getInt(pref_broadcast, broadcast);
Emulator.rtt = mPrefs.getInt(pref_rtt, rtt);
Emulator.limitfps = mPrefs.getBoolean(pref_limitfps, limitfps); Emulator.limitfps = mPrefs.getBoolean(pref_limitfps, limitfps);
Emulator.nosound = mPrefs.getBoolean(pref_nosound, nosound); Emulator.nosound = mPrefs.getBoolean(pref_nosound, nosound);
Emulator.mipmaps = mPrefs.getBoolean(pref_mipmaps, mipmaps); Emulator.mipmaps = mPrefs.getBoolean(pref_mipmaps, mipmaps);
@ -80,6 +83,7 @@ public class Emulator extends Application {
JNIdc.cable(Emulator.cable); JNIdc.cable(Emulator.cable);
JNIdc.region(Emulator.dcregion); JNIdc.region(Emulator.dcregion);
JNIdc.broadcast(Emulator.broadcast); JNIdc.broadcast(Emulator.broadcast);
JNIdc.rtt(Emulator.rtt);
JNIdc.limitfps(Emulator.limitfps ? 1 : 0); JNIdc.limitfps(Emulator.limitfps ? 1 : 0);
JNIdc.nobatch(Emulator.nobatch ? 1 : 0); JNIdc.nobatch(Emulator.nobatch ? 1 : 0);
JNIdc.nosound(Emulator.nosound ? 1 : 0); JNIdc.nosound(Emulator.nosound ? 1 : 0);

View File

@ -378,6 +378,24 @@ public class OptionsFragment extends Fragment {
} }
}); });
//----------------------------------------
String[] rtts = getResources().getStringArray(R.array.rtt);
Spinner rtt_spnr = (Spinner) getView().findViewById(R.id.rtt_spinner);
ArrayAdapter<String> rttAdapter = new ArrayAdapter<>(
getActivity(), R.layout.spinner_selected, rtts);
rttAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
rtt_spnr.setAdapter(rttAdapter);
rtt_spnr.setSelection(mPrefs.getInt(Emulator.pref_rtt, Emulator.rtt), true);
rtt_spnr.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
mPrefs.edit().putInt(Emulator.pref_rtt, pos).apply();
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
//----------------------------------------
OnCheckedChangeListener limitfps_option = new OnCheckedChangeListener() { OnCheckedChangeListener limitfps_option = new OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@ -711,6 +729,7 @@ public class OptionsFragment extends Fragment {
mPrefs.edit().remove(Emulator.pref_cable).apply(); mPrefs.edit().remove(Emulator.pref_cable).apply();
mPrefs.edit().remove(Emulator.pref_dcregion).apply(); mPrefs.edit().remove(Emulator.pref_dcregion).apply();
mPrefs.edit().remove(Emulator.pref_broadcast).apply(); mPrefs.edit().remove(Emulator.pref_broadcast).apply();
mPrefs.edit().remove(Emulator.pref_rtt).apply();
mPrefs.edit().remove(Emulator.pref_limitfps).apply(); mPrefs.edit().remove(Emulator.pref_limitfps).apply();
mPrefs.edit().remove(Emulator.pref_mipmaps).apply(); mPrefs.edit().remove(Emulator.pref_mipmaps).apply();
mPrefs.edit().remove(Emulator.pref_widescreen).apply(); mPrefs.edit().remove(Emulator.pref_widescreen).apply();
@ -730,6 +749,7 @@ public class OptionsFragment extends Fragment {
Emulator.cable = 3; Emulator.cable = 3;
Emulator.dcregion = 3; Emulator.dcregion = 3;
Emulator.broadcast = 4; Emulator.broadcast = 4;
Emulator.rtt = 3;
Emulator.limitfps = true; Emulator.limitfps = true;
Emulator.mipmaps = true; Emulator.mipmaps = true;
Emulator.widescreen = false; Emulator.widescreen = false;

View File

@ -36,6 +36,7 @@ public final class JNIdc
public static native void cable(int cable); public static native void cable(int cable);
public static native void region(int region); public static native void region(int region);
public static native void broadcast(int broadcast); public static native void broadcast(int broadcast);
public static native void rtt(int rtt);
public static native void limitfps(int limiter); public static native void limitfps(int limiter);
public static native void nobatch(int nobatch); public static native void nobatch(int nobatch);
public static native void nosound(int noaudio); public static native void nosound(int noaudio);

View File

@ -52,6 +52,7 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_safemode(JNIEnv *env,
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_cable(JNIEnv *env,jobject obj, jint cable) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_cable(JNIEnv *env,jobject obj, jint cable) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_region(JNIEnv *env,jobject obj, jint region) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_region(JNIEnv *env,jobject obj, jint region) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_broadcast(JNIEnv *env,jobject obj, jint broadcast) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_broadcast(JNIEnv *env,jobject obj, jint broadcast) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_rtt(JNIEnv *env,jobject obj, jint rtt) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_nobatch(JNIEnv *env,jobject obj, jint nobatch) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_nobatch(JNIEnv *env,jobject obj, jint nobatch) __attribute__((visibility("default")));
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_nosound(JNIEnv *env,jobject obj, jint noaudio) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_nosound(JNIEnv *env,jobject obj, jint noaudio) __attribute__((visibility("default")));
@ -102,6 +103,12 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_broadcast(JNIEnv *env
settings.dreamcast.broadcast = broadcast; settings.dreamcast.broadcast = broadcast;
} }
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_rtt(JNIEnv *env,jobject obj, jint rtt)
{
settings.dreamcast.rttOption = rtt;
}
JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter) JNIEXPORT void JNICALL Java_com_reicast_emulator_emu_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter)
{ {
settings.aica.LimitFPS = limiter; settings.aica.LimitFPS = limiter;

View File

@ -636,6 +636,35 @@
</LinearLayout> </LinearLayout>
</TableRow> </TableRow>
<TableRow
android:layout_marginTop="10dp"
android:gravity="center_vertical" >
<TextView
android:id="@+id/rtt_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:ems="10"
android:gravity="center_vertical|left"
android:text="@string/select_rtt" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical" >
<Spinner
android:id="@+id/rtt_spinner"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:ems="10" />
</LinearLayout>
</TableRow>
<TableRow <TableRow
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:gravity="center_vertical" > android:gravity="center_vertical" >

View File

@ -636,6 +636,35 @@
</LinearLayout> </LinearLayout>
</TableRow> </TableRow>
<TableRow
android:layout_marginTop="10dp"
android:gravity="center_vertical" >
<TextView
android:id="@+id/rtt_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:ems="10"
android:gravity="center_vertical|left"
android:text="@string/select_rtt" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="right"
android:orientation="vertical" >
<Spinner
android:id="@+id/rtt_spinner"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:ems="10" />
</LinearLayout>
</TableRow>
<TableRow <TableRow
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:gravity="center_vertical" > android:gravity="center_vertical" >

View File

@ -18,6 +18,7 @@
<string name="select_dynarec">Opcje Dynarec</string> <string name="select_dynarec">Opcje Dynarec</string>
<string name="select_unstable">Niestabilne optymalizacje</string> <string name="select_unstable">Niestabilne optymalizacje</string>
<string name="select_region">Region DC</string> <string name="select_region">Region DC</string>
<string name="select_rtt">Renderuj do tekstury</string>
<string name="select_limitfps">Limit FPS</string> <string name="select_limitfps">Limit FPS</string>
<string name="select_mipmaps">Użyj Mipmap (fix dla starego SGX540)</string> <string name="select_mipmaps">Użyj Mipmap (fix dla starego SGX540)</string>
<string name="select_stretch">Tryb Szerokoekranowy</string> <string name="select_stretch">Tryb Szerokoekranowy</string>

View File

@ -38,6 +38,7 @@
<string name="select_cable">Тип кабеля</string> <string name="select_cable">Тип кабеля</string>
<string name="select_region">Регион Dreamcast</string> <string name="select_region">Регион Dreamcast</string>
<string name="select_broadcast">Система ТВ</string> <string name="select_broadcast">Система ТВ</string>
<string name="select_rtt">Рендеринг текстуры (RTT)</string>
<string name="select_limitfps">Ограничение FPS</string> <string name="select_limitfps">Ограничение FPS</string>
<string name="select_mipmaps">MIP-карты (откл. для SGX540)</string> <string name="select_mipmaps">MIP-карты (откл. для SGX540)</string>
<string name="select_stretch">Широкоэкранный режим</string> <string name="select_stretch">Широкоэкранный режим</string>

View File

@ -61,6 +61,14 @@
<item>9 - PAL-E</item> <item>9 - PAL-E</item>
</string-array> </string-array>
<string-array name="rtt">
<item>Disabled - skip frames</item>
<item>Zeros</item>
<item>Ones</item>
<item>Shadow circle</item>
<item>Full</item>
</string-array>
<string-array name="bioscode"> <string-array name="bioscode">
<item>J</item> <item>J</item>
<item>E</item> <item>E</item>

View File

@ -42,6 +42,7 @@
<string name="select_cable">Cable Type</string> <string name="select_cable">Cable Type</string>
<string name="select_region">DC Region</string> <string name="select_region">DC Region</string>
<string name="select_broadcast">Broadcast</string> <string name="select_broadcast">Broadcast</string>
<string name="select_rtt">Render to texture</string>
<string name="select_limitfps">Limit FPS</string> <string name="select_limitfps">Limit FPS</string>
<string name="select_mipmaps">Use Mipmaps (fixes SGX540)</string> <string name="select_mipmaps">Use Mipmaps (fixes SGX540)</string>
<string name="select_stretch">Widescreen Mode</string> <string name="select_stretch">Widescreen Mode</string>