Skip to content

Xemu is an Original Xbox Emulator.

Website: https://xemu.app/

GitHub: https://github.com/mborgerson/xemu

Compatibility List: https://xemu.app/#compatibility

Xemu Wiki: https://xemu.app/docs/download/

Quickstart Guide (Skip the HDD requirement, it is pre-included with EmuDeck): https://xemu.app/docs/required-files/


Xemu Table of Contents

  1. Getting Started with Xemu

  2. Common Issues

  3. Xemu Tips and Tricks


Getting Started with Xemu

Back to the Top

Xemu is a fairly straight-forward emulator to set up. Place your xiso formatted ROMs in Emulation/roms/xbox. Read the File Formats section to learn more about xiso formatted ROMs. Place your BIOS directly in Emulation/bios. Read the Configuration section to learn more about Xemu, the expected BIOS and naming conventions, and Xemu's folder locations.

To launch your ROMs in game mode, use Steam ROM Manager and use one of the following parsers to play your Xbox (OG) ROMs:

  • ES-DE
  • Microsoft XBox - Xemu
  • Emulators

Xemu Configuration

Back to the Top

  • Type of Emulator: Flatpak
  • Config Location: /home/deck/.var/app/app.xemu.xemu
  • ROM Location: Emulation/roms/xbox
  • BIOS Location: Emulation/bios
    • Do not create any additional folders in this folder for Xbox BIOS
  • Required BIOS:
    • MCPX Boot ROM Image: mcpx_1.0.bin
    • Flash ROM Image: Complex_4627v1.03.bin
    • These are EmuDeck's pre-configured file names, you must name the files exactly as written above. If you choose to provide a different Flash ROM Image, you can either rename the file or open Xemu and change the settings to point to the file directly.
  • Storage Location: Emulation/storage/xemu
  • Saves: Emulation/storage/xemu/xbox_hdd.qcow2

Note: ~/.var is an invisible folder by default. In Dolphin (file manager), click the hamburger menu in the top right, click Show Hidden Files to see these folders.

Works With

  • Steam ROM Manager
  • ES-DE

Xemu Folder Locations

Back to the Top

These file locations apply regardless of where you chose to install EmuDeck (to your internal SSD, to your SD Card, or elsewhere). Some emulator configuration files will be located on the internal SSD as listed below.

$HOME refers to your home folder. If you are on a Steam Deck, this folder will be named /home/deck (you will likely not see deck in the file path when navigating using the file manager).

Paths beginning with Emulation/.. correspond to your EmuDeck install location. If you installed on an SD Card, your path may be /run/media/mmcblk0p1/Emulation/roms/... If you installed on your internal SSD, your path may be /home/deck/Emulation/roms/..

Note: Folders with a . (.var, .local, .config, etc.) at the beginning are hidden by default. In Dolphin (file manager), click the hamburger menu in the top right, click Show Hidden Files to see these folders.

$HOME/.var/app/app.xemu.xemu

app.xemu.xemu/
├── cache
├── config
│   ├── glib-2.0
│   │   └── settings
│   ├── gtk-3.0
│   │   └── bookmarks
│   ├── ibus
│   │   └── bus
│   ├── pulse
│   │   └── cookie
│   └── user-dirs.dirs
└── data
    ├── recently-used.xbel
    └── xemu
        └── xemu
            ├── shader_cache_list
            ├── shaders
            ├── xemu.toml
            └── xemu.toml.bak

Emulation/storage/xemu

xemu/
├── eeprom.bin
└── xbox_hdd.qcow2
  • xbox_hdd.qcow2 is a "pre-built 8G Xbox HDD image, free of any copyrighted content, and only contains a dummy dashboard" provided by Xemu
  • The "Hard Disk Image" is one of the required files mentioned in Xemu's setup documentation
  • You may also choose to provide your own hard disk image. Other hard disk images may include additional features such as FTP

How to Update Xemu

Back to the Top

How to Update Xemu

  • Update through Discover (Shopping bag icon)
  • Through the Update your Emulators & Tools section on the Manage Emulators page in the EmuDeck application

How to Launch Xemu in Desktop Mode

Back to the Top

How to Launch Xemu in Desktop Mode

  • Launch xemu from the Applications Launcher (Steam Deck icon in the bottom left of the taskbar)
  • Launch the script from Emulation/tools/launchers, xemu.sh
  • Launch the emulator from Steam after adding it via the Emulators parser in Steam ROM Manager

Xemu File Formats

Back to the Top

What is the xiso format?

From Xemu:

"xemu requires game discs to be in the form of xiso images. These are generally saved with a .iso extension, but are not the same as typical ISO images."

Put simply, xiso ROMs are ISOs stripped of their video partition.

Typically, you will start with an ISO ROM that has an .iso file extension. In order to use this ROM in Xemu, you will need to select one of the methods in the How to Convert ROMs to XISO Format section to convert it to the xiso ROM format.


Xemu Common Issues

Back to the Top


"The guest has not initialized the display"

Back to the Top

This is likely due to a mismatch of MCPX and BIOS images, or a corrupt MCPX boot ROM.


"Please insert an Xbox disc"

Back to the Top

Try restarting Xemu. If you continue to get the message, your ISO may not be dumped in a compatible way. Try using extract-xiso to pack your ISO.

How to Convert ROMs to XISO Format


Xemu Tips and Tricks

Back to the Top


How to Convert ROMs to XISO Format

Back to the Top

List of Methods


Method 1: Use the xiso Website (Steam Deck)

Back to the Top

Instructions provided on website.

Link: https://xiso.antangelo.com/

Note:

  • This website is still in beta
  • If it does not work on Firefox, use Chrome or Edge instead

Method 2: Use XDVDMulleter (Windows)

Back to the Top

Link: https://archive.org/details/xdvdmulleterv10.2beta

1 2 3


Method 3: extract-iso (Windows)

Back to the Top

Link: https://github.com/XboxDev/extract-xiso

Instructions

  1. Go to the releases tab: https://github.com/XboxDev/extract-xiso/releases/tag/build-202204252159
  2. Download the release .ZIP
  3. Extract it somewhere on your computer
  4. Put the untrimmed Xbox .ISO in the same directory
  5. Rename the .ISO to something without spaces like game-redump.iso (doesn't have to be this exact name)
  6. Open command prompt on your computer
  7. Navigate to the directory containing the .EXE and your .ISO
  8. Run extract-xiso -r game-redump.iso

Xemu's Tutorial: https://xemu.app/docs/disc-images/


Method 4: extract-iso (Linux)

Back to the Top

Note: Cannot be built on the Steam Deck, but can be built elsewhere and copied. Then, it is usable on Steam Deck.

  1. Enter these commands in your terminal

     # Install dependencies
     # Example for Arch:
     sudo pacman -Syu --needed base-devel cmake
    
     # Clone Repo
     git clone https://github.com/XboxDev/extract-xiso.git
    
     # cd into directory
     cd extract-xiso
    
     # Create working directory
     mkdir build
     cd build
    
     # Build project
     cmake ..
     make
    
  2. Put the untrimmed Xbox .ISO in the same directory

  3. Rename the .ISO to something without spaces like game-redump.iso (doesn't have to be this exact name)
  4. Navigate to the directory containing your .ISO
  5. Run extract-xiso -r game-redump.iso

Method 5: extract-iso (Mac)

Back to the Top

  1. ⁠Open terminal
  2. In terminal type the following: Xcode-select --install
  3. Click allow on the Pop-up
  4. Navigate to extract-xiso, cd the/path/to/extract-xiso
  5. Type make
  6. Then type the following: sudo chmod +x extract-iso
  7. Finally run the executable: ./extract-xiso name\of\game.iso

Method 6: dd (Linux)

Back to the Top

Note: May not work on Steam Deck, needs testing.

Refer to Xemu's wiki for instructions, https://xemu.app/docs/disc-images/#about-redump-isos


How to Configure Multiplayer

Back to the Top

Xemu comes with a nifty auto-map feature that makes setting up multiplayer a breeze. To set up multiplayer, you simply need to enable the additional ports.

  1. Open Xemu
  2. Open the Input settings
  3. For each controller you are using for Player 2, 3, and 4, click the respective tab
    • You do not need to adjust any settings for Player 1
  4. In the drop-down menu
    • Player 2: Steam Virtual Gamepad 2
    • Player 3: Steam Virtual Gamepad 3
    • Player 4: Steam Virtual Gamepad 4
  5. After you are finished enabling any additional players, exit out of Xemu and you may open your game either directly as a shortcut in Steam or through ES-DE
  6. (Optional) You may need to re-arrange the controller order in Game Mode for your controllers to function as expected. See How to Re-Arrange the Controller Order to learn how

How to Apply Zink

Back to the Top

Preface

On the Steam Deck, some Xbox game graphics will not render properly. Applying Zink can fix these graphical issues.

However, Zink can also cause performance hits in certain games. Apply it on a per-game basis and keep in mind that if performance is degraded, it may be due to Zink.

You can read more about the issue here: https://github.com/xemu-project/xemu/issues/1279#issuecomment-1381015271.

Read one of the below sections to learn how to apply Zink to your Xbox games.

Practical Uses of Zink

  • Fixes graphical issues
  • Improves performance in some games (may worsen in others)
  • Fixes black screen issues in some games

How to Apply Zink to ES-DE Games

Back to the Top

  1. In Desktop Mode, open the Emulation/roms/xbox folder
  2. Right click anywhere in the folder, click Create New --> Text File
  3. Match the name of the text file to the game you are applying Zink to and change the file extension to .esprefix
    • For example:
      • ROM Name: Conker - Live & Reloaded.iso
      • New text file name: Conker - Live & Reloaded.esprefix
  4. Open the newly created text file in Kate or a text editor of your choice
  5. On a single line, write:
    • __GLX_VENDOR_LIBRARY_NAME=mesa MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink
    • Example:
  6. Zink will now be applied to this specific game in ES-DE, repeat for each game you would like to apply Zink

How to Apply Zink to Pegasus Games

  1. In Desktop Mode, open the Emulation/roms/xbox/roms folder
  2. Right click metadata.txt, click Open with Kate or a text editor of your choice
  3. At the bottom of the text file, add a new section using the following format:

    game: GAMENAME
    file: FILENAME
    launch: /PATH/TO/xemu.sh "{file.path}" __GLX_VENDOR_LIBRARY_NAME=mesa MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink
    
  4. Replace GAMENAME with the name of the game

    • For example:
      • Conker: Live & Reloaded
  5. Replace FILENAME with the file name
    • For example:
      • Conker: Live & Reloaded.iso
  6. Edit /PATH/TO with the path to xemu.sh, the path for xemu.sh will be at the top of the metadata.txt file, you may copy it here
  7. Save and exit out of the file
  8. Zink will now be applied to this specific game in Pegasus, repeat for each game you would like to apply Zink

How to Apply Zink to Steam ROM Manager Shortcuts

Back to the Top

  1. In Desktop Mode, open Steam
  2. Select an Xbox Game shortcut in Steam
  3. Click the Gear icon
  4. Click Properties
  5. In the Launch Options box, enter: __GLX_VENDOR_LIBRARY_NAME=mesa MESA_LOADER_DRIVER_OVERRIDE=zink GALLIUM_DRIVER=zink %command%
  6. Zink will now be applied to this specific game's Steam shortcut, repeat for each game you would like to apply Zink

vs_position_always_invariant=true

Back to the Top

For more information on what vs_position_always_invariant=true is, see https://gitlab.freedesktop.org/mesa/mesa/-/commit/9b577f2a887968483b88b629673d3f9904a179ff.

Setting vs_position_always_invariant=true for Xemu games can be considered an alternative option to the How to Apply Zink section. Zink may cause performance issues or graphical issues. If that is the case, you can try the steps in this section. However, applying vs_position_always_invariant=true may also cause its own set of performance or graphical issues.

Practical Uses of vs_position_always_invariant=true

  • Fixes black screen issues
    • Games with black screen issues (Not an exhaustive list)
      • Burnout 3 and Phantom Dust

Read one of the below sections to learn how to apply Zink to your Xbox games.

How to Apply vs_position_always_invariant=true to ES-DE Games

  1. In Desktop Mode, open the Emulation/roms/xbox folder
  2. Right click anywhere in the folder, click Create New --> Text File
  3. Match the name of the text file to the game you are applying vs_position_always_invariant=true to and change the file extension to .esprefix
    • For example:
      • ROM Name: Conker - Live & Reloaded.iso
      • New text file name: Conker - Live & Reloaded.esprefix
  4. Open the newly created text file in Kate or a text editor of your choice
  5. On a single line, write:
    • vs_position_always_invariant=true
  6. vs_position_always_invariant=true will now be applied to this specific game in ES-DE, repeat for each game you would like to apply vs_position_always_invariant=true

How to Apply vs_position_always_invariant=true to Pegasus Games

  1. In Desktop Mode, open the Emulation/roms/xbox/roms folder
  2. Right click metadata.txt, click Open with Kate or a text editor of your choice
  3. At the bottom of the text file, add a new section using the following format:

    game: GAMENAME
    file: FILENAME
    launch: /PATH/TO/xemu.sh "{file.path}" vs_position_always_invariant=true
    
  4. Replace GAMENAME with the name of the game

    • For example:
      • Conker: Live & Reloaded
  5. Replace FILENAME with the file name
    • For example:
      • Conker: Live & Reloaded.iso
  6. Edit /PATH/TO with the path to xemu.sh, the path for xemu.sh will be at the top of the metadata.txt file, you may copy it here
  7. Save and exit out of the file
  8. vs_position_always_invariant=true will now be applied to this specific game in Pegasus

How to Apply vs_position_always_invariant=true to Steam ROM Manager Shortcuts

  1. In Desktop Mode, open Steam
  2. Select an Xbox Game shortcut in Steam
  3. Click the Gear icon
  4. Click Properties
  5. In the Launch Options box, enter: vs_position_always_invariant=true %command%
  6. vs_position_always_invariant=true will now be applied to this specific game's Steam shortcut, repeat for each game you would like to apply vs_position_always_invariant=true

How to Access Saves

Back to the Top

Your save files are located here: Emulation/storage/xemu/xbox_hdd.qcow2

How to Access Saves

Download https://github.com/Ryzee119/LithiumX/releases, extract the zip file, and launch the ISO in Xemu.

Follow the instructions here: https://xemu.app/docs/ftp/, to access the saves in the xbox_hdd.qcow2 file.


How to Roll Back Xemu to an Older Version

Back to the Top

If you do not have access to a mouse and keyboard for the below section, use L2 to right click and R2 to left click. Alternatively, remote into your Steam Deck using one of the methods found in the FAQ, How do I remotely control my Steam Deck?.

  1. In Desktop Mode, open Konsole
  2. To see a list of prior versions of the emulator, type:
    • flatpak remote-info --log flathub app.xemu.xemu
  3. If Konsole prompts you to select system or user, enter 2 to select user
  4. Konsole will list a list of previous versions for the flatpak. The important line for each version is the Commit: line. The Commit: line will have a long accompanying alphanumeric string (the “commit” code). Copy the string for the version you want to downgrade to.
    • Using Citra as an example:
      • How to Roll Back Flatpaks: 1
  5. To downgrade to the version you want:
    • flatpak update --commit=put_commit_code_here app.xemu.xemu
    • Replace put_commit_code_here with the actual code you located in Step 2.
      • Using Citra as an example:
        • How to Roll Back Flatpaks: 2

If the above steps did not work and you are getting an error message along the lines of Flatpak not installed, your Flatpak is likely installed at the system level instead. Select one of the below solutions:

Solution 1: Open the EmuDeck application, click the Manage Emulators page, select the emulator in question, and click Reinstall / Update.

Solution 2: Add sudo in front of the commands written in Step 2 and Step 5. In Step 2, write sudo flatpak remote-info --log flathub app.xemu.xemu and in Step 5, write sudo flatpak update --commit=put_commit_code_here app.xemu.xemu.


How to Configure Language Settings

Back to the Top

In-Game

Download and set up XboxEepromEditor. For instructions, see How to Set Up XboxEepromEditor.

  1. Open XboxEepromEditor
  2. In the top left, click File, Open
  3. Click the / and navigate to your Emulation/storage/xemu folder
    • If your EmuDeck install is on an SD Card, your path will typically begin with /run/media...
    • If your EmuDeck install is on your internal SSD, your path will typically begin with /home/deck..
  4. Select the eeprom.bin file
  5. Under the Security tab, select your preferred region
    • Some regions may have more language options than others
  6. Under the General tab, select your preferred language
  7. After you have made your changes, click File, click Save As
  8. In the File Name box, type eeprom.bin
  9. Click the / and navigate to your Emulation/storage/xemu folder
    • If your EmuDeck install is on an SD Card, your path will typically begin with /run/media...
    • If your EmuDeck install is on your internal SSD, your path will typically begin with /home/deck..
  10. Click Save and click Yes on the File already exists, do you want to replace it? prompt
  11. Your preferred language settings will now be applied in Xemu