FDX68の導入方法。FM77AV用にRaspberryPiのセットアップから始める。(後編)
FM77AVシリーズ用にFDX68を導入する方法の続きを記載していきます。
前回は、RaspberryPiのセットアップや、RaspberryPiとWindowsPCとの通信設定等を行いましたが、今回は、RaspberryPiにFDX68専用シールドを実装した上でFM77AVシリーズやFDDと接続し、実際に運用するまでの作業等について順を追って説明していきます。
まだ、RaspberryPiのセットアップ等が済んでいない方は、先に『FDX68の導入方法。FM77AV用にRaspberryPiのセットアップから始める。(前編)』からご覧ください。
▢FDX68とは
・FM77AVシリーズに接続して『FDDエミュレータ』として使用する
・FDDと接続して『FDDコントローラ』として使用する
▢ディスクファイルについて
▢FDX68(ハード)のセットアップ
・自作ケーブルでFM77AVシリーズと接続して『FDDエミュレータ』及び『FDDコントローラ』として使用する
・『FDD-DRIVE SWAPPER+』を介してFM77AV20以降と接続して『FDDエミュレータ』及び『FDDコントローラ』として使用する
・自作ケーブルでFDDと接続して『FDDコントローラ』として使用する
▢FDX68(ソフト)のセットアップ
・FDX68のダウンロード
・RaspberryPiの起動とWindowsPCとの接続、Tera Turmの起動
・ファイルの移動
・事前準備、終了方法等
▢エミュレーションモードで使用する
・FDDエミュレーションを行う
▢コントローラーモードで使用する
・フロッピーディクスからディスクファイルを作成する
・ディスクファイルからフロッピーディスクへデータを書き戻す
・ディスクファイルの変換
FDX68とは
FDX68は、フロッピーディスクドライブの環境改善を目的に、GIMONS氏により開発されたハードウェアとソフトウェアの総称です。
【GIMONS氏FDX68のページリンク】フロッピーディスクドライブエミュレータ&コントローラ FDX68
FM77AVシリーズに接続して『FDDエミュレータ』として使用する
FM77AVシリーズへ接続することで、物理FDDになり替わって、仮想FDDとして機能させることができます。
仮想FDDの実行にあたっては、事前にディスクファイルを用意しておく必要があります。
【接続イメージ】
FDDと接続して『FDDコントローラ』として使用する
FDDへ接続することで、ゲームディスク等のディスクファイルの作成や、ディスクファイルの実ディスクへの書き戻しを行うことができます。
Ditt等では、プロテクトのかかったゲームディスク等のデータを、正確にファイル化できないという課題がありました。また、プロテクトを解除する汎用的なツールもないことから、作成したディスクファイルがエミュレータ上で実行できなかったり、ディスクファイルを改めて実ディスクへの書き戻した場合でも、再現性の問題から実機で機能しないということがしばしば起こりました。現在でも、エミュレータで実行可能なディスクファイルの作成には相応の知識や技術が求められており、関係資料の入手等も含め様々な問題があります。
FDX68にはディスク内の記録をありのままデータ化する機能があり、コピープロテクトも含めてディスクファイル化ができることから、上手く活用することで多くの問題を解決することができます。
【接続イメージ】
ディスクファイルについて
FM-7エミュレータで広く使用されているディスクファイルは、『D77形式』です。
『D77形式』の内容は、ID領域やセクタ領域のバイナリデータを連結したものであり、2Dのフロッピーディスクでは400KB程度の、2DDのフロッピーディスクでは700KB程度の容量のファイルとなるのが一般的です。
一方で、FDX68を用いて作成したディスクファイルは、独自仕様の『FDX形式』となります。
『FDX形式』の内容は、磁気データから解析したFM/MFM方式の符号化データを連続して記録したものであり、復号データと比較してファイルの容量が大きくなるという特徴があります。また、FDDで読み込んだありのままのデータ(RAWレベルのデータ)を記録する動作方式も選択できますが、この場合には更にファイルの容量が大きくなります。
ただし、その場合であっても、ファイルの大きさは、ディスク1枚当たり精々9MB程度であり、現在の補助記憶装置の容量からしても問題となるような大きさではありません。むしろ、この程度の容量で実ディスクへ復元可能なデータが記録できるのであれば、原版のディスクが痛む前に積極的にディスクファイル化を進めておいた方が良いかと思います。
FM-7エミュレータでは、これまで『FDX形式』がサポートされていなかったことから、使用にあたっては『D77形式』への変換が必須でしたが、遂に『FDX形式』をサポートしたエミュレータが公開されました。非常にありがたいです。開発者様ならびに関係する皆様に感謝申し上げます。
FDX68(ハード)のセットアップ
FDX68専用シールドをRaspberryPiへ実装し、FM77AVシリーズやFDDへ接続するまでの手順について説明します。
前記のとおり、FDX68は『FDDエミュレータ』と『FDDコントローラ』の両方の機能を備えています。
『FDDエミュレータ』としての使用ではFDX68専用シールドとFM77AVシリーズのマザーボードを、『FDDコントローラ』としての使用ではFDX68専用シールドとFDDをケーブルで接続します。基本的には用途に応じて接続先を排他的に選択することになります。
使用したい機能や環境に応じて様々な接続方法がありますが、参考に次の3つの例を示します。
〇自作ケーブルでFM77AVシリーズと接続して『FDDエミュレータ』及び『FDDコントローラ』として使用する
〇『FDD-DRIVE SWAPPER+』を介してFM77AV20以降と接続して『FDDエミュレータ』及び『FDDコントローラ』として使用する
〇自作ケーブルでFDDと接続して『FDDコントローラ』として使用する
1番目と2番目は『FDDエミュレータ』と『FDDコントローラ』の両方を使用する接続方法です。3番目は『FDDコントローラ』のみを使用する接続方法です。注意点は以下の2点です。
〇2番目の方法は、FM77AV20/40/20EX/40EX/40SXの5機種が対象です。
〇3番目の方法について、今回の例示ではPC/AT機用(一般的なWindowsPC用)のFDDを用いています。書き戻したフロッピーディスクをFM77AVで使用すると読み込みエラーが頻発します。
それぞれの方法に係る実行機能等は次の通りです。
自作ケーブルでFM77AVシリーズと接続して『FDDエミュレータ』及び『FDDコントローラ』として使用する
FM77AVシリーズのマザーボード及びFDDのケーブルを本体背面まで引き出し、FDX68専用シールドへ接続します。
用途に応じてFDX68にケーブルを接続し直して運用することになります。
接続ケーブルを自作する必要があります。
【準備するもの】
FM77AVシリーズ
FDX68専用シールド
Raspberry Pi
リボンケーブル:40cm×3本、10cm×1本
MIL34ピンソケット:4組
MIL34ピンプラグ:4組
【ケーブルの作成】
リボンケーブルに端子を圧接します。端子の圧接には専用工具が便利です。
作成するケーブルは以下の4本です。
① ザーボード用延長ケーブル/ FDD用延長ケーブル
同じものを2本作成します。
・リボンケーブル40センチ
・MIL34ピンソケット×1
・MIL34ピンプラグ×1
②変換ケーブル
・リボンケーブル10センチ
・MIL34ピンプラグ×2
③FDX68接続ケーブル
・リボンケーブル40センチ
・MIL34ピンソケット×2
【接続方法】
〇FDDエミュレーションを行うとき
マザーボード用延長ケーブルとFDX68接続ケーブルを接続します。
〇FDDコントロールを行うとき
FDD用延長ケーブル、変換ケーブル及びFDX68接続ケーブルを接続します。
〇FDX68を接続せず、通常使用を行うとき
マザーボード用延長ケーブルとFDD用延長ケーブルを接続します。
『FDD-DRIVE SWAPPER+』を介してFM77AV20以降と接続して『FDDエミュレータ』及び『FDDコントローラ』として使用する
『FDD-DRIVE SWAPPER+』は、Michael氏が開発、頒布しているレトロPCの起動ドライブを、内蔵FDDと拡張FDDのどちらにするかを切り替えることができるようにする基盤です。
対応機種はFM77AV20以降になります。
【Michael氏ブログへのリンク】Michael's Blog
『FDD-DRIVE SWAPPER+』を介してFM77AV20以降のマザーボード及びFDDへ、FDX68専用シールドを接続します。
用途に応じて『FDD-DRIVE SWAPPER+』のスイッチを切り替えて運用します。
前記の方法とは異なり、ケーブルの差し替えなしに『FDDエミュレータ』と『FDDコントローラ』の切り替えが行えるので非常に便利です。また、必要なケーブル類もセットになっているのでケーブルの自作が困難な方にもお勧めです。
【準備するもの】
FM77AV20/40/20EX/40EX/40SX
FDX68専用シールド
Raspbwrry Pi
FDD-DRIVE SWAPPER+ セット
【接続方法】
『FDD-DRIVE SWAPPER+』のスイッチ切り替えにより、FDDエミュレーション、FDDコントロール及び通常使用を行うことができます。公式ページに詳細がありますが、イメージ図を示します。
自作ケーブルでFDDと接続して『FDDコントローラ』として使用する
主に『FDDコントローラ』として、ディスクファイルの作成や実ディスクへの書き戻し用として使用する方向けの方法となります。
前記の方法とは異なり、FM77AVシリーズの実機から独立した形で運用します。接続先はFDDのみになります。
接続ケーブルを自作する必要があります。
FDDへ5V電源を供給する必要がありますが、今回はRaspberryPiのUSB端子を利用しました。
なお、今回使用したFDDは、YE-DATAの「702D-6238D」ですが、同等品であれば使用できるかと思います。
【準備するもの】
FDX68専用シールド
Raspbwrry Pi
FDD:1台
リボンケーブル:40cm×1本
MIL34ピンソケット:2組
USB電源ケーブル:1本(中国製。購入は自己責任でお願いします。)
電源変換ケーブル:1本
【ケーブルの作成】
作成、改造するケーブルは以下とおりです。
①FDX68接続ケーブル
②FDD電源ケーブル
例示した電源ケーブルは、ペリフェラル側で+12Vが結線(下図の下側破線)されていますが、FDDへの電源供給のためには+5Vが結線(下図の上側実線)されていなければなりません。ペリフェラルコネクタのピン番号は左から1、2、3、4となりますが、3と4が結線されている必要があります。使用に際しては、ピンを指し直して下さい。
【接続方法】
FDX68(ソフト)のセットアップ
FDX68をRaspberryPiへインストールし、起動するまでの手順について説明します。
最新のバイナリをクリックします。
ファイルがダウンロードされます。
RaspberryPiの起動とWindowsPCとの接続、Tera Turmの起動
ダウンロードしたファイルをRaspberryPiへ移動するための準備手順について説明します。
既にRaspberryPiとWindowsPCとの接続や、『TERA Turm』の起動が済んでいる方は、”ファイルの移動”へ進んでください。
RaspberryPiに電源を接続し、起動します。ディスプレイ、キーボード等の接続は不要です。
RaspberryPiと同じWi-Fiネットワークへの接続を行います。
タスクバーのアイコンをクリック。
RaspberryPiと同じWi-Fiネットワークを選択。
RaspberryPiと同じWi-Fiネットワークへの接続が確立します。
『Tera Turm』を起動します。
新しい接続の入力画面が表示されます。
"Host(RaspberryPiのIPアドレス)"を入力し、"OK"をクリック。
ホスト入力後、セキュリティの警告画面が出る場合がありますが、気にせず"続行(C)"をクリック。
RaspberryPiへのログインが求められるので、"ユーザー名"、"パスフレーズ"を入力し、"OK"をクリック。
ユーザー名:pi
パスフレーズ:raspberry(デフォルトから変更している場合は変更したもの)
接続が確立すれば、ターミナル画面が表示されます。
ターミナルは一旦このままにしておきます。
これで、RaspberryPiへ移動するための準備は終了です。
ファイルの移動
WindowsPCに保存してあるFDX68の書庫を、RaspberryPiの記憶装置へ移動する手順について説明します。
何でもよいので適当なフォルダを開き、アドレス欄に"¥¥192.***.***.***"を入力。(*は、RaspberryPiのIPアドレス)
エクスプローラーにRaspberryPiのフォルダが表示されます。
"pi"フォルダをダブルクリックし、フォルダ内に作業用のフォルダを作成します。
今回は"FDX68"としました。
ダウンロードした『FDX68』の書庫を、"FDX68"フォルダへ複製します。
これで、RaspberryPiへのファイルの移動は終了です。
事前準備、終了方法等
FDX68を実行するまでの事前準備と、Linux(RaspberryPi)の終了等の一部コマンドの説明をします。
『Tera Turm』から"cd FDX68"を入力し、ディレクトリを移動します。
『Tera Turm』から"tar xfvz fdx68_[FDX68のバージョン番号].tar.gz"を入力し、『FDX68』の書庫を展開します。
"FDX68"フォルダの書庫が展開されます。
これで『FDX68』実行前の準備は終了です。
FDX68のRaspberryPi上で実行には、Linuxのコマンド操作を伴います。
参考に、最低限必要なコマンドを記載します。これ以外にも様々なコマンドがありますので、必要に応じてウェブ等で確認してください。
【管理者権限でコマンドを実行する】
○コマンド単位で一時的にroot権限を使います
$ sudo [オプション] [コマンド]
【現在のディレクトリ表示】
○現在作業を行っているディレクトリを表示します
$ pwd
【ディレクトリの移動】
○現在のディレクトリから移動します
$ cd ホームディレクトリへ移動します
$ cd [移動先のディレクトリ名] 指定したディレクトリへ移動します
$ cd .. 1つ上位のディレクトリへ移動します
【ファイルの表示】
○現在のディレクトリ内にあるディレクトリやファイルを表示します
$ ls [オプション] [ファイル名]
オプション
-l 名前以外の情報も表示します
-R サブディレクトリ以下の全ファイルを表示します
【tar.gz形式書庫の展開】
○tar.gz形式の書庫をフォルダに展開します
$ tar xfvz [ファイル名.tar.gz]
【システムの再起動】
○再起動を行います
$ reboot
【システムのシャットダウン】
○システムを停止し、電源を切ります
$ sudo shutdown -h now
【ショートカットキー】
[ctrl]+C 実行中のコマンドを終了します
[ctrl]+Z 実行中のコマンドを中止します。$ fg [ジョブ番号] で再開します
[ctrl]+L 画面を消去します
これでFDX68を実行するまでの事前準備と、Linux(RaspberryPi)の終了等の一部コマンドの説明は終了です。
エミュレーションモードで使用する
FDX68の『FDDエミュレーションモード』で、仮想FDDを使用するまでの手順について説明をします。
FDDエミュレーションを行う
FDX68の『FDDエミュレーションモード』で、仮想FDDへディスクファイルを挿入します。
RaspberryPiの"FDX68"フォルダへ、起動したいディスクファイルを複製します。
『Tera Turm』から"chmod +x fddemu"を入力し、初めて実行するアプリケーションに対して実行権を付与します。(2回目からは不要です。)
『Tera Turm』からコマンドを入力しFDDエミュレーションを行います。
入力するコマンドは、メディア(2D/2DD)と接続しているFM77AVシリーズ(AV/20/40/20EX/40EX/40SX)により異なります。
2Dディスクの場合
【FM77AV】
"sudo ./fddemu -0 [ディスクファイル名] [-1 ディスクファイル名] -o x0"
【FM77AV20/40/20EX/40EX/40SX】
"sudo ./fddemu -0 [ディスクファイル名] [-1 ディスクファイル名] -s half -o x0"
2DDディスクの場合
【FM77AV20/40/20EX/40EX/40SX】
"sudo ./fddemu -0 [ディスクファイル名] [-1 ディスクファイル名] -o x0"
コマンドを入力すると、FDDエミュレーションが開始します。
[ctrl]+CでFDDエミュレーションが終了します。
ディスクファイルの入れ替えが必要な時は、[ctrl]+Cで一旦FDDエミュレーションを終了し、改めてFDDエミュレーションの開始コマンドを入力します。
これで、FDDエミュレーションは終了です。
コントローラーモードで使用する
FDX68のコントローラーモードで、フロッピーディスクのファイル化や、"ディスクファイル"の実ディスクへの書き戻し、また、"ディスクファイル"の変換を行う手順について説明をします。
フロッピーディクスからディスクファイルを作成する
FDX68のコントローラーモードで、フロッピーディスクをファイル化します。
FDX68専用シールドに接続したFDD(複数搭載機はファーストドライブ)へファイル化したいフロッピーディスクを挿入します。
『Tera Turm』から"chmod +x fddump"を入力し、初めて実行するアプリケーションに対して実行権を付与します。(2回目からは不要です。)
『Tera Turm』からコマンドを入力し、ディスクのファイル化を行います。
入力するコマンドはメディア(2D/2DD)と接続しているFDD(2D/2DD/2HD)により異なります。
2Dディスクの場合
【FM77AV/FM-7用ミニFDユニット等(2Dドライブ)】
"sudo ./fddump -i 0 -c 40 -d double -p4 [ディスクファイル名].fdx"
【FM77AV20/40/20EX/40EX/40SX(2DDドライブ)】
"sudo ./fddump -i 0 -c 40 -d double -s 2 [ディスクファイル名].fdx"
【3モードFDD等(2DD/2HDドライブ)】
"sudo ./fddump -i 1 -c 40 -d double -s 2 [ディスクファイル名].fdx"
2DDディスクの場合
【FM77AV20/40/20EX/40EX/40SX(2DDドライブ)】
"sudo ./fddump -i 0 -c 80 -d double [ディスクファイル名].fdx"
【3モードFDD等(2DD/2HDドライブ)】
"sudo ./fddump -i 1 -c 80 -d double [ディスクファイル名].fdx"
コマンドを入力すると、ディスクアクセスが始まります。
画面のカウントが100%になったら終了です。
"ディスクファイル"が作成されます。
なお、FM-7エミュレータ(XM7、eFM77AV等)で一般的に使用されている『D77形式』への変換には、後段で説明する"fdconv"を使用します。
作成したディスクファイルの動作確認には『FDX形式』をサポートしている『XM7g』が使用できます。作成したディスクファイルが正常に動作しない原因としては、ファイル化に失敗していることや、より詳細なデータを求められていることなどが考えられます。
前者の場合は、環境を変えるなどして再度ファイル化を行う事で問題が解決することがあります。
後者の場合は、より詳細なデータを取得するRAWレベルでのファイル化により解決することがあります。
残念ながら原版のフロッピーディスクの劣化等が原因で正常にファイル化が行われない場合の解決法はありません。
ディスクファイルからフロッピーディスクへデータを書き戻す
FDX68のコントローラーモードで、ディスクファイルを実ディスクへ書き戻します。
FDX68専用シールドに接続したFDD(複数搭載機はファーストドライブ)へ書き戻し先のフロッピーディスクを挿入します。
RaspberryPiの"FDX68"フォルダへ書き戻し元のディスクファイルを複製します。
『Tera Turm』から"chmod +x fdrestore"を入力し、初めて実行するアプリケーションに対して実行権を付与します。(2回目からは不要です。)
『Tera Turm』からコマンドを入力し、ディスクファイルの書き戻しを行います。
入力するコマンドは、メディア(2D/2DD)と接続しているFDD(2D/2DD/2HD)により異なります。
2Dディスクの場合
【FM77AV/FM-7用ミニFDユニット等(2Dドライブ)】
"sudo ./fdrestore -i 0 -c 40 -p4 [ディスクファイル名].fdx"
【FM77AV20/40/20EX/40EX/40SX(2DDドライブ)】
"sudo ./fdrestore -i 0 -c 40 -s 2 [ディスクファイル名].fdx"
【3モードFDD等(2DD/2HDドライブ)】
"sudo ./fdrestore -i 1 -c 40 -s 2 [ディスクファイル名].fdx"
2DDディスクの場合
【FM77AV20/40/20EX/40EX/40SX(2DDドライブ)】
"sudo ./fdrestore -i 0 -c 80 [ディスクファイル名].fdx"
【3モードFDD等(2DD/2HDドライブ)】
"sudo ./fdrestore -i 1 -c 80 [ディスクファイル名].fdx"
コマンドを入力すると、ディスクアクセスが始まります。
画面のカウントが100%になったら終了です。
フロッピーディスクにデータが記録されます。
FDDからフロッピーディスクを取り出します。
これで、フロッピーディスクへのデータ書き戻しは終了です。
ディスクファイルの変換
FDX68のファイルユーティリティで、ディスクファイルの変換を行います。
RaspberryPiの"FDX68"フォルダへ、変換元のディスクファイルを複製します。
『Tera Turm』から"chmod +x fdconv"を入力し、初めて実行するアプリケーションに対して実行権を付与します。(2回目からは不要です。)
『Tera Turm』から"sudo ./fdconv -i [変換元ディスクファイル名] -o [変換後ディスクファイル名]"を入力し、ファイル変換を行います。
変換元のディスクファイルが、『FDX形式』のRAWレベルデータの場合は、末尾に"-f raw"を追記します。
【『FDX形式』→『D77形式』】の場合
【『D77形式』→『FDX形式』】の場合
コマンドを入力すると。変換ファイルが作成されます。
これで、"ディスクファイルの変換は終了です。
以上でFDX68の導入方法についての説明は終わりです。
お疲れさまでした。
導入まで大変な面もありますが、苦労に見合った環境が構築できるかと思います。
説明が不十分な点もありますが、導入を考えている方の環境構築に少しでも寄与できていれば幸いです。
ここまでご覧頂きありがとうございました。
0コメント