Box86 lets you run x86 Linux programs (such as games) on non-x86 Linux systems, like ARM (the host system needs to be 32bit little-endian).

Because box86 uses the native versions of some “system” libraries, like libc, libm, SDL, and OpenGL, it’s easy to integrate and use with most applications, and performance can be surprisingly high in some cases.

Many games already work without much tweaking, for example: WorldOfGoo, Airline Tycoon Deluxe, and FTL. Many of the GameMaker Linux games also run fine. (There’s a long list, among them are Undertale, A Risk of Rain, or Cook Serve Delicious.)

Box64 is the 64bits version of Box86. It is used to run x86_64 binaries on ARM64 (i.e. aarch64) Linux.

There are a some YouTube channel where you can see box86 and box64 in action: MicroLinux, PILabs and The Byteman at least…

To see which games were confirmed to run (or not) on box86 and box64, see also this page (updated live from the list of issues in a dedicated GitHub repo).

Latest posts:

• A deep dive into library wrapping
After talking about the dynarec, we’re going to talk about library wrapping. This article will be very technical from start to finish. Note: until the “Differences” paragraph, everything said is identical for box86 and box64. As such, until then, you can replace every “box86” with “box64” and “x86” with “x86_64”. The first step: loading As…
• A peek at OS-deving part 2: memory management
Note: this article supposes you have already read part 1. While it shouldn’t be required, you should still give it a try. Now that we can boot to C, we need to start working on the C library. Let’s start with memory management. What’s needed here? So, what is memory management? Well, it can be…
• A peek at OS-deving part 1: booting
Have you ever wondered, “How does the computer boot? How does the OS know what to do when”? Well, I did too, and so took it upon myself to… develop an OS. Intro Well, when I say “develop an OS”, I mean that I started writing something that could boot into an emulator. I didn’t…
• Inner workings
A high‑level view of box86/box64 and a low‑level view of the dynarec This article explains the technical details about how box86 and box64 works (at the high level for the start and a low level for the dynarec). At the start, box86 (and box64) will extract useful informations about the executable being run: where is…
• Game performances
Measuring performances of an emulator is always a bit tricky. For box86 (and box64), I decided to use benchs of opensource softwares, and compare the results between native and i386 version. A few months ago, I did some benchs and wrote the results for the Fosdem. The article can still be found here. The result…