Eyes for Details Vol.5 - Brad Oliver、MacMAMEを語る そして半年後

May, 1997
インタビュアー:Chris Knape
Knaper's MacMAME Info Depot

インタビュー第一弾をまだ読まれていない方は、まずそちらから読まれることをお勧めします。春から半年経って何が変わったのでしょうか。Brad氏とプログラミングの背景をさらに探ってみましょう。CHRIS KNAPE:MacMAMEはまだ生まれたてですが、すごい勢いで成長しています。MacMAMEを最近知った方のために、これまでの流れとBradさんとMAMEの関係について簡単にお願いします。

BRAD OLIVER(以下Bradman):2月にスタートしたMAMEプロジェクトというのはあくまで、Nicola氏が作っていた「MultiPac」エミュレータの「続き」なのです。MultiPacというのは、複数のパックマン系ゲームをエミュレートするものです。初めの頃は、すごい勢いでゲームを追加していて、週に2、3回アップデートされることもよくありました。私が最初にMac版の移植をはじめたのがバージョン0.3のときで、3日間で作業を終えたんですが、そのときにはもうバージョン0.4が出てました(笑)。そのとき以来、チームの大きな努力によってここまで成長して、現在のバージョン0.27のMac版では、私だけでなく、Aaron Giles氏やJohn Butler氏などと協力して作業しています。彼らはMac版用のコードを追加してくれるだけではなく、メインプロジェクトにも加わるようになりました。

MAMEはひとつのエミュレータとしてどこまで成長していくと思いますか。計画中の追加予定プロセッサはありますか?

Bradman:今のところサポートしているゲームで必要なプロセッサは全て把握しています。追加プロセッサは思い当たりませんね。現在サポートしているのはZ80、6502、6809、8086/8088、68000で、これからバージョン0.29のサウンドエミュレーション用に6803/6808を加えます。これから追加される予定なのは、今のところ、任天堂ゲームのサウンド用の8035/8039/8048プロセッサだけです。

これほどのものを一つのパッケージに詰め込んでもMacMAMEのパフォーマンスが落ちないのはなぜですか?

Bradman:ヨーダが言ってたように「サイズは問題ではない」です。エミュレータとは単に、それぞれのゲームをキャッシュにロードするのに必要なコードだけで構成されています。つまり、68000CPUを追加しても今までのZ80や6502ゲームには全く影響はありません。もちろん、あるゲームのためにメインコードをいじってパフォーマンスを上げることで、それが他のゲームに逆の影響を与えることもありえます。例えば最近、MAMEがオンザフライでカラーテーブルを変更できるようになりましたが、これらを利用するゲームでは若干のパフォーマンス向上が見られるでしょうね。

他のプラットフォームのMAMEに比べて、MacMAMEのパフォーマンスはどうですか?

Bradman:MAMEの中では、ぶっちぎりに最速です。

それはなぜでしょう?

Bradman:画面の描き換え領域(Dirty Rectangle)の扱いが多くのゲームで差をつけています。この機能を使えば、パックマンのように画面の必要最低限の部分だけを描きかえることが出来ます。DOS版やWin95版では、各フレーム毎に画面全体を描き直しています。まもなく出るDOS版の0.29では、一部この機能がサポートされますが、Mac版のレベルには及びません。

それから、PowerPCチップによるものもあります。intelのx86チップが8つのレジスタしか持たないのに比べて、PowerPCは32個のレジスタを持っています。ですから、エミュレータにはより最適なのです。それと、PowerPC 603と604チップは32kのレベル1キャッシュを持っています。ところが、Intelチップでは最新のMMXチップしか32kレベル1キャッシュを装備していません。これがMMXチップがただのPentiumより速い主な理由です。MMXそれ自体の機能といういうのはほとんど効果がなくて、マーケティングのための誇大広告でしょうね。

PowerPC以外のCPUの場合、MacMAMEを動作させるのに必要最低限の環境は?

Bradman:やっぱり理想を言うと、603以上のPowerPCが欲しいところです。新しく追加したアセンブラコアは603や604の32Kレベル1キャッシュに最適化されています。いくつかは601の16Kキャッシュにもフィットするようにできています。以前に私は80MHz以上のPowerPCがお勧めだと言ったのですが、これは今でも理想的です。まあ、速ければ速いに越したことはないんですが(笑)

最新版のMacMAME0.29ではパフォーマンス向上のためにどんなことをされていますか。PowerPCへの最適化度は100%なんでしょうか?

Bradman:びっくりするくらいすごいです。まず、AaronはZ80、6809、6808のCPUコアをアセンブリで書いています。これで大抵のゲームは15~20%速くなってますし、「Star Wars」などではさらに最適化がされて2倍くらいのスピードアップがされています。おまけに、MAMEのコアはこのリリースでもさらに改良が加えられています。

68k系Macサポートを止めたのはなぜでしょう。もう手に入らないのでしょうか?

Bradman:CPUコードを680x0マシンの制限である32Kにキープすることがとても困難になったんです。つまり大きなCPUファイルを小さいものに分解することになるんですが、当然速度にも影響してきます。一応680x0版を作ることも無理というわけではないのですが、以前よりも難しくなったのは確かです。

Aaron氏やあなたがMAMEコアに行った改良点は、他のバージョンに反映されているのですか?

Bradman:例の部分描き換えのコードは、次のDOS版MAME0.29リリースで使われる予定です。Aaronはこれまでにも、重要な改良をいくつか行ってきたのですが、それは彼の経験がものをいっています。彼のコードは読みやすいだけでなく高速なのです。MAMEの全体的なメモリ処理はそのいい例ですね。次のリリースではさらに大幅な高速化が期待できますよ。

MAMEプロジェクトに終わりというものはあるのでしょうか。どのあたりが、線を引いて完了したと言えるポイントでしょうか?

Bradman:どこが終わりかということは一言ではちょっと言えないでしょう。今のMAMEの環境で取り込めるゲームがまだまだありますし、私としては、MAMEが結局は68000に対応する大量のゲームをエミュレートするようになることを期待しています。今のZ80ゲームのようにです。

現在、他に携わっているプロジェクトはありますか。商用ゲームをプログラムする機会というのはあるのでしょうか?

Bradman:今は大学に時間を占領されている状態です。いつかはゲームプログラマーになってみたいとは思っていますが、その前に論文を仕上げてしまわないといけないですね。

Nemesisエミュレータにアップデートは行いましたか?

Bradman:いいえ。間もなくMAMEに吸収される予定です。

MacMAME IIのような別版の予定はありますか?

Bradman:それはありえませんね。今のMAMEが持っていないものを追加したものは本当に予定していません。

MAMEユーザーはいろいろな要求を持っていたり、今開発はどの辺にさしかかっているかとか、このゲームはいつサポートされるのか、さらに改良はいつされるのかというのを常に知りたがっていると思うのですが、こういった要求やリクエストの質問攻めはどのように扱っているのですか?

Bradman:そういうのは無視することにしています(笑)。MirkoやNicolaのやっているようにやりあうつもりはありません。そういうメールのことを考えるだけでぞっとします。

リクエストで何か変化はありましたか?

Bradman:ええ、もちろん。「Pop Flamer」と「Espial」はある人がROMを吸い出して私に送ってくれてサポートできました。他の人は「Swimmer」を送ってくれて、現在作業中です。ただ0.29にはちょっと間に合わないかもしれません。

一つのリリースが終わったあとにそれをプレーする時間というのは十分にあるのでしょうか。それともすぐに次のリリースに取りかかるのでしょうか?

Bradman:ええ、たいていリリース後にはMAMEメーリングリストがしばらく静かになります。その間はきっとみんなプログラミングのことは忘れているでしょうね。

今MacMAMEでサポートしているゲームでお気に入りのものは?

Bradman:「Dig Dug」「Battlezone」「Jr. Pac-Man」が最近のお気に入りです。

他のMac用ビデオゲームで遊んでいるものはありますか。またどのくらいプレイしますか?Bradman:「Dark Forces」にはまっていますね。本当はMacの「Dark Forces II - Jedi Knight」を見てみたいんですが(笑)。最近ではVirtualPCを使って「Ultima 6」もやってます。

MacMAME以外のMac用エミュでは何がべストと考えていますか?

Bradman:iNESやSNESは、今特に優れたものだと思います。GenEm(Sega Genesisis)エミュもまだサウンドが鳴っていませんがすごいですね。

MacMAMEの一番の弱点のようなものは何ですか。どのくらい気にしていますか?

Bradman:ユーザーインターフェースについてはちょっと疑問なところがありますね。例えば、TABキーで設定メニューを表示するというのはMacユーザには戸惑いがあります。ただ、まだコード自体が固まっていないので、近いうちにそういう問題を直していくのは難しいでしょう。もし今そういう機能をMac用に追加すれば、すぐに新しい機能が追加されて書き直さなければいけないのは目に見えています。それからInputSprocketのサポートも予定しています。出来ればMacMAME3.0で実現したいと思っています。これでいけるコード部分をずっとマークしていて、時間があれば取りかかるつもりです。

かつて、といってもほんの2、3ヶ月前までのことですが、本家MAMEでサポートされていないゲームがMacMAMEで先にサポートされていましたが、なぜこのようなことが無くなってしまったのでしょうか?

Bradman:バージョン0.26くらいのときにMAME開発者用のメーリングリストができたんです。その中で、それぞれの人がとりかかっているものはみんなで共有しようということになったんです。そうすれば、みんなが最新のコードをテストして正常に動作するか確認できます。そのおかげで、今ではファイナルリリースで各コードをシンクロさせて、動作を保証させることが楽になりました。以前は最新ドライバを1つか2つに詰め込んだりして、「Kangaroo」が動作しなくなることがありましたしね。

特に無償で、このような大規模プロジェクトに参加する魅力とは何ですか。ライバルのプログラマーはいますか?

Bradman:一言でいうと楽しいからです。他人のやっていることを見るのは、とても勉強になりますし、本当に良い経験です。チームに参加している多くの人はみんな才能豊かですし、経験も豊富です。ライバルといった人はいません。お互い支え合うという環境なのです。

Steve Jobsに何か一言ありますか?

Bradman:Mac用にどんどんゲームを出すように働きかけて欲しいです。「Jedi Knight」をやるためにわざわざDOS/Vマシンを買わせないでほしいですよ。

インタビューも長くなってきましたが、このインタビューを読んでいる方に向けて、これからサポートする予定のゲームについてちょっとだけ教えていただけませんか?

Bradman:たくさんありますよ。例えば「Berzerk」「Sidearms」「Gunsmoke」「1943」「Cloak & Dagger」「Black Tiger」「Legendary Wings」「Section Z」、他にもまだまだびっくりするようなものが待っています。それから、今サポートされているゲームでも色が完璧になったり、サウンドが出るようになったりするものもたくさんあります。今のところ中途半端になっている「Bubbles」「Sinistar」にも注目していてほしいですね。

今日はありがとうございました。最後に何かありましたらどうぞ。

Bradman:開発チームの皆は、本当に賞賛に値すると思います。個人的には、Mac版の移植を手伝ってくれているAaronとJohnに感謝したいですね。彼らの助けと、コンスタントな改良なしでは、ここまでこれなかったと思います。

英語元記事