diff --git a/core/nullDC.cpp b/core/nullDC.cpp index 518b049b9..6f2f0665e 100755 --- a/core/nullDC.cpp +++ b/core/nullDC.cpp @@ -207,7 +207,9 @@ void dc_term() plugins_Term(); _vmem_release(); +#ifndef _ANDROID SaveSettings(); +#endif SaveRomFiles(GetPath("/data/")); } @@ -230,13 +232,6 @@ void LoadSettings() settings.pvr.ta_skip = cfgLoadInt("config","ta.skip",0); settings.pvr.rend = cfgLoadInt("config","pvr.rend",0); -#else - settings.dynarec.idleskip = cfgLoadInt("config","Dynarec.idleskip",1)!=0; - settings.dreamcast.cable = cfgLoadInt("config","Dreamcast.Cable",3); - settings.dreamcast.broadcast = cfgLoadInt("config","Dreamcast.Broadcast",4); - settings.aica.NoBatch = cfgLoadInt("config","aica.NoBatch",0); - - settings.pvr.subdivide_transp = cfgLoadInt("config","pvr.Subdivide",0); #endif #if (HOST_OS != OS_LINUX || defined(_ANDROID) || defined(TARGET_PANDORA)) diff --git a/shell/android/jni/src/Android.cpp b/shell/android/jni/src/Android.cpp index 11da93698..233a6c3f8 100644 --- a/shell/android/jni/src/Android.cpp +++ b/shell/android/jni/src/Android.cpp @@ -42,17 +42,96 @@ extern "C" JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_vmuSwap(JNIEnv *env,jobject obj) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_dynarec(JNIEnv *env,jobject obj, jint dynarec) __attribute__((visibility("default"))); + JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_idleskip(JNIEnv *env,jobject obj, jint idleskip) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_unstable(JNIEnv *env,jobject obj, jint unstable) __attribute__((visibility("default"))); + JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_cable(JNIEnv *env,jobject obj, jint cable) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_region(JNIEnv *env,jobject obj, jint region) __attribute__((visibility("default"))); + JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_broadcast(JNIEnv *env,jobject obj, jint broadcast) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter) __attribute__((visibility("default"))); + JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_nobatch(JNIEnv *env,jobject obj, jint nobatch) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_mipmaps(JNIEnv *env,jobject obj, jint mipmaps) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_widescreen(JNIEnv *env,jobject obj, jint stretch) __attribute__((visibility("default"))); + JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_subdivide(JNIEnv *env,jobject obj, jint subdivide) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_frameskip(JNIEnv *env,jobject obj, jint frames) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_pvrrender(JNIEnv *env,jobject obj, jint render) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_cheatdisk(JNIEnv *env,jobject obj, jstring disk) __attribute__((visibility("default"))); JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_dreamtime(JNIEnv *env,jobject obj, u32 clock) __attribute__((visibility("default"))); }; +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_dynarec(JNIEnv *env,jobject obj, jint dynarec) +{ + settings.dynarec.Enable = dynarec; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_idleskip(JNIEnv *env,jobject obj, jint idleskip) +{ + settings.dynarec.idleskip = idleskip; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_unstable(JNIEnv *env,jobject obj, jint unstable) +{ + settings.dynarec.unstable_opt = unstable; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_cable(JNIEnv *env,jobject obj, jint cable) +{ + settings.dreamcast.cable = cable; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_region(JNIEnv *env,jobject obj, jint region) +{ + settings.dreamcast.region = region; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_broadcast(JNIEnv *env,jobject obj, jint broadcast) +{ + settings.dreamcast.broadcast = broadcast; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter) +{ + settings.aica.LimitFPS = limiter; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_nobatch(JNIEnv *env,jobject obj, jint nobatch) +{ + settings.aica.NoBatch = nobatch; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_mipmaps(JNIEnv *env,jobject obj, jint mipmaps) +{ + settings.rend.UseMipmaps = mipmaps; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_widescreen(JNIEnv *env,jobject obj, jint stretch) +{ + settings.rend.WideScreen = stretch; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_subdivide(JNIEnv *env,jobject obj, jint subdivide) +{ + settings.pvr.subdivide_transp = subdivide; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_frameskip(JNIEnv *env,jobject obj, jint frames) +{ + settings.pvr.ta_skip = frames; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_pvrrender(JNIEnv *env,jobject obj, jint render) +{ + settings.pvr.rend = render; +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_cheatdisk(JNIEnv *env,jobject obj, jstring disk) +{ + +} + +JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_dreamtime(JNIEnv *env,jobject obj, u32 clock) +{ + settings.dreamcast.RTC = clock; +} void egl_stealcntx(); void SetApplicationPath(wchar *path); @@ -330,56 +409,6 @@ JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_kcode(JNIEnv * env, jobje env->ReleaseIntArrayElements(jy, jy_body, 0); } -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_dynarec(JNIEnv *env,jobject obj, jint dynarec) -{ - settings.dynarec.Enable = dynarec; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_unstable(JNIEnv *env,jobject obj, jint unstable) -{ - settings.dynarec.unstable_opt = unstable; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_region(JNIEnv *env,jobject obj, jint region) -{ - settings.dreamcast.region = region; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_limitfps(JNIEnv *env,jobject obj, jint limiter) -{ - settings.aica.LimitFPS = limiter; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_mipmaps(JNIEnv *env,jobject obj, jint mipmaps) -{ - settings.rend.UseMipmaps = mipmaps; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_widescreen(JNIEnv *env,jobject obj, jint stretch) -{ - settings.rend.WideScreen = stretch; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_frameskip(JNIEnv *env,jobject obj, jint frames) -{ - settings.pvr.ta_skip = frames; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_pvrrender(JNIEnv *env,jobject obj, jint render) -{ - settings.pvr.rend = render; -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_cheatdisk(JNIEnv *env,jobject obj, jstring disk) -{ - -} - -JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_dreamtime(JNIEnv *env,jobject obj, u32 clock) -{ - settings.dreamcast.RTC = clock; -} - JNIEXPORT void JNICALL Java_com_reicast_emulator_JNIdc_rendinit(JNIEnv * env, jobject obj, jint w,jint h) { screen_width = w; diff --git a/shell/android/src/com/reicast/emulator/ConfigureFragment.java b/shell/android/src/com/reicast/emulator/ConfigureFragment.java index bfe652d29..fc8a14155 100644 --- a/shell/android/src/com/reicast/emulator/ConfigureFragment.java +++ b/shell/android/src/com/reicast/emulator/ConfigureFragment.java @@ -44,11 +44,16 @@ public class ConfigureFragment extends Fragment { OnClickListener mCallback; public static boolean dynarecopt = true; + public static boolean idleskip = false; public static boolean unstableopt = false; + public static int cable = 3; public static int dcregion = 3; + public static int broadcast = 4; public static boolean limitfps = true; + public static boolean nobatch = false; public static boolean mipmaps = true; public static boolean widescreen = false; + public static boolean subdivide = false; public static int frameskip = 0; public static boolean pvrrender = false; public static String cheatdisk = "null"; @@ -357,20 +362,25 @@ public class ConfigureFragment extends Fragment { ConfigureFragment.dynarecopt = mPrefs.getBoolean("dynarec_opt", ConfigureFragment.dynarecopt); JNIdc.dynarec(ConfigureFragment.dynarecopt ? 1 : 0); + JNIdc.idleskip(ConfigureFragment.idleskip ? 1 : 0); ConfigureFragment.unstableopt = mPrefs.getBoolean("unstable_opt", ConfigureFragment.unstableopt); JNIdc.unstable(ConfigureFragment.unstableopt ? 1 : 0); + JNIdc.cable(ConfigureFragment.cable); ConfigureFragment.dcregion = mPrefs.getInt("dc_region", ConfigureFragment.dcregion); JNIdc.region(ConfigureFragment.dcregion); + JNIdc.broadcast(ConfigureFragment.broadcast); ConfigureFragment.limitfps = mPrefs.getBoolean("limit_fps", ConfigureFragment.limitfps); JNIdc.limitfps(ConfigureFragment.limitfps ? 1 : 0); + JNIdc.nobatch(ConfigureFragment.nobatch ? 1 : 0); ConfigureFragment.mipmaps = mPrefs.getBoolean("use_mipmaps", ConfigureFragment.mipmaps); JNIdc.mipmaps(ConfigureFragment.mipmaps ? 1 : 0); ConfigureFragment.widescreen = mPrefs.getBoolean("stretch_view", ConfigureFragment.widescreen); JNIdc.widescreen(ConfigureFragment.widescreen ? 1 : 0); + JNIdc.subdivide(ConfigureFragment.subdivide ? 1 : 0); ConfigureFragment.frameskip = mPrefs.getInt("frame_skip", ConfigureFragment.frameskip); JNIdc.frameskip(ConfigureFragment.frameskip); diff --git a/shell/android/src/com/reicast/emulator/JNIdc.java b/shell/android/src/com/reicast/emulator/JNIdc.java index 06ea38d5d..4c783d2b3 100644 --- a/shell/android/src/com/reicast/emulator/JNIdc.java +++ b/shell/android/src/com/reicast/emulator/JNIdc.java @@ -27,11 +27,16 @@ public class JNIdc public static native void vmuSwap(); public static native void dynarec(int dynarec); + public static native void idleskip(int idleskip); public static native void unstable(int unstable); + public static native void cable(int cable); public static native void region(int region); + public static native void broadcast(int broadcast); public static native void limitfps(int stretch); + public static native void nobatch(int nobatch); public static native void mipmaps(int mipmaps); public static native void widescreen(int stretch); + public static native void subdivide(int subdivide); public static native void frameskip(int frames); public static native void pvrrender(int render); public static native void cheatdisk(String disk);