2020年3月14日から2020年3月10日までの日記を表示中
2020年 3月14日 (土)
■基板
CPS3のBIOSをデコードするにあたり、毎回MAMEを実行するのも面倒かつ不便なので、MAMEのソースコードからルーチンを切り出して、キーとアドレスオフセット設定することでXOR処理を行う単独ツールを作成してみました。これで少しは解析が捗るかな。
で、CPS3のカートリッジについてですが、MAMEのソースとか見ると、「CPUは改ざんを検知すると自らセキュリティキーを消去する」なんていう情報が書かれていたりします。
If the custom CPU detects any tampering (generally things such as voltage fluctuation or voltage dropping or even removal of the cart with the power on), it immediately erases the SRAM (i.e. the decryption key) inside the CPU which effectively kills the security cart.
もしこの処理をCPUがソフト的にやっているのであれば、BIOS ROMの中で何かしらの割込みを検知して、そこからキーを消去するみたいな処理に飛んでいる箇所があるのでは・・・? というわけで、デコードしたBIOSの中の怪しそうな割込みハンドラをいくつか追ってみたんですが、どれもフリーランカウンタやウォッチドッグタイマといった、割と普通の機能向けのものばかりでした。うーん、BIOS内にはヒントはないのかな・・・。
というか、電圧が高いせいでキーが飛ぶ状況を再現できれば、誰がそれを検知して、どのようにしてCPUに通知しているか、観察できるのでは・・・? というわけで、調査用の2ndのカートリッジに電池をつけて、電源電圧を5.5Vくらいにまで上げた状態で電源スイッチをパチパチとやったりして、キーが飛ぶかどうかとかの実験をしてみました。が、結果は特に変化なし。普通に毎回起動しました。使っているカートリッジが後期版なので、もしかしたらこの辺の対策が強化されていたりするのかな。前期版のカートリッジで実験してみたら、また違ってきたりするのだろうか・・・。
それはそうと、丸洗いしてから約1週間が過ぎたので、MV-6を組み上げてみました。まずは洗っている途中で切れてしまったジャンパを再度修理。
で、上の基板と合体させます。いやー、綺麗になったなぁ。
ちゃんと動くかな・・・。
OKでした。スロット4含め、全部問題なし。
シールドをつけて完了。
ちなみに、ふとナイトメア・イン・ザ・ダークを動かしてみたところ、こちらの警告が出て起動してくれませんでした。
カートリッジ側の問題かと焦ったんですが、普通の1枚版小型マザーボードでは問題なく起動。
さらにMV-4でも動きました。
MV-6だけ何か相性があるんですかねぇ・・・。もっと色々試してみたい気もしましたが、ひとまず片付けて場所を作っておきたいというのもあり、深追いしない方向で終了。
2020年 3月13日 (金)
■基板
駿河屋の在庫を眺めていたら セキュリティカートリッジ不良で起動しないストIII 2ndなんてのを発見。うーん、詳細は不明ですが、仮に電気的にカートリッジが壊れていないのであれば、2ndでもキー飛びで起動しなくなる状況は存在するということですかね。カートリッジのキーがオールゼロ(ストIII 2ndのキー)に初期化されるのは、電池切れした状態に限られるのかな(確かにLeoさんも「電池を外してやれば」と言ってますな)。
電池が生きている状態でキーが壊れると、初期化されないからいつまでも死んだままになるということなのかな? 「キーが壊れる」=「キーが書き換わる」なのであれば、そこに任意のキーを書き込むヒントがあったりして・・・?
ちなみに、昨日の2ndの電池なしカートリッジで再度実験してみたところ、一発目は電池切れしたときのような画面化け状態でうまく起動せず、電源を入れ直すと起動するという現象が再現しました。
ただ、その後は、コンデンサの電荷を抜いたりしても再現してくれませんでした。普通に一発で起動してしまいます。うーん、タイミングの問題?
ところで、色々と実験をする上で、毎回基板からフラッシュメモリを剥がして貼り直すのは流石にしんど過ぎる&破損のリスク大だったりするので、何とかできないものかと調べてみたところ、どうもフラッシュメモリの書き換えに必要な信号は全部カートリッジのコネクタに配線されているっぽいですな。もしかして、PCIのコネクタのついたアダプタを作れば、TL866CSで読み書きできちゃうのかも?これは作らねば・・・。
[コメントを書く]
2020年 3月12日 (木)
■基板
とりあえず動かないジョジョの奇妙な冒険 未来への遺産のカートリッジのフラッシュメモリを剥がしてみました。
久々のTL866CS用変換アダプタ。
TL866CSに装着。
とりあえず読めました。
ストIII 2ndのBIOSを書き込んでみます。
再度基板にはんだ付けします。
これを2ndのプログラムをロード済みの基板に装着。果たして・・・
1回目は何か画面化けした状態で起動しなかったものの、電源を入れ直したら起動しました(接触の問題なのか何なのかは不明)。なるほど、確かにストIII 2ndはデフォルトのキーで起動するんですな。あれ、ということは、ストIII 2ndのカートリッジが死んでるケースって存在しないってこと?
[コメントを書く]
2020年 3月11日 (水)
■基板
急激にCPS3に興味が湧いてきたので、どこまで解析が進んでいるのか、MAMEのソースを読んでみました。なるほど、普通に暗号化されたBIOS、そのままデコードして動かせてるんですね・・・。これなら実機でも何とかなりそうな気がしますが、そうはなっていないってことは、やっぱり色々と難しい仕掛けがあるんだろうなぁ。
[コメントを書く]
2020年 3月10日 (火)
■基板
TwitterでCPS3の話を振られたのをきっかけに、久々に動かしてみることに。
ジョジョの奇妙な冒険、最後に動かしたのは7年半前らしいですよ・・・w
アッー!
と思ったけど、びびって電圧が下げすぎたせいで起動しなかっただけのようです(汗)。少し電圧を戻してやったら、今度は無事起動してくれました。
ついでに、最近(というかこの7年くらいの間?)に手に入れた未チェックのタイトルも見てみたいと思います。まずはウォーザード。これは元々起動しないと言われていたやつです。
やっぱりダメかぁ。
もう1つ。ストIII 2ndです。こっちも確か、ジャンクだったはずなんで期待は・・・
って、生きてるの!?
うおー、SIMM、SIMM!どれを挿せばいい!?
SIMMを足してやったらCDからのコピーが始まって起動しましたw。すげえ、ラッキー!w
・・・とかツイートしたら、大御所からこんな情報が。2ndは勝手に生き返るの!?まじっすか!知らなかったw
SF III 2ND STRIKE FLASH image self reprogram security key and eorks again if battery is removed. Maybe someone with tools (logic analizer) could investigate that.
— Leo Oliveira (@leo__oliveira) March 10, 2020
これを聞いて、俄然CPS3に興味が湧いてきましたよ。ちょっと取り組んじゃおうかな。
[コメントを書く]
2020年3月14日から2020年3月10日までの日記を表示中
[コメントを書く]