限定公開でまとめを作れば、相互フォローやフォロワー限定でまとめを共有できます!

日曜ファミコンコントローラー解析メモ

極力自力で調べる、という建前でファミコンのコントローラーを解析するよ。
メモ コントローラー ファミコン 4021
9946view 2コメント
8
まきの さとる @autani
オマケ情報としては、ファミコンのコネクタから来てる5Vだけで Arduinoと NESBot回路が駆動出来ちゃってます。 拡張コネクタに差す「スーパーマリオのTASデータ再生専用ドングル」とか作れますね。
まきの さとる @autani
「タイミングがシビア」って書いてましたけど、慣れたら確実にTASさんのプレイを見られるようになりました。 1. Arduinoの電源を入れてNESBotを待機状態にする 2. ファミコンのリセットスイッチを放すのと同時に、NESBotのGOボタンを押す 3. TASさんスタート!
まきの さとる @autani
TASさんのキー入力データをSDカードに書き込むための、Processing環境のコード NESBot_sd_load が動かなくてハマったが、説明抜きで書くと、while (myPort.available()>0)の前の行に print(""); って書くと動きます
まきの さとる @autani
FCEUX にムービーを読み込ませ ~ luaスクリプトでキーデータを吐かせるあたりは省略しちゃいますが、SDにデータが書き込めたら準備完了。
まきの さとる @autani
Arduino用のスケッチ "NESBot.zip" に含まれるソースはちょっと古いIDE用なので、MMC.h と SPI.h を以下のように修正する必要がありました。 変更前: #include "WProgram.h" 変更後: #include "Arduino.h"
まきの さとる @autani
秋月のSDカードDIP化モジュールの供給元の資料ページ http://t.co/pzRChGlfZn
まきの さとる @autani
秋月の「SDカードDIP化モジュール」は、NESBotの回路図にあわせて作る場合には、プルアップ用のチップ抵抗(10K)を全て取り去る必要があった。 Arduino-モジュールの接続は以下 3V3-3V3 D11-SDI D12-SDO D13-CLK A5-CS
まきの さとる @autani
NESBot 動いた。 実機でTASさんのプレイが見られるのはちょっと感動だなあ。 ちなみにArduino側をスタートさせるタイミングが結構シビア。 このへんが今後の課題かも。 http://t.co/dZpkADini3
 拡大
まきの さとる @autani
TASさん再生機 NESBot の回路をブレッドボード上で組んだ。せめてSDの動作確認まではやっておきたい。 コレにさらに機能を追加するとしたら、ちとArduinoじゃピンが足りないかな〜。 http://t.co/qnvBjEFQd8
 拡大
まきの さとる @autani
Arduino+4021を使って「ファミコン実機でTASプレイ再生」を実現している人が居た。 とりあえず自分はこの「斜め下」あたりを目指そうと思っています。 http://t.co/CfnrNnWFCk 今日は調べ物をしていたので工作はお休み。
まきの さとる @autani
本来の目的は沙羅曼蛇の操作がパッドじゃ難しいのでマイジョイスティックを作ろう!だったんだっけ http://t.co/2OK4swfIJf
 拡大
まきの さとる @autani
ブレッドボードコントローラでマリオを操作。普通に動作するYo!(SELECTボタンは配置場所がありませんでした) http://t.co/XwHu9XJ7Mi
 拡大
まきの さとる @autani
ブレッドボードでファミコンのコントローラーを作ってみたよ〜! http://t.co/5s4tlkXgB8
 拡大
まきの さとる @autani
遅延するので、P/S(Latch)はRiseで、ClockはFallで割込みをかけて、少しでも遅延を少なくしたら何とか動いたけど、これじゃ遊べるレベルにならない。どうしようかなあ
まきの さとる @autani
テンキーから16進でキー状態を入力して遊ぶスーパーマリオ(Arduinoに4021っぽい挙動をさせてみる実験) http://t.co/NNFoKyHaJV
 拡大
まきの さとる @autani
Arduinoで4021と同じ挙動をするスケッチをさくっと書いて見たものの、割込みの遅延が7.2μSecあって誤動作してしまい、コントローラのフリをさせるのはちょっと厳しい。キー入力の無い状態なのに、たまにジャンプをしてしまう。 http://t.co/5bpLTxSanG
 拡大
まきの さとる @autani
ファミコンコントローラーの解析だけど、今日はこんな画像を作っていました。ファミコン付属のコントローラーは凄くシンプルな配線だけど、L5はボタンやClockがpullupされています http://t.co/O7sDFQ0Jmv
 拡大
まきの さとる @autani
今日はここまで。また明日。
まきの さとる @autani
アスキースティックL5から取り出したケーブルは、 茶=GND 赤=+5V 橙=LATCH 黄=OUT 緑=CLOCK だった。同じにすればいいのに…
まきの さとる @autani
旧ファミコンコントローラーの配線は 茶=GND 赤=OUT 橙=LATCH 黄=CLOCK 白=+5V
まきの さとる @autani
OUTはLatchがFallしたらAボタンの状態をON=L/OFF=Hで出力、後はClockがRiseするごとに→B→SEL→START→上→下→左→右の順に出力(4021データシートを参考)。写真は青がClock、黄色がOut。 http://t.co/1iATpoJA7V
 拡大
まきの さとる @autani
Newファミコンに旧ファミコンのコントローラを接続して動作するようになったので、B+スタート+左+上がONの状態で動波形を取った。 http://t.co/5RHNBC8j6O
 拡大
まきの さとる @autani
ジャンクでゲットしてきたファミコンの1Pコントローラー。分解してみたら… 赤と黄色の線が逆になっていることに気がついた。でも検索して出てくるものは赤がDATA OUTで、写真の配線で合ってる。うむむ。 http://t.co/w761feDse9
 拡大
まきの さとる @autani
ファミコン本体に接続されているコントローラにプローブ当ててみたけど、波形は同じだった。ラッチもクロックもこんな波形なのか…ってつぶやいてたら電線の上をハクビシンが歩いて行ったのを見てしまった…
まきの さとる @autani
ニューファミコンのコントローラに来てる出力。上がたぶんP/S(latch)で、下がたぶんclockなんだけど、こんななんだろうか。何かおかしい気がする。引っ張らないとダメ? http://t.co/gBffF5WClC
 拡大
残りを読む(4)

コメント

まきの さとる @autani 2014年2月3日
まとめを更新しました。寝なきゃ。
名有りさん @naari_ 2015年8月21日
これと同じものを作りたい
ログインして広告を非表示にする
ログインして広告を非表示にする