パッチコード→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
※アドレスaにbの数値を書き込む。
※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命令ではリトルエンディアンでの使用を前提としているようで数値は逆からの入力になる
データがリトルエンディアンの場合は逆から入力する必要は無い
※Excel2003で作成したVBAマクロ
※通常書き込みコード(0,1,2コード)とシリアルコード(4コード)のパッチコードをMSC用プラグイン形式に変換。
※シリアルコードはCONTINUE命令とLOOP命令の2タイプに変換可能。
ただし加算がある場合はLOOP命令を使用すること。
※エラー処理はしていないのでパッチコードの形式には注意。
最終更新:2013年03月30日 22:30