最近 のリリース 新しいバージョンの Box86およびBox0.2.6エミュレーター。 プロジェクトは、同じ開発チームによって同期して開発されます。
Box86は、86ビットx32アプリケーションの実行に制限されています (ゲームなど)ARMなどの非x86 Linuxシステム(ホストシステムは32ビットリトルエンディアンである必要があります)。 したがって、Box32を実行およびコンパイルするには、86ビットのサブシステムが必要です。 Box86は、64ビットのみのシステムでは役に立ちません。 また、Box32をコンパイルするには86ビットのツールチェーンが必要です。
Box86は、libc、libm、SDL、OpenGLなどの一部の「システム」ライブラリのネイティブバージョンを使用するため、ほとんどのアプリケーションとの統合と使用が簡単で、多くの場合、パフォーマンスが驚くほど高くなる可能性があります。
Box64についても同じことが言えます。 そのようなものだけと許可します 64ビットの実行可能ファイルを実行する。 このプロジェクトは、WineとProtonを介してWindowsビルドをリリースする機能など、ゲームアプリケーションのリリースの構成に大きな注意を払っています。
プロジェクトの特徴は、ハイブリッド実行モデルの使用です。、エミュレーションはアプリケーション自体のマシンコードと特定のライブラリにのみ適用されます。 libc、libm、GTK、SDL、Vulkan、OpenGLなどの汎用システムライブラリは、ターゲットプラットフォーム上のネイティブバリアントに置き換えられています。 したがって、ライブラリ呼び出しはエミュレーションなしで実行され、パフォーマンスが大幅に向上します。
ネイティブオーバーライドのないコードをエミュレートする■ターゲットプラットフォームの場合は、あるセットのマシン命令から別のセットへの動的再コンパイル(DynaRec)の手法を使用して行われます。 マシン命令の解釈と比較して、動的再コンパイルは5〜10倍優れたパフォーマンスを示します。
パフォーマンステストで、ArhmfおよびAarch64プラットフォームで実行している場合、 Box86およびBox64エミュレーターは、QEMUおよびFEX-emuプロジェクトを大幅に上回りました また、一部のテスト(glmark2、openarena)では、ターゲットプラットフォームにネイティブなアセンブリを実行するのと同じパフォーマンスを達成しました。
互換性の観点から アプリケーションの、dテストされた165のゲームのうち、約70%が成功しました。 作業量は約10%増えますが、特定の予約と制限があります。
問題が指摘されているゲームの中で、Unity3Dエンジンに基づくゲームが言及されています。これは、Monoパッケージに関連付けられており、Monoで使用されるJITコンパイルのためにエミュレーションが常に機能するとは限らず、グラフィックも非常に高い要件があります。これは、ARMボードでは常に達成できるとは限りません。 GTKアプリケーションライブラリの置き換えは現在GTK2に制限されています(GTK3 / 4の置き換えは完全には実装されていません)。
用として 新しいリリースの主な変更点、以下が強調表示されます。
- Vulkanライブラリへのリンクを追加しました。 VulkanおよびDXVKグラフィックAPIサポートを追加しました(Vulkanを介したDXGI、Direct3D 9、10、および11の実装)。
- GTKライブラリのバインディングが改善されました。 GTKアプリケーションで一般的に使用されるgstreamerとライブラリのバインディングを追加しました。
- RISC-VおよびPPC64LEアーキテクチャの初期サポート(これまでのところ、解釈モードのみ)が追加されました。
- SteamPlayおよびProtonLayerとの互換性を改善するためにバグ修正が行われました。 RaspberryPi64や3などのAArch4ボードでSteamから多くのLinuxおよびWindowsゲームを実行することができます。
- メモリ管理、mmapの動作、およびメモリ保護違反の監視が改善されました。
- libcでのクローンシステムコールのサポートが改善されました。 新しいシステムコールのサポートが追加されました。
- 動的再コンパイルエンジンでは、SSE / x87レジストリでの作業が改善され、新しいマシンコードのサポートが追加され、floatおよびdouble変換が最適化され、内部ブランチ処理が改善され、新しいアーキテクチャのサポートが簡素化されました。
- 改善されたELFファイルローダー。
最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。