2017年11月04日

ウィザードリィ IV forP6(3)

  ウィザードリィIV for P6

  ウィズ4ですが、地下4階までたどり着きました。
  ディスクの入れ替えとかも問題なく動作しているようです。


  ただ、少し問題が。

 ★外付けディスク(SD6031も含む)を使用している場合、リード/ライト時にエラーが出ても検出しない事があります。

  例えばライトプロテクトをしたまま、ゲームセーブを行っても、正常終了したようになってしまいます。
  (実際にはゲームはセーブされていない)

  リードで実機でエラーが出た場合などは、最悪ゲームが止まる可能性があります。


  この問題、ディスクのリード/ライト後に、コマンド6(センドリザルトステータス)を実行していないのが原因です。


  対処方法は簡単なのですが、過去に私が移植したソフトのほとんどで、この問題が発生します。
  数が多いので、どうするかはちょっと考えます。


  とりあえず今の所は...

★書き込みをするディスク(SDカード)は、書き込み禁止にしないで下さい。
★リードエラーが出来るだけ少ない環境で動かしてください。

  をお願いします。

この記事へのコメント
うーん、影響範囲が大きいですね。モウシワケナイ.
disk66.z80 の方は問題なさそうでしょうか。
とりあえず修正版の disk.z80 を物置の一番下に置いてみました。

コズミックキューブまであと少しですね。
Posted by bookworm at 2017年11月05日 09:58
bookwormさん、お手数お掛けしました。修正版を使わせて頂く予定です。

今回の問題は、こちらでもっと早くに気付くべきでした。

今回、たまたまSD6031のSDカードが、LOCKになっていたために、セーブできない状態になったので見つかったものです。
実機の外付けドライブはPC80S31Kを持っているんですが、フロッピーに書き戻すのが面倒なので確認していませんでした。

内蔵ドライブ(disk66.z80)の方は、問題なさそうです。書き込みプロテクトでエラーが発生しますし、読み込み時にエラーを検出した事があります(ドライブの調子が悪い)。


取り急ぎ報告まで。

Posted by えすび at 2017年11月05日 11:44
disk.z80をざっと見ましたが、追加分は問題なさそうです。

一つ気になったんですが、Disk60_readdata と Disk60_read4data では、タイムアウト検出していないんですが、何か理由があるんでしょうか?

他の Disk60_readbyte、Disk60_senddata などはタイムアウトでエラーを発生させているので、ちょっと気になります。
Posted by えすび at 2017年11月05日 12:17
たしかロードのみ版で 512byte を超えてしまうのを気にしていたような…。
コマンド送出時のタイムアウトで事足りると思ったのかもしれません。
でも今回の件を考えると入れておいた方がいいですネ。

というわけで改版を物置に置きました。
こちらでも wiz4 共々テストしてみます。
Posted by bookworm at 2017年11月05日 17:50
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。