PSX BIOS DUMPERでメモリーカードに吸い出したPS1のBIOSをPCツナイデントUSBメモリとるで読み取る方法

のつづき。

「PCツナイデントUSBメモリとる」でPSX BIOS DUMPERでメモリーカードに吸い出したメモリーカードを読み込もうとするとエラーで読み込めなくなってしまう問題に遭遇して何が悪いのかわからず途方に暮れていたがついに成功した。

結論から言うとPSX BIOS DUMPERのバグか海外と日本のメモリーカードの仕様の違いか分からないがそれを「PCツナイデントUSBメモリとる」の「PCツナイデントUSBメモリとる メモリとるマネージャー V2.0J」が吸収できずにエラーで落ちているようだ。これを回避する方法が分かった。

PSoneもメモリーカードも「PCツナイデントUSBメモリとる」も吸出しに利用するPCも全部10年から20年以上前の機器なのでもう何が原因なのか正直わからずあきらめかけていた。

BIOS吸出しの為にPS2を買おうとここ数日ずっとメルカリを眺めていた。MCCさくらで吸い出すためにDirectPadProを作ろうかとも考えて、今日はもうこの際両方やろうかと思っていた。色々調べているうちにPS2も欲しくなってきたからだ。

近年のゲームはもうそれ単体で動作する時代ではなくネット経由でダウンロードしたりパッチを当てたりと10年後20年後サポートが切れた後に遊べなくなる可能性がかなり高い。それに比べるとソフトがディスク単体で完結しているPS2世代のゲームは後々までずっと遊ぶことができるので持っておくならそういう機種になるよねということになる。まあ、何らかの方法で将来的にも遊ぶ方法はあると思うけど追加でお金を払ったりする必要がありそうだし持っておくならPS2もしくはPS3世代までかなと思う。

話が脱線したので戻すが、どうにもあきらめきれなかったのでMCCさくらのソースを探したり今日はPSX BIOS DUMPERのソースを眺めていたりした。

あと吸い出したセーブデータのダンプをして眺めていたが特にどんな値でも読み込んでるようだし文字列の扱いとかそういうのでエラーになってるのではなさそうだと考えた。何らかのイレギュラーな値が入ってきてるのだと考えたがBIOSのデータは一個も吸い出せていないので吸い出せたセーブデータと比較することもできない。

そこでもしかしたらPS上で吸出しを行ったメモリーカードから空のメモリーカードに一度コピーを行えばメモリーカードのデータが正規化されて「PCツナイデントUSBメモリとる」で正常に読めるようになるのではないかと考えた。そして実際にやってみた。

すると、なんと最初の画像の様にBIOSが入ったメモリーカードの読み取りに成功した。

しかしその時点ではたまたま読めたのかもしれないと思い。PART2とPART3も吸出しそれぞれのメモリーカードを正規化しないまま持って来た。

するとPART2が入ったメモリーカードはなぜか読み込めてしまった。しかし保存時に一瞬例の「Access violation at address・・・」というエラーが発生したがそのまま保存することができたので事なきを得た。

画像はエラーの例

しかしPART3はやはりエラーが出て失敗した。この時点では一個は成功してしまったので「メモリーカードの個体差ではないか?」「昨日テスターで端子を調べる際に端子を差し込んだりしたので接点が復活したのではないか?」などと考えていた。心なしか読み込みも早くなった気がしてパラレルケーブルを差し直したりしたのでピンが曲がっているのを修正したのがなじんだのではないかとも考えた。しかしその後はまたエラーで読み込みに失敗するようになってしまったので、嗚呼やっぱり駄目なのか調子が悪くなったのか?と考えたが思いなおして、そんな事が本当にあるのかよと思いながらも正規化が必要なのではないかと思い再度メモリーカードからメモリーカードにコピーするを手順を踏んだところ成功した。やっぱり正規化がひつようなんだと確信した。

それ以降はすべて正常に読み込めたが、メモリーカードが2枚だけでは一旦PSを再起動してメモリーカードからメモリーカードにコピーしてまたPSX BIOS DUPERを起動するという手間がかかりPSのCDドライブにも負担をかけてしまうことになってしまった。最終的には3枚で行ったが。BIOS吸出しに5枚と正規化用に1枚の6枚は用意したほうがいいだろう。

正規化が必要な原因についてベリファイに失敗してたPSX BIOS DUMPERの焼き方に問題があるのではないかとも思いもう一度焼いてみて正常終了になったもので試してみたがやっぱり同じだった。

とりあえず「PCツナイデントUSBメモリとる」と「PCツナイデントUSBメモリとる メモリとるマネージャー V2.0J」でセーブデータやBIOSのデータを吸い出している時の画像を貼っておく

全てのBIOSデータの読み取りが終わってから原因について考え調査を始めた。

画像を見て気が付く人もいるかもしれないが私もおかしいと思ったが「PCツナイデントUSBメモリとる メモリとるマネージャー V2.0J」上でアイコンが黒くなっている。で、このデータは画像の様に99%読み込みに失敗する。

正規化したメモリーカードのデータは読み込むとアイコンがちゃんとしてる。データのデリミタかアイコンのデータ関係にイレギュラーな値が入っているのではないかと考えた。

設定にアイコンを表示しない設定があればエラーを回避できるのではないかと考えたが、アイコンのアニーメーションのON/OFFはあるが表示自体のON/OFFはないのでダメだった。

他の吸出し系ソフトがどうなっているのかわからないがアイコンのデータをそのままコピーするようになっているだけならエラーにならないだろうなと思った。MCCさくらはどうなっているのだろう?

 

最後のPART5を吸い出すときに正規化せずに読み込めたPART2も不安だったので正規化してするためにもう一度PART2も吸い出して正規化した。これは新しく作ったPSX BIOS DUMPERのDISCで行ったが、上の画像は正規化しないで読み込んだらやっぱり駄目だった時の画像だ。

正規化したらちゃんと読み込めた。

そしてなぜか正規化しないで読めたPART2のBIOSデータと正規化したBIOSデータをバイナリエディタで比較した結果相違点は1バイトだけだということが分かった。

特にファイルの最後が切れてしまったりということもなくファイル自体は正常でこの1バイトだけが異なる結果「PCツナイデントUSBメモリとる メモリとるマネージャー V2.0J」はメモリーカードの読み取りに失敗するわけだ。

上の画像は実機(PSone)でメモリーカードからメモリーカードに吸い出したメモリーカードの内容をコピーして正規化している様子。

メモリーカードのアイコンデータのフォーマットがわからないので何とも言えないが、見ての通りPSone上ではアイコン自体は普通に表示されているのでやっぱり「PCツナイデントUSBメモリとる メモリとるマネージャー V2.0J」がだめなのかなという気がする。

アイコンデータのフォーマットの情報はネット上にあるかもしれないので少し調べてみよう。

 

海外のサイトで情報を見つけた。このメモリーカードのセーブデータのフォーマット情報を見る限りでは問題の0x02003番地の値は1-15の値が正解でそのセーブデータが利用するブロック数を格納するセーブデータのヘッダー部分にあたる。

 

つまりこのBIOSを吸い出したセーブデータは15ブロックのすべてを使っているので10進数の15=0x0Fなので正規化されたデータが正しいなのでPSX BIOS DUMPERのバグということになる。PSX BIOS DUMPERは15をそのまま受け取って0x15を設定してしまっているため実際にはありえないブロック数である21を設定してしまっている。そのため「PCツナイデントUSBメモリとる メモリとるマネージャー V2.0J」はそれを真に受けて内部的に16ブロック目のデータを参照しようとしているためにエラーが発生しているものと思われる。最高15ブロックまでという処理になっていれば問題ないのであるが、通常正規のソフトが書きだしたデータではありえないのでそこまでバリデーションしていないのだろうというか普通まあしないな。

実際にPSX BIOS DUMPERのソースを見ると以下の様に4バイト目でしっかり0x15を設定してしまっている。

 

unsigned char CardIcon[8192] =
{
0x53, 0x43, 0x11, 0x15, 0x82, 0x61, 0x82, 0x68,
0x82, 0x6E, 0x82, 0x72, 0x81, 0x40, 0x82, 0x63,
0x82, 0x74, 0x82, 0x6C, 0x82, 0x6F, 0x81, 0x40, 

 

そういう訳で「PCツナイデントUSBメモリとる」をBIOSの吸出しに利用するならメモリーカードを6枚以上用意するか、PSX BIOS DUMPERの上記の0x15を0x0Fに書き換えてコンパイルして作成した実行ファイルを利用するかバイナリエディタで1バイト書き換えたものをCD-Rに焼いて利用するのがいいかと思う。isoの焼き方にコツがあるかもしれないので普通にメモリーカードを用意したほうが簡単だとは思う。


※PSX BIOS DUMPERのバグフィックパッチ

Lutwidge氏からの上記のバグを修正するパッチを提供して頂きましたので必要な方はダウンロードしてご利用ください。利用方法等は付属のドキュメントを参照してください。

簡単に説明するとダウンロードしたzipの中にあるPATCH.EXEをPSX BIOS DUMPERのDumper CD imageフォルダの中に入れて実行するとパッチが適用されたCDイメージが出来上がるのでそれをCDに焼くだけです。

パッチを提供して頂いたLutwidgeさんにはこの場を借りてお礼申し上げます。

ダウンロード:オリジナルのPSXBiosDumper27.zipをアップローダーからダウンロード

ミラーダウンロード:PSXBiosDumper27.zip


しかしこの「PCツナイデントUSBメモリとる」のパラレルポートのピンの曲がりはひどい。無理やりむしり取ったんだろうなーと思う。どんな馬鹿がこんなにしたのか小一時間問い詰めたい。

こんなふうに古いXPのPCを引っ張り出して作業している。

PCツナイデントUSBメモリとるはこんなふうに接続している。結局のところあきらめずによかった。使えてよかった。1200円無駄にならなかったw

20年間封印していた荷物を整理中だが結構ゲームのメディアが出てきた。こんなにもってたっけ?とほとんど記憶がなかった。iso化してエミュレータでプレイしてみたい。

BIOSのマージはまだなのでそれは明日やって実際にePSXeに組み込んで動作するか確認をしてみたいと思う。

とりあえず今日はBIOSの吸出しとこの記録を残すのに時間を費やしてしまった。

吸出し環境。猫たちの部屋でやってた。珍しく私がいるものだから猫たちが周りをうろうろしてて邪魔でしょうがない。

隙あらばにゃんこ画像。これはマリナ。2歳。

DX人生ゲームは貴重な犠牲になってもらっている。右はPSX BIOS DUMPER2.6を焼いたCD-R。気張ってプリンターで印刷したのにこのCD-Rは焼きを失敗して使えないことが判明している。今は無韻状態のCD-Rで行っている。

もう一台のPSもBIOSを吸い出したいと思っている。動くといいけど。

この際ドリームキャストやサターンのBIOSも吸い出したいなーと思っている。ドリームキャストは結構ハードル高かった気がするが今はどうなっているのだろうか?ブロードバンドアダプターがいるような気がするけどブロードバンドアダプターは持ってるけど動くかは怪しい。10年前に見たとき若干サビてたような気がする。

結論は「PCツナイデントUSBメモリとる」でもBIOSの吸出しに使えるということになるんだけど、でも色々分かった今なら迷わず吸出し用にPS2買うけどねw

普通はPS1持ってたらPS2も持ってると思うんだけど道を踏み外してゲーム機買うどころじゃなかったからなー。

それから私の記憶にない私が持ってるかもしれない「PCツナイデントUSBメモリとる」はいったいどこにあるんだろう?

につづく

(Visited 1,203 times, 2 visits today)

タグ :