「トップライダー」専用コントローラーの互換品を作る

ファミコン用ゲーム「トップライダー(1988年発売)」の専用コントローラーの互換品を作ってみました。

回路図とプログラムはGitHubに公開しています。

github.com

 

 

「トップライダー」はバイクのレースゲームです。専用コントローラーはバイク部分とハンドル部分で構成されています。バイク部分は風船のように空気で膨らませます。プレイヤーはそれにまたがります。

バイクを傾けて遊ぶという操作方法は「ハングオン」と一緒です。専用コントローラーは非常にレアで高額です。カセット単体は結構安く入手できますが(自分の場合は税込340円で購入)、専用コントローラーがないと遊べません。

(隠しコマンドを使うと備え付けのコントローラーで遊べるのですが、ハングオンが出来きません。速度を上げるとコーナーで引っかかります。)

 

Arduinoを使って専用コントローラーを再現してみました。

左から順にシフトスイッチ(ギヤの切り替え)、アナログスティック(左右の傾きとウイリー)、OLED、アクセルボタン、ブレーキボタン、セレクトボタン、スタートボタンです。OLEDはデバッグ用です。本来、アクセルはグリップ型ですが、ここではボタンにしました。

本来ならば加速度センサーでバイクの傾きを検出するべきですが、アナログスティックで済ませました。

 

https://problemkaputt.de/everynes.htm#controllersinflatablecontrollers

通信方法はMartin Korthさんが開発したエミュレータ「NO$NES」の技術情報を参考にさせて頂きました。

 

ファミコンからの出力信号を測定してみました。ラッチが2つもあって混乱したのですが、OUT0は見ないで、OUT1を見れば良いだけでした。ラッチ開始直後にクロックが8回来るので、そのタイミングでデータをファミコンに送信します。

 

「トップライダー」をプレイ中の様子です。

アナログスティックの左右でバイクを傾けます。バイクの傾きは水平+左3段階+右3段階=7段階あります。アナログスティックを下に入れるとウイリーするように割り当てましたが、使いどころがわかりません。

NO$NESの資料によるとアクセルは「Slow」「Fast」「Turbo」の3種類があるとのことですが、製品のパッケージにはそういう表記はないので単に「Turbo=最高の加速」という意味だと思います。ここではボタンを押したら「Turbo」に設定しました。

バイクの速度比較です。Fastだと直線で200km/h止まりですが、Turboだと240km/hオーバーになりました。

実際にゲームを遊んでみましたが、ビジュアルもサウンドもかなり頑張っていると思います。真面目にリアルを目指してます。コンセプトが奇抜すぎて、キワモノ扱いされているのがもったいないです。互換品のコントローラーが普及すれば、もっと正当に評価されるようになるかもしれません。

 

www.youtube.com

 

(おまけ) 2018年に雑誌の記事を書く時に作った「Nintendo Labo」のバイク型Toy-Conです。やっていることは「トップライダー」と全く一緒ですね。これにもウイリーする機能がありました。

 

nicotakuya.hatenablog.com

nicotakuya.hatenablog.com