ワインプロジェクト開発者のStefanDösingerとAndréHentschel ハングオーバーエミュレータの最初の公開バージョンを発表しました、 その 32ビットおよび64ビットのWindowsアプリケーションを実行できます x86およびx86_64アーキテクチャ用に設計されています ARM64アーキテクチャ(Aarch64)に基づくLinuxおよびAndroid環境。
システムコールレベルでエミュレーションモードでQEMUを使用して(メインシステムと同じカーネルを使用して)最小限のシステム環境でWineを実行するのとは異なります。
二日酔いエミュレータについて
プロジェクト 二日酔いにより、ユーザーは大幅に高いパフォーマンスを得ることができます。 このプロジェクトの加速 エミュレーションレイヤーをWin32 / Win64APIレベルに転送することで実現されます。 それらに基づくWin32 / Win64 APIのポストエミュレーションを使用して、通常のシステムコールをエミュレートする代わりに。
現在、このプロジェクトでは、ユーザーはWin64およびWin32APIを使用する単純なアプリケーションとゲームのみを実行できます。
Linuxの場合、Direct3Dのサポートが実装されていますが、WineでのOpenGL ESのサポートが不完全なため、Androidではまだ利用できません。
デバッガーのサポートは存在せず、例外処理には既知のバグがあります。 これらの理由により、コピー防止システムとチート防止システムは、通常のバージョンのWineよりも悪い状態になる可能性があります。
一般に、64ビットアプリケーションは、データ構造が必要ないため、32ビットアプリケーションよりも良好な状態であることが期待できます。
作業を保証するために、Wineの定期的なインストールが使用され、さまざまなライブラリとDLLレイヤーが追加されています。
Linux環境では、QEMUがWineディレクトリ( "C:\ x86 \ qemu-x86_64.exe.so")にある場合、Windowsアプリケーションは自動的に実行されます。
一方、Androidでは、cmdユーティリティを使用して実行することをお勧めします。
4GB未満の各アドレスを予約する場合、アドレス空間は4GBに制限されます。
ほとんどの主要なWineライブラリは、以前は4GBを超えてロードされていました 上記のスペースを可能な限り4GB未満に保つため。 これの欠点は、新しいプロセスの開始に約2秒かかることです。
ARM64のワインを二日酔い
Wineは各プロセスを64ビットプロセスと見なすため、WoW64レイヤーはアクティブではありません。 これは、純粋な32ビットまたは純粋な64ビットアプリケーションでは正常に機能しますが、たとえば、C:\ windows \ system32とC:\ windows \ syswow64の区別を期待する混合アプリケーションでは問題が発生します。
32ビット(x86)Windowsアプリケーションのリリースに関して、 アプリケーションとWineの間で送信される構造の翻訳レベルで処理されます (Windows上のLLP64モデルは、32ビットと64ビットのWinAPI間のフレームワークの基本的な互換性を維持します)。
32ビットのWindowsアプリケーションを実行するには、64ビットのWineアセンブリが使用され、各プロセスは最初に64ビットとして扱われます。
ホスト側では、ARM64およびx86_64アーキテクチャーのみがサポートされていますが、コードが統合されているため、プロジェクトをバイト順に他のアーキテクチャーに最も古いものから最も古いもの(リトルエンディアン)に簡単に移動できます。
磨くべきことがまだたくさんあります
現時点での二日酔いのパフォーマンスには、まだまだ多くの要望があります。 e以来主なボトルネックは、QEMUが生成するコードのパフォーマンスです。
しかし、 Android NvidiaShieldを搭載したTVデバイスで実行している場合。 パフォーマンスは2000年代からゲームを実行するのに十分です。
二日酔いでテストされたアプリケーションは次のとおりです。 Notepad ++、ANNO 1602、Age of Wonders、Warhammer 40k:Dawn of War、The Settlers II 10th Anniversary、Prince of Persia 3D、Worms 2、WormsArmageddon。 DirectX 9 SDKの例も、許容可能な速度で実行されます。
このリリースは、Hangover4.0バージョン番号に反映されているWine0.4.0ベースコードに基づいています。 エミュレーションレイヤーはQEMUプロジェクトに基づいています。