        〜256色のビットマップ画像からBGパターンを抽出してマップ化する〜
                                            Ver1.2 Programmed by.ＧＴＮ

☆はじめに
  このプログラムは、256色の任意のBMPファイルから、X68000で使えるBGの
パターン定義を抽出し、BGのマップデータを作り出すものです。

  X680x0で256x256の解像度の画面モードを使う場合、BGは8x8ドットの
パターンを並べることで、全体のデザインを構成します。BGに絵を描く際は、
スプライトの定義領域にBGのチップのパターンを定義し、それをメッシュ状に
並べる流れで作ることが多いです。BGを使った背景データの作成は、GRP画面の
ように自由に絵が描けるわけではないので、効率よく作り上げるには
慣れが必要です。
  本ツールでは、グラフィック画面と同様に自由描いた画像から8x8ドットの
パターンを抽出し、それを並べたマップを自動的に生成します。これにより、
BGによる背景の作成の難易度を下げることができます。


☆実行方法
  BMPtoBGMAP.exe を実行してください。


☆使用方法
  256色のビットマップ画像を用意して、ソースBMPにそのファイルを指定します。
（サンプル画像として、アーカイブには background.bmp を同梱しています）
ビットマップ画像のサイズは、縦横それぞれ8の倍数になる値にしてください。

  ビットマップ画像を読み込んだあと、出力先のディレクトリのパスと
出力するファイルのファイル名を指定し、変換ボタンを押します。
変換ボタンを押すと、次のファイルが指定した出力ディレクトリに生成されます。

【入力】
       ソースBMP：BGのパターンに変換する画像を指定します。
                  16色もしくは256のインデックスカラーのビットマップである
                  必要があります。
   プリセットBMP：出力先のチップマップのBMPに事前に読み込むBMPを指定します。
                  既存のパターンの場合はそのコードを使います。
  パターンOffset：新たなパターンを発見したときに、パターンとして定義を追加する
                  先のコード番号を指定します。プリセットBMPがある場合は、
                  プリセットのコード番号に続くコード番号を指定します。
         足場CSV：足場や壁に相当する箇所を示すBGのコードをCSV形式で指定します。
                  [コード番号]:[足場タイプ] の形式で記述します。
                  足場タイプには1から255までの任意の値を指定できます。
       出力先Dir：「変換して保存」のボタンを押すと、複数のファイルが生成されます。
                  複数あるファイルの出力先にするフォルダを指定します。
  出力ファイル名：複数ある出力ファイルの主ファイル名を指定します。
パレットブロック：既存チップマップか否かを判定するのにパレットブロックも含めます。
の一致も判定条件
に含める


【出力ファイル】
        *.bmp：生成した8x8のBGパターン定義。別ツールspconv.exeで
               SPファイルに変換することができます。
        *.mdt：BGのマップデータ。X68000のメモリマップ上に置くのと同じ形式で
               出力されます。画像サイズが512x512ドット（64x64サイズのメッシュ）
               の場合は、$EBC000 もしくは $EBE000 にベタ読み込みすることが
               できます。
        *.log：出力データに関する情報が記録されます。
               定義パターン数は256を超えると、X68000のBG定義領域に収まらなく
               なります。その場合は警告が出力されます。
   *_code.bmp：画像ファイルの、どの位置がどのコードかを示すマップ情報。
               画像のどの位置がどのコード番号を確認できます。
               “足場CSV”にコード番号（16進）をCSV形式で列挙しておくと、
               そのコードのチップは赤い枠で印がつきます。
    *_def.bmp：変換したSP定義の、どの位置がどのコードかを示すマップ情報。
               BGの定義上で、コード番号を確認できます。
        *.pwm：パラレルワールドマップの足場データ。
               BGのマップデータと同じ並びで、足場タイプの値が記録された
               マップデータです。BYTE型の配列として記録されます。
 *_pworld.csv：パラレルワールドマップの出力結果の確認用CSVファイルです。

【mdtファイルについて】
*.mdt ファイルは、C言語では次の構造体（共用体）で取り扱える値が
列挙されています。ビッグエンディアンのデータ形式で出力されます。
    ==========================================
    typedef struct BG_DEF_UNIT
    {
        union
        {
            unsigned short mixed;
            struct
            {
                unsigned v_rev : 1;
                unsigned h_rev : 1;
                unsigned dummy : 2;
                unsigned color : 4;
                unsigned code : 8;
            } bit;
        } code;
    } BG_DEF_UNIT;
    ==========================================


☆著作権など
  ・このプログラムはフリーウェアとします。著作権は放棄しません。
  ・このプログラムは、アーカイブの内容を変更しない限り、無償でのみ再配布を
    許諾します。
  ・このプログラムの使用による、いかなる損害にも作者は関知しません。
    使用は個人の責任において行ってください。


☆更新履歴
2024.03.06 Ver1.0  公開
2025.10.19 Ver1.1  不具合修正版を公開
