エミュレーターでの動作について - オホーツクに消ゆ

※このページは作成中です。※
※このページに記載されている情報は、私(Taicho)が独自に調査した結果を記載しているものです。※
※内容の保証は出来ませんので、ご了承ください。※


■PC-6001版

PC-6001用の「オホーツクに消ゆ」のゲームソフト(カセットテープ2本組)を、PC-6001のエミュレーターソフトで動作させるための手順について説明します。
Windows環境向けです。また、エミュレーター自体の導入、設定等については説明しませんので、各エミュレーターの配布ページを参照してください。

(1) wavファイルの作成

まずは、カセットテープの1本目、2本目の表面、裏面の内容を、それぞれ音声ファイルに変換します。

PCとラジカセ(もしくはデータレコーダー)をオーディオケーブルで接続し、1面ずつ再生して、音声ファイル編集ソフトで録音します。
音声ファイル編集ソフトは何でも良いと思いますが、例えば「SoundEngine Free」等が使用出来ると思います。
録音時、ラジカセの再生音量やPCの録音レベルを調整して、レベルが適当な値になるようにしてください。

録音完了後、前後の不要な部分を削除し、wavファイル形式で保存します。
wavファイルの形式には、周波数44100Hz、ビット数8、チャンネル1を指定します。

これを4面分繰り返して、4つのwavファイルを作成してください。

(2) テープイメージの作成

次に、「P6DatRec」というソフトを使用して、各wavファイルからテープイメージを作成します。
「P6DatRec」は以下から入手することが出来ます。
http://morigon.jp/p6.html

「P6DatRec」を起動し、データレコーダーの画面にwavファイルをドラッグ&ドロップすると、テープイメージへの変換が始まり、拡張子が*.P6のイメージファイルが作成されます。
以降では、1面(SCENE 1)~4面(SCENE 4, 5)のイメージファイルを、「1.P6」「2.P6」「3.P6」「4.P6」とします。

続いて、テープイメージが正しく変換されたかを、バイナリーエディターで確認します。
バイナリーエディターソフトは何でも良いと思いますが、例えば「Binary Editor BZ」等が使用出来ると思います。

バイナリーエディターでテープイメージを開いたら、まずはファイルの先頭を確認します。
以下は「1.P6」の例ですが、各面とも同じになっているはずです。
ただし、アドレス00000FHには、面に対応した数字(31H~34H)が入っています。

        +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F  0123456789ABCDEF
000000  D3 D3 D3 D3 D3 D3 D3 D3-D3 D3 53 43 45 4E 45 31  ..........SCENE1

もし、これ以外のデータになっている場合は、正常に変換出来ていませんので、再度「P6DatRec」でのイメージファイルの作成からやり直してください。
「P6DatRec」の設定画面で、判読閾値を変更することが出来ます。値をいろいろと変更して、調整してください。
どうしてもうまく作成出来ない場合は、再度、音声ファイルの録音からやり直す必要があるかもしれません。

上記の先頭16バイトが正しく作成されたら、ファイルのそれ以降にも、以下のような文字列が確認出来ると思います。文字化けしていないか確認してください。
なお、文字列が確認出来るのは先頭の数キロバイトだけです。

**LOADER[SCENE1]**
[[ SCENE 1 ]]    <LOG IN SOFT>
<NOW LOADING>
TAPE READ CHECK SUM ERROR
PRESS ANY KEY TO LOAD DATA

イメージファイルのサイズですが、「1.P6」「2.P6」「3.P6」は25キロバイト程度、「4.P6」は(SCENE 4とSCENE 5の両方のデータが含まれているため)49キロバイト程度になっているはずです。

(3) エミュレーターの起動

PC-6001のエミュレーターソフトを用意します。私は、以下のエミュレーターでの動作を確認しました。

PC6001V Ver.1.24
http://papicom.net/p6v/index.html

PC6001VW ver310b
http://p6ers.net/bernie/develop/pc6001vw3.html

PC-6001を「MODE 2(N60-BASIC RAM 32K)」「Page 1」で起動し、各SCNENE用のテープイメージをセットして、「CLOAD」「RUN」の順に実行します。
テープイメージが正しく変換されていれば、後述のSCENE 5を除き、問題無くプレイすることが出来ると思います。

(4) SCENE 5について

SCENE 5は他のSCENEとは違い、SCENE 4の終盤にてテープのロードが行われます。
しかし、テープイメージが正しく変換されていても、エミュレーター環境ではうまくロードが出来ず、「CHECK SUM ERROR」と表示されて止まってしまうことが多いようです。

理由は、テープロード開始時に、メッセージ領域が1行スクロールして「<NOW LOADING>」が表示されますが、エミュレーター環境ではテープ読み込みが実機よりも高速に行われるので、このスクロール・文字描画時にテープデータの取りこぼしが発生するためです。
SCENE 5以外では、テープロード時のSCREENモードが2(セミグラフィックモード)なのと、そもそも「<NOW LOADING>」表示時にスクロールしないため、取りこぼしが発生しないのでしょうね。

対策としては、SCENE 5ロード時のみ、テープの高速読み込みをOFFにしたり、エミュレーターの動作を高速化させれば良さそうですが、私が試した限りでは改善されませんでした。
そこで、「<NOW LOADING>」を表示しない(スクロールもしない)という対応を取ることにします。

具体的な方法としては、テープイメージを書き換えてこの処理を無効にするのが一番良いのでしょうが、単純に書き換えるだけでは済まないようなので、ここではエミュレータのモニタモード(デバッガ)を使用する方法を紹介します。

SCENE 5ロードの直前、画面に「PRESS ANY KEY TO LOAD DATA」が表示されている状態で、エミュレーターのメニューから「モニタモード」を選びます。
「<NOW LOADING>」の表示処理は以下のようになっているので、FC44Hからの3バイトを00Hで上書きします。

FC41 2194FC     LD   HL,FC94H
FC44 CDCF30     CALL 30CFH

「PC6001V」では、以下のコマンドを入力して、「g(go)」でエミュレーター画面に戻ってください。
「PC6001VW」でも同じコマンドで可能ですが、「e(edit)」でバイナリエディタに入って書き換えても構いません。また、エミュレーター画面には「G」で戻った方が良いでしょう。

fill 0xfc44 #3 0x00

これで、何かキーを押してテープのロードを始めれば、無事にSCENE 5が開始出来ると思います。

なお、SCENE 5ロードよりも前に上記を行っても成功しません。SCENE 5ロード前にメモリ上にあるのはSCENE 4用のローダーで、SCENE 5の直前にSCENE 5用のローダーが格納されるためです。


■MSX版

MSX(MSX1)用の「オホーツクに消ゆ」のゲームソフト(カセットテープ2本組)を、MSXのエミュレーターソフトで動作させるための手順について説明します。
Windows環境向けです。また、エミュレーター自体の導入、設定等については説明しませんので、各エミュレーターの配布ページを参照してください。

(1) wavファイルの作成

PC-6001と同様の手順で、カセットテープの1本目、2本目の表面、裏面の内容を、それぞれ音声ファイルに変換します。
4面分繰り返して、4つのwavファイルを作成してください。

(2) テープイメージの作成

MSXでも、PC-6001用の「P6DatRec」というソフトを使用して、各wavファイルからテープイメージを作成します。
「P6DatRec」は以下から入手することが出来ます。
http://morigon.jp/p6.html

「P6DatRec」を起動し、データレコーダーの画面にwavファイルをドラッグ&ドロップすると、テープイメージへの変換が始まり、拡張子が*.P6のイメージファイルが作成されます。
以降では、1面(SCENE 1)~4面(SCENE 4, 5)のイメージファイルを、「1.P6」「2.P6」「3.P6」「4.P6」とします。

続いて、テープイメージが正しく変換されたかを、「Binary Editor BZ」等のバイナリーエディターで確認します。
バイナリーエディターでテープイメージを開いたら、まずはファイルの先頭を確認します。
以下は「1.P6」の例ですが、各面とも同じになっているはずです。
ただし、先頭から15(000FH)バイトには、面に対応した数字(31H~34H)が入っています。

        +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F  0123456789ABCDEF
000000  D0 D0 D0 D0 D0 D0 D0 D0-D0 D0 53 43 45 4E 45 31  ..........SCENE1

これ以外のデータになっている場合は、正常に変換出来ていませんので、判読閾値を調整して、「P6DatRec」でのイメージファイル作成からやり直してください。

上記の先頭16バイトが正しく作成されたら、ファイルのそれ以降にも、以下のような文字列が確認出来ると思います。文字化けしていないか確認してください。
なお、文字列が確認出来るのは先頭の数百バイトだけです。

LOG IN SOFT PRESENTS
HOKKAIDO RENSA SATSUJIN
** OHOTSUKU NI KIYU **
NOW LOADING:
SCENE#1
SORRY.. TAPE READ ERROR!

イメージファイルのサイズですが、「1.P6」「2.P6」「3.P6」は27キロバイト程度、「4.P6」は(SCENE 4とSCENE 5の両方のデータが含まれているため)54キロバイト程度になっているはずです。

(3) CASファイルの作成

P6形式から、MSX用のテープイメージ「CAS」形式への変換を行います。以下は「1.P6」の例です。

「1.P6」を「1.CAS」というファイル名でコピーし、「Binary Editor BZ」等のバイナリーエディターで開きます。
まず、イメージファイルの先頭と、先頭から16(0010H)バイトに、「1F A6 DE BA CC 13 7D 74」という8バイトのヘッダをそれぞれ挿入してください。

        +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F  0123456789ABCDEF
000000  1F A6 DE BA CC 13 7D 74-D0 D0 D0 D0 D0 D0 D0 D0  ......}t........ 
000010  D0 D0 53 43 45 4E 45 31-1F A6 DE BA CC 13 7D 74  ..SCENE1......}t 

さらに、ゲームプログラム本体の先頭にも、同様のヘッダを挿入します。
元のP6形式の先頭から542(021EH)バイト付近に、「FE FE FE FE FE FE FE FE」というように同じバイトが32個並んでいますが、これがプログラム本体開始のマークです。
(SCENE1:FE、SCENE 2:FD、SCENE 3:FC、SCENE 4:FB)

このマークの先頭と、先頭から16バイト目に、「1F A6 DE BA CC 13 7D 74」という8バイトのヘッダをそれぞれ挿入してください。

        +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F  0123456789ABCDEF
000220  00 00 00 00 00 00 1F A6-DE BA CC 13 7D 74 FE FE  ............}t.. 
000230  FE FE FE FE FE FE FE FE-FE FE FE FE FE FE 1F A6  ................ 
000240  DE BA CC 13 7D 74 FE FE-FE FE FE FE FE FE FE FE  ....}t.......... 
000250  FE FE FE FE FE FE FF 7F-00 18 FF E6 7F FF FF C5  ................ 

なお、SCENE 4用の「4.CAS」では後半にSCENE 5用のゲームプログラムが入っていますが、ここにもヘッダの挿入が必要です。
元のP6形式の先頭から27308(6AACH)バイト付近に、「FA FA FA FA FA FA FA FA」というようなマークがあります。
同様に、マークの先頭と、先頭から16バイトに、「1F A6 DE BA CC 13 7D 74」という8バイトのヘッダをそれぞれ挿入してください。

        +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F  0123456789ABCDEF
006AC0  FF 23 80 FF 1F A6 DE BA-CC 13 7D 74 FA FA FA FA  .#........}t.... 
006AD0  FA FA FA FA FA FA FA FA-FA FA FA FA 1F A6 DE BA  ................ 
006AE0  CC 13 7D 74 FA FA FA FA-FA FA FA FA FA FA FA FA  ..}t............ 
006AF0  FA FA FA FA FF 7F 00 18-FF E6 7F F5 FF C5 70 19  ..............p. 

(4) エミュレーターの起動

MSXのエミュレーターソフトを用意します。私は、以下のエミュレーターでの動作を確認しました。

blueMSX 2.8.2
http://bluemsx.msxblue.com/jindex.htm

MSX(RAM 32KB以上)をSHIFTキーを押しながら起動し、各SCNENE用のテープイメージをセットして、「bload"cas:",r」を実行します。
テープイメージが正しく変換されていれば、問題無くプレイすることが出来ると思います。

補足

「blueMSX」でデバッガー表示が出来ない場合は、以下を行うことで改善する可能性があります。

「オホーツクに消ゆ」に戻る


<taicho@taicho.jp> / @taicho_jp