OZ for Real Players Controller (OZRPC)

(c)Junichi Akita (LastUpdate:2001.3.29)

プレイステーションコントローラを用いた OZ-RP用11人同時プレイユニットの作り方や使い方のページです。 なお、OZ-RPについては こちらをごらんください。

用意するもの

作り方

まずPIC16F873/876用のファームウエアをここから 持ってきて、アセンブラでアセンブルした後、適当なPICライタで書き込みます。 このソースの先頭のコメントにあるように配線します。
完成図(例:試作機なのでマルチタップをつなぐコネクタが1個だけです)
完成したら、プレイステーション用マルチタップを3個つなぎ、 それぞれのマルチタップに4個または3個のコントローラをつなぎます。 ACアダプタなどで+5Vの電源をつなぎ、 DSUBコネクタはシリアルケーブル(ストレート)でPCのシリアルポートにつなぎます。
1個のマルチタップと2個のコントローラをつないだところ

関連する情報

使い方

11個のプレイステーションのコントローラを操作すると、 操作したコントローラに対してのみ、そのコントローラの番号と 操作の内容が、PCのシリアルポートへ転送されます。 転送プロトコルはRS232C、ボーレート115.2kbpsの非同期・データ長8ビット・ ストップビット1ビット・パリティなし・フロー制御なし(いわゆるN81N)です。 コントローラ(パッド)を操作すると、7バイトのデータがPCへ送られます。 7バイトの内訳は以下のとおりです。
データ 内容 データの例と意味
1バイト目 上位4ビット=パッドの種類
下位4ビット=パッドの番号
0x42:パッドの種類=4(ノーマルパッド)、パッド番号=2
2バイト目 パッドの生データの1バイト目 0x7f:左ボタンが押されている
3バイト目 パッドの生データの2バイト目 0xfe:L2ボタンが押されている
4バイト目 パッドの生データの3バイト目 0x80:(アナログパッドのとき)右ハンドルの水平位置が中央
5バイト目 パッドの生データの4バイト目 0x80:(アナログパッドのとき)右ハンドルの垂直位置が中央
6バイト目 パッドの生データの5バイト目 0x80:(アナログパッドのとき)左ハンドルの水平位置が中央
7バイト目 パッドの生データの6バイト目 0x80:(アナログパッドのとき)左ハンドルの垂直位置が中央
パッドの生データの詳細については ここを参照してください。パッド1個のデータの最初の3バイトは、不定→コントローラタイプ+転送バイト→0x5aなので、それに続く4バイト目以降が、ozrpcの2バイト目以降に対応します。 例として、Linuxでこの生データを受信して内容を表示する サンプルプログラムを示します。 なおパッドの番号は以下のとおりです。
マルチタップ#1 Aポート パッド0
Bポート パッド1
Cポート パッド2
Dポート パッド3
マルチタップ#2 Aポート パッド4
Bポート パッド5
Cポート パッド6
Dポート パッド7
マルチタップ#3 Aポート パッド8
Bポート パッド9
Cポート パッド10
Dポート パッド11
(このように、実はコントローラは12個つなげるので12人で遊べます)

免責等

OZRPCのソフトウエア・ハードウエアの利用にあたっては、個人の責任でお願いします。これの利用に伴う障害等に対しては責任負いません。なおこのソフトウエア・ハードウエアの著作権は秋田が保持します。改変等は自由ですが、Copyrightを消さないことと、事後で結構ですので、ご連絡ください。

更新履歴


お問い合わせはこちらへ:akita@is.t.kanazawa-u.ac.jp