diff --git a/docs/Development.md b/docs/Development.md index e00f88bddc..33c488d4ed 100644 --- a/docs/Development.md +++ b/docs/Development.md @@ -57,6 +57,13 @@ Some examples: Before adding a new setting, consider: - Does the piece of code that the setting pertains to, make a significant difference if it's on/off? - Can it be auto-detected? +- Does the option behave differently on some platforms? +- Is it a feature specific to a given platform?" + +While not a silver bullet, settings are mainly suitable for: +- Core: CPU, memory, input, scheduler, audio, or other base emulator logic. +- UI: Anything involving menus, dialogs shows/removal, bind settings. +- Graphics: Rendering backends (OpenGL, Vulkan) Visual fixes that only work on some games and may break others. # IDE setup diff --git a/src/qt_common/shared_translation.cpp b/src/qt_common/shared_translation.cpp index 55a493d4fc..7d0a3cc170 100644 --- a/src/qt_common/shared_translation.cpp +++ b/src/qt_common/shared_translation.cpp @@ -113,40 +113,35 @@ std::unique_ptr InitializeTranslations(QObject* parent) // Cpu Unsafe INSERT(Settings, cpuopt_unsafe_host_mmu, tr("Enable Host MMU Emulation (fastmem)"), - tr("This optimization speeds up memory accesses by the guest program.\nEnabling it causes guest memory reads/writes to be done directly into memory and make use of Host's MMU.\nDisabling this forces all memory accesses to use Software MMU Emulation.")); + tr("Enabling causes guest memory operations to be done directly into host memory with an on-demand paging mechanism.\nDisabling this forces all memory accesses to use a slower translation dispatch.")); INSERT( Settings, cpuopt_unsafe_unfuse_fma, - tr("Unfuse FMA (improve performance on CPUs without FMA)"), - tr("This option improves speed by reducing accuracy of fused-multiply-add instructions on " - "CPUs without native FMA support.")); + tr("Unfuse FMA"), + tr("Prevents materialisation of precise fused-multiply-add instructions.")); INSERT( Settings, cpuopt_unsafe_reduce_fp_error, tr("Faster FRSQRTE and FRECPE"), - tr("This option improves the speed of some approximate floating-point functions by using " - "less accurate native approximations.")); + tr("Uses (innacurate but fast) native instructions as opposed to checked ones.")); INSERT(Settings, cpuopt_unsafe_ignore_standard_fpcr, tr("Faster ASIMD instructions (32 bits only)"), - tr("This option improves the speed of 32 bits ASIMD floating-point functions by running " - "with incorrect rounding modes.")); + tr("Removes checks for FPCR rounding mode on floating-point instructions.")); INSERT(Settings, cpuopt_unsafe_inaccurate_nan, tr("Inaccurate NaN handling"), - tr("This option improves speed by removing NaN checking.\nPlease note this also reduces " - "accuracy of certain floating-point instructions.")); + tr("Removes checks for NaNs on all floating-point instructions.")); INSERT(Settings, cpuopt_unsafe_fastmem_check, tr("Disable address space checks"), - tr("This option improves speed by eliminating a safety check before every memory " - "read/write in guest.\nDisabling it may allow a game to read/write the emulator's " - "memory.")); + tr("Removes the safety check before every memory operation in the guest.\n" + "Disabling will allow the guest to read/write all memory.")); INSERT( Settings, cpuopt_unsafe_ignore_global_monitor, tr("Ignore global monitor"), - tr("This option improves speed by relying only on the semantics of cmpxchg to ensure " + tr("This option improves speed by relying on the semantics of CMPXCHG to ensure " "safety of exclusive access instructions.\nPlease note this may result in deadlocks and " "other race conditions.")); @@ -168,7 +163,7 @@ std::unique_ptr InitializeTranslations(QObject* parent) resolution_setup, tr("Resolution:"), tr("Forces the guest to render at a different resolution.\n" - "Higher resolutions require more VRAM and bandwidth.\n" + "Higher resolutions require more VRAM.\n" "Options lower than 1X can cause artifacts.")); INSERT(Settings, scaling_filter, tr("Window Adapting Filter:"), QString()); INSERT(Settings, @@ -183,10 +178,8 @@ std::unique_ptr InitializeTranslations(QObject* parent) INSERT(Settings, fullscreen_mode, tr("Fullscreen Mode:"), - tr("The method used to render the window in fullscreen.\nBorderless offers the best " - "compatibility with the on-screen keyboard that some games request for " - "input.\nExclusive " - "fullscreen may offer better performance and better Freesync/Gsync support.")); + tr("Borderless offers the best compatibility with the on-screen keyboard.\n" + "Exclusive fullscreen offers better Freesync/Gsync support.")); INSERT(Settings, aspect_ratio, tr("Aspect Ratio:"), @@ -196,14 +189,11 @@ std::unique_ptr InitializeTranslations(QObject* parent) INSERT(Settings, use_disk_shader_cache, tr("Use persistent pipeline cache"), - tr("Allows saving shaders to storage for faster loading on following game " - "boots.\nDisabling it is only intended for debugging.")); + tr("Allows saving shaders for faster boot times - but will infinitely load if the cache is corrupt.")); INSERT(Settings, optimize_spirv_output, tr("Optimize SPIRV shader"), - tr("Runs an additional optimization pass over generated SPIRV shaders.\n" - "Will increase time required for shader compilation.\nMay slightly improve " - "performance.\nThis feature is experimental.")); + tr("Runs an optimisation pass on all compiled SPIRV shaders.\n")); INSERT( Settings, use_asynchronous_gpu_emulation,