box64

ptitSebMIT活跃维护

在 ARM64、RV64、LoongArch 等非 x86 Linux 设备上运行 x86_64 程序,通过动态重编译把 x86_64 指令翻译成本机指令,省去全量模拟的开销。

Box64 - Linux Userspace x86_64 Emulator with a twist, targeted at ARM64, RV64 and LoongArch Linux devices

v0.4.4发布于 2026-08-02 09:38 UTC5,706star +2 / 7 天486fork同步于 2026-11-10 05:35 UTC

怎么上手

README 里没有找到可直接复制的安装命令

README 里没有找到可直接复制的安装命令,请到 README 或官方文档查看安装方式。

硬件要求

README 没有说明硬件要求。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

这个项目的说明还在生成中,先参考下面「最近发版」和 README。

最近发版

5 个版本v0.4.4
  1. v0.4.4最新正式版2026-08-02 · 2026-08-02 09:38 UTC

    What's Changed

    • A new box64-configurator is now present (a python app) to help managing custom RCFILE profiles. It is available in both english and chinese.
    • DynaCache is now enabled by default. It will compress the files and use up to 2GB of disk space.
    • You can use box64-configurator on the special [*] profile to change default values
    • More improvements on emulation accuracy that help running more DRM'd games
    • Many Speed improvements in the LoongArch backend
    • Many new opcodes in the RISC-V backend

    More details in New release blog

    Contributions

  2. v0.4.22026-04-20 · 2026-04-20 16:44 UTC
    查看更新说明

    What's Changed

    • This version add lots on unconnected new things, like a PPC64LE backend, Vulkan overlay support or more Dynarec finetuning! => Vulkan x64 overlay support. That means using the linux version of Steam, Fossilize & GameOverlayUI will work. => Many dynarec refactors, especially on ARM64 & LA64 with fixes to speed regression introduced with the the last 2 releases and improved compatibility. => Support for SteamRT3 & new Proton 11 => New PCC64LE in the work. Not finished, but usable already. Note that the platform seems to use a 64k pagesize by default, so compatibility will suffer on this platform.

    More details in New release blog

    Contributions

  3. v0.4.02026-01-03 · 2026-01-03 15:56 UTC
    查看更新说明

    What's Changed

    This version added many important refactors: the opcode prefix decoder for Dynarec, libGL and Vulkan, the FSGSBASE support, making segments handling easier and faster. => Improved compatibility across all architecture, allowing more DRM protected game to run => the prefix refactor helped removed lots of redundant source file, simplifying maintenance => BOX32 is getting more and more stable, even if still not 100% ok. But Steam is more stable than before, runs on all architecture. And some gameoverlay UI works, on OpenGL games.

    More details in New release blog

    Contributions

  4. v0.3.82025-10-13 · 2025-10-13 12:12 UTC
    查看更新说明

    What's Changed

    • This version introduce DynaCache, a disk cache for the generated native code. It's not enabled by default for now (but it will use cache file if present by default). It can dramaticaly speedup the load of program (try with linux factorio for example). This version also improve in the volatile metadata handling. There is a massive compatiblity improvment for box32 and on all dynarec in general too. And few more function wrapping...

      => DynaCache for faster loading of program, and avoid runtime hicups => Better box32 compatibility (much less "Out of Memory" error) => Unity3D games on Wyland are working now => Volatile Metadata fully supported and handled, making games like Starfield to just work. => More work on AVX support for RV64 & LA64. LA64 almost there, while RV64 has Scalar only support (no hardware vector support yet for AVX)

    More details in New release blog

    Contributions

  5. v0.3.62025-06-06 · 2025-06-06 13:37 UTC
    查看更新说明

    What's Changed

    • This version introduces wowbox64.dll for Hangover; the ability to use the Volatile Metadata of Windows executables for x64 wine; and some better x87/SSE/AVX handling => WowBox64 can be built directly from Box64 repo, and can be found in the CI artifacts also => it also supports a subset of BOX64_XXXX settings, which can be set from command line or via a setting file ".box64rc" in the Wine prefix home => Volatile Metadata, when present, allows only applying strong memory ordering when needed, as marked by the compiler, giving overall better performances => The precision control bit of x87 is now handled, allowing some older games to run correctly => More work has been done in the handling of precise NaN and Round handling in SSE & AVX opcodes
    • Added/fixed some Syscalls, helping Go programs
    • Wrapper: more functions added, and some fixes too. Vulkan is 1.4 now, among other things
    • Wrapper: Added a few more wrapped libs (like some avcodec and friends)
    • Improve internal memory allocator (with a dedicated allocator for small memory allocations), and fixed some issues around it
    • Improve internal mmaped file tracking
    • Box32: Some small refactoring around memory management and internal memory allocations
    • Box32: More functions wrapped
    • Box32: More libraries wrapped
    • ARM64: Added support for Atomic extension in many internal functions (not related to Dynarec).
    • ARM64: Added support for CRC2 extension for internal CRC functions
    • Interp: A few fixes to some opcodes, and better NAN handling on some selected SSE/AVX opcodes
    • Interp: Added a few opcodes with exotic prefixes
    • Dynarec: Introcude BOX64_DYNAREC_ROUND=2 to handle x87 precision control bit (ARM64 and RV64, LA64 still doesn't handle x87 yet)
    • Dynarec: Some small optimizations on Strongmem emulation, making it more efficient
    • Dynarec: Some speed optimizations on code that do SMC and waiting slot
    • Dynarec: Added CALLRET=2 to improve call/ret optimization compatibility with SMC code
    • Dynarec: ARM64: Various optimizations and fixes on some opcodes, especially AVX ones
    • Dynarec: ARM64: Added missing FASTNAN=0 handling on some SSE/AVX opcodes
    • Dynarec: ARM64: Added some exotic prefixed opcodes
    • Dynarec: ARM64: Avoid purging XMM/YMM register on intra-block loop if possible
    • Dynarec: RV64: Many fixes and improvments around x87 emulation
    • Dynarec: RV64: Added some more missing opcodes, especially some LOCK prefixed ones and many MMX ones
    • Dynarec: RV64: Various fixes on some existing opcodes
    • Dynarec: RV64: Improved nativeflags handling, allowing for more cases to use it
    • Dynarec: LA64: Added some more opcodes and MMX handling
    • Dynarec: LA64: Various fixes to some existing opcodes
    • Android: Improved signal handling, structure alignment, and transformation
    • WowBox64: Created the dll, with RcFile, Env. Var. handling and log printout (both ARM64 Dynarec and Interpreter available)
    • Cosim: Various fixes and improvements to limit false negatives and improve readability of logs
    • RcFile: A few fixes for some values that would be ignored

    More details in New release blog

    Contributors

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Official logo

    Box64: Linux Userspace x86-64 Emulator with a Twist

    Website | Changelog | 中文 | Українська | Report an Error

    Build Status Stars Forks Contributors Pull Requests Issues


    Check out our game compatibility list at https://box86.org/app/, please help us improve it!


    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).

    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 Arm, RISC-V and LoongArch platforms, Box64 achieves a speed boost 5-10x faster than the interpreter alone. For a deeper look at DynaRec, see Inner workings. For a more detailed look at Box64 internals and optimization strategies, see our EuroSys 2026 paper, Practical and Efficient x86-64 Emulation on RISC-V, which focuses on RISC-V but covers many techniques that apply more broadly to Box64.

    Logo and icon by @grayduck - Thank you!


    Usage

    • $ box64 ./program [args] to run Linux x86_64 programs.
    • $ box64 -k to kill all the emulated processes.
    • $ box64-bash to have an x86_64 bash environment.
    • Want to use wine? see Wine Documentation.

    Box64 also offers environment variables and rcfile to control its behavior. For details, see Usage Documentation.


    Compiling and Installation


    Version History

    See the Changelog for version updates.


    Platform Compatibility Notes

    Box64 requires 64-bit libraries on the host system, as it directly translates x86_64 function calls. For 32-bit binaries, use Box86 or Box32.

    Notes

    1. Box32 is still experimental, but it's pretty stable now and can be used.
    2. Some shell scripts (such as the GOG game installer) may rely on uname -m to determine the current architecture. Please run them as box64 script.sh to allow Box64 to take over.

    Note that DynaCache is now enabled by default (with compression). This will creates files in ~/.cache/box64 to save generated code for executed binaries and libraries, so launch time can be greatly reduced on second run. The files are compressed and will take up to 2Gb by default. You can disable DynaCache writing, by switching it to a Read-only mode by creating (or modifying) ~/.box64rc and writing there

    [*]
    BOX64_DYNACACHE=2
    

    (or 0 to completely disabled it). Please refer to Usage Documentation for more details on how to configure Box64.


    Configuration

    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.

    For more information, check Usage Documentation.


    Additional Platform-Specific Notes

    Unity Game Emulation

    • Many Unity games require OpenGL 3+, which may be challenging on ARM/RISC-V SBCs.
    • Tip for Pi4 and Pi5 Users: Set MESA_GL_VERSION_OVERRIDE=3.2 with BOX64_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.

    Steam

    See Steam Documentation.

    Wine

    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.

    Note: You can use Wine WOW64 build to run x86 Windows programs in Box64-only environments, this is still experimental, but it works in most cases.

    For more information, check Wine Documentation.


    Final word

    I want to thank everyone who has contributed to box64 development. There are many ways to contribute: code contribution, financial, hardware and advertisement! So, in no particular order, I want to thank:

    And I also thank the many other people who participated even once in this project.

    (If you use Box64 in your project, please don't forget to mention it!)