Viiniprojektien kehittäjät Stefan Dösinger ja André Hentschel ovat ilmoittaneet Hangover-emulaattorin ensimmäisestä julkisesta versiosta, että mahdollistaa 32- ja 64-bittisten Windows-sovellusten käytön suunniteltu x86- ja x86_64-arkkitehtuureille ARM64-arkkitehtuuriin (Aarch64) perustuvissa Linux- ja Android-ympäristöissä.
Toisin kuin Wine: n suorittaminen vähäisessä järjestelmäympäristössä, käyttäen QEMU: ta emulointitilassa järjestelmän kutsutasolla (käyttäen samaa ydintä kuin pääjärjestelmä).
Tietoja krapulaemulaattorista
El proyecto Krapula antaa käyttäjälle mahdollisuuden olla huomattavasti parempi suorituskyky. Tämän projektin kiihdytys saavutetaan siirtämällä emulointikerros Win32 / Win64 API-tasolle, sen sijaan, että jäljitettäisiin säännöllisiä järjestelmäkutsuja Win32 / Win64 API -sovellusten avulla, jotka perustuvat niihin.
Tällä hetkellä projekti sallii käyttäjän suorittaa vain yksinkertaisia sovelluksia ja pelejä, jotka käyttävät Win64- ja Win32-sovellusliittymiä.
Linux-käyttöjärjestelmässä Direct3D-tuki on toteutettu, mikä ei ole vielä käytettävissä Androidille johtuen puutteellisesta tuesta OpenGL ES: lle Viinissä.
Debugger-tuki ei ole olemassa, ja poikkeusten käsittelyssä on tunnettuja virheitä. Näistä syistä kopiosuojaus- ja huijaussuojajärjestelmät ovat todennäköisesti huonommassa kunnossa kuin viinin tavalliset versiot.
Yleensä 64-bittisten sovellusten voidaan olettaa olevan parempana kuin 32-bittiset sovellukset, koska datarakennetta ei tarvita.
Työn takaamiseksi käytetään säännöllistä Wine-asennusta, jota täydennetään erilaisilla kirjastoilla ja DLL-tasoilla.
Linux-ympäristössä Windows-sovellukset toimivat automaattisesti, kun QEMU on Wine-hakemistossa ("C: \ x86 \ qemu-x86_64.exe.so").
Androidissa ehdotetaan suorituksen suorittamiseksi cmd-apuohjelmaa.
Osoitetila on rajoitettu 4 Gt: iin, kun varaat jokaisen alle 4 Gt: n osoitteen.
Suurin osa suurimmista viinikirjastoista on aiemmin ladattu yli 4 Gt pitää yllä oleva 4 Gt: n kokoinen tila mahdollisimman vapaana. Tämän haittapuoli on, että uuden prosessin aloittaminen kestää noin 2 sekuntia.
Krapula viini ARM64: lle
Viini pitää jokaista prosessia 64-bittisenä prosessina, joten sen WoW64-kerros ei ole aktiivinen. Tämä toimii hyvin puhtaissa 32-bittisissä tai puhtaissa 64-bittisissä sovelluksissa, mutta aiheuttaa ongelmia sekoitetuille sovelluksille, jotka odottavat eroa esimerkiksi C: \ windows \ system32 ja C: \ windows \ syswow64 välillä.
Mitä tulee 32-bittisten (x86) Windows-sovellusten julkaisemiseen, käsitellään sovelluksen ja Viinin välillä välitettävien rakenteiden käännöstasolla (Windowsin LLP64-malli säilyttää 32- ja 64-bittisten WinAPI-kehysten peruskokoonpanon).
32-bittisten Windows-sovellusten suorittamiseen käytetään 64-bittisiä Wine-kokoonpanoja ja kutakin prosessia käsitellään ensin 64-bittisenä.
Isäntäpuolella tuetaan vain ARM64- ja x86_64-arkkitehtuureja, mutta koodi on yhtenäinen, jolloin projekti voidaan siirtää muihin arkkitehtuureihin tavujärjestyksessä nuorimmasta vanhimpaan (little-endian) ilman paljon vaivaa.
Kiillotettavaa on vielä paljon
Krapulan suorituskyky tällä hetkellä jättää paljon toivomisen varaa. Koska eTärkein pullonkaula on QEMU: n tuottaman koodin suorituskyky.
Kuitenkin, kun suoritetaan televisiolaitteessa, jossa on Android Nvidia Shield. Suorituskyky on riittävä 2000-luvun pelien ajamiseksi.
Hangoverissa testattuihin sovelluksiin sisältyy Notepad ++, ANNO 1602, Age of Wonders, Warhammer 40k: Dawn of War, The Settlers II 10th Anniversary, Prince of Persia 3D, Worms 2 ja Worms Armageddon. DirectX 9 SDK -esimerkit toimivat myös hyväksyttävillä nopeuksilla.
Julkaisu perustuu Wine 4.0 -peruskoodiin, joka näkyy Hangover 0.4.0 -versiossa. Emulointikerros perustuu QEMU-projektiin.