Nove verzije emulatora Box86 i Box64, koje omogućuju pokretanje x86 igara na ARM sustavima

Objavljene su verzije emulatora Box86 0.2.6 i Box64 0.1.8, namijenjenih pokretanju Linux programa koji su skladani za arhitekture x86 i x86_64 na opremi s ARM, ARM64, PPC64LE i RISC-V procesorima. Projekti se razvijaju sinkrono od strane istog tima programera — Box86 se ograničava na mogućnost pokretanja 32-bitnih x86 aplikacija, dok Box64 omogućava pokretanje 64-bitnih izvršnih datoteka. Projekt posvećuje posebnu pažnju organizaciji pokretanja igračih aplikacija, uključujući mogućnost pokretanja Windows izdanja putem wine i Proton. Izvorni kodovi projekta napisani su u programskom jeziku C i distribuiraju se (Box86, Box64) pod MIT licencom.

Posebnost projekta je primjena hibridnog modela izvršavanja, pri čemu se emulacija primjenjuje samo na strojni kod same aplikacije i specifičnim bibliotekama. Tipične sistemske biblioteke, uključujući libc, libm, GTK, SDL, Vulkan i OpenGL, zamjenjuju se varijantama nativnim za ciljne platforme. Na taj način, pozivi biblioteka se izvršavaju bez emulacije, što omogućava značajno povećanje performansi.

Emulacija kodova, za koje ne postoje izvorne zamjene za ciljne platforme, provodi se koristeći tehniku dinamičke rekompilacije (DynaRec) iz jednog skupa mašinskih instrukcija u drugi. U usporedbi s interpretacijom mašinskih instrukcija, dinamička rekompilacija pokazuje 5-10 puta bolje performanse.

U testovima performansi, emulatori Box86 i Box64 znatno su nadmašili projekte QEMU i FEX-emu na platformama Armhf i Aarch64, a u pojedinim testovima (glmark2, openarena) omogućili su postizanje performansi identičnih onima pokretanja native izdanja za ciljnu platformu. U testovima 7-zip i dav1d, koji izvode intenzivne izračune, performanse Box64 iznosile su od 27% do 53% performansi native aplikacije (za usporedbu, QEMU je pokazao rezultat od 5-16%, a FEX-emu — 13-26%). Dodatno, napravljena je usporedba s emulatorom Rosetta 2, koji koristi Apple za pokretanje x86 koda na sustavima s ARM M1 čipom. Rosetta 2 omogućila je izvršavanje testa baziranog na 7zip s performansama od 71% u odnosu na native izdanje, dok je Box64 postigao 57%.

Nove verzije emulatora Box86 i Box64, koje omogućuju pokretanje x86 igara na ARM sustavima

Što se tiče kompatibilnosti s aplikacijama, od 165 testiranih igara, oko 70% je uspješno radilo. Još otprilike 10% radi, ali uz određena ograničenja i uvjete. Među podržanim igrama su WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious i većina igara kompanije GameMaker. Od igara koje imaju problema, spominju se igre temeljene na Unity3D engineu, koji je vezan uz Mono paket, čija emulacija još uvijek ne radi uvijek zbog JIT kompajlacije koja se koristila u Monu, a također ima prilično visoke grafičke zahtjeve, koji nisu uvijek postizivi na ARM platformama. Zamjena GTK biblioteka za aplikacije je trenutno ograničena na GTK2 (zamjena GTK3/4 nije potpuno implementirana).

Glavne promjene u novim izdanjima:

  • Dodana je omotnica za Vulkan biblioteku. Dodana je podrška za grafički API Vulkan i DXVK (implementacija DXGI, Direct3D 9, 10 i 11 iznad Vulkana).
  • Poboljšane su omotnice za GTK biblioteke. Dodane su omotnice za GStreamer i biblioteke koje se obično koriste u GTK aplikacijama.
  • Dodana je inicijalna podrška (za sada samo interpretacijski način) za RISC-V i PPC64LE arhitekture.
  • Uvedene su ispravke usmjerene na poboljšanje podrške za SteamPlay i Proton sloj. Omogućeno je pokretanje mnogih Linux i Windows igara iz Steama na AArch64 platformama, poput Raspberry Pi 3 i 4.
  • Poboljšano upravljanje memorijom, rad mmap-a i praćenje povreda zaštite memorije.
  • Poboljšana je podrška za sistemski poziv clone u libc. Dodana je podrška za nove sistemske pozive.
  • U dinamičnom re-kompajliranju poboljšan je rad s registrima SSE/x87, dodana je podrška za nove mašinske kodove, optimizirane su konverzije za float i double brojeve, poboljšano je upravljanje unutarnjim skakanjima, pojednostavljeno je dodavanje podrške novim arhitekturama.
  • Poboljšan je učitavač ELF datoteka.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster