「ネジコン」って知っていますか? 

ネジコン
ネジコン

「ねじるコントローラ」を略したストレートなネーミングのゲームコントローラで、旧ナムコ(現在のバンダイナムコエンターテインメント)から初代プレイステーションの「※リッジレーサー」向けに発売し、家庭用ゲーム機の周辺機器としては異例ともいえる、30万台を越える大ヒットを記録。

※リッジレーサー:(現)バンダイナムコエンターテインメントの製品。

すでに生産は終了していますが、今も根強いファンが多いネジコンについて、基板設計と組み込みプログラム開発を担当したバンダイナムコスタジオの川口博道さんに、ものづくりの面白さや苦労、やりがい、ノウハウなどについて聞きました。

バンダイナムコスタジオの川口博道さん(技術統括本部技術本部技術戦略部)
バンダイナムコスタジオの川口博道さん(技術統括本部技術本部技術戦略部)

「ネジコンとは知らず」スタートした開発

――ネジコンの開発に携わることになった経緯をお聞かせください。

実は開発当初、ネジコンを作るとは知りませんでした。実際にネジコンが発売されて実物を見てからやっと「作っていたのはこれなんだ」と知ったくらいです(笑)。というのも、組織として部署ごとに役割が決められており、まとめる人がいたりなど、情報がしっかりと統制されていたからだと思います。

当時、僕は「SYSTEM11」という業務用のゲーム基板を開発していました。SYSTEM11を初めて採用したゲームが「鉄拳」ですね。SYSTEM11はハード2人、ソフト2人の4人という少人数で設計していたのですが、のちに会社の屋台骨を支えるような基板になるとは思いもしませんでした。

※鉄拳:(現)バンダイナムコエンターテインメントの製品

川口さんが開発に携わっていた業務用のゲーム基板「SYSTEM11」
川口さんが開発に携わっていた業務用のゲーム基板「SYSTEM11」

少しSYSTEM11の説明をしておくと、当時は「SYSTEM21」や「SYSTEM22」といった大型の業務用基板が主力で、これらの基板はカスタムICも含めて自社で開発していました。一方で、「3DアクセラレータチップVoodoo」といった高性能なグラフィックチップが他社から出てきていて、すべてを自社で開発するのではなく、他社のGPUを持ってきて基板を作ろう、というのがSYSTEM11のコンセプトです。

※SYSTEM21: 1989年に旧ナムコが開発した3DCGに特化したアーケードゲーム基板。別名「ポリゴナイザー」
※SYSTEM22: SYSTEM21の後継機。テクスチャマッピングなどグラフィックを強化

SYSTEM11は、SCE(ソニー・コンピュータエンタテインメント、現在のソニー・インタラクティブエンタテインメント)さんと協力して開発していました。そんなこともあってSYSTEM11は「ソニー基板」なんて呼ばれたりもしていたようですが、この時にプレイステーション用のコントローラを弊社で作る話が持ち上がったのがネジコン開発のきっかけです。

実際にはネジコンがどのようものかも知らない状態ながらも、当時の上司から「川口君 お願いします」ということで担当することになりました。

こちらはネジコンの企画書。川口さんはこの企画書を見ずに、基板設計、プログラム開発をなしとげました
こちらはネジコンの企画書。川口さんはこの企画書を見ずに、基板設計、プログラム開発をなしとげました

4ビットマイコン、コンパイラ購入しないなど異例の開発環境

――開発はどのようにスタートしたのでしょうか。

聞かされていた仕様は「(可変抵抗がついて)アナログで操作できるコントローラ」という程度でしたが、CPUは他社のワンチップマイコンに決まっていました。上司からそのICチップのデータシートを渡されて、「あとはよろしく」と。

渡されたCPUを見て驚いたのが4ビットマイコンだったということです。僕としても4ビットマイコンがあるのは知っていたという程度で、「え、そんなの使うのか」と。でもその時は「4ビットなんだ、なるほど」というくらいの感想で、あとあと苦労させられるとはまったく思っていませんでした。

ネジコン(右)と試作基板(左)
ネジコン(右)と試作基板(左)

さらに驚いたのが、コンパイラを購入しないと知った時です。上司に「コンパイラを買いますか?」と聞いたら「買わないよ。自分で作るから」と。

※コンパイラ: 人間が理解しやすいよう数式や言語で記述したプログラムを、コンピュータが処理できる機械語に変換するソフトウェアのこと

当時の僕は知らなかったのですが「HP64000」という開発マシンがありまして。独自アセンブラを開発できる仕組みがありました。当社の中でも5人ぐらいしか触れる人がいないような古いマシンだったのですが、それを使って上司が「自分が作るからいいよ」と。

※アセンブラ: コンピュータが処理できる機械語と1対1になったプログラム言語。コンパイラを利用する言語と比較してシンプルなぶん動作が高速だが、1対1で命令をしていくため開発の効率はコンパイラと比べると低い

何日かして上司が「コンパイラ作ったから、よろしく」と簡単なマニュアルと実行ファイルを渡されました。だからネジコンのプログラムはすべてアセンブラで書かれています。

受け取ったコンパイラを使って開発を始めたのですが、コンパイラも購入していないのでデバッガもないことに気がついて「これは大変だぞ」と。ワンチップマイコンを作ったことのある人ならわかると思いますが、この状態ではプログラムを実行しても動いているのがわかりません。幸い、マイコンの使用しないI/Oはたくさんあるので、「ここまでプログラムを書いたら、ここを光らせて確認しよう」と1つ1つ確認しながら、地道に作っていきました。

――その時点でもネジコンの最終形は見えていなかったんですか?

「アナログがつくから」以外はなにも教えてもらっていません。どんなものができるのか全然わからなくて。途中から「ねじるコントローラらしいよ」というのは聞きましたが、試作段階ではなにも聞いていないです。アナログがいくつ、デジタルがいくつ付いて、規格でこの通信手順でやりますよと聞いただけです。

――仕様を満たすかどうかだけを、この基板を使ってやっていたわけですね。この時点では何人で開発されていたんですか?

これがネジコン試作基板。プレイステーションの開発コードネームが「PSX」だったため、ネジコンの試作基板にも「PSX_PAD1 PCB」とプリント
これがネジコン試作基板。プレイステーションの開発コードネームが「PSX」だったため、ネジコンの試作基板にも「PSX_PAD1 PCB」とプリント

コンパイラは上司が作りましたが、基本的にはひとりです。SYSTEM11も並行して開発していましたし、人は割けないですから(笑)。わからないことはところどころ先方に電話して確認しながら作りました。

社内でも事情を知っている人は少なく「なに作っているの? なにピカピカLEDを光らせてるの?」「いやちょっとね……」みたいな(笑)。当時私の部署では業務用ゲーム機の大きな基板を作っていたので、コントローラみたいな小さい基板を作ることは珍しかったですね。

「コードが突然動かない!」を解決した予想外の原因

――開発は順調だったんですか?

ある時、急にぱたっとコードが動かなくなることがありました。イニシャライズと基本動作の確認はしていたので、ある程度まとめてコードを書いていたら、ある日突然まったく動かなくなってしまって。しばらくコードをずっと追っていったら、ここらへんで動かないというのはわかったのですがはっきりした原因が特定できませんでした。

どうしようかと悩んでいたら、先輩(SYSTEM11のソフト側を制作担当)が僕のアセンブラのプログラムを見て、「コード表があるから、俺が逆アセンブラ作るよ」と言って、作ってくれたのです。

実行ファイルを逆アセンブラに通してコードを一個一個見ていったら、上司が作ったコンパイラのコード変換が1ビット違っていたことがわかって(笑)。上司に報告したら5分くらいですぐ直してくれました。先輩が逆アセンブラを作ってくれたおかげで解決したのですが、「普通にコンパイラを買っていたら、こんなに悩まなくて済んだのに」と当時は思いましたね。

――当時、コンパイラって高かったんですか? 買った方がよさそうですが……

7万円とか8万円くらいと記憶しています。どちらかというと上司が作りたかったのでは? と個人的には思います(笑)。SYSTEM11を一緒にやっていたから忙しかったはずですが、息抜きと思ってやってみるか……という感じだったのかもしれません。

また、先輩社員にもとても助けてもらいました。当時はまだ入社3年目くらいでしたのでわからないところだらけで。でも、先輩にわかりませんと聞きに行っただけでは、怒られますよね。こうやったけどだめで、ああやったけどだめで、どうしても無理ということになって初めて相談しに行ったときに、先輩も「ああ」って少し考えてこうかなと教えてくれました。

開発現場につきものの「仕様を一部変更する!!」

――開発と言えば仕様変更がつきものですが。

順調に動いていたはずの試作基板がある日突然動かなくなったことがありました。おかしいなと思っていたのですが、連絡をして確認してみるとコントローラ端子の配置変更があったようで……。

また、最初にお話した通り、開発は4ビットマイコンで進めていたのですが、開発の途中である時通信がうまくいかなくなり、基板がコントローラとして認識されなくなってしまいました。おそらくドライバが新しくなったせいだと思いますが、プレイステーションが送る信号に対してこちらのACK(返答処理)が遅すぎて、結果としてプレイステーションからは「何も機器がつながっていない」と認識されてしまっていたのです。

その後もいろいろと試してみたのですが、プレイステーションから来るデータを4bitマイコンで処理する場合、マイコンの仕様上どうしても時間がかかる事がわかりました。だめもとでSCEさんに「データ認証コードの内容を、こちらの都合のいいように替えてくれないか?」と相談してみたのですが、「もう仕様が決まっているので。」とのことでしたので、更に他の方法を検討することにしました。

――かなり厳しい状況ですね。どうやって解決されたのでしょう?

まずはプログラムを見直すことにしました。もう一人のソフトを担当する先輩が「俺が1回コードレビューしてやるから」と助け船を出してくれたので、1日かけてコードをカリカリに書き直して、マイコン内のメモリマップを書いて持っていき、こんな仕様ですと説明しました。しばらく眺めていた先輩の口から出てきたのは「もう速くならない、無理だなぁ」という諦めの言葉でした(笑)。

次にプログラムでなんとかならないなら処理のスピードを上げればいいのでは、と考えて、クロック(デジタル回路におけるクロックパルスの同期を取る発振回路)を速くしてみることにしました。

メーカーの入力推奨値は2~3MHzくらいと記憶しています。手始めに4MHzくらいまで高速化したところ、問題なく動作していました。いわゆるオーバークロックというやつですね。あとはメーカーに「このくらいの数値で動かしてもいいのか?」と確認を取った上で、なんとか対応することができました。

ネジコンの回路図。左上がオシレーター
ネジコンの回路図。左上がオシレーター

ちなみに、最終的なオシレーターのクロック数は4MHzではなく「3.579545MHz」になりした。これはテレビ用にNTSCのカラーバースト信号を作るための水晶発振子(クロック)の値です。テレビ用の水晶発振子は広く流通していて調達コストも低かったのと、実際には4MHzのクロックは必要なかったのでこの数値に落ち着きました。

――ネジコンが発売されたのは1995年1月1日ですが、開発スケジュールはどのくらいだったのでしょうか。

最初の試作を設計するまでが数ヶ月で、そこから最終的な基板設計が完了するまでさらに数ヶ月くらいです。この回路図が1994年の4月に作っていて、プログラムの完成は7月ですね。その後の生産は別のチームにお任せしてしまったのですが、発売に間に合ってよかったなと(笑)。

――ネジコンはねじる筐体も特徴的ですが、これも別のチームで担当されていたのでしょうか。

はい、ナムコの別のチームが担当していましたが、基板や組み込みソフトとは別に筐体の設計が並行して動いていて、デザインは最後でちらっと見た程度でした。

初めてのネジコン体験は「発売されてから」

――ネジコンが発売されてからのことをお聞かせください。

初めて触ったのは発売後でした。いつの間にか発売されていて、たしか誰か社内の人が買ってきたのを触って「自分が作っていたのはこれなのか!」という感じでした。

――初めてネジコンに触れたときや、リッジレーサーを初めてプレイしたときの感想はいかがでしたか?

「すごく、おもしろい」と思いました(笑)。面白いという言い方は変かな。僕はゲームサンプルが試作基板で動くかどうかはテストしていましたが、実際にコントローラーで動かしていたわけでなないので、「なるほど、こうなるのか」って新鮮に感じましたね。

当時ハードの部隊にいたので分解しようとしたのですが「元通り組み立てるのは難しいよ」と言われました(笑)。凄いギミックになっているのだなというのが最初見たときの感想です。

――ネジコンはリッジレーサー向けのコントローラーでしたが、開発中はレースゲーム以外にこういう用途に使えそうということは考えましたか?

ええ、考えました。「※超絶倫人ベラボーマン」をネジコンで操作したら面白いだろうなと思いました。ベラボーマン、ボタンが3つあって、弱中強のパンチボタンをアナログにして遊んだら面白そうですよね。

※超絶倫人ベラボーマン:手足や首が伸びる異色のヒーロー「ベラボーマン」を操って悪の組織と戦う横スクロールのアクションゲーム。アーケード版ではボタンを押す強さで手・脚・首の長さやジャンプの高さを調整できる「ベラボースイッチ」と呼ばれるボタンを搭載していた現:バンダイナムコエンターテインメントの製品

「ダメ」と諦めるのは簡単。できることがあるならやる

――今日伺ったお話の中で一番印象的だったのが、通信処理の遅さをクロックの変更によって解決したというエピソードです。その諦めない技術者魂的がすごいなと感じました。

絶対諦めないということではなくて「できることがあるならやる」という話です。ベストを尽くすというか。

本当にできることがなかったらもちろん諦めます。ダメですと言うことは悪いことではなくて、本当にダメならそう言ったほうがいいです。でも、あのときはまだまだそこまで行ってなかっただけです。クロックを上げてはいけないと言われたら、さてどうしようと考えたと思いますが。

――では、クロックを上げられなかったとしたら?

「違うマイコンチップにしてください、1ヵ月で作りますから」と言ったでしょうね。通常の8ビットのマイコンなら間に合うのはわかっていますから、変えて設計を全部やり直すでしょう。やり方はわかっていますから、それでもまだ諦めるところじゃないですね。

「もうダメです」と言うのは簡単なのですが、その「ダメです」のところからでもまだやれることはある場合があります。幸いネジコンのときはまだまだ手は残っていました。最後に良い製品ができたので、すごくよかったと考えています。

自分ひとりではなくチームのおかげ。中身は気にせずただ楽しく遊んで欲しい

――最後にネジコン開発を振り返った感想をお聞かせください。

ゲーム開発ではソフトを作った人の話が表に出ることが多く、中身のハードウェア、特に基板や組み込み機器に関する話はなかなか世に出ません。もちろん、僕のまわりの人は、川口が作ったのだと知っている人もいますが、こういう機会をいただいて、「ゲーム開発でこのようなものも作っている人たちがいるんだ」と知ってもらえるのは嬉しいですね。

でも、一般の人は凄いギミックとか機構とか中のことは気にせず、ただ楽しく遊んでくれればいい。それが正直な気持ちです。

ネジコンが発売されてからしばらく経って、家庭用の販売にいる僕の同期に「30何万台も売れたよ。優秀優秀」って言われて、「そんなに売れたんだ」と嬉しかったですね。後になってから会社でインセンティブの制度ができたので、ネジコンの時にその制度があったらチームでもらえたのになあと思いました(笑)。

とはいえ、ネジコンは僕ひとりではできなかったと思います。情報の統制がなされた中で、試作基板は僕が作りましたけど、頼れる上司や先輩がいたおかげです。なにかあったときに相談に乗ってくれる仲間がいるとういいですね。自分ひとりでやっていたら途中で行き詰まっていたかもしれません。

誰かに話すということは大切なことで、自分の中だけで考えてしまうのはよくないと思います。僕もずっと悩んでいたわけではなくて、だめだと思ったらどこかの時点で判断して聞きました。1ヵ月も2ヵ月も悩んでいるのはだめですね。

最近では直接コードを書くことはなくなりましたが、後輩へは「こうすればできる」ということはアドバイスしています。「わからないことがあったら、みんなで問題を共有して解決しよう」と思いますね。それ以上一人で悩んでも進まないから、と。

――本日はありがとうございました。

ちなみに川口さんはネジコンを自分では持っていないそう。びっくりです!
ちなみに川口さんはネジコンを自分では持っていないそう。びっくりです!

一覧へ戻る 右矢印