Box64 0.4.0 emulator has been released, designed to run Linux programs compiled for the x86_64 architecture on ARM64, RISC-V, and Loongarch64 hardware. The project focuses heavily on running gaming applications and provides the ability to run Windows builds through Wine and Proton. The source code of the project is written in C and is distributed under the MIT license.
A distinctive feature of the project is the use of a hybrid execution model, where emulation is applied only to the machine code of the application itself and specific libraries. Standard system libraries, including libc, libm, GTK, SDL, Vulkan, and OpenGL, are replaced with native alternatives for the target platforms. This way, library calls are executed without emulation, significantly improving performance.
Code emulation for which there are no native replacements for the target platform is performed using dynamic recompilation (DynaRec) techniques, transforming one set of machine instructions into another. Compared to interpreting machine instructions, dynamic recompilation shows a 5-10 times improvement. yüksək performans.
Yeni versiyada:
- A unified prefix opcode decoder has been introduced, utilized in the interpreter and all backends of dynamic recompilation (DynaRec). The new decoder handles rare opcode prefix combinations more universally and eliminates the need for platform-specific 'hacks' and code duplication in the interpreter and DynaRec backends. The reworking of the decoder has led to the removal of excess code, simplifying codebase maintenance and enabling DynaRec to work with atypical opcode prefix combinations.
- Work has begun on a mechanism to remove from memory blocks of code that have been converted to native code but are no longer in use. Such optimization reduces memory consumption when launching applications that perform a large number of operations at startup, such as Steam and applications using libcef.
- Support for the ARM64 architecture has been improved: A build profile for the NVIDIA GB10 CPU has been implemented. In the DynaRec backend, the implementation of optimization techniques for loops continues, such as moving XMM/YMM register operations out of the loop body.
- The stability and performance of the dynamic recompilation backend for the RISC-V architecture have been enhanced. Successful launches of Steam, Proton, and Wine have been ensured, but for working with protected DRM content that requires emulation of Windows system calls, hardware supporting a 48-bit address space (SV48) or modified builds of Wine and Proton are needed.
- Loongarch arxitekturası üçün backend inkişafı xeyli irəliləmişdir, Steam, Wine və Proton-u başlamaq üçün imkanlar yaradılsa da, hələ də ARM64 sistemləri üçün backend-dən funksionallıq baxımından geri qalır. İşləmək üçün hələlik 4K ölçüsündə yaddaş səhifələrinin nüvədə istifadəsi tələb olunur (Loongarch üçün standart olaraq adətən 16K göstərilir). Loongarch 3A6000 (2.5 GHz 4 fiziki nüvə ilə) CPU-da oyunların çalışdırılması üçün kifayət qədər performans artıq mövcuddur.

- Box64-də 32 bitlik icra fayllarını dəstəkləyən Box32 rejiminin stabilliyi artırılmışdır. Bu rejimdə Steam-in bütün arxitekturalarda daha stabil işlədiyi və bəzi OpenGL oyunlarında oyun içi overlay-lərin istifadəsi imkanı qeyd olunur.
Mənbə: opennet.ru

