Release of emulator Box64 0.3.0, allowing for the launch of x86 games on ARM64 and RISC-V systems

The release of emulator Box64 0.3.0 has been published, designed to run Linux applications compiled for the x86_64 architecture on hardware with ARM64, RISC-V, and Loongarch64 processors. The project pays significant attention to running gaming applications and provides the capability to run Windows builds through Wine and Proton. The project's source code is written in C and is distributed under the MIT license.

A feature of the project is the use of a hybrid execution model, where emulation is applied only to the machine code of the application and specific libraries. Typical system libraries, including libc, libm, GTK, SDL, Vulkan, and OpenGL, are replaced with versions native to the target platforms. This allows library calls to be executed without emulation, resulting in a significant increase in performance.

Code emulation, where native replacements for the target platform are unavailable, is performed using dynamic recompilation (DynaRec) techniques from one set of machine instructions to another. Compared to interpreting machine instructions, dynamic recompilation demonstrates 5-10 times higher performance.

In the new version:

  • Support for CPU extensions AVX, AVX2, BMI1, BMI2, ADX, FMA, F16C, and RDRAND has been implemented.
  • An environment variable BOX64_AVX has been added, where setting it to 1 enables support for AVX, BMI1, F16C, and VAES, and setting it to 2 enables AVX2, BMI2, FMA, ADX, VPCLMULQDQ, and RDRAND.
  • Support for dynamic recompilation (DynaRec) of AVX, AVX2, and similar instructions to a NEON instruction-based representation provided in ARM64 architecture CPUs has been added.
  • Initial support for recompiling SIMD instructions to RVV instructions on RISC-V systems has been added.
  • The DynaRec mechanism has been optimized, adding support for new opcodes for RISC-V and Loongarch64.
  • The list of CPUID opcodes has been updated, with the CPU series Haswell provided by default instead of Pentium IV through CPUID.
  • Support for Wayland has been added and the capability for dynamic recompilation of Wayland-related libraries has been provided, achieving compatibility with Wine-Wayland.
  • The number of supported games has been expanded, including compatibility with the game Death Stranding. The detection of the UnityPlayer.dll library usage in programs running under Wine has been implemented, and the parameter BOX64_DYNAREC_STRONGMEM=1 is automatically set.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster