Entry

PC-98用FDイメージ一覧

自分は昔、PC-98エミュレータでよく遊んでいて、それが理由でPC-98エミュレータのサイトを立ち上げようと考えたことがあります。…まぁ過去形で書いていることからも分かるように、今ではその熱もすっかり醒めてしまい、PC-98エミュレータ界もすっかり成熟してしまって停滞している現状では、サイトを完成させる気力があまり湧いてきません。そこで、その当時作っていた資料に一部手を加えて少し放出しておこうかと思います。さすがに埋もれさせておくには、あまりにも惜しいので。ただし、資料自体は2000~2001年頃書かれた物なので、情報として少し古い可能性があります。
なお、ここで書いていることはWeb上の情報から聞きかじった知識ばかりなので、もしかしたら結構間違っているのかもしれません。その点はご了承下さい。

ここでは、PC-98エミュレータで使用されるフロッピーディスク(以下FD)のイメージデータの拡張子別一覧を書いておきます。ここで挙げている形式以外にも色々あるのですが、ここでは主にFDイメージ変換ツールであるVFIC(Virtual Floppy Image Converter)に対応した形式を取り上げています。なお、作成ツールのリンク先は多くの場合切れてしまっていますが、記録として一応そのまま残しておいてます。

表の見出しに、項目の説明をtitle属性で入れておきましたので、IE、Mozilla、Opera等のブラウザでは、カーソルを合わせることで説明が表示されます。title属性未対応のブラウザを使用される人のために、一目では分かりにくい「環境」の説明だけ書いておきます。

環境
FDイメージ作成ツールが動作する環境 1:PC-98 DOS, 2:AT互換機 DOS, 3:Windows, 4:X68k
PC-98用FDイメージ一覧
拡張子 作成ツール 対応エミュレータ VFIC DE 備考
名称 環境 ANEX NPII 98E T98 T98N V98
一般ディスクイメージ
(べたイメージ)
× 一般的なFDイメージ形式。
2HD
2DD
2D
MAHALITO 1 × × × × × × × フォーマット情報が記録された2HD/2DD/2Dファイルと、ファイルの内容が記録されたDATファイルで構成される。
BIN ディスクイマージュ 3 一般ディスクイメージ 2k、XP対応。
D88 MAKE_HD 1 × × × × × PC-88エミュレータで一般的な形式。Neko Project IIでは、空のイメージを作成。
DITT 2
DBS Enhanced D.B.S. 1 × × × × × × × × 圧縮/非圧縮を選択可。
DCP DCP 1 × × × × × × × DOS時代によく用いられた形式。いくつかのコピーガードを回避できるらしい(?)。
DCU DCU(Disk Copy Utility) 1,2 × × × × × × × DCPと同じく、DOS時代によく用いられていた形式。
DIP DIP × 詳細不明
DISK DiskExplorer 3 一般ディスクイメージ ディスクイメージ管理ソフト「DiskExplorer」のFDイメージ作成機能。
DSK Press1 1,2 × × × × × × × × シェアウェア。98用、DOS/V用の他にFM R/TOWNS用あり。圧縮形式。
EXE SLF 1 × × × × × × × × 実行ファイル形式で保存され、ファイルを実行すると直接FDに書き戻す。圧縮形式。
FDD MKFDD 1 × × × × × × Virtual98用の形式。
FDI ANEX86 3 × × × ANEX86のFDイメージ作成機能。べたイメージにヘッダを加えた形式。
FIM
FIX
Wizard98 v4/v5 1 × × × × × × × × 有名なコピーツール(現在は入手不可能)のイメージ。(元販売元はWESTSIDE)
HDM BKDSK 一般ディスクイメージ 拡張子は、他にDD6,HD5,HDB,DDB等も存在(?)。詳細不明。
NFD NFDMAKE 1 × × × × × × T98-NEXT用の形式。プロテクト情報も記録可。
T98-NEXT 3
Sxx STDFILE 1 × × × × × × × × 拡張子の「xx」には数字が入る(イメージ作成の際の設定による)。シェアウェア。
TFD RUNT98 3 一般ディスクイメージ T98の補助ツール「RUNT98」のイメージ作成機能。
VFD ERCVFD 1 × × × × × × × MS-DOSゲーム支援システム「ERCACHE」に使用される仮想FD。
VFL VFL 1 × × × × × × × × 同ツールによる、複数枚のFDを格納したVFZ形式も存在。圧縮形式。
XDF 2HDtoXDF 4 一般ディスクイメージ X68kエミュレータで一般的な形式。ツールは共にX68k用。
READFD 4
無し MKIMAGE 1 一般ディスクイメージ PC98E用のツール。ファイル名は FD0/FD1 で使用される。

表の中で「一般ディスクイメージ」という物が出てきますが、これは「べたイメージ」とも呼ばれ、FDのセクタを順番に書き出しただけの単純な形式です(それ以上具体的な事はよく知りません…)。それゆえ数多くのFDイメージ作成(FDからデータを吸い出す)ツールは、この形式のFDイメージを生成します。ちなみに、拡張子が違っても中身は一緒です。特徴としては、PC98で一般的な1.25MBのFD(1024バイト 8セクタ)を吸い出すと、ファイルサイズが1,261,568バイトになります。これはFDイメージの標準的な形式ですが、特殊なフォーマットのFDが扱えないという難点があります。MS-DOSフォーマットのFDならばこの形式のイメージを生成できますが、それ以外のフォーマットのFDやプロテクトのかかったFDに関しては、この形式のイメージを作成できません。そういった特殊なフォーマットを使う場合は、D88形式やNFD形式を用いる必要があります。ちなみにプロテクトに関しては、あらかじめ解除しておかないと、ソフトを正常に動作させることはほぼ無理と考えていいでしょう。

なお、Windows上で動く最初のPC-98エミュレータであった PC98E は、既にサイトを閉鎖されてしまった模様なので、残念ながら現在では入手することができません。

FDイメージ考察

これだけ種類のあるFDイメージですが、どれを用いるのが一番望ましいのでしょうか?私見を交えた結論を言うと、TFDおよびD88形式を併用するのが良いと考えます。理由を以下に書きます。
現在、メジャーなPC98エミュレータを挙げると、Anex86Neko Project IIT98-Nextの3つが挙げられます。どのエミュレータにも一長一短があり、なかなか一つに絞ることができません。そこで、どのエミュレータでも使い回すことができる形式が望ましいと考えられます。しかしAnex86では、扱えるFDイメージはFDI形式とべたイメージのみで、特殊なFDイメージを読み込ませることができません。
そこで、特殊FDを扱え、Neko Project IIとT98-Nextで使い回しのできるD88形式と、すべてのエミュレータで使い回しの出来るべたイメージを併用するのが望ましいと考える次第です。では何故TFD形式(要するに、べたイメージの拡張子がTFDというだけの話)なのかと言うと、Neko Project II、T98-Nextでは、FDイメージを開く際にデフォルトで拡張子のフィルタリングがかかっているのですが、ここの初期状態で表示される拡張子にTFDがあるからです。ただし、それ以外にもXDFなども表示されるので、それだけでは理由として不十分です。もう一つの理由として、TFDはPC-98エミュレータの黎明期を切り開いたT98によって作成されるイメージ形式だから、というものがあります。つまりその制作者に敬意を表して…ということなのですが、それを制作者の方が快く思うかどうかは分かりません。ただ、どうせ拡張子を統一するなら、PC-98エミュレータ独自の拡張子があった方がいいと思うわけで、その場合、PC-98エミュレータのT98によって作成されるTFD形式が望ましいのではないか、と考える次第です。
そんなわけで自分としては、PC-98エミュレータのFDイメージとして、TFD形式とD88形式を標準に据えることを提案します。

関連リンク

Anex86
PC-98エミュレータ
Neko Project II
PC-98エミュレータ
T98
PC-98エミュレータ
T98-Next
PC-98エミュレータ
Virtual98
PC-98エミュレータ
Virtual Floppy Image Converter
FDイメージ変換ツール
DiskExplorer
イメージ化されたFDイメージに直接アクセスするツール

その他、この資料を作るに当たって様々なサイトを参照させていただきました。

Comments (15 件)

匿名 より:

FDI形式はヘッダ4096バイトを切り取るとただのベタイメージですよといってみたり。よってFDIに価値無し。

海水瓜 より:

コメントありがとうございます。
FDIがそのヘッダに何の情報を入れてるのかは知らないですが、最初からベタイメージそのままであれば、扱いやすくて良かったんですけどね…。

匿名 より:

↑のコメントした者です。
FDIのヘッダは4096byteのほぼ全てが00で埋まってます。

FDIヘッダに意味を求めるとすれば9セクタディスク読み込み用です。
FDIヘッダにはセクタ数、ヘッド数、シリンダ数、ディスクサイズなどが
書き込まれていますので9セクタベタイメージを読み込めないAnex86で
9セクタのディスクを読み込ませるためにはFDIのヘッダが必要になります。
(もっとも、これ位はファイルサイズで判定出来ても良いと思いますが)

ちなみに00は恐らくFDI2用の予約領域と思われます。
FDI2とはAnex86で特殊ディスクを扱う為に作られたと思わしきイメージで
Anex86 v1.51~2.14あたりで読み込みが出来ていたディスクイメージです。

これにより現在のAnex86で動かないゲームの動作も可能でした。
MFICのFDI出力プラグインで出力できていましたが現在では入手不可能です。

D88に関しては、NekoProjectIIの隠し機能で1.44MBディスクを扱う場合に
猫が独自にD88形式を拡張しているので他のエミュで読めるか怪しいです。
(拡張に伴いD88の仕様を崩しています)

海水瓜 より:

詳しい解説を、どうもありがとうございます。知らないことだらけで、大変興味深かったです。

FDIって、一応特殊ディスクを扱う事も念頭に置かれてたんですね。Anex86の方も、そのまま対応してくれれば…。
D88の方は、Neko Project II で1.44MBのディスクを扱う機会自体は少ないとは思いますが、念頭に置いといた方が良さそうですね。

HIR より:

dcpとdcuは殆ど同じもので、トラックマップ付きのベタイメージに過ぎません。よってプロテクト回避不可です。
内訳は先頭1バイトが媒体種別、その後161バイトが各トラックの使用状況を表すトラックマップで、その後が使用トラックのベタイメージです。
dcuはdcpに比べ、全トラックを読ませた場合のトラックマップの扱いが違うだけです。

海水瓜 より:

ご指摘、どうもありがとうございました。
細々した事をあまり知らないので(調べる気力もあまり湧かないので)、非常に参考になります。
DCU、DCPも結局中身は普通のベタイメージなんですね。昔よく使われていたらしい、ぐらいしか知らなかったもので…。

まさてる より:

>dcuはdcpに比べ、全トラックを読ませた場合のトラックマップの扱いが違うだけです。
宜しかったら、具体的な違いを教えていただけませんか

HIR より:

ひさしぶりに、昔作ったツールのソースを引っ張り出して眺めてしまいました(笑)

dcp/dcuファイルフォーマット概要

ファイルオフセット   内容
0000h:        メディア種別
0001h~00A1h:    トラップマップ
00A2h:         全トラック格納フラグ
00A3h~:       ディスクイメージ

[メディア種別]
01h:2HD-8セクタ(1.25MB)
02h:2HD-15セクタ(1.21MB)
03h:2HQ-18セクタ(1.44MB)
04h:2DD-8セクタ(640KB)
05h:2DD-9セクタ(720KB)
08h:2HD-9セクタ(1.44MB)
11h:BASIC-2HD
19h:BASIC-2DD
21h:2HD-26セクタ
※DCUはこのうち01h, 02h, 04h, 05hのみ対応だったと思う。
※その他の種別は忘れた

[トラップマップ]
dcu/dcpは、DOSフォーマットされたディスクについてはFATを読み込み、使用されているトラックのみファイル化する機能を持つ。トラックマップは160バイトあり、1バイトが1トラックに相当する。ここが0以外の場合はデータの存在するトラックであり、0の場合はデータの存在しないトラックである。
ただし、DOSフォーマット以外のディスクを読み込んだ場合は、全トラックが使用されている物として扱われる。
例えば、2HD-8セクタの場合、1~154バイト目に利用状況に応じてフラグ1が立ち、155~161バイト目は未使用トラックとして0となる。

[全トラック格納フラグ]
・dcp
常に0が設定される。
-aオプションで強制的に全トラックを読み込ませた場合や、目一杯使用されているディスク、DOS以外のディスクの場合、全トラックのトラックマップにフラグ1が立ち、ディスクイメージ部には全てのトラックのデータが格納される。

・dcu
全トラックがイメージ化された際に1、それ以外の場合は0が設定される。
全トラックがイメージ化される場合とは、-aオプションで強制的に全トラックを読み込ませた場合の他、目一杯使用されているディスクだった場合、DOS以外のフォーマットだった場合などがある。
このうち、-aオプションが指定され、且つ一部分のみ使用されたDOSフォーマットのディスクの場合は、トラックマップは通常通り虫食い状態で生成される。しかしながら全トラック格納フラグには1が格納され、ディスクイメージ部にも全てのトラックのデータが格納される。

[ディスクイメージ]
トラックマップ部にて0以外のフラグがセットされているトラックのデータが格納されている。ただし、全トラック格納フラグが1の場合は、トラックマップの内容に関わらず、全てのトラックのデータが格納されている。

この仕様の相違については、どちらかの作者が、もう一方との互換性を考えながらも、一部の仕様を見落としたために発生した相違と思われます。(^^;

まさてる より:

HIRさん
とっても判りやすい解説ありがとうございました
いや~”全トラック格納フラグ”なんてのが存在していたとは、気付きませんでした^^;

通りすがり より:

今更ですが……
BKDSK というソフトで作られる以下の拡張子も、すべてベタイメージです。
ディスクの種類を拡張子で区別しています。
ファイルサイズはトラック数の算出に使われています。 (1024 × 8 セクタで 160 トラック使う、 など)

MS-DOS フォーマット
*.HDM → 2HD (360 rpm) 1024 bytes × 8 sectors × 154 tracks
*.HD5 → 2HD (360 rpm) 512 bytes × 15 sectors × 160 tracks
*.HD4 → 2HD (300 rpm) 512 bytes × 18 sectors × 160 tracks
*.DD6 → 2DD (300 rpm) 512 bytes × 8 sectors × 160 tracks
*.DD9 → 2DD (300 rpm) 512 bytes × 9 sectors × 160 tracks

N88-BASIC フォーマット
*.HDB → 2HD (360 rpm) 128/256 bytes × 26 sectors × 154 tracks
↑ track 0 のみ単密度 128 bytes, 他は 倍密度 256 bytes
*.DDB → 2DD (300 rpm) 256 bytes × 16 sectors × 160 tracks

海水瓜 より:

コメントどうもありがとうございます。
なにぶん昔に書いた物なので、自分でも今ひとつ分からないところもあり、どこまで正確なのかの確証が得られないため、こういったフォローはとても有り難いです。

[…] Melog: PC-98 FD イメージ一覧 さっそくエミュレータで HDD イメージを生成し MS-DOS […]

[…] ・PC-98用FDイメージ一覧 […]

匿名 より:

http://saba-g.jp/wp/2015/03/22/post-1248/
アドレスがこちらに代わっていました。

Hi there, just became aware of your blog
thdough Google, and found that it’s really informative.
I’m gonna watch out for brussels. I’ll be grateful
if you continue his in future. Lots of people will be benefited
from your writing. Cheers!

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください