SFCパッド繋ごうぜ!






*概要*
プレイステーションでSFC(スーパーファミコン)のコントローラーを使えるようにするためのアダプターです。
パッケージ


*動作確認状況*
現在の所、下記の環境にての動作が確認とれてます。
(っていうのも、オイラの力不足で一部の処理を省いてるから不具合が出る可能性があるかもしれないのだ・・・スミマセン)
動作確認状況 プレステ本体(SCPH-3500、5500、7500)
メモリーカード(SCPH-1020)
ジョイテック製、GAMARS製の非純正4倍メモリーカード
標準コントローラー(SCPH-1080)
デュアルショックコントローラー(SCPH-1200)
プレステ2は動作しなかったのを確認してます。


!注意!


使った物リスト
部品名 個数・量
PIC 16F84A-20/P(IC1)
LM317LZ(IC2)
発振機 セラロック10Mhz
抵抗(R1〜8) 4.7kオーム 8
抵抗(R9) 400オーム 1
抵抗(R10) 1.2kオーム 1
セラミックコンデンサー(C1〜2) 0.1uF 2
電解コンデンサー(C3) 16V10uF 1
ダイオード(D1〜2) 整流用11EQS06(たぶん、他でも可) 2
2接点プッシュスイッチ(SW1) 1
基板 (サンハヤトICB-288など)
導線、ハンダ 適量
SFCのコントローラーコネクター メス(U1) コネクターの入手について
プレステコントローラーコネクター オス(U2) コネクターの入手について 1



HEXファイルとソース
書き込みモード
Oscillator HS
WDT OFF


回路図(回路図をクリックすると大きく表示されます。)

bmp版はこちら
ハンダ面 部品面


  • SFCコネクターメスの入手について。
    が上げられます。

    エクステンダーの抜き取りは非常に安価(500円程度)でできるのでおすすめですが、
    メスコネクター付きケーブルになる以上、コネクターをケース等に収めるのが不向き(もしくはできない)と思います。

    マルチタップの抜き取りはコネクターが一度に4、5個も入るのでいいように思います。
    普通にゲームショップで買うと2000円程度なので1個当たり400〜500円程度でしょうか。
    ハードオフなどのジャンクで500円くらいで売ってる事もあります。

    最後のSFCの本体からの抜き取りはハッキリ言ってメリット少ないです。
    私は、たまたま壊れた本体が手に入ったりしたのでこの方法でしましたが、
    普通にやると1個当たりの単価も高く、しかもSFCは専用ドライバーが無いと分解すらできないので
    コネクター取りだけの場合はおすすめできません。


  • プレステコネクターオスの入手について。
    が上げられます。

    実際のコントローラーを1つ潰すのは大変勿体無いのでジャンクや壊れたコントローラーが無い限りはするべきじゃないでしょう。
    というわけで、私は延長ケーブルを切る方法を使いました。
    延長ケーブルはゲームスアーク秋月電子で売ってます。(どちらも通販可)



    後記

    SFCパッド情報の取り込みは以前やったSFCパッドのパラレル変換のルーチンをかなり流用してます。
    違うのは出力場所がポートじゃなくてPIC内のRAMという所と、プレステパッド情報が負論理なので最初にRAMを全て”1”にしとき パッドの押された部分を”0”にしていくというやり方です。
    こうする事で命令数を削り、処理時間短縮してます。


    プレステパッド処理についてですが、フローチャートにしようかと思ったのですが専用ソフトとか持ってないし面倒なので口頭での説明だけにしときます。
    どなたか、いいフリーウェアのフローチャート作図ソフトご存知でしたらご一報くだされば幸いっす。

    1:SFCパッド情報を取りこむ
    2:SEL信号がHからLになるのを待つ
    3:DATを入力状態(ハイインピーダンス)から出力状態へ
    4:クロックがLになるのを待つ(同期取り)
    5:CMDデータを取りこむ
    6:CMDデータの0ビット目が1、7ビット目が1なら次ぎの処理へ。(ここの処理が強引です)
    7:標準パッド識別符”41h”→ACKの返答信号と出力。
    8:同様、”5ah”→ACKの返答信号を出力。
    9:パッド情報を2バイトに分け出力。
    ・・・以上の繰り返しによって動いてます。


    なお、友人のプレステ2で試したところ、全く動きませんでした。
    僕が考えてる原因ですが、
    (i)プレステ側のプルアップに入れた抵抗(4.7kオーム)がハイインピーダンス状態を邪魔してる。
    (ii)ウェイトなどのタイミング処理が上手く行ってない。
    (iii)SFCパッドの取り込み時間が遅れてる。(でもこれだと1フレーム遅れで動くはず?)
    などを考えてます。

    藤田氏も解析資料の中で74125のICを入れる・・・と書かれてるので、たぶん1じゃないかな?と思ってます。
    部品点数を減らす(っていうか、手持ちに125のICが無かった(爆))ためにICはPICを1個という強引な仕様にしたのですが、
    幸いRBPORTも3つ余ってるので僕がプレステ2を買ってこれを使わなくちゃいけない事になれば125でも入れて試してみようかと思います。
    (でも、消費電力が増えてヒューズを飛ばさないかコワイなぁ。もしかしたら別電源が要るかもねぇ・・・)




    参考文献:
    Analyze Hardware in Video Games  Kashima氏

    ソニープレステーションPAD/メモリの解析  藤田氏
    戻る  インデックスに戻る