XPでパラレルポートを使ってコントローラを操作するマクロ実行環境を作成する(1)

今日の買い物。
PSパッドSCPH-1080 2個
プリンタケーブル 2本
21ピンRGB-D-Sub15ピンケーブル 1本
全部ジャンクしめて450円くらい。最後のは使い道が分かんないけどなんとなく買ってしまった。

時代的にはUSBのシリアル/パラレル変換とかして開発するのが流行りかなあとは思うんですが、余分な出費多そうなので流行りを無視してPCのパラレルポート入出力で乗り切ることにします。最終的な対象ハードはコントローラ構造が簡単なMVS(NEOGEO)です。今回作成するものを基礎として、パラレルポート→コントローラへの入力電圧を調整する回路その他を作れば1レバー+4ボタンまでのゲームで1プレイヤー分の操作をすべてきることになる予定。スタートとかセレクトはどうするのかという課題がありますけど(^^;
#PSを開発テストで使おうと思ってたけど電圧3.6Vに落とさないといけないから、信号出力をテストして動いたと思ったのは気のせいみたい。

ハード面は今、電気テスターがみつからなくて進んでなかったりするのですが、ソフト面は案外さくさくいってたりします。
開発言語はActivePerl 5.8.8です。Perlでこんなことやってる人いないしネタっぽくていいです(笑)
パラレルポートをPerlで操作するためにCPANモジュールを追加します。
ActivePerlですのでppmを使ってインストールすればいいので簡単です。
追加するモジュールはDevice::ParallelPort、Device::ParallelPort-drv-win32の2つ。
Device::ParallelPortでは内部的にinpout32を呼ぶため、配布サイトのページ最下部にある「Download Inpout32.dll and source code here」よりZIPファイルを取得し、中からinpout32.dllを取り出します。

使用するパラレルポートはECPプリンタポートI/Oの範囲が0×378から始まる設定にします。(BIOSで設定できる)
作成するPerlスクリプトと同じフォルダにinpout32.dllを置きます。(WindowsやSystemディレクトリあたりでもかまわないですが)
これでソフトの開発に関しては準備完了。

2 Responses to “XPでパラレルポートを使ってコントローラを操作するマクロ実行環境を作成する(1)”

  1. K Says:

    昨日のメッセで思ったんですが、8bitのうち↑と↓、←と→はそれぞれ排他になるので例えば当初の予定の4bit(レバー4箇所分)を使わなくてもレバー方向/3bitで8方向表せ・・・ニュートラルがいるのかorz

    しかもパラレルのI/Oに直結してるから↑見たいな演算用Chip用意してH/W制御しないと㍉か・・・

    6ボタンに対応したら面白そうなんですけどねぇ・・・やっぱUSB-パラ変換機は必要なんですかね?(謎

  2. K Says:

    あとPSのH/Wテストで5V落として動いたとしてもそれは不思議ではないはず。Vi=Highが3.6Vなんですがそれを超える電圧を入力してもHighとして認識するはずです。
    回路には優しくない行為ですが(死

Leave a Reply