9999年12月31日金曜日

当ブログにおける注意点

全般的な注意点

Basically, all articles are written in Japanese, but please feel free to ask me to translate or explain it via Twitter, etc. At GitHub, I'm using English usually.

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

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

コメントの見落としが多いというか、ほとんどチェックしてなかったので、何かあればTwitter等のソーシャルメディアで突いてもらえれば捕まるかと思います。

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


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


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


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


際どい技術情報について


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

2023年2月6日月曜日

CPLDでシリアル扱うの難しいね、という話

この件について、反省文ですw 

もともとやろうとしてたのは、シリアル伝送の18bit PCMデータをI2Sに変換すること。んで、想定してた元PCMの周波数が8MHzのクロックが入ってるので分周して半端なサンプリングレートだろうと思っていた。そうなるとなるべく高い周波数で非同期で変換してやるしかないかな、という事で96kHzのI2Sで読み出すことを考えていた。

この際、ハードで実装するならFF打つ回数を限界まで減らさないと無理だと思っていたので、内部には18bit x 2chの36個のFFを用意して、元の信号で順次更新、I2Sで非同期に読みだし。元信号がMSBから出てくるし、倍速以上で読み出せば誤差はLPF通せばほぼ消えると思ってた。

この時の間違ってた想定は「MSBから更新してけば、どのタイミングで読み出しても更新中の値は更新前と更新後の値の間にあるだろう」で、これは完全な誤り。例えば16bitで考えると、0から-1へ更新が入る時は、MSBが入った瞬間に-32768へ値が飛び、徐々に大きなビットが落ちて-1へ近づく。なので、たまに大きなノイズが入る。

もう1つの誤算は元の信号が半端な周波数ではなかった事。きっちり48kHzで出ていたので96kHzで読み出すと、ノイズの載る位置が固定化されて、クロックドリフトでゆっくりノイズの載るビットがズレていく。これがTweetで見ていた現象でした。

最初はメタステーブルかと思って、入力側のクロックを一桁速い出力側のクロックで取り込んで2段くらいFF打ってから使ってみたんだけど関係なかった。

で、これを真面目に対処しようとすると、18bitのシフトレジスタで更新していって値が確定時に別の18bit FFに取り込み。で、これをI2Sから直接出すと、やっぱり出力中に値が変わっちゃうことがあるので、I2Sもフレームの最初のタイミングで18bit FFに丸々コピーして、そこから読み出し。結局3段のバッファが必要なんですね。ステレオだからバッファだけでFFが108個かな?EPM3064だとFFは64個しか無いので、一気に3倍になったFFを実装するのは無理で、結局2枚のチップに分けて入れました。I2Sの出力に6bitカウンタが必要だし、他にもタイミング作るのにいくつかFFが必要なので、分けてもギリギリでした。はぁ……材料不足つらいですね。

それと、Qiitaに雑なI2Sの理解として軽くメモ書きを残しました。

2023年1月30日月曜日

X68000 修理にて復活!

はじめに

X68Z ハッカーズエディションを試せる事になったので、それに先立ってずっと故障したままだったX68k EXPERTの修理をし、無事元気になったのでその報告です。

壊れた経緯は例にもれず電源です。ただ大学のサークルの部室に置き去りにしてたのが、煙を吹いて動かなくなったという連絡があって。それを回収してそのまま20年近く放置してたのかな?それ以来、ハードディスクも火を入れずにずっとしまい込んでた。

ちなみに他にcompact XVIというかredzoneも所有していて、あとはサンデーネットが閉じる時にもらったXVIを所有してますが、両方とも電源が理由で死んでました。XVIも電源修理であっさり直ってますが、特に新しい話題はないのでEXPERTの修理の話を発掘しやすいようにまとめとこうと思います。

まずは電源から

という事で、まずは電源交換の本スレがこちら。

BEEPさんで購入した、同人サークルさんがセットで用意してくれたPico PSU換装キット。今回は日和ってまずは確実に動く状態にしようと安全側に倒しました。キットがなくても12V、5V、-12Vを拝借できれば良いので、この手のがなくなっても最悪どうにでもなるのかな、と思いました。今なら修理方法も世の中に出回ってるし、ヤフオクで交換部品のセットを安くまとめてくれてる人もいるので、そういうのを利用すれば数千円くらいで直せるんじゃないかな?Pico PSUだと5Vの供給が足りないかもアドバイスもあったので、Phantomで強力なラズパイを使うとか、拡張ボードを挿してるなんて場合は電源を修理した方が良いのでしょうね。

エラーが発生しました。リセットして下さい。

電源は入ったものの最初みたメッセージはこれ。やっぱり何か壊れてる?

って事で、この時点で一番怪しいのはSRAMのデータが飛んでる事態。まぁ、長年放置してたわけで、当然バックアップの電池は死んでますね。SRAMの内容が壊れてるとブートデバイスの情報も消えてるので、結果としてさっきの画面に飛ぶのかな。なのでOpt.1を押してFDから強制起動を試すことで先に進めます。まぁ、普通はここでFDDが死んでて起動できない気もしますが。しまい込んでたと言っても、ずっとマンション内で空調の効いた仕事部屋に安置されてたので状態は良かったようです。

電池交換

続けて電池交換はこちら。EXPERTだと+側の2端子のうち1つはN/Cなので、パターンを見て繋がってるほうにハンダしてあげて下さい。使ったのはCR2450だけど3Vならなんでも良いのかな?

電池が入ればOpt.1でHumanなりを起動してswitch.xで設定してやればエラーは出なくなります。

テキストVRAMの交換

何事もなければこれで修理完了だったんでしょうけど、残念ながら他にも壊れてました。

こんな感じで画面の上の方に点線が現れます。これだけなら少しノイズがあるだけで我慢できますが、テキスト面で画面上方となると、スクロール等で画面中にコピーされまくります。特にテキストはピクセル単位じゃなくプレーン方式なので、特定のプレーンだけゴミが撒き散らされて。用途によってはパレットをうまく使ってマスク用プレーンにしてたりするんで文字がまったく見えなくなっちゃったりします。

という事で奮闘開始したのがこのスレ。

まずはメモリーテストでテキストVRAMでエラーするのを確認。M51C262相当品は新品入手は難しそうだったのでAliExpressでリサイクル品を探して発注。HM53461ZPを見つけて購入しました。ワードアクセスと平行してシフトしながらビット読み出しもできる感じのマルチポートなのかな?こういうタイプのメモリは初めてだったので、変換ボード組んで載せ替えるとかは避けました。

メモリが届いてからは実際に壊れてるチップの特定作業。XVIとかはサービスマニュアルが公式から公開されてるけどEXPERTにはないんですよね。ただまぁ、そこまで変わってる部分じゃないだろうって事でXVIの回路図は確認しました。それでテキストVRAMはこの4bitのチップを4つ並べて16bitにし、各チップのメモリ空間がちょうど1プレーン分ある事がわかります。なので、それをx4で4プレーン分載せて合計16枚でテキストVRAMを構成してる。シルクで書かれてるIC番号は当然XVIとは違うけど、まぁ同じような順番だよねっていう想像もできるので、若い番号からプレーンごとに並んでるんだろうな、という予想もできます。

実際に壊れた箇所は自分でテストプログラムを書いて詳細に調べました。$00e60e00 - $00e60fff にかけてbit 10-11の2bitがhighにならなくなってたので、最終プレーンでbit 8-11を担当してるチップを交換すれば良い事になります。プレーン内の並びは回路図の信号名で当たりをつけてLSB側から並んでると判断。という事で、16個中の15番目のメモリが怪しい。

VICONから配線を追うことができればEnableがどこに繋がってるかで並びは確定できるんですが、拡張スロットの下にあって調べられませんでした。拡張スロットって外せるんですかね?

そんなわけでメモリ交換はシュッ太郎の出番。ただ電源ピンはかなり苦戦します。昔は原因理解してなかったんだけど、これって当時の基板はthermal reliefとか考えてなかったからですよね。ベタで繋がってるんで熱が逃げちゃうから基板全体を温めるか火力を上げるか、みたいな。この辺はベテランの人のノウハウを知りたいところなんですが、自分はわりと細いドリルで掘りがち。今回もチップは抜けたけどGNDの穴は再び塞がっちゃって。グリグリやって穴を確保しました。

という事で、EXPERTは左からplane 1の3:0、7:4、11:8、15:12、plane 2の同じく、plane 3、4って順に並んでるので、もしテキストVRAMが壊れて交換が必要って人がいましたら参考まで。

ハードディスク

SxSIでSCSI読めてたはずなんですが、どうもsusieで認識しない。ハードディスクも怪しいし、68も怪しいし、加えてPhantomを載せてたから問題の切り分けが難しい。という事で、ハードディスクはXVIを直してそっちで救出しました。SCSIボードも持ってたはずなんだけど、誰かにあげた記憶もあって見つからず。本体にSCSIついてるXVIで面倒だけど確実にチェックする方法を選びました。

ハードディスクのサルベージに関してはPhantomさんが本当にスグレモノで。SDカード上に仮想ディスクを作ってくれるので、ハードディスクが無事認識したらmintで仮想ディスクに全部コピーしました。奇跡的にも全部読めたんですよ、もうびっくりです。吸い上げたディスクイメージはクラウドとバックアップストレージに入ったので、たぶんもう僕の命より堅牢。

吸い出し後はPhantomを今回修理した長年の相棒でもあるEXPERTに戻し本格的に再運用を開始しました。

SxSIはおそらく自作で追加したパリティ回路の74が壊れてるんじゃないかと予想。バスリセットとかは飛んでディスクは反応してるんですよね。パリティエラーでネゴれてない印象でした。

2022年9月12日月曜日

ディスクロニア: CA 体験版 パズル&ステルス

岸上さんをはじめとするMyDearestのスタッフと作品のファンなので今回も体験版祭りに絡んでいきたいと思います。

共通部分

Quest2でかなり画面頑張ってる。いや、かなり綺麗ですよ、お世辞抜きで。


上の画像はゲーム内からAR的な表現世界に移動した時のスクリーンショット。VR内でAR的な表現っていう試みはアルトデウスの頃から実験されてましたが、今回は画面の表現力や動きもあってかなり説得力があります。やっぱり理想的なAR的表現はVRの中でこそ真価を発揮しますね。そして岸上さんが普段から叫んでる事は、だいたい作品に反映されてくるんだなって思いました(笑)そう言えばコントローラで自由に動き回れるようになったのは大きいですね。SFのようなARのある世界に生きてるって実感が湧きます。

そう言えばキャラクターの大きさがまだ一回り小さくなったかな?VRChatでもアバターは日々小さくなってく傾向にありますが(笑)。東京クロノスの頃は桃野夕が隣に座ると「うわっ、でかっ」ってなったんですが、今回はだいぶ自然なサイズ感です。ガチ恋距離っていうか、近くからふわっと腕に包まれそうになる表現もあったりするんですが、凄く自然に感じました。

演出面でも画面の魅せ方もいっそう洗練された気がします。UIが手前で派手に動いた後、すっと画面が引いて広い空間に放り出される等、遊んでいて「あっ」と思う表現が随所に散りばめられてます(そして、タイミングがシビアなのでなかなか写真に収められないぞ)。この辺は代表が率先して色々なVRゲーム遊んで、社員にも経費で遊ばせて、良いところはどんどん取り入れてきた結果なんじゃないかって思いました。

パズル


まずはパズルパートの体験版。VRゲームの定番の1つでもある空間内にあるアイテムに触って仕掛けを解除していきながら話を進めていくパートです。アルトデウスにもありましたが、MyDearest作品の特徴はなんといっても日本的なストーリー性の強い展開とキャラクターとの絡み。今回も健在です。アルトデウスはまだベースはビジュアルノベル系って感じのゲームであり、探索要素はVR体験を添えるためのオマケ的な意味合いが強かったですが、今回はかなりしっかりと探索です。
複数の部屋を行き来して謎を解きつつ仕掛けを解除して……と、体験版で遊べる範囲でも色々と楽しめます。主人公は過去に干渉する力を持つ……ってシュタゲみたいな設定が出てきますが、体験版で実際にみられる能力は物に宿った過去の記憶を読み特殊能力でした。なんだっけ?そういう話あったな……て、そうそうDéracinéだ!なんだ岸上さんオススメのゲームじゃん(笑)

1つの謎を解くための行動範囲がわりと広くて、部屋の移動とかデータ読み込みとか必要なんだと思いますが、その辺は相棒ロボットが「スキャン中……」とか言って不自然な待ち時間にならないような工夫があるように思えます。

ステルス


こっちはまだ写真等の公開禁止の秘密の体験版なので文字だけ。で、ステルスってなんだ?!って言うと、あれでした、スネーク!潜入アクション!!これもまた新要素ですね。実際にVR空間上で自由に移動して、敵の監視の目から障害物などの影に入って隠れつつ潜入。道具を使って敵の注意をそらしたり……なんてのもあります。前作まではあくまでテキストで進むストーリーに選択肢ベースで行動を選んでいったわけで、ちょっとしたアクション要素もありましたが、あくまで没入感を高めるためのおまじないでした。今回はアクション面でもだいぶ本格的になってます。かといって、そこまでガチャガチャ動くわけではないので、Phantomみたいに酔いが気になったりはしませんでした(いや、Phantomは酷いよ、いきなりカヤックとか酔わせる気まんまんだったから)。オノゴロとかバイオハザードよりもマイルドだったかな。でもまぁ、やはり自由に移動できるようになった事で広がったゲーム性や演出面でのインパクトは大きいです。インタラクティブ要素の没入感はだいぶ大きくなりました。

オープニング!


MyDearestさん作品のOPは毎回気になって感想書いてるんだけど、今回も体験版にはオープニングのおまけ付き!せっかくなので感想を!!

MyDearestさんは日本のアニメ的オープニングの表現をVR上で拡張して体験させるべく試行錯誤されてます。


今回のオープニングはこんな感じで影絵調の演出をベースにしてます。同じ殺人事件を扱った東京クロノスを思い出しますね。やっぱりサスペンス感!!カウボーイビバップも想い出しますね。

前作まではまだ空間を持て余しているようなところがあったんですが、今回は正面以外を観ても間が持つような空間の作りになってます。


立方体の空間の中に単色の帯を壁に沿わせて1周させてるのが特徴的です。1枚めのオレンジのがわかりやすいかな。これにより360度どこを観ても空間に一定の表現が詰まってる感じが得られてます。同時にアニメによくある斜め線のもたらすスピード感みたいなものが実現できて、まさに一石二鳥な表現。


アニメ調オープニングのVR的な表現を確立しつつあるのかな、と思いましたよ。みんなオープニング入れるのには苦労してるし、スクリーン置いてそこに投影って感じの延長線上になりがちなんだけど、パーティクルライム的な世界にもだいぶ近づきました。あとは端末の性能向上ですね。

って事で、発売が楽しみです。今回は細かいエピソード事に安価に小分けして発売になるのかな?発売してそれっきりたと、どんなに面白くても忘れ去られる世の中ですから、小出しにしてくのは良いんじゃないかな、と思います。アルトデウスの時はストア経由で公式アップデート情報のチャネルかな?そのへんを使って一般ユーザーのリテンション維持に苦労されてたみたいだし。今は定期的な追加コンテンツ追加と運営とかやらないとユーザーは付かないし、売り切りゲームには厳しい時代ですね。それに小出しならMetaのストアが高い値段付けられないって問題も解決できますし、大人になると重たいタイトルがどーんって出るより小出しの方がありがたいです(笑)そういえば同じクラファン系のR-TYPE Final2も小出しアップデートやってますもんね。時代の要請なのかな。

2022年1月1日土曜日

2021年のシューティングたち

ここ何年か遊んだシューティングをまとめてるので2021年も。

ちなみに積みゲー消化を始めてからのシューティングクリア本数は

2017年...9本
2018年...11本
2019年...12本
2020年...5本
2021年...8本

2021年に新たに1CCしたゲームは

GGアレスタ1
GGアレスタ2
コットンリブート
スラップファイト MD版 SPECIAL
R-TYPE Final 2
戦刃アレスタ Casual Mode
Xマルチプライ
デススマイルズ 追加5キャラ

今年達成した中だとXマルチプライが一番の高難易度かな?子供のころCD買って聞くしかできずに想像の中だけで楽しんでたゲームなので、今こうやってやりこんでクリアできたのは感慨深い。

GGアレスタは新作の3をやった後に旧作に進んだ感じだけど、どれも完成度が高く1CCを目指して遊ぶには敷居も低く、ちょっとずつテイストが違うのも魅力。これは現役時代に遊ぶべきゲームだったな、と思いました。

コットンリブートは話題にはなったけど、あまり遊んでる話を聞かないのが残念。現代風アレンジに成功してて、これが発売された時点では最高のコットンになってると思うんだけどなぁ。ぜひこのラインで過去の名作をアレンジ復刻し続けて欲しい。

MD版スラップファイトは古代先生のBGMとSPECIALモードが醍醐味だからNORMALクリア後もSPECIALを練習してました。パタン詰めないとクリアが難しい個所が何か所かあったかな。次はアーケード版がターゲット。NORMALは画面方向だけじゃなく若干システムが変更されて簡単になってるのよね。

R-TYPE Final 2はNORMALモードではノーミスクリアも達成。BYDOモードでも1CC。 実はシリーズで1CCできてるタイトルはなくて。今回家庭用難易度とは言え、1CCできたのは嬉しい。PsytranceなBGMも好き。

戦刃アレスタは老舗シューティングメーカーが悪魔合体して現代に蘇る世界線での新作って感じで(実際はcaveで最大往生の調整を任されてた小泉さんがインディーズでローリングガンナー発売後にM2に移籍して出す完全新作って事だと思うけど、エムツー周辺には元コンパイル/Raizingな人達が多いから、その辺りの影響ですかね)。ゲームシステム的にはオプション使って弾消したり、連射と長押し切り替えながらオプション位置を制御して攻撃したり。あと連続被弾しなければ回復してミスがなかった事になるっていうのはポカミスが増えるお年寄りには嬉しい機能なんですよw ボムが緊急回避じゃなく即時使用ドロップアイテムっていうのが少し特殊かな。あんま使い道わかってない。敵弾を跳ね返すっていう仕組みも斬新。ただうまく逃げないと直後に集中砲火を浴びるので慣れるまで緊急回避には使えないw

デススマイルズは初心者にも優しいシューティング。特にコンシューマ版はアーケードにあったレベル選択の制約がなくなって難易度をある程度自分で調整できるので比較的簡単に1CCまでいけるのでオススメ。お父さんとラスボスは難しそうだけど、ちょっとトレーニングモードで練習すれば慣れるので大丈夫。いまいち進め方がわからなかったらミカドの配信で必要最低限稼いで1CC狙う解説があるので、それでケーキと火山の稼ぎさえ覚えれば、あとはシューティングの真の楽しさがわかる良いタイトル。フォレットさんオススメ。配信後にしれっと座ってプレイし始める人がたぶんSteam版や360版でトップスコアの人なんだけど、見てると地獄で笑える。シティコネ版はランキングにバグがあったり、まだ十分なプレイデータが揃ってなかったりとかあるけど、落ち着いたら上手い人のデータ見てるだけでも楽しいかも。

2021年夏以降に遊んだゲームたち

またしばらく記録とってなくてわからなくなってしまった……覚えてる&メモにある限りで簡単になとめてみます。

Xマルチプライ

PS4のアケアカでやりこんでました。最後はなんとかクリアできたよー。

デススマイルズ

もともと360判で全キャラクリアまではやってたんだけど、今回はゴ魔乙から追加キャラが5人って事で、しばらくやりこんで思い出しつつ5キャラ分も1CCしました。追加分のキャラもそれぞれ癖がうまく出てて楽しませて頂きました。ゴ魔乙モードはBGM初期値でアレンジにしといても良くない?せっかつ追加したのに勿体ない!

Yakuza 0

Xboxで遊んでた。なんか書いた気がするんだけど、見当たらないので。基本的にはベルトスクロールアクションが3D方向に進化してコンソール向けにRGB要素とかおまけゲームで肉付けされた感じ。クリア優先で楽しませてもらったけど、ほかにやるゲームなかったら無限に遊べるなーって思った。シリーズたくさん出てるし、他のもやってみたいけど、こうも積みゲーが増えてく状況だと難しいなぁ。

Cyberpunk 2077

Xboxで始めたんだけど、途中で他のゲームに押されて止まってる。まだそこまで求心力感じてなくて、どうしてもシューティングが発売されるとそっちに流れる。まぁ、でもいずれ先に進めたい。

SCARLET NEXUS

Xboxでストリーミングが来たのでやってみた感じ。バンナムらしいアニメ調のゲーム。VFXとか近未来っぽくて好きだけど、ゲーム自体は例によって死なないベルトスクロールアクション系でやりこみの魅力を感じなかったのでストーリーに引き込まれる前にやめちゃった。やれば面白いんだろうけど、そういう時間ないからなー。

ゼクセクス

基板で遊んでたらアケアカでも出たのでPS4でも遊んでるんだけど、現状まだワンコインでは5面まで。クリアまでの道筋は立ててるんだけど、安定しなくてこの辺までになってる。

バイオハザード4

Quest2で少しずつ進めてます。ちょっとね、やっぱり周囲の物に手をぶつけて危険(笑)思ったより怖い要素がないんだけど、これは「今のところ」なのかなぁ。心臓にくるような怖いのはちょっと苦手だ。

パズルボブルVR

Quest2で遊んでみたけど、正直そこまで面白いゲームには仕上がってないんだよなぁ。VR化し易そうなIPでとりあえず作ってみたけど、思ったほど面白くならなかったって雰囲気が。後半クリア条件を変えたり、お助けアイテムが使えるようになったり、と頑張ってはいるけど、ゲームが面白くなる方向にはなってない。高難易度ステージになるとクリアするのに技術より運依存が強すぎなんだよなぁ。特にお助けアイテムはカジュアルゲームの手法を持ち込んだだけで、むしろ興ざめ要素。いや、運依存回避なのかもしれないけど、遊んでポイント貯めてアイテム買ってランク下げるとか、ほんと作業なので嬉しくない。

その他

あと、最近はシューティング移植が凄い勢いで出てて、しっかり遊ぶ時間が取れてないものが多い。年内に買ったけど十分遊べてなかったやつ、新発売品で主な購入サイトの履歴だけみてもこんだけある。
  • 虫姫さま (switch)
  • エスプガルーダII (switch)
  • 怒首領蜂大復活 (switch)
  • ダライアス コズミックリベレーション (switch/PS4)
  • 究極タイガーヘリ (switch/PS4)
  • コットン ガーディアンフォース サターントリビュート (switch/PS4)
  • コットンロックンロール (switch/PS4)
  • 暴れん坊天狗 & ZOMBIE NATION (switch)
  • イルベロスウォンプ+ラジルギスワッグ (switch)
  • エスカトス (switch)
  • Gleylancer (Xbox)
シューティング以外で買った新作もこんだけ。
  • 時計じかけのアクワリオ (switch)
  • 元祖みんなでスペランカー (PS4)
  • 海腹川背 BaZooKa! (switch)
  • ゲーム&ウオッチ ゼルダの伝説 (専用機)
  • アイドルマスター スターリットシーズン (PS4)
  • GetsuFumaDen: Undying Moon (Steam)
  • El Shaddai ASCENSION OF THE METATRON HD Remaster (Steam)
  • 夢幻戦士ヴァリスCOLLECTION (switch)
  • アイドル麻雀 ファイナルロマンスR (switch)
  • 帰ってきた 魔界村 (switch)
  • G-MODEアーカイブス+ モモコ1200% (switch)
  • Castlevania Advance Collection (switch)
  • アクトレイザー・ルネサンス (switch)
  • かしおり (switch)
  • FIGHTING EX LAYER ANOTHER DASH (switch)
  • Capcom Arcade Stadium Packs 1, 2, 3セット (switch)
  • Ridge Racer 6 (Xbox後方互換)
アーカイブスとかSteamのセールで買った古いもの、アーケード基板まで入れるとキリがない……あきらかに消化が追い付かずに積みゲーフェーズに入ってしまった。おかしい、ここ何年か意識的に積みゲー消化してたはずが。

2021年11月15日月曜日

naomiのROM BOARD TEST

 naomiのROMボード修理中につき、ある程度まとまった情報になったら随時ブログにまとめときます。

今回はシステムのテストから実行できるROM BOARD TESTの話。

このテスト、搭載ROMのチェックサムを確認してくれるのですが、肝心のチェックサムはIC22の中に入っているため、IC22が読めないとチェックできません。故障が多いらしい837-14114-01タイプのROMではバッファの故障が多いため、IC22自体が読めずにROMチェックがほとんど意味をなさないようです。IC22が正しく読めないと、TYPE、RESULTが?で埋まります。この状態で故障等のアタリを付けるのは大変なので、ひとまずIC22に書かれたメタ情報について調べてみました。

IC22は、各ROMについて以下のような6-Bytesのデータを保持します。

struct rom_entry {
  uint16_t type;
  uint16_t byte_sum;
  uint16_t word_sum;
};

メンバーはlittle endianで格納されてます。typeについては

enum type {
  kRomType_16M = 0x0002,
  kRomType_32M = 0x0003,  // maybe?
  kRomType 64M = 0x0004,
  kRomType_NotInstalled = 0xffff,
};

って感じだと思います。NotInstalledだと検査自体されない。

で、IC22のオフセット0x0000015cから、

struct {
  struct rom_entry ic22;
  struct rom_entry ic1;
  struct rom_entry ic2;
  struct rom_entry ic3;
  struct rom_entry ic4;
  struct rom_entry ic5;
  struct rom_entry ic6;
  struct rom_entry ic7;
  struct rom_entry ic8;
  struct rom_entry ic9;
  struct rom_entry ic10;
  struct rom_entry ic11;
  struct rom_entry ic12;
  struct rom_entry ic13;
  struct rom_entry ic14;
  struct rom_entry ic15;
  struct rom_entry ic16;
  struct rom_entry ic17;
  struct rom_entry ic18;
  struct rom_entry ic19;
  struct rom_entry ic20;
  struct rom_entry ic21;
};

といった感じでデータが並んでます。これを見てチェックサムを計算し、byteとwordともに期待値と一致していたらGOODを表示します。IC22自身についてはtypeは参考にするけどチェックサム自体は意味がないので無視して常に`----`を表示するようです。というか、ここは間違った値が入ってたので、単に無視してるのか別の用途で使ってるのか……。またtypeが未知だとTYPEとRESULTを`?`で埋めるんだと思います。GIGA WING2ではIC22が読めずにサイズがわからなくともbyteとwordについて正常時と同じ値が計算されるのは確認しました。ROMタイプが64M以外の時に正しい値になるかは不明です。

ちなみに応答するROMがなかった場合は0xFFではなく0x00が読み出されるようデータバスはpull-downされているようです。