Android: Replace inline strings with string resource references

This commit is contained in:
Connor McLaughlin 2020-12-08 01:35:13 +10:00
parent 98d6b49987
commit e340963c99
12 changed files with 277 additions and 180 deletions

View File

@ -12,7 +12,7 @@ public class AndroidProgressCallback {
public AndroidProgressCallback(Activity context) {
mContext = context;
mDialog = new ProgressDialog(context);
mDialog.setMessage("Please wait...");
mDialog.setMessage(context.getString(R.string.android_progress_callback_please_wait));
mDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
mDialog.setIndeterminate(false);
mDialog.setMax(100);
@ -54,7 +54,7 @@ public class AndroidProgressCallback {
new AlertDialog.Builder(mContext)
.setTitle("Error")
.setMessage(message)
.setPositiveButton("OK", (dialog, button) -> {
.setPositiveButton(mContext.getString(R.string.android_progress_callback_ok), (dialog, button) -> {
dialog.dismiss();
})
.setOnDismissListener((dialogInterface) -> {
@ -78,9 +78,9 @@ public class AndroidProgressCallback {
Object lock = new Object();
mContext.runOnUiThread(() -> {
new AlertDialog.Builder(mContext)
.setTitle("Information")
.setTitle(mContext.getString(R.string.android_progress_callback_information))
.setMessage(message)
.setPositiveButton("OK", (dialog, button) -> {
.setPositiveButton(mContext.getString(R.string.android_progress_callback_ok), (dialog, button) -> {
dialog.dismiss();
})
.setOnDismissListener((dialogInterface) -> {
@ -108,13 +108,13 @@ public class AndroidProgressCallback {
ConfirmationResult result = new ConfirmationResult();
mContext.runOnUiThread(() -> {
new AlertDialog.Builder(mContext)
.setTitle("Confirmation")
.setTitle(mContext.getString(R.string.android_progress_callback_confirmation))
.setMessage(message)
.setPositiveButton("Yes", (dialog, button) -> {
.setPositiveButton(mContext.getString(R.string.android_progress_callback_yes), (dialog, button) -> {
result.result = true;
dialog.dismiss();
})
.setNegativeButton("No", (dialog, button) -> {
.setNegativeButton(mContext.getString(R.string.android_progress_callback_no), (dialog, button) -> {
result.result = false;
dialog.dismiss();
})

View File

@ -60,9 +60,9 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
private void reportErrorOnUIThread(String message) {
// Toast.makeText(this, message, Toast.LENGTH_LONG);
new AlertDialog.Builder(this)
.setTitle("Error")
.setTitle(R.string.emulation_activity_error)
.setMessage(message)
.setPositiveButton("OK", (dialog, button) -> {
.setPositiveButton(R.string.emulation_activity_ok, (dialog, button) -> {
dialog.dismiss();
enableFullscreenImmersive();
})
@ -77,9 +77,9 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
runOnUiThread(() -> {
// Toast.makeText(this, message, Toast.LENGTH_LONG);
new AlertDialog.Builder(this)
.setTitle("Error")
.setTitle(R.string.emulation_activity_error)
.setMessage(message)
.setPositiveButton("OK", (dialog, button) -> {
.setPositiveButton(R.string.emulation_activity_ok, (dialog, button) -> {
dialog.dismiss();
enableFullscreenImmersive();
synchronized (lock) {
@ -448,11 +448,11 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
AlertDialog.Builder builder = new AlertDialog.Builder(this);
CharSequence[] items = new CharSequence[(codes != null) ? (codes.length + 1) : 1];
items[0] = "Import Patch Codes...";
items[0] = getString(R.string.emulation_activity_import_patch_codes);
if (codes != null) {
for (int i = 0; i < codes.length; i++) {
final PatchCode cc = codes[i];
items[i + 1] = String.format("%s %s", cc.isEnabled() ? "(ON)" : "(OFF)", cc.getDescription());
items[i + 1] = String.format("%s %s", cc.isEnabled() ? getString(R.string.emulation_activity_patch_on) : getString(R.string.emulation_activity_patch_off), cc.getDescription());
}
}
@ -465,7 +465,7 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(intent, "Choose Patch Code File"), REQUEST_IMPORT_PATCH_CODES);
startActivityForResult(Intent.createChooser(intent, getString(R.string.emulation_activity_choose_patch_code_file)), REQUEST_IMPORT_PATCH_CODES);
}
});
builder.setOnCancelListener(dialogInterface -> onMenuClosed());
@ -475,7 +475,7 @@ public class EmulationActivity extends AppCompatActivity implements SurfaceHolde
private void importPatchesFromFile(Uri uri) {
String str = FileUtil.readFileFromUri(this, uri, 512 * 1024);
if (str == null || !AndroidHostInterface.getInstance().importPatchCodesFromString(str)) {
reportErrorOnUIThread("Failed to import patch codes. Make sure you selected a PCSXR or Libretro format file.");
reportErrorOnUIThread(getString(R.string.emulation_activity_failed_to_import_patch_codes));
}
}

View File

@ -135,7 +135,7 @@ public class MainActivity extends AppCompatActivity {
Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.putExtra(Intent.EXTRA_LOCAL_ONLY, true);
startActivityForResult(Intent.createChooser(i, "Choose directory"),
startActivityForResult(Intent.createChooser(i, getString(R.string.main_activity_choose_directory)),
REQUEST_ADD_DIRECTORY_TO_GAME_LIST);
}
@ -190,11 +190,9 @@ public class MainActivity extends AppCompatActivity {
String path = FileUtil.getFullPathFromUri(uri, this);
if (path.length() < 5) {
new AlertDialog.Builder(this)
.setTitle("Error")
.setMessage("Failed to get path for the selected file. Please make sure the file is in internal/external storage.\n\n" +
"Tap the overflow button in the directory selector.\nSelect \"Show Internal Storage\".\n" +
"Tap the menu button and select your device name or SD card.")
.setPositiveButton("OK", (dialog, button) -> {
.setTitle(R.string.main_activity_error)
.setMessage(R.string.main_activity_get_path_from_file_error)
.setPositiveButton(R.string.main_activity_ok, (dialog, button) -> {
})
.create()
.show();
@ -208,11 +206,9 @@ public class MainActivity extends AppCompatActivity {
String path = FileUtil.getFullPathFromTreeUri(treeUri, this);
if (path.length() < 5) {
new AlertDialog.Builder(this)
.setTitle("Error")
.setMessage("Failed to get path for the selected directory. Please make sure the directory is in internal/external storage.\n\n" +
"Tap the overflow button in the directory selector.\nSelect \"Show Internal Storage\".\n" +
"Tap the menu button and select your device name or SD card.")
.setPositiveButton("OK", (dialog, button) -> {
.setTitle(R.string.main_activity_error)
.setMessage(R.string.main_activity_get_path_from_directory_error)
.setPositiveButton(R.string.main_activity_ok, (dialog, button) -> {
})
.create()
.show();
@ -298,7 +294,7 @@ public class MainActivity extends AppCompatActivity {
}
} else {
Toast.makeText(this,
"External storage permissions are required to use DuckStation.",
R.string.main_activity_external_storage_permissions_error,
Toast.LENGTH_LONG);
finish();
}
@ -320,7 +316,7 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(intent, "Choose Disc Image"), REQUEST_START_FILE);
startActivityForResult(Intent.createChooser(intent, getString(R.string.main_activity_choose_disc_image)), REQUEST_START_FILE);
}
private boolean doBIOSCheck() {
@ -328,10 +324,10 @@ public class MainActivity extends AppCompatActivity {
return true;
new AlertDialog.Builder(this)
.setTitle("Missing BIOS Image")
.setMessage("No BIOS image was found in DuckStation's bios directory. Do you with to locate and import a BIOS image now?")
.setPositiveButton("Yes", (dialog, button) -> importBIOSImage())
.setNegativeButton("No", (dialog, button) -> {
.setTitle(R.string.main_activity_missing_bios_image)
.setMessage(R.string.main_activity_missing_bios_image_prompt)
.setPositiveButton(R.string.main_activity_yes, (dialog, button) -> importBIOSImage())
.setNegativeButton(R.string.main_activity_no, (dialog, button) -> {
})
.create()
.show();
@ -343,7 +339,7 @@ public class MainActivity extends AppCompatActivity {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(Intent.createChooser(intent, "Choose BIOS Image"), REQUEST_IMPORT_BIOS_IMAGE);
startActivityForResult(Intent.createChooser(intent, getString(R.string.main_activity_choose_bios_image)), REQUEST_IMPORT_BIOS_IMAGE);
}
private void onImportBIOSImageResult(Uri uri) {
@ -354,7 +350,7 @@ public class MainActivity extends AppCompatActivity {
try {
stream = getContentResolver().openInputStream(uri);
} catch (FileNotFoundException e) {
Toast.makeText(this, "Failed to open BIOS image.", Toast.LENGTH_LONG);
Toast.makeText(this, R.string.main_activity_failed_to_open_bios_image, Toast.LENGTH_LONG);
return;
}
@ -365,13 +361,13 @@ public class MainActivity extends AppCompatActivity {
while ((len = stream.read(buffer)) > 0) {
os.write(buffer, 0, len);
if (os.size() > MAX_BIOS_SIZE) {
throw new IOException("BIOS image is too large.");
throw new IOException(getString(R.string.main_activity_bios_image_too_large));
}
}
} catch (IOException e) {
new AlertDialog.Builder(this)
.setMessage("Failed to read BIOS image: " + e.getMessage())
.setPositiveButton("OK", (dialog, button) -> {
.setMessage(getString(R.string.main_activity_failed_to_read_bios_image_prefix) + e.getMessage())
.setPositiveButton(R.string.main_activity_ok, (dialog, button) -> {
})
.create()
.show();
@ -379,11 +375,11 @@ public class MainActivity extends AppCompatActivity {
}
String importResult = AndroidHostInterface.getInstance().importBIOSImage(os.toByteArray());
String message = (importResult == null) ? "This BIOS image is invalid, or has already been imported." : ("BIOS '" + importResult + "' imported.");
String message = (importResult == null) ? getString(R.string.main_activity_invalid_error) : ("BIOS '" + importResult + "' imported.");
new AlertDialog.Builder(this)
.setMessage(message)
.setPositiveButton("OK", (dialog, button) -> {
.setPositiveButton(R.string.main_activity_ok, (dialog, button) -> {
})
.create()
.show();
@ -392,14 +388,14 @@ public class MainActivity extends AppCompatActivity {
private void showVersion() {
final String message = AndroidHostInterface.getFullScmVersion();
new AlertDialog.Builder(this)
.setTitle("Version")
.setTitle(R.string.main_activity_show_version_title)
.setMessage(message)
.setPositiveButton("OK", (dialog, button) -> {
.setPositiveButton(R.string.main_activity_ok, (dialog, button) -> {
})
.setNeutralButton("Copy", (dialog, button) -> {
.setNeutralButton(R.string.main_activity_copy, (dialog, button) -> {
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
if (clipboard != null)
clipboard.setPrimaryClip(ClipData.newPlainText("Version", message));
clipboard.setPrimaryClip(ClipData.newPlainText(getString(R.string.main_activity_show_version_title), message));
})
.create()
.show();

View File

@ -3,8 +3,8 @@
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/game_list_entry_menu_start_game"
android:title="Start Game" />
android:title="@string/menu_game_list_entry_start_game" />
<item
android:id="@+id/game_list_entry_menu_resume_game"
android:title="Resume Game" />
android:title="@string/menu_game_list_entry_resume_game" />
</menu>

View File

@ -5,36 +5,36 @@
<group android:id="@+id/start_menu">
<item
android:id="@+id/action_resume"
android:title="Resume Last Session" />
android:title="@string/menu_main_resume_last_session" />
<item
android:id="@+id/action_start_file"
android:title="Start File" />
android:title="@string/menu_main_start_file" />
<item
android:id="@+id/action_start_bios"
android:title="Start BIOS" />
android:title="@string/menu_main_start_bios" />
</group>
<group android:id="@+id/game_list">
<item
android:id="@+id/action_add_game_directory"
android:title="Add Game Directory" />
android:title="@string/menu_main_add_game_directory" />
<item
android:id="@+id/action_scan_for_new_games"
android:title="Scan For New Games" />
android:title="@string/menu_main_scan_for_new_games" />
<item
android:id="@+id/action_rescan_all_games"
android:title="Rescan All Games" />
android:title="@string/menu_main_rescan_all_games" />
<item
android:id="@+id/action_import_bios"
android:title="Import BIOS" />
android:title="@string/menu_main_import_bios" />
<item
android:id="@+id/action_show_version"
android:title="Show Version" />
android:title="@string/menu_main_show_version" />
<item
android:id="@+id/action_github_respository"
android:title="GitHub Repository" />
android:title="@string/menu_main_github_repository" />
<item
android:id="@+id/action_discord_server"
android:title="Discord Server" />
android:title="@string/menu_main_discord_server" />
</group>
<item
android:id="@+id/action_settings"

View File

@ -2,48 +2,149 @@
<string name="app_name">DuckStation</string>
<string name="action_settings">Settings</string>
<string name="title_activity_settings">Settings</string>
<!-- Preference Titles -->
<string name="settings_console_header">Console</string>
<string name="settings_behavior_header">Behavior</string>
<string name="settings_osd_header">On-Screen Display</string>
<string name="settings_cpu_header">CPU</string>
<string name="settings_gpu_header">GPU</string>
<!-- Console Preferences -->
<string name="settings_console_region">Console Region</string>
<string name="settings_console_region_default">Auto</string>
<string name="settings_console_bios_path">BIOS Path</string>
<string name="settings_console_tty_output">Enable TTY Output</string>
<string name="settings_console_fast_boot">Fast Boot</string>
<!-- Behavior Preferences -->
<string name="settings_behavior_enable_speed_limiter">Enable Speed Limiter</string>
<string name="settings_behavior_pause_on_start">Pause On Start</string>
<string name="settings_host_synchronization_sync_to_audio">Sync To Audio</string>
<string name="settings_host_synchronization_sync_to_video">Sync To Video</string>
<!-- OSD Preferences -->
<string name="settings_osd_show_messages">Show Messages</string>
<string name="settings_osd_show_speed">Show Emulation Speed</string>
<string name="settings_osd_show_show_fps">Show FPS</string>
<string name="settings_osd_show_show_vps">Show VPS</string>
<!-- CPU Preferences -->
<string name="settings_cpu_execution_mode">CPU Execution Mode</string>
<string name="settings_cpu_execution_mode_default">Interpreter</string>
<!-- GPU Preferences -->
<string name="settings_gpu_renderer">GPU Renderer</string>
<string name="settings_gpu_display_linear_filtering">Display Linear Filtering</string>
<string name="settings_gpu_resolution_scale">Resolution Scale</string>
<string name="settings_gpu_true_color">True 24-Bit Color (Disables Dithering)</string>
<string name="title_activity_emulation">EmulationActivity</string>
<string name="dummy_button">Dummy Button</string>
<string name="dummy_content">DUMMY\nCONTENT</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string>
<string name="title_activity_test_controller">TestControllerActivity</string>
<string name="settings_emulation_speed">Emulation Speed</string>
<string name="settings_fast_forward_speed">Fast Forward Speed</string>
<string name="settings_save_state_on_exit">Save State On Exit</string>
<string name="settings_pause_when_menu_opened">Pause When Menu Opened</string>
<string name="settings_emulation_screen_orientation">Emulation Screen Orientation</string>
<string name="settings_load_patch_codes">Load Patch Codes</string>
<string name="settings_summary_save_state_on_exit">Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time.</string>
<string name="settings_summary_pause_when_menu_opened">Pauses emulation when ingame and the menu is opened.</string>
<string name="settings_summary_load_patch_codes"><![CDATA[Loads patch codes from cheats/<game name>.cht in PCSXR format. Codes can be toggled while ingame.]]></string>
<string name="settings_apply_compatibility_settings">Apply Compatibility Settings</string>
<string name="settings_summary_apply_compatibility_settings">Automatically disable enhancements when they are not supported by games.</string>
<string name="settings_summary_video_sync">Enable this option to match DuckStation\'s refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (e.g. running at non-100% speed).</string>
<string name="settings_video_sync">Video Sync</string>
<string name="settings_cpu_overclocking">CPU Overclocking</string>
<string name="settings_cdrom_region_check">CD-ROM Region Check</string>
<string name="settings_summary_cdrom_region_check">Prevents discs from incorrect regions being read by the emulator. Usually safe to disable.</string>
<string name="settings_cdrom_preload_image_to_ram">CD-ROM Preload Image to RAM</string>
<string name="settings_summary_preload_image_to_ram">Loads the game image into RAM. Useful for network paths that may become unreliable during gameplay. In some cases also eliminates stutter when games initiate audio track playback.</string>
<string name="settings_pgxp_vertex_cache">PGXP Vertex Cache</string>
<string name="settings_summary_pgxp_vertex_cache">Uses screen coordinates as a fallback when tracking vertices through memory fails. May improve PGXP compatibility.</string>
<string name="settings_pgxp_cpu_mode">PGXP CPU Mode</string>
<string name="settings_summary_pgxp_cpu_mode">Tries to track vertex manipulation through the CPU. Some games require this option for PGXP to be effective. Very slow, and incompatible with the recompiler.</string>
<string name="settings_cpu_recompiler_icache">CPU Recompiler ICache</string>
<string name="settings_summary_cpu_recompiler_icache">Determines whether the CPU\'s instruction cache is simulated in the recompiler. Improves accuracy at a small cost to performance. If games are running too fast, try enabling this option.</string>
<string name="settings_cpu_recompiler_fastmem">CPU Recompiler Fast Memory Access</string>
<string name="settings_summary_cpu_recompiler_fastmem">Makes guest memory access more efficient by using page faults and backpatching. Disable if it is unstable on your device.</string>
<string name="settings_presented_frame_limit">Presented Frame Limit</string>
<string name="settings_logging_level">Logging Level</string>
<string name="settings_log_to_file">Log To File</string>
<string name="settings_summary_log_to_file">Writes log messages to duckstation.log in your user directory. Only use for debugging as it slows down emulation.</string>
<string name="settings_log_to_logcat">Log To Logcat</string>
<string name="settings_summary_log_to_logcat">Writes log messages to the Android message logger. Only useful when attached to a computer with adb.</string>
<string name="settings_volume">Volume</string>
<string name="settings_summary_volume">Controls the volume of the emulator\'s sound output.</string>
<string name="settings_mute_all_sound">Mute All Sound</string>
<string name="settings_summary_mute_all_sound">Prevents the emulator from emitting any sound.</string>
<string name="settings_mute_cd_audio">Mute CD Audio</string>
<string name="settings_summary_mute_cd_audio">Forcibly mutes both CD-DA and XA audio from the CD-ROM. Can be used to disable background music in some games.</string>
<string name="settings_audio_backend">Audio Backend</string>
<string name="settings_audio_buffer_size">Audio Buffer Size</string>
<string name="settings_summary_audio_buffer_size">Determines the latency between audio being generated and output to speakers. Smaller values reduce latency, but variations in emulation speed will cause hitches.</string>
<string name="settings_audio_sync">Audio Sync</string>
<string name="settings_summary_audio_sync">Throttles the emulation speed based on the audio backend pulling audio frames. This helps to remove noises or crackling if emulation is too fast. Sync will automatically be disabled if not running at 100% speed.</string>
<string name="settings_controller_type">Controller Type</string>
<string name="settings_enable_analog_mode_on_reset">Enable Analog Mode On Reset</string>
<string name="settings_touchscreen_controller_view">Touchscreen Controller View</string>
<string name="settings_auto_hide_touchscreen_controller">Auto-Hide Touchscreen Controller</string>
<string name="settings_summary_auto_hide_touchscreen_controller">Hides the touchscreen controller when an external controller is detected.</string>
<string name="settings_vibrate_on_press">Vibrate On Press</string>
<string name="settings_summary_vibrate_on_press">Enables a short vibration when a touchscreen button is pressed. Requires \"Vibrate on Touch\" to be enabled on your device.</string>
<string name="settings_enable_vibration">Enable Vibration</string>
<string name="settings_summary_enable_vibration">Forwards rumble from the game to the phone\'s vibration motor.</string>
<string name="settings_memory_card_1_type">Memory Card 1 Type</string>
<string name="settings_memory_card_2_type">Memory Card 2 Type</string>
<string name="settings_crop_mode">Crop Mode</string>
<string name="settings_aspect_ratio">Aspect Ratio</string>
<string name="settings_linear_upscaling">Linear Upscaling</string>
<string name="settings_integer_upscaling">Integer Upscaling</string>
<string name="settings_summary_linear_upscaling">Smooths out the image when upscaling the console to the screen.</string>
<string name="settings_summary_integer_upscaling">Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games.</string>
<string name="settings_summary_osd_show_messages">Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc.</string>
<string name="settings_summary_osd_show_speed">Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage.</string>
<string name="settings_summary_osd_show_fps">Shows the internal frame rate of the game in the top-right corner of the display.</string>
<string name="settings_summary_osd_show_vps">Shows the number of frames (or v-syncs) displayed per second by the system in the top-right corner of the display.</string>
<string name="settings_cdrom_read_speedup">CD-ROM Read Speedup</string>
<string name="settings_summary_cdrom_read_speedup">Speeds up CD-ROM reads by the specified factor. Only applies to double-speed reads, and is ignored when audio is playing. May improve loading speeds in some games, at the cost of breaking others.</string>
<string name="settings_summary_console_fast_boot">Skips the BIOS shell/intro, booting directly into the game. Usually safe to enable, but some games break.</string>
<string name="settings_msaa">Multisample Antialiasing</string>
<string name="settings_true_color">True Color Rendering (24-bit, disables dithering)</string>
<string name="settings_summary_true_color">This produces nicer looking gradients at the cost of making some colours look slightly different. Disabling the option also enables dithering. Most games are compatible with this option.</string>
<string name="settings_scaled_dithering">Scaled Dithering (scale dither pattern to resolution)</string>
<string name="settings_summary_scaled_dithering">Scales the dither pattern to the resolution scale of the emulated GPU. This makes the dither pattern much less obvious at higher resolutions. Usually safe to enable, and only supported by the hardware renderers.</string>
<string name="settings_disable_interlacing">Disable Interlacing (force progressive render/scan)</string>
<string name="settings_summary_disable_interlacing">Forces the rendering and display of frames to progressive mode. This removes the \"combing\" effect seen in 480i games by rendering them in 480p. Usually safe to enable.</string>
<string name="settings_texture_filtering">Texture Filtering</string>
<string name="settings_force_ntsc_timings">Force NTSC Timings (60hz-on-PAL)</string>
<string name="settings_summary_force_ntsc_timings">Uses NTSC frame timings when the console is in PAL mode, forcing PAL games to run at 60hz.</string>
<string name="settings_widescreen_hack">Widescreen Hack</string>
<string name="settings_summary_widescreen_hack">Scales vertex positions in screen-space to a widescreen aspect ratio, essentially increasing the field of view from 4:3 to 16:9 in 3D games. Not be compatible with all games.</string>
<string name="settings_force_4_3_for_24bit">Force 4:3 For 24-Bit Display</string>
<string name="settings_summary_force_4_3_for_24bit">Switches back to 4:3 display aspect ratio when displaying 24-bit content, usually FMVs.</string>
<string name="settings_chroma_smoothing_24bit">Chroma Smoothing For 24-Bit Display</string>
<string name="settings_summary_chrome_smoothing_24bit">Smooths out blockyness between colour transitions in 24-bit content, usually FMVs. Only applies to the hardware renderers.</string>
<string name="settings_pgxp_geometry_correction">PGXP Geometry Correction</string>
<string name="settings_summary_pgxp_geometry_correction"><![CDATA[Reduces \"wobbly\" polygons and \"warping\" textures that are common in PS1 games. >Only works with the hardware renderers. May not be compatible with all games.]]></string>
<string name="settings_pgxp_culling_correction">PGXP Culling Correction</string>
<string name="settings_summary_pgxp_culling_correction">Increases the precision of polygon culling, reducing the number of holes in geometry. Requires geometry correction enabled.</string>
<string name="settings_pgxp_texture_correction">PGXP Texture Correction</string>
<string name="settings_summary_pgxp_texture_correction">Uses perspective-correct interpolation for texture coordinates and colors, straightening out warped textures. Requires geometry correction enabled.</string>
<string name="settings_pgxp_preserve_projection_precision">PGXP Preserve Projection Precision</string>
<string name="settings_summary_pgxp_preserve_projection_precision">Enables additional precision for PGXP. May improve visuals in some games but break others.</string>
<string name="menu_main_resume_last_session">Resume Last Session</string>
<string name="menu_main_start_file">Start File</string>
<string name="menu_main_start_bios">Start BIOS</string>
<string name="menu_main_add_game_directory">Add Game Directory</string>
<string name="menu_main_scan_for_new_games">Scan For New Games</string>
<string name="menu_main_rescan_all_games">Rescan All Games</string>
<string name="menu_main_import_bios">Import BIOS</string>
<string name="menu_main_show_version">Show Version</string>
<string name="menu_main_github_repository">GitHub Repository</string>
<string name="menu_main_discord_server">Discord Server</string>
<string name="menu_game_list_entry_start_game">Start Game</string>
<string name="menu_game_list_entry_resume_game">Resume Game</string>
<string name="android_progress_callback_please_wait">Please wait...</string>
<string name="android_progress_callback_ok">OK</string>
<string name="android_progress_callback_information">Information</string>
<string name="android_progress_callback_confirmation">Confirmation</string>
<string name="android_progress_callback_yes">Yes</string>
<string name="android_progress_callback_no">No</string>
<string name="emulation_activity_error">Error</string>
<string name="emulation_activity_ok">OK</string>
<string name="emulation_activity_import_patch_codes">Import Patch Codes...</string>
<string name="emulation_activity_patch_on">(ON)</string>
<string name="emulation_activity_patch_off">(OFF)</string>
<string name="emulation_activity_choose_patch_code_file">Choose Patch Code File</string>
<string name="emulation_activity_failed_to_import_patch_codes">Failed to import patch codes. Make sure you selected a PCSXR or Libretro format file.</string>
<string name="main_activity_choose_directory">Choose directory</string>
<string name="main_activity_error">Error</string>
<string name="main_activity_get_path_from_file_error">Failed to get path for the selected file. Please make sure the file is in internal/external storage.\n\nTap the overflow button in the directory selector.\nSelect "Show Internal Storage".\nTap the menu button and select your device name or SD card.</string>
<string name="main_activity_ok">OK</string>
<string name="main_activity_get_path_from_directory_error">Failed to get path for the selected directory. Please make sure the directory is in internal/external storage.\n\nTap the overflow button in the directory selector.\nSelect \"Show Internal Storage\".\nTap the menu button and select your device name or SD card.</string>
<string name="main_activity_external_storage_permissions_error">External storage permissions are required to use DuckStation.</string>
<string name="main_activity_choose_disc_image">Choose Disc Image</string>
<string name="main_activity_missing_bios_image_prompt">No BIOS image was found in DuckStation\'s bios directory. Do you with to locate and import a BIOS image now?</string>
<string name="main_activity_missing_bios_image">Missing BIOS Image</string>
<string name="main_activity_yes">Yes</string>
<string name="main_activity_no">No</string>
<string name="main_activity_choose_bios_image">Choose BIOS Image</string>
<string name="main_activity_failed_to_open_bios_image">Failed to open BIOS image.</string>
<string name="main_activity_failed_to_read_bios_image_prefix">\"Failed to read BIOS image: \"</string>
<string name="main_activity_bios_image_too_large">BIOS image is too large.</string>
<string name="main_activity_invalid_error">This BIOS image is invalid, or has already been imported.</string>
<string name="main_activity_show_version_title">Version</string>
<string name="main_activity_copy">Copy</string>
</resources>

View File

@ -17,7 +17,7 @@
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
<ListPreference
app:key="CPU/Overclock"
app:title="CPU Overclocking"
app:title="@string/settings_cpu_overclocking"
app:defaultValue="100"
app:entries="@array/settings_advanced_cpu_overclock_entries"
app:entryValues="@array/settings_advanced_cpu_overclock_values"
@ -25,46 +25,46 @@
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="CDROM/RegionCheck"
app:title="CD-ROM Region Check"
app:title="@string/settings_cdrom_region_check"
app:defaultValue="false"
app:summary="Prevents discs from incorrect regions being read by the emulator. Usually safe to disable."
app:summary="@string/settings_summary_cdrom_region_check"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="CDROM/LoadImageToRAM"
app:title="CD-ROM Preload Image to RAM"
app:title="@string/settings_cdrom_preload_image_to_ram"
app:defaultValue="false"
app:summary="Loads the game image into RAM. Useful for network paths that may become unreliable during gameplay. In some cases also eliminates stutter when games initiate audio track playback."
app:summary="@string/settings_summary_preload_image_to_ram"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/PGXPVertexCache"
app:title="PGXP Vertex Cache"
app:title="@string/settings_pgxp_vertex_cache"
app:defaultValue="false"
app:summary="Uses screen coordinates as a fallback when tracking vertices through memory fails. May improve PGXP compatibility."
app:summary="@string/settings_summary_pgxp_vertex_cache"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/PGXPCPU"
app:title="PGXP CPU Mode"
app:title="@string/settings_pgxp_cpu_mode"
app:defaultValue="false"
app:summary="Tries to track vertex manipulation through the CPU. Some games require this option for PGXP to be effective. Very slow, and incompatible with the recompiler."
app:summary="@string/settings_summary_pgxp_cpu_mode"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="CPU/RecompilerICache"
app:title="CPU Recompiler ICache"
app:title="@string/settings_cpu_recompiler_icache"
app:defaultValue="false"
app:summary="Determines whether the CPU's instruction cache is simulated in the recompiler. Improves accuracy at a small cost to performance. If games are running too fast, try enabling this option."
app:summary="@string/settings_summary_cpu_recompiler_icache"
app:iconSpaceReserved="false" />
<ListPreference
app:key="CPU/FastmemMode"
app:title="CPU Recompiler Fast Memory Access"
app:title="@string/settings_cpu_recompiler_fastmem"
app:entries="@array/settings_cpu_fastmem_mode_entries"
app:entryValues="@array/settings_cpu_fastmem_mode_values"
app:useSimpleSummaryProvider="true"
app:defaultValue="MMap"
app:summary="Makes guest memory access more efficient by using page faults and backpatching. Disable if it is unstable on your device."
app:summary="@string/settings_summary_cpu_recompiler_fastmem"
app:iconSpaceReserved="false" />
<ListPreference
app:key="Display/MaxFPS"
app:title="Presented Frame Limit"
app:title="@string/settings_presented_frame_limit"
app:defaultValue="60"
app:entries="@array/settings_advanced_display_fps_limit_entries"
app:entryValues="@array/settings_advanced_display_fps_limit_values"
@ -77,7 +77,7 @@
app:iconSpaceReserved="false" />
<ListPreference
app:key="Logging/LogLevel"
app:title="Logging Level"
app:title="@string/settings_logging_level"
app:defaultValue="Warning"
app:entries="@array/settings_log_level_entries"
app:entryValues="@array/settings_log_level_values"
@ -85,15 +85,15 @@
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Logging/LogToFile"
app:title="Log To File"
app:title="@string/settings_log_to_file"
app:defaultValue="false"
app:summary="Writes log messages to duckstation.log in your user directory. Only use for debugging as it slows down emulation."
app:summary="@string/settings_summary_log_to_file"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Logging/LogToDebug"
app:title="Log To Logcat"
app:title="@string/settings_log_to_logcat"
app:defaultValue="false"
app:summary="Writes log messages to the Android message logger. Only useful when attached to a computer with adb."
app:summary="@string/settings_summary_log_to_logcat"
app:iconSpaceReserved="false" />
</PreferenceScreen>

View File

@ -19,8 +19,8 @@
<SeekBarPreference
app:key="Audio/OutputVolume"
app:title="Volume"
app:summary="Controls the volume of the emulator's sound output."
app:title="@string/settings_volume"
app:summary="@string/settings_summary_volume"
app:defaultValue="100"
android:max="100"
app:min="0"
@ -28,19 +28,19 @@
app:showSeekBarValue="true" />
<SwitchPreferenceCompat
app:key="Audio/OutputMuted"
app:title="Mute All Sound"
app:title="@string/settings_mute_all_sound"
app:defaultValue="false"
app:summary="Prevents the emulator from emitting any sound."
app:summary="@string/settings_summary_mute_all_sound"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="CDROM/MuteCDAudio"
app:title="Mute CD Audio"
app:title="@string/settings_mute_cd_audio"
app:defaultValue="false"
app:summary="Forcibly mutes both CD-DA and XA audio from the CD-ROM. Can be used to disable background music in some games."
app:summary="@string/settings_summary_mute_cd_audio"
app:iconSpaceReserved="false" />
<ListPreference
app:key="Audio/Backend"
app:title="Audio Backend"
app:title="@string/settings_audio_backend"
app:entries="@array/settings_audio_backend_entries"
app:entryValues="@array/settings_audio_backend_values"
app:defaultValue="OpenSLES"
@ -48,18 +48,18 @@
app:iconSpaceReserved="false" />
<ListPreference
app:key="Audio/BufferSize"
app:title="Audio Buffer Size"
app:title="@string/settings_audio_buffer_size"
app:entries="@array/settings_audio_buffer_size_entries"
app:entryValues="@array/settings_audio_buffer_size_values"
app:defaultValue="2048"
app:summary="Determines the latency between audio being generated and output to speakers. Smaller values reduce latency, but variations in emulation speed will cause hitches."
app:summary="@string/settings_summary_audio_buffer_size"
app:useSimpleSummaryProvider="true"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Audio/Sync"
app:title="Audio Sync"
app:title="@string/settings_audio_sync"
app:defaultValue="true"
app:summary="Throttles the emulation speed based on the audio backend pulling audio frames. This helps to remove noises or crackling if emulation is too fast. Sync will automatically be disabled if not running at 100% speed."
app:summary="@string/settings_summary_audio_sync"
app:iconSpaceReserved="false" />
</PreferenceScreen>

View File

@ -18,7 +18,7 @@
<ListPreference
app:key="Controller1/Type"
app:title="Controller Type"
app:title="@string/settings_controller_type"
app:entries="@array/settings_controller_type_entries"
app:entryValues="@array/settings_controller_type_values"
app:defaultValue="DigitalController"
@ -26,12 +26,12 @@
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Controller1/AutoEnableAnalog"
app:title="Enable Analog Mode On Reset"
app:title="@string/settings_enable_analog_mode_on_reset"
app:defaultValue="true"
app:iconSpaceReserved="false" />
<ListPreference
app:key="Controller1/TouchscreenControllerView"
app:title="Touchscreen Controller View"
app:title="@string/settings_touchscreen_controller_view"
app:entries="@array/settings_touchscreen_controller_view_entries"
app:entryValues="@array/settings_touchscreen_controller_view_values"
app:defaultValue="digital"
@ -39,27 +39,27 @@
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Controller1/AutoHideTouchscreenController"
app:title="Auto-Hide Touchscreen Controller"
app:title="@string/settings_auto_hide_touchscreen_controller"
app:defaultValue="false"
app:summary="Hides the touchscreen controller when an external controller is detected."
app:summary="@string/settings_summary_auto_hide_touchscreen_controller"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Controller1/HapticFeedback"
app:title="Vibrate On Press"
app:title="@string/settings_vibrate_on_press"
app:defaultValue="false"
app:summary="Enables a short vibration when a touchscreen button is pressed. Requires &quot;Vibrate on Touch&quot; to be enabled on your device."
app:summary="@string/settings_summary_vibrate_on_press"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Controller1/Vibration"
app:title="Enable Vibration"
app:title="@string/settings_enable_vibration"
app:defaultValue="false"
app:summary="Forwards rumble from the game to the phone's vibration motor."
app:summary="@string/settings_summary_enable_vibration"
app:iconSpaceReserved="false" />
<ListPreference
app:key="MemoryCards/Card1Type"
app:title="Memory Card 1 Type"
app:title="@string/settings_memory_card_1_type"
app:entries="@array/settings_memory_card_mode_entries"
app:entryValues="@array/settings_memory_card_mode_values"
app:defaultValue="PerGameTitle"
@ -67,7 +67,7 @@
app:iconSpaceReserved="false" />
<ListPreference
app:key="MemoryCards/Card2Type"
app:title="Memory Card 2 Type"
app:title="@string/settings_memory_card_2_type"
app:entries="@array/settings_memory_card_mode_entries"
app:entryValues="@array/settings_memory_card_mode_values"
app:defaultValue="None"

View File

@ -18,7 +18,7 @@
<ListPreference
app:key="Display/CropMode"
app:title="Crop Mode"
app:title="@string/settings_crop_mode"
app:entries="@array/settings_display_crop_mode_entries"
app:entryValues="@array/settings_display_crop_mode_values"
app:defaultValue="Overscan"
@ -27,7 +27,7 @@
<ListPreference
app:key="Display/AspectRatio"
app:title="Aspect Ratio"
app:title="@string/settings_aspect_ratio"
app:entries="@array/settings_display_aspect_ratio_names"
app:entryValues="@array/settings_display_aspect_ratio_values"
app:defaultValue="4:3"
@ -36,41 +36,41 @@
<SwitchPreferenceCompat
app:key="Display/LinearFiltering"
app:title="Linear Upscaling"
app:title="@string/settings_linear_upscaling"
app:defaultValue="true"
app:summary="Smooths out the image when upscaling the console to the screen."
app:summary="@string/settings_summary_linear_upscaling"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Display/IntegerScaling"
app:title="Integer Upscaling"
app:title="@string/settings_integer_upscaling"
app:defaultValue="false"
app:summary="Adds padding to the display area to ensure that the ratio between pixels on the host to pixels in the console is an integer number. May result in a sharper image in some 2D games."
app:summary="@string/settings_summary_integer_upscaling"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Display/ShowOSDMessages"
app:title="@string/settings_osd_show_messages"
app:defaultValue="true"
app:summary="Shows on-screen-display messages when events occur such as save states being created/loaded, screenshots being taken, etc."
app:summary="@string/settings_summary_osd_show_messages"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Display/ShowSpeed"
app:title="@string/settings_osd_show_speed"
app:defaultValue="false"
app:summary="Sets the target emulation speed. It is not guaranteed that this speed will be reached, and if not, the emulator will run as fast as it can manage."
app:summary="@string/settings_summary_osd_show_speed"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Display/ShowFPS"
app:title="@string/settings_osd_show_show_fps"
app:defaultValue="false"
app:summary="Shows the internal frame rate of the game in the top-right corner of the display."
app:summary="@string/settings_summary_osd_show_fps"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Display/ShowVPS"
app:title="@string/settings_osd_show_show_vps"
app:defaultValue="false"
app:summary="Shows the number of frames (or v-syncs) displayed per second by the system in the top-right corner of the display."
app:summary="@string/settings_summary_osd_show_vps"
app:iconSpaceReserved="false" />
</PreferenceScreen>

View File

@ -17,18 +17,18 @@
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto">
<ListPreference
app:key="CDROM/ReadSpeedup"
app:title="CD-ROM Read Speedup"
app:title="@string/settings_cdrom_read_speedup"
app:entries="@array/settings_cdrom_read_speedup_entries"
app:entryValues="@array/settings_cdrom_read_speedup_values"
app:defaultValue="1"
app:summary="Speeds up CD-ROM reads by the specified factor. Only applies to double-speed reads, and is ignored when audio is playing. May improve loading speeds in some games, at the cost of breaking others."
app:summary="@string/settings_summary_cdrom_read_speedup"
app:useSimpleSummaryProvider="true"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="BIOS/PatchFastBoot"
app:title="@string/settings_console_fast_boot"
app:defaultValue="false"
app:summary="Skips the BIOS shell/intro, booting directly into the game. Usually safe to enable, but some games break."
app:summary="@string/settings_summary_console_fast_boot"
app:iconSpaceReserved="false" />
<ListPreference
app:key="GPU/ResolutionScale"
@ -40,7 +40,7 @@
app:iconSpaceReserved="false" />
<ListPreference
app:key="GPU/MSAA"
app:title="Multisample Antialiasing"
app:title="@string/settings_msaa"
app:entries="@array/settings_gpu_msaa_entries"
app:entryValues="@array/settings_gpu_msaa_values"
app:defaultValue="1"
@ -48,27 +48,27 @@
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/TrueColor"
app:title="True Color Rendering (24-bit, disables dithering)"
app:summary="This produces nicer looking gradients at the cost of making some colours look slightly different. Disabling the option also enables dithering. Most games are compatible with this option."
app:title="@string/settings_true_color"
app:summary="@string/settings_summary_true_color"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/ScaledDithering"
app:title="Scaled Dithering (scale dither pattern to resolution)"
app:title="@string/settings_scaled_dithering"
app:defaultValue="true"
app:summary="Scales the dither pattern to the resolution scale of the emulated GPU. This makes the dither pattern much less obvious at higher resolutions. Usually safe to enable, and only supported by the hardware renderers."
app:summary="@string/settings_summary_scaled_dithering"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/DisableInterlacing"
app:title="Disable Interlacing (force progressive render/scan)"
app:title="@string/settings_disable_interlacing"
app:defaultValue="true"
app:summary="Forces the rendering and display of frames to progressive mode. This removes the &quot;combing&quot; effect seen in 480i games by rendering them in 480p. Usually safe to enable."
app:summary="@string/settings_summary_disable_interlacing"
app:iconSpaceReserved="false" />
<ListPreference
app:key="GPU/TextureFilter"
app:title="Texture Filtering"
app:title="@string/settings_texture_filtering"
app:entries="@array/settings_gpu_texture_filter_names"
app:entryValues="@array/settings_gpu_texture_filter_values"
app:defaultValue="Nearest"
@ -77,58 +77,58 @@
<SwitchPreferenceCompat
app:key="GPU/ForceNTSCTimings"
app:title="Force NTSC Timings (60hz-on-PAL)"
app:title="@string/settings_force_ntsc_timings"
app:defaultValue="false"
app:summary="Uses NTSC frame timings when the console is in PAL mode, forcing PAL games to run at 60hz."
app:summary="@string/settings_summary_force_ntsc_timings"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/WidescreenHack"
app:title="Widescreen Hack"
app:title="@string/settings_widescreen_hack"
app:defaultValue="false"
app:summary="Scales vertex positions in screen-space to a widescreen aspect ratio, essentially increasing the field of view from 4:3 to 16:9 in 3D games. Not be compatible with all games."
app:summary="@string/settings_summary_widescreen_hack"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Display/Force4_3For24Bit"
app:title="Force 4:3 For 24-Bit Display"
app:title="@string/settings_force_4_3_for_24bit"
app:defaultValue="false"
app:summary="Switches back to 4:3 display aspect ratio when displaying 24-bit content, usually FMVs."
app:summary="@string/settings_summary_force_4_3_for_24bit"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/ChromaSmoothing24Bit"
app:title="Chroma Smoothing For 24-Bit Display"
app:title="@string/settings_chroma_smoothing_24bit"
app:defaultValue="false"
app:summary="Smooths out blockyness between colour transitions in 24-bit content, usually FMVs. Only applies to the hardware renderers."
app:summary="@string/settings_summary_chrome_smoothing_24bit"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/PGXPEnable"
app:title="PGXP Geometry Correction"
app:title="@string/settings_pgxp_geometry_correction"
app:defaultValue="false"
app:summary="Reduces &quot;wobbly&quot; polygons and &quot;warping&quot; textures that are common in PS1 games. >Only works with the hardware renderers. May not be compatible with all games."
app:summary="@string/settings_summary_pgxp_geometry_correction"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/PGXPCulling"
app:title="PGXP Culling Correction"
app:title="@string/settings_pgxp_culling_correction"
app:defaultValue="true"
app:summary="Increases the precision of polygon culling, reducing the number of holes in geometry. Requires geometry correction enabled."
app:summary="@string/settings_summary_pgxp_culling_correction"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/PGXPTextureCorrection"
app:title="PGXP Texture Correction"
app:title="@string/settings_pgxp_texture_correction"
app:defaultValue="true"
app:summary="Uses perspective-correct interpolation for texture coordinates and colors, straightening out warped textures. Requires geometry correction enabled."
app:summary="@string/settings_summary_pgxp_texture_correction"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="GPU/PGXPPreserveProjFP"
app:title="PGXP Preserve Projection Precision"
app:title="@string/settings_pgxp_preserve_projection_precision"
app:defaultValue="false"
app:summary="Enables additional precision for PGXP. May improve visuals in some games but break others."
app:summary="@string/settings_summary_pgxp_preserve_projection_precision"
app:iconSpaceReserved="false" />
</PreferenceScreen>

View File

@ -18,7 +18,7 @@
<ListPreference
app:key="Main/EmulationSpeed"
app:title="Emulation Speed"
app:title="@string/settings_emulation_speed"
app:entries="@array/settings_emulation_speed_entries"
app:entryValues="@array/settings_emulation_speed_values"
app:defaultValue="1.0"
@ -26,7 +26,7 @@
app:iconSpaceReserved="false" />
<ListPreference
app:key="Main/FastForwardSpeed"
app:title="Fast Forward Speed"
app:title="@string/settings_fast_forward_speed"
app:entries="@array/settings_emulation_speed_entries"
app:entryValues="@array/settings_emulation_speed_values"
app:defaultValue="0.0"
@ -34,19 +34,19 @@
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Main/SaveStateOnExit"
app:title="Save State On Exit"
app:title="@string/settings_save_state_on_exit"
app:defaultValue="true"
app:summary="Automatically saves the emulator state when powering down or exiting. You can then resume directly from where you left off next time."
app:summary="@string/settings_summary_save_state_on_exit"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Main/PauseOnMenu"
app:title="Pause When Menu Opened"
app:title="@string/settings_pause_when_menu_opened"
app:defaultValue="false"
app:summary="Pauses emulation when ingame and the menu is opened."
app:summary="@string/settings_summary_pause_when_menu_opened"
app:iconSpaceReserved="false" />
<ListPreference
app:key="Main/EmulationScreenOrientation"
app:title="Emulation Screen Orientation"
app:title="@string/settings_emulation_screen_orientation"
app:entries="@array/settings_emulation_screen_orientation_entries"
app:entryValues="@array/settings_emulation_screen_orientation_values"
app:defaultValue="unspecified"
@ -54,28 +54,28 @@
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Main/AutoLoadCheats"
app:title="Load Patch Codes"
app:title="@string/settings_load_patch_codes"
app:defaultValue="false"
app:summary="Loads patch codes from cheats/&lt;game name&gt;.cht in PCSXR format. Codes can be toggled while ingame."
app:summary="@string/settings_summary_load_patch_codes"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Main/ApplyGameSettings"
app:title="Apply Compatibility Settings"
app:title="@string/settings_apply_compatibility_settings"
app:defaultValue="true"
app:summary="Automatically disable enhancements when they are not supported by games."
app:summary="@string/settings_summary_apply_compatibility_settings"
app:iconSpaceReserved="false" />
<SwitchPreferenceCompat
app:key="Display/VSync"
app:title="Video Sync"
app:title="@string/settings_video_sync"
app:defaultValue="false"
app:summary="Enable this option to match DuckStation's refresh rate with your current monitor or screen. VSync is automatically disabled when it is not possible (e.g. running at non-100% speed)."
app:summary="@string/settings_summary_video_sync"
app:iconSpaceReserved="false" />
<ListPreference
app:key="Console/Region"
app:title="@string/settings_console_region"
app:entries="@array/settings_console_region_entries"
app:entryValues="@array/settings_console_region_values"
app:defaultValue="@string/settings_console_region_default"
app:defaultValue="Auto"
app:useSimpleSummaryProvider="true"
app:iconSpaceReserved="false" />