Пуск на емулятора Box64 0.3.0, който позволява стартиране на x86 игри на системи ARM64 и RISC-V

Публикуван е емулятор Box64 0.3.0, който е предназначен за стартиране на Linux програми, компилирани за архитектура x86_64, на оборудване с ARM64, RISC-V и Loongarch64 процесори. Проектът акцентира върху организирането на стартирането на игрови приложения и предлага възможност за стартиране на Windows версии чрез wine и Proton. Изходният код на проекта е написан на C и се разпространява под MIT лиценз.

Характеристика на проекта е използването на хибриден модел на изпълнение, при който емуляцията се прилага само към машинния код на самото приложение и специфичните библиотеки. Типичните системни библиотеки, включително libc, libm, GTK, SDL, Vulkan и OpenGL, са заменени с версии, местни за целевите платформи. По този начин библиотечните извиквания се изпълняват без емуляция, което води до значително увеличаване на производителността.

Емуляцията на код, за който липсват местни замени за целевата платформа, се извършва с техника на динамична прекомпилация (DynaRec) от един набор машинни инструкции в друг. В сравнение с интерпретацията на машинни инструкции, динамичната прекомпилация демонстрира от 5 до 10 пъти по-висока производителност.

В новата версия:

  • Подкрепа за разширения на процесора AVX, AVX2, BMI1, BMI2, ADX, FMA, F16C и RDRAND е реализирана.
  • Добавена е променлива на средата BOX64_AVX, задаването на 1 включва подкрепа за AVX, BMI1, F16C и VAES, а на 2 — AVX2, BMI2, FMA, ADX, VPCLMULQDQ и RDRAND.
  • Добавена е подкрепа за динамична прекомпилация (DynaRec) на AVX, AVX2 и подобни инструкции в представления, базирани на инструкциите NEON, предоставяни от архитектура ARM64.
  • Добавена е начална поддръжка за прекомпилация на SIMD инструкции в RVV инструкции на системи RISC-V.
  • Оптимизиран е механизмът DynaRec, добавена е подкрепа за нови опкодове за RISC-V и Loongarch64.
  • Обновен е списъкът на опкодове CPUID, вместо Pentium IV чрез CPUID по подразбиране сега се предоставя CPU от серия Haswell.
  • Добавена е подкрепа за Wayland и е предоставена възможност за динамична прекомпилация на свързаните с Wayland библиотеки, което осигури съвместимост с Wine-wayland.
  • Разширено числото на поддържаните игри, например, добавена е съвместимост с играта Death Stranding. Осигурено е определяне на използването на библиотеката UnityPlayer.dll в програмите, стартирани в Wine, и автоматично задаване на параметъра BOX64_DYNAREC_STRONGMEM=1.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster