Box86 ja Box64 emulaatorite uued versioonid, mis võimaldavad teil käitada x86 mänge ARM-süsteemides

Box86 0.2.6 ja Box64 0.1.8 emulaatorite väljalasked on avaldatud Linuxi programmide käitamiseks, mis on loodud x86 ja x86_64 arhitektuuridele ARM, ARM64, PPC64LE ja RISC-V protsessoritel. Projektid arenevad sünkroonis ühe arendusmeeskonnaga – Box86 on piiratud 32-bitiste x86 rakenduste käitamisega, Box64 aga 64-bitiste käivitatavate failidega. Projekt pöörab suurt tähelepanu mängurakenduste käivitamise korraldamisele, sealhulgas võimalusele käivitada Windowsi buildid veini ja Protoni kaudu. Projekti lähtetekstid on kirjutatud C-keeles ja levitatud (Box86, Box64) MIT litsentsi all.

Projekti eripäraks on hübriidkäivitusmudeli kasutamine, mille puhul emuleerimist rakendatakse ainult rakenduse enda ja konkreetsete teekide masinkoodile. Üldised süsteemiteegid, sealhulgas libc, libm, GTK, SDL, Vulkan ja OpenGL, asendatakse sihtplatvormidele omaste variantidega. Seega teostatakse teegikutsed ilma emuleerimiseta, mis võimaldab jõudlust oluliselt suurendada.

Koodi emuleerimine, millel pole sihtplatvormi natiivseid asendusi, tehakse dünaamilise ümberkompileerimise (DynaRec) tehnikaga ühest masinakäskude komplektist teise. Võrreldes masinajuhiste tõlgendamisega näitab dünaamiline ümberkompileerimine 5-10 korda suuremat jõudlust.

Toimivustestides ületasid Box86 ja Box64 emulaatorid Armhf ja Aarch64 platvormidel töötades oluliselt QEMU ja FEX-emu projekte ning mõnes testis (glmark2, openarena) saavutasid need jõudluse, mis oli identne sihtplatvormi koostu käitamisega. . Arvutusmahukates 7-zip ja dav1d etalonides oli Box64 jõudlus 27–53% omarakenduse omast (võrreldes QEMU-ga 5–16% ja FEX-emu-ga 13–26%). Lisaks tehti võrdlus Rosetta 2 emulaatoriga, mida Apple kasutas x86 koodi käitamiseks ARM M1 kiibiga süsteemides. Rosetta 2 käivitas 7zip-põhise testi 71% ja Box64 57%.

Box86 ja Box64 emulaatorite uued versioonid, mis võimaldavad teil käitada x86 mänge ARM-süsteemides

Rakenduste ühilduvuse osas teenis 165 testitud mängust umbes 70% edukalt. Umbes 10% rohkem tööd, kuid teatud reservatsioonide ja piirangutega. Toetatud mängude hulka kuuluvad WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious ja enamik GameMakeri mänge. Mängudest, millega probleeme märgitakse, mainitakse Mono paketiga seotud Unity3D mootoril põhinevaid mänge, mille emuleerimine Monos kasutatava JIT-i kompilatsiooni tõttu veel alati ei toimi ning millel on ka üsna kõrge graafika nõuded, mida ARM-plaatidel alati ei saavutata. GTK rakendusteekide asendamine on praegu piiratud GTK2-ga (GTK3/4 asendamine ei ole täielikult rakendatud).

Peamised muudatused uutes väljaannetes:

  • Lisatud köide Vulkani raamatukogu jaoks. Lisatud on Vulkani ja DXVK graafika API tugi (DXGI, Direct3D 9, 10 ja 11 juurutamine Vulkani peal).
  • GTK teekide täiustatud köited. Lisatud sidumised gstreameri ja GTK rakendustes tavaliselt kasutatavate teekide jaoks.
  • Lisatud esialgne tugi (seni ainult tõlgendusrežiim) RISC-V ja PPC64LE arhitektuuridele.
  • SteamPlay toe ja Protoni kihi täiustamiseks on tehtud veaparandusi. Steamist on võimalik käivitada paljusid Linuxi ja Windowsi mänge AArch64 plaatidel, näiteks Raspberry Pi 3 ja 4.
  • Täiustatud mäluhaldus, mmapi käitumine ja mälukaitse rikkumiste jälgimine.
  • Täiustatud tugi libc-s kloonimise süsteemikutsele. Lisatud tugi uutele süsteemikõnedele.
  • Dünaamilises ümberkompileerimismootoris on täiustatud tööd SSE/x87 registritega, lisatud on uute masinkoodide tugi, optimeeritud ujukarvude ja topeltarvude teisendusi, täiustatud sisemiste hüpete töötlemist ning uute arhitektuuride tugi. lihtsustatud.
  • Täiustatud ELF-failide üleslaadija.

Allikas: opennet.ru

Lisa kommentaar