MSXテープイメージ解説書

1.fMSX-DOSとfMSX98/ATのテープイメージの違い

fMSX-DOSとfMSX98/ATのイメージの違いですが、
ヘッダーのみの違いで実際のプログラムおよびデータには違いはありません。
具体的な違いを次にバイナリビュアーで示します。

fMSX-DOSでサポートするテープイメージのヘッダー部分

00000000 : 1F A6 DE BA CC 13 7D 74  D0 D0 D0 D0 D0 D0 D0 D0 : ......}t........
00000010 : D0 D0 CE DF B0 C4 4D 20  1F A6 DE BA CC 13 7D 74 : ......M ......}t
00000020 : 00 D8 67 EC 00 D8 3E 00  7F F5 CD 84 00 EB 2A 00 : ..g...>......*.

0hから1Fhまでがヘッダー部分です。


 fMSX98/ATでサポートするテープイメージのヘッダー部分
00000000 : 5F 5F 5F 5F 5F 5F 5F 5F  5F 5F 48 65 61 64 65 72 : __________Header
00000010 : 5F D0 D0 D0 D0 D0 D0 D0  D0 D0 D0 CE DF B0 C4 4D : _..............M
00000020 : 20 5F 5F 5F 5F 5F 5F 5F  5F 5F 5F 48 65 61 64 65 :  __________Heade
00000030 : 72 5F 00 D8 67 EC 00 D8  3E 00 7F F5 CD 84 00 EB : r_..g...>.....*

0hから31hまでがヘッダー部分です。


 すなわちfMSX-DOSのテープイメージをfMSX98/ATで動作させたいときは
『 1F A6 DE BA CC 13 7D 74 』 5F 5F 5F 5F 5F 5F 5F 5F 5F 5F 48 65 61 64 65 72 5F 』に書き換えれば動作するようになります。
これによりNECPC-98ユーザーでもテープのゲームを楽しむ事ができます。

2.テープイメージの形式

 それではテープイメージの形式についてfMSX-DOSでサポートするCASファイルを例に解説します。
 fMSX98/ATでサポートするTPEファイルに関しても1項の違い以外には共通ですので読み替えてください。

  00000000 : 1F A6 DE BA CC 13 7D 74 D0 D0 D0 D0 D0 D0 D0 D0 : ......}t........
  00000010 : D0 D0
CE DF B0 C4 4D 20  1F A6 DE BA CC 13 7D 74 : ......M ......}t
  00000020 : 00 D8 67 EC 00 D8 3E 00  7F F5 CD 84 00 EB 2A 00 : ..g...>......*.

  赤色部分・・・ヘッダー <8bytes>
  黄色部分・・・ファイル種別(マシン語ファイル(D0),BASICファイル(D3),DATA・ASCIIファイル?(EA)  <10bytes>
  緑色部分・・・ファイル名(この部分がFound:xxxxxxと表示される)  <6bytes>
  赤色部分・・・ヘッダー <8bytes>
  水色部分・・・プログラム本体  <1byte〜>

次項に実際にテープイメージの作成について解説しますので、
よく覚えておいてください。

  黄色部分の違いによって、ゲームの起動方法が変わります。
  具体的には、
     D0が埋まっている場合・・・BLOAD"CAS:",R[Enter]
     D3が埋まっている場合・・・CLOAD[Enter] RUN[Enter]
     EAが埋まっている場合・・・RUN"CAS:"[Enter]
  となります。

3.テープイメージの作成

 では、実際にイメージを作成してみましょう。イメージの作成には実機を使用する方法と、WAVEファイルから変換する方法の2つがあります。
 イメージ作成のしやすさという面ではWAVEファイルから変換する方が楽ですが、ここでは両方の方法とも説明していきたいと思います。

 1)実機を使用する方法

 イメージの作成に当たって、実機、データレコーダー(一般のカセットレコーダーでも可)、カセットケーブル、イメージの作成元のカセットテープ、空のフロッピーディスク(2DD)を用意してください。

 なお、実機にディスクドライブが内蔵されていない場合は別途ディスクドライブが必要です。さらにMSXturboRではテープデバイス自体に対応していませんのでイメージの作成は不可能です。同様にMSX2+でもカセットインターフェイスが搭載されていない機種があります。こちらもイメージの作成は不可能です。

 さて、イメージの作成ですが、ファイル形式によって2つの方法に分かれます。
 マシン語ファイルおよびDATA・ASCIIファイルにおいては別途アプリが必要です。
 MSXTAPEというプログラムでfMSX-DOSの作成者Marcel de KogelさんのHPにアップされています。
 ダウンロードしたmsxtape.lzhからTAPE.BINを解凍し、空のフロッピーにコピーしておいてください。 さらにイメージを作成したいプログラムが何回に分けて収録されているか確認しておくと便利ですね。

   A)マシン語ファイルおよびDATA・ASCIIファイル

各機器のセッティングをチェックし、実機を起動させます。
BASIC画面が表示されたら、先ほどのTAPE.BINをコピーしたフロッピーをセットし

      BLOAD"TAPE.BIN",R[Enter]

と入力してください。しばらくするとテープの読み込み開始の合図の「カチッ」という音が聞こえてきますので テープを再生させてください。テープの再生が終わると自動的にフロッピーにイメージを書き込みます。
このとき実機は「カチッ」と言う音が出てテープの再生を止める信号を出しますが、リモート端子のないデータレコーダ では自動的に再生停止しませんので、再生停止のボタンを押してください。

フロッピーへの書き込みが終了すると、また再生開始の合図の「カチッ」と音が鳴りますので、続きのデータが あればデータレコーダーからの読み込みをしてください。

一通り再生し終えたらCTRL+STOPでプログラムを停止させます。ディスクに書き込んだ後、Okの表示がされたら作業終了です。フロッピーにはMSX.CASという名前でイメージが作成されています。
わかりやすいようにファイル名を変えておくといいです。

   B)BASICファイル

BASICファイルは前述のMSXTAPEでは認識してくれません。
従っていったんフロッピーディスクに保存してそのファイルをCASイメージ形式に変換する(テープイメージ用のヘッダーを付ける)ことによりテープイメージとなります。

A)と同様に各機器のセッティングをチェックし、実機を起動させます。ワークエリアを増やすため、CTRL起動が望ましいです。BASIC画面が表示されたら、

    CLOAD[Enter]

と入力し、データレコーダーの再生ボタンを押してください。すると

    Found:BASIC    (あくまで表示される文字はプログラム毎に違います)

と表示され、データの読み込みが終了するとOkと表示されます。
その後、

    SAVE"BASIC"[Enter]
   ※(ファイル名はFound:の後に続く文字と同じにしておいた方がいいでしょう)

と入力し、フロッピーに保存してください。
続いて読み込む場合はもう一度同じ作業を行ってください。
実機での作業はこれで終わりです。

参考までにフロッピーに保存したファイルの中身を記載しておきます。

     00000000 : FF 09 80 FF FF 3A 8F E6  00 27 80 0A 00 3A 8F E6 : .....:乗.'...:乗

1byte目がディスクに保存されたファイルのファイル種別を表すデータです。
FFはBASICファイル、FEがマシン語ファイルです。2byte目以降がプログラム本体です。

次にフロッピーに保存したBASICファイルをCASイメージ形式に変換します。変換     にはRuMSXを使用します。
作者のRudolf LechleitnerさんのHPから落としてきましょう。

RuMSXを起動します。MSX ConfigurationはMSXturboR以外を選択します。        turboRはテープに関するBIOSがカットされていますので、選択しないでください。

まず、実機で保存したフロッピーをドライブにセットしておいてください。
その後、メディアチェンジボタンを押して、Disk A:タグではフロッピーディスクドライブ (Disk Driveのチェックをお忘れなく)、
TapeタグではNewのボタンを押し、任意の名前を付けてOKを返します。

BASIC画面で

       LOAD"BASIC"[Enter]

と入力しBASICファイルを読み込みます。その後

       CSAVE"BASIC"[Enter]
       ※(ファイル名はテープを読み込んだ時に表示される名前にしましょう)

と入力するとCASイメージに保存されます。
作業が終わったところでRuMSXは閉じてください。

<余談>
RuMSXではテープイメージをロードしようとしてもエラーが出てしまい、起動させることができません。
セーブデータなら問題ないようですが、ことプログラムになるとうまくいきません。
なにが問題なのか今のところわかりませんが、テープイメージのゲームをプレイするときはfMSX-DOSもしくはfMSX98/ATを使うようにしましょう。
と、書いてありますがRuMSXでテープイメージを読みたい時は、<ボタンを押してテープイメージの巻き戻しを行うと正しく読み込めるようになります。

それではちゃんとCASイメージになっているか確認してみましょう。
RuMSXを使って作成したCASイメージの先頭部が次のようになっていればおっけーです。

   00000000 : 1F A6 DE BA CC 13 7D 74  D3 D3 D3 D3 D3 D3 D3 D3 : ......}t........
   00000010 : D3 D3 42 41 53 49 43 20  1F A6 DE BA CC 13 7D 74 : ..BASIC.......}t
   00000020 : 09 80 FF FF 3A 8F E6 00  27 80 0A 00 3A 8F E6 2A : ....:乗.'...:乗*

 内容については2項で説明していますので、ここでは省略します。
ちなみに緑色の部分はCSAVEするときの名前が入りますので上の表示とは違う内容になっているはずです。

これでテープイメージとしてエミュレータで動作させることが可能となります。

   C)応用例

 ゲームの中にはまずBASICファイルを読み込んで、そこからマシン語ファイルを読み込み、さらに別BASICファイルを読み込んで初めてゲームがプレイできるようになるものがあります(当方の確認ではポートピア殺人事件、黄金の墓)

 この場合、A)とB)で作ったイメージを連結させる必要があります。
 これ自体は難しいことはなく、COPY /Bコマンドあたりを使って連結させればいいでしょう。

     例)COPY /B BASIC1.CAS+MACHINE.CAS+BASIC2.CAS+BASIC3.CAS GAME.CAS

 ただし連結後、各イメージの先頭が任意の行の0h番地におく必要があります。バイナリエディタで各イメージの先頭をずらせばいいですね。

   D)イメージ化できないプログラム・データ

 A)およびB)の方式で行ってもイメージ化できないものもあります。
今のところこういったものを実機でイメージ化する方法は不明ですが、次からのWAVEファイルから変換する方法を使用すればイメージ化できます。

イメージ化できないプログラム・データ

・BASICファイルでディスクのワークエリアを使用しているもの(今のところ確認できず)
そんなに大きなBASICファイルはないと思いますが・・・。

・ヘッダーのないもの(セーブデータ除く)(ハイドライドにて確認)
ここでいうヘッダーのないものとは、テープを再生すると「ピ〜ガ〜〜〜〜〜」と鳴るものです。通常のプログラムですと「ピ〜ガッ、ピ〜ガ〜〜〜〜〜〜」と鳴ります(つまり「ピ〜ガッ」の部分がヘッダーというわけです)一応MSXTAPEで認識する事はするんですが、セーブデータと間違えて一瞬でディスクに書き込みを始めてしまいます。

  2)WAVEファイルから変換する方法

 この方法を使用すると実機を使った方法でイメージ化できないものもイメージ化できます。
 まずはテープの音声をWAVEファイルに録音しましょう。
 録音する際のレートは8bit,11025kHz,Monoにします。
周波数はいくつでもいいですが、8bit,Monoには必ずしてください。
 一括してWAVEファイルにしてもいいですが、変換後ヘッダーをバイナリエディタで挿入しなければならないため、各ブロックごとにWAVEファイルにした方がいいでしょう。

 WAVEファイルへの録音が終わったら、イメージファイルに変換します。変換にはP6DatRecという、本来PC-6001用のテープ音声をイメージファイル化するソフトを使用します。作者の森川浩さんのHPから落としてきましょう。

 P6DatRecを起動するとデータレコーダー風の画面がでてきます。ここへ先ほど録音したWAVEファイルをドラッグ&ドロップします(複数可)。するとWAVEファイルのあるフォルダに同名で拡張子が.P6というファイルが作成されます。

 この段階で作成された.P6ファイルはPC-6001のエミュレータであるip6用のイメージファイル形式になっています。
 これをfMSX-DOSで実行させるようにするにはfMSX-DOSで認識するようにヘッダーを埋め込まなければなりません。
 それでは具体的に説明しましょう。

  .P6ファイルを覗いてみましょう。先頭の部分は次のようになっています。

  00000000 : D0 D0 D0 D0 D0 D0 D0 D0  D0 D0 CE DF B0 C4 4D 20 : ..............M
  00000010 : 00 D8 67 EC 00 D8 3E 00  7F F5 CD 84 00 EB 2A 00 : ..g...>......*.

 このデータはテープイメージの形式についての解説で述べたファイルと同じものです。
 たまにデータ領域の先頭や最後のところにFFhが入っている場合があります。P6DatRecはかなり認識力があるようでちょっとしたノイズでも拾ってしまう事があるようです。基本的には削除してかまいませんが、場合によってはそういう データもあることもありますから、エミュレータで動作確認しながら編集していくといいと思います。

 それでは、ここにヘッダー情報を埋め込みます。埋め込んだ後は次のようになります。

  00000000 : 1F A6 DE BA CC 13 7D 74  D0 D0 D0 D0 D0 D0 D0 D0 : ......}t........
  00000010 : D0 D0 CE DF B0 C4 4D 20  1F A6 DE BA CC 13 7D 74 : ......M ......}t
  00000020 : 00 D8 67 EC 00 D8 3E 00  7F F5 CD 84 00 EB 2A 00 : ..g...>......*.

 あとは拡張子を.CASにして保存すればfMSX-DOSで動作するテープイメージとなります

  [ヘッダー無しデータについて]

 それではヘッダーのないデータ(ピーガッの音がないデータ)のイメージ化に移りましょう
 今のところハイドライド・トリトーン・オホーツクに消ゆなどがこれに当てはまります。
 WAVEファイルから.P6ファイルにするところまでは上の方法と同じです。

 同じように.P6ファイルを覗いてみましょう。次のデータはハイドライドのものです。

   00000000 : 31 39 38 35 20 28 43 29  20 54 26 45 20 53 4F 46 : 1985 (C) T&E SOF
   00000010 : 54 20 49 6E 63 2E 20 62  79 20 45 49 5A 49 20 4B : T Inc. by EIZI K
   00000020 : 41 54 4F 20 F3 31 80 F0  FB AF 32 2F A6 21 12 05 : ATO .1....2/.!..

 このようにファイル種別ファイル名の情報はまったく無く、いきなりデータがならんでいます。
 これを次のようにヘッダー情報を埋め込みます。

   00000000 : 1F A6 DE BA CC 13 7D 74 31 39 38 35 20 28 43 29 : ......}t1985 (C)
   00000010 : 20 54 26 45 20 53 4F 46  54 20 49 6E 63 2E 20 62 :  T&E SOFT Inc. b
   00000020 : 79 20 45 49 5A 49 20 4B  41 54 4F 20 F3 31 80 F0 : y EIZI KATO .1.

 要するにテープを再生した時の「ピー」の部分が赤字のデータとなるわけです。
 ですからヘッダーのあるデータは赤字の部分が2箇所、ヘッダーの無いデータは赤字の部分が1箇所となりますね。

 あとは拡張子を.CASにして保存すればfMSX-DOSで動作するテープイメージとなります。

 最後に各ブロック毎のCASファイルを連結すればテープイメージの作成は完了です。連結の仕方は実機を使った方法のC)応用例の項を参照ください。連結後に各イメージの先頭が任意の行の0h番地におくことをお忘れなく。

 以上でテープイメージの作成に関する解説は終わりです。
 最後にエミュレータで動作するか確認しましょう。

4.あとがき

 大きく分けて3つの項目について解説しましたが、おわかりいただけましたでしょうか?
 内容につきましては独自で解析した結果ですので、間違っている所や落ち度のある所もあるでしょう。
 なにかありましたら下のメールアドレスまで連絡くださると嬉しいです。

 それでは、楽しいMSXエミュレータライフを!!

5.履歴

  1999.06.15 初版
  1999.06.18 2版 若干修正&BASICファイルのCASイメージへの変換について改訂 (catseyeさん情報Thanks!)
  1999.07.11 3版 WAVEファイルからイメージへの変換について追加

  2000.05.03 フレーム表示用に調整(内容の変更はなし)

Written by TOC(tocc@mail7.dddd.ne.jp)

 

戻 る