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. It can also run on RiSC-V and Loongarch machine.

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:

  • Revisiting the dynarec
    Since the last post about it, the dynarec (dynamic recompiler, a Just-In-Time recompilation of x86 code) changed a lot. It still works in four major steps, but now there are a lot more intermediary steps. So let’s see how it works now! Note: this article will focus on the ARM version of the dynarec on…
  • Optimizing AVX2
    Note: this article is pretty technical. Basic understanding of what registers are is a strict minimum required to understand what follows. What is AVX? AVX (and its extension AVX2) are complex x86_64 instruction sets which extends the SSE4 instruction set. It mandates the existence of extensions of the 16 SSE 128-bits-wide XMM registers (called XMM0…
  • New Box64 v0.3.0 Released
    A new version of box64 just released. Note that box86 has not evolved enough and did not get a new release. Next time maybe? So what’s new on Box64? Well, AVX! But not only that, also AVX2, and BMI1, BMI2, ADX, FMA, F16C and RDRAND cpu extensions. While the later one are less well known,…
  • New version of Box64 v0.2.8 and Box86 v0.3.6
    Finaly a new release of box64 and box86! And while box86 simply got some improvments backported from box64, box64 got a lot of new things. Starting with a new Dynarec target: Loongarch! Both 3A5000 and 3A6000 architecture are supported. This platform use a non x86 4K Pagesize, meaning that some software, like Wine, will not…
  • How to create a wrapping
    In a previous post, we talked about the mechanism behind library wrapping. In it, I said box86/box64 used some manually written files to correctly call functions. However, there is a big question: how are these files written? To follow this article, you will need at least a basic understanding of function signatures. The basics First,…