「Arcade Spinner for Arcade1Up」でファミコン版/MSX版の「アルカノイド」を遊んでみました。
「Arcade Spinner for Arcade1Up」は「Arcade1Up」という筐体型ゲーム機のパドルコントローラです。ゲームセンターにあるやつのような手ごたえがあります。パドルがスルスルと回転します。しかも無限回転。
こういうのが欲しかった。
メーカー名が書かれていませんが、ググった感じでは、ThunderStick Studioという会社の製品のようです。公式のパドルコントローラの出来が不評なので、サードパーティの製品の需要があると思われます。
自分は2年くらい前にAmazon.com(co.jpじゃない)で購入しました。当時は6479円(5414円+送料)でした。触るのがもったいなくて、ずっと放置してました。先ほど、ThunderStick Studioの公式サイトを見たら、「Arcade Spinner for Arcade1Up」を29.99ドルで売ってました。
付属の紙は2枚だけ。一枚は取り付け方法とディップスイッチの設定方法が書かれています。もう一枚は「コメントはFacebookにお寄せください」「Glen's Retro Show、または、YouTube、Amazon Storeをご覧ください」とメッセージが書かれてます。Glenって誰? ユーチューバーか何かでしょうか。
勝手に調べました。
VINから5Vを入れると、回路は3.3Vで動作します。
パドルコントローラというと、今までは光学式のロータリーエンコーダが主流でした。スリット入りの円盤をフォトインタラプタで読み取ります。アーケード版のアルカノイドもその方式です。
なんと、本製品は磁気角度センサー(Magnetic Angle Sensors)という新技術で回転を読み取っています。Monolithic Power Systemsという会社のMA700シリーズ。センサーのサイズは約3ミリ。磁気といっても、金属が貼り付いたりするようなことはなく、どこでどう作用しているのか、よくわかりません。
知らない間に技術革新が進んでいました。
Amazon.comのレビューに、Mark Aikensさんという方が「125000bps データビット7、ストップビット1、ノンパリティ、で読めた」と重要な情報を書き込んでくれていました。これをありがたく参考にさせて頂きます。通信方式はUARTです。
試したところ、パドルが1パルスぶん回転するたびに、Arcade Spinnerが5バイトのデータを送信しています。回転しない場合は送信しません。
時計方向だと「00 7F 7D 2F 3F」、反時計方向だと「00 7F 7D 6F 00」でした。このデータの意味は不明ですが、4バイト目のビットだけ見れば回転方法がわかります。
通信データにはかなりムダがあります。たとえば、10パルスが発生した場合、10というデータを送るのではなく、データを10回送ります。5バイト/データなので、50バイト送ります。
パルスを累積して、バウスのソフト的な位置を割り出す必要があります。
Arcade Spinnerが一方的にデータを送信し続けるのと、ゲーム機本体側のリクエストがいつ来るかわからないのが困りもの。そこで、デコード用とコントローラ用、マイコン2個で処理しました。デコード側は16ミリ秒おきに、コントローラ側にUART経由でソフト位置を送信しています。これがちょっとカッコ悪いです。今度、改良してマイコン1個で済むようにしたいです。
MSX版に比べて球のスピードが速いです。全力で回しても、バウスの動きが追い付かないという場面がありました。ディップスイッチをいじって、512パルス/回転に設定しても、実際には100パルスくらいしか出ていないように感じます。出力に上限があるのでしょうか。
デコード側でパルスを少し上乗せしたほうがいいかもしれません。ただし、動きが荒くなってしまいます。改良の余地ありです。