9999年12月31日金曜日

当ブログにおける注意点

全般的な注意点


本ブログは個人の意見を発信する場となっています。ここで記述された情報、意見は所属する組織とは一切関係ありません。

また、記述された情報を利用する事で発生した問題についても当方では一切責任は負えません。自己責任でお願いします。


電子工作・アーケード基板系の記事について


趣味で書いてる記事のため、わりと軽い感じで書いてたりはしますが、当方一応は電子工学学士、情報理工学修士です。元LSIの論理設計者でもあり、現役のソフトウェアエンジニアでもあります。適当にやってるようで実は難しい・あるいは危険を伴う事もあるので、専門的な知識、記事の理解なしに見よう見真似で試すのはやめて下さい。ソフトと違って不可逆な失敗のリスクはいたるところに転がっています。最悪、命を脅かすような事故にも繋がりますのでご留意下さい。

特にアーケード基板ですが、国内でもそれなりに情報が出回るようになった事で素人知識で修理して基板を壊す人が増えてるんじゃないかと危惧しています。ヤフオクでも普通に修理すれば直ったんじゃないかって基板がボロボロになって出品されてるのを見て少し心を痛めてます。どうやったらこんな壊れ方するんだよ……。


ソフトウェア系の記事について


ソフトウェアに関しても低レイヤーの情報は一歩操作を誤るとデバイスの文鎮化、データの消失など重大な被害に繋がります。こちらも十分な知識なく、記事を鵜呑みにして実行するのはやめて下さい。


際どい技術情報について


特にメーカー保証の終了した基板の修理などは、修理・調査の過程で本来開示されていなかった技術情報、あるいは守秘義務によって守られるべき技術情報を偶発的に知ることが多々あります。調べた事は可能な限り共有しあう文化で育ってきたため、自分で調べた事は積極的に発信しています。その際、関係各所には配慮するなり、不利益がないよう考えてはいますが、所詮こちらの立場しか見えておらず、権利者からみたら不都合があるかもしれません。その際には連絡頂ければ直ちに双方にとって良い状況になるよう対処したいと考えています。よろしくお願いします。

2019年3月29日金曜日

子供の頃に地元のゲーセンで遊べたゲーム

記憶も薄れつつあるし、覚えているうちにメモしとこうかなー、と。たぶん子供の頃に経験したゲーセン・ゲームコーナーって3つしかなくて。1) 再従兄弟の家の隣にあった駄菓子屋10円ゲーセン、2) デパートか何かのワンフロア(既に具体的な店の記憶なし)、3) 町中にあった釣具屋の上のゲームコーナー、これだけか。

1) 10円ゲーセン


  • ドンキーコング
  • ギャラガ
  • Mr. DO
  • パックマン
  • バーニン・ラバー(今回、検索しまくってタイトル判明)
  • ペンゴ
  • マリオブラザーズ
  • VSスーパーマリオ
  • ザ・ビッグプロレスリング(これも検索で突き止めた!)

2) デパート

  • R-TYPE
  • 奇々怪々

3) 釣具屋

  • パックランド
  • ドラゴンセイバー
こうやって調べて見ると10円ゲーセン、古いやつばかり集めた店だと思ってたけど、年代的に見ると結構最新のやつ置いてたっぽい。通ってたの小学校低学年の80年代前半とかのはずだから。デパートは小学校高学年、釣具屋は中学になってからだったと思う。

2018年12月31日月曜日

今年やりこんだシューティングとか

去年の「2017年はシューティングの年でした」に対応する2018年版エントリ。今年は途中経過を何回か書いたので、そのまとめタイトル後のカッコ内の機種は主にプレイしたハード。AC以外は所有してると同義。ACもまぁ、わりと所有してる。最近は移植も多いし基板も買ってるしで全然遊ぶのが追いついてません。その上アーケードで新作で始めたらどうなるんだ2019年。

ノーコンで1周できたもの


魔法大作戦(PS4/AC)

去年はツムジ丸で止まってたけど、年明けてから1周しました。あと基板も結局手に入れた。

まもるクンは呪われてしまった!(360/PS3/AC)

音楽とふるるが好きすぎる。naomi基板で4面まででバッドエンドコースなんだけど、一応クリアって事でカウントしちゃう。もっと強くなってからまた再戦したい。あと移植版も少しずつ違ってて遊び甲斐がありまくりなのですが今はまだ未知のシューティングを優先するのです。

カラス(DC/AC)

イージーモードのみ。カウントするのか、これ。

原子島2(AC)

簡単ってわりにはわりと手こずった。みんな所見でクリアとか言ってるのに……。演出は面白いし、わりと好きでした。

沙羅曼蛇2(SS/AC/PSP)

基板入手(修理)記念にクリア。学生時代にもゲーセンでクリアしてたはずなんだけど、結構手こずったな。1週目から2週目BGMを流すROMパッチ作ったりとか、BGMデータ解析して曲差し替える方法を調べたりとか。はじめて基板に手を入れることを覚えた。

ツインビーヤッホー!(SS/AC/PSP)

ときメモ人形ボスと最後の追いかけっこに苦戦した。沙羅曼蛇2と難易度的には同じくらいっぽいけど、終盤攻略に時間かかったなー。

逆鱗弾(PS2/AC)

PS2版で音楽気になってたんだけど遅延ひどくて遊べる状態じゃなかったのでF3で揃えちゃった。初心者的には原子島2とか逆鱗弾くらいの難易度がやりやすいです。

ぐわんげ(360/AC)

360モードでクリア。アーケードの操作体系だと全然進めません。

ティンクルスタースプライツ(AC/NEOGEO mini)

mini発売記念って事でアケコン繋ぐテストも兼ねてクリアしてみた。

サイヴァリア REVISION(PS4/AC)

PS4版⊿にてALL-Aでとりあえずクリアしました程度。シューティングラッシュだったし。

コットン・オリジナル(PS)

アーケードとバランス違ったので別物としてカウント。アーケードはクリアできるようにしておきたいのと、X68k版がまた別物で……続編にも手を出したいし、どこから崩してくか悩ましい。

ノーコンクリア直前(ラス面以降)のもの


シスターロワイヤル(Switch)

ノーマルで真ラスボスまで行ってるのでもう少し。わりと面白いんだけど盛り上がらなかったな。

バトルガレッガ(SS/PS4/AC)

ついにラスボスまで行けるようになった。来年にはクリアできそう。ケツイ見てると状態保存があそこまで軽いんだったら、要所要所で自動セーブしてもらって、メニュー開いたら好きなポイントから再開可能、とかして欲しいです!スイッチ版出すときにでもぜひ。

サイヴァリアμ(PS4/AC)

PS4版⊿にてラスボスまで。これも時間がなー。アップデート含めてケツイのあとにでも戻ってきたいけどダライアスひかえてるし。

BATSUGUN(SS/AC)

ラスボス最終形態まで。

結構やったのに駄目だったもの


ゼビウス 3D/G(PS/AC)

5面まで。ボスが全般的に一か八かの瞬殺を狙わないと難しすぎ、かつ死ぬと撃ち負けるのでなかなか安定しない。道中は武器決めてパターン作ればなんとかなりそうなんだけど。一応コンティニューして最終面までパターン作って覚えたりはしてたんだけどラスボスがやっぱり運頼み。攻略情報がまったくオンラインに残ってなくて詰まった時に打開策が見えないのが辛い。攻略本とかもコレクターズアイテムになっちゃってるし。誰かうまい人いたらコーチしてもらいたい……。たぶん今年一番プレイした。

ケツイ(PS4/AC)

まだやり込んだってほどじゃないけど今集中してやってる。実績解除を終えてアーケードチャレンジで練習中。レベル下げずにリトライ数を減らす練習をすべきか、ノーミスノーボムを下のレベルから積み上げてくべきか悩んでたんだけど、前者だとへっぴり腰がなかなか治らなくて、初心者には後者の方が向いてるのかなぁ、とか思いはじめたとこ。3面まではノーミスノーボムで埋まってきて、アーケード実践は4面まで。エムツーからも色々と攻略情報を発信してくれてるので盛り上がってるうちに1周したいところ。

来年なんとかしたいもの


あと少しってやつは当然クリアしたいけど、それ以外だと
  • XEXEX
  • メタルブラック
  • VIEWPOINT
あたりにそろそろ手を付けたい……。

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を刺したからで、オリジナルは別途保存してあります。


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