Skip to content

Settings Reference

This page lists every setting that the SDK registers, and the old setting names that the SDK accepts in their place.

A setting has a full name made of a scope and a name, such as gpu.vsync. Set it in the config file, in the environment or on the command line as --gpu.vsync=false, or from code. See Settings for how settings are declared and which source wins.

Columns

Column Meaning
Default A path default can contain another setting in braces, such as {app.root}, which takes the current value of that setting.
Life See Life.
Meaning Includes the range or the allowed values. Values outside them are rejected.

Life

Life Meaning
live Writable at any time. The new value applies when the code that uses it next reads it.
restart Writable at any time. The new value applies at the next start.
startup only Fixed once the systems start, before App::OnInit.
until launch Fixed when the title launches.

Availability

  • A setting exists while its settings class exists. Each table gives its settings class.
  • The registry keeps a config file or title layer value for a name that no settings class declares, until a settings class that declares the name is added.
  • On the command line, a name that no settings class declares is an error.
  • The SDK reads an environment variable only for a registered setting.

See Unknown Names.

Settings

app

Every program has these settings. App declares app.name, app.root, app.log_root and app.single_instance, and PathSettings declares the other three. See Folders and Storage for how the defaults resolve.

Name Type Default Life Meaning
app.name string "" startup only Base name of the default config file and the log file. Passed to the App constructor and never written to the config file.
app.root path "" startup only Empty means the executable folder.
app.config_file path "{app.root}/{app.name}.toml" startup only Config file loaded at startup.
app.log_root path "{app.root}/logs" startup only Log folder.
app.user_root path "{app.root}/user" startup only Saves and per player data.
app.cache_root path "" startup only Shader and pipeline caches. Empty keeps none.
app.single_instance string "" startup only A lock name. A second copy with the same name fails to start. Empty turns the check off.

clock

Every program has this setting. Declared by ClockSettings in rexbase.

Name Type Default Life Meaning
clock.no_scaling bool false live The guest clock ignores requested time scales.

log

Every program has these settings. Declared by Logger. Each log category adds one more setting, such as log.categories.gpu.

Name Type Default Life Meaning
log.level string "info" live Level for categories without their own. trace, dev, debug, info, warn, error, critical or off.
log.flush_level string "warn" startup only Lowest level that flushes every sink immediately. Same values as log.level.
log.flush_interval i32 1 startup only Seconds between flushes. 0 to 60.
log.console bool true startup only Log to the terminal.
log.debugger bool true startup only Log to an attached debugger, on Windows only.
log.file bool true startup only Log to a file under app.log_root.
log.file_name string "" startup only Empty uses the program name.
log.folder_budget i64 0 startup only Bytes of old log files to keep. 0 keeps all. 0 to 9007199254740992.
log.pattern string "%^%Y-%m-%d %H:%M:%S.%e %Q %-10n %j %v%$" startup only Layout of each line, an spdlog pattern. %Q is the level letter and %j the thread.
log.color bool false startup only Color the terminal output.

perf

Every program has these settings. Declared by PerfSettings in rexbase.

Name Type Default Life Meaning
perf.profiler bool false startup only Start Tracy at startup. Needs a build with Tracy.
perf.alloc_stack_depth i32 0 live Stack frames Tracy captures per allocation. 0 to 32.

apu

Every program has these settings. Declared by AudioSettings.

Name Type Default Life Meaning
apu.driver string "sdl3" startup only none plays no sound and fails in an app that requires audio, such as a TitleApp.
apu.mute bool false live Mute.
apu.mute_unfocused bool false live Mute while the window has no focus.
apu.gain f64 1.0 live Output gain. 0.0 to 4.0.
apu.center f64 1.0 live Center level on a surround device. 0.0 to 2.0.
apu.surround f64 1.0 live Surround level on a surround device. 0.0 to 2.0.
apu.lfe f64 1.0 live LFE level on a surround device. 0.0 to 2.0.
apu.peak_limit f64 0.0 live Silences a stream whose peak stays above it. 0 is off. 0.0 to 8.0.
apu.max_queued_frames u32 8 until launch Frames one stream may queue. 4 to 64.

hid

Every program has these settings. Declared by InputSettings.

  • A keybind is a comma separated list of key chords such as Shift+Up, used while hid.mnk_mode is on.
  • The settings overlay captures a keybind value from the keyboard.
Name Type Default Life Meaning
hid.drivers string "sdl3" startup only Comma separated, in priority order.
hid.shared_pads bool false startup only Every input device goes to user 0.
hid.vibration bool true live Allow vibration.
hid.guide_button bool false live Pass the guide button to the title.
hid.left_stick_deadzone f64 0.0 live 0.0 to 1.0.
hid.right_stick_deadzone f64 0.0 live 0.0 to 1.0.
hid.mnk_mode bool false live Keyboard and mouse act as a gamepad.
hid.mnk_mouse bool false live The mouse moves the right stick.
hid.mnk_sensitivity f64 1.0 live Mouse to stick scale. 0.01 to 100.0.
hid.mnk_passthrough bool false live Keys reach the title as keystrokes.
hid.keybind_a string "Semicolon,Space" live A button.
hid.keybind_b string "Quote,Backspace" live B button.
hid.keybind_x string "L" live X button.
hid.keybind_y string "P" live Y button.
hid.keybind_left_trigger string "Q,I" live Left trigger.
hid.keybind_right_trigger string "E,O" live Right trigger.
hid.keybind_left_shoulder string "1" live Left shoulder.
hid.keybind_right_shoulder string "3" live Right shoulder.
hid.keybind_lstick_up string "W" live Left stick up.
hid.keybind_lstick_down string "S" live Left stick down.
hid.keybind_lstick_left string "A" live Left stick left.
hid.keybind_lstick_right string "D" live Left stick right.
hid.keybind_lstick_press string "F" live Left stick press.
hid.keybind_rstick_up string "Up" live Right stick up.
hid.keybind_rstick_down string "Down" live Right stick down.
hid.keybind_rstick_left string "Left" live Right stick left.
hid.keybind_rstick_right string "Right" live Right stick right.
hid.keybind_rstick_press string "K" live Right stick press.
hid.keybind_dpad_up string "Shift+Up" live D pad up.
hid.keybind_dpad_down string "Shift+Down" live D pad down.
hid.keybind_dpad_left string "Shift+Left" live D pad left.
hid.keybind_dpad_right string "Shift+Right" live D pad right.
hid.keybind_back string "Z,Tab" live Back button.
hid.keybind_start string "X,Return" live Start button.
hid.keybind_guide string "" live Guide button.

hid.sdl

This setting exists while the SDL3 input driver is selected. Declared by SDL3InputDriver in rexhid-sdl3.

Name Type Default Life Meaning
hid.sdl.mappings_file path "{app.root}/gamecontrollerdb.txt" startup only SDL gamepad mappings file.

gpu

Every program has these settings. Declared by GraphicsSettings.

Name Type Default Life Meaning
gpu.driver string "any" startup only d3d12, vulkan, null, none or any. any is d3d12 on Windows and vulkan elsewhere. none fails in an app that requires graphics, such as a TitleApp.
gpu.vsync bool true live Wait for vblank when presenting.
gpu.frame_limit f64 0.0 live Most presents per second. 0 is no limit. 0.0 to 1000.0.
gpu.resolution_scale_x i32 1 restart Horizontal draw resolution scale. 1 to 8.
gpu.resolution_scale_y i32 1 restart Vertical draw resolution scale. 1 to 8.
gpu.anisotropic_override i32 3 live -1 keeps the title's choice, 0 is off, 1 to 5 select 1x to 16x.

gpu.xenos

These settings exist while a Xenos driver is initialized, with any host API. Declared by XenosSettings, a base class of XenosGraphicsDriverBase.

Name Type Default Life Meaning
gpu.xenos.present_letterbox bool true live Keep the title's aspect ratio with bars.
gpu.xenos.present_safe_area_x i32 90 live The horizontal title safe area as a percent of the screen. 50 to 100.
gpu.xenos.present_safe_area_y i32 90 live The vertical title safe area as a percent of the screen. 50 to 100.
gpu.xenos.present_dither bool false live Dither when presenting to an 8 bit swap chain.
gpu.xenos.present_allow_overscan_cutoff bool false live Allow the presented image to cut off the overscan area.
gpu.xenos.readback_resolve string "none" live CPU readback of render to texture resolves. none, fast, some or full.
gpu.xenos.readback_memexport bool true live Read back memexport writes to guest memory.
gpu.xenos.query_occlusion_fake_sample_count i32 1000 live The sample count reported for an occlusion query. 1 to 100000.
gpu.xenos.allow_invalid_fetch_constants bool false live Allow fetch constants that are invalid.
gpu.xenos.dump_shaders string "" live Shader dump folder. Empty dumps nothing.
gpu.xenos.swap_post_effect string "none" restart none, fxaa or fxaa_extreme.
gpu.xenos.store_shaders bool true live Cache compiled shaders on disk.
gpu.xenos.mrt_edram_used_range_clamp_to_min bool true live Clamp the used EDRAM range of multiple render targets to the minimum.
gpu.xenos.execute_unclipped_draw_vs_on_cpu_for_psi_render_backend bool true live Run the vertex shader of an unclipped draw on the CPU when the render backend uses pixel shader interlock.
gpu.xenos.texture_cache_memory_limit_render_to_texture i32 24 restart The texture cache memory limit for render to texture, in MB. 1 to 256.
gpu.xenos.texture_cache_memory_limit_soft i32 384 restart The soft texture cache memory limit in MB. 64 to 4096.
gpu.xenos.texture_cache_memory_limit_hard i32 768 restart The hard texture cache memory limit in MB. 128 to 8192.
gpu.xenos.texture_cache_memory_limit_soft_lifetime i32 30 live How many seconds a texture may exceed the soft limit before it is removed. 1 to 3600.
gpu.xenos.pre_mask_resolve_l2_block bool true live Mask scaled resolve L2 blocks to the write range before iterating.
gpu.xenos.force_convert_line_loops_to_strips bool false live Convert line loops to line strips.
gpu.xenos.force_convert_quad_lists_to_triangle_lists bool false live Convert quad lists to triangle lists.
gpu.xenos.force_convert_triangle_fans_to_lists bool false live Convert triangle fans to triangle lists.
gpu.xenos.primitive_processor_cache_min_indices i32 0 live The smallest index count for which the primitive processor caches a result. 0 to 1000000.
gpu.xenos.half_pixel_offset bool true live Apply the half pixel offset.
gpu.xenos.resolve_resolution_scale_fill_half_pixel_offset bool true live Fill the half pixel offset during a resolve with resolution scaling.
gpu.xenos.execute_unclipped_draw_vs_on_cpu bool false live Run the vertex shader of an unclipped draw on the CPU.
gpu.xenos.execute_unclipped_draw_vs_on_cpu_with_scissor bool false live Run the vertex shader of an unclipped draw on the CPU, with the scissor applied.
gpu.xenos.clear_memory_page_state bool true live Refresh page valid state from GPU written memory each frame. Off can break coherency.
gpu.xenos.occlusion_query_enable bool true live Handle occlusion queries on the host.
gpu.xenos.readback_resolve_half_pixel_offset bool false live With draw resolution scaling active, sample from the center of each scaled block when a resolve readback scales down.
gpu.xenos.readback_memexport_fast bool true live Use the fast double buffered memexport readback when possible. It falls back to the full synchronous readback.
gpu.xenos.async_shader_compilation bool true live Compile shaders and pipelines on background threads. Brief artifacts can appear until compilation finishes.
gpu.xenos.native_2x_msaa bool true live Use native 2x MSAA.
gpu.xenos.depth_float24_round bool false live Round float24 depth values.
gpu.xenos.depth_float24_convert_in_pixel_shader bool false live Convert float24 depth in the pixel shader.
gpu.xenos.depth_transfer_not_equal_test bool true live Use the not equal test for depth transfer.
gpu.xenos.gamma_render_target_as_unorm16 bool true live Use R16G16B16A16_UNORM for gamma render targets.
gpu.xenos.snorm16_render_target_full_range bool true live Use the full range for SNORM16 render targets.
gpu.xenos.direct_host_resolve bool true live Resolve from host render targets to shared memory when possible.
gpu.xenos.texture_3d_to_2d bool true live Sample 3D textures as 2D textures.

gpu.vulkan

These settings exist while the Vulkan driver is initialized. Declared by VulkanSettings, a member of VulkanXenosGraphicsDriver. The two require_ settings default to false on macOS and true elsewhere.

Name Type Default Life Meaning
gpu.vulkan.device i32 -1 startup only Physical device index. -1 is automatic. -1 to 15.
gpu.vulkan.readback_resolve bool false live Read render to texture results on the CPU.
gpu.vulkan.readback_memexport bool false live Read data that shaders write with memory export on the CPU.
gpu.vulkan.async_skip_incomplete_frames bool true live With async shader compilation, skip frames that used placeholder pipelines.
gpu.vulkan.submit_on_primary_buffer_end bool true live Submit the command buffer when a PM4 primary buffer ends.
gpu.vulkan.dynamic_rendering bool true live Use VK_KHR_dynamic_rendering when supported.
gpu.vulkan.pipeline_creation_threads i32 -1 restart Pipeline creation threads. -1 is automatic. -1 to 32.
gpu.vulkan.tessellation_wireframe bool false live Render tessellation as wireframe.
gpu.vulkan.force_expand_point_sprites_in_vs bool false startup only Expand point sprites in the vertex shader even when geometry shaders are available.
gpu.vulkan.force_expand_rectangle_lists_in_vs bool false startup only Expand rectangle lists in the vertex shader even when geometry shaders are available.
gpu.vulkan.force_convert_quad_lists_to_triangle_lists bool false startup only Convert quad lists to triangle lists in primitive processing even when geometry shaders are available.
gpu.vulkan.render_target_path string "" startup only The render target implementation path.
gpu.vulkan.sparse_shared_memory bool true restart Use sparse shared memory.
gpu.vulkan.cube_map_edge_filtering_off bool false live Sample cube maps without filtering across the edges of faces.
gpu.vulkan.require_geometry_shader bool true startup only Require geometryShader support. Turn it off to allow the fallback primitive emulation paths.
gpu.vulkan.require_fill_mode_non_solid bool true startup only Require fillModeNonSolid support. Turn it off to fall back to solid fill for line and point polygon modes.
gpu.vulkan.log_debug_messages bool true live Log Vulkan debug messages.
gpu.vulkan.render_pass_clear bool true live Clear the render pass during presentation.
gpu.vulkan.allow_present_mode_immediate bool true live Allow the immediate present mode, which does not wait for vsync.
gpu.vulkan.allow_present_mode_mailbox bool true live Allow the mailbox present mode, which gives triple buffering.
gpu.vulkan.allow_present_mode_fifo_relaxed bool true live Allow the FIFO relaxed present mode.
gpu.vulkan.validation bool false startup only Enable the Vulkan validation layers.
gpu.vulkan.prefer_geometry_shader bool true startup only When selecting a device automatically, prefer devices that support geometryShader.
gpu.vulkan.prefer_fragment_stores_and_atomics bool true startup only When selecting a device automatically, prefer devices that support fragmentStoresAndAtomics.
gpu.vulkan.prefer_vertex_pipeline_stores_and_atomics bool true startup only When selecting a device automatically, prefer devices that support vertexPipelineStoresAndAtomics.
gpu.vulkan.prefer_fill_mode_non_solid bool true startup only When selecting a device automatically, prefer devices that support fillModeNonSolid.

gpu.d3d12

These settings exist while the Direct3D 12 driver is initialized, on Windows only. Declared by D3D12Settings, a member of D3D12XenosGraphicsDriver.

Name Type Default Life Meaning
gpu.d3d12.adapter i32 -1 startup only Adapter index. -1 is the first hardware adapter, -2 is WARP. -2 to 15.
gpu.d3d12.debug_markers bool false live Debug markers for PIX and RenderDoc. Turns on when RenderDoc is detected.
gpu.d3d12.bindless bool true restart Use bindless resources where available.
gpu.d3d12.readback_memexport bool false live Read data that shaders write with memory export on the CPU.
gpu.d3d12.readback_resolve bool false live Read render to texture results on the CPU.
gpu.d3d12.submit_on_primary_buffer_end bool true live Submit the command list when a PM4 primary buffer ends.
gpu.d3d12.dxbc_disasm bool false live Dump the DXBC disassembly of shaders.
gpu.d3d12.dxbc_disasm_dxilconv bool false live Dump the disassembly of the DXIL conversion.
gpu.d3d12.pipeline_creation_threads i32 -1 restart Pipeline creation threads. -1 is automatic. -1 to 32.
gpu.d3d12.tessellation_wireframe bool false live Render tessellation as wireframe.
gpu.d3d12.native_stencil_value_output bool true live Use native stencil value output.
gpu.d3d12.use_fuzzy_alpha_epsilon bool false live Compare alpha test values approximately, which prevents flickering on NVIDIA graphics cards.
gpu.d3d12.dxbc_switch bool true live Use switch statements in DXBC.
gpu.d3d12.dxbc_source_map bool false live Generate source maps for DXBC.
gpu.d3d12.draw_resolution_scaled_texture_offsets bool true live Scale texture offsets with the draw resolution.
gpu.d3d12.native_stencil_value_output_intel bool false live Use native stencil value output on Intel graphics.
gpu.d3d12.render_target_path string "" startup only The render target implementation path.
gpu.d3d12.tiled_shared_memory bool true restart Use tiled shared memory.
gpu.d3d12.allow_tearing bool true live Allow variable refresh rate and tearing.
gpu.d3d12.debug bool false startup only Enable the Direct3D 12 and DXGI debug layer.
gpu.d3d12.break_on_error bool false live Break into the debugger on a Direct3D 12 validation error.
gpu.d3d12.break_on_warning bool false live Break into the debugger on a Direct3D 12 validation warning.
gpu.d3d12.queue_priority i32 1 live Graphics queue priority. 0 normal, 1 high, 2 realtime.

runtime

These settings exist while the rexkernel module is connected. Declared by RuntimeSettings, which rexkernel adds to the registry in Connect.

Name Type Default Life Meaning
runtime.heap_size_mb u32 256 until launch Shim heap size in MiB. 4 to 2048.
runtime.title_memory_mb u32 480 until launch Title memory cap in MiB. 0 removes the cap. 0 to 512.
runtime.writable_code_segments bool false until launch Load code and read only data as writable memory.
runtime.protect_zero bool true until launch The first 64 KiB fault on any access.
runtime.protect_on_release bool false until launch Released memory faults on access.
runtime.scribble_heap bool false until launch Fill new heap memory with a pattern.
runtime.ignore_thread_priorities bool true live Ignore the priorities that guest threads set.
runtime.ignore_thread_affinities bool true live Ignore the affinities that guest threads set.
runtime.ffmpeg_verbose bool false live Log FFmpeg messages during XMA decoding.
runtime.terminate_timeout_ms u32 2000 live How long Unload waits for guest threads, in ms. 0 to 60000.

kernel

These settings exist while the rexkernel module is connected. Declared by KernelSettings, which rexkernel adds to the registry in Connect.

Name Type Default Life Meaning
kernel.headless bool false live System dialogs return immediately without showing.
kernel.user_language u32 1 until launch XLanguage ID. 0 follows the host language.
kernel.user_country u32 103 until launch Country code.
kernel.license_mask u32 0 until launch Content license mask.
kernel.command_line string "" until launch Arguments after default.xex.

title

These settings exist while the rexkernel module is connected. Declared by TitlePaths, which rexkernel adds to the registry in Connect. The command line options --game_data_root, --update_data_root and --metadata_root set the three folders too.

Name Type Default Life Meaning
title.game_root path "" until launch Game files, mounted read only as game:.
title.game_writable bool false until launch Mount game: read write.
title.update_root path "" until launch Title update files. Empty means none.
title.metadata_root path "{app.root}/metadata" until launch Achievement icons and other metadata.
title.entry string "default.xex" until launch Executable under game: that TitleRuntime::Load runs. Empty loads none.
title.imports string "" until launch Files under game: the executable may import from, separated by \|.

ui

Every program has these settings. Declared by UISettings.

Name Type Default Life Meaning
ui.driver string "sdl3" startup only none runs headless and fails in an app that requires a UI, such as a TitleApp.
ui.title string "" live Empty uses the program name and the build label.
ui.window_width i32 0 live 0 uses the video mode width. 0 to 16384.
ui.window_height i32 0 live 0 uses the video mode height. 0 to 16384.
ui.fullscreen bool true live Fullscreen.
ui.fullscreen_exclusive bool false live Exclusive instead of borderless fullscreen.
ui.monitor i32 0 live Display index. 0 to 16.
ui.min_width i32 0 live 0 to 16384.
ui.min_height i32 0 live 0 to 16384.
ui.aspect_ratio string "stretch" live stretch, 4:3, 5:4, 3:2, 16:10, 16:9, 21:9 or 32:9.
ui.resolution string "" live A video mode preset or WxH. Overrides the window size.
ui.video_mode_width i32 1280 restart Video mode width the title reads. 640 to 4095.
ui.video_mode_height i32 720 restart Video mode height the title reads. 480 to 4095.
ui.video_mode_refresh_rate f64 60.0 restart Refresh rate the title reads. 24.0 to 240.0.
ui.cursor_timeout f64 0.0 live Seconds before an idle cursor hides. 0 never. 0.0 to 3600.0.

ui.sdl

This setting exists while the SDL3 UI driver is selected. Declared by SDL3UIDriver in rexui-sdl3.

Name Type Default Life Meaning
ui.sdl.video_driver string "" startup only Empty uses the SDL default. dummy runs with no display.

log.categories

Each log category adds a string setting named after it, such as log.categories.gpu for the gpu category, that sets the level of that category. Declared by Logger. See Log Categories for the categories of the SDK.

  • The default is empty, which uses log.level.
  • Allowed values are trace, dev, debug, info, warn, error, critical and off.
  • The categories depend on the loaded modules.

ui.bind

Each overlay with a default key gets a hotkey setting, which the UI registers while the window is open.

  • Each value is a key chord such as Ctrl+K.
  • An empty value unbinds the key.

These are the four standard overlays.

Name Type Default Life Meaning
ui.bind.debug string "F3" live Toggles the debug overlay.
ui.bind.console string "Backtick" live Toggles the console overlay.
ui.bind.settings string "F4" live Toggles the settings overlay.
ui.bind.achievements string "F7" live Toggles the achievements overlay.

console

Console commands run from the console overlay. They have dotted names like settings, but hold no value. Declared by ConsoleCommandTable, which the UI adds to the registry while the window is open.

Name Meaning
console.echo Writes its arguments to the log.
console.find Writes the setting and command names that contain a substring to the log.

Old Names

  • Each old name sets its new setting from the config file, the command line and SettingsRegistry::SetText. The environment is read only under the new names.
  • Each use of an old name logs a warning.
Old name Setting
xenos.readback_resolve gpu.xenos.readback_resolve
xenos.readback_memexport gpu.xenos.readback_memexport
xenos.query_occlusion_fake_sample_count gpu.xenos.query_occlusion_fake_sample_count
xenos.allow_invalid_fetch_constants gpu.xenos.allow_invalid_fetch_constants
xenos.dump_shaders gpu.xenos.dump_shaders
xenos.swap_post_effect gpu.xenos.swap_post_effect
xenos.store_shaders gpu.xenos.store_shaders
xenos.mrt_edram_used_range_clamp_to_min gpu.xenos.mrt_edram_used_range_clamp_to_min
xenos.execute_unclipped_draw_vs_on_cpu_for_psi_render_backend gpu.xenos.execute_unclipped_draw_vs_on_cpu_for_psi_render_backend
xenos.texture_cache_memory_limit_render_to_texture gpu.xenos.texture_cache_memory_limit_render_to_texture
xenos.texture_cache_memory_limit_soft gpu.xenos.texture_cache_memory_limit_soft
xenos.texture_cache_memory_limit_hard gpu.xenos.texture_cache_memory_limit_hard
xenos.texture_cache_memory_limit_soft_lifetime gpu.xenos.texture_cache_memory_limit_soft_lifetime
xenos.pre_mask_resolve_l2_block gpu.xenos.pre_mask_resolve_l2_block
xenos.force_convert_line_loops_to_strips gpu.xenos.force_convert_line_loops_to_strips
xenos.force_convert_quad_lists_to_triangle_lists gpu.xenos.force_convert_quad_lists_to_triangle_lists
xenos.force_convert_triangle_fans_to_lists gpu.xenos.force_convert_triangle_fans_to_lists
xenos.primitive_processor_cache_min_indices gpu.xenos.primitive_processor_cache_min_indices
xenos.half_pixel_offset gpu.xenos.half_pixel_offset
xenos.resolve_resolution_scale_fill_half_pixel_offset gpu.xenos.resolve_resolution_scale_fill_half_pixel_offset
xenos.execute_unclipped_draw_vs_on_cpu gpu.xenos.execute_unclipped_draw_vs_on_cpu
xenos.execute_unclipped_draw_vs_on_cpu_with_scissor gpu.xenos.execute_unclipped_draw_vs_on_cpu_with_scissor
kXenosCvars.readback_resolve gpu.xenos.readback_resolve
gpu.present_letterbox gpu.xenos.present_letterbox
gpu.present_safe_area_x gpu.xenos.present_safe_area_x
gpu.present_safe_area_y gpu.xenos.present_safe_area_y
gpu.present_dither gpu.xenos.present_dither
gpu.present_allow_overscan_cutoff gpu.xenos.present_allow_overscan_cutoff
xenos.clear_memory_page_state gpu.xenos.clear_memory_page_state
xenos.occlusion_query_enable gpu.xenos.occlusion_query_enable
xenos.readback_resolve_half_pixel_offset gpu.xenos.readback_resolve_half_pixel_offset
xenos.readback_memexport_fast gpu.xenos.readback_memexport_fast
xenos.async_shader_compilation gpu.xenos.async_shader_compilation
xenos.native_2x_msaa gpu.xenos.native_2x_msaa
xenos.depth_float24_round gpu.xenos.depth_float24_round
xenos.depth_float24_convert_in_pixel_shader gpu.xenos.depth_float24_convert_in_pixel_shader
xenos.depth_transfer_not_equal_test gpu.xenos.depth_transfer_not_equal_test
xenos.gamma_render_target_as_unorm16 gpu.xenos.gamma_render_target_as_unorm16
xenos.snorm16_render_target_full_range gpu.xenos.snorm16_render_target_full_range
xenos.direct_host_resolve gpu.xenos.direct_host_resolve
xenos.texture_3d_to_2d gpu.xenos.texture_3d_to_2d
d3d12.allow_tearing gpu.d3d12.allow_tearing
d3d12.debug gpu.d3d12.debug
d3d12.break_on_error gpu.d3d12.break_on_error
d3d12.break_on_warning gpu.d3d12.break_on_warning
d3d12.queue_priority gpu.d3d12.queue_priority
gpu.debug_markers gpu.d3d12.debug_markers
gpu.d3d12_adapter gpu.d3d12.adapter
gpu.vulkan_device gpu.vulkan.device
bind.debug ui.bind.debug
bind.console ui.bind.console
bind.settings ui.bind.settings
bind.achievements ui.bind.achievements
xenos.d3d12_bindless gpu.d3d12.bindless
xenos.d3d12_readback_memexport gpu.d3d12.readback_memexport
xenos.d3d12_readback_resolve gpu.d3d12.readback_resolve
xenos.d3d12_submit_on_primary_buffer_end gpu.d3d12.submit_on_primary_buffer_end
xenos.d3d12_dxbc_disasm gpu.d3d12.dxbc_disasm
xenos.d3d12_dxbc_disasm_dxilconv gpu.d3d12.dxbc_disasm_dxilconv
xenos.d3d12_pipeline_creation_threads gpu.d3d12.pipeline_creation_threads
xenos.d3d12_tessellation_wireframe gpu.d3d12.tessellation_wireframe
xenos.d3d12_native_stencil_value_output_intel gpu.d3d12.native_stencil_value_output_intel
xenos.d3d12_render_target_path gpu.d3d12.render_target_path
xenos.d3d12_tiled_shared_memory gpu.d3d12.tiled_shared_memory
xenos.native_stencil_value_output gpu.d3d12.native_stencil_value_output
xenos.use_fuzzy_alpha_epsilon gpu.d3d12.use_fuzzy_alpha_epsilon
xenos.dxbc_switch gpu.d3d12.dxbc_switch
xenos.dxbc_source_map gpu.d3d12.dxbc_source_map
xenos.draw_resolution_scaled_texture_offsets gpu.d3d12.draw_resolution_scaled_texture_offsets
vulkan.require_geometry_shader gpu.vulkan.require_geometry_shader
vulkan.require_fill_mode_non_solid gpu.vulkan.require_fill_mode_non_solid
vulkan.log_debug_messages gpu.vulkan.log_debug_messages
vulkan.render_pass_clear gpu.vulkan.render_pass_clear
vulkan.allow_present_mode_immediate gpu.vulkan.allow_present_mode_immediate
vulkan.allow_present_mode_mailbox gpu.vulkan.allow_present_mode_mailbox
vulkan.allow_present_mode_fifo_relaxed gpu.vulkan.allow_present_mode_fifo_relaxed
vulkan.validation gpu.vulkan.validation
vulkan.prefer_geometry_shader gpu.vulkan.prefer_geometry_shader
vulkan.prefer_fragment_stores_and_atomics gpu.vulkan.prefer_fragment_stores_and_atomics
vulkan.prefer_vertex_pipeline_stores_and_atomics gpu.vulkan.prefer_vertex_pipeline_stores_and_atomics
vulkan.prefer_fill_mode_non_solid gpu.vulkan.prefer_fill_mode_non_solid
xenos.vulkan_readback_resolve gpu.vulkan.readback_resolve
xenos.vulkan_readback_memexport gpu.vulkan.readback_memexport
xenos.vulkan_async_skip_incomplete_frames gpu.vulkan.async_skip_incomplete_frames
xenos.vulkan_submit_on_primary_buffer_end gpu.vulkan.submit_on_primary_buffer_end
xenos.vulkan_dynamic_rendering gpu.vulkan.dynamic_rendering
xenos.vulkan_pipeline_creation_threads gpu.vulkan.pipeline_creation_threads
xenos.vulkan_tessellation_wireframe gpu.vulkan.tessellation_wireframe
xenos.vulkan_force_expand_point_sprites_in_vs gpu.vulkan.force_expand_point_sprites_in_vs
xenos.vulkan_force_expand_rectangle_lists_in_vs gpu.vulkan.force_expand_rectangle_lists_in_vs
xenos.vulkan_force_convert_quad_lists_to_triangle_lists gpu.vulkan.force_convert_quad_lists_to_triangle_lists
xenos.vulkan_render_target_path gpu.vulkan.render_target_path
xenos.vulkan_sparse_shared_memory gpu.vulkan.sparse_shared_memory
xenos.vulkan_cube_map_edge_filtering_off gpu.vulkan.cube_map_edge_filtering_off
hid.mappings_file hid.sdl.mappings_file
ui.video_driver ui.sdl.video_driver
paths.game_data_root title.game_root
paths.user_data_root app.user_root
paths.update_data_root title.update_root
paths.cache_root app.cache_root
paths.metadata_root title.metadata_root
paths.config_file app.config_file
runtime.terminate_timeout runtime.terminate_timeout_ms
runtime.kernel.headless kernel.headless
runtime.kernel.user_language kernel.user_language
runtime.kernel.user_country kernel.user_country
runtime.kernel.license_mask kernel.license_mask
runtime.kernel.command_line kernel.command_line
profiler perf.profiler
single_instance app.single_instance
audio_maxqframes apu.max_queued_frames
audio_mute apu.mute
ffmpeg_verbose runtime.ffmpeg_verbose
clock_no_scaling clock.no_scaling
log_level log.level
log_file log.file_name
log_flush_interval log.flush_interval
guide_button hid.guide_button
vibration hid.vibration
left_stick_deadzone_percentage hid.left_stick_deadzone
right_stick_deadzone_percentage hid.right_stick_deadzone
mnk_mode hid.mnk_mode
mnk_mouse hid.mnk_mouse
mnk_sensitivity hid.mnk_sensitivity
mnk_passthrough hid.mnk_passthrough
keybind_a hid.keybind_a
keybind_b hid.keybind_b
keybind_x hid.keybind_x
keybind_y hid.keybind_y
keybind_left_trigger hid.keybind_left_trigger
keybind_right_trigger hid.keybind_right_trigger
keybind_left_shoulder hid.keybind_left_shoulder
keybind_right_shoulder hid.keybind_right_shoulder
keybind_lstick_up hid.keybind_lstick_up
keybind_lstick_down hid.keybind_lstick_down
keybind_lstick_left hid.keybind_lstick_left
keybind_lstick_right hid.keybind_lstick_right
keybind_lstick_press hid.keybind_lstick_press
keybind_rstick_up hid.keybind_rstick_up
keybind_rstick_down hid.keybind_rstick_down
keybind_rstick_left hid.keybind_rstick_left
keybind_rstick_right hid.keybind_rstick_right
keybind_rstick_press hid.keybind_rstick_press
keybind_dpad_up hid.keybind_dpad_up
keybind_dpad_down hid.keybind_dpad_down
keybind_dpad_left hid.keybind_dpad_left
keybind_dpad_right hid.keybind_dpad_right
keybind_back hid.keybind_back
keybind_start hid.keybind_start
keybind_guide hid.keybind_guide
writable_code_segments runtime.writable_code_segments
protect_zero runtime.protect_zero
protect_on_release runtime.protect_on_release
scribble_heap runtime.scribble_heap
ignore_thread_priorities runtime.ignore_thread_priorities
ignore_thread_affinities runtime.ignore_thread_affinities
window_width ui.window_width
window_height ui.window_height
fullscreen ui.fullscreen
fullscreen_exclusive ui.fullscreen_exclusive
monitor ui.monitor
video_mode_width ui.video_mode_width
video_mode_height ui.video_mode_height
resolution ui.resolution
video_mode_refresh_rate ui.video_mode_refresh_rate

Removed Names

These names have no setting. The registry ignores a value set under one of them, and each use logs a warning.

Old name Effect
xenos.present_from_non_ui_thread Ignored. Presentation no longer depends on a setting.
log.timestamps Set log.pattern to change the line layout.
log.show_category Set log.pattern to change the line layout.
log.show_thread Set log.pattern to change the line layout.
filesystem.game_mount_flags Set title.game_writable to make the game folder writable.

log.file

log.file is a flag. If an older config file sets log.file to a path, the registry:

  • Sets log.file to true and log.file_name to the file name.
  • Sets app.log_root to the folder of the path, when the path has one.
  • Logs a warning.

An empty value changes nothing.

Command Line Options

These options use another form than --scope.name=value.

Option Setting
--game_data_root title.game_root
--user_data_root app.user_root
--update_data_root title.update_root
--cache_root app.cache_root
--metadata_root title.metadata_root
--config_file app.config_file
--modules None. Logs a warning, because the driver settings choose the drivers.