検索

Google
Web www.icefree.org

RSS of recent changes

 

まあじゃんコンパネ

2017-06-20 (火) 23:23:54 (1556d)

 このページは旧サイトからの転載です。


 麻雀基盤でゲームをするためには、麻雀用のコンパネが必要になります。それは、コントロールBOXでも筐体でも同じです。ここでは、PS/2キーボードの出力を変換して麻雀コンパネの代わりにします。ついでにコントロールBOXの機能もつけましたので、PCBから出ているコネクタを、PS/2キーボード・ATX電源・オーディオ出力に変換するコンバータのような形になります。
 キーボードなのでブラインドタッチができれば、手元を見ずに遊べるという利点もあります。

 これでお手軽にゲーセンでの恨みが晴らせるでしょう。

 JAMMA変換もしてみました。


試作1号の概観

 ようやく完成した1号機。と言いたいところですが、写真を撮った段階ではATXコネクタの接着が終わってません。ケースはタカチのUC-14-4-10AA(\1530)ですが、中はかなりひどい状況です。しかし、プリント基板を使えば、もう一回りくらい小さなケースにも綺麗に詰め込めるでしょう。あと、このケースは金属製で加工が面倒なので、実際に作ならばプラスチック製のケースにしておいた方が楽でしょう。
 材料費はケース込みで6500円くらいです。ただし、ATX電源本体、キーボード本体は含んでいません。参考までにうちで使っているATX電源は1980円、キーボードは980円でした。

mjadp.jpg

実際に使っている状態

メガシステム32のためにCBOXが立って
しまって安定性がいまいちですが、普通の
PCBの場合は寝るので、ちゃんと安定します。

front.jpg

表側

左上から、PS/2、オーディオ
ATX電源、モニタ、電源。

back.jpg

裏側

KELの4.96mmピッチ56ピンコネクタで、直接繋ぎます。

普通にやるときに必要なもの

・ゲーム基盤
 こんなんです。

Rim00001.jpg

・モニタ

 モニタは15kHzが表示できる必要があります。最近のWin用のモニタだとまず映りません。安く上げるには、X68kのモニタとか、タウンズのモニタ(新しいのはNGかも)とか、PC98の頃のTVチューナ内臓のモニタとか、8ビット時代のモニタ(21ピン)とかをジャンク屋で買ってくるのがいいでしょう。秋月あたりで売っているRGB15kHz=>Videoコンポジットなどの変換器を買ってきてTVに繋ぐという方法もあります。ただ、非RGBは汚いです。また、アップスキャンコンバータを使えば、Win用のモニタでもOKですが、ちょっと高いです。
 うちでは、X68K用のCZ−621Dをゲーム用に使っています。このモニタは、本来X68kとかX1で使うモニタなので、全ての基盤に対応できる保証はありません。業務用モニタでさえ、相性というものが存在しますから、これは仕方のないことです。

 基盤とモニタはどこかで仕入れてきてください。それらが無いとさすがにどうしようもありませんので。

・コントロールBOX
・中間ハーネス
・麻雀コンパネ

 この3つをパソコンのパーツを流用して作ります。
 話としてはPS/2キーボードの出力をPICを使って麻雀コンパネの出力にすることがメインです。

資料

麻雀コンパネの出力の仕様

凡例

4黄
(21,22)

コンパネから出てる線の名称は4で、色はおそらく黄色。基盤側のコネクタでのピン番号は、1PでPin21、2PでPin22。

3 橙
(1)
2 赤
(2)
6 青
(3)
10 黒
(4)
7 紫
(5)
4 黄
(21,22)
LAST
CHANCE
5 緑
(23,24)
TAKE
SCORE
8 灰
(25,26)
DOUBLE
UP
9 白
(27,28)
チーポンFLIP
FLOP
11 桃
(29,30)
カンリーチロンBIG
1 茶
(31,32)
STARTBETSMALL

ゲーム基盤側のコネクタの仕様

 JAMMAとはびみょーに違います(同じなのはコネクタだけという気もするけど)。
 JAMMAを含めた仕様は別ページにあります。

部品面番号番号半田面
GND5655GND
GND5453GND
+5V5251+5V
+5V5049+5V
(-5V)4847(-5V)
+12V4645+12V
+5V4443+5V
+5V4241+5V
GND4039GND
GND3837GND
3635
Coin Switch3433
2P132311P1
2P1130291P11
2P928271P9
2P826251P8
2P524231P5
2P422211P4
(SP-)2019SP(+)
Video Sync1817Video B
Video G1615Video R
Test switch1413(Analyzer Switch)
(Memory reset switch)1211
GND109GND
Coin in counter87
651P/2P7
1P/2P10431P/2P6
1P/2P2211P/2P3

ATX電源のコネクタの仕様

 電源側のコネクタを向かって見た場合です。

ATX.png

アナログRGB(Dsub15P)

dsub15.png

1 R
2 GND
3 G
4 GND
5 B
6 GND
7 Ys
8 GND
12 GND
13 GND
14 H-Sync
15 V-Sync
X68kモニタでは、
10 Audio(L)
11 Audio(R)

使用するICのピンアサインなど

PIC16F84

RA2118RA2
RA3217RA0
RA4/TOCKI316OSC1/CLKIN
!MCLR415OSC2/CLKOUT
Vss514Vdd
RB0/INT613RB7
RB1712RB6
RB2811RB5
RB3910RB4

4051B

RonはVss=GND,Vdd=5V時に470 Ohm(typ)、1200 Ohm(max)
HS C-MOSでは、40 Ohm(typ) (Vss=GND,Vdd=4.5V)

スイッチは、デジタル3〜20V、アナログ20Vppまで可能。
オフ抵抗は、チャンネルリーク100pA(typ) (Vdd-Vee=18V)

4116Vdd
62152
COMMON3141
74130
55123
INH611A
Vee710B
Vss89C

LM339

OUTPUT2114OUTPUT3
OUTPUT1213OUTPUT4
V+312GND
INPUT1-411INPUT4+
INPUT1+510INPUT4-
INPUT2-69INPUT3+
INPUT2+78INPUT3-

NJM4580

製作

大きく
・コントローラ部
・電源部
・ビデオ部
・オーディオ部
に分けてあります。基本的にコントローラ部以外はおまけのコンテンツです。
 電源部、オーディオ部は省略しても実用的には問題ありません。省略すれば、製作は幾分簡単になりますが、費用はあまり変わりません。。

コントローラ部

 PICを使ってPS/2キーボードから麻雀コンパネ出力に変換します。この回路1組で、1プレイヤに対応します。2Pが欲しいときはもう1組作ってください。
 複数のキーを同時に押すことを要求するゲームが存在するならば(※1)、そのゲームでは使えないでしょう。また、4051を2つ通しているので、オン抵抗が標準で940Ω(470Ω*2)ほどあります。最大では2.4KΩにもなります。これが問題となる場合には、74HC4051に置き換えれば、80Ω(標準)に抑えられます。さらにVEE=-6.0V、VCC=6.0Vにすれば、40Ω(標準)にまで抑えられます。

 特殊キーも5つ出力できます。割り当てはご自由に。コインスイッチやテストスイッチに繋げると良いでしょう。特殊キーは同時に複数のキーを押すことにも対応しています。しかし、あまり意味はないでしょう。

 キーボードとの対応は以下のようになっています。これはPICのソースレベルで変更が可能です。16進数の数値は、ソース内のテーブルで使用されている数値です。
 基本的に上2段(ファンクションキーと数字の列)だけで操作できます。A〜Nはアルファベットも対応しています。ポーカーなどで使うキー(DOUBLEUP等)にも対応しています。
 Mに対応するキーとして、M,¥、] があります。] はASCIIキーボード対策のつもりですが、もしかしたら間違っているかもしれません。
 スペースキーはNに割り当ててあります。また、チー・ポン・カンは、通常のコンパネと逆順に並んでいます(普通は、カン、ポン、チー)。

※1 複数キー同時押し
 やっぱりありました。
 ホットギミック快楽天(たぶん、ホットギミックも同じ)のテストモードでA+Bを要求する場面が存在します。ただし、この場合には素早くABを押せば回避できます。でも、他にも同時押しを要求するゲームはあるでしょうね・・・

キーボードとの対応

A 24A 1c
1 16
B 44B 32
2 1e
C 64C 21
3 26
D 84D 23
4 25
E 28E 24
5 2e
F 48F 2b
6 36
G 68G 34
7 3d
H 88H 33
8 3e
I 2cI 43
9 46
J 4cJ 3b
0 45
K 6cK 42
- 4e
L 8cL 4b
^ 55
M 30M 3a
\ 6a
] 5d
N 50N 31
BS 66
SPC 29
チー 70F1 05
ポン 90F2 06
カン 34F3 04
リーチ 54F4 0c
ロン 74F5 03
START 38ESC 76
BET 58F7 83
LAST CHANCE a4F8 0a
TAKE SCORE a8F9 01
DOUBLE UP acF10 09
FILP FLOP b0ScrL 7e
BIG b4F11 78
SMALL b8F12 07
特殊キー1Ins e070
特殊キー2Home e06c
特殊キー3Pup e07d
特殊キー4End e069
特殊キー5PDown e07a

 このソフトでは、キーボードからの信号を受け取るだけです。ホストからキーボードに対してのコマンドは発行していません。リセットもキーボードのパワーオンリセットまかせです。したがって、キーボードによっては正常に動作しない可能性があります。とりあえず、うちの安物キーボードではちゃんと動いてます。

ソース(fileps2mj.asm
 MPASMを使ってください。秋月のアセンブラではアセンブルできません。
 ちなみにうちのライタはAKI-PIC V3です。前はトラ技に乗ってたやつを使っていたのですが、やっぱりパラレルは調子がいまいちでした。これじゃどうしようも無いってことで、思い切って新調したのですが、開発がすごく楽になりました。・・・って宣伝してどうする(^^;怪しげな広告じゃあるまいし。
 ソースファイルにも書きましたが、クロックは適当でOKです。ただし、キー取り込みの安定性や消費電力を考えると4MHzが最適だと思います。
 コンフィグは、OSCはXT、ウォッチドックOFFにしてください。パワーアップタイマは、ONでもOFFでもどちらでも構いません。

HEXファイル(filePS2MJ.HEX
 HEXファイルを使う分にはどのライタでもOKです。

回路図(CE2形式 fileps2mj.CE2)
回路図(PNG fileps2mj.png)

電源部

 まず、ATXの電源をONにする必要があります。PSをGNDにしてやればいいのですが、電源に繋いだときに既にGNDレベルになっていると電源が入らないものもあるようです。ちなみに、うちの実験用電源は、スズメッキ線でショートさせているだけです。

 また、ゲーム基盤のコネクタは逆差しが出来るので、逆差しをした場合には電圧がかからないようにします。私の性格から言って必ず逆差しするでしょうから(^^;。
 初めは、47ピンと48ピンが通常はNCなのに対して、逆差しの場合GNDになることを利用していましたが、ゲームによっては47,48ピンが−5Vとして使用されている可能性もあるので、別の方法に切り替えました。
 今の方法は、低い電圧(600mV)を本来ならGNDになっているべきところにかけて、コンパレータでGNDレベルに落ちているかを検出しています。コンパレータは、単一電源でもGNDレベル付近で使えるものが必要です。この回路では、正しい接続をしたときに、チェックにつかう端子とGND間の抵抗が1Ω以下にならないとNGです。もし正しい接続でも1Ω以上になってしまう場合には、チェック端子に繋がっている抵抗(10KΩ)をもっと大きな値にしてください。小さな値にすればもっと精度が上がりますが、その必要はないでしょう。
 テスト入力として使う端子は、56ピンのGNDで良いでしょう。当然ですが、53、54、55ピンのGNDと直接繋げたりしないように(^^;

 ATX電源用コネクタが入手できない場合は、パソコンショップでATX電源の延長ケーブルを買ってきてぶった切るのが手っ取り早いです。値段は800円くらいです。

回路図(CE2形式 filepower.CE2)
回路図(PNG filepower.png)

ビデオ部

 ゲーム基盤からの同期信号は複合同期なので、分離する必要があるかもしれません。少なくとも家のX68kモニタ(CZ-614D)の場合では分離する必要がありました。コンポジット信号と違って、同期信号しか流れていないので、ここではディスクリートで簡単に分離しました。ICはHCじゃなきゃダメです。LSは使えません。15kHzの信号を基準に設計されていますが、24kHzぐらいなら追従できるかもしれません。
 余裕があれば、RGBそれぞれの信号もアンプを通しますが、面倒なのでそのままです。
 水平位置を変えられると便利なのですが、やっぱり面倒だったのでそのままです。

回路図(CE2形式 fileVIDEO.CE2)
回路図(PNG fileVideo.png)

video.jpg

上から入力信号、V出力、H出力
仕様上、水平同期が1つ余計に出ます

オーディオ部

 PCBからはスピーカ出力しかありません。
 RCAで普通のオーディオ出力があると便利なので、レベルを落として作ります。面倒なのでゲインは手動調整です。通常、スピーカのマイナス端子はGNDですが、メガシステム32の場合はGNDではないので(BTLです(^^;)、アイソレーションのために入力にトランスを入れています。面倒なら差動でアンプに入れてもいいのですが、相手はスピーカーで鳴らすことしか考えていないので、正常に動作しない可能性があります。

 基本的には、ここに付いている10kのVRは1つのゲームPCBで設定したら他のゲームでも変えずに使い、代りにゲームPCB上のボリュームで前のゲームと同程度の音量になるように調整します。また、10kのVRもゲームPCBのボリュームも、音量が最低になるようにしてから徐々に上げてください。出力電圧の制限をしていないので、最悪の場合、繋いだアンプを壊す可能性があります。ちなみに、AUDIO出力端子に8Ωのスピーカを繋いで、VRを最大にすると、入力に直接繋いだ時と同じくらいの音量で鳴ります。

 ±12V電源で動作させていますが、±5Vでも十分だと思います。

回路図(CE2形式3KB filemc_audio.CE2)
回路図(PNG filemc_audio.png)

プリント基板

 プリント基板用にPCBデータを作りました。とりあえず詰め込んだだけですが、参考程度にどうぞ。ただし、HiWireの.pcb形式です。
 基板サイズは、120*82以上必要です。

 HiWire?データ(filemjadp.pcb)

JAMMA対応

 さすがにキーボードをスティックの変わり使う気はありませんが、同期分離や電源だけでも使いまわしたいので、中間ハーネスを入れてJAMMAに対応しました。
 ちょうど、通常のJAMMA to 麻雀のハーネスを入れる変換の逆になります(^^;。まぁ、麻雀中心のコントロールボックスがあってもいいじゃないですか。

jamma.jpg

 コントローラには、プレステ用のホリFightingStickPSを使っています。SS用でもいいのですが、PS用の方がボタンが1個多いのです(SELECT)。当時(7年くらい前)、PSを持ってないのに、2つもこのコントローラを購入したのは、そのためです。でも、その直後にサターンを買って悲しい思いをしましたが(^^;
 PSの通常の出力をPICでパラレルに変換することもできますが、直接内部からパラレルで引っ張ってきています。通常のPS出力もあるので、この改造のためにPSで使えなくなるということはありません。
 水色のコネクタがついた怪しげな基盤は、コントローラをつなげるためのコネクタがついているだけで、特に付加回路があるわけではありません。

 ちなみに、JAMMAはオーディオ出力端子を備えていますが、コネクタを新たにつけるのは面倒なので、麻雀基盤と同様にスピーカー出力を利用しています。この方法ならば、カードエッジとコネクタの間の配線が2本増えるだけです。
 コインスイッチは、スティックのSELECTボタンを使うと良いでしょう。