Dump-X(ダンプ・エックス)
Dump-X.ps1 使用サンプル
Param( [System.IO.FileInfo] $File )
trap
{
break
}
#------------------------------------------------------------
# ライブラリ Dump-X の読み込み
# ライブラリ Dump-X の格納パス
# (自身と同じフォルダに Dump-X を格納)
$szPath = [System.IO.Path]::GetDirectoryName( $MyInvocation.MyCommand.Source )
# ライブラリ Dump-X の読み込み
. ($szPath + '\Dump-X.ps1')
#------------------------------------------------------------
# ファイル構造を定義
#
# C/C++ の構造体で表すと次のような構造を定義している。
#
# struct vertex
# {
# BYTE X;
# BYTE Y;
# BYTE Z;
# BYTE reserved;
# DWORD color[2];
# FLOAT tx;
# FLOAT ty;
# };
#
# struct square
# {
# vertex Square[4];
# };
#
# struct background
# {
# square BG1;
# square BG2;
# };
#
#
# 各要素の意味
#
# flag
# 次の値のいずれかを指定可能
# $F_NONE は何もしない
# $F_NOSEL は書き換え不許可
# name
# 要素名
# size
# この要素のサイズ。単位はバイトで 0 以上指定可能
# loop を参照
# loop
# 繰り返しの回数。size/loop の値によって次のようになる
# size loop subMember
# 1 0 無視 1 バイトの要素
# 1 2 無視 1 バイトの要素が 2 回続く
# 0 1 必須 subMember に指定した要素が 1 回続く
# 0 0 無視 区切り(値は保持しない)
# ※上記表の size と loop の値は、組み合わせとして最小値を示している
# subMember
# サブ要素
# loop を参照
# fnDisp
# 表示方法。省略すると 16 進数で表示
# 省略しないときは次の値を指定可能
# $DISP_I8 1 バイトの符号あり整数
# $DISP_I16 2 バイトの符号あり整数
# $DISP_I32 4 バイトの符号あり整数
# $DISP_I64 8 バイトの符号あり整数
# $DISP_U8 1 バイトの符号なし整数
# $DISP_U16 2 バイトの符号なし整数
# $DISP_U32 4 バイトの符号なし整数
# $DISP_U64 8 バイトの符号なし整数
# $DISP_F32 4 バイトの浮動小数点数
# $DISP_F64 8 バイトの浮動小数点数
#
# 次で定義する $square で使用する
$vertex =
@(
@{ flag=$F_NONE ; name='X' ; size=1; loop=0; subMember=$Null }
@{ flag=$F_NONE ; name='Y' ; size=1; loop=0; subMember=$Null }
@{ flag=$F_NONE ; name='Z' ; size=1; loop=0; subMember=$Null }
@{ flag=$F_NOSEL; name='reserved' ; size=1; loop=0; subMember=$Null }
@{ flag=$F_NONE ; name='color' ; size=4; loop=2; subMember=$Null }
@{ flag=$F_NONE ; name='tx' ; size=4; loop=0; subMember=$Null; fnDisp=$DISP_F32 }
@{ flag=$F_NONE ; name='ty' ; size=4; loop=0; subMember=$Null; fnDisp=$DISP_F32 }
)
# 次で定義する $background で使用する
$square =
@(
@{ flag=$F_NONE ; name= 'Square' ; size=0; loop=4; subMember=$vertex }
)
# 背景
$background =
@(
@{ flag=$F_NONE ; name='BG-1' ; size=0; loop=0; subMember=$square }
@{ flag=$F_NONE ; name='BG-2' ; size=0; loop=0; subMember=$square }
)
#------------------------------------------------------------
# 主処理
#------------------------------------------------------------
Dump-X-Core $background $File
Dump-X.ps1 使用サンプルの実行
次のファイルを D:\tmp に保存して実行したサンプル
- BootPS.js(PowerShell を起動するためのもの)
- Dump-X.ps1
- Dump-X-BG.ps1(上記サンプルを保存したもの)
- background.bin(ダンプ対象のファイル)