Nintendo Switch 2向けの実験的なエミュレーター「Eglantine」の開発チームが、PCの構成と設定によって『マリオカート ワールド』を通常速度で動作させられると報告した。ただし、これはゲーム本来の速度で処理を進められる場合があるという説明であり、すべての場面を正しく描画し、安定してプレイできることを保証するものではない。平均フレームレートや最低フレームレートを統一した条件で測定した結果も、現時点では公開されていない。
2026年10月末には、関連する上流プロジェクトで実験的なSwitch 2対応が公開され、別の派生版ではGPUのビデオメモリ(VRAM)管理を改善する修正が加わった。Eglantine本体でも、キャッシュの保存中断によって次回以降の起動に失敗する不具合が修正されている。さらに10月31日には、AMD製GPUで発生する描画異常への修正も取り込まれた。ゲームを動作させる段階から、描画の正確性や長時間の安定性を高める段階へと開発が進んでいる。
『マリオカート ワールド』が通常速度で動作、ただし条件付き
Eglantineの公式READMEには、『マリオカート ワールド』について、PCの性能や設定次第で良好な速度、あるいは通常速度で動作すると記載されている。ただし、実際に使用したCPUやGPU、平均・最低フレームレート、全コースを対象とした長時間の検証結果などは示されていない。ゲームごとの互換性一覧も今後公開する予定となっており、通常速度で動作するという説明を、幅広いPC環境で快適にプレイできるという意味に捉えることはできない。
Eglantineは、Nintendo Switch向けエミュレーターのEden、Yuzu、Sudachiを基に開発されたオープンソースのプロジェクトだ。Windows、Linux、macOS向けのビルドを案内しているが、各OSでSwitch 2のゲームが同等に動作することが確認されているわけではない。一方、Eglantineが参照するTakorokaのeden-nx2のリリースページでは、10月29日付でEdenへの実験的なSwitch 2対応が公開された。開発者自身も多くの修正が必要だと認めており、Windows以外の環境では信頼できるテストを実施できていないと説明している。
このeden-nx2のWindows版で示された動作要件は、64ビット版Windows 10または11、Microsoft Visual C++ Redistributable(x64)、VRAMを8GB以上搭載したVulkan対応GPU、16GB以上のシステムRAMだ。ただし、これらは同プロジェクトのWindows配布版に対する要件であり、Eglantineの全OSで同等の性能が得られることを意味しない。また、要件を満たしたPCであっても、ゲームを安定してプレイできるとは限らない。
描画処理にも未完成の部分が残っている。eden-nx2の開発者は、シェーダーと呼ばれるGPU向けプログラムの一部が未実装のため、3Dモデルの形状を構成するメッシュが欠落すると説明している。また、別の派生プロジェクトであるEglantine-MKWの10月30日付プレリリースでも、負荷の高いコースでは60fpsを下回ることや、初めてコースを走行した際に短い処理落ちが発生することが既知の問題として挙げられている。
つまり、ゲームが通常速度で進行すること、画面が正しく描画されること、長時間安定して動作することは、それぞれ別の基準で評価する必要がある。10月末時点で公開された報告と修正内容を整理すると、次のようになる。
| 評価項目 | 公開された報告・修正内容 | 検証範囲と注意点 |
|---|---|---|
| 動作速度 | PCの構成・設定によって通常速度で動作。負荷の高いコースでは60fps未満になるとの報告もある | Eglantine本体とEglantine-MKWの開発者による個別の報告であり、共通条件での比較ではない |
| 描画の正確性 | 未実装シェーダーによる形状の欠落や、AMD製GPUでの描画異常が確認されている | 上流プロジェクトの説明とIssue #59の報告。後者には10月31日に修正が取り込まれた |
| 動作の安定性 | VRAM管理の改善と、キャッシュ保存中断後の起動失敗を防ぐ修正 | VRAM対策はEglantine-MKWでの模擬試験、キャッシュ修正はEglantine本体でのM1 Proを使った再起動試験 |
これらの報告から分かるのは、フレームレートだけではエミュレーターの完成度を判断できないということだ。通常速度で動いていても、3Dモデルの一部が表示されなかったり、VRAM不足によって描画が破綻したりする可能性がある。さらに、ゲームを正常に終了できても、次回起動時に失敗する問題があれば継続的な利用は難しい。通常速度での動作を安定したプレイにつなげるには、こうした問題を個別に解決する必要がある。
VRAM 8GB以上でも不具合が発生する理由
Wael3rdが開発する「Eglantine-MKW」は、Takorokaのeden-nx2を基にした別の派生プロジェクトである。10月30日付のプレリリースは『マリオカート ワールド』バージョン1.8.0を対象とし、Vulkanによる描画と解像度1倍を推奨している。非同期シェーダーの有効化や、テクスチャのメモリ使用量を削減するBC3再圧縮なども推奨設定に含まれる。ただし、この派生版で実装された修正が、Eglantine本体のすべてのビルドに反映されているわけではない。
同プロジェクトの開発者が公開したVRAMに関する技術文書では、AMD製GPUでテクスチャが破損したり、エミュレーターがクラッシュしたりする問題の原因が詳しく説明されている。問題の一因は、ASTC形式のテクスチャをGPU上で扱う際のメモリ管理にあった。ASTCはテクスチャを圧縮する方式の一つで、GPUがこの形式をネイティブに扱えない場合、展開した画像データをメモリに配置するなどの対応が必要になる。テクスチャを非圧縮で保持するとVRAM消費量が増え、特に容量の小さいGPUではメモリ不足が発生しやすくなる。
しかし、Eglantine-MKWで確認された問題は、単にテクスチャの容量が大きいことだけではなかった。エミュレーターが利用可能なVRAMを実際よりも多く見積もっていたことも、不具合につながっていたという。GPUのメモリ管理では、異なる種類のメモリ領域を「ヒープ」として扱うが、AMD製GPUでは複数のヒープが同じ物理VRAMを共有する場合がある。従来の実装では各ヒープの利用可能予算を合算していたため、実際には共有されているVRAMを重複して数え、使用できる容量を過大評価していた。
例えば、VRAM 8GBのRX 9060 XTでは、利用可能なVRAMが約7GiBと報告されていたにもかかわらず、テクスチャキャッシュの管理上限がそれを超える値に設定されていた。エミュレーターはまだ空き容量があると判断してテクスチャを確保しようとするが、実際のメモリには収まらない。その結果、画像の一部にメモリが割り当てられない状態が発生し、テクスチャの破損やクラッシュにつながっていたという。
修正では、複数のヒープの予算を単純に合算する方法を改め、GPUの主要なデバイスローカルメモリ領域に対してドライバーが報告する実際の予算を基準に変更した。さらに、Switch 2向けの処理では30フレームごとにメモリ予算を確認し、テクスチャキャッシュの管理基準を更新する仕組みを導入している。具体的には、予算の8分の1と1GiBの小さい方を余裕容量として確保し、使用量が一定の閾値に達した段階でメモリ回収を促す。実際の割り当て可能量を超える前に、テクスチャキャッシュを整理するための対策だ。
これに加えて、容量の小さいGPUではBC3形式へのテクスチャ再圧縮を自動的に有効化する仕組みも導入された。自動切り替えが行われるのは、GPUがASTCをネイティブにサポートせず、起動時に取得したVRAM予算が12GiB未満で、テクスチャの再圧縮設定が非圧縮になっている場合だ。この条件を満たすと、その実行セッションではBC3が使用される。判定基準となるのはGPUの公称VRAM容量ではなく、起動時にドライバーから取得したメモリ予算であるため、単純に「12GB未満のGPUはすべて切り替わる」という意味ではない。
開発者は16GBのGPUで8GB相当の環境を模擬し、この修正の効果を検証した。7GBのメモリ制限を設定した試験では、使用量のピークが6.6GBに収まり、テクスチャの確保失敗は発生しなかったという。フレームレートも修正前と同等だったと報告している。ただし、これは16GBのGPUに制限を設けた模擬試験であり、実際の8GB製品を複数用いて幅広く検証した結果ではない。
上流プロジェクトが示す「VRAM 8GB以上」という動作要件と、この模擬試験の結果は区別する必要がある。必要なVRAM容量を備えていても、ゲームの実行中にメモリ使用量が管理可能な範囲を超えれば、描画の破損やクラッシュが発生する可能性がある。今回の修正は、GPUに搭載されたVRAMの容量だけでなく、エミュレーターがその容量を正しく把握し、適切に管理することが安定動作に不可欠であることを示している。
AMD製GPUの描画異常と、再起動できなくなる不具合にも修正
Eglantine本体のIssue #59には、AMD製GPUで『マリオカート ワールド』を実行すると、アイテムボックスの下やほかのカートの周囲に、緑色から青色の半円状の図形が表示されるという報告が寄せられた。報告者の環境はRadeon RX 9070 XT 16GB、Core i5-14600KF、RAM 16GB、Windows 11で、ゲームのバージョンは1.8.0だった。異常が発生したのは、地形の描画などに独自の修正を加えたnx2-ea33ad1865というビルドであり、公式配布版での再現が確認されたわけではない。報告者はBC3再圧縮の有効・無効を切り替えても症状が変わらなかったと説明しており、VRAM使用量の削減だけでは解決できない問題が残っていた。
この描画異常については、10月31日にプルリクエスト(PR)#89がマージされ、修正が取り込まれた。原因として特定されたのは、シェーダー内で値が定義されていない変数の扱いの違いだ。修正の説明によると、NVIDIA製GPUではゼロとして扱われていた未定義値が、AMD製GPUでは不定の値として処理され、道路などに本来存在しない色の帯が描画されていたという。修正では、SPIR-Vで未定義値を表すOpUndefの一部をゼロに置き換えることで、この差を吸収している。
PR #89には修正前後の比較画像が掲載され、問題となっていた描画異常の解消が報告されている。ただし、これは特定の不具合に対する修正であり、AMD製GPU全般での描画の完全性が保証されたわけではない。また、修正がソースコードへ取り込まれたことと、すべての配布ビルドに反映されたことも同義ではない。実際の改善を確認するには、修正を含むビルドを使用して同じ場面を再現し、ほかの描画処理への影響も調べる必要がある。
一方、描画とは別に、エミュレーターを終了した後に再起動できなくなる不具合も修正された。Eglantine本体へ10月30日に取り込まれたPR #29は、Vulkanのパイプラインキャッシュを保存している途中で処理が中断されると、空のキャッシュファイルが残る問題を扱っている。次回起動時にこのファイルを読み込もうとすると、ヘッダー情報の取得時に例外が発生する。特にmacOSでは、C++標準ライブラリの実装によって例外の型が想定したものと一致せず、エミュレーターが終了してしまう場合があった。
一度この状態になると、不正なキャッシュファイルが残り続けるため、その後も起動のたびに同じエラーが発生する。修正では、キャッシュを直接上書きせず、まず一時ファイルに保存してから既存のファイルと置き換える方式に変更した。保存中にエミュレーターが強制終了しても、それまでの正常なキャッシュを維持できる仕組みだ。さらに、読み込み時にファイルがヘッダーより短い場合は破損していると判断し、削除してキャッシュを作り直す処理も追加している。
開発者はApple M1 Proを搭載した環境で、キャッシュ保存中にエミュレーターを強制終了させ、その後の再起動が成功することを確認した。これはキャッシュ破損による起動不能を解消するための試験であり、M1 Proで『マリオカート ワールド』が通常速度で動作することを示すものではない。また、VRAM不足やシェーダーの未実装による描画異常とも、原因と対処方法が異なる。エミュレーターの安定性を高めるには、こうした問題をそれぞれ解決していく必要がある。
Eglantineと関連プロジェクトでは、Switch 2向けゲームを動作させるための初期実装に加え、メモリ管理、描画処理、キャッシュ保存などの改良が進んでいる。ただし、通常速度で動作するという開発側の報告だけでは、実際に快適なプレイが可能かは判断できない。今後はエミュレーターのビルドとゲームのバージョン、解像度やテクスチャ圧縮などの設定を統一し、負荷の高いコースでの継続走行や終了後の再起動を検証することが重要となる。こうした条件で再現可能な結果が蓄積されれば、現在の実験的な動作が、どの程度実用的な互換性へ近づいているかを判断できるようになる。
