GIMONS DEVELOPER WORKS/FDX68

最終更新:2024/10/5

フロッピーディスクドライブエミュレータ & コントローラ
FDX68

-Floppy Disk Drive Integration Tools for X68000-

OVERVIEW1 OVERVIEW2 OVERVIEW3 OVERVIEW4

告知

V2基板をご利用いただく場合はVersion2.00以降のモジュールを使用してください。
Version2.00以降のものはV1基板でも使用できます。

2023/10/5 Version2.01aをリリースしました。

最近の更新

Version2.01 → 2.01aの更新内容

Version2.00d → 2.01の更新内容

Version2.00c → 2.00dの更新内容

V2基板ファームウェア(20230625)の更新内容

V2基板ファームウェア(20230525)の更新内容

Version2.00b → 2.00cの更新内容

Version2.00a → 2.00bの更新内容

Version2.00 → 2.00aの更新内容

Version1.30 → 2.00の更新内容

はじめに

FDX68はX68000のフロッピーディスクドライブの環境を改善するために開発されたハードウェアとソフトウェアの総称です。 RaspberryPiに専用シールド(変換基板)を取り付けて当ホームページから配布するソフトウェアを導入して使用します。 基本機能はHxCやGOTEK等と同様のフロッピーディスクドライブエミュレータです。 X68000のイジェクト機能やディスク挿入検知等の拡張機能をサポートしています。 またKryoFluxの様にフロッピーディスクのダンプやリストアを行うコントローラ機能も持っています。 X68000だけでなく私の所有するFM77AV40EX,PC-8801FH/MAで利用実績があります。 その他にFM TOWNSやシャープMZ/X1シリーズ、NEC PC9801シリーズ、MSXのいくつかの機種で動作したとの報告を頂いています。

物理フロッピーがカビや劣化などの脅威にさらされるなかで貴重な(市販のゲーム等の)マスターディスクをプロテクトの情報を 欠損することなくバックアップして実機で活用できることを念頭に開発しました。 Version1.24ではダンプとリストアの精度が大幅に向上し物理フロッピー間のバックアップが実用レベルになりました。

私が収集したソフト(カビのダメージが少なかったもの)やサポーターの方から報告いただいたソフトの一例です。 これらのソフトでは問題なくダンプ、エミュレーションが可能でした。 また最新のXM6 TypeGではプロテクトがかかった状態でもこれらのソフトを起動することが可能です。 全て確認できたわけではありませんがリストアも高い確率で成功するようです。 FDX68のバージョンアップの直後はXM6 TypeGのバージョンアップが追随していない場合があります。

A-JAX ザ・コックピット ドラゴンバスター ワンダラーズフロムイース
Mr.DO/Mr.DOvsユニコーン サイバリオン バブルボブル 餓狼伝説
R-TYPE サンダーブレード パロディウスだ! 餓狼伝説2
TDF ジェノサイド パワーモンガー 出たな!!ツインビー
悪魔城ドラキュラ ジェノサイド2 ファイナルファイト 生中継68
アルゴスの戦士 ジオグラフシール ファランクス 大魔界村
イメージファイト スクウェア・リゾート ぶたさん 遙かなるオーガスタ
エアーコンバット スターウォーズ ぷよぷよ エトワールプリンセス
スタークルーザー プリンス・オブ・ペルシャ オーバーテイク スターフォース
ボスコニアン キャメルトライ スターラスター ボナンザブラザーズ
クオース ストリートファイターII' ポピュラス グラディウス2
ダンジョンマスター マーブルマッドネス グラナダ チェルノブ
ラプラスの魔 クレイジー・クライマー テラクレスタ/ムーンクレスタ リブルラブル
コットン ドラゴンスピリット ワールドプロレス/大相撲 ファンタジーゾーン
大戦略Ⅲ'90' スペースハリアー スーパーゼビウス エイリアンシンドローム

特徴

専用シールド(変換基板)

V1基板

RaspberryPiと接続するためのGPIO40ピンコネクタ(メス)、FDD I/Fである34ピンリボンケーブルコネクタ(オス)を備えています。 シールドの主な役割はFDDの信号(5V)とGPIOの信号(3.3V)のレベル変換です。 レベル変換は74LS641というロジックICを使用しています。 その他に接続ドライブの選択を行うジャンパ(最大2つのドライブをエミュレーション可能)とアクセスLEDを装備しています。 現在はV2に移行するため頒布しておりません。

V2基板

V1基板同様にGPIO40ピンコネクタ(メス)、34ピンリボンケーブルコネクタ(オス)を備えています。 FDDの信号(5V)とGPIOの信号(3.3V)のレベル変換に加えてファームゥエアによる信号制御を行います。 一部の信号制御を基板自身が制御することでV1基板を用いた場合に比べてドライブエミュレーションの負荷を大幅に低減します。 また、アクセスLEDに加えてディスク挿入状態を示すLEDを装備しています。 現在BOOTHにて基板頒布中です。

X68000拡張機能を含むFDDエミュレーション

拡張子"FDX"を持つ専用のイメージファイル(以下FDX形式と呼ぶ)を使用して2台までのFDDエミュレーションが可能です。 シビアなタイミングが要求されるエミュレーションですがSPIを活用することでカーネルドライバ無しで(そこそこ)安定して動作します。 またX68000固有のフロッピーディスクの挿入状況のチェック、オートイジェクト、挿入検出等の拡張機能をサポートしています。 一部使用頻度の低いEJECT MASK,ERR DISK,LEDはGPIOの数を理由にサポートしていません。

ディスクイメージのダンプ、リストア

マスターディスクからFDX形式のディスクイメージを生成するために物理FDDからダンプする機能をサポートしています。 8MHzもしくは4MHzでサンプリングした信号を補正してFM/MFMレベルのエンコード情報にリアルタイム変換することで 高速なイメージダンプを実現しています。 またFDX形式のディスクイメージを物理FDDにリストアすることも可能です。 回転数の微妙な違いで発生する容量の違いをデータ送出タイミングを制御することで吸収するよう制御します。

FM/MFMエンコードレベルのディスクイメージ

FDX形式のディスクイメージは磁気データから解析したFM/MFMエンコードレベルのデータを格納しています。 したがって特殊なセクタ構造を持つ物理フォーマットにも対応することができます。 ファイル構造は識別子、名前、シリンダ数、ヘッド数、RPM、転送レート等のヘッダー情報と各トラックデータの羅列 というシンプルな形式です。 サポートするフロッピーディスクの種類は2D,2DD,2HD(1.6M),2HD(2.0M)となります。 2HDのアンフォーマット容量はドライブのRPMによって変化します。 X68000の標準はRPMが360ですので2HD(1.6M)になります。 FDX形式はクロックを含むFM/MFMレベルのエンコードですのでファイルサイズが大きくなります。

既存のディスクイメージ活用

既存のディスクイメージ(XDF/HDM/2HD/DUP/IMG),DIMディスクイメージ(DIM),D68ディスクイメージ (D68/D88/D77)を FDX形式に変換することが可能です。 またFDX形式をXDFやDIM,D68形式等に逆変換することも出来ます。 しかし既存のディスクイメージの殆どはセクタ情報のみを保存している(GAP等の情報は持っていない)ため FM/MFMレベルのエンコードデータを持つFDX形式から逆変換すると情報の一部が失われる、 もしくは変換出来ない場合があることに注意してください。

RAWレベルのイメージダンプ

FDX形式は汎用性を持たせておりFM/MFMエンコードレベルのデータだけでなく物理FDDから読み取った信号そのものを RAWデータとして格納することができます。 信号の送出間隔を微妙に(0.5%程度)制御してプロテクトを掛けたマスターディスク等はこのRAWレベルデータとして バックアップする必要があります。 FDX68ではダンプ時に指定することでRAWデータレベルでの保存を指示することができます。 当然FDDエミュレーションでもサポートしています。 市販のアプリケーションをバックアップする場合は全ディスクを通常モードでバックアップを行い問題がある場合に 限りRAWモードを使用すると良いでしょう。 というのも強力なプロテクトが施されているのは大抵の場合起動時に使用するディスク1枚であることが多いからです。

動作環境

モデル

Raspberry Pi 3 Model A,B,B+を推奨します。

Raspberry Pi 2 Model BやZero,ZeroW等はサポートしていません。

Raspberry Pi 4 Model Bは推奨しませんが"Raspberry Pi 4 Model Bの使用"を参照してくだい。

OS

開発およびテストに使用しているOSは下記になります。

Raspberry Pi OS Lite(Linux raspberrypi3 5.15.84-v7+ #1613 SMP Thu Jan 5 11:59:48 GMT 2023 armv7l GNU/Linux)

Raspberry Pi 4 Model Bの使用

推奨されない理由

Raspberry Pi 4 Model Bは高性能であるが故に電源電圧品質や熱に関してとてもシビアです。 FDX68はホストマシンからアクセスされている間はスケジューラの優先順位を変更し、 最高速で動作することで応答性を稼いでいます。したがって電源品質や熱によりCPUクロック が可変しやすい環境では不安定になることがあります。

もう一つの理由としてFDX68が使用しているSPI通信の速度が不正確になるということがあります。 FDX68はSPI通信速度として500kHz,1000kHz,4MHz,8MHzを使い分けています。これらの速度は コア周波数の分周で設定されます。Raspberry Pi 3の場合はこの周波数のデフォルトが400MHz ですので先の速度は分周比800,400,100,50で生成することが可能です。一方、Raspberry Pi 4 はデフォルトのコア周波数は500MHzですので単純計算で分周比は1000,500,125,62.5となります。 少数の分周比は設定できませんので8MHzが正確に生成できません。

コア周波数の変更と固定

Raspberry Pi 4においてもコアクロックを400MHzにダウンクロックし、かつ400MHzに固定する 方法があります(開発環境の条件で確認していますが将来変更になる可能性があります)。 /boot/config.txtに以下の様な記述を追加します(arm_boost=1の下2行)。Raspberry Pi OSの 場合は[pi4]のエントリがあることが多いのでそこに追記すると良いでしょう。 gpu_freq及びgpu_freq_minの設定でコアクロックも同時に変更されます。コアクロックのみを 変更する方法も試しましたが固定化することができませんでした。

/boot/config.txt
・・・・
[pi4]
# Run as fast as firmware / board allows
arm_boost=1
gpu_freq=400
gpu_freq_min=400
...

ライセンス

FDX68は専用シールド(変換基板)に加えてRaspberry Pi上で動作するソフトウェアの 総称あるためソフトウェア単体でご利用頂くことはできません。

HP上等で案内する公式頒布サイト(ショップ等)で専用シールドを正規に購入して いただいた方に限りソフトウェアの使用が許諾されます。

なお公式頒布サイトでは譲渡やオークション等での転売禁止を購入条件としています。 譲渡やオークション等での転売で専用シールドを入手された方にはソフトウェア の使用は許諾されません。

同人ハード及びソフトウェアという特性上あくまであるがまま"AS IS"で頒布します。 従って使用者が受けたあらゆる損害に対して一切責任を持ちません。 またソフトウェアに不備もしくは不具合があったとしてもそれを修正する責任もありません。 FDX68を利用することでRaspberry PiやレトロPCが故障するリスクがあります。 あくまで自己責任でチャレンジしてください。 この条件に納得できない場合はご使用をお控えください。

またソフトウェアに関してはこのHP以外での配布を認めておりません。

ダウンロード

基板を譲渡やオークションで入手された方はライセンスは許諾されません。ご使用になられた場合ライセンス違反となります。

ソフトウェア本体

FDX68 version 2.01aのダウンロード(TAR+GZ形式)

Windows版ツール群

FDX68 version 2.01aのWindows版ツール群のダウンロード(ZIP形式)

インストール

Raspberry Pi OSのセットアップ

インターネット上のインストールに関する情報を参考にしてください。 動作確認しているものはRaspberry Pi OS Lite(Linux raspberrypi3 5.15.84-v7+ #1613 SMP Thu Jan 5 11:59:48 GMT 2023 armv7l GNU/Linux)となります。

FDX68のインストール

ダウンロードしたバイナリを任意の場所に展開してください(tar zxvf fdx68_xxx.tar.gz等)。 /usr/local/bin等のパスが通った場所に展開すると良いでしょう。

V2基板ファームウェアと更新手順

V2基板の最新ファームウェアのダウンロードと更新方法です。

2023年6月以降頒布の基板は最新ファームウェアを書き込み済みです。

専用シールド頒布(BASEのショップページにリンク)

BASEショップにてV2基板の有償頒布中です。

専用シールド仕様

専用シールドのピンアサインやジャンパ設定。

ディスクイメージ仕様

ディスクイメージファイルのフォーマット情報。

コマンド書式

エミュレーションやダンプ、リストア等のコマンド。

エミュレーターモード使用例(X68000編)

X68000でフロッピーディスクドライブエミュレータ使う。

エミュレーターモード使用例(FM77/PC88編)

FM77系やPC88系でフロッピーディスクドライブエミュレータを使う。

エミュレーターモード使用例(PC98編)

PC98系でフロッピーディスクドライブエミュレータを使う。

コントローラーモード使用例

X68000や他のフロッピーディスクドライブを制御してダンプやリストアを行います。

履歴


[EOF]