どうしてMS-DOSでCP/Mのツールが動いたの?

有名ファミコンゲームの開発環境についての話。
わかんない人は前回の記事も一緒に読んで欲しい。

まず最初に書いておくと、当時はサードパーティの概念自体がまともになく、もちろん言うまでもなく任天堂さんの用意した開発環境だのデバッガだのなんてものは存在しない。

ではどのようにして開発したのか?
ハドソンの場合には中本さん・岡田さんを中心に(たぶん、プラスして結構野沢さん)、自分たちで勝手にファミコンの開発環境を最初に作ったのだ。
これが1983年の秋ごろ。くしくもナムコさんも同じ時期に解析して開発していたらしい。

どんな環境だったのか?

下の図のように、岡田さんが設計したROMシミュレータをファミコンに挿して、それにPCからバイナリをダウンロードする形になっていた。

ファミコン開発環境概念図(1984~最後まで)

実際の開発は

  1. PC上でファミコンROMシミュレータで動作するバイナリを生成する。
  2. PCからROMシミュレータにプログラムをダウンロードする。
  3. PC側からROMシミュレータの上にあるプログラムを起動して、ファミコンの上でゲームを走らせてデバッグする。

と、こんな風に行われていた。
で、上の図のPCの環境は、1984-85年はシャープのX1+岡田さんが作ったIFでSASIのハードディスク、そのうえでCP/M-80を走らせて、ACT65というアセンブラでインテルヘキサを作り、それをダウンロードするというやり方だったらしい。
らしいというのは、僕がハドソンにいった1988年にはすでにない環境だったからだ。

これが1985年秋にPC-9801VMが発売され、ハドソンの開発環境は急速にMS-DOSに移行していくのだけど、ここでポイントが「じゃあACT65はどうしたの?」ということだ。

実はこれの答えはハドソンがファミコンに参入するまで(4)で書いている。

■野沢さん
その後、PC9801でも開発してたけど、PC9801VMシリーズにCPM80のACT65をVM8086の8080エミュレーションを使って動作するようにしたのを野沢が作って使っていた時代もある。その後、飛田がオリジナルでアセンブラーとリンカーを作ってその後はそれを使用していた。

つまりV30の8080のエミュレーションを使って無理やりACT65を使っていたわけだけど、ここでよくわからなかったのが、野沢さんが作ったとは書いているんだけど、何をどう作ったのかはさっぱりわかっていなかった。
てなわけで「ナゾ環境なんだよね」とツイートしたら、なんと野沢さんから返事が。

野沢さんのツイート
いや、謎ではなく、野沢がms-dos上でcp/mエミュレーターを作っただけだけど。

野沢さんのツイート
だって簡単だったし、当時のms-dosってosコールがcp/mポカったからCPUモード切り替えてosコール読み替えるだけで動いたんだよ。ほぼ256byteですし。

つまり、本当にCP/Mのフリする仕掛けを野沢さんが書いて、実装していたわけだ。
ここにさらに飛田さんからフォローが!

■飛田さん
(githubの)AT.BATのe act65 hat h=0はe.exeというCP/Mエミュレーター上でact65.comを起動してアセンブルしてる。
A.BATのasm65 hat h=testはasm65.exeでアセンブルしてるんだけど、これは後のas.exeだったと思います。
社内用の名前がasm65.exeで外用の名前がas.exeだった気がする。

これでオワカリと思うけれど、CP/M-80用のACT65をMS-DOSのBATファイルで起動していたわけだ。

ハドソンは1985年末~86年のどこかぐらいまで、MS-DOSの上でV30の8080エミュレーション機能を使って、CP/M-80用に書かれたACT65を使って、ファコミンのゲームの開発をしていた

というのが、歴史ってことだ。

ところで、この飛田さんの証言でわかる通り、86年初頭には飛田さんのasの前身になるasm65が実用レベルに入っていて(有名ゲームのビルド用のBATファイルにact65とasm65があるのでわかる)、以降asm65に切り替わっていき、それが87年のPCエンジンの開発に合わせて、asとlkになっていく。
また、社内用の名前が…と飛田さんは書いてるけど、これは多分記憶違い。
1988年に僕がハドソンに行ったときは、社内用も社外用も関係なくas.exeだった。んでオプションでファミコン用とPCエンジン用を切り替えるようになっていた。

また、上は岡田さんが設計した実際のファミコンのROMシミュレータ。飛田さん所蔵。ハドソンで一度だけちょっとだけ手伝ったとき、僕も使った。

ところでソースにはグラフィックリソースは含まれていないんだが、その程度もわからずに適当なことを書く人が多すぎて呆れていた。それは自分たちがソースの中身を全く理解してないって大きな声で言ってるようなもんなんだけどねえ。

LinkedIn にシェア
Pocket

5件のコメント

  • >ところでソースにはグラフィックリソースは含まれていないんだが
    今回のこの一連の話を聞いてて、私の叔父がこの忍者ゲームのグラフィックを担当してたのを思い出しました。
    残念ながら既に亡くなられてるので当時の開発の話はもう聞けないのですが、
    このゲームが大ヒットしたので社長賞か何かで開発チームがハワイ旅行に行ったという話を当時してたのを記憶してます。

    • その叔父さんは岡本敏郎さんですね。
      1988-90年にハドソンで仕事していたとき、よくバカみたいな話をしていたのを思い出します。

      • その通りです。90年代前半には、当時あった『ハドソン·コンピュータ·デザイナーズ·スクール』の講師もしてました。岩崎さんの過去のハドソン関連の話は面白いので今後も楽しみにしています。

  •  細かい話ですが、「実際の開発は~」のところの「3.PC側から起動してデバッグ。」は「FC側から~」ですか?
     エミュレータが当時PCでできる訳もなく、実機で動かしてデバッグというのが若い人には伝わらないかと思います。

    • ああ、なるほどねと思ったので、ちと書き足しておきました。

コメントは現在停止中です。