2016年02月05日
川俣晶の縁側技術関連執筆情報 total 2770 count

ENIX移植プログラマー戦記 ~TOKYO NAMPA STREETからドラクエ2まで~ [Kindle版]

Written By: 川俣 晶連絡先

「最初に言っておく。俺はかなり強い」

「いや、そうじゃないだろう。最初に言うべきことはそれじゃない」

「そうだったそうだった。ありがとうデブ」

「デブでもネブでもないから」

「最初に言っておく。この本には、ENIXの歴史は書かれていない。それから、ゲームの話もほぼ無い。いくらくどく説明しても読んでくれない読者が【期待したものが書かれていないから☆1つです】と評価を付けるから、何度でも強調する。この本にはENIXの歴史は書かれていない。ENIXの大多数のゲームの話題は含まれていない。そもそも、ゲームの話はほとんど無い」

「では、何が含まれているんだい?」

「自分の体験談だ。つまり、ENIXの移植プログラマーが、1980年代に直面していた現実とは何だったのかを振り返った本だ。ノンフィクションだ」

「つまり、ENIXで移植プログラマーをしていた君が実際に見聞きしたゲームの裏側の話なのだね?」

「そうだ。そして、それはほぼ技術論になる。移植とは技術の問題だからだ。ソースコードを全て手動で書き換えるのは非現実的だから、何らかの技術を使用して上手く変換していくことになる」

「だから、敵は【モンスター】ではなく、【ソースコード】だってことだね」

「確かに、かなりの割合は【ソースコード】だ。だから、モンスターと戦う話はほぼ無い」

「では主な話題をソフトの名前で列挙してくれ」

「目玉は以下の3つだろう」

  • TOKYO NAMPA STREET (PC-8801/X1)の技術的バックグラウンド
  • ドラクエ2 (MSX/MSX2)の技術的バックグラウンド
  • 没企画【あっぷるサーガ】の企画書の抜粋の初公開

「目玉以外では?」

「このあたりかな」

  • ハングオン (PC-8801mkIISR版)
  • ライヒスリッター (PC-9801版)
  • MINI-DOS (PC-8001/8801, X1版)
  • 6502エミュレーター (MS-DOS版)
  • CP/Mエミュレーター (MS-DOS&V30版)
  • 独自16bitCPUエミュレーター (汎用)
  • ファミコン用グラフィックエディタ (PC-9801版)

「TOKYO NAMPA STREETって君が作ったの?」

「移植した」

「ドラクエ2って君が作った……わけがないよな」

「移植した。1人ではなかったがね」

「ハングオンって君が作った……わけがないよな」

「移植した」

「ライヒスリッターって君が移植したの?」

「いや。初期には開発していた。途中でプロジェクトから離れたけどね。MINI-DOSとかエミュレーター類とかエディタは移植ではなく自作。Z80から8086へのコンバータなども自作品」

「それは上のリストに載ってないぞ」

「あれ、そうだっけ」

「リストにないソフトも一杯載っているわけだね、この本には」

「そういうことになる」

その他 §

「あえて、ENIX以外の読みどころを質問するぞ」

「第1章はENIXと出合う前の話なので、1970年代の空気をいろいろ書き込んでいる。話はそもそも大阪万博(70年)から始まる」

「ふーん。他には?」

「第4章の最後の方になると卒業が近いので、卒論を書く話になっていく。ニューラルネットとファジー制御を使用した学習する温度制御の実験装置をどうやって組んで行ったのかが書いてある」

「へー。でも、なぜENIX以外の話題があるわけ?」

「第1章は、ENIX誕生前夜の空気感を描くと同時に、第2章以降を読みやすくする流れを作る効能を期待して書いてあるが、【そんなの関係ねえ】という読者は読み飛ばしても良い」

「じゃあ、なんで卒論の話があるわけ?」

「当時のENIXの技術者は学生が多かったからね。そういう技術者が直面する現実の1つが卒論ということだ」

「それは生々しいENIX移植プログラマーの現実の一部ってことだね」

「だからそこにある。もっとも、そこも【知ったことではない】と思うなら、【あとがき】まで読み飛ばすというオプションがある」

「読み飛ばした方がいいの?」

「もちろん、リアルなENIX移植プログラマーの現実を体感して頂くには、読んでもらった方が良い。しかし、読者にそこまでの無理強いはできないよ。そもそも、どうやって装置を組んだのかは技術的に面白い話だと思うよ」

「第1章も?」

「第1章も、技術に興味があればそれなりに面白い話を書いたつもりだ」

「ところで、意味が分からない箇所がいくつかあるんだけど?」

「一部、やり過ぎて余計なことまで書いている箇所があるが、その辺は軽く流してくれればいいと思う。本筋とは関係ない」

「余計なことって?」

「負論理入力負論理出力のORゲートが欲しくて、正論理入力正論理出力ANDの7408を使った話とか」

「ぜんぜんわかんねえ!」

「てへ」

「じゃあ、本筋ってなに?」

「私はどうやってENIXとの縁を得て、そこで何を行い、どうやって縁が切れたのかだ」

「それなら意味が分かる」

ドラクエ2のソースの話題? §

「ところで、どうしてドラクエ2のソースコードの説明が一切無いの?」

「答えは簡単だ。それは自分の仕事で書かれたものではないからだ。移植に使用したマクロの話はけっこう書いてある。マクロは自分で書いたものだからだ」

「じゃあ、どうして、PC-8801用の森田和郎さんの高速グラフィックルーチンの話は書いてあるの?」

「技術的に興味深い上に、それはテクノポリス誌で公開されたこともあるからだ。そういえば書き忘れたが、XORを2回やると元に戻るから、変えるべきではないデータもXORしてオッケーというテクニックは、ここから学んだ気もする」

「結局、技術論に終始する本ということなのね」

「そうだ。ゲームの話より、V30 CPU上のCP/Mエミュレータの実現方法を熱心に書いているような本だ」

「そういう本が好きな人はぜひ買ってね」

「ドラクエ2の攻略本が欲しいだけの人は間違っても買うなよ」

インソーゲ §

「インソーゲ」

「は?」

「謎のキーワードってことにしておこう」

「なんだよそれは」

「インソーゲの謎はこの本を読めば分かる」

「でも、結局技術論なんだろう?」

「もちろんだ」