- 2003年にGameCubeエミュレーターとして始まったDolphinが、2026年にTriforceアーケードシステム対応を追加し、新たなプラットフォーム領域へ拡張
- MMU Fastmem最適化によりページテーブルベースのメモリアクセスを高速化し、とくに Rogue Squadron III が初めてフルスピードで実行可能に
- Mario Strikers Charged のオンライン同期バグが5年ぶりに解決され、実機Wiiとのネットワークプレイが正確に動作
- Triforceエミュレーションでは The Key of Avalon のタッチスクリーンプロトコルとICカード機能の復元が進行中で、F-Zero AX および Virtua Striker 4 関連機能も改善予定
- ゲームをRAMにキャッシュする機能、SDLコントローラーヒント設定、Wiiメニューのタイミング調整など、ユーザー体験と性能を向上させる多数の機能が追加
Triforce対応を追加
- Dolphinが Sega・Namco・Nintendoの共同アーケードシステムTriforce を公式対応
- Magnetic Cardの自動挿入、地域設定、マルチキャビネットエミュレーションのバグ修正など初期改善を含む
- The Key of Avalon の タッチスクリーンプロトコル がElo SmartSetに類似していることが確認され、ゲーム開始までは成功したものの、ICカード初期化の問題で中断
- ICカード機能の復元により、Virtua Striker 4、Gekitou Pro Yakyuu などで チーム構築・キャラクター作成モード が再び動作予定
MMU FastmemとRogue Squadron最適化
- ページテーブルFastmemマッピング の実装により、Rogue Squadron II・III の性能が最大2倍向上
tlbie 命令の追跡を通じてページテーブル変更をリアルタイムで反映
- Branch Followingの無効化、コード無効化の最適化、CPU Vertex Cullingの有効化などにより フレームドロップとスタッタリングを低減
- Rogue Squadron III は高性能ハードウェアで 初めて完全な速度で実行可能 に
Mario Strikers Chargedのバグ修正
- Dolphinと実機Wii間の 物理同期エラー の原因が、
fmadds 命令の 不正確な浮動小数点演算 にあることを確認
2Sum アルゴリズムを用いた 精密な丸め補正 により問題を解決し、オンラインマッチが完全同期
- この修正は Inazuma Eleven GO: Strikers 2013 の類似問題を解決した経験を土台に発展
その他の主な改善
- Wiiメニューのデータ管理タイミング を実機に近づけて調整し、NANDアクセス時の過度なCPU負荷を緩和
- Load Whole Game into Memory 機能の追加により、NASなどのネットワークストレージから実行する際の ディスク待機遅延を除去
- SDLヒントのGUI設定 を導入し、Joy-Conの分離、DualSenseのホットプラグ問題などコントローラー互換性を改善
- Need for Speed: Hot Pursuit 2、Rabbids Go Home など一部ゲームに VBI同期パッチ を適用し、フレーム制限を正常化
性能とコミュニティ貢献
- 今回のリリースでは 465件のコミット がマージされ、多数のコミュニティテストとハードウェア調査が反映
- Rogue Squadron シリーズ、Mario Strikers Charged、Triforce など 長年の難題を解決した事例 が含まれ、Dolphinの正確性と性能が大きく向上
1件のコメント
Hacker Newsの意見
ずっと前に終了した公式サーバーの代わりに、Dolphinが実機のWiiコンソールをオンライン接続できるようにしている点に驚かされる
こうした情熱的な献身を持つ人たちがいるのは本当にうれしい
ただ、短期的にはこうした技術の進歩が不平等をさらに深刻化させる可能性もある
エミュレーターのバグでゲームが完全または部分的に動作しないなら、将来の世代はそれらのゲームを体験する機会を失ってしまう
ここまで気にかけてくれる人たちがいるのは本当にすばらしい
自分が最も興味深いと感じるのは、エミュレーター開発によって、元のゲームが奇妙だが意図された動作をしていたことがしばしば判明する点だ
90年代半ばのGCCが、自分が2000年代初頭に手作業で最適化しようとしていたことをすでに自動で処理していたと知って驚いた
エミュレーターがSRAMを保存していなかったためセーブの不一致が発生していたが、すぐに修正された
Plan9ベースのシンプルなCコードだったので直しやすかった
自分はいつもDolphinの開発レポートを読むのが好きだ
技術的な内容を分かりやすく説明してくれる
Dolphinレポートに関連して、執筆者の一人がオープンソースのエミュレーターコミュニティの問題を扱った興味深い文章を投稿していた
Rethinking Open Source
要するに、コミュニティ基盤やアイデンティティが確立する前に注目度の高いプロジェクトをオープンソース化すると、非現実的な要求をするユーザーのせいで問題が起こりうる
また、未完成のブランチを他人が持ち出して、自分が作ったかのように配布することもある
Dolphinチームはこうした困難の中でも高い水準の専門性でプロジェクトを運営している
報酬を受け取っている状況でも難しいが、無料のプロジェクトならなおさらだと思う
以前のforkは完成度が低かった
書き手が自分の書いた内容に対して心からワクワクしている様子が伝わってきてよい
以前Meleeのネットプレイのバグを報告したとき、彼はあらゆることに好奇心を持って深く掘り下げる人だった
Dolphinはまさに賢い開発の模範例だ
昔は自分の古いマシンでMetroid Primeを動かすのに4コアすべてが必要だったが、数年後には同じゲームがコアの25%しか使わなくなった
JITとエミュレーションの効率化のおかげで性能が飛躍的に向上したのだ
こうした最適化は本当に見事な成果だった
Triforceアーケード互換性の議論の中で「ICカード対応」に言及されていて、これが実装されれば多くの機能が開かれるらしい
日本の交通系カードのようにも見えるが、Triforce基板ではゲーム進行データの保存に使われていたという
アメリカのアーケードでは見たことのない面白い機能だ
magcardは安価だが耐久性が低く、印刷が可能
ICカードはより厚くて丈夫だが、印刷はできない
写真付きで説明された出典: Rise of the Triforce
ほぼすべてのTriforceゲームがセーブのためにカードを使用する
おそらくアメリカでもMario Kart Arcade GPのバージョンを見たことがあるはずだ
maimai、chunithm、DDRなどで使われるAIMEカードに似た概念だ
ただしTriforceのICカードには認証だけでなくデータ保存機能もある
fnmsubs CPU命令がJITでは誤って実装されていた一方、インタープリターでは正しく動作していたという事例は興味深い
こういう場合はdifferential fuzzingを適用するのに向いていると思う
今回の記事の要点は、DolphinがTriforceアーケード筐体サポートを復活させたことだ
TriforceはNintendo、Sega、Namcoが共同開発したハードウェアで、Dolphinは2016年にサポートを打ち切っていた
今ではF-Zero AX、Mario Kart Arcade GP 1・2のようなゲームが再び動く
詳細: The Return of the Triforce
以前の議論リンク
記事の冒頭段落ですでにこの話題が扱われているので、「埋もれた話題」と言うのは難しい
寄付を受け付けているのか気になったが、公式サイトでは見つけられなかった
関連フォーラム投稿: Dolphin Donations