Nové verzie emulátorov Box86 a Box64, ktoré vám umožňujú spúšťať hry x86 na systémoch ARM

Boli zverejnené vydania emulátorov Box86 0.2.6 a Box64 0.1.8, ktoré sú určené na spustenie linuxových programov zostavených pre architektúry x86 a x86_64 na zariadeniach s procesormi ARM, ARM64, PPC64LE a RISC-V. Projekty sú vyvíjané synchrónne jedným tímom vývojárov – Box86 je obmedzený na schopnosť spúšťať 32-bitové x86 aplikácie a Box64 poskytuje možnosť spúšťať 64-bitové spustiteľné súbory. Projekt venuje veľkú pozornosť organizácii spúšťania herných aplikácií, vrátane poskytovania možnosti spúšťať zostavy Windows cez víno a Proton. Zdrojový kód projektu je napísaný v jazyku C a distribuovaný (Box86, Box64) pod licenciou MIT.

Charakteristickým rysom projektu je použitie hybridného exekučného modelu, v ktorom je emulácia aplikovaná len na strojový kód samotnej aplikácie a špecifických knižníc. Typické systémové knižnice, vrátane libc, libm, GTK, SDL, Vulkan a OpenGL, sú nahradené možnosťami natívnymi pre cieľové platformy. Týmto spôsobom sa volania knižnice vykonávajú bez emulácie, čo vedie k výraznému zvýšeniu výkonu.

Emulácia kódu, pre ktorý neexistujú žiadne náhrady natívne pre cieľovú platformu, sa vykonáva pomocou techniky dynamickej rekompilácie (DynaRec) z jednej sady strojových inštrukcií do druhej. V porovnaní s interpretáciou strojových inštrukcií vykazuje dynamická rekompilácia 5-10 krát vyšší výkon.

Vo výkonových testoch emulátory Box86 a Box64 pri spustení na platformách Armhf a Aarch64 výrazne prekonali projekty QEMU a FEX-emu a v individuálnych testoch (glmark2, openarena) dosiahli výkon identický so spustením zostavy natívnej pre cieľový plošina. Vo výpočtovo náročných testoch 7-zip a dav1d sa výkon Box64 pohyboval od 27 % do 53 % výkonu natívnej aplikácie (pre porovnanie, QEMU vykázala výsledky 5 – 16 % a FEX-emu – 13 – 26 % ). Okrem toho sa vykonalo porovnanie s emulátorom Rosetta 2, ktorý Apple používa na spustenie kódu x86 na systémoch s čipom M1 ARM. Rosetta 2 poskytla test založený na 7zip s výkonom 71% natívnej zostavy a Box64 - 57%.

Nové verzie emulátorov Box86 a Box64, ktoré vám umožňujú spúšťať hry x86 na systémoch ARM

Čo sa týka kompatibility s aplikáciami, zo 165 testovaných hier úspešne fungovalo približne 70 %. Ďalších asi 10 % funguje, ale s určitými výhradami a obmedzeniami. Medzi podporované hry patria WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious a väčšina hier GameMaker. Medzi hrami, s ktorými boli zaznamenané problémy, sa spomínajú hry založené na engine Unity3D, ktorý je viazaný na balík Mono, ktorého emulácia nie vždy funguje kvôli kompilácii JIT používanej v Mono, a tiež má pomerne vysoké grafické nároky, ktoré nie sú vždy dosiahnuteľné na doskách ARM. Nahradenie knižníc aplikácií GTK je v súčasnosti obmedzené na GTK2 (nahradenie GTK3/4 nie je plne implementované).

Hlavné zmeny v nových vydaniach:

  • Pridaná väzba pre knižnicu Vulkan. Pridaná podpora pre grafické API Vulkan a DXVK (implementácia DXGI, Direct3D 9, 10 a 11 nad rámec Vulkan).
  • Vylepšené väzby pre knižnice GTK. Pridané väzby pre gstreamer a knižnice bežne používané v aplikáciách GTK.
  • Pridaná počiatočná podpora (zatiaľ iba režim interpretácie) pre architektúry RISC-V a PPC64LE.
  • Boli vykonané opravy na zlepšenie podpory pre SteamPlay a vrstvu Proton. Poskytuje možnosť spúšťať mnoho hier pre Linux a Windows zo služby Steam na doskách AArch64, ako sú Raspberry Pi 3 a 4.
  • Vylepšená správa pamäte, výkon mmap a sledovanie narušenia ochrany pamäte.
  • Vylepšená podpora pre systémové volanie klonu v knižnici libc. Pridaná podpora pre nové systémové volania.
  • Dynamický rekompilačný engine zlepšil prácu s registrami SSE/x87, pridal podporu pre nové strojové kódy, optimalizoval prevody float a double čísel, zlepšil spracovanie vnútorných prechodov a zjednodušil pridanie podpory pre nové architektúry.
  • Vylepšený načítač súborov ELF.

Zdroj: opennet.ru

Pridať komentár