前の記事にも少し書きましたが、X68000で普通に使っていたMOは、WindowsでもMacでもファイルシステムとして認識してくれません。これによって、過去にX68000で作成した資産を継承できませんし、むかし遊んでたゲームをX68000Zで楽しむこともできません。
なお、ファイルシステムとして認識しないとはいえ、セクタ単位での読み出しはできます。だからディスクイメージを取り出すことはできます。あとは、このイメージをファイルシステムとして認識してくれるナニカがあれば良いだけなのです。でも、どうやらそんな都合の良いものは無さそうなのです。でもね、無いものは作ってしまえ!! なのがX68000ユーザです。ということで、作りました。
↑ (追記) DiskExplorer というのを使うと、X68000のMOも読めるみたいです。別に作らなくてもよかった。(苦笑)
http://toriyu.jp/hitorigoto/convertX68kMO001.zip
- convertX68kMO
- X68000で普通にフォーマットしたMO(のイメージ)からデータをサルベージする
えーと、イマドキのモダンな言語で書ければ良かったのですが、いかんせん使い方がわかんないので、普通にC言語で書きました。動作環境としてはMacOSのコマンドラインを想定しています。特定の処理系に依存するような記述はしていないつもりなので、コンパイルエラーさえでないように修正すれば、WindowsやLinuxでも動くのかもしれません。
使い方はこんな感じです。
この例では、hoge というディレクトリが作成され、その下にMOに格納されているファイルが配置されます。文字コードはX68000のファイルがSJISであると決め打ちして、SJISからUTF-8に変換して保存します。
以下はここらへんの操作に明るくないひと用に手順を細かく書いたものです。上の説明でわかる人は読まなくても良いと思います。
こんな感じのダイアログが出ますが、「無視」を選んで続行します。ファイルシステムとしては使えませんが、/dev/ 下にはマウントされているので、デバイスとしては普通に使えます。
どこにマウントされているかを示すのがこの画面です。ディスクユーティリティーを起動して MO デバイスを選び、「装置」欄に記載されている項目を /dev/・・・ でアクセスすれば読めます。この図では disk4 ですね。
sudo dd if=/dev/disk4 of=hoge.dmp bs=1m count=128
上記コマンドを実行してカレントディレクトリに hoge.dmp というイメージファイルを作成します。この例では 1MBずつ128回読み込むので、128MBのイメージができます。
下記のコマンドを実行してイメージファイルをカレントディレクトリに展開します
./convertX68kMO hoge.dmp
実行ファイルは zip ファイルの中に格納済みのものか、convertX68kMO.c をコンパイルしてできるものを使用してください。
本来ならメディアから情報を読み込んで「セクタあたりのバイト数」「クラスタあたりのセクタ数」「先頭クラスタの位置」「FATの位置」なんかを計算して動作すべきなんでしょうが、使える資料が「過去に実機で作成したMO」だけでして、当時は128MB用ドライブしか持っていませんでしたので、このプログラムは128MB専用となっています。
うまく展開できた場合は、Finder や Explorer で閲覧可能なフォルダ/ファイルが出来上がります。
我が家のX68000が現役の時は「プログラミングで遊ぶ」以外にも「ゲームで遊ぶ」のに使いまくってたので、うちのMOにはゲームがたくさんあります。ゲームする時は拙作の 2HDboot をよく使ってたので、MOにはフロッピーディスクをイメージ化したファイルがそのまま保管されています。"Virtual Floppy Image Converter" を使えば、そのイメージファイルを X68000Z で使うこともできます。
てことで、久しぶりに我が家にやってきた X68000 で遊びまくっています。いーくぽーーん。