Skip to main content
Xenia supports numerous command-line arguments for controlling emulator behavior, debugging, and advanced configuration.

Basic Usage

Where <game_path> can be:
  • Path to an .xex executable
  • Path to an .iso disc image
  • Path to a game directory

General Options

string
default:""
Specify a custom configuration file path. Can be absolute or relative.
boolean
default:"false"
Run without displaying any UI, using defaults for all prompts. Useful for automated testing and benchmarking.

GPU Options

Rendering

boolean
default:"true"
Enable or disable vertical synchronization. Disabling allows the emulator to run as fast as possible.
uint64
default:"60"
Set maximum frames per second. Use 0 for unlimited.
boolean
default:"true"
Allow texture and vertex fetch constants with invalid types. May help with some games but is generally unsafe.
boolean
default:"true"
Enable vertex half-pixel offset support (D3D9 behavior).

Debugging and Tracing

path
default:"scratch/gpu/"
Set the prefix path for GPU trace files. Used with F4 key to capture frames.
See the GPU Trace Viewer documentation for more details.
boolean
default:"false"
Trace all GPU packets to a file, allowing frame-by-frame seeking in the trace viewer. Warning: creates large files.
path
default:""
Dump all compiled GPU shaders to the specified path for debugging. Shaders are named by their input hash.

Advanced GPU Settings

boolean
default:"true"
Disable filtering between cube map faces (requires VK_EXT_non_seamless_cube_map on Vulkan).
int32
default:"80"
Lower threshold for occlusion query sample counts. Set to -1 to disable.
int32
default:"100"
Upper threshold for occlusion query sample counts.

CPU Options

string
default:"any"
Select CPU backend. Options: any, x64. Currently has no practical effect.
uint64
default:"0x710700"
Set the Processor Version Register value. Different Xbox 360 models used different values:
  • 0x710200 - Zephyr
  • 0x710300 - Zephyr
  • 0x710500 - Jasper
  • 0x710700 - Default
  • 0x710800 - Corona V1 & V2

Debugging

path
default:""
Load a .map file for symbol names and comparison with the generated symbol database.
boolean
default:"false"
Disassemble functions during JIT compilation. Useful for debugging recompiler issues.
boolean
default:"false"
Enable function execution tracing for statistics collection.
boolean
default:"false"
Generate tracing for function instruction coverage statistics.
boolean
default:"false"
Generate tracing for function address references.
boolean
default:"false"
Generate tracing for function result data.
boolean
default:"false"
Perform validation checks on the HIR (High-level Intermediate Representation) during compilation.

Breakpoints

uint64
default:"0"
Trigger a debugger breakpoint (int3) before executing the specified guest address.
int32
default:"-1"
GPR (General Purpose Register) to compare for conditional breakpoints.
uint64
default:"0"
Value to compare against for conditional breakpoints.
string
default:"eq"
Comparison operator for conditional breakpoints (e.g., eq, ne, gt, lt).
boolean
default:"true"
Truncate comparison value to 32 bits for conditional breakpoints.
boolean
default:"true"
Trigger int3 on JITed __debugbreak requests from game code.

APU Options

boolean
default:"false"
Mute all audio output from the emulator.

HID Options

boolean
default:"true"
Forward Xbox Guide button presses to the game. Set to false to prevent games from receiving guide button input.

Kernel Options

boolean
default:"false"
Enable logging of high-frequency kernel calls. Warning: generates massive log files.

Usage Examples

Performance Testing

Run a game at maximum speed without vsync:

Debug Session

Capture GPU traces and dump shaders while running:
During gameplay, press F4 to capture the current frame.

Compatibility Testing

Test with a specific PVR value and no audio:

Automated Testing

Run headless with custom config:

Function Analysis

Trace function execution with disassembly:

Combining with Config Files

Command-line arguments override config file settings. This is useful for:
  • Quick testing without modifying config files
  • Scripted testing with different parameters
  • Per-session overrides for specific debugging scenarios
Example workflow:

Boolean Flag Syntax

Boolean flags support multiple syntaxes:

Tips

Use --trace_gpu_prefix with descriptive names when capturing multiple games:
Enabling --trace_gpu_stream can create multi-gigabyte files. Ensure you have adequate disk space before using this option.
Command-line arguments take precedence over both global and game-specific config files, making them ideal for testing without permanent configuration changes.