Settings reference

Every emulator setting the app shows, with its name in the interface, TOML key, default, options, level and when each one takes effect.

Build 63Applies to build 63 and to the current main, which has the same settings and data.

Edit this page

This page is generated from the app's code in build 63: the settings schema, the interface catalog, the English strings and the default_config.toml template. It changes by itself when the app changes.

  • Name: as it appears in the app.
  • Key: the section and name in the configuration file, as in [GPU] framerate_limit. The site search (/) finds a setting by its key.
  • Default: the value the app writes on first launch. When the default_config.toml template has the key, its value is used; otherwise, the one from the app's schema.
  • Level: Essential, Advanced or All (see levels).
GroupEssentialAdvancedAllTotal
Image910322
Performance210921
Audio12710
Controls4116
Compatibility063541
Driver and Vulkan101819
Console and system691227
Debugging102627

Differences between versions #

The build 63 and the current main have the same settings.

Image #

22 settings · Essential 9, Advanced 10, All 3

Scaling & sharpening [Display] postprocess_scaling_and_sharpening

Upscaling filter for the final image, from plain bilinear to AMD CAS sharpening, FSR upscaling, Qualcomm SGSR (experimental), Lanczos (sharp, no halos) or a CRT look (scanlines and darker corners)

Default: Bilinear Level: Essential Applies at the next launch; can also change live from the in-game menu

Options: Bilinear · AMD CAS · FSR 1 · SGSR (beta) · Lanczos · CRT

Resolution scale, width (real) [GPU] draw_resolution_scale_x

The real resolution scale: renders the game at this multiple of its native width. Whole steps only, and it cannot go below 1x. Costs GPU time and memory

Default: 1x Level: Essential Applies at the next launch of the game

Options: 1x · 2x · 3x

Resolution scale, height (real) [GPU] draw_resolution_scale_y

The real resolution scale: renders the game at this multiple of its native height. Whole steps only, and it cannot go below 1x. Costs GPU time and memory

Default: 1x Level: Essential Applies at the next launch of the game

Options: 1x · 2x · 3x

Anisotropic filtering [GPU] anisotropic_override

Keeps textures sharp when seen at a slant (floors, roads, walls). "Game decides" leaves each texture as the game set it; 16x costs a little GPU bandwidth.

Default: Game decides Level: Essential Applies at the next launch of the game

Options: Game decides · Off · 1x · 2x · 4x · 8x · 16x

Antialiasing [Display] postprocess_antialiasing

Apply FXAA post-process anti-aliasing to smooth edges; recommended when CAS or FSR is active

Default: Off Level: Essential Applies at the next launch of the game

Options: Off · FXAA · FXAA extreme

Reduce color banding [Display] postprocess_dither

Adds a fine noise to the final image so gradients (skies, fog, menus) show no steps on 8-bit screens. Applies on the next game start; off on true 10-bit displays.

Default: On Level: Essential Applies at the next launch of the game

Present letterbox [Display] present_letterbox

Keep the game's aspect ratio by adding black bars instead of stretching to fill the screen

Default: On Level: Essential Applies at the next launch of the game

Widescreen [Console] widescreen

Reports a 16:9 display to games instead of 4:3, controlling their aspect ratio

Default: On Level: Essential Applies at the next launch of the game

Display mode reported to game [Console] internal_display_resolution

Not a scaler: it only tells the game what the TV is. Most titles render at a fixed size and ignore it, so the picture usually will not change. For higher detail use Resolution scale under GPU

Default: 1280x720 Level: Essential Applies at the next launch of the game

Options: 640x480 · 640x576 · 720x480 · 720x576 · 800x600 · 848x480 · 1024x768 · 1152x864 · 1280x720 · 1280x768 · 1280x960 · 1280x1024 · 1360x768 · 1440x900 · 1680x1050 · 1920x540 · 1920x1080 · Custom

Custom width [Video] internal_display_resolution_x new in the interface

Width reported to the game when the display mode is Custom. The core accepts 1 to 1920.

Default: 1,280 px Level: Advanced Applies at the next launch of the game Range: 1 to 1,920 px, in steps of 16

Only applies with “Display mode reported to game” set to Custom.

Custom height [Video] internal_display_resolution_y new in the interface

Height reported to the game when the display mode is Custom. The core accepts 1 to 1080.

Default: 720 px Level: Advanced Applies at the next launch of the game Range: 1 to 1,080 px, in steps of 8

Only applies with “Display mode reported to game” set to Custom.

Keep narrow surfaces at native size [GPU] draw_resolution_scale_threshold new in the interface

With the resolution scale above 1x, surfaces up to this width stay at native size. Bloom and depth of field often break when upscaled; use the smallest value that fixes the effect.

Default: Off Level: Advanced Applies at the next launch of the game

Options: Off · up to 80 px · up to 160 px · up to 320 px · up to 640 px

CAS: extra sharpness [Display] postprocess_ffx_cas_additional_sharpness

Extra sharpening on top of CAS (Scaling & sharpening: cas); higher is sharper and may show halos.

Default: 0.0 Level: Advanced Applies at the next launch of the game

Options: 0.0 · 0.25 · 0.5 · 0.75 · 1.0

Only applies with “Scaling & sharpening” set to AMD CAS.

FSR: sharpness reduction [Display] postprocess_ffx_fsr_sharpness_reduction

How much FSR softens its sharpening (Scaling & sharpening: fsr); 0 is the sharpest, 2 the softest.

Default: 0.2 Level: Advanced Applies at the next launch of the game

Options: 0.0 · 0.1 · 0.2 · 0.5 · 1.0 · 2.0

Only applies with “Scaling & sharpening” set to FSR 1.

FSR: upsampling passes [Display] postprocess_ffx_fsr_max_upsampling_passes new in the interface

How many times FSR may upscale in a row when the screen is much larger than the game. More passes cost GPU time.

Default: 4 Level: Advanced Applies at the next launch of the game Range: 1 to 4

Only applies with “Scaling & sharpening” set to FSR 1.

TV gamma curve [Kernel] kernel_display_gamma_type

Display gamma reported to games. BT.709 is the closest to an Xbox 360 on an HDTV

Default: BT.709 (HDTV) Level: Advanced Applies at the next launch of the game

Options: Linear · sRGB (CRT) · BT.709 (HDTV) · Custom power

Custom gamma [Kernel] kernel_display_gamma_power new in the interface

Gamma exponent used when the gamma type is power (custom). The core's default is 2.22.

Default: 2.22 Level: Advanced Applies at the next launch of the game

Options: 1.8 · 2.0 · 2.2 · 2.22 · 2.4 · 2.6 · 2.8

Only applies with “TV gamma curve” set to Custom power.

Keep at least this much of the width [Display] present_safe_area_x

When the picture would get bars at the sides or top, how much of its width must stay on screen; below 100 the edges may be cut instead of drawing bars.

Default: 90% Level: Advanced Applies at the next launch of the game Range: 50 to 100%

Keep at least this much of the height [Display] present_safe_area_y

When the picture would get bars at the top or sides, how much of its height must stay on screen; below 100 the edges may be cut instead of drawing bars.

Default: 90% Level: Advanced Applies at the next launch of the game Range: 50 to 100%

Draw resolution-scaled texture offsets [GPU] draw_resolution_scaled_texture_offsets

Scale texture fetch offsets with the resolution scale for more correct shadows and bloom

Default: On Level: All Applies at the next launch of the game

Resolve scale: fill half-pixel offset [GPU] resolve_resolution_scale_fill_half_pixel_offset

With resolution scaling, patch edge gaps from the half-pixel offset; some games need it to render

Default: On Level: All Applies at the next launch of the game

Present render-pass clear [Display] present_render_pass_clear

Clear the whole screen via the render pass instead of separate clears of the letterbox bars

Default: On Level: All Applies at the next launch of the game

Performance #

21 settings · Essential 2, Advanced 10, All 9

Frame rate limit [GPU] framerate_limit

Caps how many frames the emulator presents per second. The console never went above 60, so frames beyond your screen's refresh are just heat and battery. Unlimited lets it run as fast as it can

Default: Unlimited Level: Essential Applies at the next launch; can also change live from the in-game menu

Options: 60 FPS · 30 FPS · 45 FPS · 90 FPS · 120 FPS · Unlimited

Cap guest display refresh (VSync) [GPU] guest_display_refresh_cap

Cap vblanks at the console's 50/60Hz rate; off lets the game run as fast as possible

Default: On Level: Essential Applies at the next launch of the game

Asynchronous shader compilation [GPU] async_shader_compilation

Creates shaders and pipelines on background threads: no stutter while a scene is new, but its first frames may miss an object. Off creates them on the spot: stutter, nothing missing.

Default: On Level: Advanced Applies at the next launch of the game

Interpret vertex shaders while they compile [GPU] async_shader_vs_interpreter new in the interface

Draws new vertex shaders with the interpreter until their compiled version is ready, instead of stalling on the translation.

Default: On Level: Advanced Applies at the next launch of the game

Only applies with “Asynchronous shader compilation” set to On.

Skip draws until the shader is ready [GPU] async_shader_skip_draws new in the interface

Skips draws whose shader cannot be used yet (tessellation, for one) until it compiles in the background. Avoids stutter; the geometry shows up a few frames later.

Default: On Level: Advanced Applies at the next launch of the game

Create stored pipelines when a game starts [GPU] pipeline_storage_precreate new in the interface

Creates, when a game starts, the pipelines earlier sessions used, so they do not compile mid-game. Off still reuses the stored shaders.

Default: On Level: Advanced Applies at the next launch of the game

Store shaders [GPU] store_shaders

Keeps translated shaders and loads them when the game starts again, so a second session stutters less

Default: On Level: Advanced Applies at the next launch of the game

Precise game waits [Kernel] precise_guest_delays new in the interface

Serves the game's waits with sub-millisecond accuracy. A plain system sleep overshoots and lengthens every frame.

Default: On Level: Advanced Applies at the next launch of the game

Audio performance hint (ADPF) [APU] apu_performance_hint new in the interface

Registers an ADPF performance hint session over the dispatch and audio threads so the system holds clocks for the audio deadline.

Default: On Level: Advanced Applies at the next launch of the game

Force maximum GPU clocks [Vulkan] adrenotools_force_max_clocks

Force the GPU to its maximum clocks via the custom driver; more speed, more heat and battery drain.

Default: Off Level: Advanced Applies at the next launch of the game

Request maximum clocks again every [Vulkan] adrenotools_turbo_reassert_seconds new in the interface

The max-clocks request is lost when the app leaves the foreground; this asks again every this many seconds after resuming. 0 asks only at start. Needs Force max GPU clocks.

Default: 5 s Level: Advanced Applies at the next launch of the game Range: 0 to 30 s

Only applies with “Force maximum GPU clocks” set to On.

Only with Force maximum GPU clocks on.

Pipeline creation threads [Vulkan] vulkan_pipeline_creation_threads

Threads that create pipelines in the background. 0 creates them on the spot

Default: 4 Level: Advanced Applies at the next launch of the game Range: 0 to 5

Submit to the GPU every N draws [GPU] vulkan_mid_frame_submission_draws

Submit GPU work after this many draws instead of once per frame; 0 off, too low hurts tiled GPUs.

Default: 1,300 Level: All Applies at the next launch of the game Range: 0 to 4,096, in steps of 50

Game scheduler (cooperative fibers) [Kernel] guest_scheduler

Run guest threads as cooperative fibers on a few host threads instead of one thread each; takes effect next launch.

Default: On Level: All Applies at the next launch of the game

Guest scheduler quantum (us) [Kernel] guest_scheduler_quantum_us

How long a guest thread runs before yielding to another; lower is fairer but switches more often

Default: 1,000 µs Level: All Applies at the next launch of the game Range: 250 to 8,000 µs, in steps of 250

Only applies with “Game scheduler (cooperative fibers)” set to On.

Texture cache soft limit (MB) [GPU] texture_cache_memory_limit_soft

Texture cache size in MB above which old unused textures start being evicted

Default: 384 MB Level: All Applies at the next launch of the game Range: 384 to 4,096 MB, in steps of 64

Texture cache hard limit (MB) [GPU] texture_cache_memory_limit_hard

Host texture memory cap in MB; textures above it are destroyed as soon as possible

Default: 768 MB Level: All Applies at the next launch of the game Range: 512 to 4,096 MB, in steps of 64

GPU stall spin iterations [GPU] gpu_stall_spin_iterations

How long the graphics thread busy-waits for the game to send more work before going to sleep. Lower frees up a CPU core and cuts heat; too low can add a little latency to each batch of drawing. 0 sleeps immediately

Default: 32 Level: All Applies at the next launch of the game Range: 0 to 512

Ignore thread affinities [Kernel] ignore_thread_affinities

Ignores game-requested CPU core pinning and lets the host schedule threads freely

Default: On Level: All Applies at the next launch of the game

Ignore thread priorities [Kernel] ignore_thread_priorities

Ignores game-requested thread priorities and lets the host schedule threads normally

Default: On Level: All Applies at the next launch of the game

Time scalar [General] time_scalar

Speeds up or slows down guest time (1 = normal, 2 = double speed, 0.5 = half)

Default: 1 Level: All Applies at the next launch of the game Range: 1 to 8

Audio #

10 settings · Essential 1, Advanced 2, All 7

Volume [APU] volume new in the interface

Volume of all audio output. The in-game menu still changes it live; this is the starting value.

Default: 100% Level: Essential Applies at the next launch; can also change live from the in-game menu Range: 0 to 100%, in steps of 5

Audio buffer depth [APU] apu_aaudio_buffer_bursts

How much audio the device buffers ahead. Lower means less audio delay; too low and audio breaks up on slower devices.

Default: 4 Level: Advanced Applies at the next launch of the game Range: 2 to 8

Adaptive audio buffer [APU] apu_aaudio_adaptive_buffer

After audio breaks up, buffer one step more (up to three times the depth above); after 30 s without a break, one step less. Fewer dropouts in slow scenes, the chosen delay otherwise.

Default: Off Level: Advanced Applies at the next launch of the game

APU backend [APU] apu

Audio output backend to use (AAudio, OpenSL ES, or no audio)

Default: aaudio Level: All Applies at the next launch of the game

Options: nop · aaudio · opensles

XMA decoder [APU] xma_decoder

Which XMA audio decoder to use, trading stability against legacy Xenia behavior.

Default: new Level: All Applies at the next launch of the game

Options: new · old · master · fake

Use dedicated XMA thread [APU] use_dedicated_xma_thread

Decodes XMA audio on its own thread; disabling may sound better but costs performance

Default: On Level: All Applies at the next launch of the game

Max queued frames [APU] apu_max_queued_frames

Max buffered audio frames (4-64); lower cuts audio delay but may cause stutter

Default: 8 Level: All Applies at the next launch of the game Range: 4 to 64

Audio pump top-up [APU] apu_pump_topup

Keep the audio buffer full by submitting ahead; turn off if a game's audio distorts

Default: On Level: All Applies at the next launch of the game

Enable XMP [APU] enable_xmp

Enables Xbox 360 Music Player playback

Default: On Level: All Applies at the next launch of the game

XMP default volume [Console] xmp_default_volume

Default music player volume (0-100) used when the game doesn't set one

Default: 70% Level: All Applies at the next launch of the game Range: 0 to 100%, in steps of 5

Controls #

6 settings · Essential 4, Advanced 1, All 1

Show on-screen controller [HID] show_touch_overlay

Draw the on-screen controller while playing. Starts off when a physical controller was attached on first launch, on when none was. While on, a controller playing P1 puts it aside until it disconnects (touch layout option)

Default: On Level: Essential Applies at the next launch; can also change live from the in-game menu

Controller vibration [HID] vibration new in the interface

Turns the vibration a game asks for on or off.

Default: On Level: Essential Applies at the next launch of the game

Left stick dead zone [HID] left_stick_deadzone_percentage

Ignores small movements of the left stick, for a controller whose stick drifts. It adds to the small dead zone the app already applies.

Default: Off Level: Essential Applies at the next launch of the game

Options: Off · 5% · 10% · 15% · 20% · 25% · 30%

Right stick dead zone [HID] right_stick_deadzone_percentage

Ignores small movements of the right stick, for a controller whose stick drifts. It adds to the small dead zone the app already applies.

Default: Off Level: Essential Applies at the next launch of the game

Options: Off · 5% · 10% · 15% · 20% · 25% · 30%

Send the Guide button to the game [HID] guide_button new in the interface

Forwards Guide button presses to the game.

Default: On Level: Advanced Applies at the next launch of the game

HID backend [HID] hid

Input backend used for controllers; 'any' picks the first one available

Default: android Level: All Applies at the next launch of the game

Options: android · nop

Compatibility #

41 settings · Essential 0, Advanced 6, All 35

Refresh memory page state [GPU] clear_memory_page_state

Makes GPU writes the game reads back visible. Fixes missing models in Team Ninja games. Costs a pass per frame: use it per game

Default: Off Level: Advanced Applies at the next launch of the game

Convert float24 depth in the pixel shader [GPU] depth_float24_convert_in_pixel_shader

Avoids GPU hangs (device lost) on Adreno with Turnip in some games, such as Ninja Gaiden II

Default: Off Level: Advanced Applies at the next launch of the game

Occlusion query [GPU] occlusion_query

How visibility queries (lens flares, culling, auto-exposure) are answered: faked, async, or exact.

Default: Fast Level: Advanced Applies at the next launch of the game

Options: Simulated · Fast · Fast, precise zeros · Strict

Wait for resolve readbacks [GPU] readback_resolve_sync new in the interface

Waits for the GPU after each copy to the game's memory so it is coherent in the same frame. Off copies without waiting.

Default: On Level: Advanced Applies at the next launch of the game

Precise interpolation [GPU] precise_interpolation new in the interface

Interpolates pixel shader inputs exactly as the console does. Fixes noise in games such as Perfect Dark and Tenchu Z. Needs barycentrics in the driver (VK_KHR_fragment_shader_barycentric).

Default: On Level: Advanced Applies at the next launch of the game

Needs barycentrics in the driver (VK_KHR_fragment_shader_barycentric).

Decal depth in the shader [GPU] depth_bias_shader_offset new in the interface

Avoids Z-fighting in games that rely on tiny depth bias values. Small cost.

Default: Off Level: Advanced Applies at the next launch of the game

CPU readback of resolves [GPU] readback_resolve

Which resolves are copied back to guest RAM; UMA reads mapped memory directly and is the only mode that works on Adreno.

Default: UMA (direct) Level: All Applies at the next launch of the game

Options: UMA (direct) · Fast · All · Off

Memory export visible to the CPU [GPU] memexport_enable new in the interface

Makes memory export output visible to the CPU, for games that read back what the GPU exported. No effect on Turnip, which lacks VK_EXT_external_memory_host.

Default: Off Level: All Applies at the next launch of the game

No effect on Turnip: it lacks VK_EXT_external_memory_host.

Reverse depth straight to the driver [Vulkan] vulkan_allow_reverse_z new in the interface

Passes reverse depth ranges (inverse-Z) directly to the driver. Turn off if the driver draws them wrong.

Default: On Level: All Applies at the next launch of the game

Stack multiplier (hack) [Kernel] stack_size_multiplier_hack new in the interface

Hack for games with setjmp/longjmp problems.

Default: 1× Level: All Applies at the next launch of the game Range: 1 to 8×

Shorten counted waits [CPU] collapse_memory_delay_spins

Skips the real time of the game's wait loops. Turn off for a game that depends on that time

Default: On Level: All Applies at the next launch of the game

Depth float24 round [GPU] depth_float24_round

Round to nearest instead of truncating when converting depth to 24-bit float; off is recommended

Default: Off Level: All Applies at the next launch of the game

Depth transfer not-equal test [GPU] depth_transfer_not_equal_test

Skip rewriting unchanged depth during depth transfers to keep depth compression effective

Default: On Level: All Applies at the next launch of the game

Half-pixel offset [GPU] half_pixel_offset

Emulate the console's half-pixel offset; correct for most games, off may fix slight UI blur in a few

Default: On Level: All Applies at the next launch of the game

Native 2x MSAA [GPU] native_2x_msaa

Use the GPU's real 2x MSAA when available instead of emulating it with 4x samples

Default: On Level: All Applies at the next launch of the game

Render target path [GPU] render_target_path

Render target emulation path: fast fixed-function or slower pixel-exact software blending

Default: performance Level: All Applies at the next launch of the game

Options: performance · accuracy

snorm16 render target full range [GPU] snorm16_render_target_full_range

Remap 16-bit render targets to keep their full value range at some cost to blending correctness

Default: On Level: All Applies at the next launch of the game

Non-seamless cube map [GPU] non_seamless_cube_map

Skip filtering across cube map face edges where possible to match Direct3D 9 behavior

Default: On Level: All Applies at the next launch of the game

Accuracy: per-axis gradient LOD bias [GPU] texture_gradient_exp_bias

Honor per-axis mipmap bias when sampling; more accurate but adds shader cost to every gradient texture fetch

Default: Off Level: All Applies at the next launch of the game

Accuracy: integer num_format texture scaling [GPU] texture_integer_num_format

Rescale integer-format textures to guest units; more accurate but adds shader cost to every affected texture fetch

Default: Off Level: All Applies at the next launch of the game

Accuracy: resolve number formats and gamma [GPU] accurate_resolve_number_formats

Handle signed/integer resolve destinations and gamma-decode 8_8_8_8_GAMMA sources; a few titles need it, but it enlarges every full resolve shader and costs significant frame rate on mobile GPUs

Default: Off Level: All Applies at the next launch of the game

Accuracy: full-resolve destination packing [GPU] resolve_copy_dest_number_packing

Packs full-resolve destinations by copy_dest_number instead of assuming an unsigned fraction; only has an effect with accurate resolve number formats on

Default: Off Level: All Applies at the next launch of the game

MRT EDRAM used-range clamp to min [GPU] mrt_edram_used_range_clamp_to_min

With multiple render targets, estimate EDRAM writes conservatively to reduce copying between them

Default: On Level: All Applies at the next launch of the game

Allow invalid fetch constants [GPU] gpu_allow_invalid_fetch_constants

Tolerate invalid texture/vertex fetch constants instead of failing; works around errors in some games

Default: On Level: All Applies at the next launch of the game

Convert quad lists to triangle lists [GPU] force_convert_quad_lists_to_triangle_lists

Always convert quad lists to triangles on the CPU even when the GPU can draw them natively

Default: Off Level: All Applies at the next launch of the game

Convert triangle fans to lists [GPU] force_convert_triangle_fans_to_lists

Always convert triangle fans to triangle lists on the CPU even when the GPU supports fans

Default: Off Level: All Applies at the next launch of the game

Unclipped draw VS on CPU [GPU] execute_unclipped_draw_vs_on_cpu

Run unclipped draws' vertex shaders on the CPU to estimate EDRAM use; faster and avoids corruption

Default: On Level: All Applies at the next launch of the game

Unclipped draw VS on CPU (scissor) [GPU] execute_unclipped_draw_vs_on_cpu_with_scissor

Run CPU vertex-shader extent estimation even on scissored unclipped draws; may add CPU cost

Default: Off Level: All Applies at the next launch of the game

Unclipped draw VS on CPU (PSI backend) [GPU] execute_unclipped_draw_vs_on_cpu_for_psi_render_backend

Also apply CPU vertex-shader extent estimation with the pixel shader interlock backend; fewer barriers

Default: On Level: All Applies at the next launch of the game

value_convert_7e3_8888_reuse [GPU] value_convert_7e3_8888_reuse

Decode HDR EDRAM tiles reused as 8-bit color before blending, avoiding garbage-colored backgrounds

Default: On Level: All Applies at the next launch of the game

Inline MMIO access [CPU] inline_mmio_access

Inlines constant-address hardware (MMIO) loads and stores into compiled code for speed

Default: On Level: All Applies at the next launch of the game

Disable context promotion [CPU] disable_context_promotion

Turns off a CPU optimization that some sports games depend on being absent; fixes them at a cost to performance. Takes effect next time a game starts

Default: Off Level: All Applies at the next launch of the game

Store all context values [CPU] store_all_context_values

Keeps dead register stores in JIT output to aid debugging, at a performance cost

Default: Off Level: All Applies at the next launch of the game

Clock no scaling [CPU] clock_no_scaling

Bypasses guest clock scaling and pulls time straight from the host; ignores time scalar

Default: Off Level: All Applies at the next launch of the game

Clock source raw [CPU] clock_source_raw

Uses the raw CPU counter (CNTVCT) as the time source instead of OS clock calls

Default: Off Level: All Applies at the next launch of the game

mmap address high [Memory] mmap_address_high

High address slot (1-124, in 4GB steps) for guest memory; change if mappings collide and crash

Default: 8 Level: All Applies at the next launch of the game Range: 2 to 63

Protect zero page [Memory] protect_zero

Blocks reads and writes to the zero page so null-pointer accesses fault instead of corrupting

Default: On Level: All Applies at the next launch of the game

Protect on release [Memory] protect_on_release

Locks freed memory so any later access faults, catching use-after-free bugs

Default: Off Level: All Applies at the next launch of the game

Scribble heap [Memory] scribble_heap

Fills newly allocated heap memory with a junk value to expose uninitialized-memory bugs

Default: Off Level: All Applies at the next launch of the game

Writable executable memory [Memory] writable_executable_memory

Allows memory that is both writable and executable, mimicking platforms that permit it

Default: On Level: All Applies at the next launch of the game

Ignore offset for ranged allocations [Memory] ignore_offset_for_ranged_allocations

Drops the 4K offset on ranged physical allocations; some games require the exact lower address

Default: Off Level: All Applies at the next launch of the game

Driver and Vulkan #

19 settings · Essential 1, Advanced 0, All 18

Custom Vulkan driver [Vulkan] vulkan_lib_path

Path to a custom Vulkan driver library (e.g. Turnip) to load instead of the system driver

Level: Essential Applies an action, runs right away

Turnip debug mode [Vulkan] turnip_debug

Comma-separated TU_DEBUG flags for the Turnip driver; e.g. sysmem disables tiled rendering (Turnip only).

Default: sysmem Level: All Applies at the next launch of the game

Options: (none) · sysmem · sysmem, nolrz · sysmem, noubwc

Dynamic rendering [Vulkan] vulkan_dynamic_rendering new in the interface

Uses VK_KHR_dynamic_rendering instead of traditional render passes. May improve or worsen performance depending on the driver.

Default: On Level: All Applies at the next launch of the game

Avoid geometry shaders [Vulkan] vulkan_avoid_geometry_shaders new in the interface

On tile-based GPUs (Adreno/Turnip), routes point sprites and quad lists through cheaper paths. Read when the GPU starts.

Default: On Level: All Applies at the next launch of the game

Native D24 depth [Vulkan] vulkan_depth_unorm24 new in the interface

Uses the D24_UNORM_S8_UINT format when the driver supports it. Off forces the float32 emulation, as on Adreno's own driver.

Default: On Level: All Applies at the next launch of the game

Sparse shared memory [Vulkan] vulkan_sparse_shared_memory

Use sparse binding for guest memory; disabling uses a full 512 MB buffer but helps some GPU debuggers

Default: On Level: All Applies at the next launch of the game

Extended dynamic state [Vulkan] vulkan_dynamic_pipeline_state

Use dynamic state for cull/depth/blend to cut pipeline permutations and shader-compile stutter

Default: On Level: All Applies at the next launch of the game

Async skip draws [Vulkan] vulkan_async_skip_draws

Drop draws whose shaders are still compiling instead of waiting; brief pop-in instead of stutter

Default: On Level: All Applies at the next launch of the game

Placeholder pipelines [Vulkan] vulkan_placeholder_pipelines

Render a stand-in shader while the real one compiles, instead of skipping the draw until it is ready

Default: Off Level: All Applies at the next launch of the game

Allow present mode: immediate [Vulkan] vulkan_allow_present_mode_immediate

Allow immediate presentation for lowest latency, at the cost of possible tearing

Default: On Level: All Applies at the next launch of the game

Allow present mode: mailbox [Vulkan] vulkan_allow_present_mode_mailbox

Allow mailbox presentation, giving low latency without tearing when the driver supports it. Off by default: on HyperOS the image could freeze after minutes of play with it

Default: Off Level: All Applies at the next launch of the game

Allow present mode: FIFO relaxed [Vulkan] vulkan_allow_present_mode_fifo_relaxed

Allow relaxed vsync presentation, which may tear when frames miss the display refresh rate

Default: On Level: All Applies at the next launch of the game

In-pass EDRAM resolve [Vulkan] vulkan_in_pass_resolve

Resolve EDRAM copies inside the render pass on tiled GPUs, avoiding a pass break per resolve

Default: On Level: All Applies at the next launch of the game

Resolve-to-texture: store [Vulkan] vulkan_resolve_to_texture

Have in-pass resolves write the destination texture directly; needs the promote toggle, pairs with skip upload

Default: On Level: All Applies at the next launch of the game

Resolve-to-texture: promote [Vulkan] vulkan_resolve_to_texture_promote

Allocate resolve-target textures so a resolve can write them directly; costs framebuffer compression on those textures

Default: On Level: All Applies at the next launch of the game

Resolve-to-texture: skip upload [Vulkan] vulkan_resolve_to_texture_serve

Skip re-uploading textures an in-pass resolve already filled this frame; this is where the round-trip traffic disappears

Default: On Level: All Applies at the next launch of the game

Cache texture descriptors [Vulkan] vulkan_cache_texture_descriptors

Reuse texture/sampler descriptor sets across unchanged draws; disable to debug texture corruption

Default: On Level: All Applies at the next launch of the game

Texture descriptor gate: edge (off = hash) [Vulkan] vulkan_texture_descriptor_reuse_edge

Use upstream's descriptor reuse check instead of the content-hash one, for A/B comparison

Default: Off Level: All Applies at the next launch of the game

Only applies with “Cache texture descriptors” set to On.

GPU backend [GPU] gpu

Graphics backend to use for rendering (Vulkan or null)

Default: vulkan Level: All Applies at the next launch of the game

Options: vulkan · null

Console and system #

27 settings · Essential 6, Advanced 9, All 12

User language [Console] user_language

Console language ID reported to games (1=English, 2=Japanese, 3=German, …)

Default: English Level: Essential Applies at the next launch of the game

Options: English · Japanese · German · French · Spanish · Italian · Korean · Chinese · Portuguese · Polish · Russian · Swedish · Turkish · Norwegian Bokmål · Dutch · Chinese

User country [Console] user_country

Console country/region ID reported to games

Default: United States Level: Essential Applies at the next launch of the game

Options: United Arab Emirates · Albania · Armenia · Argentina · Austria · Australia · Azerbaijan · Belgium · Bulgaria · Bahrain · Brunei · Bolivia · Brazil · Belarus · Belize · Canada · Switzerland · Chile · China · Colombia · Costa Rica · Czechia · Germany · Denmark · Dominican Republic · Algeria · Ecuador · Estonia · Egypt · Spain · Finland · Faroe Islands · France · United Kingdom · Georgia · Greece · Guatemala · Hong Kong SAR China · Honduras · Croatia · Hungary · Indonesia · Ireland · Israel · India · Iraq · Iran · Iceland · Italy · Jamaica · Jordan · Japan · Kenya · Kyrgyzstan · South Korea · Kuwait · Kazakhstan · Lebanon · Liechtenstein · Lithuania · Luxembourg · Latvia · Libya · Morocco · Monaco · North Macedonia · Mongolia · Macao SAR China · Maldives · Mexico · Malaysia · Nicaragua · Netherlands · Norway · New Zealand · Oman · Panama · Peru · Philippines · Pakistan · Poland · Puerto Rico · Portugal · Paraguay · Qatar · Romania · Russia · Saudi Arabia · Sweden · Singapore · Slovenia · Slovakia · El Salvador · Syria · Thailand · Tunisia · Türkiye · Trinidad & Tobago · Taiwan · Ukraine · United States · Uruguay · Uzbekistan · Venezuela · Vietnam · Yemen · South Africa

Apply patches [General] apply_patches

Applies user patch files to games when they load

Default: On Level: Essential Applies at the next launch of the game

Android keyboard for game text input [UI] android_soft_keyboard

Pops up the Android keyboard when a game asks you to type (gamertags, save names). With this off the game is answered with its own default text

Default: On Level: Essential Applies at the next launch of the game

Android dialog for game message boxes [UI] android_message_box

Shows a game's own prompts (Xbox LIVE sign-in, save confirmations) as a dialog you answer. With this off the game is answered with whichever button it pre-selected

Default: On Level: Essential Applies at the next launch of the game

Show achievement notification [UI] show_achievement_notification

Shows a pop-up notification on screen when you unlock an achievement

Default: On Level: Essential Applies at the next launch of the game

Achievement where the game asks [UI] achievement_notification_position_by_game new in the interface

Off, the achievement notification always shows at the bottom centre.

Default: Off Level: Advanced Applies at the next launch of the game

Executable to launch [General] launch_module new in the interface

Executable on the disc or package to launch instead of default.xex. Blank uses the default.

Default: empty Level: Advanced Applies at the next launch of the game

Mount memory unit (MU) [Storage] mount_memory_unit new in the interface

Mounts a memory unit (MU) like the console's.

Default: Off Level: Advanced Applies at the next launch of the game

Apply title updates [Kernel] apply_title_update

Applies installed title updates when launching a game.

Default: On Level: Advanced Applies at the next launch of the game

Allow incompatible title updates [Kernel] allow_incompatible_title_update

Applies title updates even when their signature doesn't match the game.

Default: On Level: Advanced Applies at the next launch of the game

Networking [Kernel] network_enabled

Lets games see a network connection

Default: On Level: Advanced Applies at the next launch of the game

License mask [Content] license_mask

Which content licenses games see as owned: none, the first, or all (unlocks full versions of arcade games)

Default: disable Level: Advanced Applies at the next launch of the game

Options: disable · first · all

Video standard [Console] video_standard

Video signal standard the console reports (NTSC, NTSC-J, or PAL); can affect region behavior.

Default: NTSC Level: Advanced Applies at the next launch of the game

Options: NTSC · NTSC-J · PAL-60

50 Hz mode [Console] use_50Hz_mode

Runs PAL games in 50Hz (PAL-50) mode instead of 60Hz.

Default: Off Level: Advanced Applies at the next launch of the game

Console type [Kernel] console_type new in the interface

Console type reported to the game.

Default: Retail Level: All Applies at the next launch of the game

Options: Retail · Development kit · Test kit

Extra command line for the game [Kernel] cl new in the interface

Arguments handed to the game when it starts.

Default: empty Level: All Applies at the next launch of the game

End when a game thread crashes [General] guest_crash_is_fatal new in the interface

Writes a full report and ends the game, instead of leaving the thread stopped (which looks like a hang). Turn off only to inspect.

Default: On Level: All Applies at the next launch of the game

AV pack [Video] avpack

Emulated AV cable/connection type reported to games (component, SCART, HDMI, VGA, etc.)

Default: HDMI Level: All Applies at the next launch of the game

Options: PAL-60 Component (SD) · Unused · PAL-60 SCART · 480p Component (HD) · HDMI+A · PAL-60 Composite/S-Video · VGA · TV PAL-60 · HDMI

Interlaced [Video] interlaced

Reports an interlaced video mode to games instead of progressive scan

Default: Off Level: All Applies at the next launch of the game

Enable 3D mode [Video] enable_3d_mode

Lets titles enable stereoscopic 3D output if they support it

Default: Off Level: All Applies at the next launch of the game

Storage selection dialog [UI] storage_selection_dialog

Shows a storage device picker when a game asks; off auto-selects a device

Default: Off Level: All Applies at the next launch of the game

Headless [UI] headless

Suppresses in-game system dialogs, answering prompts automatically with defaults. Text-entry prompts are exempt while the Android keyboard setting is on

Default: On Level: All Applies at the next launch of the game

Mount scratch [Storage] mount_scratch

Mounts the scratch: drive some games use for temporary files

Default: Off Level: All Applies at the next launch of the game

Mount cache [Storage] mount_cache

Mounts the cache: drive games use for cached data; some titles need it to run properly

Default: Off Level: All Applies at the next launch of the game

Allow plugins [General] allow_plugins

Allows loading homebrew plugin/trainer XEX modules per title; experimental

Default: Off Level: All Applies at the next launch of the game

Staging mode [Kernel] staging_mode

Runs dashboards in staging/preview mode so they render extra debug information

Default: Off Level: All Applies at the next launch of the game

Debugging #

27 settings · Essential 1, Advanced 0, All 26

Export session logs to Downloads [Logging] dump_session_logs

Exports this session's emulator log and logcat as a zip to Downloads

Level: Essential Applies an action, runs right away

Log level [Logging] log_level

Maximum log verbosity: 0 errors, 1 warnings, 2 info, 3 debug.

Default: Info Level: All Applies at the next launch of the game

Options: Error · Warning · Info · Debug

Log filter [Logging] log_mask

Which subsystems write to the log: everything, only one (GPU, audio, kernel or CPU), or all but one. Lines with no subsystem always stay; takes effect at the next start.

Default: Everything Level: All Applies at the next launch of the game

Options: Everything · GPU only · Audio only · Kernel only · CPU only · All but the kernel · All but the GPU

Debug overlay [Display] show_debug_overlay

Show an on-screen overlay with FPS, frame times, and in-flight shader compiles.

Default: Off Level: All Applies at the next launch of the game

Log sessions to keep [Logging] log_sessions_keep

How many past sessions' log zips to keep in the logs folder before old ones are rotated out.

Default: 4 Level: All Applies at the next launch of the game Range: 1 to 16

Flush log [Logging] flush_log

Flushes the log file after each batch of lines; keeps crash logs intact but slightly slower

Default: On Level: All Applies at the next launch of the game

Log string-format kernel calls [Logging] log_string_format_kernel_calls

Logs guest calls to kernel string formatters like sprintf

Default: Off Level: All Applies at the next launch of the game

Log high-frequency kernel calls [Logging] log_high_frequency_kernel_calls

Logs even very frequent kernel calls; extremely verbose and slows things down

Default: Off Level: All Applies at the next launch of the game

Log debug messages [Vulkan] vulkan_log_debug_messages

Write Vulkan debug-utils messages to the emulator log instead of the system debug output

Default: Off Level: All Applies at the next launch of the game

Validation layers [Vulkan] vulkan_validation

Vulkan validation level: off, standard, +synchronization, +GPU-assisted; higher catches more bugs but is much slower

Default: Off Level: All Applies at the next launch of the game

RenderDoc capture layer [Vulkan] vulkan_renderdoc_capture

Load the RenderDoc capture layer so frames can be captured by attaching from qrenderdoc

Default: Off Level: All Applies at the next launch of the game

Log ringbuffer kickoff initiator BTs [GPU] log_ringbuffer_kickoff_initiator_bts

Log a pseudo-stacktrace of the guest thread that kicked off the ringbuffer (debug builds only)

Default: Off Level: All Applies at the next launch of the game

Log guest-driven GPU register writes [GPU] log_guest_driven_gpu_register_written_values

Log every GPU register write made by the guest (debug builds only)

Default: Off Level: All Applies at the next launch of the game

Trace GPU stream [GPU] trace_gpu_stream

Trace all GPU command packets for debugging; very slow

Default: Off Level: All Applies at the next launch of the game

Guest scheduler stats logging [Kernel] guest_scheduler_stats

Log scheduler counters once a second; use to check re-poll rate and I/O queueing when diagnosing stalls

Default: Off Level: All Applies at the next launch of the game

Kernel PIX [Kernel] kernel_pix

Exposes the PIX GPU profiler interface to the game for debug captures

Default: Off Level: All Applies at the next launch of the game

Kernel cert monitor [Kernel] kernel_cert_monitor

Reports the certification monitor as present to the game (debug/testing feature)

Default: Off Level: All Applies at the next launch of the game

Kernel debug monitor [Kernel] kernel_debug_monitor

Reports a debug monitor (remote debugger) as attached to the game

Default: Off Level: All Applies at the next launch of the game

Validate HIR [CPU] validate_hir

Runs extra validation on the JIT's intermediate code during compilation; slow, for debugging

Default: Off Level: All Applies at the next launch of the game

Trace function references [CPU] trace_function_references

Records function address references during JIT compilation for developer analysis

Default: Off Level: All Applies at the next launch of the game

Trace function coverage [CPU] trace_function_coverage

Records per-instruction coverage statistics for compiled functions; developer debugging aid

Default: Off Level: All Applies at the next launch of the game

Break condition truncate [CPU] break_condition_truncate

Truncates the conditional-breakpoint register value to 32 bits before comparing

Default: On Level: All Applies at the next launch of the game

Break on unimplemented instructions [CPU] break_on_unimplemented_instructions

Breaks into the debugger (or crashes) when an unimplemented PowerPC instruction is hit

Default: On Level: All Applies at the next launch of the game

Break on start [CPU] break_on_start

Breaks into the debugger as soon as the emulator starts

Default: Off Level: All Applies at the next launch of the game

Log delay-collapse rejects [CPU] log_delay_collapse_rejects

Logs each delay loop that the collapse looked at and turned down, with the reason. Diagnostic aid for working out why a game sees no benefit; noisy while a game is loading

Default: Off Level: All Applies at the next launch of the game

Record safepoint addresses (wedge diagnosis) [CPU] log_safepoint_pc

Records where each guest thread last reached a yield point, so a freeze report can say where a stuck thread actually is instead of only where it last called from. Slows the emulator slightly; turn on only when chasing a freeze

Default: Off Level: All Applies at the next launch of the game

FFmpeg verbose [APU] ffmpeg_verbose

Enables verbose FFmpeg output in the log for audio decoding

Default: Off Level: All Applies at the next launch of the game

Type to search every documentation page, the app settings and the TOML keys.

↑ ↓ chooseEnter openEsc close