Sorry, this page is Japanese only. USB Multi Joyport 計画【お知らせ】 USB Multi Joyport に使える開発キット「UMJ-FX」を用意しました。このキットによりかなりハードルが低くなったと思いますので、ぜひご覧下さい。 |
本計画はたくさんのゲーム機のコントローラをWindowsで使用できるUSB機器に
変換しようと言うものです。変換する中心部分は「EZ-USB」というCypressの
AN21xxを使用します。その部品は多くのUSB機器に使われていますので
上手に改造するとUMJに使用することができます。私の場合はIPI 社で取り扱っている
「AN2131USB」という実験用基板(少々お値段が張ります)を使用しました。 EZ-USB AN213x はファームウエアを都度パソコンから送り込めるなど非常に柔軟性があり USB インターフェースと多目的の I/O ポートを備え汎用性に富んでいます。 そこで、予てより古いパソコンやゲーム機に使用していたジョイパッドやジョイスティックを Windows マシンで使用できないかと考えておりましたが、EZ-USB を使用すれば 結構簡単に実現できそうです。対応してほしいジョイパッドやジョイスティックがございましたら掲示板までどうぞ。また、そのジョイパッドやジョイスティックの技術情報をお持ちでしたら掲示板かメールでご連絡ください。よろしくお願いいたします。 v0.10をもちまして、本開発を終了します。不具合の修正は今後も行っていきますが積極的な機能追加、サポートは致しません。今後は「USB Multi Joyport - FX (UMJ-FX)」に開発を移行します。キット化(製品化)を考えていますのでハード製作が不得意な方にも手が出しやすくなると思います。ぜひ今後も応援をよろしくお願い致します。 【警告】使用するジョイスティックやジョイパッドに同じファームウエアを使用してください。
間違いの起きないようファームを適用する前に警告のダイアログを表示したり、
間違ってもなるべく損傷のないように信号を選んでいますが、最悪の場合、EZ-USBとジョイパッドまたはジョイスティック双方に損傷を受けますのでご注意ください。
もちろん、配線の間違いはもってのほかですので製作後、落ち着いてから見直しましょう。 |
使用許諾契約書 本ソフトウエアは私のEZ-USBに対する理解を深める勉強のため、私の所有するゲーム機のコントローラを有効活用するために実験的に開発しました。趣味で開発していることから、一般的な製品のようなサポートを行うことは不可能です。すべてのリスクは自分で負うことが必要です。 以上のことに同意できる方のみダウンロードし使用することを許可いたします。 |
USB Multi Joyport v0.10 ダウンロード
USB Multi Joyport v0.10 HEX
Firmware
USB Multi Joyport v0.01 (VC7 MFC Project) Source
EZ-USB (AN213x) にダウンロードするファームウエアを選び、該当するボタンを押します。
確認のダイアログの後にダウンロードが開始されEZ-USBはゲームコントローラとして動作します。 「ファームウエアのダウンロードで確認をしない」にチェックを入れますと、ボタンを押した後や 自動ロードの時に確認のダイアログは表示せずにダウンロードを開始します。間違った機器を 接続した状態でダウンロードを開始しますと、その機器やEZ-USBに損傷を与える可能性が ありますので十分に注意してこのオプションを使用してください。 自動ロードは該当するボタンの左側のチェックボックスにチェックを入れることで、
次回の起動からファームウエアのダウンロードが自動的に開始します。「ファームウエアの
ダウンロードで確認をしない」にチェックしてありますと、何も表示せず(確認せず)に
ダウンロードを開始します。間違った機器でダウンロードしてしまう危険性が高いですので
十分に注意してください。ボタン左側のチェックボックスのいずれにもチェックが無いときは |
GBA 本体をジョイパッドとして使用します。起動のさせ方は「FlashManager」に似ています。この機能は、TeamKNOx の開発である「ULA-GP V2」を元に作製しました。GBA
側のプログラムの大部分を使用させていただいております。この場をお借りしてお礼を申し上げます。
「ULA-GP V2」との違いは以下のとおりです。
配線は ULA と同じです。詳しくは「USB Linker Advance 作成部屋」を見ていただくかリンク先を見るとよく理解していただけると思います。 v0.07から「Flash2Advance USB Linker」に対応したファームになりました。従いましてPC5と PC6は同時に出力します。PC5とPC6をショートさせる改造をされているときは解除してください。 「コロコロパズル ハッピィパネッチュ!」の加速度センサをアナログ方向コントロールに使用するのも面白いと思いました。どうしてもゲームと一緒に体が動いてしまう方はよろしいのではないでしょうか。その専用のファームウェアを用意しました。それをダウンロードし解凍し「ula_gp.bix」とファイル名を変更して「UMJoyport.exe」と同じフォルダに置いてください。 |
|
なお、「ULA-GP V2」の開発元であるTeamKNOxではGBAで開発を行いたい方のために「GBAプログラミングバイブル(またはこちら)」を出版されています。プログラムに興味のある方はごらんになられて、一つでも面白い開発が増えればと思っております。 |
単純なスイッチで構成されているジョイスティックやジョイパッドに使用します。 例えば、アタリ規格(MSXやX680x0, FM-TOWNSなど多くのパソコンに使用されていた)の ジョイパッドやアーケード基板用に接続しているジョイスティックなどがこれに当たります。 |
AN213x のピンの対応は以下のとおりです(すべて Active LOW)。
PC0 | Y軸 0x01(上方向) |
PC1 | 未使用 |
PC2 | Y軸 0xFF(下方向) |
PC3 | X軸 0x01(左方向) |
PC4 | X軸 0xFF(右方向) |
PC5 | 未使用 |
PC6 | ボタン1(Aボタン) |
PC7 | ボタン2(Bボタン) |
PB0 | スロットル 0x01(前方向) |
PB1 | スロットル 0xFF(後方向) |
PB2 | ラダー 0x01(左方向) |
PB3 | ラダー 0xFF(右方向) |
PB4 | ボタン3(Cボタン) |
PB5 | ボタン4(Dボタン) |
PB6 | ボタン5(Eボタン) |
PB7 | ボタン6(Fボタン) |
例外として、「PC0」及び「PC2」をLOWにすると「ボタン10(SELECT)」と動作し、
「PC3」及び「PC4」をLOWにすると「ボタン9(RUN)」として動作します。
これはFM-TOWNSのジョイパッドに対応させるためです。別にボタンが
存在する場合にはダイオード(1S1588など)で対応してください。 例えば「ボタン10(SELECT)」の場合: また、「PB0」及び「PB1」をLOWにすると「ボタン7(Gボタン)」と動作し、 「PB2」及び「PB3」をLOWにすると「ボタン8(Hボタン)」として動作します。 スロットルやラダーを使用せず、単純に8ボタンとして使用するときは、 ダイオード使用せずに「PB0」と「PB1」、「PB2」と「PB3」をショートし、 それぞれを「Gボタン」、「Hボタン」に接続すればよいです。 面倒ですが、AN213x のそれぞれのポートは 10K オーム程度の抵抗でプルアップを 行ってください。使用していないポートもプルアップしてください。お勧めはできませんが 私の場合は、使用していないポートを接続しまとめて1つのプルアップ抵抗に接続しました。 仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「SELECT」+「A」+「B」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。 |
NeoGeo 用ジョイスティックの配線図です。私は NeoGeo
を所有しておらず、インターネット上に掲載されていた情報を元に作成しましたので間違っているかもしれません。 間違いにお気づきでしたら掲示板にでもご報告ください。 ポートはプルアップを行ってください。ダイオードは、1S1588などディジタル信号用のものを使用すれば大丈夫です。 「N.C.」とは何も接続しないということです。 |
私が行った実際の配線の様子は「SEGA Mega Drive」と共通仕様にしましたので、
その項目に載せました。共通といいましてもジャンパ設定が必要です。
SEGAのメガドライブのジョイパッドに使用します。3+1ボタンのパッドをはじめとして
6+1ボタンのパッドにも対応します。メガドライブのジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「A」ボタン → ボタン3 |
D-SUB9ピン・オスコネクタを用いた配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。
また、このファームではPB0〜PB7は使用しませんのでプルアップの処置は不要です。 切り替えスイッチがついていますが、アタリ規格と共通に使えるようにするためです。アタリ規格のものを接続しない方は必要ありません。 切り替えて使う方は、「Generic」のファームも使いますので、PB0〜PB7のプルアップは必要です。 切り替えは間違わぬようお気をつけください。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 |
|
私が作製した「Generic / Mega Drive共通仕様」のIPI 社の「AN2131USB」に接続するコネクタです。基板の裏から伸びているケーブルはD-SUB9ピン・オスコネクタに接続されています。左上の赤色のショートプラグはGenericとMega
Driveを切り替えるためのものです。 抵抗は10Kオームで、プルアップのためのものです。集合抵抗を用いてもよいでしょう。 |
|
上図のコネクタをIPIの基板に接続し、裏面の写真です。D-SUB9ピン・オスコネクタ及びケーブルは、私の場合それぞれを自作で接続しましたが、全結線タイプのシリアル延長ケーブルを使うと製作が楽になると思います。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「A」+「B」+「C」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
SEGAサターンのジョイパッドに使用します。標準に付属しているのパッドをはじめとして
マルチコントローラ・パッドにも対応します。セガサターンのジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「A」ボタン → ボタン3 アナログモード時 マルチコントローラのときのディジタル方向コントロールはディジタルモードのときに
X軸、Y軸として動作し、アナログモードのときはアナログ方向コントロールが有効になります。 |
セガサターン用コントローラ延長ケーブルを用いた配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 また、「D-SUB9PのGeneric」を作製することにより「ATR-USB」の変換ケーブルを使用することができます(GenericのPC1は配線してください)。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「A」+「B」+「C」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
コントローラのデータシートは発見しました。
しかしそれによるとかなり高速なデータ転送が要求されAN213xで対応することは
不可能なことが判明しました。別の高速なEZ-USB FXで組める機会があれば
考えてみようと思います。現在の所は保留とします。 |
UMJではサポートしていませんが、ドリームキャスト用コントローラ延長ケーブルを用いた配線図を示します。私の実験用リファレンスとして掲載しているだけです。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 |
任天堂ファミリーコンピュータ用のジョイパッド、ジョイスティックを接続します。
「UMJ」では「Nintendo」ボタンで自動認識されます。
ファミコンのジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「A」ボタン → ボタン1 |
D-SUB15ピン・オスコネクタを用いた配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。
このコネクタは外部コントローラ用ですが、ファミコン付属のコントローラも同じ名前の信号が使われていますので、調べてから同様に接続することが可能です。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 また、「D-SUB9PのGeneric」を作製することにより「ATR-USB」の変換ケーブルを使用することができます(GenericのPC1は配線してください)。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「SELECT」+「A」+「B」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
任天堂スーパーファミリーコンピュータ用のジョイパッド、ジョイスティックを接続します。
「UMJ」では「Nintendo」ボタンで自動認識されます。
スーファミのジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「A」ボタン → ボタン1 |
スーパーファミリーコンピュータ用コントローラ延長ケーブルを用いた配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。 左図のPC6, PC2への配線はオプションです。マルチタップを意識していますが現在のところサポートしていませんので、配線しなくても動作可能です。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 また、「D-SUB9PのGeneric」を作製することにより「ATR-USB」の変換ケーブルを使用することができます(GenericのPC1は配線してください)。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「SELECT」+「A」+「B」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
任天堂Nintendo64用のジョイパッド、ジョイスティックを接続します。「UMJ」では「Nintendo」ボタンで自動認識されます。Nintendo64のジョイパッドのボタンとWindowsで認識される ボタンの対応は以下のとおりです。 「A」ボタン → ボタン1 アナログ方向コントロールとディジタル方向コントロールは「OR」動作です。どちらでも方向コントロールが効きます。ただし、ディジタルの方が優先度が高いです。また、アナログ方向コントロールはNintendo64標準コントローラの仕様上、方向の最小値、最大値まで達しません。 ボタンの割り当てを変更したファームです。ディジタル方向コントロールの方向コントロールを無効にしたものです。ディジタル方向コントロールはボタン13〜16でご使用ください。ご使用にあたっては、ダウンロードしたファイルを解凍しUMJと同じフォルダに置いてください。また、このファームは「GAME CUBE」の割り当て変更と共通です。 N64コントローラに個体差があり、掲示板においてご協力いただきまして不具合を修正することができました。個体差の部分のオシロスコープによる波形を公開しますので興味のある方はご覧ください。N64コントローラの信号波形 |
Nintendo64用コントローラ延長ケーブルを用いた配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。PC0
(Data)については、4.7Kオーム程度のプルアップの方が安定します。 VCC +3.6Vは、私の場合はEZ-USBの3.3Vを使用しました。5Vからは、シリコンダイオードを2つ直列に接続することで、約3.6Vを得ることが可能です。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 また、「D-SUB9PのGeneric」を作製することにより「ATR-USB」の変換ケーブルを使用することができます(GenericのPC1は配線してください)。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「Z」+「A」+「B」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
任天堂ゲームキューブ用のジョイパッド、ジョイスティックを接続します。
「UMJ」では「Nintendo」ボタンで自動認識されます。現在、私の方で動作を確認していますのは
標準のコントローラとワイヤレスコントローラの「WAVE BIRD」です。
ゲームキューブのジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「A」ボタン → ボタン1 アナログ方向コントロールとディジタル方向コントロールは「OR」動作です。 どちらでも方向コントロールが効きます。ただし、ディジタルの方が優先度が高いです。 また、アナログ方向コントロールはゲームキューブ標準コントローラの仕様上、 方向の最小値、最大値まで達しません。 「L」と「R」ボタンのアナログ値は対応していません。もし、ラダーやスロットル、他のコントロールに 割り当てて欲しいときは掲示板でご相談ください。割り当てることは不可能ではありません。 ボタンの割り当てを変更したファームです。「C」スティックによるラダーやスロットルの
コントロールを無効にしました。代わりに「L」ボタンのアナログ値をラダーに「R」ボタンの
アナログ値をスロットルに割り当てました。「C」スティックはボタン13〜16でご使用ください。
ご使用にあたっては、ダウンロードしたファイルを解凍しUMJと同じフォルダに置いてください。
また、このファームは「Nintendo64」の割り当て変更と共通です。 |
NGC(ゲームキューブ)用コントローラ延長ケーブルを用いた配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。PC0
(Data)については、4.7Kオーム程度のプルアップの方が安定します。 VCC +3.3Vは、私の場合はEZ-USBの3.3Vを使用しました。5Vからは、シリコンダイオードを2つ直列に接続することで、約3.3Vを得ることが可能です。 UNKNOWNは不明の端子で、私の場合後の拡張のためにPC7に接続しましたが、現在においては未接続で差し支えありません。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「Z」+「A」+「B」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
PlayStation用のジョイパッド、ジョイスティックを接続します。
「標準(ディジタル)」、
「DUALSHOCK(アナログ)」、「DUALSHOCK2(アナログ)」、「ネジコン」に対応しています。
ジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 標準(ディジタル) アナログ ネジコン |
PSX用コントローラ延長ケーブルを用いた配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。 VCC +9Vは、私の場合は5Vを入力しています。これは振動機能に使いますが、現在のUMJではサポートしていません。配線しなくとも問題はないと思われます。N.C.は何も接続しないという意味です。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「SELECT」+「△」+「○」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
PC-Engine用の2ボタンまたは6ボタン(AvenuePad6)のジョイパッドを接続します。
ジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「I」ボタン → ボタン1 |
PC-Engine用コントローラの配線図を示します。すべてのポートはプルアップ(10Kオームの抵抗を介してVCC+5Vに接続すること)を行ってください。
コネクタは「Mini DIN 8pin メス」という物を使います。私の場合は、そのコネクタと8芯シールドケーブルを使用して作成しました。 ゲームコントローラ側のコネクタを覗き込んだ図になっています。本体側ではありません。 また、「D-SUB9PのGeneric」を作製することにより「ATR-USB」の変換ケーブルを使用することができます(GenericのPC1は配線してください)。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「SELECT」+「A」+「B」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
X680x0用のサイバースティック(CZ-6NJ1, XAP-1)を接続します。
また、アナログ・ディジタルモードは自動的に判別し対応します。
ジョイスティックのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「A」ボタン → ボタン1 配線は「D-SUB9PのGeneric」に同じです。ただし、PC1は配線を行ってください。
サイバースティックは最後の方の対応になりましたが、私は一番これが使用したかったです。
さすがにSHARP X68000は、今ではほとんど使用していませんので。
しかし、なかなかよいパソコンでした。現在の私の開発できるスキルはそれによって |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「SELECT」+「A」+「B」+「C」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
X680x0用のMagical PadまたはCPS Fighter(変換機)を接続します。
CPS Fighterの変換機の設定を2ボタンにするときは「Generic」でお使いください。
本ファームでは6ボタン設定で使用します。
ジョイパッドのボタンとWindowsで認識される
ボタンの対応は以下のとおりです。 「A」ボタン → ボタン1 配線は「D-SUB9PのGeneric」に同じです。ただし、PC1は配線を行ってください。 |
仕様として注意していただきたいのが、私のデバッグを効率的に行うために
「START」+「SELECT」+「A」+「B」を約5秒以上押し続けるとEZ-USBは「UMJ」としての
機能を停止し初期の状態(ファームをダウンロードできる状態)になります。
この仕様がゲーム上問題が発生するときは掲示板にご報告ください。
ULA と同様に PA4, PA5 を使用した LED をサポートしています。
基本的に EZ-USB が UMJ として機能しているときは PA4 の LED が点灯します。
ジョイスティックまたはジョイパッドの入力があるときは PA5 の LED が点灯します。
配線については「USB Linker Advance 作成部屋」のアクセス LED
を実装しようをご覧ください。 |
管理人へメール
Since Dec-16-2003: 59859