コードサーチ系


アイテム解析(F11キーで実行)
倉庫の一番上にあるアイテムをコード化

080Eを0E92にすると
ギルカではなくショトカットのF1を使えます。


[使用方法]
倉庫の一番上のに解析したいアイテムを置き
F11キーを押して下さい。
結果のアイテムのコードが
ギルドカードのコメントに書き込まれます。
コードはギルカでアイテム作成と同じです。
なお、F11のショートカットメッセージは使えなくなります。
※ギルドカードのコメントが空の場合正しく動作しません。
あらかじめ何か記入しておいてください。

偶然できて作成方法が解らない
アイテムのコードを求めることが可能
13B7D9B5
40707044
1C24DC4F
8C006000
0300001E
AC006000
2F462F56
D31A4F22
62336332
330C902D
320C902C
0009B00A
72FCB008
0009B006
0009B004
64F64F26
65F6000B
E1044F22
71FFB007
211872FF
E0008BFA
000B4F26
4F222300
45096520
4509B005
6520B003
000B4F26
E00F0009
E00A2509
8B003503
75307507
000B2350
080E7301
0000025F
8C4E5F84
05010044
00010044
00000001
ギルカでアイテム変化(F12キーで実行)
アイテムをギルカで作成との違いは、
F12キーを押すとアイテムが変化する点です

080Eを0E92にするとギルカではなくショトカットのF1を使えます。

[使用方法]
まず、倉庫の一番上に変化させるアイテムを置いてください。

次に、自分のギルカのコメント部分にアイテムコードを書きます。
(大文字小文字の区別なし)


NAH60 エッグブラスター+99
000000003C013C023C05000063001C00

F12キーを押すと倉庫の一番上のアイテムが変化します。

なお、F12のショートカットメッセージは使えなくなります。


[最後に]
XTの入れ替え無しで色々作成確認ができますので、
未発見アイテム探しが楽になるかと思います。
13B7DAB5
40707044
1C54DC4F
8C006100
03000022
AC006100
2F462F56
D31E4F22
61336332
330C9036
301C9035
E204B011
B00E1045
1043E204
E204B00B
B0081042
1041E204
E204B005
4F262041
000B64F6
4F2265F6
B009E100
61F62F16
214B4118
222872FF
4F268BF7
6413000B
B00A4F22
61436530
B0067301
73016530
41084108
000B4F26
E440241B
89002548
E40F7509
2459000B
0248080E
8C4E5F84
05010044
00010044
00000001
アイテム解析+作成

アイテム解析(F11キーで実行)
ギルカでアイテム変化(F12キーで実行)

使用法は上記と同じです
13B7C175
40707044
1C24DC4F
8C006000
1C54DC4F
8C006074
0300003F
AC006000
2F462F56
D31A4F22
62336332
330C902D
320C902C
0009B00A
72FCB008
0009B006
0009B004
64F64F26
65F6000B
E1044F22
71FFB007
211872FF
E0008BFA
000B4F26
4F222300
45096520
4509B005
6520B003
000B4F26
E00F0009
E00A2509
8B003503
75307507
000B2350
080E7301
0000025F
8C4E5F84
2F462F56
D31E4F22
61336332
330C9036
301C9035
E204B011
B00E1045
1043E204
E204B00B
B0081042
1041E204
E204B005
4F262041
000B64F6
4F2265F6
B009E100
61F62F16
214B4118
222872FF
4F268BF7
6413000B
B00A4F22
61436530
B0067301
73016530
41084108
000B4F26
E440241B
89002548
E40F7509
2459000B
0248080E
8C4E5F84
05010044
00010044
00000001
任意アドレスを読み出す
XXXXXX = 任意のアドレスを指定
*あらかじめキャラの手持ちメセタを0にして下さい*


ワードの場合は、以下のように変更する
6000D007 > 6001D007
D0032100 > D0032101


任意のアドレスの数値をバイト長で取得し
結果をメセタに反映します。
コードをオンにしゲームを始めると、
手持ちのメセタとして結果がでます。
メセタは10進数で表示されます。

この数値を利用するには、
ほとんどの場合16進数へ数値を変換する必要があります。
0E14ADCC
0001002C
1C24D797
8C006000
1484D086
6000D007
1494D086
6112D104
14A4D086
312C9204
14B4D086
D0032100
14C4D086
0009402B
14D4D086
0000036C
14E4D086
8C4E5F80
14F4D086
8C011ECC
1404D086
8cxxxxxx 
アドレスを実際に読み出してみよう

マグステータス関連を読み出して見ます
ワードかバイトかというのは、一目見ただけではわかりにくいので、
ワードとバイトの二通りをやってみるとよいでしょう。

ちなみにマグステータスはワードなので、
ワードを読み出すように設定してマグステータスを見てみましょう。

必要なのはマグステータスのアドレスです
餌でPOW1UPのコードは右に記載しました
13B7D035
40707044
12641884
0000EE64

アドレスは「12641884」ということがわかります。
このアドレスは暗号化されているので、元の状態に戻します(複合化)
このアドレスを複合化すると「012069B8」という数値になります
この数値を任意アドレスを読み出すコードへ入力してやります。
先頭の01を省いた2069B8xxxxxxへ入力しコードをオンにします。

町へ降り、手持ちのメセタを確認します。
所持金は28243になっているはずです。
この数値は10進数なので16進数に変換します。
28243 → 16進数へ変換 → 6E53

マグステータスのアドレスの数値は6E53だということがわかりました

この数値はHPのコードでは「えさあげるとLv1UP」で利用されています。



サーチコードVer2.1
13B7D9B5
40707044
1C24D797
8C006000
1484D086
6112D11A
1494D086
310C902B
14A4D086
D1166212
14B4D086
6112312C
14C4D086
310C9027
14D4D086
9323E200
14E4D086
89183320
14F4D086
2F162F26
1404D086
D213D314
1414D086
60102F36
1424D086
33006320
1434D086
8B0663F6
1444D086
233873FF
1454D086
71018909
1464D086
AFF37201
1474D086
61F60009
1584D086
720162F6
1594D086
AFE67101
15A4D086
61F60009
15B4D086
D10762F6
15C4D086
90046112
15D4D086
2122310C
15E4D086
432BD303
15F4D086
036C0009
1504D086
0000FFFF
1514D086
8C4E5F80 <<ベースポインタの基点
1524D086
8C011ECC
1534D086
8C4E5F80
1544D086
8C006078
1554D086
XXXXXXXX <<検索データ列の長さをバイト数で指定します
1564D086
YYYYYYYY <<ここ以降に検索するデータを書いておきます


具体例

ショートカットのメッセージカーソルを探してみよう

--下準備--

コードをオンにする前に、
手持ちのメセタを0にしましょう。(倉庫にはある程度メセタがあるといいかも)
**間違えると確実にフリーズします**


ショートカットメッセージカーソル上を適当な文字列を設定します
今回は
FEDCBA
で行いました。(他のデータにありそうなものは避けておくと良いでしょう)


--下準備完了--


次にコードを設定します
ショートカットに入れた文字列はFEDCBAの6文字でしたね
(ASCIIでは16進で46 45 44 43 42 41)

1554D086
00000006 <<検索データ列の長さは6バイトなので6を入力
1564D086
43444546 <<文字列をASCIIコードで設定
1574D086
00004142 <<データが長いのでコードを追加して入力します


そして、マスターコードと合わせてONにしてPSOを起動

キャラクターをロードすると検索結果が手持ちメセタに表示されます

私の場合

65535メセタ(検索打ち切り値)なので検索できていないという結果になりました
これ以外にも比較的大きい値が出ることがありますが
その場合もベースポインタが違う可能性が大きいです。


ベースポインタの位置の変更しての再検索してみましょう
65535メセタを手持ちに所持していますが、
手持ちメセタを「4」にしてセーブをして終了後、再度ゲームを始めます。


これでベースポインタは
ベースポインタの基点である
8C4E5F80に4を加算したことになります

つまり
8C4E5F80 + 4 = 8C4E5F84 となり

再度ゲームを始めたときには

8C4E5F80から8C4E5F84に基点のベースポインタが変化した事になります

私の場合
3222メセタとなりました
これは16進でC96となり、すでに分かっている

バトルの勝率
8C4E5F84
11AC

のオフセットより小さいことになり
確定である可能性が高いことになります。


--再確認--

ショートカットのを
_FEDCBA
(_は空白)のようにしてデータを1バイトずらして
再検索してみました

メセタは4です

私の場合
3223メセタ
となり検索結果が予想と一致


これによりショートカットメッセージカーソル上の位置が
8C4E5F84(ベースポインタ)
+C96
ということが判明しました。

コードのベースポインタやオフセットアドレスを変更した場合
それに応じて計算してください。


このように判明した結果を反映させる方法として
既存のコードを利用して、コードの応用をしてみましょう。



情報を・・・・


ショートカットキーアドレス
ベースポインタ 8c4e5f84

ショートカットF1  +e92h〜
ショートカットF2  +ed2h〜

F1はe92h 〜 +ebdh 迄だと思われます
+ebeh 〜 +ed1h の間には私の理解できないデータが入っています

あとショートカットキーのアドレスには癖があります
F1に何もショートカット文字を入力していない場合
F2の文字のアドレスがF1のアドレスにずれます
つまりF2が +e92h となってしまいます気を付けましょう。



ギルドカード情報
ベースポインタ8c4e5f88

+ 8h long ギルドカード一人目 #
+ ch long ギルドカード一人目 名前
+26h - +65h ギルドカード一人目 コメント
+7eh byte ギルドカード一人目 言語設定(00=JPN
+7fh byte ギルドカード一人目 ID  (00=びりじあ
+80h byte ギルドカード一人目 クラス (00=ヒューマー

これらのアドレスにコード入れてみましたが変化しませんでした
原因不明ですチェックサムでも入ってるんかなー



メモリ操作関連コード

メモリを見るコード

13B7D9B5
40707044
1C24D797
8C006000
1484D086
6112D108
1494D086
310C900A
14A4D086
6222D207
14B4D086
320C6012
14C4D086
600D6021
14D4D086
D0022102
14E4D086
0009402B
14F4D086
0000036C
1404D086
8C011ECC
1414D086
8C4E5F80
1424D086
8C4E5F80 <<ベースポインタ

オフセットはメセタで指定 必ず偶数であること(フリーズします)
結果はメセタで見れます
(終了→コンテニューで何度もOK)
操作単位はWORD(2バイト)限定です


メモリに書くコード

13B7D9B5
40707044
1C24D797
8C006000
1484D086
6112D107
1494D086
310C9009
14A4D086
6222D206
14B4D086
320CD006
14C4D086
22016012
14D4D086
402BD001
14E4D086
036C0009
14F4D086
8C011ECC
1404D086
8C4E5F80
1414D086
8C4E5F80 <<ベースポインタ
1424D086
00000000 <<オフセット 必ず偶数であること(フリーズします)

書き込む値はメセタで指定
(終了→コンテニューで何度もOK)
操作単位はWORD(2バイト)限定です



メモリをサーチするコード

13B7D9B5
40707044
1C24D797
8C006000
1484D086
6112D10F
1494D086
310C9018
14A4D086
2102E000
14B4D086
D30DE200
14C4D086
90126332
14D4D086
D40C330C
14E4D086
89093247
14F4D086
D50B6432
1404D086
8B013450
1414D086
0009A004
1424D086
73047201
1434D086
0009AFF3
1444D086
D0022122
1454D086
0009402B
1464D086
0000036C <<左半分0000はオフセット(BYTE単位)必ず4の倍数であること(フリーズします)
1474D086   検索にヒットした先を確認する場合に使用(通常余り使わないかも)
8C011ECC
1584D086
8C4E5F80
1594D086
8C4E5F80 <<ベースポインタ
15A4D086
0000FFFF <<処理を打ち切るリミット(LONG単位)
15B4D086
00020103 <<探す値(LONG)

結果はメセタに入ります
(検索開始地点からLONG単位でどこに見つかったか)
操作単位はWORD(4バイト)限定です


メモリーを覗くコード説明

最後の行
1424D086
8C4E5F80 <<ここがベースポインタの位置をきめてる

このままだと手持ちアイテムとか
バルさんの情報にかいてあるあたり

1424D086
8C4E5F84<<<<
だと称号や倉庫関連

0000036C<<<メセタのずれ
1404D086
8C011ECC
1414D086
8C4E5F80<<<メセタのベースポインタ

+????(感覚的にアドレス)のずれの部分の指定方法なんだけど
メセタで指定するw
メセタ変更してセーブしてコンテニューするとけっかがメセタでみれる(癖あり注意)
例えば
  short ATP;      // 34C
だと
844メセタてみもっておく、で読めるのはWORDサイズ分だけ
メセタは偶数でなければならないフリーズします






メモリーに書くコード説明

1414D086
8C4E5F80<<ベースポインタ
1424D086
00000000<<オフセット(ずれ)

書き込む値はメセタで指定
ちなみにWORDです、範囲
オフセットは偶数ねw






データサーチコード説明

1594D086
8C4E5F80<<ベースポインタ
15A4D086
0000FFFF<<リミットカウンタ
15B4D086
00020103<<サーチするデータ(LONG)

さがすのがLONG単位でみていく
リミットカウンタはいつまで探すか
+FFFFx4BYTE(LONG単位です)

1464D086
0000036C<<左半分の0000
1474D086
8C011ECC
1584D086
8C4E5F80
1594D086
8C4E5F80
15A4D086
0000FFFF
15B4D086
00020103

サーチ開始のオフセット(BYTE単位です4の倍数にしてね)
結果もそこからいくつずれたかになります

ちなみにアイテムコードをサーチに設定して
アイテムの位置ずらして
コンテニューすると
メセタに反映されるのが分かるはずw

ベースポインタが本物(実データを指している)で無い場合は確実にフリーズします。(仕様)
リミットを小さくしてやってみてください
それでフリーズする場合ベースポインタが本物ではありません。

backtop