2つのコントローラポートと、底面に1つの拡張端子がある。 コントローラポートに繋ぐものとして次のような種類がある。

コントローラポート

port.png

注 : 図は海外版のものかもしれません。 ここに書かれている情報を元にしてコントローラポートに繋ぐ ハードウェアを作ろうとしないでください。

1: +5v (power)
2: Clock
3: Latch
4: Data1
5: Data2
6: IOBit
7: Ground

何も接続されていない時は、Data1, Data2 の読み込みデータが 0 になる。

ジョイパッド

ジョイパッド (普通のコントローラ) は、 Data1 から 16ビットのデータを返す。 ラッチされる度に順番はクリアされる(?)

byetUDLRaxlr0000

b/y/a/x/l/r はボタンの記号と同じ。 'e' はセレクト、 't' はスタート。 U/D/L/R は十字キー。 普通のコントローラでは、十字キーの上と下、左と右は同時に押せなくなっている。 いくつかのゲームでは、これらの組み合わせで同時に押した場合、 クラッシュするか、動作がおかしくなる。

Data2, IOBit は接続されていない。

マウス

マウスは、Data1 から 32ビットのデータを返す。

00000000rlss0001 YyyyyyyyXxxxxxxx

l/r はマウスのボタンを表す。 'ss' はスピードビットで、ラッチがアクティブになっていた間のクロック数を mod 3 して返す。 Y/X は方向ビット。セットされていたら上または左。 yyyyyyy/xxxxxxx はその方向への距離。

Data2, IOBit はたぶん接続されていない。

スーパースコープ

スーパースコープは Data1 から 8 ビットのデータを返す。

データ列 : fctp00on

'f' は Fire、 'c' は Cursor、 't' は Turbo、 'p' は Pause、 'o' は Offscreen、'n' は Noise を指す。

スーパースコープには 2 つのモードがある。

ガンコントローラ (Justifiers)

Justifier は Data1 から 48 ビットのデータを返す。 32 ビットのデータの後に 16 個の 1 を返す。 しかし、これは何か分からない。

データの順番 : 0000000000001110 01010101TtSsl000 1111111111111111

T/t はプレイヤー 1 / 2 のトリガーの状態を表す。 S/s はプレイヤー 1 / 2 のスタートボタンの状態を表す。 'l' は、どちらの銃が IOBit に接続されているのかを表し、 1 は銃 1 を、 0 は 銃 2 を指す。 'l' は、銃 2 が接続されていない時は反転する。

IOBit は スーパースコープのように使う。 しかし、2 個の銃が 1 つのポートに接続され、 どちらの銃が IOBit に接続されているかは Latch の度に変更される。 Justifier は Latch の前にトリガーが引かれるのを待たない。 電子銃が検知される度に Latch される。 Justifier がスクリーンに向いているか向いていないかを決定するために 0x213F のビット 6 が使用される 。

Data2 はたぶん接続されていないが、確実なことは分からない。

マルチタップ (MP5)

MP5 をSNESのコントローラポート (通常、ポート 2) に接続し、 4 つのコントローラをそこに接続することができる (2 〜 5)。

IOBit が 1 の場合、Clock はパッド 2 と 3 を通る。 Data1 はパッド 2 の Data1 へ、 Data2 はパッド 3 の Data1 へそれぞれ接続される。 IOBit が 0 の場合、パッド 4 と 5 を使う。 どちらの場合も、Latch は全てのポートに通される。 たぶん、 IOBit は全てに通されることはない。

Clock は IOBit で選択されたところにのみ信号を通す。 最初の 2 つのパッドのみ読み込むことができ (自動ジョイパッド読み込みもそのようにする)、 IOBit を切り替えた時に他のパッドを手動で読み込むことができる。 たくさんのゲームで、3 人より多くのプレーヤーの処理の時に このようなことが行われている。

MP5 はポート 1 にも接続することができるが、 IOBit のセット用に、 0x4201 のビット 6 をビット 7 の代わりに 使用する必要があり、ポート 1 のレジスタを ポート 2 の代わりに使用する必要もある。 2 つの MP5 を使用すると、8 人用のゲームを作ることもできる。

Latch がアクティブな時、Data2 からは 1 が、 Data1 からは 0 が読み込まれる。 MP5 の存在を検出するためにこの動作が使われることがある。 MP5 によって、この動作がオーバーライドされる。

IOBit が 0 から 1 に移行する場合、MP5 がすぐに反応しない。 2 と 3 を読んでから、4 と 5 を読むようにする方が、 逆の場合よりも良いだろう。


添付ファイル: fileport.png 59件 [詳細]

トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-27 (日) 15:53:04 (1303d)