ドルフィン・プログレス リリース 2603
概要
- Dolphinが新たにTriforceアーケード基板のエミュレーションに対応
- MMUエミュレーション最適化により特定ゲームのパフォーマンス大幅向上
- Rogue Squadron IIIがついにフルスピードで動作可能に
- 長年解決できなかったMario Strikers Chargedの物理バグも修正
- その他、多数の最適化と修正を含むリリース内容
Dolphin、Triforceアーケードエミュレーション対応
- Dolphinは2003年にGameCubeエミュレータとして誕生
- 2008年にはWii対応を追加
- 2026年、Sega・Namco・Nintendo共同開発のTriforceアーケード基板のエミュレーションに初対応
- 18年ぶりとなる新システム・ゲームライブラリのサポート開始
- Triforceの詳細やDolphinでのサポート経緯を解説する特集記事も公開予定
MMUエミュレーション最適化によるパフォーマンス向上
- MMU(メモリ管理ユニット)エミュレーションの最適化により、カスタムページテーブルマッピングを利用するゲームの動作速度が大幅に向上
- Rogue Squadron III: Rebel Strikeを含む「Full MMU」必須タイトルが高性能ハードウェア上でフルスピード動作を実現
- Fastmemの仕組みを拡張し、ページテーブルマッピングにも対応
- FastmemはホストCPUの例外ハンドラを利用し、必要な場合のみアドレス変換を行うことで高速化
- これまでBlock Address Translation(BAT)マッピングのみ対応だったが、ページテーブルもFastmemで処理可能に
- Factor 5製タイトル(Rogue Squadron II/III等)や一部の他社タイトル(Spider-Man 2, Ultimate Spider-Man等)が独自メモリハンドラを使用し、今回の最適化の恩恵を受ける
ARAM(Audio RAM)活用とそのエミュレーション
- GameCubeには24MiBのメインRAMと16MiBのARAMが存在
- ARAMは本来オーディオ用途だが、DMA転送を駆使し追加RAMとして利用する手法が存在
- Factor 5は独自のメモリハンドラでARAMを最大限活用し、ゲームのクオリティ向上を実現
- Dolphinでは、Nintendo公式ライブラリを使うゲームには「MMU Speedhack」で高速化対応
- 独自ハンドラを使うタイトルは今回のページテーブルFastmem対応でパフォーマンス大幅改善
ページテーブルFastmem対応の技術的突破
- PowerPC 750の仕様に基づき、ページテーブル操作時のtlbie命令をトリガーにTLB(ページテーブルキャッシュ)管理を実装
- ページテーブルの変更を検知し、Fastmemマッピングを動的に更新
- 64バイト単位で新旧マッピングを比較し、必要な部分のみ追加・削除することで高速化を実現
- ゲームによっては追跡コストが増えるが、ARAM利用時のカクつきが大幅に減少し、体感的な快適さも向上
パフォーマンス実測例
- Spider-Man 2:FPSは微減(56→52)だが、 traversal時のカクつき減少
- Cars 2:FPS大幅向上(37→57)、低スペックPCでも実用的な速度に
- Rogue Squadron III:ページテーブルFastmem対応と最適化により、初めてフルスピード動作を実現
Rogue Squadron II/IIIへのさらなる最適化
- ページテーブルFastmem対応後、さらなる最適化ポイントが発見され、個別対応を実施
- Branch Following等の機能を無効化することで特定状況でのJITコード生成の負荷を軽減
- コックピットビューとチェイスビュー切り替え時の大きなスタッター問題も改善
長年未解決だったMario Strikers Chargedの物理バグ修正
- Mario Strikers ChargedコミュニティとCPUエミュレーション専門家の協力により、微細な物理バグを特定・修正
- 通常プレイでは気づかないレベルのバグだが、長年の課題がついに解決
まとめ・今後の展望
- Triforceアーケード基板対応やMMUエミュレーション最適化など、Dolphinの進化が加速
- 今後もさらなる最適化や新機能追加に期待
- 詳細な技術解説やパフォーマンスレポートは公式ブログで随時公開予定