SFCのコントローラを調べてみる

SFCのコントローラーをハードオフでゲットしたついでに、いろいろ調べてみたというお話。

(まぁ、結構前だけど。)

汚れがひどいからという理由だろうけど、108円とお安かった。
こういう値段だと、「ちょっとばらしてみた」が出来て楽しいね。
昔から、何かというと「バラしてみる。」が大好き。

正式なお名前は「Nintendo(R) SUPER FAMICOM CONTROLLER」らしい。
モデル名は「SHVC-005」。

そういや、マジマジとコネクタとか観察したことがなかったな。
こんな形だったねぇ。

で、これ、どんな信号が流れてるんだろう?
と、ネット上の情報をいろいろ当たってみた結果。
信号線的にはこんな感じのアサインになっている模様。

このコネクタの先、コントローラ側はというと…。
ファミコンの直付けとは違い、ちゃんとコネクタ経由で接続されています。
テスター当てて導通を確認。

一応、こんな感じで繋がっていることを確認。
コネクタ側のDATA2とSELECTはN/Aなのね。
多分、通常のコントローラじゃないやつで使うんだろうな。

こんな基盤の子でした。

さてさて、信号線は複数のサイトで似たように書いてあったので、そのままなんだろうけど。
実際にはどんな信号が流れてるんだろう。と気になって。

ロジックアナライザーにつないでみましたよ。
設定も適当にのぞいてみる。Sample Rateは16MHzくらいで適当に。

結果としては、おおむねこんな感じ。
ボタンを何も押さない場合はこのような形で出てくる。
ここでどこかのボタンを押すと…

CLOCKに合わせてこんな感じでDATA1が変化。
大雑把にロジックアナライザーの結果を見てると、CLOCKで2回分にDATA1が動いているように見えるけれど、よくよく見てみるとCLOCKが立って、落ちたのちにDATA1が立ち、次のCLOCKが立って、落ちた後にDATA1が落ちてる。
結果として、後ろ側のCLOCKに合わせてDATA1が出てるという話。
なるほど。

で、CLOCKがHとなる回数は、1サイクルあたり16回。
それぞれがコントローラーのボタンと対応しているのね。

タイミング 対応するボタン
1回目 Bボタン
2回目 Yボタン
3回目 SELECTボタン
4回目 STARTボタン
5回目 上ボタン
6回目 下ボタン
7回目 左ボタン
8回目 右ボタン
9回目 Aボタン
10回目 Xボタン
11回目 Lボタン
12回目 Rボタン

で、最後のCLOCK 4回分は必ずDATA1は”L”となってる。
多分、この部分で1サイクルを見ているのでしょう。

なるほどね。結構、簡単な構造してるんだなぁ。
これならArduinoの入力デバイスとかに簡単に使えそうな感じだね。

続きはこちらから

コメント