Switchエミュレーター「suyu」、AOT再コンパイルでCPU負荷を削減 最終版v0.0.4で開発終了

このページには広告が含まれています

Nintendo Switchエミュレーター「suyu」の最終公開版となるバージョン0.0.4が登場し、ゲームコードを事前にx86-64へ変換する新しい「Recompiler mode」が追加された。従来のエミュレーションで必要だった実行時の変換処理を減らし、とくにCPU負荷が大きいゲームで性能向上を狙う仕組みだ。

suyuは、開発終了したYuzuを基にしたオープンソースのエミュレーターとして開発が続けられてきた。一般的なSwitchエミュレーターでは、Arm系のAArch64コードをPCのx86-64 CPUで実行するため、ゲームの動作中にJITコンパイラなどを使ってコードを逐次変換する。

新しいRecompiler modeでは、この変換をゲーム実行前に行う。Switch向けAArch64コードをx86-64の実行形式へ静的に再コンパイルし、suyuのHLEバックエンドと組み合わせることで、プレイ中に発生する変換処理を減らす。完全なWindowsネイティブ版へ変換するわけではなく、Switch固有のOS機能やグラフィックスAPIには引き続き互換レイヤーが必要となる。

それでも、CPU側のオーバーヘッドやJIT処理に起因する一部のカクつきを減らせる可能性があり、中級クラスのPCでも高解像度・高フレームレートを狙いやすくなるとされる。とくに『ゼルダの伝説 ブレス オブ ザ ワイルド』『ティアーズ オブ ザ キングダム』や「ゼノブレイド」シリーズのようなCPU負荷の大きいオープンワールド作品で効果が期待されている。

ただし、今回のv0.0.4をもってsuyuの開発は終了する。GitHubリポジトリはアーカイブ化され、コード自体はオープンソースとして残るものの、現在の開発チームによる更新は行われない。

Switchエミュレーションを巡っては、YuzuやRyujinxなど主要プロジェクトが相次いで終了してきた。suyuも継続開発には至らなかったが、最後のリリースで投入された静的再コンパイルという手法は、エミュレーションの負荷を減らす別のアプローチを示したことになる。

実際の効果はタイトルごとの互換性やベンチマークを確認する必要があり、「SwitchゲームがPCネイティブ性能になった」とまで評価するのは早い。一方、ゲーム機向けコードを事前変換して実行時負荷を削る仕組みは、今後のエミュレーターや再コンパイルプロジェクトにも応用される可能性がある。

出典:TechPowerUp

管理人コメント

「ネイティブ性能」という見出しは派手ですが、実際はSwitch向けコードを事前変換して実行時の負荷を減らす仕組みです。それでもJIT依存を減らせるのは面白い。残念なのは、その新機能を置き土産にsuyu自体の開発が終了すること。最後にエンジンを載せ替えて、そのままガレージを閉めてしまいました。

かんたんお宝ゲーミングPC検索

0台

PCパーツの価格推移

🖥 GPU 価格推移
🖥 CPU 価格推移
よかったらシェアしてね!
目次