FT245BMに頼る

6月 27th, 2007

パラレルポート接続のエンジンをPerl・マクロ編集はVBScriptのHTAっていうコマコンですが被験者達(笑)の様子を見てると実用性の限界に達してるのを感じたので素直に1アプリとして完成させようということでセコセコとやってます。ちなみに暇つぶし勉強がてらVisualBasic 2005 Express Editionを開発に利用。ひさびさにVisualBasicまじめにいじってるけど、ずいぶん変わってるなあVB……。

さて。パラレルポートでの接続だとコントローラを2系統同時に操作するにはどうにも面倒なことになりそうな気配があり、サイトで情報公開してる人が居るUSB接続でのコントローラを同時に2系統操作する方針に現在は転換しております。参考にさせていただいたサイトと使ってるUSBのシリアル→パラレル変換チップ(FTDI社のFT245BM)を使っているIPI社のデモ基板USB245BPを購入(回路組むのに手間かけたくなかったので)、手持ちのテスト用PSパッドとつないで早速テスト。参考にしたものとはピンの結線が私のパラレル接続バージョンと微妙に違ってどうしようかなあと思ったんですが、さしあたって動くかどうかコマンド送信できるプログラムが作成できてなかったのでマネッコ結線(^^;シリアルナンバーもFT000001にあわせて公開されてるコマコンアプリ使わせてもらって……。

おk。

通信速度(?)の微調整は必要そうですが一通りの操作に問題無しです。 まずは試しにってことで1個しか基板買ってないわけですが買い足せってことですかね。なんとなく、本当になんとなくで使い道も考えずに単体チップも購入してるんですが考えなさすぎで持ち腐れ決定っぽい(・w・;
#確認しきれなかったけどアレ完成してるはず。ちょっと確信がもてた>Kの人 以下参考。ただのメモ

    PS  NG PS(参考)
D0 ↑   ↑   ←
D1 ↓   ↓   ↓
D2 →   →   →
D3 ←   ←   ↑
D4 □   A   ○
D5 △   B   ×
D6 ×   C   △
D7 ○   D   □    

USB245BP
     Pin
D0   1
D1   2
D2   3
D3   4
D4   5
D5   6
D6   7
D7   8
GND 15

スクリーン印刷でなんか作りたい

6月 5th, 2007

当サイトは手段が目的になる本末転倒型DIY推奨サイトです。
(意訳:創作系よろずサイト)
当面、XPで(略)な記事で引っ張ったからいい加減ほかの事を書きたい^^;
マクロ編集ツールは裏で設計見直して、全長が長くなった物でも画面に120フレーム分のレンダリングだけするリソース節約仕様に改良中なので待て、しばし。
後、接続用の中間回路をすっきり作り直したいとこだなぁ……。
PCとかとの接続はオス-オスの既製品を使用するカタチにして
D-Sub25pinメス-[回路]-D-Sub15pinメス
こんな箱を……。

んで、スクリーン印刷でなんか作りたいと漠然と思っている今日この頃なんですがイチから機材をそろえてやろうと思うので感触を理解するのに手ごろなのはベタにTシャツですかね。あと、ネタ的には痛Thinkpadとか……いや、それはないか;

ちなみに某K氏曰く物置で、KOF2002をマクロで検証したら同一コマンドでもMAXだと最後の方向を5フレーム継続入力しないと発動しないのがちらほら。

XPで(略)HTAと格闘

5月 29th, 2007

FrameEditor version 0.5
120フレーム制限解除。
新規マクロ作成時に最大フレーム数指定可(30フレーム単位)
レバー方向の入力は任意のセルを選択して数字キーで入力。
テンキーでも通常数字キーでも可。レバー入力消去はDel、BS、Space。

あとは細かいバグ取り……
とりあえずここに置いておくのでフィードバックよろ。

XPで(略)今の状況

5月 24th, 2007

FrameEditor v0.2マクロ実行本体の方は詰めれるところ詰めた割に効果が薄くてションボリ。

なので、貼り付けたスクリーンショットを見てもらえばわかると思いますがマクロ編集環境の方をせこせこと開発してます。これ作ったら
思った以上に動作検証のテストが楽になりました。
うーむ、制限なしのVBScriptって遊べすぎる(・w・

さて。
今の時点での機能、および仕様です。
「マクロの編集はマウス操作だけで完結」
※キーボード使うならテキストエディタとか表計算とか使いましょう。

「編集したマクロをファイルに保存」
・直前フレームのNフレーム延長記述は保存できない。
・必ず120フレーム分が記述されたファイルとして作成される。

「保存したマクロの読み込み」
・長さ120フレームを超えるマクロは120フレームまでを編集画面に読み込み、121フレーム以降は読み込まれない。
・120フレームを超えるマクロを保存しなおすと121フレーム以降は欠落する。

「任意のフレーム間のリピート実行」
・指定したフレーム番号の範囲を指定回数実行させます。

「編集中マクロの実行」
実装度80%、開発優先度(高)
リピート実行以外は厳密には編集中のマクロ実行はされない。
→一度ファイルを保存して実行する必要がある。

「マクロ実行時の左右反転出力」
1P側記述を2P側として出力させることが可能。
出力数値のXOR取るだけ。実装にかかった時間3分。

「実行ログ表示」
標準出力へ出力している内容を別窓で表示する。
実装中。

まあ、こんなとこですかね。
実用レベルといえば実用レベルだけども・・・って感じ。
実装して思ったけど繰り返し実行は、硬直フレーム計算に超便利です。
ふと、MIDIファイルをマクロに変換する仕様を決めれば、ピアノロール画面でマクロ組めるじゃん。
とか思ったんですが、「苦労>>>>得られる物」って予感がするので忘れることにします。

HTAの習作

5月 22nd, 2007

feditor.pngこうして開発してみたわけですが、ぶっちゃけHTAだけで自動操作環境つくれるのに気づいたり。レバー方向の矢印はKAKUTOTEN使って表示させてます。

XPで(略)動作検証

5月 22nd, 2007

わかりやすい?動画。
VSYNCをトリガーにしてないのと処理時間の揺らぎでたまにフレームずれがでる感じだったりするんですが、まずは意図どおり動いてるものからどーぞ。

ステステ
野ステのバックステップ後半の入力はちょっと引っ張ってます。入力内容は「4N4(6フレ継続)8」×N回です。
風ステは「6N236N」×N回

キエン風
↑わかる人にはわかるらしい動画
(あ、霧足最風なのに書き忘れてた……)

step_zure.png
オマケ。入力落ち(認識落ち?)が発生した時の動画
風ステの前入れキャンセルを認識されてないフレームが分かる。

動画をこんなにべたべた貼るならYouTubeとか使うの考えた方がいい気がしてきました(・w・;

XPで(略)1stステップ終了

5月 20th, 2007

根っからのデジタル脳を切り替えて、K氏のレクチャーを参考にトランジスタ用意してアナログ回路を自作、テストで完動確認できたから8方向+4ボタン1系統の自動操作環境完成です。次はゲートIC使って、8方向+8ボタン2系統の操作環境か、それともV-Syncとの同期か?
Perlのプログラムの方は、テンキー表記に準じた操作内容CSVファイル(カンマ区切りテキスト)を読み込んでパラレルポートへ出力をします。

今のところ暫定仕様ですが、自動操作用CSVは
1行=1フレーム(1/60sec)
レバー方向:1232456789 ニュートラルは「5」
ボタン:ABCD(鉄拳的にはLPRPLKRK)
を基本にし、拡張記述として
行頭「.」につづけて「N」(任意の数)=前フレームをNフレーム繰り返す
行頭「_」=全入力なし状態
を用意。編集はExcel使えば楽かな?

ss.png
最風連打再生中のPC画面↑
で、こっちが動画→最風

オマケのきしょいの。63xN

XPで(略)する(3)

5月 17th, 2007

今日は、ジャンク使って工作してると効率悪いのが露呈してきたんでパーツで買ってきた。
でもって結線するピンの対応図をつくってみた、これでいいはず…・・・(・w・;

パラレル→NEOGEO結線

プラグイン入れてみたので確認

5月 16th, 2007
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!perl
 
# PerlParallelPortMacroPlayer
# by MDR mdr@sevenearth.com
 
use strict;
use Device::ParallelPort;
use Time::HiRes;
 
my $port = Device::ParallelPort->new;
# パラレルポートを出力方向にセット
$port->set_bit( 21, 0 );
# データビット2をN
$port->send_data( chr(0x02) );

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

5月 16th, 2007

PSパッド改造
まあ、テストで動かしててもウチのPS2壊れてないしかまわないかということで作業を進めます。あ、同じことして壊れたって人いても知らないので、悪しからず。
まず、昨日購入したジャンクの初代PSのパッドをひん剥いて、中の基板を取り出します。基板の回路パターンを眺めて上下左右○△×□のボタンとGNDに対応した基板の箇所にコードを半田でくっつけます。この型番のパッド(SCPH-1080)は圧電素子けずらなくても半田付けできる部分が備わってるので楽チン

コードを9本半田付けできたら、次はそのコードとパラレルポートからの信号線をソフトウェアで制御する内容に合うようつないでいきます。私が作成してるプログラムでは以下のように規定して、上からパラレルポートの2番、3番、4番……9番となっているので、2番を↑、3番を↓、4番を→、5番を←というようになります。

1
2
3
4
5
6
7
8
9
10
11
# キー入力データ
my %code = (
 D_UP         => 0x01,#1 0b 00000001 ↑
 D_DOWN       => 0x02,#2 0b 00000010 ↓
 D_RIGHT      => 0x04,#3 0b 00000100 →
 D_LEFT       => 0x08,#4 0b 00001000 ←
 B_1          => 0x10,#5 0b 00010000 button1
 B_2          => 0x20,#6 0b 00100000 button2
 B_3          => 0x40,#7 0b 01000000 button3
 B_4          => 0x80 #8 0b 10000000 button4
);

上下左右のキーの結線(といっても仮繋ぎ)をして、とりあえずプログラムから動かしてみました。PS2の鉄拳5で風神ステップを20回ほど自動実行。キー入力認識のタイミング調整ができてないのと、プログラム的に詰めれてない部分なんかもあって数回ミスってますがw。

キャプチャ環境がないのでIXYDigitalで録画した動画です。AVIをVLCでASFに変換してみました。
自動操作テスト動画

この動画TVBOXes+PS2コンポーネント接続はこんな風にうつります。という意味もあるかもしれない。