ARM sistemlərində x86 oyunlarını idarə etməyə imkan verən Box64 və Box86 emulyatorlarının yeni versiyaları

ARM, ARM86, PPC0.2.6LE və RISC-V prosessorlarında x64 və x0.1.8_86 arxitekturaları üçün qurulmuş Linux proqramlarını idarə etmək üçün Box86 64 və Box64 64 emulyatorlarının buraxılışları dərc edilmişdir. Layihələr bir inkişaf komandası ilə sinxron şəkildə inkişaf edir - Box86 32-bit x86 proqramlarını işlətmək qabiliyyəti ilə məhdudlaşır, Box64 isə 64-bit icra olunanları işə salmaq imkanı verir. Layihə şərab və Proton vasitəsilə Windows konstruksiyalarını işə salmaq imkanı da daxil olmaqla oyun proqramlarının işə salınmasının təşkilinə böyük diqqət yetirir. Layihənin mənbə mətnləri C dilində yazılmışdır və MIT lisenziyası əsasında paylanmışdır (Box86, Box64).

Layihənin bir xüsusiyyəti, emulyasiyanın yalnız proqramın özünün maşın koduna və xüsusi kitabxanalara tətbiq olunduğu hibrid icra modelinin istifadəsidir. libc, libm, GTK, SDL, Vulkan və OpenGL daxil olmaqla ümumi sistem kitabxanaları hədəf platformalara xas olan variantlarla əvəz olunur. Beləliklə, kitabxana zəngləri emulyasiya olmadan həyata keçirilir ki, bu da performansın əhəmiyyətli dərəcədə artmasına imkan verir.

Hədəf platforması üçün yerli əvəzetmələri olmayan kodun emulyasiyası bir maşın təlimat dəstindən digərinə dinamik rekompilyasiya (DynaRec) texnikasından istifadə etməklə həyata keçirilir. Maşın təlimatlarının təfsiri ilə müqayisədə dinamik rekompilyasiya 5-10 dəfə yüksək performans göstərir.

Performans testlərində, Armhf və Aarch86 platformalarında işləyərkən, Box64 və Box64 emulyatorları QEMU və FEX-emu layihələrindən əhəmiyyətli dərəcədə üstün oldu və bəzi testlərdə (glmark2, openarena) hədəf platformaya uyğun bir montajı idarə etməklə eyni performansa nail oldular. . İntensiv hesablama tələb edən 7-zip və dav1d etalonlarında Box64-ün performansı yerli tətbiqin performansından 27% ilə 53% arasında idi (QEMU ilə müqayisədə 5-16% və FEX-emu 13-26%). Bundan əlavə, Apple tərəfindən ARM M2 çipi olan sistemlərdə x86 kodunu işlətmək üçün istifadə edilən Rosetta 1 emulyatoru ilə müqayisə aparılıb. Rosetta 2 yerli quruluşun 7%-də, Box71 isə 64%-də 57zip-əsaslı testdən keçdi.

ARM sistemlərində x86 oyunlarını idarə etməyə imkan verən Box64 və Box86 emulyatorlarının yeni versiyaları

Tətbiq uyğunluğu baxımından sınaqdan keçirilmiş 165 oyundan təxminən 70%-i uğurla qazanılıb. Təxminən 10% daha çox işləyir, lakin müəyyən qeyd-şərtlər və məhdudiyyətlərlə. Dəstəklənən oyunlara WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Service Delicious və əksər GameMaker oyunları daxildir. Problemlərin qeyd olunduğu oyunlardan Mono paketinə bağlı olan, Mono-da istifadə olunan JIT kompilyasiyası səbəbindən emulyasiyası həmişə işləməyən və eyni zamanda kifayət qədər yüksək qrafika malik olan Unity3D mühərrikinə əsaslanan oyunlar qeyd olunur. ARM lövhələrində həmişə əldə edilə bilməyən tələblər. GTK proqram kitabxanalarının dəyişdirilməsi hazırda GTK2 ilə məhdudlaşır (GTK3/4-ün dəyişdirilməsi tam həyata keçirilmir).

Yeni buraxılışlarda əsas dəyişikliklər:

  • Vulkan kitabxanası üçün bağlama əlavə edildi. Vulkan və DXVK qrafika API üçün əlavə dəstək (Vulkan üzərində DXGI, Direct3D 9, 10 və 11-in tətbiqi).
  • GTK kitabxanaları üçün təkmilləşdirilmiş bağlamalar. GTK tətbiqlərində geniş istifadə olunan gstreamer və kitabxanalar üçün əlavələr.
  • RISC-V və PPC64LE arxitekturaları üçün ilkin dəstək (indiyə qədər yalnız şərh rejimi) əlavə edildi.
  • SteamPlay dəstəyini və Proton qatını təkmilləşdirmək üçün səhvlər düzəldildi. Raspberry Pi 64 və 3 kimi AArch4 lövhələrində Steam-dən bir çox Linux və Windows oyunlarını idarə etmək mümkündür.
  • Təkmil yaddaş idarəetməsi, mmap davranışı və yaddaşın qorunması pozuntularının monitorinqi.
  • libc-də klon sistem zəngi üçün təkmilləşdirilmiş dəstək. Yeni sistem zəngləri üçün əlavə dəstək.
  • Dinamik rekompilyasiya mühərrikində SSE/x87 registrləri ilə iş təkmilləşdirildi, yeni maşın kodları üçün dəstək əlavə edildi, float və qoşa nömrələrin çevrilməsi optimallaşdırıldı, daxili atlamaların emalı yaxşılaşdırıldı və yeni arxitekturalara dəstək verildi. sadələşdirilmiş.
  • Təkmilləşdirilmiş ELF fayl yükləyicisi.

Mənbə: opennet.ru

Добавить комментарий