================================================================ Graphic BETA-pattern & BFNT(+) Converter & Viewer "PATCONV" version 0.36 機能一覧 Copyright (C)1994-2000 G-HAL ================================================================ ★彡 概要 ベタパターン形式(水平型),BFNT(+) Rev.1.6(.BFT)形式(垂直型), PSX の ICON データ用のキャラクタ(グラフィック)ビューワー/コンバータです。 相互形式変換機能、及び、おまけの BFNT(+) のサイズ,色数の変換機能付きです。 ★☆ 動作環境 NEC PC-9801,PC-9821,互換機 CPU が V30 以上である事 MS-DOS ver3.3 以降 ◆メモリ LIM-EMS4.0, UMB 対応。 EMB(XMS),HMA,VCPI,DPMI,BMS には対応していません。 必要量の目安は、ベタパターンの場合データファイルの大きさ、 BFNT(+) の場合データファイルの倍の大きさ、となります。 ◆特殊な事 常駐パレット対応。 BFNT(+) 拡張ヘッダ対応。 透明色/透明プレーン/GRCG 対応。 ◆扱えるデータ 1キャラクタが 32KB を越える物は扱えません。 1キャラクタが 16KB を越える物は、扱えない事が有ります。 横幅が 1024 を越える物は扱えません。 また、640 を越える物は、正常に表示出来ません。 縦幅が 32768 を越える物は扱えません。 また、400 を越える物は、正常に表示出来ません。 BFNT+ では最大256色までしか扱えません。 ベタパターンでは最大9プレーンまでしか扱えません。 また、16色を越える物は、正常に表示出来ません。 BFNT(+) ヘッダ(含む拡張ヘッダ)サイズは 16KB 以下でなければ なりません。 扱えるデータサイズの限界は空きメモリの量に依存します。 しかしながら、128KB+ヘッダ より大きくはしない方が 良いと思われます。 # 他の BFNT(+) を扱うソフトの中に、暴走する物が有る為。 ★☆ 簡単な使い方 Z:\>PATCONV hoehoe.bft これだけで、hoehoe.bft を表示し、次の様な、諸般のデータを 表示します。 > 256 chars [ 0h-> FFh] SIZE( 32* 32) 5plane (透明色) ↑プレーン数 ↑x ↑y キャラクタサイズ ↑終了キャラクタコード ↑開始キャラクタコード ↑キャラクタ総数 開始/終了キャラクタコードは BFNT(+) 特有の情報なので、 ベタパターン形式の場合は、常に0が表示されます。 2^(プレーン数)が色数となりますが、透明色/透明プレーンを 使用している場合は、1プレーン多くなります。 透明色/透明プレーンを使用している場合は、最後に「(透明色)」と 表示されます。 この他にも、拡張ヘッダが存在すれば、その情報も表示します。 ★☆ 書式 PATCONV [HeadOptions] [SaveFileName] [TailOptions] [Options] には読込ファイル名を指定します。省略出来ません。 BFNT(+) 形式かベタパターンかは、BFNT(+)ヘッダにより自動判別します。 "/S*" オプションを使用した時は、[SaveFileName] を書いて 形式変換後の保存ファイル名を指定する事が出来ます。 ★☆ オプション ・オプションの区切りとして "/","-" を使うことが出来ます。 ・オプションは、大文字でも小文字でもかまいません。 ・数値に小数は使えません。 ・文字と数字の間は、符号を除き空けてはいけません。 ◆[HeadOptions] 主にベタパターン読込時に指定するオプションです。 先頭に書いて下さい。 ◇パターンXサイズ /Xn (n=8〜1024,8の倍数) ◇パターンYサイズ /Yn (n=1〜32768) ◇パターンプレーン数 /Pn (n=1〜9) ◇パターン色数 /PCn (n=2〜256) ベタパターン形式の読込時の、パターンのX幅(/Xn),Y幅(/Yn), プレーン数(/Pn)もしくは色数(/PCn)を指定します。 デフォルトでは "/X32 /Y32 /P4 /PC16" となっています。 "/Pn" と "/PCn" はどちらか片方だけ記述すれば、 もう一方は自動的に計算されます。 なお、BFNT(+) の読込時は、BFNT(+) ヘッダに書かれたサイズを 使用するので、指定する必要は有りません。 ◇透明プレーン /TP[C|G]n (n=1〜9) ◇透明色 /TCn (n=0〜255) ベタパターンでの透明プレーン,透明プレーンの種類、 BFNT+ で保存する時の透明色を指定します。 デフォルトでは透明プレーン無し、透明色指定 "/TC0" となっています。 データ操作を目的とした人しか使わないオプションでしょう。 詳細は「仕様,規格」の章で説明します。 ◇読込データ形式 /L[P|B|M|I] 読み込むデータの形式を指定します。 "/LI" を指定すると、PSX-icon 形式として読み込みます。 他の形式は自動判別する為、指定しても無意味です。 ◆[TailOptions] データ操作を目的とした人しか使わないオプションでしょう。 コマンドラインの最後尾に書いて下さい。 「仕様,規格」の章でいくらか詳しい説明をしています。 ◇保存 /S[P|B|I] 読み込んだデータを変換,保存する事を指定します。 "/SP" ではベタパターン形式,"/SB" では BFNT(+)形式, "/SI" では PSX-icon 形式,で保存します。 省略した場合は、読み込んだデータがベタパターン形式ならば BFT(+) 形式で、それ以外ならばベタパターン形式で保存します。 [SaveFileName] を指定しなかった場合、 で指定した ファイル名に、拡張子 ".PAT"(ベタパターン)/".BFT"(BFNT(+)) /".ICN"(PSX-icon)を、形式に応じて付加します。 ◇フォント名 /F BFNT(+)にて保存する時のフォント名を8文字以内で指定します。 省略すると、読込ファイル名となります。 ◇拡張フォント名 /E BFNT(+)にて保存する時の拡張フォント名を文字数無制限で指定します。 省略すると、付加しません。 ◇作成者 /U<+|-> BFNT(+)にて保存する時の作者名を付加するか否か、指定します。 "/U+" とすると、環境変数:USER の中身を作者名として付加します。 環境変数:USER が存在しなければ、付加しません。 省略すると、環境変数:USER が存在するならば、その内容を付加し、 無ければ付加しません。 ◇コメントファイル名 /C BFNT(+)にて保存する時のコメントの内容を書いたファイルを指定します。 省略すると、付加しません。 ◆[Options] ビューワーとして使う時の、主なオプションです。 どこに書いても平気です。拡張子連動に使うのならば、 先頭に書くのが楽でしょう。 ◇基点座標 /Ox,y (x=0〜632 8の倍数,y=0〜399) 表示する左上の座標を指定します。なお、右端にはみ出た場合、 左端に折り返して表示する事が有ります。 デフォルトで "/O0,0" となっています。 ◇表示X幅 /VXn (n=8〜640,8の倍数) ◇表示Y幅 /VYn (n=1〜400) 画面上に表示する横幅(/VXn),縦幅(/VYn)を指定します。 デフォルトで "/VX256 /VY256" の、gajet,cedit 互換になっています。 なお、パターンXサイズ "/Xn" ,表示X幅 "/VXn" が、 共に 320 以下である場合、画面を横に2分割して表示します。 "/Ox,y /VXn /VYn" にて、画面内に表示出来ないような指定をした場合、 何も表示されない事が有ります。 ◇事前画面消去 /C このオプションを指定すると、キャラクタビューの前に、 画面を消去します。 ◇終了後輝度 /Vn 表示終了後の輝度を指定します。 デフォルトでは /V50 となっています。 ◇キー待ち /K このオプションを指定すると、1画面内に表示しきれない場合や 画面表示後に、テキスト画面を消して、適当なキーが押されるのを待ちます。 "ESC" を押すと途中終了、"SPC" で画面消去して続行、 それ以外のキーで画面消去しないで続行します。 ◇無口 /V このオプションを指定すると、無口になります。 ◇案内表示 /? オプションの簡単な案内です。 ★☆ 仕様,規格 ビューワーとして使う場合の仕様,規格は動作環境の章を見て下さい。 この章では、データ操作を目的とした人向けの事が書かれています。 ◆BFNT(+) への対応 BFNT(+) Rev.1.6 の以下の拡張ヘッダに対応しています。 ・x00 拡張フォント名(可変長) ・x03 作成者(可変長) ・x10 透明色パレット指定(3バイト固定) ・x3f コメント(可変長) BFNT(+) を読み込み、"/SB" にて BFNT(+) で保存しようとした際に、 /F, /E, /C の各オプションを指定せず、かつ、読み込んだファイルに 各拡張ヘッダの記述が有った場合、そのまま透過させます。 上記以外のIDに遭遇した場合、そのまま透過させます。 なお、BFNT(+) 以外から読み込んだ場合、BFNT(+) ヘッダの作成日には、 読込ファイルのタイムスタンプを使用します。 BFNT+ にて、8色/32色/64色/128色の場合、未使用ビットには 0を詰めます。入力ファイルで1が詰まっていたりすると、 入力と出力に違いが出ます。 ◆引数の順序 引数は記述された順に実行されます。 したがって、横32ドットの DEEP.BFT というデータが有った場合、 Z:\>PATCONV /X16 DEEP.BFT と書くと、横16ドットで初期化した後に、DEEP.BFT を読み込むので、 左側16ドットのみ切り取った形になり、 Z:\>PATCONV /X64 DEEP.BFT と書くと、横64ドットで初期化した後に、32ドット分読み込むので、 右側32ドットが空白となります。 しかしながら、 Z:\>PATCONV DEEP.BFT /X16 と書くと、DEEP.BFT のヘッダで指定された横32ドットで初期化,読み込み、 その後、横16ドットであると仮定して表示するので、変になります。 [TailOptions] はファイルを読み込んだ際に、ファイルの内容で 上書きしてしまいます。したがって最後尾に書かなくてはなりません。 実際のところ、/S 以外の /F, /E, /U, /C の各オプションは、 上書きしない様にしているので、どこに書いても平気だったりしますが。 ◆BFNT(+) のサイズ,色数の変換方法 上記の、引数が記述された順番に実行される事を利用して、 BFNT(+) のファイル名の前に、"/Xn /Yn /Pn /TPn" を記述すれば、 サイズ,色数を変換出来ます。この時、出力も BFNT(+) にしたい場合は、 TailOption の "/SB" も忘れずに指定して下さい。 なお、縮小,減色した場合、はみ出した部分,はみ出した色のビットは 切り捨てられます。また、ベタパターンではファイル中にサイズ,色数の データが無いので、変換出来ません。 16色以下の透明色付きから、256色の透明色付きに変換する場合、 "/TPn" を指定しないか "/TP9" を指定すると、透明色が色0 に変換され、 ベタパターン形式で出力した時には透明プレーンが無くなってしまいます。 "/TPn" で 1〜8 を指定するか、透明色0 の BFNT+ 出力であきらめるか、 「"/P6 /TCn" で 32色透明色付き BFNT+ に変換」 →「256色透明色付き BFNT+ や、"/TP9" のベタパターンに変換」 の様に2段階経るか、して下さい。 32色以上からの変換ならば、問題有りません。 # 16色以下なのに9プレーン対応にするのが面倒だったんですぅ(^^;。 また、何段階か経る事で、ベタパターンの透明プレーンを違うプレーンに 移動させる事も可能です。かなり面倒ですが(^^;;。 例えば、5(4+透明)プレーンで、1プレーンが透明プレーンの物を、 5プレーンを透明プレーンにするには、 「"/P5" で 32色 BFNT+ 透明色無しに変換」 →「"/P6" で6プレーンのベタパターンに変換」 →「"/P6 /TP1 /TC17" で 32色 BFNT+ 透明色付きに変換」 →「"/P5 /TP5" でベタパターンに変換」 となります(本当に合ってるかな(^^;;;)。 1色つぶしても良いならば、わざわざ6プレーンにする必要はなく、 「"/P5 /TP1 /TCn" で 16色 BFNT+ 透明色付きに変換」 →「"/P5 /TP5" でベタパターンに変換」 で済みます。 ◆透明色/透明プレーン 透明色/透明プレーンはスプライトキャラクタの為の機能です。 BFNT+ には透明プレーンは存在せず、透明色にて扱います。 ベタパターンには透明色は存在せず、透明プレーンにて扱います。 透明色を使った BFNT(+) を読み込むと、ベタパターン形式で 1プレーン増えます。例えば、16色ならば、5プレーンとなります。 逆に、BFNT(+) では透明色の分、1色減ります。 透明プレーンの内容ですが、"/TPC" を指定した場合は、 背景が見える所が1,キャラクタで隠される所が0となります。 つまるところ、透明プレーンのデータで G-VRAM に AND をかけてから、 その他のプレーンのデータで G-VRAM に OR をかけるとうまい具合に行きます。 "/TPG" を指定した場合は、キャラクタで隠される所が1, 背景が見える所が0となります。その他のプレーンのデータを GRCG に 出力してから、透明プレーンのデータを G-VRAM に書いてやれば、OK〜っす。 EGC の場合は、ROP の指定でどうとでもなるので、 好きな方にすればいいでしょう。 # 元々↑を出来る様にしたくて、作ったのだから。X68 だったら以下略 BFNT+ の読込時は、BFNT(+) 拡張ヘッダに書かれた透明色を使用します。 透明色が存在する時に透明プレーン指定 "/TPn" が無ければ、 自動的に透明プレーンが作られ、一番最後のプレーンが 透明プレーンに割り当てられます。 この時、"/TPC" が指定されていると CPU 処理用の透明プレーンを, "/TPG" が指定されていると GRCG 処理用の透明プレーンを作成します。 どちらも指定されていない場合、GRCG 処理用の透明プレーンを作成します。 例えば 0h の色が透明色である、16色の BFNT(+) を "/TPG2" と指定して 読み込んだならば、透明色である 0h(0000b) の色は 00h(00000b) に変換され、 透明色ではない 8h(1000b) の色は 10h(10010b) の色に変換されます。 LSB から 2bit目が増えているのが判るでしょうか(^^;。 同様に、"/TPn" 指定無しのデフォルトでは、最後のプレーンが GRCG 用透明プレーンになり、透明色 0h(0000b) → 00h(00000b), 非透明色 8h(1000b) → 18h(11000b) となります。 ベタパターンを読み込む時に、透明プレーンが存在するならば、 "/TPn" にて指定しなければなりません。指定しないと色数が狂います。 "/TPn" を指定をした時に、透明色指定 "/TCn" が無ければ、"/TC0" が 指定されたものとみなします。 なお、ベタパターンを読み込む時は、透明プレーンの種類の変更は出来ません。 BFNT+ で保存する時は、透明プレーンは詰められます。 この時、"/TPC" が指定されていると CPU 処理用の透明プレーン, "/TPG" が指定されていると GRCG 処理用の透明プレーンであると判断します。 どちらも指定されていない場合、GRCG 処理用の透明プレーンであるとみなします。 例えば5プレーンのデータを "/TPG2" と指定して BFNT(+) で保存したならば、 透明プレーンが0の 00h(00000b) の色は透明色 "/TCn" で指定した色に変換され、 透明プレーンが1の 02h(00010b) の色は 0h(0000b) の色に変換されます。 LSB から 2bit目が詰まっているのが判るでしょうか(^^;。 内部ではベタパターン形式で扱っている都合上、BFNT(+) を読み込んで、 BFNT(+) で保存した場合、上記の両方の過程を経ます。 読み込んだ BFNT(+) に複数の透明色が有った場合、保存した時に透明色は 1色だけにされますので、入力と出力に違いがでます。 ◆PSX-icon への対応 Playstation MemoryCard の ICON のデータが、BFT+ の展開ルーチンを流用して 展開出来るので、取り敢えず対応させてみました。ちなみに、鮪の第2次展開も、 同じ展開ルーチンを流用しています。 # Armored Core のエンブレムのデータ形式が、この形式だったから、 # 対応させた、とも言う。 ただし、PSX-icon 形式は(32768色+透明色)から 16色を使用する様に なっていますが、ベタパターン形式と画面表示の際は(4096色+透明色)から 16色を使用する為、画面表示の際や、ベタパターンとの形式変換を行うと、 色が若干変わってしまいます。 ★☆ 備考,注意 ☆厳守事項,及び権利 このプログラム一式はフリーウェアです。 著作権は G-HAL が保有しているので、PDSと呼ぶ事を禁止します。 このプログラムによって何が起きても、私達は責任を取りません。 このプログラム一式を配布を目的として許可無く改変しないで下さい。 BFNT(+) は noe. 氏により考案されたものです。 MAGフォーマットは、まきちゃんNETにおいて開発されたものです。 ベタ形式は誰に聞くまでもなく誰でも思い付く規格です。 LHA/-lh5- は H.Yoshizaki 氏により開発されたものであり、 氏が著作権を保持しています。 各フォーマットの使用は自由となっていますが、フォーマットそのものの 著作権は各氏が持っていると思います。 ☆お願い 感想、要望、バグ、苦情、などありましたら作者へ知らせて下さい。 ドキュメントやプログラムの無断改変などの悪質ないたずらはやめましょう。 ☆転載について PDSなどと呼んでいる RBBS や BBS などへの転載は禁止します。 @FWD や @MO などの 転送系RBBS(BBS) への転載は禁止します。 ローカルな所へ転載した時、作者に連絡して下さるとうれしいです。 全国的な所へ転載、掲載などするときは必ず事前に許可を取って下さい。 転載、掲載する場合、アーカイブの内容を変更してはいけません。 また、ファイルを個別に転載、掲載しないで下さい。 営利目的の販売等は禁止します。 ☆動作に関して 内部ではベタパターン(水平)形式で扱っています。 BFNT(+) ヘッダサイズが 16KB を越えていると落ちます。(^^; 常駐パレットに変な値があると、エラー吐いて落ちます。(^^;; /Ox,y /VXn /VYn あたりで、変な値を指定すると、G-VRAM の 401line を 破壊します。(^^;;; ☆専門的な注意 グラフィック画面や、パレットモードやパレットなどを変更しています。 MS-DOS の非公開ファンクションコールを使っています(52h Get First MCB)。 初期設定で Graphic BIOS を呼んでいます。 プロテクトモードでは動きません。リアル/仮想86モードにして下さい。 EMS は物理ページが4ページで,1ページが 16KB,かつ 64KB 連続した物 のみ、対応しています。それ以外の場合は、EMS を使用しません。 なお、EMS を使用していた場合に FORCE をかけると、コアが残ります。 EMS 操作が出来るツールが無いと泣きが入りますよん。 ★☆ 終わりに ☆だれかおせーて。 BFNT(+) だけれど……、Bio_100% などの BFNT(+) を扱っているソフトで、 複数のキャラクタを引っ付けて大きくしているキャラクタが有るけれど、 どういう関係で引っ付けているのかって、どうやって保存しているんでしょ。 横2つだったり、縦2つだったり、縦横計4つだったりいろいろあるけれど。 やっぱり、プログラム内に直接書いてあるのかなぁ。 ☆彡作者の戯れ言 開発環境 PC-9821Cs2s2 memory 20.6M bytes(protect) IDE 170MB + SCSI 1GB PC-9801VM0 memory 4096K bytes(I/O bank) FDD*4 PC-9801VX21 memory 8192K bytes(I/O bank) SASI 40MB,CPU:486SLC PC-486NAU2 memory 11.6M bytes(protect) IDE 340MB 2,8,16色 BFNT(+) ビューワーとしては速い方だと思います。 2,8,16色のみ特化しているので。それ以外の色数だと遅いです。 しかしながら、team で同サイズの鮪を見た時より2〜3倍、 mag と比べても2割増し位、遅いです(;_;。 さて、予定の次回作は本当に完成するのでしょうか。既に自分でも 疑っています。(ゥ;) それに、こんなもの書いても、誰も読まないのに……。 そもそも、BFNT(+)を扱うライブラリ(MASTER.lib)が SHAREWARE だったから、 自分でライブラリ作って、デバッグに作っただけなのだから……。自分で作った ヘボヘボキャラエディタより CEDIT の方を使いたかったのも有るけれど。 しっかし参考資料のタイムスタンプが悲しい。全て5年以上前ではないか(;_;。 おまけに 98 や X68 や FX-GA も過去の遺物となってるし……(黄昏モード)。 とりあえず、MACROSS 15th anniversary & GUNDAM 20th anniv.。 でも見応えのあるそっち方面の番組が全くない(;_;。 某decoder は無いから見られないし、CATV 無いし、LD 無いし。 取り敢えず、はみ刑事。激熱いっすよ〜。 /// Sun,19 Apr,1998 /// ★☆ 参考資料 《BFNT+データフォーマット仕様書 Rev.1.6》 written by noe. Nov.16,1992 LHA ver.2.11 ソースファイル集 Copyright (c) H.Yoshizaki(吉崎栄泰), 1988-91 #### まぐろーだー仕様書・非売品 #### - MAKIchan Graphic loader is not 鮪だ! - By Woody RINN (MAKIchanNET #03) 1991/03/19(MAGBIBLE), 1991/03/26(正誤表01) プレイステーション・PAD/メモリ・インターフェースの解析 Nifty−ID:HFB03536 藤田 96/ 2/10 『PC-9801VF2/VM0/VM2 ユーザーズマニュアル』 (1985) NEC 『Vシリーズ 30/20入門』 (1985/ 8/10) 多田 昭一郎 秀和システムトレーディング株式会社 『PC-9801 解析マニュアル[第0巻]』 (1983/ 6/30) 川村清 秀和システムトレーディング 『応用MS−DOS 改訂新版』 (1986/ 7/31,1990/ 6/11) 村瀬康治 アスキー出版局 『MS-DOS 5 アセンブラ・プログラミング』 (1992/10/21) 桜田 幸嗣 アスキー出版局 その他、いろいろ ★☆ 連絡先 FENIX FEN025 G-HAL --- G-HAL --- /// Mon,10 Jan,2000 ///