MiSTer FPGA向けに開発が進められている、アーケード版『Killer Instinct』と『Killer Instinct 2』のコアが更新されました。8月29日に行われたソースコードの変更では、CPUクロックの設定が75MHzから100MHzへ変更。さらに、その直前にはATAの複数セクター読み込みやプリフェッチ、デバッグ関連の機能を外してビルドできる設定なども追加されています。
●Arcade-KillerInstinct_MiSTer GitHub
https://github.com/MiSTer-devel/Arcade-KillerInstinct_MiSTer
ただし、今回確認できたのはあくまでもソースコード上の変更です。100MHzでの実機動作や、オリジナルと同等の速度で動くようになったことが確認されたわけではない点には注意が必要です。
MiSTerでアーケード版『Killer Instinct』1/2がプレイ可能に
今回開発されている「Arcade-KillerInstinct_MiSTer」は、Midwayがアーケード向けに展開した『Killer Instinct』(1994年)と『Killer Instinct 2』(1996年)のハードウェアをMiSTer FPGA上で再現するコアです。
MiSTer-develのGitHubで公開されており、コア作者としてKeith Conger氏が記載されています。公式READMEによると、現時点で『Killer Instinct』と『Killer Instinct 2』はいずれもMiSTer上で起動し、プレイ可能な状態まで開発が進んでいるとのこと。
コアにはR4600互換のMIPS III CPUや、ADSP-2105互換のHDLエンジンによるMidway DCS Audio、320×240ドットの映像出力などが実装されています。
また、『Killer Instinct』のアーケード基板ではゲームデータの一部をディスクから読み込む仕組みが採用されているため、本コアでもATA PIOを利用してMiSTerからディスクイメージへアクセスする構成になっています。
CPU部分にはMiSTer版NINTENDO64コアのR4300i系コード、サウンド関連にはWolf Unitコアのコードが利用されているほか、基板の仕様を再現するうえでMAMEの「kinst」ドライバーなども参考にされています。
CPUクロックの設定を75MHzから100MHzへ変更
今回特に気になるのが、8月29日に行われたCPUクロック関連の変更です。GitHubのコミットでは「Set cpu clock to 100 MHz」として、PLLのCPU向け出力クロック設定が「75.000000 MHz」から「100.000000 MHz」へ変更されています。
『Killer Instinct』のオリジナル基板では100MHzのMIPS系CPUが使用されており、これまでのコアではCPU側の速度がボトルネックのひとつになっていました。実際、公式READMEの既知の問題には現在も「ゲームが遅くなる」「CPUは約90MHzで、本来は100MHz」といった内容が記載されています。
そのため今回の100MHz化は、この速度問題に対処するための変更とみられます。もっとも、ソース上のPLL設定を100MHzにしたことと、FPGA上で実際に100MHzのCPU動作を安定して実現できたことは同じではありません。
調査時点では、この変更を反映した公式のコンパイル済みRBFも確認できていないため、「今回の更新で等速動作を実現した」とまではいえません。
ATAの複数セクター読み込みにも対応
100MHz設定の直前に行われた更新では、ディスクアクセス関連にも大きく手が入れられています。
これまでのATAアクセスを拡張し、複数セクターをまとめて読み込む仕組みなどが追加されました。ディスクイメージから頻繁にデータを読み出す『Killer Instinct』では、こうした読み込み処理の効率化もパフォーマンスに関係してくる部分です。
また、この更新ではデバッグコードやデバッグ用OSDなどを無効にしてビルドするための設定も追加されています。
ソース内のコメントでは、デバッグ用のトレース処理がCPU周辺に多数の配線を必要とすることにも触れられており、CPUの最大動作周波数を狙う場合には、こうしたデバッグ機能を取り除けるようになっています。
CPUクロックだけではなく、ディスクアクセスやFPGA内部の実装を含めて、速度向上に向けた調整が進められているようです。
遊ぶにはROMとディスクイメージを別途用意する必要あり
本コアにはROMやディスクデータは含まれていません。利用するには、対応するMAMEの「kinst.zip」または「kinst2.zip」に加え、『Killer Instinct』または『Killer Instinct 2』のCHDから作成したRAW形式のディスクイメージが必要です。
公式READMEでは、MAMEに付属する「chdman」の「extracthd」コマンドを使用して、CHDから「kinst.img」または「kinst2.img」を作成する方法が案内されています。
GitHubの「releases」フォルダには『Killer Instinct』と『Killer Instinct 2』用のMRAファイルが用意されていますが、調査時点では最新ソースをコンパイルしたRBFは確認できませんでした。
100MHz化でどこまで改善するのかに注目
Redditではすでにコアを試した利用者から、ゲーム自体は動くものの速度が遅いという報告も出ています。なかには本来の約75パーセント程度の速度ではないかという声もあります。ただし、こうした報告が8月29日の100MHz設定変更を取り込んだビルドを使用したものかどうかは確認できません。
また、公式READMEには現在もCPUが約90MHzであるという記述が残る一方、最新ソースのPLL設定は100MHzになっており、両者の状態も一致していません。READMEの更新が追いついていないだけなのか、それとも実際のFPGA上ではまだ100MHz動作に別の課題が残されているのかは現時点では不明です。
とはいえ、これまで家庭用への移植版ではなくアーケード版『Killer Instinct』と『Killer Instinct 2』そのものをMiSTer FPGA上で動かすところまで開発が進んでいるのは、なかなか興味深いところ。
8月29日の変更を反映したビルドで実際のゲーム速度がどこまで改善するのか、今後の更新にも注目です。















ダンジョンズ&ドラゴンズ ビジュアル大全 半世紀を超えるその歴史とアート









ゲームコンソール2.0