FANGAMESDB

Play the original Halo natively on Steam Deck

2026-10-07 · OpenCE's Linux build, step by step

OpenCE is a native port of the original Xbox Halo: Combat Evolved, and one of its builds is for Linux. The Steam Deck runs Linux, so you can play Halo there as a native program, without an emulator and without Proton. This guide follows the project's own instructions. We haven't tested it on a Deck ourselves, so treat the last section as a checklist, not a guarantee.

What you need

  • A disc image of your own Xbox copy of Halo: Combat Evolved, as an .iso or .xiso file. Any region and version works. If you don't have one yet, see our dumping guide.
  • Free space for the game's maps folder, plus roughly 800 MB for the cache the game builds.

Install it

  1. Hold the power button and switch to Desktop Mode.
  2. Copy the disc image to the Deck, over USB or across your network.
  3. From the project's releases page, download halo-linux-release.zip. Skip the debug build unless you're reporting a bug: it stops at the first error.
  4. Extract the zip to a folder of its own, for example ~/Games/Halo.
  5. Run halo from that folder. On first start it asks for a disc image: choose Yes, pick your file, and it copies the game's maps folder next to the program. The game starts once the copy finishes.

Add it to Gaming Mode

  1. In Steam (still in Desktop Mode), choose Games → Add a Non-Steam Game to My Library, browse to the halo file, and add it.
  2. Leave Proton off. This is a Linux program, and forcing compatibility mode would make Steam treat it as a Windows game.
  3. Switch back to Gaming Mode. Halo appears in your library under Non-Steam.

The game reads gamepads directly, so the Deck's controls work with Steam's standard gamepad layout. Keyboard and mouse bindings live under Settings → Controls Setup in the game's menu.

If it won't start

  • Nothing happens when you run it. Make sure halo is marked executable: right-click it in Dolphin, open Properties → Permissions, and tick "Is executable".
  • It closes straight away. OpenCE is a 32-bit program, because the game's data contains 32-bit pointers, as on the Xbox. It needs 32-bit OpenGL and audio libraries. SteamOS includes those because Steam itself needs them, so this should be covered. If the game still closes, the log says what's missing.
  • Read the log. The game writes debug.txt into the folder that holds maps, and a crash adds its report there. That file is what the developers ask for in bug reports.
  • It asks for the disc again. The first copy didn't finish. The game writes to maps.partial and only renames it when the copy is complete, so pick the image again.

Multiplayer

System link works from the Deck too, with up to 128 players across Windows, Linux and Android machines, joined over the internet with an invite link. More on that, and on other Halo projects, in our OpenCE write-up.

Other handhelds: the ROG Ally and Legion Go can use the Windows build, and Android handhelds such as the Retroid Pocket 5 and AYN Odin 2 the Android one. Every device's options are on the OpenCE page.

Source: OpenCE README and Linux port notes.

More in this series

  1. Play the original Halo natively on Steam Deck
  2. The original Halo now runs natively on Windows, Linux and Android
  3. Fans are rebuilding Halo themselves: 64-player Halo 3, Halo 5 on PC and the original everywhere

Halo series · All Halo projects