2018年11月27日火曜日

「TV麻雀ゲーム」をコントローラだけ拝借

「TV麻雀ゲーム」という、一般名詞ではなく商品がありまして。ビデオ入力でテレビに繋げて遊ぶ麻雀ゲームです。内容的には8-bit時代の代物なんですが、3000円以下で売っていて、コントローラとして流用するにはわりと良さげな感じがしまして、1つ確保してあったやつをこの週末にばらしてみました。アーケード基板と互換性があればラッキーとか思ってたんですが、まったくさっぱり。


中はこんな感じ。なんとなくマトリクスで配線されてるんですが、まったく異なる配列になっていました。しかも直接信号を読むわけじゃなく、右側の黒玉マイコンが処理してからゲームを動かしている左側の黒玉マイコンに渡しているようです。

ケーブルのところを見ると、一応信号名が振ってあり、順番に

  • VDD
  • OUT0
  • OUT1
  • OUT2
  • GND
  • P2D4
  • P2D2
  • P2D3
  • P2D1
  • SEL
となっているんですが、信号名の数は10個、実際の線の数は11本。あれれ……という事で、あんまりあてになりませんでした。それでも信号名からなんとなくマトリクスで読み出してるんじゃないかって期待があったので、ホスト側のマイコン、コントローラ側のマイコン、それぞれに電源入れて、出力がどうなるか調べてみました。どうなるか、というのは信号がHIGHになるかLOWになるか、また軽くpull-up/downした時に信号を動かせるかどうかで出力なのか入力pull-up/downなのかを判断します。

結果、OUT0/1/2がホスト側出力と判明。負論理でone-hotを出しているように見えたのでやっぱり普通にマトリクスかなーって思えたんですが……Arduinoからマトリクス想定で信号を入れても、反応するボタンは数個しかありませんでした。

仕方ないので再びホストとコントローラを繋げて、間の通信をロジアナで観測。結果、無駄に3出力4入力も使うシリアル通信だと判明。中身すっかすか。

足りなかった信号名はP2D1とSELの間の信号で、仮にENDとしました。ホストからの出力はOUT2はENABLEだと思えば良い感じ。OUT0は通信開始時に半クロックだけHIGHになる。まぁ、クロックのエッジからこれくらい経ったら読んでねってマーク(で半世紀前)
ならまだわかるんだけど……コントローラ側は信号読まないので存在価値は謎。シフトレジスタのリセット信号わざわざ送ってるのかな?データについてもスカスカなのにわざわざneg edge/pos edge両方で信号送り出してて謎。そしてEND信号は最後のサイクルで終了マークとしてHIGHになります。

あと、セレクトボタンがホスト側の基板に載ってる関係でホストから配線してあげてるみたいで、これがSEL信号の正体。ただ、この信号を立てると立てた間ずっとP2D1が立ち上がるという……。オリジナルのホストはタイミングを合わせて10サイクル目だけ信号を出して、P2D1から戻ってくる半サイクル信号を見て「うん、よしよし」ってなるらしい。直接読んだほうが早いのになぜ?!

という事で、ツッコミどころ満載でしたが……まぁ、読めればいいので。例によってOrange Pi ZeroにGPIOで繋いで、キーボードとして認識するようにしてみました。そのままビデオ入出力も奪って、現在はスーパーリアル麻雀専用機と成り果てております。ピンヘッダつけたら微妙にケース内に入らなくなってしまったので、あとで電池ケース部分を壊してそこにZeroを内蔵しようかと。



あと、ホスト側の基板からボタンを取り外そうとしたら、ボタンが粉々に砕けてしまったため、代替になりそうなボタンを取寄中……。

わりとどうでも良い話でしたが、なんというかこのプロトコルの脱力感を誰かと分かち合いたくてorz


他の基板持ってる子達のデータも詰め込んでみた。コンポジットビデオ出力なんだけどインタレースなので、2画面分出してもわりと綺麗に表示できたりはする。

今回作った「TV麻雀ゲーム」をOrange Piでキーボードとして見せるユーザーランドドライバのコードはこちら。たぶんこれ、RP0で作るほうが正しいと思う。薄いから簡単に組み込めるだろうし。わざわざビデオ出力で喜びたいって変わった人向け。

2018年11月25日日曜日

疾風魔法大作戦(修理奮闘中)

出会い

ちょっと悩んだけど、安いジャンクを見かける機会も少ないし、疾風で3作揃うし、という事で修理できる確信はなかったんだけどKVClabさんで疾風魔法大作戦のジャンクを購入。店員さん「お勧めしません」「無茶しやがって」とか、なんで売ってるのそれって感じですが。

とりあえず店頭で画面見せてもらった時の見込みでは故障個所は最低で2つ。1つは画面が水平同期方向(縦モニタ用だから縦方向)に尾を引く現象。もう1つはオブジェ化け。これは線が入るとかじゃなくて、違うオブジェが表示されるタイプ。

(写真は自宅で撮影)

前者は飛翔鮫の経験から後段で面合成してるあたりのラッチが弱ってくると起きる現象ってのは想像できる。古い基板なら間違いなく74シリーズの交換で済むところなんだけど、この時期の基板だとカスタムの中の可能性もあり少し微妙……なんだけど、のすけさんのガレッガ修理の話で、東亜系ライジング基板はJAMMAコネクタ付近に出てる74シリーズでやってる事はわかってた。

後者も過去の経験からすると、オブジェクトチップ読み出しの際のアドレス線が化けて違うオブジェクトが選択されて起きる現象。正しく表示される物も混在している、化けるキャラはBG面、スプライトともに混在している、というあたりからROM読み出し時のアドレスかな?という想像はできた。原因は様々で基板上のショートや断線、ROMの劣化、半田クラック、あとはアドレスを出力する側のトランジスタ故障あたり。最悪カスタムの出口なんだけど、結論から言うと最悪のケースだった(笑)ので、まだ奮闘中、というわけで途中経過報告です。

水平の滲みの修理


特定は凄く簡単でした。まず、のすけさんが記録を残してくれていた通り、JAMMAコネクタ付近に273が並んでいる事。そして御丁寧にもそのうちの1つに鉛筆でバツ印。どうやら前のオーナーが修理挑戦して諦めた類ですね。よくよく見るとカスタムに近いSRAMも交換した後がある。こっちはオブジェクト化けにあたりをつけて交換したけど効果なくて諦めたって感じかな。という事でバツ印の273をロジアナで観測するところからスタート。


こんな感じで「俺たちは雰囲気でフリップフロップをやっている」みたいな感じの適当な出力が出まくり。という事で、こいつを交換したところ滲みは完全に直りました。



オブジェクト化け


さて、難問のこちら。まずは化けた場所の特定から。ROMの足を弱い抵抗でpull-up/downして問題の個所を予想する方法もあるんですが、今回はエミュレータを使用。特定のアドレス線が0/1に張り付いた場合の読み出し結果を再現するようROMを変換するツールを作ってありまして。変換したROMでゲーム起動。基板と同じ化け方が出てこないか調べたところ、A18が0に張り付いている時の化け方だとわかりました。という事でROMのA18を抵抗で吊ってみたところ、確かに化け方に変化が起きました。という事でA18に繋がっている物を調べたところ、マスクROM2枚とカスタムチップだけ。ショートしてるような個所も見当たりませんでした。

時々A18が1側に張り付いて、化け方が反転する事もありました。場面によっては正常に近い状態の画面が出ます。



次の手を考える前にオシロで波形の確認。1V程度の振幅で矩形の信号が出ていました。この時点では出力はまだ出ていて、壊れたマスクROMでGNDに引っ張られている可能性を期待していました。という事で頑張って大きなマスクROM2枚を引き剥がします。この基板ではオブジェクト用のマスクROM2枚とサウンド用のマスクROM1枚が直接半田で固定されてます。


ヒートガンで350度くらいに熱しながら、IC引き抜く工具でROMを強引に取り外します。このサイズになると均等に力も入らないし、基板もかなりしなった状態になるので心臓に悪いです。表面に少し傷がついて配線が露出してしまったのでこの後ショートがない事を確認しつつソルダーレジストを再塗布してます。残った半田は吸い取り線で処理しつつ、やっぱり残る電源ピン。pull-up/downされてるような端子も同じですね。やっぱり経年で合金化が進むのかなぁ……。今回は残った部分は吸い取るのを諦め、0.5mmのハンドドリルで削りだす事にしました。試した限りこれでランドが取れたりすることもなく、無理して温めまくるより時間もかからず、基板へのダメージも少なそうです。

で、この状態で信号線を再確認してみたのですが、やはり振幅1V程度のままでした。この信号が正しい信号ならレベル変換して再利用する手もあったのですが、改めてオシロで確認したところ、となりのA17の変動と一致している事がわかりました。つまりA18は浮いていてA17の信号をノイズとして拾って振動している、と。このレベルでノイズを拾っているとなるとトランジスタ故障というよりはパッケージ内で断線しているのかもですね。念のためカスタムの出口(160番ピン)でも信号をとってみましたが結果はかわらず。途中で断線という希望も絶たれました。

という事で最後の手段はA17の出力論理を推測して外部回路で生成する、と。当初は付近のSRAMから使うオブジェクトのインデックスを拾ってきてるだろうから、その線を覗いて簡単な論理被せれば作れるだろう、くらいに思っていたのですが……波形観測したら、そうもいかないようで。ちょっとここで苦戦してます。

色々とソケット化された魔法基板
これはこれで嬉しい(ただし動作すれば)

現在観測、想像している範囲だとオブジェクト用のROMは、16bitモードを2枚並べて並列32bitで使用。各pixelが4bitなのでオブジェクトの横8pixelを同時に読みだせます。20bitのアドレスの内訳は、最上位bitがBG/スプライト選択、下位3bitでライン指定、間の16bitがオブジェクト指定です。壊れてるA18はオブジェクト指定の最上位bitにあたります。

カスタム付近のSRAMは8kB x 2です。これもアドレス同時指定で16bitで読み出してます。カスタムは6.75MHz動作で、これがpixel clockと一致しているはず。SRAMはCPUからは直接は見えなくて、カスタム経由でアドレス指定、データ読み書きの手順で触ります。ので、実際のフォーマットはCPUから見えている形式と違う可能性もあり、エミュレータのソース通りとも限りません。そもそもSRAMとオブジェクトROMの読み出しがpixel clockなんですね。オブジェクトROMが8 pixel分同時に読み出せる事を考えてもpixelあたり8サイクルしかない。BG3面とスプライトがあり、BGのアトリビュートを読むのに2サイクル、スプライトで1枚あたり4サイクルって考えると、あれ?足りない……。となるとBGは16x16かな?さらにスプライトは256枚中どれを表示用に読み出すか事前に選定する必要がありますが、HBLANK期間は推定112サイクルしかないので256枚分処理するのは無理。って事で、色々と工夫されてそう。16kBを外に置くくらいなのでカスタムの中のメモリはラインバッファを構成する最低限になってそうだし。

という事で、この辺は自分でコード書いて基板で走らせながら調査を進めるしかなさそう。まぁ、この基板で自分で書いたコード動かすってだけでも楽しいかな。

ちなみにBGやスプライトの原理についてはお気楽古典電子工作のZ80 ゲーム機を作ろう(その6)(その7)に説明があったり、世の中には古いアーケード基板の回路図が出回っていたり、と。参考になる資料は多いのでありがたいです。実際組んだことはないけど、原理は理解できてるつもり。フレームバッファの時代になるまで、基本的な考え方は変わらずに進化してるので、今回もなんとか解析できないかなぁ……と。まぁ、すでに値段分は楽しんだ気になってるわけですが……。あ、学生実験でBG1面+マウスポインタ用スプライト1枚って論理は組んだ事ありました。

2018年11月11日日曜日

コットン・オリジナル

出張中の移動時間を使ってPS版コットン・オリジナルで練習してたんだけど、アーケードとの違いに気づいたのでメモ。とりあえずPS版はワンコイン達成したけど、アーケードはあまりやってないので気のせいな事もあると思う。という事でツッコミ歓迎。

以下、アーケードと比べたPS版の特徴

前半が易しくなっており、全体的に遊びやすく再調整されてる

・中/大ボスを倒すと大宝石が出るので対空のパワーアップが全体的に早い
・初期の対地の威力が底上げされているので積極的に当てるとボスを瞬殺できる
・宝石で色付き時に弾を数発当てても色が変わらず、魔法アイテムが集めやすい
・1面中ボス周囲の岩が破壊可能
・初見殺し系の弾速が遅めに調整されてる
・ボーナスで湯呑の数が若干少なくシークレットボーナスを取りやすい
・2周目が存在しない

音源が違う

・アーケード版はFM音源だけど、PS版は違う。PSの音源使ってるのかな?
・負荷があがってもテンポ落ちしない
・シーケンスが違う箇所もある(1面中盤のメロディラインとか)

その他、些細な事

・4ボス残骸が湯呑より表示優先度が高くシークレット狙っても湯呑が見えず事故る
・フェアリーの障害物当たり判定が違う(3ボス開幕で投げるとアーケードのみ刺さる)
・エクステンド時に「増えた」と喋らない
・たまにシステムエラーで落ちる(えー
・移植版エンディングロールの追加



全体的にみて完成度はPS版オリジナルの方が高いのかなぁ、という印象でした。

ちなみにX68k版は完成度の高いアレンジ移植。後半に進むに従ってオリジナルとの違いが大きくなり、中盤以降はほぼ別ゲーム。これはこれでやり込んでみたい気がする。


2018年9月29日土曜日

ジャンピュータの画面反転パッチ

前回のジャンピュータ配列の続きです。

Twitterに投稿した時の写真を見て、やえ㊇なㄘさんから「これって画面逆さまに映らないのですか?」というコメントを頂きました。
実際には画面は反転していて、写真の段階で180度回転していました。だからいつもモニタ左側から撮った写真が多いのに、この時の写真は右側から撮ったように見えてる。

ジャンピュータは家庭用モニタに映すと上下が反転するんですね。いわゆる1Pと2Pで画面が反転するカクテルモード、ようはテーブル筐体前提なんですが、家庭用に映すと1Pが反転側なんです。その後の時代には当たり前のようについていた反転スイッチがDIPに存在していないので家庭環境で利用するには何かと不便。アテナとかも同様みたいですが、ROMにパッチをあてて矯正補正している人をみかけたので、同じようにできないかと調査はしてありました。
というお話をしたところ、どうもやえ㊇なㄘさんの基板は自分の持っているものとは構成が違う模様。ROMの数もサイズも違い、お手数をかけてしまいました。修正が必要な場所を探すための情報をお伝えしたところ……
やえ㊇なㄘさんの基板はタイトルに「サンリツ ギケン」の文字もあるし、基板構成も良く知られたタイトー版T.T Mahjongと同じように見えます。一方で自分のところにある基板はこんな感じ。


という事は、自分のやつ(C)なのかなー。あるいはROMの大容量化と基板の小型化が進んでいるので、ライセンス後の日本物産製とか?Wikipediaによるとタイトーも日本物産も商標問題があって名前を変えて売っていたらしいんだけど、日本物産はジャンピュータの名前で出してるチラシがあったみたいだし、その時期の物の可能性もなくはない。今となっては真実を知るのは難しいですね。あ、ちなみに1つだけ載せ替えられているROMは自分も画面反転のためにパッチをあてたROMを刺したからで、オリジナルは別途保存してあります。


今度こそ正真正銘、上下が正しく表示されているタイトル画面です。

2018年9月9日日曜日

NAOMIとセガサターンのコントローラを繋げる

今までNAOMI使う時は自作のJVS-JAMMA変換器を使ってたんですが、バーチャロンの入力に興味を持ったことがきっかけでサターンのコントローラを繋げる変換器を作る事に。

バーチャロンのツインスティックについては、とある魔術の〜でタニタさんのプロジェクトが話題でしたが、やはり目標が難しかった。残念……って事で実際にツインスティックの入力がどうなっていたのか調べ始めたのが発端。アナログかと思ってたけど実はデジタル入力だったんですね。そんなわけで、実際には(方向+2ボタン)×2で合計12ボタンってだけの簡単な装置でした。サターン用のツインスティックならヤフオクで1,000円前後で手に入りますので、今押さえておくのが吉かと判断しまして。サターンのコントローラは2bitの選択信号と4bitのデータ入力で4×4の16ボタンの入力が取れるようになっていて扱うのはかなり簡単な類いなんですね。

通常のサターンパッドだと入力の組み合わせはこんな感じ。データ側の信号はactive lowで、入力側でpull-upが必要です。sel[1:0] = b11の時にdata[2:0]が0b100の固定値を返すので、これでコントローラが刺さっているかどうか判断できます。

sel[1]sel[0]data[3]data[2]data[1]data[0]
00RXYZ
01StartACB
10
11L100

これがツインスティックだとこんな感じになる。わりとサターンパッドの物理的な配置が考慮されてて、ツインスティック向けの操作をパッドで遊んでもある程度なんとかなるようになっています。左スティックがそのまま方向ボタン、トリガーとボタンがL/Rに対応して、右スティックはサターンのXYZ/ABCボタン中央付近が上下左右に対応し、両端でトリガー、ボタンに対応しています。

sel[1]sel[0]data[3]data[2]data[1]data[0]
00L ButtonR →R ↑R →
01StartR TriggerR buttonR ↓
10L →L ←L ↓L ↑
11L Trigger100

あと、確認していて気づいたんですが、サターンのコントローラはGNDさえ通していれば動作しちゃうみたいです。あれ?って事は中でもpull-upされてて、pull-up経由で電源漏れてきてるのかな?ちょっと未確認です。まぁ、ロジックIC数個とスイッチだけで作れそうな構成ですしね。同時押しすると流石に黙るとは思いますが。

いずれにせよ、信号線が6本しかないのでJAMMAに変換するより配線が楽で助かります。今まで通りArduino Nanoベースで作るなら、今回はやらなかったけど、2P分のコネクタまで用意する事も可能ですね。

一方で、これをNAOMIに繋げようと思った場合、JVSの入力信号にどう対応させるか。JVSは入力信号の標準配置があって、2P対応してると基本こんな配置になります。

b7b6b5b4b3b2b1b0
B1TestTilt 1Tilt 2Tilt 3----
B21P Start1P Service1P ↑1P ↓1P ←1P →1P B11P B2
B31P B31P B41P B51P B61P B71P B8--
B42P Start2P Service2P ↑2P ↓2P ←2P →2P B12P B2
B52P B32P B42P B52P B62P B72P B8--

で、これがバーチャロンの場合には以下のような感じになっていて、1P/2Pそれぞれの方向+2ボタンが左スティック、右スティックそれぞれに対応しているようです。

b7b6b5b4b3b2b1b0
B1TestTilt 1Tilt 2Tilt 3----
B2StartServiceL ↑L ↓L ←L →L TriggerL Button
B3QM-------
B4--R ↑R ↓R ←R →R TriggerR Button
B3--------

ここまで分かればあとはちょろっと既存のコードをいじるだけです。ちなみにNAOMI側の配置は先に調べてあって、元のJVS I/Oボードの方にも方向+4ボタンの一般的なコントローラで無理やりバーチャロンを操作するための謎の修正を入れてあります。ボタンはL-Shot/Shift/Turbo/R-Shotみたいなアサインになっていて、Shiftを入れてると方向キーで旋回、ジャンプ、キャンセルができるようになる感じですね。

で、とりあえず作ってみたプロトタイプがこちら。


コントローラ用の端子は延長ケーブルを半分にして作りました。Amazonだと2,000円前後かなぁ。AliExpressで探せば300円くらいで見つかるはず。たぶんモノは同じで、少しサイズが甘い。コントローラによっては接触不良が出るので、その場合は間に1〜2mmの物を挟んで端子同士が密着するようにしてやればOKです。

そうそう、前回はたまたま気づかずに正しく間違えたんだけど、JVSの仕様書に書かれてるSeries Bコネクタの配列、間違ってますね。Zの順で1から4ではなく、左上から時計回りで1から4。USB Type Bと同じなのが正解です。


その後、基板に乗せて配線。ブレッドボードの実験からそのまま持ち込んだので、サターンのケーブルとかArduino Nanoなんかは下駄つき。これをいつものケースに入れてデコレーション。

という事で完成。JVSはUSBの電源相当の線がSense信号になってて、別口で電源用意しないといけないのが残念です。いや、他にも色々残念ですが。

ソースコードと回路の詳細についてはこちら。そうそう、僕が作っている物の改造や基板化などは、ご自由にどうぞ。質問があればTwitterとかで気軽に聞いて下さい。

Startをコインにして、L/Rを1P Start/2P Startにも配置。他の入力は1Pだけじゃなく2P側にも反映……とかやるのはありかも。JAMMAは同じような方法で1P/2Pを切り替えて遊べるようにしてます。コード的にはコイン入力SWは別口で入れてありますが、自分は面倒なので実装しなかったんですよね……でも、コイン入力ないと、まもるクンで隠しのふるるが出せない……。

2018年9月3日月曜日

7月後半から8月のゲーム:3D/G、ぐわんげ、スプライツ、ガレッガ、ほか

ゼビウス3D/G

前回の予告どおり、机に常設してる基板はゼビウス3D/Gになりました。前回のエントリで書いた気もするけど、このゲーム「STGの作品別難易度を格付けするWiki」で格付けされてないので難易度が不明。まぁ、この格付けも傾向が違うタイトル通しの相対評価がアテにならない事もわかってきたし、そもそも個人の得手不得手があるんだけど。たぶん僕にとっては25前後になる気がする。つまりは相当に難しい。まぁ、難しい原因が情報不足ってのもあるんです。それこそスペシャルフラッグ出せなくて残機足らなすぎとか、そういうレベルで辛い。全7ステージのところ、現状は5面道中までで止まってます。
それはそうとこのゲーム、20年経ってようやく気づいたというか。それなりに忠実だと思っていたPS版の移植、画面周りが大きく違っていたんですね。当時はアーケード版をそこまでやってなかったんで気づかなかったな。


上が基板で下がPS移植(をPSP上でプレイ、スクリーンショット化した物)。おそらくはポリゴン数を減らしたというよりは、グーローシェーディングを切ってるのかな。自然物は滑らかに、人工物はポリゴンらしさを活かしたデザインって棲み分けだったんだけど、むしろ全体にポリゴンらしさを押し出した移植版の方が全体的に統一感もあり、仮想空間にダイブして戦ったる感がむしろ好みとも言える。

まだまだクリアは遠そうだけど、間にコンシューマはさみつつもう少し頑張るつもり。

ぐわんげ

360版。シューティングコレクションについてるダウンロード版なんだけど、このゲームはcave作品の中で唯一Xboxの後方互換対応なのね。そんな事もあってリビングのOneや自分の部屋のOne Xでもぱっと遊べるのが利点。で、ひさしぶりに360モードを遊んでみました。んで、なんとか1CC。
回復アイテムの条件はfacebookで教えてもらったので大丈夫w

ティンクルスタースプライツ

NEOGEO miniが来たので試しプレイ的に1CC。ママん強いよ。

バトルガレッガ

M2STGにて再び真面目に練習中。ぼちぼちラス面まで行けるようになってきた。Quick Load使って6面あたりからやり直すとクリアできる事もチラホラ……って感じなのでクリア近いと信じたい。しかし、初めて6面いけるようになってから7面いけるようになるまで、1年以上かかってた。
ちなみに、こんな感じで。Xbox One版はスコアラー全然集まってなくてな。
同じくらいのスコアでもXbox Oneならベストテン、PS4だと400番付近デス。
今の所、BH mkIIがワンコイン最高記録でございます。

ストリートファイターV

なんか安売りのタイミングで買ってしまった。自分は格ゲーのコンボっていうと鉄拳2のポールで10連コンボやってたくらいで。月華の剣士もそれなりにやってるけど、ほぼほぼコンボなし。それと比べると最近のゲームのコンボはタイミングシビアだなぁ……って感じで苦労してます。まぁ、今どきリュウとか使ってるのもいかんよね。みんな対戦慣れしてるキャラだろうし。

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系のシューティングで遊んでる限りはこの範囲でコントローラのカスタマイズができるので、別段困ってはいません。最悪、ホリパッド側のボタンもそのまま有効なので、万が一コイン投入やらで必要になればオリジナルから補助的に操作すればいいだけの話。

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

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

2018年7月27日金曜日

育児休暇で三ヶ月がっつり会社を休んだ話

自分の直前に育休を取得していた同僚がエントリを書いていたので、自分も制度の普及の助けになれば、とエントリを書いてみます。そしていざ書いてみたら文字ばかりで面白みがなくなってしまったので、写真をちらほら追加。


休暇中に妻が作ってくれたマグカップ

我が家の子育て状況

前職で2人、現職でさらに2人の子供を授かりました。妻は漫画家で元々は共働きでしたが、2人目が喘息で保育園に預けられなくなり、連載を段階的に切り上げ、現在は専業主婦としてやっています。

育休の報告は色々ありますが、4人の子供を持つ例はあまりみないので参考までに。上の子達はある程度大きくなり自立してきてはいますが、大きくなったなりの別の手助けが必要だったりはします。

会社の制度としては3人目の時は育休は1ヶ月でした。それが昨年あたり他の海外オフィスと同等の福利厚生水準に引き上げるべく3ヶ月に変更になりました。今思うと4人の子供がいる状況で1ヶ月で仕事に復帰するのはかなり大変だったと思うので、タイミングの良い制度変更に感謝しています。

思うに本社のあるアメリカでは、国を出て単身で留学し、そのままパートナーを見つけて海外生活を始める夫婦も多いのではないかと思います。言葉も文化も違い、親や親戚の助けも借りられないまま子育てをする。それが当たり前の国だからこそ育児サポートも手厚いのかもしれません。日本ではまだまだ家庭を女性に丸投げして会社の事だけ考えていればよかった世代が現役で、影響力も強いです。男女雇用機会均等法なんていう当たり前の事を言った法律が、ファミコンより新しいものである事を思い出すべきでしょう。お茶汲みしかさせてもらえずに大学に戻って教授になった優秀な女性の話を直接の上司から聞くこともありました。変化にはまだ少し時間がかかるのかもしれません。この辺りについては最後に育休中の事件・感想として少し意見を添えました。

長女(小学5年)

月曜日 20:00:SAPIX 迎え(行きは子供だけ、帰りは夜遅い電車と夜道が危険なので)
水曜日 20:00:SAPIX 迎え
金曜日 20:00:SAPIX 迎え
土曜日 15:50-18:00:ヤマハ音楽教室(個人・グループ) 送迎(遠いので車が必要)

これらの送迎は、もともと僕の担当でした。また長期休暇中には集中的に勉強をみてやったりしていて、わりとガッツリ時間を取られます。
もはや妻より大きい……

長男(小学3年)

水曜日 16:10-17:25:ヤマハ音楽教室(グループ) 送迎
木曜日 16:30-18:30:SAPIX 送迎
土曜日 16:00-16:40:ヤマハ音楽教室(個人)送迎・付き添い

水曜、木曜の送迎は時間が早いため、妻が担当していました。土曜は長女の送迎とセットで僕の担当です。

末っ子として育った時間が長く、三つ子の魂的には末っ子マインド。早生まれでもあるため、甘えん坊で常に次女と両親をとりあっている真正かまってちゃん。学校でもよく問題起こして先生から連絡が……。
わんぱく男子って感じで、いつも苦労させられます

次女(2歳)

習い事もないけど、学校(幼稚園)もまだなので一日中甘えて大変。多少の一人遊びはするようになったけど、基本はスーパーかまってちゃん。つい先日まで末っ子だったわけだからなぁ……。子供たちの中では一番行動力があり、なんでも自分でやろうとするのだけど……年齢ゆえに失敗ばかりで、それがまた手がかかる。上の子から順に、育った家庭環境が賑やかになるにつれ、より賑やかな子が育つようになって……大変です。

出産前にあまり手がかけられず、劇場版ドラえもんをひたすら見せていたら、すっかりドラえもん好きに。買い物の際にも自転車の子供シートからはいつもドラえもんの歌。「空を自由に〜」を「そーんなっ、ずーるい!」と歌うのが面白い。っていうか、一通り見せても一番気に入って歌ってるのは僕らが聴いた昭和時代の主題歌なんですね、不思議。右側の絵はドラえもんではなくドラミちゃんらしい(劇場版では出現頻度高いからなぁ)。

次男(0歳)

今回産まれた第四子。流石に四人目ともなると、あまり赤ん坊を育てる苦労は感じてないかも。すでに夜はしっかり朝まで寝てくれる。幸いな事に、4人育てて夜泣きで苦労したのは本当に数回程度。その点では楽をさせてもらっています。僕自身が毎日朝から晩まで泣き続けの赤ん坊だったらしいので……なんか申し訳ない。

出産前

3月頭、子供のピアノの発表会の最中に妻の体調が悪くなり、そのまま病院へ。切迫早産で陣痛が数分間隔のところまで進み、経過によってはこのまま産むしかない、という状況でした。その後、回復して家で過ごすことができましたが、基本的には絶対安静のため、この時点から5月の出産までが僕的にはもっとも辛い時期でした。

ちなみに妻は早産体質で、1人目の時には半年入院。2人目はさらに早い時期から切迫早産を診断されていたのですが、上の子が小さかったこともあり、長女と一緒に妻の実家で自宅療養してもらっていました。当時はスパコン京の開発の大詰めだった事もあり、僕は仕事に打ち込まざるを得ない状況でした。働く人間が出産・育児にどう関われるのかは、本当に仕事次第だという事を身にしみて感じています。

3人目からは病院が変わり、前回まで切迫早産だった事を伝えても「そんな兆候はないから普通に生活して良い」と言われていたのですが、半信半疑だったので半年くらいは必要ない限りは寝たきりの安静生活(最低限の家事のみで外出は控える)をしていたと思います。この時に切迫にならなかったので4人目でも兆候がないと言われた時は「もう大丈夫かな」と思い、プチ安静生活(子供の行事くらいなら外出しちゃう)をしていたのですが、やはり体質は体質でした。冷静に考えてみたら3人目の前に1度不幸な結果もあったので、慎重であるべきだったのかもしれません。

この時期の基本戦略としては、金で解決できる物は金で解決し、どうしても足りないところでは親やママ友の助けを借りる、というものです。具体的には、平日昼間にある習い事と家事が問題なのですが、

・長男のヤマハ(グループ)→週一で親に来てもらい、送迎や家事で助けを借りる
・長男のSAPIX→送迎でママ友の助けを借りる
・家事→お弁当や出前、外食などを積極的に利用し、金で解決

で、なんとかしていました。同僚からは家政婦を複数人雇って……なんて例も聞きましたが、状況とタイミングによってはそういう選択も、背に腹は代えられない、と飲むしかないでしょう。多くの問題は金で解決しても自分の時給よりは安く済むはずなので、時は金なり、冷静に損得を判断します。相談すればこの時点から会社を休むこともできたでしょう。流石に有給にはならないと思うので、そこもメリット・デメリットを考えて判断します。

仕事の方はこの時期、新機能のローンチを1つと、数ヶ月がかりの大規模リファクタリングプロジェクトを1つ受け持っていました。どちらも片付けて休暇に入るつもりだったのですが、前者はローンチして育児休暇に入ったらトラブルが発生してキャンセル、要事後対応。後者は切迫早産トラブルで踏ん張りがきかなくなり1/3ほど作業を残した状態で時間切れになってしまいました。想定された事ではありますが、なかなか予定通りにはいかないものですね。

この時期、本務以外の業務では、真鍋大度さんとのご縁でPerfumeのReframeに会社として協力・取材させてもらったりもしました。インディーズ時代からPerfume推しだった身としては貴重な機会でした。この件に関しては同行した同僚が公式ブログに書いています。

あとは妊娠と並行して決まっていたバンマスを務めるバンドのライブ本番ですね。出産と日程が被らないよう、それだけは神様に祈るしかありませんでした。もともと妊娠がわかった直後に日程を決めていたので余裕を持っていたはずなのですが、早産の場合はその限りではないので……。

また、個人的には4月から大学院博士課程に復学する事になっていたため、その負担もありました。必修科目の聴講は一発で単位を落とす(ブラック!)とかあって流石に外せませんでしたが、研究室のミーティングなどは指導教官に色々と配慮して頂き、出産後まで研究室での活動は保留させて頂きました。

最初の1週間

妻と新生児は病院で生活、仕事は育児休暇をスタートさせてもらったため、かなり余裕を持って過ごすことができました。

この時点から育児休暇の意図を汲み取り、 時給のことは忘れて家事の一切を自分で引き取りました。この時点で、20時の長女の送迎と、そのために2陣に分ける必要のある夕食が、結構な手間である事がわかりました。1人だと常に2歳児を連れ歩く必要がありますし、時には小3男子も独りで留守番させようとすると泣き出します。

また、子供たちを連れて毎日病院へは通いましたが、2歳の次女にとって母親が不在の生活は、退院までの数日間が本当に我慢させるギリギリの限界でした。特にゴールデンウィーク後半の出産だったため、上の子達が学校へ戻ると、家の中では父娘二人だけの生活。今まで賑やかだった分、これはそうとうに寂しかったようです。切迫早産の頃から母親と一緒にお風呂に入れなくなっていた事も寂しさを助長していたようで、母親退院後も毎晩お母さんとお風呂に入りたいと泣いていました。

それでも、毎日1〜2時間は自分の時間が取れたので、仕事のメールを確認して、問題となった機能のローンチをキャンセルして、関係各所に今後の相談をしたり、資料をまとめたり……といった事後処理はしていました。この時点ではまだ育休中もメールくらいは読んで行こう、と思っていました。

医師たちの苦悩が読み取れる出産待合室の書架


その後〜最初の1ヶ月(5月)

妻が退院すると、楽になった部分もあり、大変になった部分もあり。特に洗濯物の量は2〜3倍に膨れ上がっていきなり負担が大きくなりました。家事の中では洗濯物とか食事の後片付けは工夫の余地があまりなくて好きになれなかったんだけど、妻はこの手の仕事も嫌いじゃなかったようなので、産後の体調回復に合わせて、このあたりの家事から手伝ってもらう事に。次女のメンタルも徐々に安定してきて、毎日次女を連れてあちこち買い物に行くのがお互いにとっての癒やしでした。妻が家にいることで、今までの外出する度に子供全員を連れ出して……みたいな事が必要なくなったのは非常に助かりました。

研究室へ顔を出すようになり、運動会があり、振替で学校が休みの日に子供をピューロランドへ連れていき、続くピアノの発表会の準備に……という流れで疲れがたまり、仕事のメールを読み続ける、という目標はこのあたりで頓挫しました。一度溜まったメールはなかなか処理する気になれない。一応、ヤマハの待ち時間とか利用して消化を試みたんですが、全然追いつきませんでした。職場で処理してると気づかないけど、メール処理だけで毎日1時間以上は使ってたようです。

運動会では白組のマスコットを長女がデザイン、でも長女は赤組

また、ある程度は覚悟していましたが、子供たちの予想以上の赤ちゃん返りに苦労しました。特に上の二人の子まで甘えはじめるとは……。出産前に色々と家のことを手伝ってもらったり、我慢してもらっていた事の反動でしょうか、出産後の安心から家族全員の心が不安定になっているようでした。塾の送迎と買い物、料理だけで毎日の時間が飛ぶように過ぎていきます。僕自身も長期に渡る疲れと安心による油断、また出産準備で中断していた活動の再開と重なり、大いに疲弊していたのですが、誰かを頼るわけにもいかず「皆が狂うからワシは狂えない!」と、ウィリアム・ブレイクの天国と地獄の結婚ばりの気持ちでアーケード基板の購入と修理を続け、心の平穏を維持します。

2ヶ月目(6月)

6月になると大学の必修講義もあり、週1〜2回は大学に通うようになりました。以前から進めていた研究内容を振り返り、資料にまとめて深掘りする作業もはじめました。

この時期になると妻の産後1ヶ月検診も無事に終わり、食事の準備も交代でやるようになってきました。育休後の事も考え、3ヶ月目には仕事に復帰した時の生活パタンの練習ができるよう、この2ヶ月目で徐々に役割分担を元に戻して行くことにしました。この月は主に妻が頑張り、僕の負担が軽減されてきた月です。

育休中の個人の目標としては増加傾向に転じていた体重を再び出産準備前の状況まで戻す、というのがあったので、ダイエット活動も開始しました。具体的には塾の送迎の合間にコナミスポーツへ通ってランニングと水泳。ついでに帰りには下のスーパーで買い物をしてくるという。ストレスで痩せる人も多いようなのですが、僕の場合は基本忙しくなると睡眠削ってチョコでやる気を加速されるため、忙しくなると必ず太ります。お腹を壊しても食べる量が勝るのです。通勤してる時は福利厚生で会社近くのジムが利用できるのですが、自宅付近から通うのは時間の無駄なので……今回のジム費用は福利厚生で会社の健保に請求できるはず、たぶん。

ゲーマーにとってKONAMIに金を落とすのは一種のステータス
(例えKONAMIが変わってしまったとしても)

また、個人的にはこの月にもバンドのライブ本番がありました。こちらも妊娠初期からスケジュール調整をしていた件。出産後落ち着いた時期という事で設定してもらっていましたが、難易度の高い曲を多くやっているバンドでもあり、深夜の個人練習に苦心しました。ギターの1人はプロとしてバリバリ活躍してるので、ご用命の方はぜひ。

3ヶ月目(7月)

育休最後の月という事で、復帰後の生活の練習を想定していましたが、平日昼間の塾の送迎を試してもらったのは中旬以降でした。結局、下の子は僕が家でみてたりして、最後まで復帰後の状況にはなっていないのですが、首の座っていない乳児を無理して連れ出す必要はないかな、と。

妻に家事を返していっている分、戻ってきた時間で大学の研究を進めていきました。主にLinuxのカーネルをいじる作業ですが、必要な部分を理解してデザインを決め、修正を試す……くらいはできました。あと複数の先生方とミーティングを持ち、フィードバックをもらったりとかいう博士課程で必須になっている工程なども。研究に関しては同じ時期に学生をやっていた世代が先生になったり技術者として第一線で活躍していたりと、相談相手に苦労しないのは有り難いと思っています。世界最高峰のメンバーは常に職場や身近な場所にいてくれます。このような繋がりがなければ、制度として認められた先生方とのミーティング以外、なかなか指導教官以外のアドバイスを得る機会はないのでしょう。

研究室の後輩で最近東大に戻ってきた塩谷先生の居室から
CPUでトップカンファレンスに通し続けている日本人は彼だけ

また、復帰直前には上の子供達が夏休みに入り、さらに生活はドタバタ……。なかなか余裕を持って、とはいかない状況であっという間の3ヶ月を終える事になりましたが、復帰に向けて体制を立て直すだけの時間はとれたと思います。これが1ヶ月だったら本当に大変だったと思う(主に、妻が)。


育休中の事件・感想など

危うく誘拐犯事件

出産直前のゴールデンウィーク、次女を連れて久しぶりに公園へ行ったら、案の定「お家に帰りたくない、もっと遊ぶ」が発動。泣きじゃくる次女を連れて自宅へ向かう途中、ご近所のおばさま方に囲まれてしまいました。普段、子供を連れて近所を歩いてて、顔もたまには合わせてると思うんだけど。やはり平日昼間に男性が泣いた子供を連れ歩いてると不審がられますね(汗。まぁ、物騒な事件も多い昨今、悪いことではないし、この手の自治活動は有り難いと思います。が、やはり気まずい雰囲気はどうにもできませんでした。

「ほら、お家でお母さんが待ってるよー」「公園また行こうねー」とかこれ見よがしに声に出したところで怪しさ倍増。わかってる。わかってるけど、他にどうしようもない。最後は携帯で妻に連絡して、見えるとこまで出てきてもらいましたorz

まだまだ育児参加するお父さんというのはネットで見るほどは普及しておらず、町で怪訝な目でみられることも多いです。一方で理解のある方からは母子以上に微笑ましそうに見てもらえます。これもまだまだ浸透していない事の裏返しではあると思うのですが、暮らしやすさという点では年々向上しているのではないでしょうか。

評価されすぎ問題

同様に気になったのがイクメン評価されすぎ問題。ちょっと学校行事に顔を出す、塾の送迎をする、たったそれだけで「良いお父さん」という噂がたってしまいます。もちろんお世辞で言っている部分もあるでしょう。しかし「うちでは無理」みたいな声も必ずといって良いほど耳にします。世の中、思っている以上に昭和から変化がないのかもしれません。長女の頃は待機児童問題とイクメンが大きく取り上げられた時期でもあったので、むしろここ数年で揺り戻しがあったようにすら感じました。

一方で心配なのが、他の専業主婦の家庭でお父さん方に過剰なプレッシャーがかかってしまう事。育児への参加は本当に会社のサポート次第です。会社によっては朝から晩までハードな課題が与えられ、それこそ家庭の協力なしでは発狂してしまうような職場も多くあります。どういった過去を持つ人達がその会社で力を持っているのか考えてみましょう。前職で心を壊す人の多くは、仕事(や会社の古い考え方)に対し妻や家庭の理解を得られていないケースに該当しました。その点だけはお母さん方にも理解して欲しいかな、と思います。夫婦でサポートが必要なのは、必ずしも家事に追われる母親だけではありません。労働時間と給与など、総合的に考えて判断しなければならないでしょう。思っている以上に日本人の平均給与は低いですし、給与と苦労の度合いが比例関係にあるわけですらありません(ほんのり相関くらいはあるでしょうが)。お父さんの頑張りも再評価してあげて下さい。共働きであればお互いの苦労を理解しあっているので問題は少ないでしょう。

また我が家では子育ての時間が足りなくなった長男の育児の際、金銭的な余裕があったわけではないので、どちらが働き続けた方が得か、という家族全体での損得勘定で役割分担を判断してきました。ある程度生活に余裕があるのなら、損得勘定だけでなくお互いにやりたいことを続けられるか、といった視点から役割分担を検討するべきなのでしょうし、我が家でも妻の仕事復帰に関してはそろそろ考えなければいけないのでしょう(というか、考えるつもりが3人目以降の子育てに入ってしまった)。この点は私の課題でもありますし、おそらく私が博士を取得できたら、妻に挑戦のバトンを渡すべきなのでしょう。

ロスジェネと少子化

4人も子供がいると、少子化との対比で褒められる事も少なくはありません。実際、自分の周りを見てみると、東大を出ている面々は流石に既婚率は高いのですが、極端に晩婚だったり、仕事が忙しすぎて子供は多くても1人が限界、みたいな話は本当によく聞きます。ロスジェネの中で勝ち抜き、大学の先生や起業家、一部上場企業に就職した、日本の未来を背負って立つような人たちの姿です。一方で自分が今勤める外資系企業では、やや晩婚の傾向は避けられないものの、2人目、3人目の子供を持つ共働き家庭を多くみます(それでもグローバルから見たら日本オフィスは子持ちが少ないのでサポート強化中だそうです)。

何度か書いたように、育児サポートであったり、子供を何人持てるか、という事には、会社のサポートが大きく影響します。私だって今の会社でなければ3人目以降はごめんなさいしていたかもしれません。この企業文化の違いが国家の将来に与える影響は、決して小さくはないでしょう。優秀な人材自体を使い潰し、その子孫まで残せないとしたら。

既に国内に先端技術はなく、世界の物価上昇からも置いてけぼりの日本。既に先進国向けのハイエンド製品を国内展開することすら難しくなっているのは薄々みんなが気づきはじめているとおりです。海外のカジュアルなおもちゃのような楽器が、国内では一気に高級品価格として捉えられてしまいます。暗い話をしたいわけではありませんし、何かを喚起するほどの考えを持っているわけでもありません。ただせめて目をそらしたくはないのです。

ロスジェネと呼ばれる僕らの世代は、ただ恵まれていないばかりか、最近では「怖い世代」として倦厭されているようです。本当に何をやっても踏んだり蹴ったりの世代ですが、せめて次の(ロストではない)世代を残し、介護などの負担を次世代に残さずに散っていけたら、と願います。

2018年7月17日火曜日

新環境用の連射装置

シンクロ連射に対応した高橋くん、初代はコントローラと一体化してたので、改めて独立した装置として作り直してケースに入れてみた。


けど、気のせいかゼビウス 3D/Gは連射してるとランクが上がる気がするので、今の所あまり必要なかったかも疑惑。少なくともソル出してるとランク上がるらしいので地上弾は最小限にしたほうが良さげ。

というか、ゼビウス 3D/Gの攻略情報があまりにも少なくて驚いた。検索しても深い話をしてるの、fj.rec.games.video.arcadeの投稿くらいしかなくてクラクラする……。

2018年7月16日月曜日

続・チッタのアケコンを作るのだ

チッタのアケコン、ようやく電気的な配線も終わらせて完成しました。


予定通り、D-Sub 2列15ピンで配線してあります。シグマ(NEOGEO拡張)互換の予定でいたが、連射装置の高橋くんをシンクロ連射に対応したため、シンクロ用に同期信号を通す必要が出てきました。そんなわけでシグマではP0となっていた(NEOGEOでは未使用の)9番ピンにCSYNCを通してます。

内部の配線はメンテを考えてファストン端子で配線してみました。今回はじめての利用。サイズの合う端子をまったり集めてたんですが、今回の制作に間に合ったので実験的に使ってみた次第。わりと良い感じ。


ボタン側はファストン端子はAliExpressで見つけたやつ。2.8mmのカバー付き50セットで送料込みで352円。


スティック側の端子は一回り大きく、マルツで購入したLTO-41T-187Nを使ってます。


配線に使った線材は、ケース外でごちゃっとしないように多芯ケーブルを使ってます。16芯で外径8mmなので、D-Subのケースにも入る大きさ。あんまり線材売ってる店はしらなくてオンラインで色々調べてたら電線ストアと九州電気が目についた。電線ストアだと細い多芯ケーブルは100m単位になっちゃって、単価は安くても最低ロットで5桁円になっちゃうのでパス。よくよく見たら九州電気のほうは秋葉に店舗があったので、こっちで購入してきました。4mで1,080円です。お店のページみて「こんな看板あったっけ?」って思ったんだけど、いつも電気街出て最初の横断歩道のところのケーブルぶら下がってるお馴染みの店でした……ありゃー、今まで何十回と通ってきたのに看板が記憶になかった。D-Subの端子とケースは秋月でお馴染みのやつです。

前回作ったJAMMAのブリッジを経由してゼビウス 3D/Gと豪血寺の闘婚をやってみましたがまずまず。格ゲーやってるとスティックのボールが外れてきてしまうんだけど、これはどうやって固くしめるべきなんだろ。あんまり固くしすぎて交換時に外れないのも嫌なんだけど。

2018年7月14日土曜日

7月上旬のゲーム:逆鱗弾

予告どおり逆鱗弾。このゲーム、タイトーメモリーズに入ってたのでPS2で少し遊んではいたんだけど。音楽めちゃくちゃ良くて好みなのに遅延ひどくて遊べねーって。廉価版で後から出荷されたメモリーズは多少改善されてるらしいので、そっちも買おうかなぁ、どうしようかなぁ……と思っているうちに基板を8k円ほどで入手できたので。格付けランクも3なので気軽にできるかな、と。

このゲーム、タイムスリップを繰り返しつつなんとなく過去のシューティングのオマージュな感じで進行してくんですよね。1942年に行くと敵が1942っぽい旋回してくる、とか。あとBGMの主題が同じでステージ毎にアレンジだけ変えてるという、もしかしたら低予算だっただけかもしれないけど、それがまた特徴でもあり好きなところ。4面とかYMOっぽさがポンコツ未来な感じでまた。キャラも東亜っぽくツッコミどころ満載なんだけど、おさげキャラとか「さよりなパラレル」っぽくて好き。

で、練習開始時には適当にプレイして3面か4面までって感じからスタート。2面の道中とボスで慣れないとボムが必要な感じ。3ボスも最終形態でボム?ってくらいボム使ってたので、わりとミスも混ざって安定せず、ランダムに残機を消費してかろうじて4面までたどり着ける感じでした。
こんな感じですね。この時点では5面とかクリアできる気がしなくて、ほんとにこれ簡単なの?とか疑ってました。

ちなみに画面はmac上でEasyCapViewerで表示したのをOBSのウィンドウキャプチャをソースにして90度回転ってので縦画面で録画できました。最近は一応練習は録画して何かあったら見返すようにしてたり。

で、YouTubeで動画探してたら、2Pから入ると火力が高い、Type-Cが最強って情報があったので試しに使ってみたら
一気にクリアが近づいた。見通し立たなかった5面も、強火でガンガン突き進めば押されることもなく安全に進めそう。むしろ他のステージより楽なくらい。
あっさりノーミスで最終面まで行けるようになってた。途中ボムが必要な箇所が残っているので、どうしても残機が潰れてしまい、最終的にはギリギリでクリアできました。もう少しやりこんでも良かったのかもしれないけど、積みゲー大杉なのでそそくさと次へ。

しばらくMC68000なハードばかりやっていたので、次はMIPSでいこうかなー、と。


ゼビウス 3D/Gを考えてます。格付けWikiにランクが載ってないので自分にクリアできる難易度なのかわからないんだけど。とりあえず久々にやったら3面で終了。コンティニューして通してみたけど……どうかなぁ、ランクが大幅に変化するゲームらしいので読みきれないところはありますね。まぁ、無理なら途中でチェンジ。


この基板、ステレオ対応したいけど手元の環境だとスピーカーレベルで2chってのが手間なんですよね。まぁ、次のコントロールボックス作る時に考えるって事で。世間的な評価はぱっとしないけど、個人的には好きなゲームなんだけどなー。特に音楽は最高。

2018年7月12日木曜日

チッタのアケコンを作るのだ

こんな感じで……

なんとなく新しいコントローラを作り始めてるわけですが、さて我が家の既存アーケード環境にどう繋げたものかな、と思案中。USBのコントローラならさっくり繋がるんですけどね、普通の環境と違って。でもせっかくだから信号直結させたい。そうなると今使ってる基板用コントローラみたいにJAMMAのブリッジを作ることになっちゃう。それも悪くはないんだけど、あの大きいコネクタをぶらーんとぶら下げてると、やっぱり重いし線が切れやすい(切実)。あと、高清解霸の新しいバージョン、数字高清解霸っていうCGA信号をHDMIにアップスキャンしてくれるボードが3,500円ほどで売ってたので、入手して新たにコントロールボックスを作り直したいなぁ……とか。

とりあえず基板が増えてきた現状、ボックスに求めてる仕様は
  • 1P/2Pのコントローラはそれぞれ外部から接続、交換可能に
  • 連射やボタンの配置換えは拙作の高橋くんを外付けする事で対応
  • R/G/B/CSYNCそれぞれにボリュームを付ける(CSYNCは彩京とDATAEAST対策)
  • JAMMAのスピーカー信号はLINEレベルに落として外へ出す
  • スピーカー信号をもう1系統外部から入力してLINEレベルに落として外へ出せるようにする(namcoステレオ基板対策)
  • TAITO F2対策(大マザー音声用-5Vと特殊なSYNCに対応できるよう調整)
  • 基板との接続はJAMMAハーネス(中華な6ボタン拡張仕様)とCPS2用キックハーネス
こんな感じ。今回、真面目にステンレス加工してケース作ろうかなぁ……と思っているので、ゆっくりボチボチ弱火で進める方向で。いや、やっぱり2歳の娘と遊んでると適当な作りだとすぐ断線しちゃうんですね(汗

で、とりあえずコントローラ周りを今の環境とやりくりしながら進めようと思いまして。ひとまずボックスとコントローラのインタフェース、これをNEOGEO互換というか、シグマ電子の旧タイプですね。NEOGEOで未使用だった配線を使って6ボタンに拡張したもの。これを流用しようと思います。シグマの現行タイプは端子の入手性が悪かったりするし、NEOGEOのコントローラがそのまま使えるのはメリットかなって。

仕様としてはD-Sub 2列15ピンで配線は以下のとおりです。

1GND
2ボタン6
3コイン
4ボタン4
5ボタン2
6
7
85V
9未使用
10ボタン5
11スタート
12ボタン3
13ボタン1
14
15

で、ここまで決めておいて、まずはこのインタフェースを取り出すJAMMAブリッジを作成する事にしました。普段は手でショートさせて済ませてるテストボタン付き(笑)。


以前コントローラ作った時は1P側用と2P側用の2種類のJAMMAコネクタが出ていて無駄に重たかったため、今回はちょっと工夫してます。魔法大作戦のインタビューの中で、堀井社長が雷電で遊んだというエピソードがヒント(笑)。

スタートとコイン以外は1Pと2P両方の信号に繋げています。コインは1P側にだけ接続。クレジット設定は普通はシェアになってると思うのでこれで問題ないはず。スタートに関してはスイッチを通して1Pと2Pどちらかに接続されるようになってます。一人で遊ぶ分にはスタートボタンさえ切り替えられれば好きな方から入れるし、いざとなったら両方のスタートを交互に押して、堀井社長が遊んだという同期ダブルプレイもできる(笑)。

これでNEOGEOコントローラや自前の互換コントローラをひとまず現行環境で使えるようになりました。

ちなみに作成中のコントローラですが、外箱はAliExpressで見つけた2,000円ほどのモノです。そこに自作の天板と千石で買ったボタン類を合わせて作ってます。ボタン類は三和を使うことが多いんですが、今回はお試しでセイミツ製で揃えてみました。全体的にチッタ色で揃ったのが嬉しい。


こんな感じで作ったものを印刷して切り出し。最初はプラ板を同様にカットして上に載せて固定してたんですが、やっぱり横から汗が入って駄目だよなーって事で、最終的にはラミネート加工した物をカッターで切り出してます。


この半透明のボタン、三和製も同様ですが、ボタンを外して中に絵を入れることができます。最初の写真は処理前でしたが、最終的にはボタン用に切り抜いた部分をさらに一回りカットしてボタンの中に収めました。