Microsoft - Xbox (xemu)¶
Background¶
A port of xemu, the original Xbox emulator, to libretro. The emulator is upstream's: the core follows xemu-project/xemu and reports upstream's version. It is experimental.
The core is built for Linux (x86_64, arm64), Windows (x64), macOS (Apple Silicon, Intel) and Android (arm64-v8a, x86_64).
The xemu core has been authored by
- xemu-project team
- Matt Borgerson
- WizzardSK
The xemu core is licensed under
A summary of the licenses behind RetroArch and its cores can be found here.
Requirements¶
A 64-bit CPU and a GPU with OpenGL 4.0 (core profile) or Vulkan 1.1 support. The Graphics API core option picks the renderer, Vulkan by default; a change takes effect after RetroArch is restarted.
- On Android the core renders with Vulkan only.
- On macOS it renders with OpenGL only: MoltenVK has no geometry shaders, which xemu's Vulkan renderer needs. Use RetroArch's
glcorevideo driver there.
BIOS¶
The core needs the console's boot ROM and BIOS and a hard disk image, none of which are included with it. Put them in an xemu folder in RetroArch's system directory.
| Filename | Description | md5sum |
|---|---|---|
| mcpx_1.0.bin | MCPX boot ROM, 512 bytes - Required | d49c52a4102f6df7bcf8d0617ac475ed |
| Complex_4627v1.03.bin | Flash ROM (BIOS), 1 MB or 256 KB - Required | - |
| xbox_hdd.qcow2 | Hard disk image - Required | - |
| xbox_eeprom.bin | EEPROM - Optional, created when it is missing | - |
The boot ROM and the BIOS are Microsoft's and have to be dumped from your own console; see xemu's required files. A ready-made hard disk image is published by the xemu project as xemu-hdd-image.
Extensions¶
Content that can be loaded by the xemu core have the following file extensions:
- .iso
- .xiso
Games are loaded as XISO images, the format made by tools such as extract-xiso. A plain redump .iso of an Xbox disc has to be converted to XISO first.
Features¶
Frontend-level settings or features that the xemu core respects.
| Feature | Supported |
|---|---|
| Restart | ✔ |
| Screenshots | ✔ |
| Saves | ✕ |
| States | ✕ |
| Rewind | ✕ |
| Netplay | ✕ |
| Core Options | ✔ |
| Memory Monitoring (achievements) | ✕ |
| RetroArch Cheats | ✕ |
| Native Cheats | ✕ |
| Controls | ✔ |
| Remapping | ✔ |
| Multi-Mouse | ✕ |
| Rumble | ✔ |
| Sensors | ✕ |
| Camera | ✕ |
| Location | ✕ |
| Subsystem | ✕ |
| Softpatching | ✕ |
| Disk Control | ✕ |
| Username | ✕ |
| Language | ✕ |
| Crop Overscan | ✕ |
| LEDs | ✕ |
Games save to the emulated console's hard disk, inside xbox_hdd.qcow2, not to RetroArch save files. Save states are not supported.
Directories¶
The xemu core's library name is 'xemu'.
Frontend's System directory
xemu/mcpx_1.0.bin,xemu/Complex_4627v1.03.bin(boot ROM and BIOS)xemu/xbox_hdd.qcow2(hard disk image, which holds the game saves)xemu/xbox_eeprom.bin(EEPROM)
Core options¶
The xemu core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.
System¶
-
System Memory (MB) [xemu_memory] (64 MB|128 MB)
Amount of system RAM. 64 MB is standard; 128 MB is used by debug kits.
-
Network Backend [xemu_network_backend] (Disabled|NAT)
Enable network support for Xbox games with LAN/System Link features. NAT backend provides basic connectivity.
-
Skip Boot Animation [xemu_skip_boot_anim] (Disabled|Enabled)
Skip the Xbox boot animation.
-
Hardware FPU Emulation [xemu_hard_fpu] (Enabled|Disabled)
Use host FPU for x87 emulation. Faster but may have minor inaccuracies.
Video¶
-
Graphics API (Restart) [xemu_renderer] (Vulkan|OpenGL)
The renderer the emulated GPU is drawn with. Vulkan is the default; OpenGL is the fallback for drivers where Vulkan misbehaves. Takes effect after RetroArch is restarted. Android always uses Vulkan, macOS always OpenGL.
-
Aspect Ratio [xemu_aspect_ratio] (Auto|4:3|16:9)
The shape the picture is shown in. Auto follows the game: 16:9 when it switches the console to widescreen (Widescreen has to be on in the dashboard's video settings), 4:3 otherwise. Choose 16:9 for a game that renders widescreen but is shown squashed.
-
Internal Resolution Scale [xemu_surface_scale] (1x (640x480)|2x (1280x960)|3x (1920x1440)|4x (2560x1920)|5x (3200x2400)|6x (3840x2880)|7x (4480x3360)|8x (5120x3840)|9x (5760x4320)|10x (6400x4800))
Scales the internal rendering resolution. Higher values improve quality but reduce performance.
-
AV Pack [xemu_avpack] (HDTV|Composite|S-Video|SCART|VGA)
Select the AV pack type. Affects available video modes.
-
Shader Cache [xemu_cache_shaders] (Enabled|Disabled)
Cache compiled GPU shaders to disk. Reduces stutter on subsequent runs.
-
Reduced Vulkan Buffers (Restart) [xemu_vk_reduced_buffers] (Enabled|Disabled)
The Vulkan renderer reserves its work buffers when it starts, whatever the game needs. Enabled keeps the buffer for inline vertex data at a tenth of xemu's size, which takes about 1.2 GB less video memory and as much less system memory. Disabled reserves xemu's full size on graphics cards with 4 GB or more; try it if a game is slower with this enabled.
-
Display Filtering [xemu_display_filtering] (Bilinear|Nearest Neighbor)
Texture filtering mode for the display output.
Audio¶
-
APU DSP Emulation [xemu_use_dsp] (Disabled|Enabled)
Enable DSP emulation for improved audio accuracy. May impact performance.
-
Audio Volume Limit (%) [xemu_audio_volume] (100%|80%|60%|40%|20%|Muted)
Limit Xbox audio output volume independently from RetroArch master volume.
Controllers¶
Up to four Xbox controllers, one per RetroArch port. Rumble goes through the frontend's rumble interface.
Joypad¶
| RetroPad Inputs | Xbox controller |
|---|---|
![]() |
A |
![]() |
B |
![]() |
X |
![]() |
Y |
![]() |
Back |
![]() |
Start |
![]() |
D-Pad Up |
![]() |
D-Pad Down |
![]() |
D-Pad Left |
![]() |
D-Pad Right |
![]() |
White |
![]() |
Black |
![]() |
Left Trigger |
![]() |
Right Trigger |
![]() |
Left Stick click |
![]() |
Right Stick click |
![]() |
Left stick |
![]() |
Right stick |

















