Skip to content

Documentation

Choose iPhone/iPad or Mac to get the right steps.

One codebase, two builds: iPhone/iPad and Mac.

Settings Reference

Graphics, performance, audio, input, and configuration options.


In-App Settings

XeniOS includes a native iOS settings UI organized into four sections. These control the most common options. For advanced tuning, edit the config file directly.

Graphics

  • present_letterbox — Maintain aspect ratio with letterboxing. Default: true.
  • present_safe_area_x / present_safe_area_y — Safe area percentage (0–100). Default: 100.
  • anisotropic_override — Override anisotropic filter level. -1=auto, 0=off, 1=1x, 2=2x, 3=4x, 4=8x, 5=16x. Default: -1.
  • internal_display_resolution — Resolution index (0–17). Default: 8 (1280x720). Common values: 0=640x480, 8=1280x720, 16=1920x1080, 17=custom.

Performance

  • framerate_limit — Host FPS cap. 0 = unlimited. Default: 0.
  • guest_display_refresh_cap — Vblank timing control for guest display refresh. Default: true.
  • async_shader_compilation — Compile shaders asynchronously to reduce stutter. Default: true.

Compatibility

  • half_pixel_offset — Half pixel offset correction. Some games need this toggled. Default: true.
  • occlusion_query_enable — Enable GPU occlusion queries. Default: false.
  • gpu_allow_invalid_fetch_constants — Allow invalid fetch constants. Fixes some game crashes. Default: true.

Audio

XMA audio is decoded via FFmpeg and output through SDL2 (CoreAudio on iOS).

  • mute — Disable all audio output. Default: false.
  • apu_max_queued_frames — Audio buffer queue size (4–64). Lower = less latency. Default: 8.
  • xma_decoder — XMA decoder implementation: old, new, master, or fake. Current builds may migrate defaults to old even though the code-defined base default is new.

Input

XeniOS uses SDL2 for input, bridging to Apple's GameController framework. Up to 4 controllers are supported simultaneously. Controllers are auto-detected — no configuration needed.

  • vibration — Enable controller haptic feedback. Default: true.
  • left_stick_deadzone_percentage / right_stick_deadzone_percentage — Stick deadzone (0.0–1.0). Default: 0.0.

Supported controllers: Xbox Wireless, PlayStation DualSense and DualShock 4, Nintendo Switch Pro, and MFi-certified gamepads. There are currently no touchscreen gameplay controls. Touch screen input is used for UI navigation only, and there is no touch-to-gamepad mapping.

Config Files

All settings are stored in xenios.config.toml in the app's Documents directory. Per-game overrides are created as <TITLEID>.config.toml files in the config/ subdirectory.

Documents/
├── xenios.config.toml              (global config)
└── config/
    └── 4D5307E6.config.toml        (per-game override for Halo 3)