Box64 in Action: Playing x86-64 Steam Games on ARM64 / RISC-V with Dynamic Binary Translation
- Time
- 2026-08-08 15:30 ~ 16:00
- Speaker
- Chi-Kuan Chiu
- Room
- TR213
- Co-write
Abstract
Running unmodified x86-64 binaries on ARM64 and RISC-V Linux systems remains important, but general-purpose emulators such as QEMU often impose too much overhead for demanding workloads, while hardware-assisted translators such as Rosetta 2 depend on platform- specific silicon. Box64 addresses this gap with a wrapping-first architec- ture that routes calls into native host libraries through ABI translation wrappers and reserves JIT compilation for guest code. This paper describes three parts of the design: a native wrapping layer spanning 278 libraries, including entry-point interception and callback bridging; a four-pass JIT compiler with flag liveness analysis, deferred flag computation, and native flag reuse; and system-level support for deployment, including Steam container bypass, Wine mixed-bitness co- ordination, and TSO emulation on weakly ordered hosts. Evaluation on Raspberry Pi 5 (ARM64), HiFive™ Premier P550 and Andes AX45MP (RISC-V) shows a median of 67% native CPU performance on ARM64 microbenchmarks, 63–94% native throughput for favorable wrapped library calls, and a median 4× speedup over QEMU, reaching 40×when wrapping removes translation from the hot path.
Speaker
Chi-Kuan Chiu
NCKU CSIE 115