2023年9月6日から2023年9月2日までの日記を表示中
2023年 9月 6日 (水)
■基板
CPUがリセットを解除する前にデータバスに信号を出しているのは誰なのか、VARTHのM/Bを使って調べてみました。
とりあえずM/B単体だと、リセット解除までの間にデータバスに信号が出ることはなさそうです。
続いてプログラムROMがほとんど載っていないマジックソードのサブボードを載せてみましたが、こちらも無風。なるほど・・・
VARTHのサブボードに交換してみたら、データバスに信号が出てきました。
うーん、プログラムROMが怪しそうですね。そこで、試しにVARTHのプログラムROMの先頭の方のやつを抜いてやったらデータバスに信号が出なくなりました。
つまり、だれかがCPU起動前にROMを読みに行っていて、そのデータがデータバス上で見えてしまっているようです。プログラムROMからデータが出ているということは、プログラムROMのOEを操作しているのが誰かを追えば、読み出し主がわかるかもしれません。
ROMのOEはどこから来ているのかを追ってみたところ、ROM1というPALから来ていました。このPAL自体はM/B間で共通のはずです。だとすると、PALのロジック自体が原因ではなく、そこに入力されている信号に違いがあって、VARTHのM/BではOEが動いてしまっているものと推測されます。
PALの入力と思われる線を追ってみると、CPS-A-01の方から来ているものがあるようです。うーん、なるほど、Aチップか。しかし、M/Bによって差があるというのはどういう違いなのか。まさかCPS-A-01のロットによって違ったりするんですかね・・・。
■SSD
安くなっていたのでSATAのSSD (EXCERIA 960GB) を買いましたw。デスクトップ機に細々とした容量のやつが載っているので、これを統合しつつ、空いた小さいやつは古いデスクトップにつけてLinuxを入れて・・・とかやりたいけど結局増設して終わりになりそうw
[コメントを書く]
2023年 9月 5日 (火)
■基板
起動時キー書き込みがうまくいかないチキチキボーイズについて調査しています。ひとまずマザーボードを殿様の野望2のものに交換して、Cボード無しで信号を見てみたところ、電源投入から300ミリ秒くらいの間、データバスが動かなくなりました。
この状態で改めて92641C-1で起動時キー書き込みを試してみたところ、あっさり立ち上がりました。
というわけで、電源投入直後からデータバスに信号が出てしまうのは、元々チキチキボーイズについていたM/Bの方に何かしらの原因があるようです。ひょっとしてM51953Bのタンタルコンデンサが容量抜けか何かを起こしていて、CPUリセット解除が異常に早くなっちゃってるとか・・・?
が、チキチキボーイズのマザーボードで波形を確認してみたところ、電源投入からリセット解除まで約300ミリ秒程度の遅延がついており、殿様の野望2のマザーボードと同程度でした。ここに異常はなさそうです。うーん。
元々チキチキボーイズについていたM/Bのバスの波形を観察してみたところ、起動時に何も信号が出ていない期間があるようです (波形の画像で緑や青が途切れている区間)。一定ではないようですが。ここをうまく狙うことができれば、安全にキーを書き切れたりするのかも?
追記: これはどうもロジアナのサンプリング間隔が低くて、タイミングによってはしばらくうまく信号変化を拾えなくなり、このように見えていたようです。きちんと16MHzのクロックに同期させてサンプリングしたところ、このような広い隙間は存在しないことがわかりました・・・。
試しにキー書き込みを始めるタイミングを適当に遅らせてみたところ、元のマザーボードでもチキチキボーイズが起動時キー書き込みで立ち上がりました。やった!
続いてVARTHでも起動時キー書き込みを試してみました。
成功しました。
ただ、波形を見ると、チキチキボーイズと同様に、キーを書き始める前や書き終えた後、CPUリセットが解除されるまでの間に、データバスに信号が出ているようです。チキチキボーイズのマザーボード固有の現象ではないということか・・・。
ちなみにチキチキボーイズについていたM/Bは 88617A-7bの10MHz版で、殿様の野望2についていたM/Bは 88617A-7bの12MHz版 (いわゆるCPS DASH)、VARTHについていたM/Bは 88617A-5の12MHz版 (CPS DASH) でした。CPUの動作周波数は違えど同型の殿様の野望2のM/BとチキチキボーイズのM/Bとで挙動が全然違うことを考えると、型番によってCPUリセット解除前の挙動が違ってくるというわけでもないのかな・・・。うーん。
[コメントを書く]
2023年 9月 4日 (月)
■基板
92641C-1だとPICによる起動時キー書き込みがうまくいかない問題、ロジアナで波形を見てみたら、クロック (波形画像の緑色の信号)やStrobe (波形画像のオレンジ色の信号) を LOW→HIGH→LOWと信号を変化させる際、信号がHIGHになっている時間がやたらと短いことがわかりました。
試しにHIGHになったら10μ秒くらい待つように処理に待ち時間を入れたところ92641C-1でも起動時キー書き込みがうまくいくようになったようで、ゲームが起動するようになりました。うーん、どういうことだろう・・・w
次に、CPS-B-21より前のBチップを搭載した基板で起動時キー書き込みの実験してみます。ターゲットはとりあえずチキチキボーイズ。過去にArduinoでキーを書いて動かす実験には成功しているので、起動時キー書き込みも普通に行けるはず。
が、92641C-1でも90631C-5でも起動してくれませんでした。波形を見ると、何やら電源投入後、PICが動き始めるよりも相当前からデータバスに信号が流れているようです。先日、殿様の野望2で確認した際は、CPUがリセットを解除するまでデータバスに信号らしきものは見られなかったので、だいぶ状況が違いますね。これがキーの書き込みと衝突して失敗してしまっている?
[コメントを書く]
2023年 9月 3日 (日)
■基板
CPS1 Desuicider のコードをいつものPIC (PIC12F509) に移植してみたので、これを使って起動時キー書き込みが可能かどうか試してみました。
まず準備として、BボードとCボードの間に割り込むためのアダプタを作成していきます。40ピン (20ピン x 2段) のキー付きのコネクタのオスとメスの足同士を直接ハンダ付けしてこんなのを作成。
試しにCボードに装着してみました。なかなかいい感じですw
さらにそのままBボードに装着してみました。下側のピンずれには注意が必要ですが、これまた非常にいい感じです。
「こんなのわざわざ作らなくとも、直接Cボードのコネクタのハンダ部分に配線すれば良いのでは?」と思われるかもしれませんが、キー書き込みで使うピンのうち、19番ピンと20番ピンはBボード側でGNDに配線されてしまっているため、こういう下駄を作るなどしてBボード側と切り離さないといけないんですよね。なので、今回作成したコネクタでも19番ピンと20番ピンのところだけはメスコネクタ側のピンを抜いてあります。
で、改めて、ここからキーの書き込みに必要な信号の線を引き出します。引き出すのは 19番ピン (Cボード側)、20番ピン (Cボード側)、61番ピン、62番ピンの4信号 と 電源 & GNDという感じ。
改めて殿様の野望2のBボードに装着してみました。こんな具合。
カプコンワールド2のサブボードに作ったアダプタを装着し、キンドラのCボード (90631C-5) を装着。
とりあえずPIC側はこんな感じの簡素な構成ですw
起動時キー書き込みでいきなり立ち上がりました。凄いw
Bボードを殿様の野望2に交換。
PICから、電池なしのときと同じ挙動になるようなキーを書き込むようにしてやったらこちらも起動しました。素晴らしい。
ただ、Cボードが92641C-1だと起動してくれませんでした。
このCボードに電池を載せて、CPS1 Desuiciderでキーを書いてやったらマッスルボマーが起動したので、Cボード自体はまったく問題ないと思うんですよね。うーん、なぜだ。
[コメントを書く]
2023年 9月 2日 (土)
■基板
CPS1 Desuiciderのコードとこちらの回路図を見比べてみたりしてました。CPS1 Desuicider側にちょっとだけ冗長な処理があるので、そこは省略できそうですが、それ以外で大きく削れるところはないかな。あと、こっちの回路図ではCD0がSEC-DATAでCD1がSEC-CLKってなってるけど、これ逆ですね。一瞬混乱しましたw
また、殿様の野望2の基板で、電源投入直後の信号の様子を観察したりもしてみました。CPUが動き出すまでがだいたい300ミリ秒で、それまでの間はデータバス (下位2bitをキー書き込みに使う) 上に特に何も信号は流れていないようです。これくらい時間が空いているなら、起動時キー書き込みも余裕かな?
[コメントを書く]
2023年9月6日から2023年9月2日までの日記を表示中
[コメントを書く]