Ryujinx

Nintendo Switchのエミュレータ

Ryujinx (リーユージンクス)[2] とは、フリーかつオープンソースで開発されている、Nintendo Switchゲームエミュレータである。対応プラットフォームはWindowsLinuxmacOS

Ryujinx
Windowsで動作する、Ryujinxのメインメニュー
作者 gdkchan
開発元 Ryujinx Team
初版 2018年2月5日 (6年前) (2018-02-05)
最新版
1.1869 / 2023年6月5日 (10か月前) (2023-06-05)
リポジトリ https://github.com/Ryujinx/Ryujinx
プログラミング
言語
C#
対応OS
プラットフォーム x86 (64bit)
対応言語 15言語[1]
サポート状況 開発中
種別 ゲームエミュレータ
ライセンス MIT License
公式サイト ryujinx.org
テンプレートを表示

なお、このソフトウェアは任天堂によって公認されたものではない。

概要 編集

ソースコードは C# で書かれている。

2022年11月現在、約3,800タイトルでテストが行われていて、そのうち3,600以上でゲームの起動が可能で、さらにその中でも約3,200タイトルがプレイ可能とされている。互換性リストも公開されており、誰でも自由に新しいゲームのテスト結果を反映させて、既存のテスト結果を更新したりできる[3][4]

Ryujinxという名称の由来は、初期の開発に使用されていたRyuJIT[注 1]と、Nintendo Switchの開発コードネーム「NX」を合わせた造語である。

特徴 編集

動作要件 編集

このエミュレータを実行するには、少なくとも8GBのRAMが搭載されている必要がある。この要件を満たさない場合、ゲームプレイ体験が悪化したり、予期しないクラッシュが起こる場合がある[3]

また、Nintendo Switch本体から吸い出したファームウェアとキー、OpenALバイナリが必要である。

機能 編集

オーディオ 編集

オーディオ出力は完全にサポートされている。一方、マイクによる音声入力は対応していない。

入力 編集

キーボードマウスタッチ入力Joy-Con、およびほぼすべてのコントローラを使用できる。モーションコントロールはほぼネイティブ対応している。デュアルJoyConモーション対応に関しては、DS4WindowsやBetterJoyなどの外部ソフトウェアを必要とする。入力設定メニューからすべて設定できる。

DLCと拡張機能 編集

GUIでの操作により、アドオンコンテンツダウンロードコンテンツの管理が可能である。Mod(romfs、exefs、チートなどのランタイム)と呼ばれる、ゲーム内容などの改変を行える一連のプログラム群にも対応している。

設定 編集

ログ保存の有効化や無効化、コントローラのボタン割り当てのための設定を行うことができる。

CPU 編集

CPUの動作を再現するARMeilleureによりARM v8に対応できるため、現在、ほとんどの64ビットARMv8と、部分的な32ビットサポートを含むARMv7以前の命令の一部に対応している。ARMコードをカスタムIRに変換・最適化しそれをx86コードに変換することで動作させている。3つのメモリマネージャオプションがあり、ソフトウェアベース(低速)モードとホストマップモード(はるかに高速)の両方を活用する。

またRyujinxでは、ゲームが読み込まれるたびに翻訳する必要がないように、本質的に翻訳された機能をキャッシュするオプションのProfiled Persistent Translation Cacheも備えています。これにより、ほぼすべてのゲームのロード時間(ゲームの起動からタイトル画面に到達するまでの時間)の大幅な短縮を実現している。

グラフィックス 編集

それぞれOpenTKまたはSilk.NETのカスタムビルドを通じて、OpenGL(バージョン4.5以上)、Vulkan、またはMetalMoltenVK経由)を使用して、SwitchのMaxwell GPUの動作を再現している。Ryujinxにはエンドユーザーが利用できる、6つのグラフィック機能強化があり、ディスクシェーダーキャッシング、解像度スケーリング、アンチエイリアシングスケーリングフィルターFSRを含む)、異方性フィルタリングアスペクト比調整を使うことができる。これらの機能は、GUIで必要に応じて調整または切り替えることが可能である。

フレームレートも60フレーム、一部では120フレームまでの向上に対応する。

進捗の公開 編集

Ryujinx teamは活発にブログを更新している[5]。新しいバージョンは最初にPatreonで公開され,翌週に公式ウェブサイトで独自の進捗レポートを公表する。機能の発表は、Ryujinxブログ、Patreon、TwitterRedditYouTubeなど、複数のプラットフォームで同時にリリースされる[6]

yuzuとの比較 編集

Ryujinxとyuzuの開発チームは、それぞれ異なるメンバーで構成されているが、双方共に開発は安定しており、ほぼ同等である。以前はRyujinxの方が、互換性のないゲームの起動、特定のゲームのレンダリング改善が若干速かった[6]

開発初期の頃は、研究成果のいくつかが両プロジェクト間で共有されていたが、2019年以降のRyujinxは、MITライセンスの下での運営に移行したため、コードは一方向にしか移植できなくなった。yuzuはRyujinxのコードを移植できるが、逆にRyujinxはyuzuのコードを使用できない。移植元を明記せずにRyujinxコードを含んで実装されたとされ、ライセンス違反が指摘されたyuzuのコードに関しては、いくつか軽度な論争があった[7][8][9][10]

歴史 編集

Ryujinxの開発は、2017年11月にgdkchanによって開発が始まった。開発開始後すぐに、Discordサーバーと基本的なウェブサイトが公開された。当初はARMコードを翻訳し、ChocolArm64経由の.NET ILやRyuJITが、ARMエミュレーションに活用される方針だった。このことがRyujinxという名前の由来になった。

しかし、いくつかの技術的制限の突破のために、より柔軟なJITを必要としてgdkchanが作成したのが、前述のARMeilleureという名前のカスタムJITである[11]

2017年4月の段階ですでに、Cave Story+ぷよぷよテトリスの起動に、商用ゲームとして初めて成功した[12][13]

その後も、2018年4月から5月にかけて、The Binding of Isaac: Afterbirth+ONE PIECE アンリミテッドワールド レッド デラックスエディション1-2-Switchといった複数のタイトルの起動に成功した。翌月の6月上旬には、スーパーマリオ オデッセイのイントロ部分を起動して描画することができるようになった。さらに、前述のONE PIECEに関しては、7月上旬に3Dゲームとして初めて、動作に成功した。

2018年9月、マルチコアスケジューリングが実装された[14]

同年12月には、大乱闘スマッシュブラザーズ SPECIALが起動した[15]

2020年3月あつまれ どうぶつの森の動作に対応する特別なバージョンが公開された[16]。これには、特別なプログレッシブバグ修正やその他の最適化が含まれていたが、同年5月2日までに、専用ビルドは削除されている。

その後の4月にも、「ASTRAL CHAIN」や「ポケットモンスター ソード・シールド」などの厳選されたタイトルを、許容可能なパフォーマンスで実行したことが報じられたり[17]9月にはゼルダの伝説 ブレス オブ ザ ワイルドのMODが、Cemuyuzu、Ryujinxなどのエミュレータで動作することが取り上げられたりした[18]

同年7月4K8K解像度へのアップスケーリングに対応した[19]

8月末、Nintendo Switchエミュレータとして初めて、ローカル対戦に対応した。これにより対応ゲームにおいて、Ryujinxを使用している世界中のプレーヤーと対戦できるようになった。当初はディスクシェーダーキャッシングに対応していなかったため、ネットワーク同期されなかったり、頻繁にネットワークから切断されるなどの問題点があったが、約3ヶ月後の11月12日、堅牢なディスクシェーダーキャッシングが実装された[20]

脚注 編集

注釈 編集

  1. ^ マイクロソフトが開発した、.NETアプリ用のJITコンパイラ。日本語の龍神にちなんで名付けられた。

出典 編集

  1. ^ Ryujinx dashboard in Crowdin”. Crowdin (2023年6月17日). 2023年6月17日閲覧。
  2. ^ How to pronounce Ryujinx.”. r/Ryujinx (2018年7月14日). 2023年6月8日閲覧。
  3. ^ a b Home” (英語). GitHub. 2023年6月8日閲覧。
  4. ^ Issues · Ryujinx/Ryujinx-Games-List” (英語). GitHub. 2023年6月8日閲覧。
  5. ^ Ryujinx - Blog” (英語). Ryujinx (2023年5月11日). 2023年6月8日閲覧。
  6. ^ a b Ryujinx - Emulation General Wiki”. emulation.gametechwiki.com. 2023年6月8日閲覧。
  7. ^ hle: service: mii: Rewrite service to properly support creation of random and default miis. by bunnei · Pull Request #4292 · yuzu-emu/yuzu” (英語). GitHub. 2023年6月8日閲覧。
  8. ^ video_core: NVDEC Implementation by ameerj · Pull Request #4729 · yuzu-emu/yuzu” (英語). GitHub. 2023年6月8日閲覧。
  9. ^ service: time: Rewrite implementation of glue services. by bunnei · Pull Request #3271 · yuzu-emu/yuzu” (英語). GitHub. 2023年6月8日閲覧。
  10. ^ Pull requests · yuzu-emu/yuzu” (英語). GitHub. 2023年6月8日閲覧。
  11. ^ Summer 2019 Progress Report” (英語). Ryujinx (2019年10月19日). 2023年6月8日閲覧。
  12. ^ Lilly, Paul (2017年4月5日). “RyujiNX Nintendo Switch Emulator Is Already Booting Licensed Games” (英語). HotHardware. 2023年6月8日閲覧。
  13. ^ Experimental Switch emulator in C#” (英語). GBAtemp.net - The Independent Video Game Community (2018年2月5日). 2023年6月8日閲覧。
  14. ^ Thread scheduler rewrite by gdkchan · Pull Request #393 · Ryujinx/Ryujinx” (英語). GitHub. 2023年6月8日閲覧。
  15. ^ Khan, Danial Arshad (2018年12月7日). “Super Smash Bros. Ultimate on PC to be a possibility soon thanks to Ryujinx Switch Emulator”. GearNuke. 2020年7月3日閲覧。
  16. ^ Aurora (2020年3月21日). “Emulation News: Animal Crossing: New Horizons gets in-game on Ryujinx & Cemu (Wii U emulator) 1.17.4 publicly released with SD Card emulation & more” (英語). Wololo.net. 2023年6月8日閲覧。
  17. ^ Meo, Francesco De (2020年4月26日). “Nintendo Switch Emulator Ryujinx Runs Astral Chain, Pokemon Sword With Acceptable Performance On PC” (英語). Wccftech. 2023年6月8日閲覧。
  18. ^ Life, Nintendo (2020年9月16日). “Random: Check Out This Amazing "Skyview Temple" Custom Dungeon For Zelda: Breath Of The Wild” (英語). Nintendo Life. 2023年6月8日閲覧。
  19. ^ Introducing Resolution Scaling” (英語). Ryujinx (2020年7月7日). 2023年6月8日閲覧。
  20. ^ Shader Cache is (Finally) Here!” (英語). Ryujinx (2020年11月12日). 2023年6月8日閲覧。

関連項目 編集

外部リンク 編集