2020年8月13日木曜日

基板修理:続・ムーンクレスタ

以前、メインボードだけの状態からサブボードを全部自作して復活させたムーンクレスタですが、追加で少し直した場所があるので記録。

1つ目はこれで。まぁ、ぶっちゃけマルチになってるんだけど。 

で、最後の修理はショット音。ざっくり信号の流れを書くと、9Lで0xA805へのアクセスを受けてショット音のトリガの一方はそのままダイオードとコンデンサを使って徐々に減衰する信号となり、他方は8LのNANDの1番、2番へ入り、要はINVとして使って反転した出力が3番から外へ出て7SのNE555へ。この555からの出力と先程の減衰信号が7Rにある4066へ入りショット音を形成し、最終的には7Tのオペアンプを通った後に他のサウンドと合成されてボリューム回路部分へ流れていく。で、最初はサウンドの要であろう555を疑ったんだけど、それは間違いで。よくよくオペアンプの入力を圧電ブザーに繋げてみたら、それっぽい効果音が作られてた。そんなわけで7Tのオペアンプを交換したら無事にショット音も鳴るようになりました。

これで一応、自分で気づける範囲ではすべて正常動作するようになりました。めでたし。 

2020年8月12日水曜日

IONA-MJ

 IONA-JSの別バージョンの基板としてスーチーパイ対応の基板を作ってみた。

下のJAMMA端子に繋げばIONA-JSと同等の機能、上の麻雀端子に麻雀ハーネスを繋げばスーチーパイに対応したJVSの信号に変換します。スーチーパイについては以前の投稿で調べた情報を使いました。Arduino版では無理やり入力組み合わせで遊べるようにしてあったんだけど、今回のでまともなコントローラ繋げられるようになりました。めでたし。

端子判定については、レバーで同時入力できない組み合わせの信号を麻雀端子側ではGNDになる端子にそれぞれ割り当ててあり、起動時にレバー同時入力が発生していたら麻雀モードって感じになってます。たいした需要もないはずなので販売の予定はありません。

基板修理:鉄拳3

久しぶりの基板修理。あまり精神的な余裕がなくて……と思ってやってなかったけど、違うな。修理した方が気分がスッキリした。

という事で、起動しないSystem12の鉄拳3の修理。まずはどのボードに不具合があるのか調べるためにSONYの基板COH-700を同じくSystem12のワースタ99と交換。これであっさり起動してくれました。

COH-700に関してはあまり個人でできる事はないような気がしてたんだけど、とりあえず電解コンデンサの交換は海外の掲示板でそれなりに見かけたので練習がてら実施。表面実装のところを敢えてリードタイプに置き換え。表面実装は古くなってから載せ替えるとパターン剥がしちゃいそうだし。

画面の同期信号は来ていたのでCPUまわりかなぁ……と右下のやつから交換してったのですがハズレ。下のがCPUで真ん中がGPU、上の2枚がGPUフレームバッファ用のメモリかな。一番上のnamcoロゴの横のやつが天井に穴っぽいのが空いていて容量が半分くらいになってました。ここまで交換した時点でたまに起動したり、起動しなくても最初に画面周りの初期化が走る際に画面が点滅したり。他のコンデンサは「念の為のノイズ対策」で動作に大きく影響しなさそうだったんだけど、今回は経験値上げるって事で一通り交換。やっぱり変化なし。

その後、接触の悪いICがないか調査。大きなやつの足がきちんとハンダ付けされてるか、オシレータとかも含めて表面実装の小さいやつが欠けてないかとか目視で確認したんだけど気づくような問題はなし。各チップを押したり基板に少し力を加えたりすると不安定になるのはわかる。止まるときは画面も音楽も固まってしばらくしたらリセット、という動作。クロックとかリセットを疑ったんだけど違う。CPUのバス化けかなぁ……とメモリのハンダ付けをし直してみたけど効果なし。


触ると不安定になる事は多かったんだけど関係ないだろうと思ってた左上のMC44200FTを最後に確認。基板の中央側に当たるチップ右側の足をハンダ補強したところ……安定しました。うーん、このチップについてはデータシートが見当たらなくて、でもまぁ見てわかるようにRGBのDACなんですよね。不具合あっても画面でなくなるくらいでCPUやサウンドは動くと思ってたんですけど、そうでもないんですね。基板むずかしい。

2020年8月9日日曜日

春から夏にかけてのゲーム

 コロナ渦ですっかり腰を据えてゲームする余裕がなくなってしまいPS4やXboxの起動時間が激減。PS4のトロフィー履歴みたら4/6に奇々怪々やって以来、次は8/2のSkyrim VRですね。Xboxなんかもう、子どもたちがMinecraftやってるくらいか。一方で、まったりRPGとかVRで細々と……って感じでswitchやOculus Questが良く動いてたかも。

ドラゴンクエスト10

なんかもう、この辺りから良くやってた。結局Ver 2.xxまでクリア。勇者姫さま大好き。 もう、なんか、本当に酷いw オンライン勉強会に参加しつつ遊んでたりとか。 落書きまで始める始末でございました。 あと、しばらくやめるって言ったのに、セール始まったらVer 5までセットのやつ買ってしまった。でもまぁ、課金は再開しない。

 Skyrim VR

まったり酔わない程度に遊んでるやつ。ようやくドラゴンボーン(ざわっ)ってとこまで辿り着いた。遊びだしのシーンでドラゴンから逃げ回ったときは本当にガチ酔いしたもんだけど、今度の戦闘はちょい気持ち悪い……うぷっ……って程度で済んだ。なんかこうVRでRPGの世界を歩くことを体験しちゃうと、酔うってわかっててもドラクエとかゼルダの世界をこの目で一望してみたいなぁ……という気持ちは出てくる。

零の軌跡:改

今からやっても新作までに終わらないだろうけど、なんか新作は旧作一通りさらってないとキャラがわからなくなりそうなのではじめて見た。今までやってるのは空の軌跡FC/SC、閃の軌跡I/IIだけ。零と碧がセールになってたのでまとめて購入。その後、閃の軌跡III/IVの大幅値下げ&アップデートが発表されたのでファルコムの誘導に載って頑張って旧作を追いかけてる感じ。

システムは空の延長なのね。PSPでやってるので随分と懐かしい印象だけど、画面は凄く綺麗になってる。メイン追うだけなら30時間くらいって話なので、高速モード使えばもっと短時間で追えるかな?

Shooty Skies Overdrive

なんかVRでshmupsをどうやって作ったら良いのかの1つの解。スマホの操作感っていうステップがあったから辿り着いた答えな気がする。3次元なのに普通に緻密な弾除けを要求してきて、かつストレスなく遊べるのは凄い。
ステージ構成や敵キャラも日本を中心としたアーケードの歴史をリスペクトしてる感じが出ていて良い。酔い対策で固定画面になってるんだけど、スクロールありなゲームも体験してみたいな。

Shadow Point

影絵を使ったパズルを解きながらステージ制でシナリオが進んでいくゲーム。時空が捻れた世界の描写が多いので、時々酔ってた。とりあえず通常シナリオはクリアしてムーンも全部集めたけど、ムーンで入れる裏ステージ?はやってない。井戸を覗き込むアクションに気づかなくて一度だけネットで調べちゃった。英語の語彙力増やしたいんで英語音声・英語字幕で遊んでたけど、説明や話がわからなすぎて詰むって事はなかった。

Virtual Virtual Reality

クエストベースのミニゲーム集だと思ってずっと遊んでたんだけど、なんか下手すぎて詰んだかなーって思って調べたらシナリオに沿って順当に進んだ結果だったみたいで。色々操作しながら糸口をみつけていくパズルゲームですね。こっちも一度調べてシナリオあることに気づいたら、後はなんとか最後までいけた。同じく英語。これは会話のノリ的に英語でわかる人は英語でやった方が笑えるかも。

Moss

アクションゲームなんだけど固定ステージ間になってて、画面端の特定ポイントまで行けば別シーンに移動って方式なので酔わない。シルバニアファミリー(語彙力)みたいな箱庭が目前に広がってて、ネズミ?を操作しつつ自分は神の奇跡を使って世界に少しだけ干渉。基本はアクションなんだけど奇跡で通路を作ってく作業とかはやっぱりパズル。VRゲームはパズルものが多いのかなぁ。グラフィックはとにかく綺麗で質感も人形っぽくてかわいい。やっぱり英語でやってたけど、会話とかストーリーは気にしなくても遊べるやつ。終盤の大蛇?との戦いは即死→リプレイのサイクルで少しずつ進めてく感じ。雑と言えば雑な作り込みなんだけど、遊んでみると結構熱くて楽しいのはVRの良いところ。

2020年6月30日火曜日

AVR JTAG ICE

AVRに関してはIDEやデバッガを使った開発はしてこなかったし、世間的にもあまり普及してる気はしないんだけど、最近だと1万円も出してATMEL-ICE-BASICとか買うのが正解なのかな?ARMはどこも統合開発環境が整備されてるんで、ARMのラインも含めるとこういうのないと戦えないってのはわかりみだけど、AVRのサポートも継続してるのは素直に喜ぶべきか。

手軽にデバッガ試すなら太古のJTAG ICE互換のデバイスが数百円程度で売ってたりはするのだけど、対応してるのはAVR Studio 4.18まで、かな?古いデバイスしか使えなかったりはするけど、まぁ使えなくはないので試してみた。

JTAG ICE互換デバイス自体はシリアルポートとしてアクセスされるだけ。自分が入手したのはCH340使ってたので、それ系のドライバを入れる必要はあった。

Windows 10だと色々と問題があって大変なんだけど、Windows 7とかなら(サポート切れててアレだけど)WinAVR-20100110との組み合わせで苦労なく動く。Windows 10の場合は32-bitと64-bitで起きる問題が違ったかも。32-bitだとDocuments以下にプロジェクト作ろうとしてもセキュリティ機能にブロックされてディレクトリ作成に失敗したりファイル作成に失敗したり。自分の場合、この問題は64-bit環境では起きなかった。

一方で共通で起こった問題としては、まずはインストーラが起動しない問題。これはシステムのセキュリティ機能にブロックされての事。ダウンロードされた実行ファイルにつく例のフラグを属性変更で落としてあげても起動できない。4.19だと属性落とせば起動するので謎だけど、何かブロックリストに入る理由があるんだろうか。これに関しては管理者権限で動いてるcmd.exeから実行する事で回避できた。AVR Studioに限ったことではないので、この最終手段は覚えておいて損はないかも。

インストール後の問題としてはWinAVR内に含まれるmsys環境のコマンドの大半が起動しないこと。これによりビルド開始後にだんまりとか、makeが動かない、depsが作られない、などなど変な問題が沢山発生した。これはWinAVR-20100110\utils\binをMinGW最新のmsysで置き換える事で一通り問題なく動くようになった気がする。これはセキュリティが関連してるのか、メモリ配置ができなくて怒られてるのか微妙。forkでこけるやつもいたし。mingw-get-setup.exeからmsys-base-binだけインストールして、msys\1.0\binをutils\binと置き換えてやればOK。

WinAVRの代わりにいっそのことと新しいのgcc使ってみたりもしたけど、デバッグ開始と同時にIDEが落ちた。たぶんデバッグ情報とかのフォーマット違いに対応できずに死んでる気がするので、こっちは諦め。

2020年6月26日金曜日

ドルチェグストの水漏れ修理

かなり古いモデルなんだけど、突然給水の水がだだ漏れするようになってしまったので買い替え時かなぁ……と思ったんだけど、妻が修理例を見つけてきたので我が家でも修理してみた。

参考にした情報は「みのるさんのめもがき」にあったドルチェグスト水漏れ修理というエントリなんだけど、そもそもデザインが全然違って参考になる気はしなかったんだけど、パッキンに関しては同じようなサイズな気がして、ダメ元で紹介されてるOリングを購入してみた。

実際に購入してみると、使われているパッキンより一回り径が大きいようだった。それでも元々のパッキンを外せば入る。ただ高さは元々のパッキンより全然足りてない。そもそも構造的に高さもぴっちりしていないといけないのか判断できなかったんだけど、とりあえず既存のパッキンを入れたまま、上の隙間に重ねてOリングを挿入してみる事にした。単体で入れるのと違い奥まで差し込むことができないので入り切らずにたわんでしまい諦めかけていたんだけど、目打ちを使ってグイグイって押し込んでたらなんとかピッタリと収まった。上から圧迫している影響か、元々入っていたパッキンの締りも良くなっており(なぜ?)、給水ケースを差し込んだら良い感じに収まった。ダバダバ漏れてた水漏れも完全に止まりました。なんか運だよりだった気もするけど、直ったのでよしとします。

ってことで写真もなく具体性のない記事だけど、まぁ記録として。

買い直しても良かったんだけどね。

2020年5月23日土曜日

Thunder Force AC

待ちに待ったSEGA AGES版がついに発売。期待を裏切らない魔改造の数々なわけですが、その中でも個人的に気になったのはステレオ化。インタビュー記事によると元データがステレオだったと書いてあるので少し調査。

FM音源に書き込んでるあたりを眺めていけば簡単に追えそう。ドライバはタイマーA/B両方使ってIRQ2のハンドラで動いてます。ワークエリアは$FFFF_9036から始まって108バイトづつ8チャンネル分。この各チャンネルのワークの中のオフセット+$42の位置に音色としての出力チャンネル、AMS、FMSのデータが書かれていて、実際にレジスタに書く時にはLFOの状態などを見てマスクされた値が使われる。で、チャンネル部分はここに用意される時点で既にモノラル化されているので、ここに書き込むところをいじってやる必要がある。該当するのは$0006_145F付近のコードで、パンに応じてテーブルを見てレジスタの値を作ってる。このテーブルが全チャンネルでセンターの値になってるので、それをセンター(0)、右(正)、左(負)と振り直せば良い。具体的には$0006_146Aからの3バイトを$C0,$C0,$C0から$C0,$40,$80に変更するだけで大丈夫。

実際に再生させるためには当然ながら基板の改造や、エミュレータの修正が必要なので注意。

しかし、こういうのは存在がわかってれば見つけるの簡単だけど、あるかどうかわからない状態で探し出してくるエムツーのスタッフには感謝しかない。