Affiliate disclosure: This guide contains affiliate links. As an Amazon Associate, we earn from qualifying purchases at no extra cost to you. Learn more.
2026-09-29 · News and analysis
Affiliate disclosure: This guide contains affiliate links. As an Amazon Associate, we earn from qualifying purchases at no extra cost to you. Learn more.
We have written the same sentence on this site more times than we would like. A great native port appeared, and it is x86 only, so Android handheld owners are out.
Here is the exception.
Halo: Combat Evolved, the original Xbox version, has been decompiled and then ported to three platforms at once. Linux, Windows, and Android on arm64. The Android build is not a side project or a community fork bolted on later. It is a first class target that gets rebuilt on every commit, alongside the other two.
That makes it the first thing in the recompilation and decompilation scene built for the hardware most of our readers actually own.
The Short Version
- What it is: a native port of the original Xbox Halo: Combat Evolved, built from a decompilation of the game
- Platforms: Linux, Windows, and Android
- Android build: arm64-v8a, OpenGL ES 3, SDL3 audio and input
- Android minimum: Android 9 (API 28) or later, on a 64-bit only device
- Desktop builds: 32-bit x86 executables using OpenGL 4.5 and SDL3
- Controllers: read through SDL3, so anything Android already recognises works
- Split screen: up to four local players, pads two through four are players two to four
- Multiplayer: system link for up to 128 players across 128 machines, and Linux, Windows and Android can share the same game
- What you supply: an Xbox disc image of a copy you own, roughly 1.8GB once extracted
- Release cadence: every passing commit becomes a release. Build 32 landed on 29 September 2026
- Not an emulator: there is no Xbox being simulated at runtime
Get the Right Repository
This matters more than usual here, because the project has been forked heavily and most of the forks share the same name.
The repository that publishes the builds is cybersecurity/halo-ce-universal. That is where the release automation lives and where the download links in every fork's README point back to.
A second name you will see is bnunu/halo-ce-universal, which is the fork that raised the multiplayer limit to 128 players. Underneath both sits the decompilation itself, punpckhdq/halo, and a fork of that called bnunu/halo-1.
We are deliberately not deep linking binaries. Search the project name on GitHub, read its documentation, and check that the repository you land on actually has releases. That check has saved readers before. When we covered the Spider-Man recomp projects, the most popular repository could not draw a single frame while a less popular one shipped a working installer.
Was Halo Really 100% Decompiled?
This claim is circulating and it needs care, because the two available sources disagree and we are not going to pick a winner.
decomp.dev, the tracker the decompilation's own README links to, reports the project at 5.92% of code matched and 36.81% of data, with 884 of 11,058 functions done. Its report was generated from a commit dated 28 September 2026, so it is current, not stale. The important caveat is that only 121 of 833 units are registered in that report at all. A tracker measures what the project has configured it to measure.
The fork's README describes the same work as a "99.5% byte matching" decompilation.
Those are very far apart, and we have no way to reconcile them from the outside.
What we can say is the part that actually affects you. A playable port exists either way. The percentage on a tracker and whether a game runs are two different questions, and this scene keeps proving it. Our decompilation and recompilation explainer covers why those two things come apart.
Which Handhelds Clear the Bar
The Android requirements are unusually modest, and that is the story.
| Requirement | What it means |
|---|---|
| arm64-v8a | Every 64-bit Android handheld made in the last decade |
| Android 9 or later | A very low floor. Most current devices ship Android 12 or newer |
| 64-bit only device | Standard on modern hardware |
| OpenGL ES 3 | Not Vulkan. An older and far more widely supported graphics API |
| SDL3 game controller | Built in pads register the same way a Bluetooth pad does |
Read that list again and notice what is missing. There is no minimum GPU tier, no Vulkan requirement, and no modern Snapdragon floor.
Compare that to the Mario Kart Wiicompiled situation, where an ARM64 build appeared and then turned out to require a GTX 1650 class discrete GPU, which put it out of reach of every handheld on the market. This is the opposite case. The requirements were written for phones.
On paper that puts it within reach of the Retroid Pocket 5, the Retroid Pocket 6, the AYN Odin 2 Portal Pro and essentially any current Android handheld, along with plenty of older ones.
We want to be straight with you about the limit of that claim. We have not tested it, and the project publishes no per device compatibility list. Meeting a minimum API level is not the same as running well. What we can tell you is that the spec sheet does not rule your device out, which is a sentence we almost never get to write about this category.
What About Steam Deck and PC Handhelds
There is a Linux build, and SteamOS is Linux, so this should be straightforward.
One detail to flag. The desktop builds are 32-bit x86 executables rather than 64-bit, and they render through OpenGL 4.5. SteamOS carries 32-bit libraries for Proton and older titles, so this is not an obvious blocker, but the project does not name the Steam Deck anywhere in its documentation and publishes no Deck specific guidance.
There is also a portable build option for people compiling it themselves. By default the desktop builds compile with the instruction set of whatever machine built them, and the project offers a flag to produce builds that start on any x86-64 processor.
You Still Need Your Own Disc
Nothing here ships game content, and the way this port handles that is cleaner than most.
The port asks for an Xbox disc image of Halo: Combat Evolved, in .xiso or .iso form. The project states that all versions of the game work. On first launch it asks you to point at the image, extracts the game data, and then starts. On Android you copy the image to the device, press the button, and pick the file from the system picker. The extraction is around 1.8GB and you can delete the source image afterwards.
That means the copy you need is an ordinary retail Xbox disc, which is the kind of thing you can own.
One thing worth separating out. The decompilation underneath was made against an Xbox debug build of the game rather than a retail one. That is only relevant if you intend to build the decompilation from source yourself. We are not going to point at where that file lives, for the same reason we took the same position on GoldenEye 007 in our Xbox 360 list. Playing the port needs your own retail disc and nothing else.
The Multiplayer Part Is Genuinely Unusual
Most ports in this scene treat multiplayer as a problem for later. This one did not.
The port supports system link games over a local network and over the internet, with no server run by the project. It uses an invite link to connect machines. Linux, Windows and Android machines play in the same game, which means an Android handheld and a desktop PC can sit in the same match.
The 128 player figure comes from the bnunu fork, which raised the original limit. The netcode is new work rather than the Xbox original, with each machine moving its own player immediately while the host resolves the game state.
There is also experimental support for Halo Custom Edition .map files and OpenSauce .yelo maps. It is off by default, the project says maps can use features the port does not have, and it has only been tested against a handful of them.
What Is Still Rough
This is early software and it behaves like it.
Every passing build becomes a release. Build 32 shipped on 29 September 2026, and the previous three landed the same day. That is a project under very active development, not a stable release you install once. The releases page only keeps the last five, so if a build breaks something you roll back to a recent one rather than to a known good version from months ago.
There are debug and release builds of each platform. Grab the release build to play. The debug build stops at the first failed assertion and writes it to a log, which is what you want if you are reporting a problem and not what you want if you are trying to play.
The game updates itself. It checks for a newer release at startup and offers to install it.
How This Compares to xemu
If you have been playing original Xbox games on a handheld, you have been using xemu, and our xemu handheld guide covers that route.
The difference is the same one that applies across this whole category. xemu simulates the Xbox while you play, which costs performance on every frame and rules out weaker hardware. A native port does that translation work once, before you ever launch it, so what runs on your device is just a program.
The trade is coverage. xemu plays the Xbox library. This plays Halo.
For Android specifically the comparison is not close, because xemu has no Android build at all. If you want an original Xbox game running natively on a Retroid, this is currently the only one there is.
Why This Matters Beyond Halo
We have spent two years explaining to Android handheld owners why this scene keeps passing them by. The reason was never hostility. It is that a hobby developer with a PC builds for a PC, and adding a second architecture doubles the testing work for free.
This project shows what changes when someone treats Android as a target from the start instead of a request to close. The requirements landed low because they were chosen for phones. The graphics API is the one mobile chips actually speak. The controller handling came free with SDL3.
None of that is Halo specific. It is a template, and the scene copies templates quickly. Our recompiled games on Android guide tracks which systems have crossed this line, and until now the honest answer for the Xbox generation was none of them.
Frequently Asked Questions
Can I really play Halo: Combat Evolved on an Android handheld?
Yes, through a native port of the original Xbox version. It is not an emulator. The Android build targets arm64-v8a with OpenGL ES 3 and needs Android 9 or later on a 64-bit device, which most current handhelds clear comfortably. You supply an Xbox disc image of a copy you own.
Which repository is the real Halo port?
cybersecurity/halo-ce-universal publishes the builds. bnunu/halo-ce-universal is the fork with the 128 player multiplayer limit. The decompilation underneath is punpckhdq/halo. Several other repositories share the same name and have no releases, so check the releases page rather than the star count.
Is Halo: Combat Evolved 100% decompiled?
The two available sources disagree. decomp.dev reports 5.92% of code matched, though only 121 of 833 units are registered in its report. The fork's own README describes the work as 99.5% byte matching. We cannot reconcile those from outside the project. A playable port exists regardless, which is the part that affects players.
Do I need the Xbox debug build to play?
No. Playing needs an ordinary retail Xbox disc image of a copy you own, in .xiso or .iso form, and the project says all versions work. The debug build is only relevant if you want to compile the decompilation from source yourself.
Does the Halo port work on Steam Deck?
There is a Linux build, and SteamOS is Linux, so it should. Two caveats. The desktop builds are 32-bit x86 executables rather than 64-bit, and the project never mentions the Steam Deck or publishes Deck specific guidance. We have not tested it.
Can Android and PC players play together?
Yes. The port's system link multiplayer works across Linux, Windows and Android in the same game, over a local network or the internet, using an invite link and no project run server. The bnunu fork raises the limit to 128 players across 128 machines.
How is this different from using xemu?
xemu emulates the Xbox while you play, so the translation cost is paid on every frame and weak hardware struggles. This port did that work ahead of time, so your device just runs a program. xemu covers the whole Xbox library while this covers one game, and xemu has no Android build at all.
Is the Halo port finished?
No. Every passing build becomes a new release and several can ship in a single day. The releases page keeps only the last five. Treat it as active development that you follow rather than software you install once.
Related Reading
- Recompiled Games List: Every Native Port by System
- Can Android Handhelds Run Recompiled Games?
- What Happens After a Game Is 100% Decompiled
- Decompilation and Recompilation Explained
- Original Xbox Emulation with xemu on a Handheld
- Xbox 360 Recompiled Games List
- Every Decomp Port You Can Play on a Cheap ARM Handheld
- Mario Kart Wiicompiled: The First Wii Recomp
- Every Spider-Man Recomp Project, and the Only One You Can Actually Play
- Best Xbox 360 Games for Handheld Emulation
- The Recomp Scene's AI Problem
- Retroid Pocket 6 Review
- AYN Odin 2 Portal Pro Review
Project details reflect the state of these community efforts as of September 29, 2026 and will change quickly, since this project publishes a release on every passing build. Playing the port requires an Xbox disc image from a copy you legally own.

