BNE2とは
BNE2とはデータをテーブル化して表示することが出来るツールです。
固定長データ部分をテーブル化表示ができるで、ゲームデータの解析・改造などで利用されています。
イメージ画像
BNE2の配布場所である、
永久UnderConstruction より入手可能です。
動作環境として WinXPとなっていますが Win2000,Vistaでも動作するようです。
当環境 Win2000では動作、
CドライブにBNE2本体がある時にDドライブから読み込みなど、ドライブをまたいだファイルの読み込みでエラーが出ます
Vista(互換モードとかいろいろ試した)ではエラーが発生し動作させることができませんでした。
※配布さているバージョン0.02を元にページを作成しています。
下準備
BNE2を動作させるのに必要な拡張DLLファイルがあるので別途用意する必要があります。
実行ファイル内部でインポートされてる
リンクを確認すると以下の7個のファイルがあります。
MFC42.DLL |
MFC C++ランタイムライブラリ |
MSVCRT.DLL |
VC ランタイムライブラリ |
MSVCP60.DLL |
VC 等で使うライブラリ |
KERNEL32.DLL |
標準DLL |
USER32.DLL |
標準DLL |
GDI32.DLL |
標準DLL |
SHELL32.DLL |
標準DLL |
上表3つは別途用意する項目です。
C:\Winnt\system32 or C:\Windows\system32 以下にファイルがあれば問題ないかと思われます。
ファイルが無い場合
BNE2添付のReadme.txtには、
Vectorのところ から入手しろと記載あり。
基本的にDLL単体では配布を認められていないファイルだと思うので、単体でDLLだけ欲しい人はぐぐってください。ウイルス混入など取り扱いには注意が必要です。
該当のファイルを入手できたらsystem32以下にコピーするか、BEN2のフォルダに入れてください。
起動方法
BNE2をダウンロードし任意のフォルダに解凍します。
解凍したファイルの中にある BNE2.exe を実行します。
実行できれば以下のような画面が表示されます。
しかしこれでは起動しただけなので何もすることが出来ません。
設定ファイルが無い状態でファイルを読み込むとソフトが落ちます。
データテーブルを表示するには、個別に設定ファイルを用意する必要があります。
設定ファイル
BNE2を起動まで確認出来たら、設定ファイルを用意します。
設定ファイルは、簡単な記述で書けるテキスト情報なので、1から作ることができます。
※細かい設定情報は後ほど記載
拡張子 |
説明 |
ini |
設定ファイル |
idn |
設定ファイルの項目 or リスト |
設定ファイルを置くフォルダ・ファイル構成は以下の通り
[BNE2]
┗[settings]
┣[設定A]
┃ ┣ testA.ini
┃ ┗ testA.idn
┣[設定B]
┃ ┣ testB.ini
┃ ┗ testB.idn
┗[設定C]
┣ testC.ini
┗ testC.idn
設定A,B,Cフォルダは任意に管理しやすい名前でOKですが、
大きな区分をフォルダ名とする管理しやすいです。
設定ファイルの使用
BNE2を起動し、メニューの『その他』>『設定』を開きます。
[settings]フォルダ以下のフォルダが一覧で表示されます。
一覧が表示されない場合は[settings]フォルダ以下にフォルダがありません。
設定の選択タブより読み込みたいフォルダを選択してOKを押します。
ファイルの読み込み
設定ファイルを設定後、任意のファイルをBNE2の画面上にドラッグ&ドロップするか
メニューの『ファイル』>『開く』からファイルを選択します。
設定ファイルの詳細項目
設定ファイルである、iniファイル(以下ini)を編集することによって新たな項目を作ることができます。
またiniを追加した場合、同名のidnファイル(以下idn)を作成する必要があります。
縦項目はini、横項目がidnで管理されます。
ini、idnファイルがフォルダにあれば以下のようなテーブル情報になります。
サンプル
サンプル.ini
0,ini項目1 [改行]
1,ini項目2 [改行]
2,ini項目3 [改行]
(空白)
サンプル.idn
A [改行]
B [改行]
C [改行]
(空白)
サンプルの表
|
ini項目1 |
ini項目2 |
ini項目3 |
A |
|
|
|
B |
|
|
|
C |
|
|
|
またiniには細かく設定情報を記載できます。
区切りは 「,」(半角カンマ)です。
データアドレス(h),セクション名[,バイト数/ビット指定,ステップ(h),データ個数,表示,最小値(h)|最大値(h)/ビットフィルタ(h),セル幅,解説テキスト,IDNファイル/IDリスト]
[ ]部分は省略可能な項目です
readme.txt抜粋(「|」のところは実際は半角です)
データアドレス(h) |
表示するデータの先頭アドレス(16進数)です。 (※重複するアドレスに関しては後述) |
セクション名 |
グリッドの固定セルに表示するテキストです。 ここまで設定すれば、有効な設定と見なされます。 |
バイト数/ビット指定 |
データのバイト数を指定します。最大4バイトでデフォルトは1バイトです。 また先頭に「.」を指定すると読み込むビット(bit0~bit7のうち1つ)を指定できます。 ビット指定ではデフォルトで1バイトのみデータを読み込みます。 |
ステップ(h) |
ID間のアドレスの距離(16進数)を表します。デフォルトは↑のバイト数です。 「バイト数/ビット指定」でビット指定されている時、 「ステップ」もビットで指定することもできます(※後述)。 |
データ個数 |
表示するデータの個数を指定します。デフォルトはIDNファイルで定義されているID数です。 |
表示 |
セクションのデータ表示方法を指定します。 16進数の場合は「16」 符号付き10進数は「-10」 符号無し10進数は「10」 リスト表示は「0」(「IDNファイル/リスト」が指定されていないとデフォルトになります。) と指定してください。デフォルトは符号付き10進数です。 |
最小値|最大値/ビットフィルタ |
入力値の最小値と最大値、または入力値の有効なビットを指定できます。 デフォルトはありません。両方とも16進数で指定してください。 最小値、最大値は「最小値(h)|最大値(h)」、 ビットフィルタは先頭に「.」で指定してください。 「バイト数」でビット表示が指定されているとこの設定は無視されます。 また、最小値、最大値は「個数」を指定しないと関係無いデータにまで適用される可能性があるので (読み込みの時点では適用されないが、一度書き込むと適用され続ける。) 最小値、最大値を設定する場合、なるべく「個数」も厳密に指定してください。 |
セル幅 |
グリッド上で表示するセクションのセル幅を指定します。 デフォルト値は990ですが、セクション名の長さによって自動的に変化します。 |
解説テキスト |
グリッドの下部のテキストボックスに表示するためのテキストです。 改行は「\n」で表します。 |
IDNファイル/IDリスト |
「表示」でリスト表示を指定した時に表示する文字列です。 IDNファイルは「.idn」を含めたファイル名を指定してください。 リストは「値(h) 文字|値(h) 文字|・・・」のように指定してください。 値と文字の間に必ず半角スペースを入れてください。 また、文字の重複は認められません。 |
となっています。
その他情報などを記載します。
設定ファイルが無い、もしくは不正な設定のままファイルを開こうとすると落ちる。
iniファイルのみ有って idnが無い場合も落ちる。
ini,idnファイル両方ともある場合でも、idnが0byteの空データだと落ちる。
バイト/ビット指定
bit0~7 もしくは 1~4バイトまで
3を指定すれば3バイトでのデータ表示も出来ます(まず使わない)
表示
バイナリエディタ上でのデータサンプル
0F 0A FF ED
表示項目で16と設定し16進数をテーブル上で表示させた場合
リトルエンディアン方式の値となる
1バイト指定 |
0x0F |
2バイト指定 |
0x0A0F |
3バイト指定 |
0xFF0A0F |
4バイト指定 |
0xEDFF0A0F |
2バイト以上のデータをリスト表示させるには、このデータ方式に基づきリストを作成する必要があります。
ビットフィルタ
ビットフィルタは1バイトの中に複数ビットで管理されているデータを
フィルタをかけて表示する為に使います。
簡単に説明すると2進数の 1 になっている部分のみ表示します。
単体ビットであれば バイト/ビット指定で出来ます。
例えば
1バイト中、下位4ビットと上位4ビットで2つ管理
1バイト中、下位3ビット,中位2ビット,上位3ビットで3つ管理 など
下位4ビットの場合のフィルタは
2進数で 0000 1111 となり 16進数に直すと 0F になります。
ドットを付加して「.0F」をビットフィルタの項目に入力します。
この場合の数値は 0x00~0x0F になります。
上位4ビットの場合のフィルタは
2進数で 1111 0000 となり 16進数に直すと F0 になります。
ドットを付加して「.F0」をビットフィルタの項目に入力します。
実際に表示される値は 下位4ビットを省いた数値になるので
0x10,0x20,,,,,0xE0,0xF0のみの表示になります。
個別フラグ管理などはその値をリストなどで設定する必要があります。
下位3ビット、中位2ビット、上位3ビットの場合
|
2進数 |
16進数 |
下位3ビット |
0000 0111 |
07 |
中位2ビット |
0001 1000 |
18 |
上位3ビット |
1110 0000 |
E0 |
になります。
セル幅
セル幅の数値はPCの環境によって差がでるものと思われます。
数値の値を見る限りTwips(以下Twip)指定の値
Windows標準の解像度96dpiであれば 15twip = 1pixel(1ドット幅) になっているはず
個別設定する場合、15のn倍にしておけば大体問題ないでしょう。
以上
最終更新:2021年04月16日 00:26