Megjelent a Box64 0.3.0 emulátor verziója, amely Linux alkalmazások futtatására készült, amelyeket x86_64 architektúrára készítettek, ARM64, RISC-V és Loongarch64 processzorokkal rendelkező eszközökön. A projekt nagy hangsúlyt fektet a játékalkalmazások indításának megszervezésére, és lehetővé teszi a Windows-verziók futtatását wine és Proton használatával. A projekt forrásszövege C nyelven készült és MIT licenc alatt terjesztik.
A projekt különlegessége a hibrid végrehajtási modell alkalmazása, amelyben az emuláció kizárólag az alkalmazás gépi kódjára és a specifikus könyvtárakra vonatkozik. A tipikus rendszerkönyvtárakat, beleértve a libc, libm, GTK, SDL, Vulkan és OpenGL-t, a célplatformhoz illeszkedő változatokra cserélik. Így a könyvtári hívások emuláció nélkül végrehajthatóak, ami jelentős teljesítménynövekedést eredményez.
Azoknak a kódoknak az emulálása, amelyekhez natív helyettesítők nem állnak rendelkezésre a célplatform számára, dinamikus újra-kompilálási (DynaRec) technika segítségével történik, amely egy gépi utasítás-gyűjteményből egy másikra konvertál. A gépi utasítások értelmezéséhez képest a dinamikus újra-kompilálás 5-10-szer magasabb teljesítményt mutat.
Az új verzióban:
- Megvalósult az AVX, AVX2, BMI1, BMI2, ADX, FMA, F16C és RDRAND processzor-kiterjesztések támogatása.
- Hozzáadva a BOX64_AVX környezeti változó, amelynek 1-re állítása engedélyezi az AVX, BMI1, F16C és VAES, míg 2-höz avatja az AVX2, BMI2, FMA, ADX, VPCLMULQDQ és RDRAND támogatását.
- Hozzáadva a dinamikus újragenerálás (DynaRec) támogatása AVX, AVX2 és hasonló utasítások NEON-alapú utasításokra való átkonvertálásához, amelyek elérhetőek ARM64 architektúrát használó CPU-kon.
- Kezdeti támogatást kapott a SIMD utasítások RISC-V rendszereken történő RVV utasításokká való újragenerálásához.
- Optimalizálva lett a DynaRec mechanizmusa, új opkódok támogatása került bevezetésre RISC-V és Loongarch64 számára.
- Frissült a CPUID opkódok listája, alapértelmezés szerint a Pentium IV helyett mostantól Haswell sorozatú CPU-t ad vissza a CPUID.
- Hozzáadva a Wayland támogatása, és lehetőség nyílt a Wayland-hoz kapcsolódó könyvtárak dinamikus újragenerálására, lehetővé téve a Wine-wayland kompatibilitást.
- Bővült a támogatott játékok köre, például a Death Stranding játék támogatása is hozzáadva. Biztosítva van a UnityPlayer.dll könyvtár használatának meghatározása a Wine alatt futó programokban, és automatikusan beállítva a BOX64_DYNAREC_STRONGMEM=1 paraméter.
Forrás: opennet.ru
