Settings glossary

This is a simple list of most yuzu settings and their intention. Hopefully it helps counter the absurd number of terrible tutorials on YouTube.
All settings can be found on Emulation > Configure in the UI.

General > General:

  • Confirm exit while emulation is running: Some games will ask if the users really wants to stop the session, this setting overrules that. Personal preference.

  • Pause emulation when in background: Self-explanatory, pauses when focusing other windows. Personal preference.

  • Hide mouse on inactivity: Self-explanatory. Useful for playing in fullscreen. Personal preference.

  • Prompt for user on game boot: Ask to select an user profile on each boot, useful if multiple people use yuzu on the same pc. Personal preference.

General > Hotkeys: Lists hotkeys for both keyboard and the Player 1’s controller. Very useful to learn the most common ones.

General UI: Miscellaneous settings affecting the user interface and the game list, and a confirmation option and default location for screenshot captures. yuzu’s captures will be done at the rendering resolution selected so the window can be small but if docked 2x scaling is selected, the screenshot will be 4k.

General > Web: Miscellaneous online settings. The token is required for access to the LDN rooms. Telemetry only includes hardware specs and games run, helps us determine where are the most common problems and what hardware related problems are more critical.

General > Debug: DEBUG/TESTING SECTION ONLY, be careful to what you touch here. Only change the values here if a support/moderator/developer is asking you in order to find the cause of a specific problem. Default values are the fastest.

  • Enable GDB Stub - Leave this option disabled unless you are a yuzu developer or interesting in debugging a program. This enables the GDB server, which causes program startup to wait for GDB to connect. GDB provides the ability to interactively debug an application.

  • Debugger Port - selects the server port used when the GDB server is enabled.

  • Global Log Filter - Leave this option at *:Info unless you are a yuzu developer. This changes the information logged in the log file (and in the console, if logging to the console is enabled). Log filters are separated by spaces. Log levels are set on a per-class basis, and the format is Class:Level. The special class name * sets all classes to have specified the log level. Note that trace logs are compiled out on release builds; you must use a version of yuzu compiled in debug mode to access trace logs.
    The available log levels (in order of increasing severity) are:
    Trace, Debug, Info, Warning, Error, Critical
    The available log classes are:
    *, Log, Common, Common.Filesystem, Common.Memory, Core, Core.ARM, Core.Timing, Config, Debug, Debug.Emulated, Debug.GPU, Debug.Breakpoint, Debug.GDBStub, Kernel, Kernel.SVC, Service, Service.ACC, Service.Audio, Service.AM, Service.AOC, Service.APM, Service.ARP, Service.BCAT, Service.BPC, Service.BGTC, Service.BTDRV, Service.BTM, Service.Capture, Service.ERPT, Service.ETicket, Service.EUPLD, Service.Fatal, Service.FGM, Service.Friend, Service.FS, Service.GRC, Service.HID, Service.IRS, Service.JIT, Service.LBL, Service.LDN, Service.LDR, Service.LM, Service.Migration, Service.Mii, Service.MM, Service.MNPP, Service.NCM, Service.NFC, Service.NFP, Service.NGCT, Service.NIFM, Service.NIM, Service.NOTIF, Service.NPNS, Service.NS, Service.NVDRV, Service.Nvnflinger, Service.OLSC, Service.PCIE, Service.PCTL, Service.PCV, Service.PM, Service.PREPO, Service.PSC, Service.PTM, Service.SET, Service.SM, Service.SPL, Service.SSL, Service.TCAP, Service.Time, Service.USB, Service.VI, Service.WLAN, HW, HW.Memory, HW.LCD, HW.GPU, HW.AES, IPC, Frontend, Render, Render.Software, Render.OpenGL, Render.Vulkan, Shader, Shader.SPIRV, Shader.GLASM, Shader.GLSL, Audio, Audio.DSP, Audio.Sink, Input, Network, Loader, CheatEngine, Crypto, WebService

  • Show Log in Console - Writes the log to the console. Automatically opens a console to write to the log to on Windows, writes the log to the parent terminal in Linux and macOS. This can be useful for developers if an error is logged immediately before a crash, which may prevent recording the error to the log file.

  • Enable Extended Logging - Automatically resets when yuzu is closed. This allows the log file to become 1 GiB before truncation (normally, logs are truncated at 100 MiB).

  • Homebrew Arguments String - Has no effect.

  • Enable Graphics Debugging - Leave this option disabled unless you are a yuzu developer. Enables debug messages in OpenGL, and Khronos Validation Layers in Vulkan. Often considerably reduces performance.

  • Enable Shader Feedback - Enables VK_KHR_pipeline_executable_properties, which collects debugging statistics about compiled shaders. Has no other effect.

  • Enable Nsight Aftermath - Has no effect on normal versions of yuzu. When yuzu is compiled with the Aftermath SDK, allows direct reporting of crashes to Nsight Aftermath.

  • Disable Macro JIT - Leave this option disabled unless you are a yuzu developer. Disables dynamic compilation of optimized versions of Maxwell macros. May reduce performance.

  • Disable Loop safety checks - Leave this option disabled unless you are a yuzu developer. Prevents loops in shaders from executing more than 8192 times.

  • Dump Game Shaders - Writes guest shaders as they are encountered into the dump directory for the running program ID. The shaders can be disassembled by envydis as Maxwell architecture shaders, or by nvdisasm as a raw binary in SM53 form.

  • Disable Macro HLE - Leave this option disabled unless you are a yuzu developer. Disables the use of handwritten optimized versions of Maxwell macros. Dramatically reduces performance and accuracy in many games.

  • Dump Maxwell Macros - Automatically resets when yuzu is closed. Writes Maxwell macros as they are encountered into the dump directory for the running program ID. The macros can be disassembled by envydis as macro architecture files.

  • Enable FS Access Log - Leave this option disabled unless you are a yuzu developer. Logs filesystem accesses by the guest program to the yuzu log. May reduce performance.

  • Enable Verbose Reporting Services - Leave this option disabled unless you are a yuzu developer. Automatically resets when yuzu is closed. Saves detailed reports of specific events to files for further investigation. The events which are enabled by this filter are:
    Guest crash, Guest svc::Break, Unimplemented applet, Play report, Error report, User report

  • Dump Audio Commands To Console - Leave this option disabled unless you are a yuzu developer. Automatically resets when yuzu is closed. Writes audio command lists to the log file. May reduce performance.

  • Create Minidump After Crash - Leave this option disabled unless you have been instructed to enable it by a yuzu developer. Requires a restart of yuzu to take effect. When enabled, launches yuzu under a debugger process, and collects information in a Windows Minidump format file when yuzu crashes. May reduce performance.

  • Kiosk (Quest) Mode - Reports to running software that the emulated Switch is running in kiosk mode. Has no other effect.

  • Enable CPU Debugging - Leave this option disabled unless you are a yuzu developer. Enables the CPU debug settings available in the CPU page.

  • Enable Debug Asserts - Leave this option disabled unless you are a yuzu developer. Causes yuzu to crash after an assertion failure is printed.

  • Perform Startup Vulkan Check - Automatically checks for the presence of a Vulkan driver which does not crash when used on yuzu startup.

  • Enable Auto-Stub - Automatically resets when yuzu is closed. Unconditionally return success results to unimplemented service functions when they are encountered.

  • Enable All Controller Types - Enables the mapping and use of specialty controllers. These controllers are:
    palma (Poké Ball Plus), lark (NES Controller), lucia (SNES Controller), lagoon (N64 Controller), lager (Sega Genesis)

  • Disable Web Applet - Forcibly disables the use of the web applet by guests. When a guest attempts to open the web applet, it is immediately closed.

If you enabled Enable CPU Debugging, the settings in the CPU page will be available:

  • Enable inline page tables - Enables the use of the page table optimization provided by Dynarmic. When disbled, memory accesses must use memory callbacks. Increases performance significantly.
  • Enable block linking - Allows basic blocks known at compile time connected by a branch to directly jump to each other, instead of returning to the dispatcher. Increases performance.
  • Enable return stack buffer - Allows Dynarmic to speculate the return address which will be used by a guest function when the bx lr, ldmfd into PC, or ret instructions are used. Increases performance.
  • Enable fast dispatcher - Allows Dynarmic to cache recently-used basic blocks, instead of returning to the dispatcher. Increases performance.
  • Enable context elimination - Allows Dynarmic to avoid reading and writing to registers where not required. Increases performance.
  • Enable constant propagation - Allows Dynarmic to inline immediates in operands as constants instead of register construction. Increases performance.
  • Enable miscellaneous optimizations - Allows Dynarmic to combine sequences of invalid instructions as a single invalid instruction.
  • Enable misalignment check reduction - Allows Dynarmic to only use memory callbacks for memory accesses spanning page boundaries.
  • Enable Host MMU Emulation (general memory instructions) - Also known as fastmem. Allows yuzu and Dynarmic to mimic guest memory access with a single pointer dereference, installing a crash handler in the event the access is not satisfyable. Increases performance significantly.
  • Enable Host MMU Emulation (exclusive memory instructions) - Also known as fastmem. Allows yuzu and Dynarmic to mimic guest memory atomic operations, installing a crash handler in the event the access is not satisfyable. Increases performance significantly.
  • Enable recompilation of exclusive memory instructions - Allows dynarmic to recompile blocks with memory accesses which fault to be recompiled with fastmem disabled. Recompiled code will use memory callbacks. Increases performance.
  • Enable fallbacks for invalid memory accesses - Allows Dynarmic to handle invalid memory access by the guest without immediately returning from compiled code. Increases performance. This is automatically disabled when the “Enable GDB Stub” option on the Debug options page is enabled, as it interferes with setting memory breakpoints.

System > System: Miscellaneous console settings. Custom RTC and RNG seed have testing/speedrunning purposes. Game language, time, and RNG can be set here.

  • Multicore CPU Emulation: Increase CPU emulation thread use from 1 to the Switch’s maximum 4. Mostly a debug/testing option now, shouldn’t be disabled.

  • Memory layout: Increases the amount of emulated RAM from the stock 4GB of the retail Switch to the developer kit’s 8/6GB. It’s doesn’t improve stability or performance, it’s intended to let big texture mods fit in the “console’s” RAM. Enabling it will increase RAM use, not recommended to enable unless a specific game with a texture mod needs it. 8GB is known to break PokĂ©mon Scarlet/Violet.

  • Limit Speed Percent: Controls game running speed, but it’s up to each game if they will run faster or not. Percentage over base FPS target, 200% for a 30 FPS game is 60 FPS, and for a 60 FPS game it will be 120 FPS. Disabling it means unlocking the framerate to the maximum the user PC can reach.

System > Profiles: Profile management. Deleting a profile will delete all its save data, apply common sense. Don’t use too big avatar pictures, it’s known to make some games crash, like Mario Tennis Aces.

System > Network: Required for LAN/LDN connectivity. Some games will assume they are online if you pick a network interface and try to contact Nintendo servers, leading to a crash.

System > Filesystem: yuzu locations are fixed by default and will always be in the C:\Users\USER_NAME\AppData location. The user can specify custom locations here. NAND is the heaviest folder, if storage slow, we recommend moving it here. There are game dump related options too. Reset Metadata Cache can rarely fix games refusing to boot.

CPU > CPU: CPU emulation accuracy, critical setting.

  • Auto: yuzu will look at the capabilities of the user’s CPU and set its internal flags accordingly for the best performance and precision. Always use this option, only one game requires the following Unsafe setting.

  • Accurate: Disables most performance optimizations, slow, testing/debugging only.

  • Unsafe: Enables unstable and inaccurate optimizations, will break game emulation leading to bad behaviour and even crashes. The only case where this option is needed is for some slow rooms in Luigi’s Mansion 3. Using this option won’t improve performance most of the time, and should be avoided.

  • Paranoid: Zero performance optimizations, extremely slow, only intended for testing/debugging.

Graphics > Graphics > API: Switches between the available graphical APIs. Can be changed from the bottom left buttons before booting a game, shows as OPENGL or VULKAN.

  • Vulkan: The default and the fastest and more stable most of the time, requires up to date drivers on both the dedicated GPU, and if on a laptop/handheld, the integrated GPU too. Fastest for shader building too. Using Vulkan enables the Device option, which lets the user select with which GPU render the game, useful if the system has multiple GPUs and one in particular has a specific problem with a game.

  • OpenGL: Legacy. Currently it can be more stable on some games, especially Unity and Unreal engine based ones. Most of the time it’s slower, especially on non-NVIDIA hardware, and can have far worse rendering quality.
    Using OpenGL enables the Shader backend option:

    • GLSL: OpenGL’s default backend, the fastest in performance and the best in rendering accuracy, but the slowest in shader building performance, causing major stuttering when compiling new shaders. Used to be the fastest for games like Breath of the Wild running on NVIDIA hardware, but recent changes made Vulkan faster overall.
    • GLASM: Deprecated. An NVIDIA-only backend that offers much better shader building performance at the cost of FPS and rendering accuracy.
    • SPIR-V: Vulkan’s backend, but in OpenGL. Experimental, no GPU driver makes a good implementation of it yet, if ever. Only the Linux Mesa drivers offer a playable experience. Should offer the best shader building performance of OpenGL (Vulkan would still be faster), but the terrible implementation quality of the GPU drivers makes it non-viable for most systems.
  • Null: Debugging/testing only. Self-explanatory, nothing will be rendered.

Back to the rest of the graphics options we have:

  • Use disk pipeline cache: Allows saving shaders to storage for faster loading on following game boots. Disabling it is only intended for testing or debugging, should always remain enabled.

  • Use asynchronous GPU emulation: Uses an extra CPU thread for rendering. Used to be a compatibility option but we’re in the process of removing it from the UI as now it should always remain enabled. Disabling it will break games.

  • Accelerate ASTC texture decoding: All consumer GPUs except Intel integrated GPUs lack support for ASTC textures, so a method of decoding is needed. Each option can benefit different systems. Should be a trade-off between taxing the CPU or the GPU more, but some Windows drivers, like for AMD Polaris cards are unstable with this option enabled. Intel integrated GPUs and mobile devices natively support ASTC textures, for those devices, this setting is ignored.

    • CPU: Use the CPU for decoding, slowest but safest method, useful for AMD Polaris users, or users running very low end GPUs, where the CPU would be faster for the task.
    • GPU: Use the GPU’s compute shaders to decode ASTC textures, faster the bigger the GPU in use. Recommended for most games and users, particularly for Tears of the Kingdom. Weaker GPUs can be slower than the CPU for decoding, so test accordingly.
    • CPU Asynchronously: Use the CPU to decode ASTC textures as they arrive. Completely eliminates ASTC decoding stuttering at the cost of rendering issues while the texture is being decoded. Recommended setting for low end systems or games like Metroid Prime Remastered, Bayoneta 3, Astral Chain. Enabling it will override Accelerate ASTC texture decoding.
      Tears of the Kingdom doesn’t like this setting.
  • VSync Mode: New setting for picking native Vulkan VSync options.

    • FIFO is regular VSync enabled.
    • FIFO relaxed allows for tearing past the refresh rate of the display.
    • IMMEDIATE is classic VSync off, always allows tearing, this option is needed by AMD and Intel Windows users to run FPS mods faster than the max refresh rate of the display.
    • Mailbox is enhanced VSync, recommended setting when available.
  • NVDEC emulation: Video decoding emulation, use the CPU or the GPU for decoding, or perform no decoding at all (black screen on videos). Some GPUs like AMD’s Vega hardware and the RX 6400/6500 XT have unusable VP9 decoders (the most common video format on Switch games), resulting in worse decoding performance when using the GPU. For all other GPUs, we recommend using GPU video decoding.

  • Fullscreen mode: Method used to render the window in fullscreen. Borderless offers the best compatibility with the on-screen keyboard some games request for input. Exclusive fullscreen may offer better performance and better Freesync/Gsync support. If a game gets stuck to 20-24 FPS with an NVIDIA GPU, use exclusive or disable Gsync.

  • Aspect Ratio: Stretch to fit the specified aspect ratio. Switch games only support 16:9, so custom game mods are required to get other ratios. Controls the aspect ratio of captured screenshots too.

  • Resolution: Force the game to render at a different resolution. The value is times width/height, so 2X is 4 times the pixel count of 1X, for example. VRAM available and bandwidth are the critical metrics to decide what’s the maximum resolution multiplier you can use. Options that aren’t a power of two or are under 1X (0.5X, 0.75X, 3X, etc.) can cause rendering issues, especially in Xenoblade and Zelda games.

  • Window adapting filter: Personal preference. FSR will reduce image quality if the rendering resolution is higher than the window/display resolution, as FSR is intended for upsampling, not supersampling. FSR can also harm performance on very weak or integrated GPUs.

  • Anti-Aliasing method: Personal preference. SMAA should be fine for most cases and should offer the best quality. FXAA has a lower performance impact and can produce a better and more stable picture under very low resolutions.

  • FSR Sharpening: Slider to tune how sharpened the image will look while using FSR’s dynamic contrast. Personal preference, and game dependent too.

  • Background Color: Colour for the excess in the rendering window if it doesn’t match the selected aspect ratio.

Graphics > Advanced: Several settings that can affect performance and game stability.

  • Accuracy Level: GPU emulation accuracy. Most games now render fine with Normal, but High is still required for some. Test each case and pick the best for your system. Extreme is in the process of being phased out, we don’t recommend it as it is unstable. This option can be changed while playing (some games may require booting on high to render properly) and can be changed from the bottom left buttons, showing as GPU NORMAL and GPU HIGH. Default hotkey is F9. Particles tend to render correctly with High accuracy.

  • ASTC recompression: Almost all desktop and laptop dedicated GPUs lack support for ASTC textures, forcing the emulator to recompress to an intermediate format any card supports, RGBA8. This option recompresses RGBA8 to either the BC1 or BC3 format, saving VRAM but affecting image quality. Ideally, Uncompressed should always be used, but BC3 is recommended for users with 4GB or less VRAM, while BC1 is recommended only for users with 2GB or less, or running games with the integrated GPU. GPUs that support native ASTC (Iris Xe iGPUs for example) ignore this setting entirely. Test per game, for Tears of the Kingdom, use BC3 for GPUs with 8GB or less, and BC1 for 3.5GB or less. Using any setting besides Uncompressed will disable what is set in Accelerate ASTC texture decoding, as recompression is done only with the CPU for now.

  • Enable asynchronous presentation (Vulkan only): Improves performance slightly by moving presentation to a separate CPU thread. Test per game, some benefit, others don’t. Look out for stuttering while having it enabled.

  • Force maximum clocks (Vulkan only): Modern GPUs have too aggressive downclocking, leading to lower performance, especially AMD RDNA GPU series. This option runs a dummy compute load to force the GPU to clock up. Improves performance for desktop AMD cards, and high end NVIDIA cards (3070 or higher), but reduces performance on Intel and AMD integrated GPUs, and lower end NVIDIA GPUs. Also produces coil whine. We recommend to test it and keep it enabled if you notice a performance improvement with it.

  • Enable Reactive Flushing: Improves rendering accuracy, making more games draw correctly at the cost of performance. Can help improve the performance of high GPU accuracy. Test per game.

  • Use asynchronous shader building: Decodes shaders out of order using all CPU threads to reduce shader building stuttering considerably. Has the drawback of producing graphical glitches the first time a group of shaders is compiled, as some shaders require the result of previous ones to render correctly. Recommended for heavy shader games like Koei Tecmo titles, Super Smash Bros. Ultimate, or Xenoblade games. A game reboot or re-entering the area in game will solve the graphical issues. Keep disable for the best graphical fidelity. Will break weapon icons in Tears of the Kingdom.

  • Use Fast GPU Time: Tricks the game into thinking the GPU performance is always the best possible, in order to avoid the games from switching resolution dynamically. The purpose of this is to preserve RAM, but performance is also improved with this option. We recommend to always keep it enabled and use it in conjunction with Disable Dynamic Resolution game mods, if they are available. Mandatory for stable gameplay on Luigi’s Mansion 3 and Xenoblade games.

  • Use Vulkan pipeline cache: Forces saving Vulkan shaders in internal storage instead of letting the GPU driver do it. AMD Windows driver have a very low size limit for the cache, resulting in very long load times on games with big shader caches, this option solves that problem. This option also improves shader building speed considerably on all GPUs, so we recommend keeping it always enabled.

  • Sync to framerate of video playback: Fixes framerate to the video’s when framerate is unlocked. Helps with dynamic framerate mods.

  • Barrier feedback loops: Solves some transparency issues like the Ultrahand in Tears of the Kingdom when enabled. May make some games crash in some systems, very rare.

  • Enable Compute Pipelines (Intel Vulkan only): To avoid driver crashes on specific Intel Windows drivers, the compute stage can be disabled. This option won’t show up if you don’t have an Intel GPU and an affected Windows driver. An exchange between rendering accuracy (enabled) and stability (disabled). Breath of the Wild requires it disabled, PokĂ©mon games and Super Smash. Brothers require it enabled. Test per game. If you see this option, update your GPU driver.

  • Anisotropic Filtering: Self-explanatory, controls the quality of texture rendering at oblique angles. It’s a light setting and mostly safe to set at 16x and forget if you are not running a very low end/integrated GPU.

Audio > Audio: Miscellaneous audio settings. Auto output engine is recommended as it can select the proper engine depending of the user’s default audio output.

Controls > Players: Set controls for each player up to 8.

  • Make sure the square besides Connect Controller is enabled to use that controller. Under it, the controller emulation type is critical. Not all games support the default Pro Controller, PokĂ©mon Let’s Go in particular ONLY accepts Handheld or Single Joy-Con.

  • Console Mode: selects if the console is emulated in Docked mode (connected to a TV), or Handheld mode. Does more than just change controller profiles, as games will change their resolution and detail settings depending of this. Can be changed during gameplay and from the buttons on the bottom left, they read DOCKED or HANDHELD. The default hotkey is F10. Can help improve performance for low end system.

  • Input Device: picks what physical controller type to use, yuzu has native support for most XInput and Direct Input controllers thanks to SDL, and native support for Nintendo controllers with a custom driver. Select the controller you want to use here. Remember that XBox controllers don’t support motion.

  • Profile: Save the current settings as a profile to load later.

  • Motion: If it shows “sdl”, the native motion capabilities of the controller are used. Can be alternatively mapped to a key to control motion with the mouse. Not recommended as most motion-enabled games require real 6 axis motion to work properly. Disabling it can save Bluetooth bandwidth, avoiding connection problems.
    If the later mentioned Joy-Con driver is enabled, native support will be used.

  • Vibration: Only official Nintendo controllers support HD Rumble at the moment. For anything else, a conversion to regular rumble is done. Disabling it can save Bluetooth bandwidth, avoiding connection problems.

  • Deadzone and Range: Under each analog stick mapping, use them to tune your stick’s performance, and counter the natural drifting all sticks have.

You can manually map all buttons and keys, and you can right click any mapping to flip it or turn it into a toggle instead of the default hold and release. Stick can be centered from here too.

Controls > Advanced: Personalization options and miscellaneous settings.

  • Keyboard and mouse emulation can be enabled here for the few games that support it.
    Touchscreen is enabled by default and used with the mouse.

  • Ring controller and Infrared camera are in development but should be functional enough. Only functional with Joy-Cons.

  • Emulate Analog with Keyboard Input is needed if a game requires spinning a stick and the user only has a keyboard available. We strongly recommend having a controller with motion sensors.

  • Enable XInput 8 player support is needed to use XBox or similar controllers for up to 8 players, disables the web applet used for game tutorials.

  • Controller navigation lets the user control the UI with a gamepad.

  • Enable direct Joy-Con driver/ Pro Controller driver is yuzu’s custom driver to get better emulation with official Nintendo controllers. This also include native Amiibo scanning.

Mouse panning, used to map the mouse movement to an analog stick, like for example to play FPS games with mouse + keyboard. Adjust the sensitivity with the box on the right. During gameplay, you can enable or disable mouse panning by pressing Ctrl + F9.

Cemuhook can be used for controller and motion/touch support, as an alternative to the native implementations.

7 Likes

Great write-up Golden, very proud of you :gift_heart:

1 Like

Added the new Y.F.C. 1.9 settings plus VSync and shintel compute.

Thank you so much for this

2 Likes

List updated reflecting current UI changes.

Better performance after reading this! Thanks!

Thanks for the writeup, I never knew you could right-click the buttons to toggle various options. It proves the point that people only read instructions when something goes wrong.