物置のガラクタを整理していたらファミコンが出てきた。以前ハードオフでジャンクで購入してビデオ出力端子増設改造を施したものだ。カセットもカミさんのと合わせて30本以上発掘した。
思い出せば1984年の冬、当時JR-100ユーザーだった自分はゼビウスとMAPPYをプレイしたくて初めてファミコンを手に入れたのだった。あの頃ゼビウスはゲームセンターで大ヒットしていて、各メーカーのPCにも移植されまくっていた。自己資金の届く範囲では、PC-6001のタイニーゼビウスもあったが、安価なファミコンで絵の綺麗なゼビウスがプレイできるとなれば、ファミコンを選ぶのは必然だった。
近所のショッピングセンターで本体を購入するも目当てのゼビウス、MAPPYは売り切れ。仕方なくギャラクシアンを買ったものの、すぐに飽きてしまった。田舎には一向に入荷の気配が無かったが、親と上京した際にデパートのおもちゃ売り場でゼビウス、MAPPYともに発見して大興奮。あわてて親にお金を借りて捕獲したのだった。定価売りで、ゼビウスが4900円、MAPPYが4500円と、ソフト1本3800円が相場の当時としては高額だった。
その後、なぜかゼビウスの自機のスプライトの色がおかしくなる故障が発覚し、本体を修理に出したら1ヵ月後くらいに新品になって帰ってきたり(PPUの不良か?)、伝説的クソゲー「バンゲリングベイ」を友達と一緒に掴まされたり、シューティング「スターフォース」にハマったりした。結局購入したソフトは、ギャラクシアン、ゼビウス、マッピー、ギャラガ、バンゲリングベイ、麻雀(2人打ち)、フォーメーションZ、スターフォースの8本だった。
当時所有していたソフトはいずれも再入手している(麻雀は製品版じゃないけど)
1985年の9月にはスーパーマリオが発売になるのだが、自分はその直前にファミコンを手放してしまった。理由は高校受験を控えていたことと、自転車の購入資金を得るためだった。友達からはスーパーマリオで遊ぶ前にファミコンやめるなんてバカだと言われたが、今思えばドツボにハマる前に辞められて正解だったような気もする。高校に入ってからはMSXに流れたので、結局ファミコンユーザーだった時期は1年も無かったことになる。
今回久しぶりにゼビウスをプレイしてみたのだが、昔はせいぜいAREA10止まりだったのがAREA16まで行けた。ただ、連射の無いノーマルPADでは正直キツい。あの頃は高橋名人の16連射に代表されるように高速連射がゲームが上手い奴の「ステータス」みたいなものであったが、連射なんぞは機械に任せて弾除けと地上物の撃破に集中したい。そこでファミコンにアタリ仕様のジョイスティックポートを増設することにした。
手持ちのジョイスティック「XE-1 ST2(連射機能なし)」でも使えるように手始めに連射回路を作成することにした。連射回路といえば昔はタイマーIC555で組むのが一般的だった。自分もMSXのジョイスティックの製作で経験もあるのだが、1チップマイコンを使えばプログラムで融通が利く上に外付け回路も少なくて済むので、PICの勉強も兼ねてやってみた。
使用するPICは「12F509」。昔PSのMODチップでよく使われていた12C509Aのフラッシュメモリ版で、何度も書き換え可能。このPICは内蔵オシレータで4MHz動作可能で、その場合入出力ピンが6本も使える。プログラミング言語は機械語。いまどきの高級言語はよく分からないが、MSXでZ80アセンブラを経験しているので、すんなり理解できた。ゼロから作るよりは物真似から入るのが近道ということで、こちらのサイトに掲載されているアセンブラのソースを参考にプログラミングしてみた(部分的にパクらせていただきました)。
プログラムの仕様としては、連射は秒間10/20連射の2段階として入力ピン2本で連射on/off、低速・高速の切り替え。トリガAとトリガBの2ボタン対応だが連射速度はAB共通。アタリ仕様のジョイスティックに接続する外付け回路のような使い方を想定している。
出来上がったプログラムのソースはこちら picrensya.asm
回路図はこちら。
プログラムを秋月のPICライターで書き込んで、ブレッドボードに回路を組み立てた。連射on/offスイッチと連射速度スイッチはまとめて6pの中点OFFスイッチを使うと市販の連射PADのように、スイッチ左で連射off、真ん中で低速、右で高速連射といった具合に使うことができる。
LEDで動作を確認しながら波形をオシロで見てみた。10Hzや20HzでLEDが点滅する様子は肉眼でも識別可能だった。逆にオシロは低周波すぎて観測が難しかったが(うまく撮影できない)、ほぼプログラム通りに低速時10Hz、高速時20Hz(5Vp-p)の矩形波のパルスが出力されていた。
次回は74HC165を用いて、アタリ仕様のPADをファミコンに接続するための改造を行う予定。