Ryujinx
Nintendo Switch エミュレータ
概要
Ryujinxは、ARMv8アーキテクチャのSoC(Tegra X1)を搭載したNintendo Switch向けの、高互換性HLEエミュレーターである。モバイルアーキテクチャ特有の電力効率とパフォーマンスのバランスを考慮しつつ、PC環境での高解像度化(アップスケーリング)や高フレームレート化を可能にする「Enhancement Layer」を標準搭載している点が特徴である。
アーキテクチャと技術特性
Ryujinxの中核となるCPUエミュレーションには、マルチスレッドに最適化された動的リコンパイラ(JIT)を採用している。ARM64命令をx86-64へ変換する際、ホットパス検出によるBlock Linking技術を用い、コンテキストスイッチのオーバーヘッドを最小化した。また、Apple Silicon(Mシリーズ)などのARMホスト環境においては、JITを介さずにコードを直接実行するNCE(Native Code Execution)モードを実装し、劇的なパフォーマンス向上を実現している。
GPUエミュレーションでは、Maxwellアーキテクチャの命令セットを詳細に解析し、ホストGPUのシェーダーへ1:1に近い形で変換する「Macro JIT」を搭載。NVN API(Switch独自の低レベルAPI)のコールを解析し、VulkanまたはMetal(macOS向け)へブリッジする。特に、Switch特有のテクスチャ圧縮形式(ASTC)のデコード負荷を軽減するため、コンピュートシェーダーを用いたGPUデコードを実装している。現在の主な課題は、特定のタイトルで使用されるGPUの低レベルな同期プリミティブ(Fence/Semaphore)の挙動差異によるデッドロックの解消と、ローカル通信プレイ(LDN)の仮想ネットワーク上での完全な再現である。
推奨動作環境
- CPU: シングルスレッド性能が高い4コア以上のプロセッサ (ARM環境ではM1以上)
- GPU: OpenGL 4.6 / Vulkan 1.1対応、VRAM 4GB以上
- RAM: 8GB以上