Uppdateringen av emulatorn Box64 0.3.0 har publicerats, avsedd för att köra Linux-program som Àr sammanstÀllda för arkitekturen x86_64 pÄ hÄrdvara med ARM64-, RISC-V- och Loongarch64-processorer. Projektet lÀgger stor vikt vid att organisera lanseringen av spelapplikationer och erbjuder möjlighet att köra Windows-versioner via Wine och Proton. KÀllkoden för projektet Àr skriven i C och distribueras under MIT-licensen.
En sÀrskild funktion i projektet Àr tillÀmpningen av en hybridexekveringsmodell, dÀr emulering endast tillÀmpas pÄ maskinkoden för sjÀlva applikationen och specifika bibliotek. Standard systembibliotek, inklusive libc, libm, GTK, SDL, Vulkan och OpenGL, byts ut mot versioner som Àr inhemska för de mÄlplattformar. Dessutom utförs bibliotekanrop utan emulering, vilket möjliggör en betydande ökning av prestanda.
Kodemulering för vilken det inte finns inhemska alternativ för mÄlplattformen utförs med hjÀlp av tekniken för dynamisk omkompilering (DynaRec) frÄn en uppsÀttning maskininstruktioner till en annan. JÀmfört med tolkning av maskininstruktioner visar dynamisk omkompilering 5-10 gÄnger högre prestanda.
I den nya versionen:
- Stöd för processorutökningar AVX, AVX2, BMI1, BMI2, ADX, FMA, F16C och RDRAND har implementerats.
- En miljövariabel BOX64_AVX har lagts till, dÀr 1 aktiverar stöd för AVX, BMI1, F16C och VAES, och 2 aktiverar AVX2, BMI2, FMA, ADX, VPCLMULQDQ och RDRAND.
- Stöd för dynamisk omkompilering (DynaRec) av AVX-, AVX2- och liknande instruktioner till NEON-instruktionsrepresentationen som tillhandahÄlls av ARM64-arkitekturens CPU:er har lagts till.
- Initialt stöd för omkompilering av SIMD-instruktioner till RVV-instruktioner pÄ RISC-V-system har lagts till.
- DynaRec-mekanismen har optimerats, och stöd för nya opkoder för RISC-V och Loongarch64 har lagts till.
- Listan över CPUID-opkoder har uppdaterats, och istÀllet för Pentium IV returneras nu standardmÀssigt CPU i Haswell-serien via CPUID.
- Stöd för Wayland har lagts till, vilket möjliggör dynamisk omkompilering av Wayland-relaterade bibliotek och uppnÄr kompatibilitet med Wine-wayland.
- Antalet stödda spel har utökats, till exempel har kompatibilitet med spelet Death Stranding lagts till. Det har sÀkerstÀllts att anvÀndningen av biblioteket UnityPlayer.dll i program som körs i Wine identifieras och att parametern BOX64_DYNAREC_STRONGMEM=1 stÀlls in automatiskt.
KĂ€lla: opennet.ru
