explaingit

ptitseb/box86

Analysis updated 2026-05-18

3,771CAudience · developerComplexity · 4/5Setup · hard

TLDR

Box86 lets you run x86 Linux programs, including games, on ARM devices like the Raspberry Pi by translating x86 instructions to ARM at runtime.

Mindmap

mindmap
  root((repo))
    What it does
      x86 to ARM translation
      DynaRec recompiler
      Game compatibility
    Tech stack
      C language
      ARM Linux
      OpenGL SDL
    Use cases
      Run PC games on Pi
      ARM compatibility layer
      Retro game setups
    Audience
      Hobbyist makers
      Raspberry Pi users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Run x86 Linux games like FTL or UNDERTALE on a Raspberry Pi

USE CASE 2

Use x86-compiled software on an ARM single-board computer without recompiling it

USE CASE 3

Set up a retro gaming station on ARM hardware using x86 game binaries

What is it built with?

CARMLinuxOpenGLSDL

How does it compare?

ptitseb/box86rmtheis/tess-twocitusdata/pg_cron
Stars3,7713,7673,781
LanguageCCC
Setup difficultyhardmoderatemoderate
Complexity4/53/53/5
Audiencedeveloperdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires a 32-bit ARM toolchain and a 32-bit userspace, 64-bit-only systems will not compile or run it without extra setup.

In plain English

Box86 is a compatibility tool that lets you run x86 Linux programs on ARM-based Linux devices. ARM is the processor type found in boards like the Raspberry Pi, many single-board computers, and some Android devices. Most desktop Linux software is compiled for x86 processors, so without Box86 those programs simply will not run on ARM hardware. The tool works by translating x86 instructions into ARM instructions at runtime. It includes a dynamic recompiler, called DynaRec, that converts code on the fly and provides a five-to-ten times speed improvement over pure line-by-line interpretation. This makes real applications, including games, run at usable speeds on devices like the Raspberry Pi. Box86 takes a practical shortcut compared to full system emulators: instead of emulating all the system libraries too, it reuses the native versions already installed on your ARM device, such as libc, SDL, and OpenGL. This keeps compatibility high and reduces overhead. However, it means you need a 32-bit ARM environment, since Box86 only targets 32-bit x86 programs. On a 64-bit ARM system you need a 32-bit userspace layer installed separately. Many games work without any tweaking: WorldOfGoo, FTL, UNDERTALE, and various Unity3D and GameMaker titles are listed as working examples. Games that need 3D graphics may also require a separate library called gl4es if your ARM board only exposes OpenGL ES rather than full OpenGL. Building Box86 requires a 32-bit ARM toolchain, which means a standard 64-bit-only compiler will not work. The README covers build steps for Raspberry Pi and several other popular boards. There is also a companion project called Box64 for running 64-bit x86 programs on 64-bit ARM systems.

Copy-paste prompts

Prompt 1
How do I install Box86 on a Raspberry Pi 4 and run an x86 Linux game on it?
Prompt 2
What do I need to set up to run Unity3D x86 Linux games on an ARM device using Box86?
Prompt 3
Box86 build steps for a 64-bit ARM device running Debian with a 32-bit armhf userspace
Prompt 4
How does Box86 DynaRec work and why do I need a 32-bit toolchain to compile it?

Frequently asked questions

What is box86?

Box86 lets you run x86 Linux programs, including games, on ARM devices like the Raspberry Pi by translating x86 instructions to ARM at runtime.

What language is box86 written in?

Mainly C. The stack also includes C, ARM, Linux.

How hard is box86 to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is box86 for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.