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に変更するだけで大丈夫。

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

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

2020年5月3日日曜日

3月〜4月に遊んだゲーム

ついにダラ外のZ'コースをクリア。サターン版の頃から散々やってたし、当時は渋谷会館の大画面で遊んでたりもしたんだけど……気づけば四半世紀近くかかってましたよ。



1コースクリアするのに何年もかけてたら他のコースクリアとか一生できないなーって思ってたんだけど。なんだかんだでZ'をクリアできるようになっちゃえば他のコースは数回練習するだけでクリアできちゃうみたい。

それ以外ではケツイとエスプレイドをやってるけど、大きく記録更新できたりはしてない。フィーバロンで少しだけスコアが伸びたかな。クリアは遠いけど。

それと、まったりとドラクエ10を再開しました。というか忘れちゃってるので最初からやってた。今なら経験値3倍もらえたり、イベント進行中は次の場所まで移動を省略できたりで、わりとサクサク進む。シナリオもしっかりドラクエしてて面白いのでオススメ。なんだけど、どこまでやるかなぁ……。とりあえず1本目の「目覚めし五つの種族」はクリアしたけど、やりこみ要素多いしメインシナリオはまだ沢山残ってるし。夏まではファルコムファンとしては軌跡ラッシュにのっていかないとって思うし……ってもう零:改は出てるのか。

2020年3月8日日曜日

今年最初のシューティング

これを入れるのはどうかとも思うけど、ムーンクレスタ1周はしてるので一応カウントしとく。

あとメガドラミニでスラップファイト。無事にノーミス1周〜と思ったら、そのままノーコンで3周目まで行けました。



去年の記録でアップし忘れてたラジルギスワッグが出てきたのでこっちも。すでに遊び方を忘れてるなぁ。

2020年3月5日木曜日

Darksiders

今年最初のアクションゲームはDarksiders。とは言っても去年セールで買って遊び始めたのはだいぶ前。洋ゲーとっつきにくいなぁ……と思いつつ、慣れてきたら楽しくなって最近ようやくクリア。

買った時と遊び始めた時はドラキュラ系の3Dゲームって認識で遊んでたんだけど、実際にはアイテム集めて強くなってくし、謎解きパズル要素が強いしで、ノリ的には完全にゼルダだった。そんなわけで、可愛くないガチムチのキャラでも気にならないっていうゼルダ好きは気にいるゲームかも。

ちなみにボス戦は結構難易度が高めで、ノーマルでも苦戦。特にワームとの騎馬戦はかなり練習が必要だった。あと謎解きも自力で全部やるのはキツイかも。自分はわりと詰まったら躊躇なく検索して攻略サイトを参考にしちゃいました。中盤がボス難易度的にもマップの謎解き的にも難易度が高い気がする。普通にやってると数回は詰まるんじゃないかな。こんなペースでトータル25時間ほど。セット販売だったのか覚えてないけど2と3も持ってるのでいつかまた続きでも。

ストーリーはわかったようなわかんないような。設定と雰囲気はクリアする頃には理解できてきた。

2020年3月2日月曜日

Farpoint

今年のVRゲーム1本目はFarpoint。

PSVR買うためにソニーストアでお試しプレイをして、数分で真っ青になって目をぐるぐる回しながら種類にサインしてPSVRを買ったのも今となっては良き思い出。

で、今すごく安く買えるので、酔う覚悟で購入して実際に家でやってみたら記憶に残ってるほど酔わない。というかSkyrimとかと比べてそこまで視界移動が違うとは思えないんだけど、実際に比べると圧倒的に酔わない。VR設定が色々細かくできるようになってるので、おそらく店頭で試した時とは設定が違うんだろうなぁ、と思う。特に視界が回る時に中心点を表示するかどうかで酔い方が段違いみたい。少し見にくくなるけど適度に気がそれるかつバランスを失わずにすむのかな。僕の場合、VR酔いは視界 に加速度かかるたびに脳がぐにゃぐにゃ揺さぶられる感じになるので、これが軽減されるのは大きい。

コントローラーは専用コントローラが欲しい感じでもあったんだけど、標準コントローラでもグリップ感がそれっぽく、違和感なく没入できた。そうそう、普段PS4はホリ製のコントローラ使ってるんだけど、こればかりは裏面が光る純正コントローラじゃないと駄目。デスストもBBあやすのに標準コントローラ必須だったな。

ゲームはクイーンスパイダーまでは無難に進んで、ここで詰まって一晩お休み。翌日改めてパターン組んで無事に倒せました。ここが一番の山場ってのが世間的な評価なんですが、個人的にはこのあとのマシーン軍との戦闘が一番きつかったかも。その後の宇宙人との戦闘はわりとゴリ押しで。最後は消化不良と評判の謎エンディング。確かに、当初の定価で遊んでるとちょっとズッコケるかも。

でもまぁ、VRについて健康面、エンターテイメント性どちらからも非常によく研究して作られていて、PSVR持ってるなら買っとくべき1本というのは間違いなく同意。

ってそうだ、アンアーシングマーズも最近やってた。もしかしたら今年1本目はそっちかも。あれも謎シナリオだったな……。そう言えばどちらも「強引にプロジェクトを進める視野の狭いヒステリックな女性リーダーに振り回され命からがら生き延びる部下」みたいな設定なんだけど、なんかそういうステレオタイプでもあるのかな?どちらも海外制作なのでちょっと不思議。

東京ザナドゥeX+

今年クリアしたRPG一本目。だいぶ前の安売り時に買ったまま積みフォルダに入ってました。イースにかわるアクションRPGとして作られた感じはあって、イースVIIIが大成功した今となっては続編がどうなるかわからないですが……。内容としては近藤イースのアクション要素に軌跡シリーズの武器システムを追加、イース・軌跡両シリーズにも織り込まれていた恋愛ゲーム要素をもっと強く出し、アドベンチャーパートとアクションPRGパートをはっきり分けたゲーム構成になっています。各キャラクターも泣き設定が山盛りで葉鍵全盛期を生きた人間には嬉しい内容。あと閃の軌跡からみんな大好きトワちゃんも登場。

プレイ時間は20時間程度で時間のない年寄りには嬉しい(軌跡シリーズの80時間が複数本で1つの話とか重すぎる……)。最初にメインストーリーで悲しい結末。終了後はラストシーンから分岐が増えて追加ステージを経てハッピーエンドへ。ここまで来るとアフターストーリーに入れるようになって、ここからはクリア後のおまけというよりは、しっかりと作り込まれた短編になってて。ハッピーエンドでも話はまとまってるんだけど、こちらでは少し深堀りした形で話をまとめ直してます。なのでクリア後のかさ増しやりこみ要素とか興味ないって人でも遊んだほうが良い内容でした。

アクション要素に関してはイースみたいにフラッシュムーブでガチャガチャやらなくても大丈夫なのでコントローラも壊れないし指も痛くならないです。遠距離攻撃とか協力攻撃が特徴的かな?

あと、このゲームわりと下着の防御が甘いです。


アクションとる操作キャラは見せまくり。


アイドルのリオンも見せる。

そして学校の生徒たちが倒れてるシーンではキャラごとの下着のこだわりが。スタッフの意気込みが伝わってきます。あと、防御の堅いキャラはひたすら防御が堅く、このシーンでも壁際にいて見えなかったり、気絶してなかったりなどなど。そのへんも拘りなのか……確かにトワちゃん見せないのは賛成派です。


今の軌跡とイースだけで作る方も大変だろうし、遊ぶほうもいっぱいいっぱいなんだけど、長期的には続編も期待してます。


2020年2月11日火曜日

XC9536の開発環境

5V動作で安く入手できるCPLDって事で、基板を日常的に起こすようになると一定の需要がある。もともとは大昔に買い溜めてたXCR3032あたりを使ってたんだけど入手性が悪くなってるので……まぁXC9536も趣味を超えて使うには厳しい感じですが。

開発に関してはISE14.7最終版にもサポートが残ってるので問題は少なめ。ただ書き込みに少々難ありで。自分はUSB環境だとPlatform Cable USB/II互換を謳う中華品を使っていたんですが、どうにもiMPACTでも動作が怪しい。XCR3032ではうまく動作してたんだけど、XC9536に関してはJTAGでデバイス検出まではできるもののProgramしてもVerifyで失敗、Blank CheckするとOKが返って来てしまう。Get Device Checksumでも不一致エラーで、そもそも特定の操作順を守った時のみAvailable Operationsに操作が表示されるという変な状況でした。

で、エラー情報で色々と調べてみたらDIGILENTのフォーラムで似たような話が。そう言えば今まで見落としてたけど、この中華装置はDigilent JTAG-HS2として認識されていたのでした。という事で、このケーブルでは9500シリーズは未対応らしい。Platform Cable USB/IIの人はたぶん大丈夫?

そうなると家にあるのは15年以上前にSpartan3 Starter Kitで使っていたパラレルポート用のダウンロードケーブルのみ。幸い以前必要になった事があって自宅サーバーになってるキューブ気にはパラレルポート拡張用のPCIボードが刺さってたりISEがインストールされてたり。という事で試そうと思ったんだけど、ドライバーのwindrvr6がloadできない。以前使ってた時から何度もUbuntuのinplace upgradeをしてるのでそりゃそうかっていう。という事で、

% cd /opt/Xilinx/14.7
% cd ISE_DS/common/bin/lin64/install_script/install_drivers
% ./install_drivers
って感じでインストールしようとしたら……
linux_common.h:29:4: error: #error "This kernel is too recent: not supported by this file"
 #  error "This kernel is too recent: not supported by this file"
    ^
linux_common.h:51:2: error: #error "unsupported linux kernel version"
 #error "unsupported linux kernel version"
あぁ……。ソースみたらKernel 2.2, 2.4, 2.6しか対応してない。確かにそんな時代の産物でした。これしか選択肢がなければドライバいじりを始めたんだと思うけど、僕にはこんな時のためにレガシーCAD用のVMがある!(あるいはVivadoの配布パッケージから最新版のドライバだけ抜き出すこともできたかも)

という事でVirtualBoxにプリンタポートを直接見せることができないかテスト。ちなみにGUIからは設定できないので面倒。
% vboxmanage modifyvm CentOS5 --lptmode1 /dev/parport1
% vboxmanage modifyvm CentOS5 --lpt1 0x378 7
そう、CentOS5の環境がまだ生き残っているのです。このままだと通常の環境だとVM起動時に/dev/parport1が開けなくて怒られるはず。これはlpがデバイスを専有してるため。なので、マニュアルで一時的に外すなら
% rmmod lp
が必要。あとパーミッションも0666にしてあげる必要あり。 このあたり、永続化させたいなら/etc/modulesからlpをコメントアウトすればOK……と思ってたんだけど、これだけじゃ今どきは駄目っぽい。おそらくcupsが起動時になんかやってるのかなーってinit.dをみたらinsmodしてたので、こいつを外す必要あり。で/etc/defaults/cupsを見たら、この辺りの設定は/etc/modules-load.d/cups-filters.confに移行した、とあるので見たらここにもlpが居たのでコメントアウト。たぶんこれでOKかな?パーミッションはudevでよしなに。

ちなみにCentOS5の環境を維持するのは難易度高めです。なにせシステムで使ってるTLSが世の中からbanされた太古のバージョンなので、そのままでは通信が軒並み動かない。セキュリティー系のチェインを一通りソースからbuildして、その上でgitやらなんやらの開発環境を作り直す必要がありました(これは結構前の作業で詳細はマシンのログにしか残してない)。

それと番外編的な話題として、9536のリビジョンが2じゃないと更に苦労があるようです。このあたりはFramさんのCPLD(XC9536無印)の書き込み環境を構築するまでの紆余曲折に書いてありました。9536使おうとすると一度は目に入って怖気づく or やる気がでる記事。

ちなみに、パラレルのケーブル刺そうとした時にマシンの電源コネクタが抜けてサーバ落ちて「ギニヤー」ってなりました。その後VMWare Playerとどっちが楽だっけなぁ……と一瞬起動したのちにVirtualBoxを起動したらネットワークが繋がらなくて、VMWareのドライバとコンフリクトしたかなぁ……と調査したりもしてたんですが、実はパラレルのケーブル刺す時にLANケーブルも抜けかけてブリッジネットワークに使ってたNICがdownしてただけでした。

作ったやつはこれ。


以前作ったこいつを1 chipで置き換えようかと思ってたんだけど、I/Oがpullupをサポートしていないタイプのシリーズだったと気づきボツに。SMD network register使った基板を作り直しますorz


2020年2月3日月曜日

2019年シューティング記録帳

少し遅くなったけど、昨年のまとめなど。

2017年から始めたシューティング1コイン1周を目標に積みゲーを切り崩す努力をする活動、3年目に入りました。2019年に達成でいたタイトルは12タイトル。数え方の問題もあるので純粋に増えてきたとは言えないですが、2017年の9本、2018年の11本と比べて悪くない流れかと。

  • スクランブル
  • サンダークロス
  • アスタブリード
  • BLAZING STAR
  • シスターロワイヤル
  • 沙羅曼蛇
  • LIFE FORCE
  • 疾風魔法大作戦
  • カラドリウス オリジナルモード
  • ラジルギスワッグ
  • カラドリウスAC アーケードモード
  • Thunder Force IV KIDS mode

あと1周済みだった周回ゲームで記録が伸びたのが

  • BATSUGUN スペシャルべージョン(2周目5面)

最終面ボスまで到達してクリアできてない次点は

  • バトルガレッガ
  • サイヴァリアμ(Δ版)
  • BATSUGUN(通常版)
  • バトライダー(一般コース)
  • レイクライシス
  • 超連射
  • ライデンファイターズ2
  • ダライアス外伝

高難易度のタイトルが多めに積み上がってしまっているけど、2020年はこのあたりも切り崩したいなぁ……。それ以外に今年記録を伸ばしたいタイトルは

  • 戦国ブレード(現在、6面)
  • エスプレイド(現在、4ボス)
  • ケツイ(現在、4ボス)
  • XEXEX(現在、5面)

とか。他にもやりたいタイトルは山積みなので、タイトルのバランスをみつつ。

2020年1月25日土曜日

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


っていう。結局、サブボード一通り作って動作確認したら、やっぱり動かなくて調査したところメインRAMが死亡。交換して修理できました、という話。

手始めにまず面倒なコネクタをJAMMAに変換するところから。


合致したコネクタを探すのも面倒なので、直接ハンダ付けで済ませようと、こんな基板を用意しました。


裏側からこんな形でハンダ付けする事もできますし、表面からピンをホールに通してハンダ付けする事もできます。今回、表でハンダ付けすると変換基板にミスがあった時に取り外すのが難しくなりそうだったので、炙れば剥がせる裏面から攻めました。


表はこんな感じになるので、万が一オリジナルのO/P/Q端子が必要になっても大丈夫。

で、サブボード系のうちまずはメモリ。同じチップが入手できればボード起こす必要はなかったんだけど、探す手間とコスト、今後のメンテナンス性を考えたら基板を起こした方が早かったので。


一番右上に並ぶ1ビットx5のRAM。これらは全部同じアドレス、同じタイミングでアクセスされるので普通の8ビットSRAMで置き換えました。4044ではデータ入力と出力それぞれが別ピンになっているため、入出力共通の今どきのSRAMに繋げるにはtri-stateで受けてR/Wで出力を切り替えてあげる必要があります。本来の挙動を忠実に再現するためには、書き込み中にZを出力するためにもう1つtri-stateが必要なのですが、書き込み値をそのまま外に垂れ流しても外部回路的にOKだったため省略しています。


もう1つはこれ。VRAMに使われているメモリだった気がする。うっかりtri-stateに繋ぐ信号を間違えて基板を作ってしまったため、パッチで直してます。下をくぐってる3本の線は関係ありません。元々ムーンクレスタで使ってるオブジェクトのバンク切り替え用の配線です。本来(ギャラクシアンが)coin lockの出力に使っていたレジスタの値をバンク指定に流用しているようです。


これはオブジェクト用のROM。16bit幅で元々は複数の8-bit ROMに分割されていました。サイズも小さいので16-bit幅のEPROMを使用。それでも容量あまりまくりなので、とりあえずDIPSWで4面分データを入れられるようにしてあります。接続されてる3本の線は先程の説明の通り、coin lockから。バンク制御はDIPSWの値を見ながらGALで制御できるようにしてあります。


これはPROMの置き換え。PROMは入手はできるけど書き込み環境を揃えるのが困難なので……。ちなみにパレット用です。


最後にこれはプログラム用のROM。本来はEPROMが8枚ささった大きめのサブボードになってるやつです。Enable信号のANDを取るために74の論理が1枚載ってます。また、このメインのROMは暗号化されてるのが普通なのかな?アドレスとデータで軽くシャッフルされていて、CPU側の周辺回路でdecryptしながら実行するようです。今回は面倒なのでdecrypt済みのデータを置くことに。ちなみにムーンクエーサーはM1サイクルのみdecryptするのかな?なのでdecrypt済みのデータを作るのは実行時データが必要なのでちょっと面倒そう。そのうち実験がてらdecrypt側の論理を入れたCPUボードを起こすかも。あと、もしギャラクシアンとの共通化を考えるなら、CPUボードでI/Oのアドレス変換までやっちゃうのが楽かな。

ここまで作って起動してみた状況はこちら。


SYNCはちゃんと取れてるけど、横長のドットがちょろちょろっと表示されるだけの画面。音もたまにぴーひゃららーと鳴ったり鳴らなかったり。この段階でCPUから出てるアドレス線の観測をして、正しそうな順序でリクエストが出ている事を確認。最初のリターン命令で壊れたスタックから戻りアドレスを読みだして暴走している、と予想。

という事でメインボードからメインRAMを交換。プログラムROMに近くにある2枚の2114がメインRAMです。こいつもサブボード起こしても良かったんだけど、たまたま秋葉行く用事があったし、若松通商に在庫があるようだったので、今回は2114そのままで置き換えました。



これで基本ロジックはほぼ動作する事が確認できた。オブジェクトが読めてない気がしたので作ったサブボードのGALを確認したら……論理書き込み忘れてたorz


という事で、論理を入れたら絵もでました。ただ、16ビットの上下を焼き間違えていたみたいで色がちょっと変、という事にあとから気づきましたが……。

あと、現状で気づいた問題は自機のショット音が鳴っていない点。サウンド周りはディスクリートなので難しい。後で追ってみます。

最後に基板全体像をパシャり。


備考:ここまで大規模な修理になると、お前はその破れた一万円を交換するにあたり本当に一万円札の2/3を持っていたのか?的な気分になります……特に今回はソフトウェア部分が丸々欠落していましたし。ただ、この点に関しては過去の裁判の判例をいくつか踏まえた上で、現状でエミュレーションベースの移植版を正式に保有しているので、そこからの私的複製という立場をとらせて頂きます。

SOPをDIPで置き換える基板

1.27mmピッチのSOPを置き換えたい事がわりとある。ROMの類いだとパッケージ互換のEPROMが存在しなかったり、近い形状のフラッシュとかあっても若干ピン配置が違ったり。修理に際してはちょっとしたリスクだったりします。

巷でみる方法では、同サイズの基板を作り周辺にスルーホールをはみ出す形で配置、スルーホールを二分する形で基板をカットする事で足の代わりするのが一般的でしょうか。より小さい表面実装部品で代用できる場合にはこの手の基板を作るのも手です。特定のハード限定の改造などではCPUの上からソケットを被せて信号を引き出す荒業とかもみかけるけど……汎用性はいまいち。追加のパッチワークが必要な事も多いです。

で、思いついた方法があったので試してみました、という記事。


作った基板はこんな感じ。2.54mmピッチを入れ子にしたようなホールを打ってあるのですが、ここに写真のタイプのL字型ピンヘッダを使います。


こんな形で入れ子にして二列ずつ。外に向けて出して……


最後に足の長さを揃える。これで1.27mmピッチの足のできあがり。あとは表側にDIPソケットを実装して、裏に出たこの足を基板にハンダ付け。


この1.27mmピッチの部分に載せます。ハンダ面は基板の影に隠れるのでやや作業難易度が高い。最低限、となりのピンとショートしてない事は電源投入前にテスターで確認したい。


で、こんな感じ。がっつりハンダ付けされるので安定性は抜群。問題があるならば、影に入ってしまう部分の修理がしづらくなる事と、高密度な部分だと連続して何枚も置き換えるのが難しい事。でもまぁ、追加の選択肢としてもっていると安心。

基板修理:がんばれギンくん

ぱっと見、問題なさそうなものの、実はオブジェが表示されてなかった基板。遊べそうでいて、いざミニゲームが始まると何も表示されてなかったりと難易度が高いw

で、最初は曲がって刺さってるROMがあったので、これが原因かな、と思ったんだけど違った。ただ故障原因は関連してそうで。


このカスタムチップ、4辺のうち3辺で足が浮いていました。実際にピンセットとかで動かしてみないと分かりにくいのだけど。この写真で言うと右側160ピンから左に3ピン分くらいが少しずれてるのがわかるかと。

また、左のTECMO-5って書いてあるチップにも傷、すぐわきの基板面にも引っかき傷って事で、曲がってたROMも含めて物理的なダメージが入っていた可能性が大。


この辺もダメージでショートしちゃってる。

でまぁ、修理後は無事に動いております。ありがたや。


しかしギンくんもそうだけど、大学のサークルで流行ってたやはり線画で書かれたWindowsのゲームなんだっけ……としばらく考えこんだんだけど、そうそう「まさしくんハイ!」でした。懐かしい。って作者ABAさんだったのか……相変わらず世界は狭い。

2020年1月24日金曜日

2019年冬のゲーム

予定どおりドラゴンクエストヒーローズをクリア。



そんなに時間かかるタイトルってわけじゃないんだけど。4年前はまだゲームは厳しく制限してたし。ゲーム自体は少したるいというか。最近のイースくらいのアクション性があれば戦ってるだけでも楽しいんだけど、万人向けに簡単化されすぎちゃってて、ただ硬かったり大量だったりの敵を無双してても眠くなっちゃうという。でもまぁ、資産重要っていうか。名シーンを思い出す名曲の数々がずるいよねっていう。おまけ程度のシナリオでもラーミアの曲が流れただけで涙腺緩むから。

とりあえず2019年中に片付けたゲームはここまで。