Playing original Xbox discs on a Linux desktop is not a nostalgia stunt. XEMU is the open-source emulator that runs the real Xbox hardware, and the current build boots far enough that you can sit down with a controller and a disc image in an afternoon.
I installed the current Flathub build (0.8.136) on this machine, unzipped the official pre-built hard disk image into the emulator’s data folder, and reproduced the exact first-launch state you will see: a settings window asking for three firmware files. This guide covers the install, the firmware step that trips people up, loading a game, and the two settings that make old titles look good on a modern monitor.
One rule before anything else: emulation is legal, piracy is not. The three files XEMU cannot ship, plus your games, must come from a console you own. Everything in this guide assumes that.
What you need before you install
XEMU is a low-level emulator. It recreates the Xbox motherboard rather than translating games one by one, so it needs the same files a real console needs when it powers on. The project documents exactly what each file is on its required files page.
| File | What it is | Where it comes from |
|---|---|---|
| mcpx_1.0.bin | MCPX boot ROM | Dumped from your console. The correct dump is MD5 d49c52a4102f6df7bcf8d0617ac475ed. |
| Complex_4627v1.03.bin | Flash ROM (BIOS) | XEMU cannot boot games with an unmodified retail BIOS. Use a debug BIOS or a modded retail one. COMPLEX 4627 is the community standard. |
| xbox_hdd.qcow2 | Hard disk image | Free to download. The official pre-built image contains an unsigned dashboard with no copyrighted content. |
The first launch also creates an eeprom.bin file for you. That file stores region, video, and serial data. XEMU generates a fresh one if you do not supply a dump from your own console, and the Xbox EEPROM editor adjusts it later if a game refuses to run in your region.
For games, XEMU reads XISO images, not the raw redump ISOs you get from a 1:1 disc copy. The project’s recommended tool is xdvdfs, which runs in a browser or on the command line, and it repacks a redump ISO in one step:
xdvdfs pack game-redump.iso
The output, game-redump.xiso.iso, is the file XEMU wants. If you have a modded console with a custom dashboard, FTP into it and copy the game directory straight off the drive instead. That dump is already in the right format.
Install XEMU on any Linux distribution
Three install paths are supported today, and all of them are listed on the official download page. Pick one. They are interchangeable for everything that follows.
Flatpak, the cross-distribution default
Every distribution with Flatpak enabled can install XEMU from Flathub:
flatpak install -y app.xemu.xemu
If Flathub is not set up on your system yet, our Flathub setup guide walks through enabling it first. The screenshot below shows the same install command on Fedora at the time of the original tutorial. The command and package id are unchanged, only the runtime versions around it have moved on:

Because a Flatpak is sandboxed, XEMU may also show up in your desktop’s software store once Flathub is enabled:

AppImage
The project ships x86_64 and aarch64 AppImages on its releases page. Mark the file executable and double-click it:
chmod +x xemu-linux-x86_64.AppImage
./xemu-linux-x86_64.AppImage
Ubuntu PPA
On Ubuntu 22.04 and newer, the maintainer’s PPA tracks the latest build and adds a launcher entry:
sudo add-apt-repository ppa:mborgerson/xemu
sudo apt update
sudo apt install xemu
A non-Flatpak install stores its files under ~/.config/xemu instead of the sandbox path below. Everything else in this guide works the same.
Point XEMU at its firmware files
The first launch shows an empty settings window. Nothing runs until the three files from the table above are in place:

Where the files go depends on your install path. The Flatpak build can write only one directory, so put the files there:
~/.var/app/app.xemu.xemu/data/xemu/xemu
The hard disk image needs to be in that folder too. XEMU’s Flathub listing names the exact path as an example: ~/.var/app/app.xemu.xemu/data/xemu/xemu/xbox_hdd.qcow2. I tested this during the refresh for this guide: the folder was empty on first run, XEMU created xemu.toml and a 256-byte eeprom.bin on its own, and after unzipping the official 8G image from the xqemu-hdd-image releases page into the folder, the emulator picked it up on the next launch without any configuration.

For a native install, the equivalent folder is ~/.config/xemu. Open Machine > Settings, click the file icon next to each entry, and point XEMU at the MCPX boot ROM, the BIOS, and the hard disk image:

Restart the emulator after the files are set. If everything is correct, the green Xbox boot animation plays. That splash is your proof the firmware is accepted:

Load your first game
Drop your XISO files into a folder, for example ~/Games/xbox. Then open Machine > Settings > General and set Games directory to that folder. The dashboard builds a list from it.
To run a single disc image without the list, use Machine > Load Disc (Ctrl+O), pick the XISO, and the game boots:

From the dashboard, press F2 or the guide button on your controller, open the Games list, and launch any title XEMU has indexed. If a game refuses to start, check the compatibility list on xemu.app first. Reports there are per-title and versioned, and they tell you quickly whether the problem is your dump or the emulator.
A redump ISO is the most common reason a disc image stalls. XEMU needs the game partition, and a redump contains the video partition in front of it. Repack once with xdvdfs and it loads.
Make games look and run better
Original Xbox games render at 480p. XEMU scales the internal resolution on the fly in Machine > Settings > Display. A scale of 3x turns 480p into 1080p, and 5x or higher suits a 1440p or 4K panel. If the frame rate drops, step the scale down before touching anything else.
Two more toggles matter on modest hardware. Skip startup animation cuts a few seconds from every boot, and Cache shaders to disk stops the emulator from recompiling shaders every session, which removes the stutter that shows up in the first minutes of play.
Controllers and snapshots
Controller support comes from SDL, and on Linux it is mostly automatic. Xbox 360 and Xbox One controllers work out of the box through the kernel’s xpad driver, and a DualShock 4 needs nothing extra either. Original Xbox controllers connect through a USB adapter and the xpad driver handles those as well. Four controllers are supported for local multiplayer, matching the real console’s limit.
Keyboard-only players are covered too. The default layout maps the face buttons to the backspace, return, and number rows, with the guide key on 5. The full table is on the controller page of the documentation.
Snapshots work like save states in any other emulator. With a game running, open Debug > Monitor and type:
savevm my-snapshot
Restore it later with loadvm my-snapshot, list what exists with info snapshots, and delete with delvm my-snapshot. The snapshot captures the whole machine state, so you can save right before a boss fight even if the game itself has no checkpoint nearby.
Where XEMU still falls short
XEMU emulates the original Xbox only. Xbox 360 titles need Xenia, which does not run on Linux, so 360 discs are a hard boundary here. Within its library, most of the catalog is playable and the compatibility list marks which titles still glitch, per reporter and per version.
The same constraint applies to audio in a couple of edge cases: surround sound is not supported, so leave it disabled in the EEPROM, and a few games need a BIOS with media patching built in, which the documentation notes for titles that stall after the logo.
Once the Xbox is done, the same afternoon can cover other consoles. We have guides for Nintendo Switch emulation on Linux, GameCube and Wii emulation on Linux, PlayStation 1 games with DuckStation, and RPCS3 for PlayStation 3. RetroArch covers the older systems in one front-end if you would rather not install an emulator per console. For the bigger picture, our guide to the wider Linux gaming stack pulls the native, Proton, and cloud options together.
Nintendo 3DS emulation and Nintendo Switch emulation sit in the same cluster if you are working through a shelf of consoles.
Is XEMU legal to use?
Yes. XEMU is open-source software and does not contain Microsoft code. The copyrighted parts, the MCPX boot ROM, the BIOS, and your games, must come from hardware and discs you own. Downloading firmware or games you do not own is piracy in most countries.
How do I play original Xbox games on Linux?
Install XEMU, place the MCPX boot ROM, a compatible BIOS, and a hard disk image in the emulator’s data folder, convert your disc to XISO format if needed, then load it with Machine > Load Disc or the dashboard game list.
Why does XEMU say it failed to load the BIOS?
The BIOS path is empty or the file is not a compatible dump. XEMU also cannot boot games with an unmodified retail BIOS, so use a debug BIOS or a modded retail BIOS such as COMPLEX 4627.
Does XEMU work with Xbox 360 games?
No. XEMU emulates the original Xbox only. Xbox 360 titles are handled by a separate project, Xenia, which does not currently run on Linux.
