Avaldati Box64 0.4.0 emulaator, mis on kavandatud Linuxi programmide käitamiseks, mis on koostatud x86_64 arhitektuurile, ARM64, RISC-V ja Loongarch64 protsessoritega seadmetes. Projekt keskendub mängu rakenduste käivitamise korraldusele ja võimaldab Windowsi versioonide käivitamist läbi Wine ja Proton. Projekti lähtekood on kirjutatud C keeles ja levitatakse MIT litsentsi alusel.
Projekti eripära on hübriidmudeleid, kus emuleerimist rakendatakse ainult rakenduse enda masina koodile ja spetsiifilistele teekidele. Tüüpilised süsteemiteegid, sealhulgas libc, libm, GTK, SDL, Vulkan ja OpenGL, asendatakse sihtrakenduste jaoks sobivate variantidega. Seega, teegikutsed toimuvad ilma emuleerimiseta, mis võimaldab saavutada märkimisväärset jõudluse tõusu.
Koodi emuleerimine, mille jaoks ei ole sihtplatvormile kohalikke asendusi, toimub dünaamilise ümberkompileerimise (DynaRec) tehnika abil ühe masinakeele käskude kogumi teisendamise kaudu teiseks. Dünaamiline ümberkompileerimine näitab 5-10 korda kõrgemat jõudlust võrreldes masinakeele käskude tõlgendamisega. kõrgemat jõudlust.
Uues versioonis:
- Esitletud on ühtne operatsioonikoodide eelfunktsioonide dekooder (prefix opcode decoder), mis on kasutusel tõlgendajas ja kõigis dünaamilise ümberkompileerimise (DynaRec) tagapindades. Uus dekooder töötab universaalsemalt haruldaste opsükhode prefiksikombinatsioonide töötlemisel ja võimaldab vältida spetsiifilisi 'häkke' ja koodi dubleerimist tõlgendajas ning DynaRec'i tagapindades. Dekooderi töötlemine on eemaldanud liigse koodi, lihtsustanud koodibaasi hooldust ja võimaldanud DynaRec'il töötada ebatüüpiliste opsüühode prefiksikombinatsioonidega.
- Alustati tööd mehhanismi kallal, mis eemaldab mälust enam mittekasutatavad native koodiks konverteeritud koodiblokid. Selline optimeerimine aitab vähendada mälutarbimist rakenduste käivitamisel, mis teostavad suurt hulka operatsioone, näiteks Steam ja libcef'i kasutavad rakendused.
- Parandatud ARM64 arhitektuuri tugi: rakendatud kogumisprofiil NVIDIA GB10 CPU-le. Dünaamilise ümberkompileerimise (DynaRec) taustal jätkub tsüklite optimeerimistehnika, näiteks XMM/YMM registrite seadistamise operatsioonide väljavälimine tsükli kehast.
- Parandatud dünaamilise ümberkompileerimise tausta stabiilsust ja jõudlust RISC-V arhitektuuri jaoks. Tagatud on Steam'i, Proton'i ja Wine'i korrektne käivitamine, kuid kaitstud DRM-sisuga, mis nõuab Windowsi süsteemi kõnede emuleerimist, töötamiseks on vaja riistvara, mis toetab 48-bitist aadressiruumide tugi (SV48) või modifitseeritud Wine'i ja Proton'i versioone.
- Loongarch arhitektuuri tagakülje arendamine on teinud märkimisväärseid edusamme, jõudes Steam, Wine ja Proton käivitamise võimaluseni, kuid jääb funktsionaalsuses ARM64 süsteemide tagaküljele alla. Praegu on vajalik lehekülgede mälu tuumades, mille suurus on 4K (Loongarchi jaoks seatakse vaikimisi tavaliselt 16K). Jõudlus on piisav, et käivitada mänge Loongarch 3A6000 (2,5 GHz nelja füüsilise tuumaga) protsessoril.

- Box32 režiimi stabiilsust on parendatud, mis tagab 32-bitiste täitmisfailide toe Box64-s. Selles režiimis on märgata Steam'i töö stabiilsuse paranemist kõikidel arhitektuuridel ja võimalust kasutada mängu sise-ülekatteid mõnedes OpenGL-mängudes.
Allikas: opennet.ru

