見出し画像

KryoFluxの導入方法



はじめに

この記事はかなり以前にわたしがKryoFluxを導入した際の備忘録をnoteに移植したものなので情報が古い可能性があるので悪しからず。

KryoFluxは有用なデバイスながら「個人で輸入」「マニュアルが英語」「日本語の情報が少ない」といった事情から導入の敷居が高い。某氏の言葉を借りるならパワーユーザー向けということになってしまう。

国内販売されていた時期があり購入者も少なからずいるはずだけど、一部の人が発信している有益な情報を除き、使用レポートや細かい導入方法の解説が殆どないまま経年している。積極的な発信をする気がないか、そもそも使いこなせていないかのどちらかで今後もこの状況は恐らく変わらないよ。

最大の情報源は英語マニュアルとフォーラム。
日本語の情報は少なく一部の解説サイトとツイッター上に情報がある程度。それらも大いに参考にさせて頂いた上でその情報の補完として簡易的にまとめた(理解しやすさを重視してるので説明不足な部分はあるがそれはご容赦を)。

現状ではFDX68という日本製のデバイスも登場しており、KryoFlux以外の選択肢があることも、よく考えてみて欲しい。

KryoFluxってなに?

FDのデータを読み取り・保存・書き込みするためのデバイス。
FDDを制御してディスクの「磁気データそのものを」読み取り保存・複製する。これによってコピープロテクトも再現可能となる。

実機でもディスクはコピーできるしイメージ化もできる。じゃあ実機のFDDとKryoFluxの違いは何なのか?という話になる。

フロッピーディスクにはデータが磁気で記録されている。
ディスクに記録された磁気の強さで0か1に分かれて、これがデータとなる。

ところが一般にPCでディスクを扱う場合の最小単位はセクタ単位(OSを扱うユーザー目線ではファイル/フォルダ単位だけど)、磁気の強弱を保存するわけでもないし特殊な状態になっているディスクも複製はできない。コピープロテクトや破損してしまったディスクなんかも再現はできない。

ディスクを可能な限り完全な状態で保存することを目的としたKryoFluxでは磁気データそのものを読み取り保存する。理論上はコピープロテクトも丸ごと保存・複製が可能。また実機では正常に読み取れなかった劣化したディスクを読み取れる可能性も高い模様。

FDで供給されたソフトを今でも保管し扱いたいと考えるなら必要なアイテム。そうでなければ不要。

KryoFluxで吸い出したデータはコピープロテクトのかかっていないディスクであればD88に変換してそのままエミュレーターで使うことも可能(D88で再現できるプロテクトもあり、それに関しては動作する)。

プロテクトを外すという行為の是非を非とするなら、やはりディスクの保管には必要なデバイス。

KryoFluxの入手方法

現在国内で販売しているショップはない模様。
公式サイト https://www.kryoflux.com の BUY から購入サイトに行ける。

KryoFluxの公式サイト

購入するべきは下記の商品(ケーブル等もセットになったもの)

価格は当時価格/ログインすると111.72ユーロになった

在庫は常に変動している模様。国外への発送も行っており個人輸入は可能。
ユーロでの販売だがPayPal決済に対応しているので問題なく購入可能。

ログインするとログイン前よりも値引かれた価格が表示される。

住所の入力なんかはアルファベットで大丈夫。
万国郵便条約があるので海外から個人輸入したら大抵郵便で送られて郵便局が配達する。なので郵便屋さんが読める住所表記なら多少変でも問題ない。TokyoがToukyouでも問題ない。

アカウント登録するかどうか尋ねられるが登録したら結構割り引かれる。Premiumは電源やらなんやら付いてるセットなので面倒ならこれで。
わたしはボードのみを83.93ユーロで買った。

送料は自分の時は12.9ユーロだったけどPremiumだとサイズが大きくなるので上がるかも?

ちなみにおまけでハリボーが同梱されてきたよ(ヨーロッパ圏からの輸入では割と見る)。

KryoFluxの動作条件

Windows以外のプラットフォームでの動作は確認できないけど公式サイトによればWindowsの他にMacOS X、Linux、AmigaOS4でも動作する模様。

ハードウェアとしてはUSB接続かつバスパワー駆動する。

マニュアルには標準的な34ピンコネクタを備えたHDの3.5&5インチドライブ用みたいな記述があるが要はPC/AT互換機用の34ピン 2HDドライブが必要になる。理屈上は2モードでも3モードでもOKのハズ。

Redy信号とDiskChange信号の違いから、一般的にはPC-9801用のFDDは利用できないと思われる。
FD1155D/FD1157Dに関してはジャンパでReady/DiskChangeの切り替えが可能なため利用することは可能。

ちなみにざっくりいうとReadyはディスクが挿入され回転していることを示す信号、DiskChangeはディスクが交換されたかどうかの情報を保持してFDDがセレクトされた際にその情報をホストに伝える信号

もちろんKryoFluxにせよ普通にFDDを使うにせよこんなことを知っている必要性はまったくない。PC-9800用の一般的なFDDが使えない可能性があることだけ知っておけばよい。

接続はマザーボードにFDDを接続するのと同じ要領。
同時に2台認識することが可能なので繋ぐなら3.5インチと5インチを同時に繋ぐのがオススメ。

ちなみにKryoFluxにAC-DCアダプタで給電すればボード上の電源コネクタから給電可能。ただ、そんな回りくどい事をするくらいならドライブ用のAC-DCアダプタで直接給電したほうが使いやすいと思う。


セットアップ

1.ドライバのインストール

USBケーブルでPCと接続すると自動的にWindowsUpdateからドライバを拾ってきて…

 

Windows7以前のOSだとこうなる模様。
Windows10では問題なくインストールされたので参考まで。

当然、この状態では使えない(マニュアルにはネットから切断してインストールと書かれている)。

公式サイトにあるWindows用のドライバを使う。

ドライバは公式サイトからダウンロード


デバイスマネージャーで

Bossa~のプロパティ → ドライバー → ドライバーの更新 → コンピューターを参照~ → ディスク使用

ここで予め解凍しておいたドライバを選択して更新すればOK。

USBポートごとにインストールが必要。
一度インストールできれば↓のように一覧にでてくる。
(どのポートに挿しても自動だと違うドライバが入るので手動で選択する)

2.認識チェック

ドライバのインストールが出来たらPCがKryoFluxを正常認識しているかをチェック。

KryoFlux操作用のソフト「DTC.EXE」の-C2オプションを実行。
コマンドプロンプトで使用。

C:\KryoFlux>DTC -C2

ここでTimeotu~ならOK。
Device not foundならDTC.EXEがKryoFluxを認識していないのでドライバやケーブルを要確認。接続に用いるUSBケーブルは汎用品で問題ない。わたしはMOドライブに付いていたケーブルで接続した。

3.実際にFDDを接続する

だいたい↓みたいな感じで接続する。

KryoFlux本体の各部説明

6連ジャンパピンを内側ショートで1台、外側ショートで2台のFDDが接続可能になる。
外側ショートで1台接続でも動作に問題はないが、この場合はドライブ番号に注意が必要。
内側ショートの場合はAドライブ側、Bドライブ側どちらに繋いでもドライブ0として認識される。

普通にマザーボードにFDDを接続するのと同じ繋ぎ方で問題ない。
(それがわからんというならKryoFluxより前にFDDについてググってから手を出したほうがいい)

まず1台だけ繋いで電源を入れてもう一度DTC -C2を実行。

C:\KryoFlux>DTC -C2
CM: maxtrack=83

これは最大トラック数チェック。FD1155Dの場合は83だった。
そもそも値を返してこないドライブもある模様(その場合もたいてい動作に問題はないらしい?)。
83は両面ある2HDディスクなら166トラックまでヘッドが動く、ということになる。
KryoFluxは0トラックからカウントしているので1~168トラックまでのディスクが読めることになる。

私的な見解ではあるけど、maxtrackは80あれば特に問題はない。
通常のPC-9801の2HDディスクならトラック数は154(1~154)。KryoFluxでは0からカウントするので153だけど、いずれにしてもメディア自体がオーバートラックを保証しておらず161トラック以降を使用しているケースは少ないと考えられる(コピープロテクトであってもせいぜい160トラックあたりを使う程度)。


4.動作確認 ちゃんと吸えるか確認する

まず確認するべきは接続したドライブで一般的なディスクが吸い出せるかどうか。ドライブとの相性問題もあり、ディスクが正常でもBad Sectorだらけで吸い出すドライブもある。

MS-DOSでフォーマットしたディスクをベタイメージとして吸い出せるか実際に試してみる。

C:\KryoFlux>DTC -d0 -e76 -z3 -v360 -oe76 -fTEST.IMG -i4 > TEST.LOG

※-d0はドライブ番号(0 or 1) 使用するドライブにあわせる。
>はログをリダイレクトしてるだけ。

詳しくはマニュアルを読んで貰うしかないけど、ざっくりと以下になる。

-e=最終トラック、-z=セクタサイズ、-v=回転数、-oe=最終出力トラック、-f=ファイル名、-i=イメージ種類

-e76/-oe76は0~76トラックの範囲になる。
2HDでトラック数は154。-eはなくてもいいかも。

-zは0=128, 1=256, 2=512, 3=1024でデフォルトは2。
PC-9800用の一般的なディスクだとレングス3=1024になる。

-v=360はディスクの回転数を指定する物でドライブがこの回転数で動作するわけではない
PC-9801の場合、2HDも2DDも360rpmと考えて良いんじゃないかな、と…(2DDは転送レートで対応)。

-fはファイル名。イメージの種類で自動的に拡張子が設定されたりはしないので自分で設定が必要

i=4はMFM sector image=ベタファイル(セクタの内容をそのまま先頭から落とす)。
i=0はKryoFlux stream files, preservation=ビットストリームデータ(RAWファイル)。

問題なく吸えるようなら、そのドライブはOKと思って良いんじゃないかなー?(保証はできない)

ここまでで購入~導入までのザックリとした説明は終了。


補足etc

けっきょくRAWファイルはどーやって吸うの?

C:\KryoFlux>DTC -d0 -v360 -fTEST.RAW -i0 > TEST.LOG

こんな感じで吸う。

ちなみにRAWファイルはHxC Floppy Emulatorのソフトで読み込める。
入手はこちらの公式サイトから。

HxC Floppy Emulatorのソフトでイメージを読み込んだ画面

視覚的にディスクの状態を確認するのにはかなり便利。
ホールケーキを切ったような図だが、それぞれが各セクタを表す(これは8セクタ)。このソフトでHxC用のHFE形式やエミュレーターで採用されているD88形式に変換出力も可能。

プロテクトが掛かっていない or 簡単なプロテクトのソフトならD88への変換でエミュレーターで動作する可能性は高いと思う。

KryoFluxはあくまでもドライブの回転数でディスクを読み込むし書き込む。
360rpmのディスクを300rpmのPC/AT互換機用FDDで読み込んでもそのままだと正常に読めない。
その場合「rpm300rpm360」というファイルをRAWイメージと同じフォルダに置いておくと360rpmと解釈してくれる(同様にrpm360rpm300、rpm300、rpm360、doublestepといったファイルにも対応。意味は名称通り)。

CUIがいいの?GUIがいいの?

KryoFluxの操作にCUIを使うかGUIを使うかは人それぞれ。どっちでもいい。
GUIはDTC.EXEのフロントエンド。使えないオプションもあるっぽいが通常は困らないと思う。
ただし公式のフォーラムを見る限りGUIではなくDTC.EXEを使うのがほぼ前提みたいな感じに見える。

CUIはログを標準出力するのでファイルにリダイレクトすればログファイルになる。Bad Sectorとかは標準エラー出力?これはリダイレクトせず表示させてた方が不具合に気づきやすい。

ドライブは何が使えるの?

わたしは5インチはNEC FD1155D、3.5インチはYE DATA 702D-6638Dで正常動作を確認。

ドライブとの相性があるらしくドライブによってはBad Sectorが大量にでて普通のDOSディスクも吸えない。

3.5インチドライブは割と選択が多そうだけど、5インチドライブは入手性があまり良くないのでFD1155Dで良い。というのもFD1155Dは古い割に頑丈で数も大量に出回っているので入手性も高い。コンデンサの液漏れは多いが使える個体は多い。

FDDケーブルどう繋ぐの?捻れてるけど?

PC/AT互換機ではドライブ番号をケーブルで判定していて、そのために捻ってる。捻れの先のコネクタがA、もう1つのコネクタがBドライブになる。深く考えなくていい。

ケーブル接続時、一般的には1ピン(赤い線がある側)が電源ピンのある方にくる。PC/AT互換機用のドライブは基本的に共通と思いたいけど上下逆とかあるかもしれないので念のため、テスターでGNDピンの位置を確認してから使うくらいの慎重さはあってもいいと思う。

剥き出しで使うの?
剥き出しでショートさせたりするのは良くないので何かしら対策は必要。
カバー作って売ってる人がいるみたいだけど、わざわざ買うかは人それぞれ。わたしは↓みたいな感じでカットしたアクリル板に固定してる。

ホムセンで売ってるアクリルとどっかで買ったスペーサーを使用


おまけ

わたしが吸い出しに使ってるバッチファイル

簡易的な対話型バッチファイルにしてる(使用ドライブを固定)
使用ドライブ/出力イメージの種類を選択するバッチも作ってるけど連続で何枚も吸い出す場合、入力がめんどくさくなるからドライブ/用途ごとにバッチファイルを分けたほうがラクと判断した。

使用イメージ

かなり適当に書いてるので参考程度にしてね(ゝω・)
吸い出しながらアニメ見てたりすると気づきにくいので終了時に音が鳴るようにしてるよ()

あくまで参考

@ECHO OFF
SET tmpDIR=E:\KryoFluxRAW\
SET DRV_SEL=0

:Name
CLS
ECHO 使用ドライブは Drive%DRV_SEL% です
ECHO.
ECHO イメージ名を入力してください
SET /P IMG_NAME=""
IF /I "x%IMG_NAME%"==x GOTO Name

:Raw
CLS
ECHO 使用ドライブは Drive%DRV_SEL% です
ECHO.
ECHO イメージ名は %IMG_NAME% です
ECHO.
ECHO イメージタイプは Raw です
ECHO.
MKDIR "%IMG_NAME%"
IF %ERRORLEVEL%==0 GOTO OutRaw
ECHO 処理を続行します。よろしいですか?(Y/N)
ECHO (ファイルがある場合は上書きされます)
SET /P YN=""
IF x%YN%==x GOTO Raw
IF /I %YN%==N GOTO End
IF /I %YN%==Y GOTO OutRaw
GOTO Raw

:OutRaw
ECHO RAWイメージ「%IMG_NAME%」を出力中
DTC -d%DRV_SEL% -v360 "-f%tmpDIR%%IMG_NAME%%IMG_NAME%.raw" -t100 -tc100 -i0>"%tmpDIR%%IMG_NAME%%IMG_NAME%.raw.log"

FOR /F "usebackq delims=, tokens=4 skip=5" %%i IN ("%tmpDIR%%IMG_NAME%%IMG_NAME%.raw.log") DO (
SET rpm=%%i
GOTO Break
)
IF %ERRORLEVEL%==0 GOTO OutRaw

:Break
IF %rpm:~6,3% GEQ 350 GOTO End
ECHO %rpm:~6,7%rpmで吸い出しています。rpm300rpm360ファイルを作成します。
TYPE NUL > "%tmpDIR%%IMG_NAME%%rpm300rpm360"
GOTO End

:End
ECHO 処理を終了します
FOR /F "delims=0" %%a IN ('CMD /U /C ECHO 〇') DO @ECHO %%a
PAUSE

劣化したディスクは吸い出しが弱くて何回も読み込むことで正常に読み取れるケースもあるので指定したトラックだけ吸い出すバッチとか作ると便利よ。

KryoFlux RAW→HFE→D88変換

下記のようなバッチファイルを用いてる

@ECHO OFF
SET tmpDIR=E:\KryoFluxRAW\d88 out\

:LOOP
IF "%~1" == "" GOTO END

ECHO %~nx1 を %~n1.d88 に変換中です。
REM E:\KryoFluxRAW\hxcfe -finput:%1 -foutput:"%tmpDIR%%~n1.d88" -conv:NEC_D88 >"%tmpDIR%_%~n1.log"
E:\MerokoDeskTop\KryoFluxRAW\hxcfe -finput:%1 -foutput:"%tmpDIR%%~n1.d88" -conv:NEC_D88 > nul

SHIFT

GOTO LOOP
:END
pause

Windowsの右クリックコンテキストの「送る(N)」に登録しておくと便利かも。

RAWでも変換はできるけど重たい。
RAWで吸い出したあと、HFE形式でも保存しておくとべんり

ただ下記のような問題もあるので、各々で要確認のこと。


この記事が気に入ったらサポートをしてみませんか?