Box86 болон Box64 эмуляторуудын шинэ хувилбарууд нь ARM систем дээр x86 тоглоом ажиллуулах боломжийг танд олгоно.

ARM, ARM86, PPC0.2.6LE болон RISC-V процессортой тоног төхөөрөмж дээр x64 ба x0.1.8_86 архитектурт зориулан эмхэтгэсэн Линукс програмуудыг ажиллуулахад зориулагдсан Box86 64 болон Box64 64 эмуляторуудын хувилбарууд хэвлэгдсэн. Төслүүдийг нэг хөгжүүлэгчдийн баг синхроноор боловсруулдаг - Box86 нь 32 битийн x86 програмуудыг ажиллуулах боломжоор хязгаарлагддаг бөгөөд Box64 нь 64 битийн гүйцэтгэх файлуудыг ажиллуулах боломжийг олгодог. Төсөл нь тоглоомын програмуудыг эхлүүлэх ажлыг зохион байгуулахад ихээхэн анхаарал хандуулдаг бөгөөд үүнд Wine болон Proton-оор дамжуулан Windows-ийн бүтээцийг эхлүүлэх боломжийг олгодог. Төслийн эх код нь C хэл дээр бичигдсэн бөгөөд MIT лицензийн дагуу тараагдсан (Box86, Box64).

Төслийн нэг онцлог нь эмуляцийг зөвхөн програмын өөрийнх нь машин код болон тодорхой номын санд ашигладаг эрлийз гүйцэтгэлийн загварыг ашиглах явдал юм. libc, libm, GTK, SDL, Vulkan болон OpenGL зэрэг ердийн системийн сангуудыг зорилтот платформд тохирох сонголтоор сольсон. Ингэснээр номын сангийн дуудлагыг эмуляцигүйгээр гүйцэтгэдэг бөгөөд энэ нь гүйцэтгэлийн мэдэгдэхүйц өсөлтийг бий болгодог.

Зорилтот платформд орлуулах зүйл байхгүй кодын эмуляцийг нэг багц машины заавраас нөгөө рүү динамик дахин эмхэтгэх (DynaRec) техник ашиглан гүйцэтгэдэг. Машины зааврыг тайлбарлахтай харьцуулахад динамик дахин эмхэтгэл нь 5-10 дахин өндөр гүйцэтгэлийг харуулж байна.

Гүйцэтгэлийн туршилтын хувьд Box86 болон Box64 эмуляторууд нь Armhf болон Aarch64 платформ дээр ажиллахдаа QEMU болон FEX-emu төслүүдээс илт давуу байсан бөгөөд бие даасан туршилтуудад (glmark2, openarena) зорилтот үндсэн дээр угсралт ажиллуулахтай ижил гүйцэтгэлтэй байсан. платформ. Тооцоолол их шаарддаг 7-zip болон dav1d тестүүдэд Box64-ийн гүйцэтгэл нь үндсэн програмын гүйцэтгэлийн 27% -иас 53% хооронд хэлбэлзэж байв (харьцуулахын тулд QEMU 5-16%, FEX-emu - 13-26% үр дүнг харуулсан байна. ). Нэмж дурдахад Apple-ийн M2 ARM чиптэй систем дээр x86 кодыг ажиллуулахад ашигладаг Rosetta 1 эмулятортай харьцуулалтыг хийсэн. Rosetta 2 нь 7zip-д суурилсан тестийг эх хувилбарын 71%, Box64 - 57% -ийг хангасан.

Box86 болон Box64 эмуляторуудын шинэ хувилбарууд нь ARM систем дээр x86 тоглоом ажиллуулах боломжийг танд олгоно.

Програмтай нийцтэй байдлын хувьд 165 тоглоом шалгагдсанаас 70 орчим хувь нь амжилттай ажилласан. Өөр 10 орчим хувь нь ажилладаг, гэхдээ тодорхой захиалга, хязгаарлалттай. Дэмжигдсэн тоглоомуудад WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious болон GameMaker тоглоомууд багтана. Асуудалтай байгаа тоглоомуудын дунд Mono багцад холбогдсон Unity3D хөдөлгүүр дээр суурилсан тоглоомуудыг дурьдаж болно, Mono-д ашигладаг JIT эмхэтгэлийн улмаас эмуляци нь үргэлж ажилладаггүй, бас нэлээд сайн байдаг. ARM самбар дээр үргэлж хүрч чаддаггүй өндөр график шаардлагууд. GTK програмын сангуудыг орлуулах нь одоогоор GTK2-ээр хязгаарлагдаж байна (GTK3/4-ийг орлуулах бүрэн хэрэгжээгүй).

Шинэ хувилбаруудын гол өөрчлөлтүүд:

  • Вулкан номын санд зориулсан хавтас нэмсэн. Vulkan болон DXVK график API-ийн дэмжлэгийг нэмсэн (Vulkan-ийн дээд талд DXGI, Direct3D 9, 10, 11-ийн хэрэгжилт).
  • GTK номын сангуудын холболтыг сайжруулсан. GTK програмуудад түгээмэл хэрэглэгддэг gstreamer болон номын санд зориулсан холболтуудыг нэмсэн.
  • RISC-V болон PPC64LE архитектурт зориулсан анхны дэмжлэг (зөвхөн тайлбарлах горим) нэмэгдсэн.
  • SteamPlay болон Proton давхаргын дэмжлэгийг сайжруулахын тулд засварууд хийгдсэн. Raspberry Pi 64, 3 зэрэг AArch4 самбар дээр Steam-аас олон Linux болон Windows тоглоомуудыг ажиллуулах боломжийг олгодог.
  • Сайжруулсан санах ойн удирдлага, mmap гүйцэтгэл, санах ойн хамгаалалтын зөрчлийг хянах.
  • libc дэх клон системийн дуудлагын сайжруулсан дэмжлэг. Системийн шинэ дуудлагын дэмжлэг нэмсэн.
  • Динамик дахин хөрвүүлэх хөдөлгүүр нь SSE/x87 регистртэй ажиллах ажлыг сайжруулж, шинэ машины кодын дэмжлэгийг нэмж, хөвөгч болон давхар тоонуудын хөрвүүлэлтийг оновчтой болгож, дотоод шилжилтийн боловсруулалтыг сайжруулж, шинэ архитектурт зориулсан нэмэлт дэмжлэгийг хялбаршуулсан.
  • Сайжруулсан ELF файл ачаалагч.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх