mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-14 05:45:47 -04:00
HostInterface: Add proper turbo speed setting
This commit is contained in:
@ -538,6 +538,12 @@ void AndroidHostInterface::SetControllerAxisState(u32 index, s32 button_code, fl
|
||||
false);
|
||||
}
|
||||
|
||||
void AndroidHostInterface::SetFastForwardEnabled(bool enabled)
|
||||
{
|
||||
m_fast_forward_enabled = enabled;
|
||||
UpdateSpeedLimiterState();
|
||||
}
|
||||
|
||||
void AndroidHostInterface::RefreshGameList(bool invalidate_cache, bool invalidate_database,
|
||||
ProgressCallback* progress_callback)
|
||||
{
|
||||
@ -895,6 +901,20 @@ DEFINE_JNI_ARGS_METHOD(jboolean, AndroidHostInterface_hasAnyBIOSImages, jobject
|
||||
return hi->HasAnyBIOSImages();
|
||||
}
|
||||
|
||||
DEFINE_JNI_ARGS_METHOD(jboolean, AndroidHostInterface_isFastForwardEnabled, jobject obj)
|
||||
{
|
||||
return AndroidHelpers::GetNativeClass(env, obj)->IsFastForwardEnabled();
|
||||
}
|
||||
|
||||
DEFINE_JNI_ARGS_METHOD(void, AndroidHostInterface_setFastForwardEnabled, jobject obj, jboolean enabled)
|
||||
{
|
||||
if (!System::IsValid())
|
||||
return;
|
||||
|
||||
AndroidHostInterface* hi = AndroidHelpers::GetNativeClass(env, obj);
|
||||
hi->RunOnEmulationThread([enabled, hi]() { hi->SetFastForwardEnabled(enabled); });
|
||||
}
|
||||
|
||||
DEFINE_JNI_ARGS_METHOD(jstring, AndroidHostInterface_importBIOSImage, jobject obj, jbyteArray data)
|
||||
{
|
||||
AndroidHostInterface* hi = AndroidHelpers::GetNativeClass(env, obj);
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
void SetControllerType(u32 index, std::string_view type_name);
|
||||
void SetControllerButtonState(u32 index, s32 button_code, bool pressed);
|
||||
void SetControllerAxisState(u32 index, s32 button_code, float value);
|
||||
void SetFastForwardEnabled(bool enabled);
|
||||
|
||||
void RefreshGameList(bool invalidate_cache, bool invalidate_database, ProgressCallback* progress_callback);
|
||||
void ApplySettings(bool display_osd_messages);
|
||||
|
@ -79,6 +79,9 @@ public class AndroidHostInterface {
|
||||
|
||||
public native String importBIOSImage(byte[] data);
|
||||
|
||||
public native boolean isFastForwardEnabled();
|
||||
public native void setFastForwardEnabled(boolean enabled);
|
||||
|
||||
static {
|
||||
System.loadLibrary("duckstation-native");
|
||||
}
|
||||
|
@ -284,11 +284,9 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
|
||||
return;
|
||||
}
|
||||
|
||||
case 3: // Toggle Speed Limiter
|
||||
case 3: // Toggle Fast Forward
|
||||
{
|
||||
boolean newSetting = !getBooleanSetting("Main/SpeedLimiterEnabled", true);
|
||||
setBooleanSetting("Main/SpeedLimiterEnabled", newSetting);
|
||||
applySettings();
|
||||
AndroidHostInterface.getInstance().setFastForwardEnabled(!AndroidHostInterface.getInstance().isFastForwardEnabled());
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -131,7 +131,7 @@
|
||||
<item>Load State</item>
|
||||
<item>Save State</item>
|
||||
<item>Save State Slot</item>
|
||||
<item>Toggle Speed Limiter</item>
|
||||
<item>Toggle Fast Forward</item>
|
||||
<item>More Options</item>
|
||||
<item>Quit</item>
|
||||
</string-array>
|
||||
@ -283,4 +283,60 @@
|
||||
<item>75</item>
|
||||
<item>90</item>
|
||||
</string-array>
|
||||
<string-array name="settings_emulation_speed_entries">
|
||||
<item>Unlimited</item>
|
||||
<item>10% [6 FPS (NTSC) / 5 FPS (PAL)]</item>
|
||||
<item>20% [12 FPS (NTSC) / 10 FPS (PAL)]</item>
|
||||
<item>30% [18 FPS (NTSC) / 15 FPS (PAL)]</item>
|
||||
<item>40% [24 FPS (NTSC) / 20 FPS (PAL)]</item>
|
||||
<item>50% [30 FPS (NTSC) / 25 FPS (PAL)]</item>
|
||||
<item>60% [36 FPS (NTSC) / 30 FPS (PAL)]</item>
|
||||
<item>70% [42 FPS (NTSC) / 35 FPS (PAL)]</item>
|
||||
<item>80% [48 FPS (NTSC) / 40 FPS (PAL)]</item>
|
||||
<item>90% [54 FPS (NTSC) / 45 FPS (PAL)]</item>
|
||||
<item>100% [60 FPS (NTSC) / 50 FPS (PAL), Default]</item>
|
||||
<item>125% [75 FPS (NTSC) / 62 FPS (PAL)]</item>
|
||||
<item>150% [90 FPS (NTSC) / 75 FPS (PAL)]</item>
|
||||
<item>175% [105 FPS (NTSC) / 87 FPS (PAL)]</item>
|
||||
<item>200% [120 FPS (NTSC) / 100 FPS (PAL)]</item>
|
||||
<item>250% [150 FPS (NTSC) / 125 FPS (PAL)]</item>
|
||||
<item>300% [180 FPS (NTSC) / 150 FPS (PAL)]</item>
|
||||
<item>350% [210 FPS (NTSC) / 175 FPS (PAL)]</item>
|
||||
<item>400% [240 FPS (NTSC) / 200 FPS (PAL)]</item>
|
||||
<item>450% [270 FPS (NTSC) / 225 FPS (PAL)]</item>
|
||||
<item>500% [300 FPS (NTSC) / 250 FPS (PAL)]</item>
|
||||
<item>600% [360 FPS (NTSC) / 300 FPS (PAL)]</item>
|
||||
<item>700% [420 FPS (NTSC) / 350 FPS (PAL)]</item>
|
||||
<item>800% [480 FPS (NTSC) / 400 FPS (PAL)]</item>
|
||||
<item>900% [540 FPS (NTSC) / 450 FPS (PAL)]</item>
|
||||
<item>1000% [600 FPS (NTSC) / 500 FPS (PAL)]</item>
|
||||
</string-array>
|
||||
<string-array name="settings_emulation_speed_values">
|
||||
<item>0.0</item>
|
||||
<item>0.1</item>
|
||||
<item>0.2</item>
|
||||
<item>0.3</item>
|
||||
<item>0.4</item>
|
||||
<item>0.5</item>
|
||||
<item>0.6</item>
|
||||
<item>0.7</item>
|
||||
<item>0.8</item>
|
||||
<item>0.9</item>
|
||||
<item>1.0</item>
|
||||
<item>1.25</item>
|
||||
<item>1.5</item>
|
||||
<item>1.75</item>
|
||||
<item>2.0</item>
|
||||
<item>2.5</item>
|
||||
<item>3.0</item>
|
||||
<item>3.5</item>
|
||||
<item>4.0</item>
|
||||
<item>4.5</item>
|
||||
<item>5.0</item>
|
||||
<item>6.0</item>
|
||||
<item>7.0</item>
|
||||
<item>8.0</item>
|
||||
<item>9.0</item>
|
||||
<item>10.0</item>
|
||||
</string-array>
|
||||
</resources>
|
||||
|
@ -17,6 +17,22 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<ListPreference
|
||||
app:key="Main/EmulationSpeed"
|
||||
app:title="Emulation Speed"
|
||||
app:entries="@array/settings_emulation_speed_entries"
|
||||
app:entryValues="@array/settings_emulation_speed_values"
|
||||
app:defaultValue="1.0"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:iconSpaceReserved="false" />
|
||||
<ListPreference
|
||||
app:key="Main/FastForwardSpeed"
|
||||
app:title="Fast Forward Speed"
|
||||
app:entries="@array/settings_emulation_speed_entries"
|
||||
app:entryValues="@array/settings_emulation_speed_values"
|
||||
app:defaultValue="0.0"
|
||||
app:useSimpleSummaryProvider="true"
|
||||
app:iconSpaceReserved="false" />
|
||||
<SwitchPreferenceCompat
|
||||
app:key="Main/SpeedLimiterEnabled"
|
||||
app:title="@string/settings_behavior_enable_speed_limiter"
|
||||
|
Reference in New Issue
Block a user