2018年8月23日木曜日

ジャンピュータ配列

おまけで動作未確認ジャンク基板がたくさん送られてきて。その中にジャンピュータがありました。エミュレータでも対応されていない類いの子なので、駄目元で配線してみたら動作した!


電源と画面の信号はついてきた表を見ながら配線してハーネス作りました。



この表ですね。で、入力については気力のあるうちにマトリクスを調べたら以下のようになりました。

11 ③12 ②13 ⑥14 ⑩
ABCDC ④
EFGHD ⑤
IJKLE ⑧
MNチーポンF ⑨
カンリーチロンH ⑪
スタートJ ①

麻雀コネクタとの対応は以下の通り。

ジャンピュータ11 ③12 ②13 ⑥14 ⑩C ④D ⑤E ⑧F ⑨H ⑪J ①
麻雀コネクタA1B2MNPRST

変換ハーネスは、一般的な麻雀コネクタに存在しない-5Vを用意する必要があるので少々面倒です。省略すると音がでないとかそういう半端な問題じゃなくて、たぶんDRAMが動かないので起動しないはず。基板最上部に並んでる74シリーズと間違えそうな小さなICの集まりがN-MOSのDRAMで、12V、±5V、GNDの4種類の電圧が必要となります。


という事で、ハーネスは麻雀コネクタへの変換基板としてではなく、麻雀→JAMMA変換コネクタ兼コントローラに別口を付け足す形で作りました。

しかし、なんでwikipediaのエントリとか良く見る呼称が「ジャンピューター」なんですかね。タイトル画面では「ジャンピュータ」ってなってるのに。

追記:DIP SWは3,4のみ使われていて、ON/ON、OFF/ON、ON/OFF、OFF/OFFの順に持ち時間減少スピードが早くなるらしい。OFF/ONが標準かな、手持ちの基板はそこに長く設定されていた日焼け跡がある。

2018年8月18日土曜日

retro-bit GENERATIONSのUSBコントローラ

表題の件、少し調べたので文章でもまとめておきます。

細かい認証やVID/PIDなんかでも制限はない模様。基本的には必要な内容を含むレポートを出してくれれば動作する。

  • desktop page - X(アナログ入力、レンジはたぶん問わない)
  • desktop page - Y(アナログ入力、レンジはたぶん問わない)
  • button page - 0x01〜0x0a

至って普通の組み合わせだとは思うんだけど、方向キーは使えるけどボタンが反応しないコントローラが多いみたい。

ボタンの割当については

  • 0x01 - Y
  • 0x02 - B
  • 0x03 - A
  • 0x04 - X
  • 0x05 - Z
  • 0x06 - C
  • 0x07 - 未使用
  • 0x08 - 未使用
  • 0x09 - mode
  • 0x0a - start

みたいです。未使用の0x07と0x08については存在してなくても大丈夫みたいです。あとVID/PIDが公式と一致する場合に限り、AとB、XとYがスワップされる謎仕様。GENERATIONS IVでしか確認してないので、もしかしたら過去のコントローラの割り当てが何パタンかあって、その差異を吸収するための手当かも。

自分のアケコン内蔵のLinux向けのドライバはこちら。レポートが最小サイズ(2バイト)になるよう、フォーマットを最適化してます。このドライバを動かすと自作アケコンをUSBでretro-bit GENERATIONSに繋げられるようになる。

クレヨンしんちゃんF2 1枚基板とCGA-HDMI変換基板

タイトーの正体不明基板を520円で入手。ROMの番号がわかればタイトルも一発なんだけど、だいたい不明基板は(わざと?)肝心なシールの部分が光ってたりぼやけてたりで見えないんだよね。そもそもこの基板は本来タイトルの名前が書いてあるシールが剥がされてるし。動作しない時に基板の故障なのか誰かがコンバートに失敗した後なのか調査が難しくなるのでやめて欲しい……。まぁ、でもたぶんF2の1枚基板かな?くらいの雰囲気で。基板の写真漁ればその辺はすぐに確証とれたと思う。


んで、電源入れてみると矢島さんの野原しんのすけボイス。F2だとクイズ〜とオラと遊ぼの2種類出てるんだけど、これは後者でした。うちの基本環境だとF2は唯一画面がまったくでない基板なので、故障よりは相性の可能性の方が高そう。基本環境ではJAMMAからアナログ信号変換で15kHzのままS端子でモニタまで持っていってるんですね。なのでモニタ側の追従性能に左右されちゃう。で、次の環境作成用に手配してたCGAからHDMIに直接変換できる基板があったので、そっちの動作範囲確認も兼ねて映るか試してみました。


VGAに変換するタイプのやつは国内でもお馴染みですが、同じ会社のHDMI版です。送料込みで3500円弱でした。VGA版がF2いけたので、たぶんHDMI版も問題ないだろうと。これが通るなら安心してこれを使ったコントロールボックス作れますし。という事で、ボックスあけてCGAの入力先だけこっちのボードに一時的に差し替え。


出た画面がこんな感じ。同期も完璧に取れてて信号流れたり画面端の色がおかしくなったりとかもありません。HDMIなのでモニタ相性も出ないし完璧。どうせフレームバッファとるなら画面回転とかできれば最高なんだけど……業務用装置以外ではそういう事ができる変換基板は見たことないですね。

2018年8月5日日曜日

NEOGEO変換器をケースに入れた

前回のエントリで書いたNEOGEO mini用USBコントローラの先にアーケード環境用のコントローラを繋げてみたところ、かなり快適に動いてるので壊さないうちにケースに入れる事にしました。入れる前はこんなメデューサな感じ。電源ランプは光らせたいからあるわけじゃなくて3.3V作るための手抜き。こんな電源でもカスケードして繋げた高橋くんとかアケコン側のLEDもばっちり駆動できる。


ケースは高橋くんの時と同じもの。というか、まとめ買いストックから。ちゃんとネオジオらしくデコらないとね。


というわけで、変換先は我が家の標準仕様端子にしたので、そのまま本家本元のコントローラが使えるようになりました。まぁ、この辺りは我が家のアケコン用インタフェースにNEOGEO互換を採用した頃からの伏線。


とは言っても、この本家コントローラもボタンは押しにくいので、実際には魔法大作戦コントローラのほうを使う事になりそうですが。

あまり格ゲーやらないので下手っぴなんですが、ヘタなりに月華の剣士はそこそこやってたので変換器のチェックも兼ねて通してプレイ。デフォルト設定での1コインクリアには少し届きませんでした。


2018年8月4日土曜日

NEOGEO mini コントローラ

NEOGEO miniが届いたので即日解析したわけだけど。当初はガッツリ遊ばれたくないからコントローラの数出してないのかなぁ……とか思ってたけど、なんか本気でプロテクトかけてるわけじゃないし、単にType C周りのバグでケチがついてコントローラと本体にマイナー修正、それ終わるまでインターナショナル版は出荷OK出せない……とかじゃないだろなー、みたいな。そんなわけで、悩むほど複雑じゃなくて誰がやってもすぐ情報は割れてしまうだろうな……調べた結果は出しちゃっても平気かな、って。まぁ、いずれにせよ良さそうなタイトルはアケアカで買うのが良いですよ。という事で、以下に情報。

コントローラ側についてはType CのCC信号を正しく処理してなさそう。内部的にはUSB 1.1フルスピードで話していて、D+/D-/GNDだけ結線されれば会話可能です。が、CC信号が処理されてないためか正規のType Cホストは信号を通しません。Type CメスからType Aオスに変換するタイプの変換器を通すと(変換器の作りに依存するかもしれませんが)Type Aのホストと話せるようになります。

正規コントローラは起動後一通りネゴして動作開始した直後、もう一度再接続をかけて、2回目のネゴでは別のVID/PID、デバイスデスクリプタ等を返します。HIDレポートのフォーマットも違うんですね。特に認証やプロテクトに関わる処理でもなさそうなので、これは良くわからない。というかHIDレポートも使ってない変な情報が多くて、正しく理解せずにどこかからのコピペで動かしてる?いずれにせよ、基本はこの2つ目のデバイスのマネをしてやれば本体は認識します。Wiresharkあたりで情報見ればあとはすぐ。

この時点ではUSBの信号をロジアナ経由でUSBプロトコルアナライザにかけてました。最初に一瞬見えるデバイスでネゴシエーションでも必要なのかと思っていたので。調査にはLinuxを内蔵させてるアケコンを使っていて、SSHでアケコン内にログインしながらUSB Gadgetドライバを試行錯誤で書き換えながら調整。USBのコントローラとしての挙動を好き勝手に書き換えて、本体側の反応を見てみるわけです。わりとどうでも良いと思ってた差異に反応して弾いてくるんだよね。

次はV-USBで変換器作れるように、最小限の構成を手探りで探す。HIDレポートのフォーマットを必要最低限にすると、なぜか左右入力が効かなくなるとか。良くわからない問題もあったりしたけど、たぶんこんな感じで。この結果を反映させたV-USBを使ったコントローラねぎ塩はロースピードできちんと動いてくれました。
という事で、あとは煮るなり焼くなり。もし本家の商売の邪魔になるようなら情報は即座に消したいと思いますので。権利者の方、こっそりご連絡ください。

2018年8月1日水曜日

ホリパッドFPS+を改造してアケコンを寄生させる

背景

最初に作った360コントローラベースの基板用コントローラ。中にLinuxが入っていてUSB GadgetモードでPS4のコントローラとして動作するようにもなっていたんですが、PS4のファームが更新される度に8分認証等が厳しくなる様子だったので、安心のため既存のライセンスされてるコントローラを乗っ取って接続する方針に変更しました。ベースとして考えたのは、わりと安くて定番でもあるホリ製のFPS+。良くも悪くもホリパッドは既にコントローラの代名詞ですし。実は自分、このパッドでPS4の魔法大作戦も1周しておりますので、遅延に関しても自分としては納得の範囲というわけです。また切り替えでPS3とPS4どちらでも使えるのも大きな利点。

基板配線


左の肉球みたいに赤丸ついてるところの大きい円。ここに記号の4ボタンに繋がる信号が出てました。BU/BD/BL/BRはそれぞれ、ボタン上/ボタン下/ボタン左/ボタン右の意味だと思われます。とても親切。そのまま△×□○に対応します。また小さい円2つにはR1とR2。こちらも印字の通りの信号です。また縦長の円のJP2には、上から順にR2、AD、R1と書かれており、R2とR1はこちらから取っても同じです。すぐ近くのJP3からも同じ信号が出てた気がします。ここで出ているADが基準電圧になっており、ボタンを押した事にするには、各信号をこのADと同じ電圧にしてやる(つまりショートしてやる)必要があります。R1だかはデジタルではなくアナログ入力なんですよね。また写真には写っていませんが、反対側にはL系の信号もあります。ADは共通のはず。また右端にある赤丸、ここのパッドには信号名が一切書かれていないので文字を入れておきましたが、画像の通り、上下左右の十字ボタンの信号がここに出てきています。

これ以外に、PSボタン、SHAREボタン、OPTIONSボタン、パネルのタップなどがありますが、これらは基準電圧ではなくGNDにショートさせる必要がありますので、一緒に使おうとすると少し面倒です。どうせアケコンでは使わないようなボタンなので、私は配線しませんでした。ちなみにOPTION、TAPDなどから対応する信号が出ています。SHAREボタンとかは基板の表側から引っ張る必要があってさらに面倒そうでした。アナログスティック部分も無視。


こんな感じで線を引っ張り出して、D-Sub 2列15ピンの拡張NEOGEO配置で繋いでいます。端子はケースを加工して裏から出します。



JAMMAのコントローラなんかではGNDにあたる信号が基準電圧(確か2Vくらいだった記憶)になっている事に注意して下さい。ショートさせるだけのタイプのボタンなら問題ありませんが、それ以上の事を期待してるコントローラだと正常に動作しないばかりか故障や火災に繋がりますので。このざっくりした説明で意味が分かる人だけどうぞ。

使用感

使えるボタンが十字ボタン、記号ボタン、LRの1/2ボタンに限定されてしまうわけですが、M2STG系のシューティングで遊んでる限りはこの範囲でコントローラのカスタマイズができるので、別段困ってはいません。最悪、ホリパッド側のボタンもそのまま有効なので、万が一コイン投入やらで必要になればオリジナルから補助的に操作すればいいだけの話。

また、ホリパッドには連射機能が搭載されているのですが、この連射切り替えは外部に繋いだアケコンに対しても有効でした。つまり、これらの信号から拾った入力よりも後で連射部分の信号加工をしてくれているようです。まぁ、普通に考えればそうなってるとは思いましたが。無事に動いてくれたのは嬉しい。

という事で、たいした情報じゃないですが、参考まで。