Changelog | 中文 | Українська | Report an Error
Box64 enables running x86_64 Linux programs, including games, on non-x86_64 Linux systems such as ARM (64-bit little-endian host system required).
Check out Box64 in action on YouTube:
Box64 leverages native system libraries (libc, libm, SDL, OpenGL), offering ease of integration and surprising performance in many applications. For performance benchmarks, check this analysis.
With DynaRec for ARM64 and RV64 platforms, Box64 achieves a speed boost 5-10x faster than the interpreter alone. For a deeper look at DynaRec, see this article.
Logo and icon by @grayduck - Thank you!
Box64 offers environment variables to control its behavior. For details, see Usage Documentation.
Debugging Note: Box64's Dynarec uses Memory Protection and a SegFault signal handler for JIT code handling. If debugging with GDB, set handle SIGSEGV nostop
to avoid constant interruptions. Set a breakpoint inside my_memprotectionhandler
in signals.c
if you want to track SegFaults.
See the Changelog for version updates.
Box64 requires 64-bit libraries on the host system, as it directly translates x86_64 function calls. For 32-bit binaries, use Box86.
Note: Some installers may default to x86 on ARM64 OS, causing compatibility issues. Workaround: Use a fake uname
that returns "x86_64" for -m
.
Box64 has configuration files located in /etc/box64.box64rc
and ~/.box64rc
, both formatted as .ini
files. If you don’t want to use the default /etc/box64.box64rc
file, copy it to ~/.box64rc
to ensure compatibility.
Settings priority: ~/.box64rc
> /etc/box64.box64rc
> Command line.
- Many Unity games require OpenGL 3+, which may be challenging on ARM SBCs.
- Tip for Pi4 and Pi5 Users: Set
MESA_GL_VERSION_OVERRIDE=3.2
withBOX64_DYNAREC_STRONGMEM=1
to prevent freezes and enable strong memory mode. - Using Panfrost: For better compatibility on ARM, enable
PAN_MESA_DEBUG=gl3
to force higher OpenGL profiles. This can help if a game starts but quits unexpectedly before showing any content.
Let me know if you’d like further adjustments!
- Box64 now wraps GTK libraries, supporting both gtk2 and gtk3.
- Steam requires Box86 due to its 32-bit client app, but uses 64-bit local server binaries. Systems with less than 6GB RAM may need a swap file for optimal performance.
- Box64 supports Wine64 and Proton. For 32-bit components, Box86 is required. Systems with both Box64 and Box86 can run 32- and 64-bit Windows programs.
- Box64 wraps Vulkan libraries. Limited testing done with AMD RX550 and Freedreno drivers.
A huge thank you to everyone who has contributed to Box64 development! Special thanks to:
- Code Contributors: rajdakin, mogery, ksco, xctan
- Financial Supporters: Playtron, tohodakilla, FlyingFathead, stormchaser3000, dennis1248, sll00, libre-computer-project, CubeCoders Limited
- Hardware Contributions: ADLINK, SOPHGO, Radxa, StarFive, Pine64, AYN, AYANEO
If you use Box64 in your project, please don’t forget to mention it!