Nei Versioune vu Box86 a Box64 Emulatoren, wat Iech erlaabt x86 Spiller op ARM Systemer ze lafen

Verëffentlechunge vu Box86 0.2.6 a Box64 0.1.8 Emulatoren goufen publizéiert, entwéckelt fir Linux Programmer ze lafen, kompiléiert fir x86 an x86_64 Architekturen op Ausrüstung mat ARM, ARM64, PPC64LE a RISC-V Prozessoren. Projete ginn synchron vun engem Team vun Entwéckler entwéckelt - Box86 ass limitéiert op d'Fäegkeet fir 32-Bit x86 Uwendungen ze lafen, a Box64 bitt d'Fäegkeet fir 64-Bit ausführbar ze lafen. De Projet bezilt grouss Opmierksamkeet fir de Start vun Spillapplikatiounen ze organiséieren, dorënner d'Fähigkeit ze bidden fir Windows Builds duerch Wäin a Proton ze starten. De Quellcode fir de Projet ass an C geschriwwen a verdeelt (Box86, Box64) ënner der MIT Lizenz.

Eng Feature vum Projet ass d'Benotzung vun engem Hybrid-Ausféierungsmodell, an deem d'Emulatioun nëmmen op de Maschinncode vun der Applikatioun selwer a spezifesche Bibliothéiken applizéiert gëtt. Typesch Systembibliothéiken, dorënner libc, libm, GTK, SDL, Vulkan an OpenGL, gi mat Optiounen gebierteg op den Zilplattformen ersat. Op dës Manéier ginn d'Bibliothéiksuriff ouni Emulatioun ausgefouert, wat zu bedeitende Leeschtungsgewënn resultéiert.

Emulatioun vum Code fir deen et keng Ersatzstécker gebierteg op der Zilplattform gëtt gëtt mat enger Technik vun dynamescher Rekompilatioun (DynaRec) vun engem Set vu Maschinninstruktiounen an en anert gemaach. Am Verglach mat der Interpretatioun vun Maschinninstruktiounen weist dynamesch Rekompilatioun 5-10 Mol méi héich Leeschtung.

A Performance Tester hunn d'Box86 a Box64 Emulatoren, wann se op den Armhf an Aarch64 Plattformen ausgefouert goufen, d'QEMU a FEX-emu Projeten wesentlech iwwerpréift, an an eenzel Tester (glmark2, openarena) hunn se Leeschtung identesch erreecht wéi eng Versammlung gebierteg zum Zil leeft. Plattform. An de compute-intensiven 7-Zip an dav1d Tester huet d'Performance vun Box64 vun 27% bis 53% vun der Leeschtung vun der gebierteg Applikatioun rangéiert (zum Verglach, QEMU huet Resultater vu 5-16% gewisen, an FEX-emu - 13-26% ). Zousätzlech gouf e Verglach mam Rosetta 2 Emulator gemaach, deen vun Apple benotzt gëtt fir x86 Code op Systemer mam M1 ARM Chip ze lafen. Rosetta 2 huet den 7zip-baséierten Test mat enger Leeschtung vun 71% vum gebiertege Bau geliwwert, a Box64 - 57%.

Nei Versioune vu Box86 a Box64 Emulatoren, wat Iech erlaabt x86 Spiller op ARM Systemer ze lafen

Wat d'Kompatibilitéit mat Uwendungen ugeet, aus 165 geteste Spiller hunn ongeféier 70% erfollegräich geschafft. Ongeféier weider 10% schaffen, awer mat bestëmmte Reservatiounen a Restriktiounen. Ënnerstëtzt Spiller enthalen WorldOfGoo, Airline Tycoon Deluxe, FTL, Undertale, A Risk of Rain, Cook Serve Delicious an déi meescht GameMaker Spiller. Ënnert de Spiller, mat deenen d'Problemer bemierkt goufen, gi Spiller ernimmt baséiert op dem Unity3D-Motor, deen un de Mono Package gebonnen ass, d'Emuléierung vun deem net ëmmer funktionnéiert wéinst der JIT-Kompilatioun déi am Mono benotzt gëtt, an och zimlech héich Grafiken Ufuerderunge déi net ëmmer op ARM Brieder erreechbar sinn. Ersatz vun GTK Applikatiounsbibliothéiken ass momentan op GTK2 limitéiert (Ersatz vun GTK3/4 ass net voll ëmgesat).

Main Ännerungen an neie Verëffentlechungen:

  • Bindung bäigefüügt fir d'Vulkan Bibliothéik. Zousätzlech Ënnerstëtzung fir de Vulkan an DXVK Grafik API (Implementatioun vun DXGI, Direct3D 9, 10 an 11 uewen op Vulkan).
  • Verbesserte Bindungen fir GTK Bibliothéiken. Bindunge bäigefüügt fir gstreamer a Bibliothéiken déi allgemeng an GTK Uwendungen benotzt ginn.
  • Éischt Ënnerstëtzung bäigefüügt (nëmmen Interpretatiounsmodus fir de Moment) fir RISC-V an PPC64LE Architekturen.
  • Fixes goufen gemaach fir d'Ënnerstëtzung fir SteamPlay an d'Proton Layer ze verbesseren. Bitt d'Fäegkeet fir vill Linux a Windows Spiller vu Steam op AArch64 Boards wéi Raspberry Pi 3 a 4 ze lafen.
  • Verbessert Erënnerung Gestioun, mmap Leeschtung, an Erënnerung Schutz Violatioun Tracking.
  • Verbesserte Ënnerstëtzung fir de Klonsystem rifft am libc. Zousätzlech Ënnerstëtzung fir nei Systemappellen.
  • Den dynamesche Rekompilatiounsmotor huet d'Aarbecht mat SSE / x87 Registere verbessert, Ënnerstëtzung fir nei Maschinncoden bäigefüügt, optimiséiert Konversioune vu Float- an Duebelzuelen, verbesserte Veraarbechtung vun internen Iwwergäng, a vereinfacht d'Zousatz vun Ënnerstëtzung fir nei Architekturen.
  • Verbesserte ELF Dateilader.

Source: opennet.ru

Setzt e Commentaire