YStoolsは、TacticsのWin95用ゲーム「ONE〜輝く季節へ〜」(以下、ONE)、および 「MOON.RENEWAL」(以下、MOONR)のグラフィックデータの読み込み、また、 xvでの表示のサポートを行います。
FreeBSD2.2.8で動作を確認しています (4.4BSDなら動くんじゃないかな)。
ys_readコマンドを使用します。
% ys_read DAT_file [Data_number]
DAT_fileは、ONE/MOONRのデータファイル(Dat00)を指定します。 Data_numberで指定した番号のデータを標準出力に出力します。
Data_numberを省略すると、データファイルに含まれるデータ数を表示します。
データファイルには、JPEG,BMPおよび他の形式のデータ(シナリオ等?) が符号化して含まれているようです (JPEGファイルは暗号化、BMPファイルは圧縮してあります。他は調べていません)。 JPEGおよびBMPデータは復号化して出力しますが、 他の形式のファイルは何もせずに(データファイルに含まれているままの形式で) 出力します。
% ys_read DAT00 28 >tmp % xv tmp
xvは、外部フィルタを定義することによってxvが直接サポートしていないデータを 表示することができます(日本語化+機能拡張パッチで追加された機能かも知れません)。
ys_catalogは、データファイル内の各データにつきひとつのファイルを生成します。 各ファイルの中には、ys_catalogで生成されたことを示すシグネチャ、 データファイルのパス名、データファイル内でのデータ番号が書き込まれます。
このファイルをxvで表示するときは、そのファイル内に書かれたデータファイル、 データ番号のデータをys_readで読み、xvに渡すようにします。
ys_catalgの使用方法は次の通りです。
% ys_catalog DAT_file [filename_format]
filename_formatは、生成するファイル名のフォーマットを指定します。デフォルトは "ys%04d.ys" です。 (printf関数のフォーマット引数として使用され、パラメータとしてデータ番号が 使用されます。
生成されるファイルの中身は、次のようになります。
YS_DATA<データファイルへのフルパス> <データ番号>
DAT_fileが相対パス指定のときは、前にカレントディレクトリへのフルパスを付け、 フルパスにして書き込まれます。
このファイルをxvで開いたときに画像が表示されるようにするには、 xvの外部フィルタ定義ファイル(~/.xv_mgcsfxまたは/usr/local/lib/xv_mgcsfx)に 次の一行を加えます(xv_mgcsfx.sample)。
YS_DATA:magic:0:YS_DATA:.ys:AUTO:read sig file num <%s ; ys_read $file $num:
詳しくは、xvのドキュメントを参照してください。
本ソフト、ROYALPANDA、および工学研究部は、Tacticsとは無関係です。