Skip to content

Overview ​

Supported Platforms:

  • Microsoft Xbox 360

Compatibility List ​

https://docs.google.com/spreadsheets/d/1JmmmpMoge082wRsclijU3Ss491AWTDDdncepiARsN_0/edit#gid=0

Some games such as Blue Dragon requires changing some GPU settings in the emulator configuration file xenia-canary.config.toml to make it run without crash.

toml
...
gpu = "d3d12"
mount_cache = true
mount_scratch = true
...
[GPU]
clear_memory_page_state = true
...

Downloads ​

Download xenia-canary (https://github.com/xenia-canary/xenia-canary/releases) which is more frequently updated instead of xenia-master.

Last update of xenia-master is September 2023 as of time of writing.

alt text

xenia-canary was last updated on March 22, 2024 at the time of writing.

Run the emulator executable xenia_canary.exe.

alt text

alt text

Emulator Setup ​

https://github.com/xenia-project/xenia/wiki/Quickstart

Controls ​

Xenia do not have any UI wizard to customize key bindings, instead you can configure those keys from the configuration file named xenia-canary.config.toml, and within the section [HID.WinKey]

Open the configuration file and replace all the content:

The keycodes are Virtual-Key Codes used in Windows, you can refer to the full list here https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

toml
[HID.WinKey]
keybind_a = "0xA0"                                	# List of keys to bind to A, separated by spaces
keybind_b = "0x5A"                                	# List of keys to bind to B, separated by spaces
keybind_back = "0x35"                             	# List of keys to bind to BACK, separated by spaces
keybind_dpad_down = "0x62"                        	# List of keys to bind to DPAD_DOWN, separated by spaces
keybind_dpad_left = "0x64"                        	# List of keys to bind to DPAD_LEFT, separated by spaces
keybind_dpad_right = "0x66"                       	# List of keys to bind to DPAD_RIGHT, separated by spaces
keybind_dpad_up = "0x68"                          	# List of keys to bind to DPAD_UP, separated by spaces
keybind_guide = "0x74"                            	# List of keys to bind to GUIDE, separated by spaces
keybind_left_shoulder = "0x20"                    	# List of keys to bind to LEFT_SHOULDER, separated by spaces
keybind_left_thumb = "0x41"                       	# List of keys to bind to LEFT_THUMB_PRESSED, separated by spaces
keybind_left_thumb_down = "0x28"                  	# List of keys to bind to LEFT_THUMB_DOWN, separated by spaces
keybind_left_thumb_left = "0x25"                  	# List of keys to bind to LEFT_THUMB_LEFT, separated by spaces
keybind_left_thumb_right = "0x27"                 	# List of keys to bind to LEFT_THUMB_RIGHT, separated by spaces
keybind_left_thumb_up = "0x26"                    	# List of keys to bind to LEFT_THUMB_UP, separated by spaces
keybind_left_trigger = "0x58"                     	# List of keys to bind to LEFT_TRIGGER, separated by spaces
keybind_right_shoulder = "0x43"                   	# List of keys to bind to RIGHT_SHOULDER, separated by spaces
keybind_right_thumb = "0x53"                      	# List of keys to bind to RIGHT_THUMB_PRESSED, separated by spaces
keybind_right_thumb_down = "0x46"                 	# List of keys to bind to RIGHT_THUMB_DOWN, separated by spaces
keybind_right_thumb_left = "0x44"                 	# List of keys to bind to RIGHT_THUMB_LEFT, separated by spaces
keybind_right_thumb_right = "0x47"                	# List of keys to bind to RIGHT_THUMB_RIGHT, separated by spaces
keybind_right_thumb_up = "0x52"                   	# List of keys to bind to RIGHT_THUMB_UP, separated by spaces
keybind_right_trigger = "0x56"                    	# List of keys to bind to RIGHT_TRIGGER, separated by spaces
keybind_start = "0x31"                            	# List of keys to bind to START, separated by spaces
keybind_x = "0xA2"                                	# List of keys to bind to X, separated by spaces
keybind_y = "0xA4"                                	# List of keys to bind to Y, separated by spaces

The virtual keys 0xXX above for keyboard are mapped to XBox controller buttons as follows:

LCTRL: X
LAlt: Y
LShift: A
z: B

Space: Left Trigger
c: Right Trigger

x: Left Bumper
v: Right Bumper

F5: Guide
5: Back
1: Start

a: Left Analog Press
s: Right Analog Press

Also set the [HID].hid from any to winkey since we wanted to use the key bindings defined in the [HID.WinKey] section.

toml
[HID]
guide_button = true                               	# Forward guide button presses to guest.
hid = "winkey"                                    	# Input system. Use: [any, nop, sdl, winkey, xinput]
vibration = false                                 	# Toggle controller vibration.

TIP

Previously I thought these key bindings are hard coded into the emulator itself, before I discovered about the configuration file.

The following are kept for historical purposes where the community tries to figure out the key bindings.

The only clue is from Reddit post here (https://www.reddit.com/r/emulation/comments/3ywpsn/xenia_360_keyboard_controls/) or look at Xenia source code (https://github.com/benvanik/xenia/blob/master/src/xenia/hid/winkey/winkey_input_driver.cc)

RocketLauncher Setup ​

Launchbox Setup ​

alt text

alt text

Paste the following to Running Script section for key mappings.

ahk
; Activate full screen
WinWaitActive, ahk_exe xenia_canary.exe,,5
IfWinExist, ahk_exe xenia_canary.exe
{
	Sleep, 1000 ; wait before activate
	Send {F11}
}

; ---------------------
; Key Bindings
; ---------------------
LShift::;
z::'
LCtrl::l
LAlt::p
x::q
v::e

Up::w
Down::s
Left::a
Right::d

r::Up
f::Down
d::Left
g::Right

1::x
5::z

$Esc::
{
	WinClose, ahk_exe xenia_canary.exe
}

alt text