Nouvo vèsyon Box86 ak Box64 emulateur, ki pèmèt ou kouri jwèt x86 sou sistèm ARM.

Yo te pibliye emulasyon Box86 0.2.6 ak Box64 0.1.8, ki fèt pou kouri pwogram Linux konpile pou achitekti x86 ak x86_64 sou ekipman ak ARM, ARM64, PPC64LE ak RISC-V processeurs. Pwojè yo devlope synchrone pa yon ekip devlopè - Box86 limite a kapasite nan kouri aplikasyon 32-bit x86, ak Box64 bay kapasite nan kouri ègzèkutabl 64-bit. Pwojè a peye gwo atansyon a òganize lansman aplikasyon pou Gaming, ki gen ladan bay kapasite nan lanse Windows bati atravè diven ak Proton. Kòd sous pou pwojè a ekri an C epi distribye (Box86, Box64) anba lisans MIT.

Yon karakteristik nan pwojè a se itilize nan yon modèl ekzekisyon ibrid, nan ki emulation aplike sèlman nan kòd la machin nan aplikasyon an tèt li ak bibliyotèk espesifik. Bibliyotèk sistèm tipik, ki gen ladan libc, libm, GTK, SDL, Vulkan ak OpenGL, yo ranplase ak opsyon natif natal nan platfòm sib yo. Nan fason sa a, apèl bibliyotèk yo egzekite san yo pa imitasyon, sa ki lakòz pwogrè pèfòmans enpòtan.

Emulation nan kòd pou ki pa gen okenn ranplasman natif natal nan platfòm sib la fèt lè l sèvi avèk yon teknik nan recompilation dinamik (DynaRec) soti nan yon seri enstriksyon machin nan yon lòt. Konpare ak entèprete enstriksyon machin, rekonpilasyon dinamik demontre pèfòmans 5-10 fwa pi wo.

Nan tès pèfòmans yo, Box86 ak Box64 emulateur yo, lè yo egzekite sou platfòm Armhf ak Aarch64, siyifikativman depase pwojè QEMU ak FEX-emu, ak nan tès endividyèl yo (glmark2, openarena) yo reyalize pèfòmans ki idantik ak kouri yon asanble natif natal nan sib la. platfòm. Nan tès entansif 7-zip ak dav1d yo, pèfòmans Box64 te varye ant 27% ak 53% nan pèfòmans aplikasyon natif natal (pou konparezon, QEMU te montre rezilta 5-16%, ak FEX-emu - 13-26% ). Anplis de sa, yo te fè yon konparezon ak Emulation Rosetta 2, Apple itilize pou kouri kòd x86 sou sistèm ak chip M1 ARM la. Rosetta 2 bay tès la ki baze sou 7zip ak pèfòmans nan 71% nan bati natif natal, ak Box64 - 57%.

Nouvo vèsyon Box86 ak Box64 emulateur, ki pèmèt ou kouri jwèt x86 sou sistèm ARM.

Kòm pou konpatibilite ak aplikasyon yo, sou 165 jwèt teste, apeprè 70% te travay avèk siksè. Apeprè yon lòt 10% travay, men ak sèten rezèvasyon ak restriksyon. Jwèt sipòte yo enkli WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious ak pifò jwèt GameMaker. Pami jwèt yo ak pwoblèm yo te note, yo mansyone jwèt ki baze sou motè a Unity3D, ki se mare nan pake a Mono, imitasyon an ki pa toujou travay akòz konpilasyon JIT yo itilize nan Mono, epi tou li gen jistis. kondisyon grafik segondè ki pa toujou possible sou tablo ARM. Ranplasman nan bibliyotèk aplikasyon GTK se kounye a limite a sa sèlman GTK2 (sibstitisyon nan GTK3/4 pa konplètman aplike).

Chanjman prensipal nan nouvo degaje:

  • Te ajoute obligatwa pou bibliyotèk Vulkan. Te ajoute sipò pou Vulkan ak DXVK grafik API (aplikasyon DXGI, Direct3D 9, 10 ak 11 sou tèt Vulkan).
  • Amelyore Liaisons pou bibliyotèk GTK. Te ajoute atachman pou gstreamer ak bibliyotèk yo souvan itilize nan aplikasyon GTK.
  • Te ajoute sipò inisyal (sèlman mòd entèpretasyon pou kounye a) pou achitekti RISC-V ak PPC64LE.
  • Yo te fè ranje yo pou amelyore sipò pou SteamPlay ak kouch Proton. Bay kapasite pou kouri anpil jwèt Linux ak Windows soti nan vapè sou tablo AArch64 tankou Raspberry Pi 3 ak 4.
  • Amelyore jesyon memwa, pèfòmans mmap, ak swiv vyolasyon pwoteksyon memwa.
  • Amelyore sipò pou apèl sistèm klonaj nan libc. Te ajoute sipò pou nouvo apèl sistèm.
  • Motè recompilation dinamik la amelyore travay ak rejis SSE/x87, te ajoute sipò pou nouvo kòd machin, optimize konvèsyon flote ak nimewo doub, amelyore pwosesis tranzisyon entèn yo, epi senplifye sipò pou nouvo achitekti.
  • Amelyore chajè dosye ELF.

Sous: opennet.ru

Add nouvo kòmantè