Выпуск Box64 0.4.0, эмулятора для запуска x86-игр на системах ARM64, RISC-V и Loongarch64

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 876
Зарегистрирован: 20.08.2022

#

Выпуск Box64 0.4.0, эмулятора для запуска x86-игр на системах ARM64, RISC-V и Loongarch64
Дата публикации:Sun, 04 Jan 2026 09:16:57 +0300

Опубликован выпуск эмулятора Box64 0.4.0, предназначенного для запуска Linux-программ, собранных для архитектуры x86_64, на оборудовании с процессорами ARM64, RISC-V и Loongarch64. Проект уделяет большое внимание организации запуска игровых приложений и предоставляет возможность запуска Windows-сборок через Wine и Proton. Исходные тексты проекта написаны на языке Си и распространяются под лицензией MIT.
Особенностью проекта является применение гибридной модели выполнения, при которой эмуляция применяется только к машинному коду самого приложения и специфичных библиотек. Типовые системные библиотеки, включая libc, libm, GTK, SDL, Vulkan и OpenGL, подменяются на варианты, родные для целевых платформ. Таким образом, библиотечные вызовы выполняются без эмуляции, что позволяет добиться значительного увеличения производительности.
Эмуляция кода, для которого отсутствуют родные для целевой платформы замены, выполняется с использованием техники динамической перекомпиляции (DynaRec) из одного набора машинных инструкций в другой. По сравнению с интерпретацией машинных инструкций динамическая перекомпиляция демонстрирует в 5-10 раз более высокую производительность.
В новой версии:
  • Представлен унифицированный декодировщик префиксов кода операций (prefix opcode decoder), задействованный в интерпретаторе и во всех бэкендах динамической перекомпиляции (DynaRec). Новый декодировщик более универсально обрабатывает редкие сочетания префиксов опкодов и позволяет обойтись без специфичных "хаков" и дублирования кода в интерпрететоре и бэкендах DynaRec. Переработка декодировщика привела к удалению лишнего кода, упрощению сопровождения кодовой базы и возможности работы DynaRec с нетипичными комбинациями префиксов опкодов. Началась работа над механизмом для удаления из памяти блоков кода, сконвертированных в нативный код, но уже не используемых. Подобная оптимизация позволяет сократить потребление памяти при запуске приложений, выполняющих большой объём операций при запуске, таких как Steam и приложения, использующие libcef. Улучшена поддержка архитектуры ARM64: Реализован сборочный профиль для CPU NVIDIA GB10. В бэкенде динамической перекомпиляции (DynaRec) продолжена реализация техник оптимизации циклов, таких как вынос операций выставления регистров XMM/YMM из тела цикла. Повышена стабильность и производительность бэкенда динамической перекомпиляции для архитектуры RISC-V. Обеспечен корректный запуск Steam, Proton и Wine, но для работы с защищённым DRM-контентом, требующим эмуляции системных вызовов Windows, требуется оборудование с поддержкой 48-разрядного адресного пространства (SV48) или использование модифицированных сборок Wine и Proton. Значительно продвинулась разработка бэкенда для архитектуры Loongarch, которая доведена до возможности запуска Steam, Wine и Proton, но пока отстаёт по функциональности от бэкенда для систем ARM64. Для работы пока требуется использование в ядре страниц памяти, размером 4K (по умолчанию для Loongarch обычно выставляется 16K). Производительности уже достаточно для запуска игр на CPU Loongarch 3A6000 (2.5 GHz c 4 физическими ядрами).
    Повышена стабильность режима Box32, обеспечивающего поддержку 32-разрядных исполняемых файлов в Box64. В данном режиме отмечается повышение стабильность работы Steam на всех архитектурах и возможность использования внутриигровых оверлеев в некоторых OpenGL-играх.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64552

Жизнь за Нер'зула!

Ответить