A significant addition in this release is the per-app configuration system, which allows users to customize performance settings for individual applications, thereby improving the overall user experience, especially in gaming. The inclusion of a user-friendly GUI, called FEXConfig, makes adjusting these settings accessible even for less technical users.
The Just-In-Time (JIT) compiler has undergone substantial improvements, with bug fixes and performance enhancements, particularly in managing memory and instruction handling. Noteworthy optimizations include better handling of x87 operations, support for SSE4a instructions, and adjustments that have notably reduced the ARM instructions required for certain games, leading to faster execution times.
The introduction of “Extended Volatile Metadata” (EVMD) allows developers to optimize performance further by marking code sections that can bypass certain emulation processes, although this requires careful identification of frequently executed code blocks.
Additionally, the release simplifies the project by removing the redundant FEXLoader binary and renaming the FEXInterpreter to simply "FEX," streamlining updates and user experience.
In summary, FEX-2510 not only enhances the ability to run x86 applications on ARM64 but also places a strong emphasis on user customization and performance, making it a versatile tool for developers and gamers alike. Future updates are anticipated to focus on further memory optimization, potentially benefiting users with less powerful devices.
As the FEX community continues to evolve, users can expect ongoing improvements, new features, and perhaps even further integration with other emulation and gaming tools, broadening the scope of what can be achieved on ARM64 platforms. Stay tuned for additional updates and announcements from the FEX team
FEX 2510 released
The latest version of FEX, known as FEX-2510, features several improvements that make it easier to run x86 apps on ARM64 Linux devices, including better compatibility and performance settings. The release includes an advanced binary recompiler that optimizes code using a custom Intermediate Representation (IR) and a complete translation layer for system calls to address differences between emulated and host operating systems. Significant changes have been made to the JIT compiler, including bug fixes and improvements to its performance, such as reducing unnecessary flushing of registers and caching intermediate results. Additionally, FEX now supports "Extended Volatile Metadata" (EVMD), which allows users to manually mark code blocks that can safely turn off TSO emulation, greatly speeding up performance.