Configuration Files
Global Configuration
The main configuration file isxenia-canary.config.toml, located in the emulator’s config folder. This file is automatically created on first run and contains all available configuration options with their default values.
File Location:
- The config folder can be specified using the
--configcommand-line argument - If not specified, the default location is used
- All configuration options are organized by category (GPU, CPU, APU, etc.)
Per-Game Configuration
You can override global settings for specific games by creating game-specific config files: File Format:<TITLE_ID>.config.tomlLocation:
config/ subdirectory within your config folder
Game configurations only need to include the options you want to override - they inherit all other settings from the global config.
Configuration System
The configuration system uses the following priority order (highest to lowest):- Command-line arguments - Override everything
- Game-specific config - Per-game overrides
- Global config file - User preferences
- Default values - Built-in defaults
Config File Format
Configuration files use TOML format with category-based organization:Common Configuration Options
General Settings
Specifies the target config file to load. Can be an absolute path or relative to the current directory.
Internal version of the default values in the config for seamless updates. Do not modify manually.
GPU Configuration
Enable vertical synchronization. Set to
false to render as fast as possible instead of limiting to 60Hz.Maximum frames per second. Set to
0 for unlimited frames. Defaults to 60 when vsync is enabled.Allow texture and vertex fetch constants with invalid type. Generally unsafe but may help bypass fetch constant type errors in certain games.
Disable filtering between cube map faces near edges to reproduce Direct3D 9 behavior (Vulkan with VK_EXT_non_seamless_cube_map).
Enable support for vertex half-pixel offset (D3D9 PA_SU_VTX_CNTL PIX_CENTER). Disabling may cause blurriness in UI textures or incomplete pixel coverage with MSAA.
Controls occlusion query behavior. Set to
-1 to disable sample counts (may cause hangs). Set to 0 to report everything as occluded.Upper threshold for occlusion queries. Must be higher than the lower threshold. Ignored if lower threshold is
-1.CPU Configuration
CPU backend selection. Options:
any, x64. Currently has no effect.Processor Version Register value. Different Xbox 360 models used different PVR values:
0x710200- Zephyr0x710300- Zephyr0x710500- Jasper0x710700- Default (recommended)0x710800- Corona V1 & V2
Loads a .map file for symbol names and to diff with the generated symbol database.
Disassemble functions during code generation for debugging purposes.
Generate tracing for function statistics.
Trigger a breakpoint (int3) before the given guest address is executed. Useful for debugging.
Trigger int3 on JITed
__debugbreak requests.APU Configuration
Mute all audio output.
UI Configuration
Don’t display any UI, using defaults for prompts as needed. Useful for automated testing.
HID Configuration
Forward guide button presses to the guest. Set to
false to prevent the guide button from being sent to games.Kernel Configuration
Log kernel calls with the kHighFrequency tag. Warning: generates significant log output.
Editing Configuration
Manual Editing
You can edit configuration files directly with any text editor. The config file is well-commented with descriptions for each option.Runtime Changes
Some configuration options can be changed at runtime through the emulator UI, but most require a restart to take effect.Config File Updates
Xenia automatically updates your configuration file when:- New options are added to the emulator
- Default values change
- Option descriptions are updated
Best Practices
Use game configs for game-specific tweaks
Use game configs for game-specific tweaks
Instead of constantly editing the global config, create per-game configs for titles that need special settings. This keeps your global config clean and makes it easier to manage settings across different games.
Back up your config before major changes
Back up your config before major changes
Before making significant configuration changes, make a backup copy of your config file. This makes it easy to revert if something goes wrong.
Check logs when changing settings
Check logs when changing settings
The emulator logs the active configuration on startup. Check the log to verify your changes are being applied correctly.
Use command-line args for testing
Use command-line args for testing
When experimenting with settings, use command-line arguments instead of editing the config file. This allows quick testing without permanently modifying your configuration.
Troubleshooting
Config Not Loading
If your configuration changes aren’t being applied:- Check that the config file path is correct
- Verify the TOML syntax is valid (no typos in option names)
- Ensure the option is in the correct category section
- Check the log output for config parsing errors
Config File Corruption
If Xenia fails to parse the config file:- Check the error message in the log for the specific parsing error
- Validate your TOML syntax using an online TOML validator
- Delete the config file to regenerate with defaults (backup first!)
Options Not Taking Effect
Some options require specific conditions:- GPU options may require a specific graphics backend
- Some features are platform-specific (Windows/Linux)
- Certain options only affect games that use specific Xbox 360 features
