パッチコード→MSC用プラグイン変換例

※ここの変換方法は一例なので使い方は他にもある
※命令文の詳しい使い方は付属またはMSCの作者のページからダウンロードできるHELPを参照

※BSDにパッチコード機能が実装されたので、パッチコードをMSC用プラグインにする必要はなくなった。
※ただし通常書き込みコード以外は不具合があるらしく、8コードにいたっては使い物にならないらしい…




エンディアン方式

ENDIAN( BIG )
※PS3のエンディアン方式はビッグなので最初の行に記述する。
※リトルエンディアンの場合は何も記述しなくてもいい。


通常書き込みコード

8bit

パッチコード
0aaaaaaa 000000bb
MSC用プラグイン
MEMO( aaaaaaa, 1, bb )

16bit

パッチコード
1aaaaaaa 0000bbbb
MSC用プラグイン
MEMO( aaaaaaa, 2, bbbb )

32bit

パッチコード
2aaaaaaa bbbbbbbb
MSC用プラグイン
MEMO( aaaaaaa, 4, bbbbbbbb )


シリアルコード

パッチコード

4naaaaaa bbbbbbbb
4cccdddd eeeeeeee

MSC用プラグイン

&D[0] == aaaaaa
LOOP( ccc )
MEMO( &D[0] , n', bbbbbbbb )
&D[0] += dddd
NEXT

MSC用プラグイン(加算を使う場合)

&D[0] == aaaaaa
&D[1] == bbbbbbbb
LOOP( ccc )
MEMO( &D[0] , n', &D[1] )
&D[0] += dddd
&D[1] += eeeeeeee
NEXT

MSC用プラグイン(8bitのみ)

CONTINUE( aaaaaaaa, dddd, eeeeeeee, ccc, bb )
8bit  n=0 n'=1
 16bit n=1 n'=2
 32bit n=2 n'=4
※アドレスabの数値を書き込む。
cは書き込む回数で、dはアドレスの差分(+nh)
eは加算値(次のアドレスに行く度に、数値b+ehずつ加算していく)
※他にも繰り返し関数が存在するが、LOOP命令だと回数指定が分り易い。
CONTINUE命令8bit(1バイト)の場合のみ使用可能。


数値検索コード

ベースアドレス検索コード(8コード)

パッチコード
8ZZZXXXX HHIIJJKK
MSC用プラグイン
FIND( &D[0], KKJJIIHH, XXXX, ZZZ )
※&D[0]にベースアドレスが入る
ZZZ :数値を検索する回数
XXXX :検索する数値のサイズ(バイト単位)
HHIIJJKK(KKJJIIHH) :検索する数値
 MSCのFIND命令ではリトルエンディアンでの使用を前提としているようで数値は逆からの入力になる
 データがリトルエンディアンの場合は逆から入力する必要は無い


Excel VBA パッチコード→MSC用プラグイン形式 変換マクロ

※Excel2003で作成したVBAマクロ
※通常書き込みコード(0,1,2コード)とシリアルコード(4コード)のパッチコードをMSC用プラグイン形式に変換。
※シリアルコードはCONTINUE命令とLOOP命令の2タイプに変換可能。
 ただし加算がある場合はLOOP命令を使用すること。
※エラー処理はしていないのでパッチコードの形式には注意。


最終更新:2013年03月30日 22:30