Команда разработчиков проекта Box64 представила новую версию своего эмулятора под номером 0.4.0. Программное обеспечение предназначено для запуска Linux приложений, скомпилированных для архитектуры x86_64, на оборудовании с процессорами ARM64, RISC-V и Loongarch64. Авторы проекта уделяют особое внимание возможности запуска компьютерных игр, предоставляя инструменты для работы с Windows-сборками через слои совместимости Wine и Proton.
Ключевой особенностью программы является использование гибридной модели выполнения. Эмуляция применяется исключительно к машинному коду самого приложения и его специфичных библиотек, в то время как стандартные системные библиотеки, такие как libc, libm, GTK, SDL, Vulkan и OpenGL, подменяются на нативные варианты для целевой платформы. Такой подход позволяет выполнять библиотечные вызовы без эмуляции, что обеспечивает значительный прирост производительности. Для обработки остального кода используется техника динамической перекомпиляции DynaRec, которая переводит один набор машинных инструкций в другой.
В представленном обновлении был внедрен унифицированный декодировщик префиксов кода операций. Он задействован как в интерпретаторе, так и во всех бэкендах динамической перекомпиляции. Новый механизм позволяет более универсально обрабатывать редкие сочетания префиксов и отказаться от специфичных хаков в коде, что упрощает сопровождение проекта. Кроме того, началась работа над оптимизацией памяти: система научилась удалять блоки кода, которые были скомпилированы в нативный вид, но перестали использоваться. Это нововведение снижает потребление ресурсов при запуске масштабных приложений вроде клиента Steam.
Улучшения коснулись и поддержки аппаратных платформ. Для архитектуры ARM664 был реализован
