Release of FEX emulator 2412, enabling x86 programs to run on ARM64 systems

The release of project FEX 2412 has been announced, which develops an emulator to run games and applications built for x86 and x86-64 architectures in a Linux environment on ARM64 (AArch64) processor systems. Among other things, the FEX emulator is used by the Asahi project to operate games from the Steam catalog, compiled for x86_64 architecture, in Linux environments running on Apple Silicon ARM chips. The project's code is written in C++ with assembler inserts and is distributed under the MIT license.

The libraries required to run x86 applications in an ARM64 environment are integrated as an overlay layer with a root file system (rootfs) image supplied in squashfs format. This overlay allows for the avoidance of creating a separate chroot environment. The loading of already prepared rootfs images from the project is performed by a specially prepared utility called FEXRootFSFetcher.

To enable access to specific features of the host environment, such as audio and 3D graphics tools, special thunk libraries are placed in the rootfs, which translate calls to libraries and code on the host system (e.g., calls to OpenGL and Vulkan may be redirected). Such libraries can also be used on the host side to access code in the guest environment. Available libraries for passthrough include: libEGL, libGL, libSDL2, libX11, libVDSO, libasound, libdrm, libfex_malloc, libvulkan, libwayland-client, and libxshmfence.

Among the changes in the new version are fixes for launching the Steam client, translating the emulation of the x86 PAUSE instruction to use the ARM WFE instruction instead of YIELD, providing the emulation of system calls necessary for gamepad operation, improving the emulation of CPUID and RDTSCP, restructuring FEXCore (the CPU emulation backend), and addressing shortcomings in the emulation of AVX extensions.

Source: opennet.ru

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