PSVita チート解析スレ Part006 【vitacheat】
■ このスレッドは過去ログ倉庫に格納されています
ユーザーマニュアル: https://drive.google.com/file/d/0B2W8mjrCrdk3TW9hSUdZZm0tVzQ/view?usp=sharing
PSVファイル仕様: https://drive.google.com/open?id=0B2W8mjrCrdk3OWZlTHh4dzlTN0E
PDF パスワード: psvitacheat
【$Bコードを使用するケースについて】
ゲームを起動する度に、アドレスが変動してしまい、コード化
出来ないケースがあるが、原因はセグメントの読込アドレスが
変動する場合と、ポインタを使用している場合の2通りある
メモリブラウザで右アナログスティックを上に倒すと画面上に
セグメント1,2の範囲が以下の様に表示される
seg0:0x81aaaaaa - 0x8xxxxxxx seg1:0x81bbbbbb - 0x8xxxxxxx
seg0、seg1の開始アドレス(0x81aaaaaa、0x81bbbbbb)が起動毎
に変動する場合には、ポインタの使用、不使用に関わらず必ず
$Bコードを使用してセグメントの読込位置の変動に対応しなく
てはならない 【対応方法について】(所持金を9999にするコードの作成例)
$B200 0000000X 00000000
$0200 YYYYYYYY 0000270F
seg0の開始アドレス(0x81aaaaaa)が、0x81005000
seg1の開始アドレス(0x81bbbbbb)が、0x82005000とする
まず、サーチを掛けるなどして目的の所持金アドレスを特定する
<所持金アドレスが0x82055000の場合>
所持金アドレスとseg1の開始アドレス(0x81bbbbbb)を比較する
0x82055000 > 0x82005000が成立するため、0000000XのXは、
"1"(seg1の開始アドレスをアドレス欄にプラスする)を設定し、
YYYYYYYYには、0x82055000 - 0x82005000 の 00050000を設定する
$B200 00000001 00000000
$0200 00050000 0000270F 続き
<所持金アドレスが0x81555000の場合>
所持金アドレスとseg1の開始アドレス(0x81bbbbbb)を比較する
0x82055000 > 0x81555000が不成立のため、0000000XのXは、
"0"(seg0の開始アドレスをアドレス欄にプラスする)を設定し、
YYYYYYYYには、0x81555000 - 0x81005000 の 00550000を設定する
$B200 00000000 00000000
$0200 00550000 0000270F 【$B2コードを使用するケースについて】 [Z05以降のみ使用可]
ゲームを起動する度に、アドレスが変動してしまい、コード化
出来ないケースがあるが、原因はセグメントの読込アドレスが
変動する場合と、ポインタを使用している場合の2通りある
メモリブラウザで右アナログスティックを上に倒すと画面上部
にセグメント1,2の範囲が以下の様に表示される
seg0:0x81aaaaaa - 0x8xxxxxxx seg1:0x81bbbbbb - 0x8xxxxxxx
seg0、seg1の開始アドレス(0x81aaaaaa、0x81bbbbbb)が起動毎
に変動する場合には、ポインタの使用、不使用に関わらず必ず
$Bコードを使用してセグメントの読込位置の変動に対応しなく
てはならない
【対応方法について】(目的のアドレスの値を9999にする例)
$B200 0000000X 00000000
$0200 YYYYYYYY 0000270F
seg0の開始アドレス(0x81aaaaaa)が、0x81005000
seg1の開始アドレス(0x81bbbbbb)が、0x82005000とする
まず、サーチを掛けるなどして目的のアドレスを特定する
<目的のアドレスが0x82055000の場合>
目的のアドレスとseg1の開始アドレス(0x81bbbbbb)を比較する
0x82055000 > 0x82005000が成立するため、0000000XのXは、
"1"(seg1の開始アドレスをアドレス欄にプラスする)を設定し、
YYYYYYYYには、0x82055000 - 0x82005000 の 00050000を設定する
$B200 00000001 00000000
$0200 00050000 0000270F
<目的のアドレスが0x81555000の場合>
目的のアドレスとseg1の開始アドレス(0x81bbbbbb)を比較する
0x82055000 > 0x81555000が不成立のため、0000000XのXは、
"0"(seg0の開始アドレスをアドレス欄にプラスする)を設定し、
YYYYYYYYには、0x81555000 - 0x81005000 の 00550000を設定する
$B200 00000000 00000000
$A200 00550000 0000270F
[Z06の新機能]
従来まではメインとなるモジュール(ダンプテキストファイルの
00番目)以外のモジュールの動的ロードによるアドレスの変動に
対応できなかったが、$B2XXのXXにモジュールのシリアル番号を
指定することにより対応可能となった
モジュールのシリアル番号の確認はダンプテキストファイルの
module nameの左に記載されている
例)0A. module name :sub
$B2XX → $B20A
ただし、このモジュールのシリアル番号指定は例の番号0Aが0B
などに変わるケースもあるため、完全な動作保証はありません
確実に対応するためには、ソースコードでモジュール名の指定
を行いsuprx形式にコンパイルしプラグインとして使用する
例)taiGetModuleInfo ("sub", tai_module_info_t *info)
utf8対応によりコードの日本語表示が可能となっている
デフォルトで全範囲(全モジュールおよび全ヒープ)検索可能
デメリットとしてZ05と比べ動作が不安定になるタイトルがある
また、通常検索で範囲指定を行った場合はバグで検索できない
ケースがある(変動検索の==検索で代用すれば問題ない) ※トラブル防止のためこのスレに書き込むチートコードは転載了承の上、書き込みお願いします
【初心者が検索できない3つの理由】
格納サイズが誤っている
→8bit(255)、16bit(65535)、32bit(4294967295)
()内はマイナス値を考慮しない場合の最大値なので、検索値が()内に収まる場合は、
サイズの小さいものから使用する(マイナス値の考慮がある場合は()内の値の半分)
検索範囲が誤っている
→Z05使用時はデフォルトの範囲が0x81000000〜0x89000000となっている
そのため、ヒットしない場合は、検索値が検索範囲の範囲外であることも考慮し、
検索範囲を見直し例えば、0x89000000の値を例えば0x8B000000などに大きくする
Z06使用時はデフォルトの全モジュール・ヒープ検索であるAutoを使用する
検索値が誤っている
→内部ではビット単位やfloat型やdouble型で管理していたり、計算値により画面表示
を行っていたり様々なケースが存在するため、画面上の見た目の値で検索を行っても
ヒットしないことがある
そんな場合は、変動検索(fuzzy search)を行い絞り込んでからブラウザメモリで直接
値を書換えて反映されたか確認すると良い
4バイト(32bit)を超えてデータの管理を行っていたり検索対象となる値が絞込み中に
アドレス変動していなければ、検索範囲に目的のアドレスが存在する限りは変動検索
でまず間違いなく検知は出来る
ただし、検索範囲を広げすぎると処理が返ってこなくなるため、検索範囲は最大でも
0x2000000以内に留めておいた方が良い、また頻繁に値を変動されることが出来ない
状況では絞込みが十分に行えないため使用すべきではない 既出だったらスマンです
Winning Post 2018のコードってどうやってサーチ変更するんでしたっけ?
資金はそのままサーチできて改変できたんだけどお守りとか同じようにサーチで絞っても書き換えが有効にならないのですが
施設の建設残り週を短縮したり牧場長の能力上げるのってどうやってたかなと
過去に持ち馬は本賞金でサーチしてってあった気がするのですがすっぱり忘れてしまいました
わかる方がいれば教えていただけますか? Odin sphere、リージョンが日本のpsvっって無いのかー
残念 Winning Postはお守りとか何回か繰り返すとできました
お騒がせしました
ただ...PCのWinning PostのSSGとかCEとかにあるようなパラメータで表示されない改造ってどうやるんですかね
例えば調教師や牧場長、騎手の能力とか牧場の設備を1週間で完成させるとか
PCで普通にできることができないのが結構キツイっす
Winning Post 9 2020だってポインタ移設で32bitのSSGで変えられるのでVITAcheatでも変えられるような気もするんですが >>12
お守りは何回か繰り返すとじゃなくて普通に1byte(8bit)管理だったと思うけど
>例えば調教師や牧場長、騎手の能力とか牧場の設備を1週間で完成させる
その辺りは全部bit単位での管理だったはずなので、>>7でいうところの検索値が
誤っている
変動検索(fuzzy search)で探す
メモリブラウザでいちいち書き換えるのが面倒なら使い勝手を考えて調教師など
の能力を変更させるのならpluginを作成し、牧場設備翌週完成ならプログラムコ
ードの方を書き換えると良いけどやったことないとなかなか難しいかも
各データの先頭アドレスへは1重ポインタ(※1)+各データサイズ×各IDで
アクセス可能
※1:牧場長、馬の能力は2重ポインタ
参考になるかわからないけど昔作ったプラグインのアクセスイメージを置いておく
https://d.kuku.lu/965295ba4f 久しぶりに戻ってきたら
コードの作り方とか解説してたサイト軒並み消えてて
4コードの作り方とか
さっぱり忘れてしまった。
まだ生き残ってるサイトあります? この改造コードを差分+34hでX回書き換えるってコード
$0200 81AF1D44 4479C000
$0400 81AF1D44 4479C000
$0000 XXX000034 00000000
これでええんだったかな $0400 81AF1D44 4479C000
$0XXX 000000034 00000000
こうだった。 >>16
アドレス81AF1D44から初期値999.0、増分0x0、差分0x34でX回書き込むコードは
$4201 81AF1D44 4479C000
$XXXX 00000034 00000000
詳しくは>>2のPSVファイル仕様見た方が早い >>17
おかげさまで出来ました。
ありがとうございました。 過去コードまとめのリンク間違ってません?
なんか前のも入れないんですけど URLわざわざ変更してないんで、管理者が過疎化により不要だと感じてファイルか
ユーザ自体を消しただけだと思われる 直しといたよ
ファイル名と管理共有は触らないでね
>>1のURLは間違ってるから行くなら前スレからどうぞ すまん、なんか前のも入れないって言葉からコピペミスじゃなく、単純に削除したのかと思った
まだ人居たんだな わいのうたくみ575が入ってない
使ってもらってええんやで シタイとエッジって気持ちいいん?
キモ怖くない?
シタイならダッチワイフとやるのと、あんま変わんなくない? 自分で追加出来るんか
マイナーvita君のゲームいれてくわ
情報サンクス 追加しよおもたらリクエスト送れやて
めんどくてかなわんわ リディ&スール ver1.06 PCSG01116
所持金
$B200 00000001 00000000
$0200 000FDCB0 0098967F >>32-33
乙
誰かまとめにウイポ2013追加した
ゲーム自体は持ってないけどコード間違ってない
Vita Cheatのコード仕様とは異となるんだけど、多分頭ゼロが抜けてるのかな リディ&スールのアトリエ ver1.06 PCSG01116
コンテナ品質999 2000個目まで
$B200 00000001 00000000
$4101 000C2E9C 000003E7
$07D0 00000026 00000000 ディスガイア4returnのアイテムどうやって探せば良いんでしょうか >>36
とりえあずbit管理はしてなかった筈なので適正なサイズで値検索か変動検索する
さすがに昔すぎて自信ないけど、道具袋の1個目を入れ替えてレアリティを8bit検索してみるとか レアリティの数値が見えないタイプだったら他の項目で比較する
_V0 おまけコード
$A200 812BE8B2 BF00BF00 >>36
816C40C6 倉庫の1個目アドレス
ゲーム開始して
イワシを倉庫に移動
8bit検索で「RARITY」の数値を検索
手持ちのイワシを入れ替えて検索すればあっさり出て来ます。
あとはその周辺にアイテムの数値を弄れるからがんばって探して
イワシを倉庫の1個目において
手持ちのイワシを入れ替えれば解るかと思います。
後は手持ちの装備を外して倉庫1に入れ替えていけば
ゴミ装備を強力な補正を得られます
HP
$0200 816C4030 05F5E0FF
SP
$0200 816C4030 05F5E0FF
ATK〜SPD
$0200 816C4038 05F5E0FF
$0200 816C4040 05F5E0FF
$0200 816C4048 05F5E0FF
$0200 816C4050 05F5E0FF
$0200 816C4058 05F5E0FF
$0200 816C4060 05F5E0FF ありがとう。でもレアリティを変える感じのコードできたけどアイテムを装備品を自由にかえてみたかったんだよな... >>40
だからその周辺を書き換えれば良い
勉強だと思ってどこを起点に+0xNで何の項目か纏めると後の解析に繋がる こんな苦労しながらコードつくってたんやな、一朝一夕でできるもんじゃなさそう。一週間くらいゆっくりさがしてみます。
パって教えてくれてありがとうございます 無からデール一つも出せないわw剣が弓のアイコンに変わってもなまえが変わらず根本的になんか行き詰った気がする。 >>42
まずコードで装備品は自由にというか
このゲーム、装備名はアイテムの性能に付属しているので
自由に変えるのはかなりむずいぞ
これが倉庫1の装備名
816C40E6〜816C40EF
816C40C8と816C40C9を組み合わせばどんな装備にもなる
0930=服
0706=杖
0100=ナックル
って感じになる。
サンマでも この場所の属性を変えれば剣にも槍にもなる
このゲーム装備名は装備名にしかすぎず属性を変えることでアイテム変更が可能になる
極端な話、コードを弄ればどんな名前のアイテムでも作成できるし
属性を弄れば、どんなアイテムでも防具でも武器にもなります 拳武器の
なべつかみをアムルテンに変更しようと思ったら
装備名を変更して
アルムテンと同じステータスをうちこもないとダメ
めんどくさいのでなべつかみの数値を弄った方が早いです。
ゲームシステム的になべつかみをどんだけ鍛えても
アルムテンに及ばないが
弄れば最強のなべつかみになります
装備名は
ttp://web.save-editor.com/tool/wse_patchcode_name.html
こちらのサイトを利用すれば名前変更コードは作れると思います
東京都 ってアイテムを作りたかったら
$0200 816C40E6 E69DB1E4
$0200 816C40EA BAACE983
$0200 816C40EE 000000BD
これで倉庫1のアイテム名は東京都になります >>45 ありがとうございます
疑問がだいぶ解決しました。
倉庫1の例文もありがとうございます! $0200 816C40E4 E4B19DE6
$0200 816C40E8 83E9ACBA
$0200 816C40EC 000000BD
$0200 816C40EF 00000000
$0200 816C40F0 00000000
リトルエディシアンだった
倉庫1のアイテム名を東京都に変更するコード
これを利用してアイテムの名称を変更
816C40C8と816C40C8
で属性変更できるから
大分好き勝手にアイテム弄れるようになると思います。 空の軌跡FCレボリューション
アドレスが変動しないので固定していません
ミラ999999999
$0200 8247FC78 3B9AC9FF
各セピス9999
$4101 8247FC80 0000270F
$0007 00000004 00000000
エステルクォーツ一番上変更
$0200 8247EBB8 00010xxx
315 100%死の刃
316 100%必殺の刃
317 100%毒の刃
318 100%凍結の刃
319 100%石化の刃
31A 100%睡眠の刃
31B 100%封魔の刃
31C 100%闇の刃
31D 100%封技の刃
31E 100%混沌の刃
31F 100%気絶の刃
※デバッグ用装備で通常プレイでは出てこない物。変更後外すとそのままストックとして残ります >>46
倉庫や道具袋アイテムの管理方法は大抵どのゲームでも似たようなものだから
自分で弄ってみると色々とわかって他のゲームへも応用が利くようになる
>>44が言っているアイテムの種類を決定する属性っていうのは一般的にはアイ
テムID(番号)とか呼ばれていてアイテムデータの先頭の方にあることが多
いので、そこを起点に+0xNを弄ったら何がかわるのかをメモると良い
(あるいは既にどこかのサイトにアイテムの構造体解析データがあるかも)
アイテムデータ(構造体)のサイズについては、1個目同様に2個目のレアリティ
なりを検索して、1個目のレアリティアドレスとの差を取ればわかるので、どこ
まで調べれば良いかの範囲がわかる
>>48
乙
>アドレスが変動しないので固定していません
ちょっと難解な日本語なので今一つわからないんだけど、記載されたコードは
どの環境でも動くと思って良いのかな 最新なら多分ね。
アドレスは基本的にソフト起動ごとに場所を変更されるがたまに変動しないものもある
だから固定用のコードの$Bを使うんだがいらんって話
それともわざと皮肉ってるアホか? >>50
逆でしょ
アドレスを固定したいなら直接アドレス指定する(>>48みたいに
アドレスをセグメント変動に対応した変動コードにするなら$Bを付ける
アドレスが動的なメモリ確保などにより変動する場合はポインタコードで変動に対応する
もし、起動毎にセグメント変動するタイプのゲームにも関わらず、アドレスが
いつも一定の場合はポインタが使われているので直接指定は宜しくない
まあ、動くんなら良いんじゃない マジで何言ってんだこいつ
最初からそう言ってるだろ 少なくとも数台で各数百回テストは当然してる前提で変わらなかったんなら変動しないんでしょ >アドレスが変動しないので固定していません
って付けたのはコードだけを見た場合なんで固定化しないのかという疑問を避けるためだ
本当に日本語の読解力が足りてない 皮肉を読み取れる読解力はあるけど確実性はって意味でどの環境でも動くと思って良いのかなってあるのに多分ねなんて曖昧だから
まあ、動くんなら良いんじゃないって返されて解析プライド傷つけられちゃったのかな? 皮肉ってるつもりは全くないんだが・・・
>アドレスが変動しないので固定していません
(以下のコードはセグメント読込)アドレスが変動しないため(アドレス)固定
で問題ありません
ならまだ意味はわかるんだけど固定していませんではアドレス直指定で掲載した
固定コードと矛盾しているから逆でしょって指摘している
何度も言うけど
>固定用のコードの$B
ではなく
セグメント読込アドレス変動用のコードの$B 普通に意味伝わるのをグチグチ言うのは
揚げ足取ってると思われても仕方ないわ PSPのコードをVITAに移植して使うことは可能ですか? AdrenalineでPSP起動したときにプラグイン有効にしてれば
普通に使えるでしょ
もし全く違う話ならゴメン >>61
PSPとVITAの双方で発売されたソフトがあり、PSPのコードをVITAにも移植して使うことは可能か。ということについて伺いたいです。
言葉足らずすみません。 ARMとMIPS(R4xxx)では処理が違うので
同タイトルであれ
コードの移植は不可です。
単純にお金やアイテムはセーブデータ改変で何とかなります
アドレスが変動しないtypeのELF構造ならサーチも簡単なのでコード作成出来ると思います
変動ポインタなど慣れないと難しいゲームの場合
その都度サーチして仮適応でコードを使う手段もあります
貴方が何をしたいのか
どんなコードなのか?
ゲーム名も分からない以上
ご自身でサーチして頑張ってとしか言えません 横だけれどPSPのCPUってMIPSだったのか
何故かずっとARMだと思ってた…
PlayStationのMIPS採用はPS1、PS2だけだとばかり。
たまに書き込まれるサーチ方法と言い本当に参考になるスレだわ >>63
>>64
やはりそうですよね。回答ありがとうございます。 コード化無理だから
ウイニングポスト7 2013
調教師のステータス最大
MAXしたい調教師の本年度勝利数を8bitで検索
1位の勝利数 -10h〜-21hをFFにする
年度変わるとアドレス変わっちゃうのでコード化できません
逆に同じ年度ならセーブ、ロード、再起動しても同じアドレス
競走馬の調子と疲労は解るんだけど
ステータスと育成度がさっぱりわからん
どなたか検索方法のご教授をお願いいたします >>68
MAXしたい調教師の本年度勝利数を8bitで検索
1位の勝利数 +10h〜21hをFFにする
加算です間違えました 2018とそんなに変わらなければ過去ログ見ると多少情報がある
後、調教師のデータなんだけどbit管理してると思うのでちゃんと、何bit目〜
何bit目が何のデータか把握せずに適当に0xFFでbyte単位に埋めたりしている
のなら、最悪後々フリーズして進行不能になるとか発生するかもしれないので
気を付けた方が良いかも 競馬のコードここでめっちゃ見るな
ウイポス地味に人気あるのな ウイポはバージョン上がってもデータとイベントが変わるくらいでおいしい商売してるな 調教師に関する2018のメモみたけど、bit管理はしてるけど、能力関係はちょうど
0bit目からは始まる8bitみたいなので同じなら問題なさそう
ステータスについてなんだけど、まず馬は
幼駒
競走馬
繁殖牝馬
種牡馬
の何れかのデータに属していて調子や疲労なんかは競走馬が管理している項目
それとは別に
能力
のデータがあり、これは幼駒、競走馬、繁殖牝馬、種牡馬の何れもが、それ
ぞれが持っている能力IDにより参照できるようになっている
能力IDは、幼駒〜種牡馬データがそれぞれbit管理しているので、それを見つけ
能力の先頭アドレス X 能力データサイズ × 能力IDとすることにより、
特定の馬の能力の先頭アドレスを求めることが出来る
後は、能力データの解析を行い何bit目〜何bit目で何を管理しているか調べれば
自由に能力を弄ることが出来るようになる
能力の先頭アドレスについては、解析が出来ないなら初回のみ能力を変動させて
の変動検索で割り出すしかない(ポインタを使用しているがおそらく変動しない)
一応、2018のplugin作成時のアクセスイメージをアップしときます
https://d.kuku.lu/cd6b5f8b49 × 能力の先頭アドレス X 能力データサイズ × 能力ID
○ 能力の先頭アドレス + 能力データサイズ × 能力ID コーエー系は古参とかいるしね
信長の野望天道で架空子の生まれる確率100%とか見つけた人いるのかな ディスガイア4returnの手持ちのアイテム1から2にコピーするコードどうやって作れば良いですかね、ディスガイア2とかのコード見てもどっからそのコード出てきたのか全くわからんし何から手をつけていいのかがわからないです。 手持ちの1個目最初のアドレスが816BE1E6で2個目のアドレスが816BE39Dでどんどん1B7ずつ上がっていくけどそこからどうやってアイテム一つ目を2つ目にコピーするコードを作れば良いかわからない、教えてくだしい… >>77
現状(といっても最終版だと思われる)コード仕様では$5(or 8)を使用した4byte
までのコピーコードしか作れないと思われる(工夫したらいけるかもしれないが)
なので、やるなら0x1B7 / 4分の行数の$5(or 8)コードを作成すれば良い
エクセルでちょちょいと作れそうではあるけど、自分ならpluginを作成する
後、0x1B7…奇数はバイト単位で管理しているデータサイズとしてめずらしいかも 後、ゲームによっては値をコピーしただけでは認識されないものもある
別でアイテム有無をフラグ管理していたり
アイテム数を別途管理していたりなど色々ある
また、アイテム入手順などものによっては単純にコピーしただけでは
不具合が出る可能性もある とりあえずこんな形で良いんかな?もし作るとしたら
$0500 816BE1E6 000001B7
$0200 816BE39D 00000000 以下のコードで816BE1E6から816BE39Dへ4byteコピーするコードになる
$5200 816BE39D 816BE1E6
次行は+0x4で
$5200 816BE3A1 816BE1EA
になり、これを0x1B7 / 4分作成する
…データサイズは本当に0x1B7で合ってるか疑問だけど ウイポ 2013
能力idから参照してるのは解るんですが
能力IDは幼駒〜種牡馬データがそれぞれbit管理しているのでそれを見つける
どうやって探すのかすらわからないです
能力の先頭 最初の1頭目のデータって事でしょうか?
これもどうやって探すのか解らない
それがわかれば
確かに任意の馬のデータが弄れるのは理解できました 1個目のアイテムは無事で2個目が消えるようになってしまったw
クレクレになってしまって申し訳ないんだがディスガイア4returnの手持ちのアイテム1個目を2個目にコピーするコード誰か作っていただけないでしょうか?おねがいします。 >>86
>能力IDをどうやって探すのかすらわからないです
これに関しては、馬データの解析を行い、その構造を把握する必要あります
例として、2018では馬データの各サイズは以下のようになっています
競走馬 0x84Byte
幼駒 0x18Byte
繁殖牝馬 0x30Byte
種牡馬 0x4CByte
能力 0x1CByte
上記を見れば幼駒のサイズが一番小さいのでデータ構造の解析にとっつき
やすいかもしれまん
参考までに2018の幼駒データでは先頭14Bitが売買額で次が母馬IDという感
じで能力IDは+0xCByteの0bit目から15Bitになります
また競走馬なら+0x0Byteの0bit目から15Bitになります
能力IDを能力IDの範囲内に書き換えると、能力が書き換わる(といっても
別の馬の能力になる)ので、それを目安に探すと良いかもしれません
一々調べなくても誰かが解析情報を載せているかもしれないので、それを
探すのもありかも
>能力の先頭 最初の1頭目のデータって事でしょうか?
そうです、能力IDが0x0の馬の能力アドレスです
>これもどうやって探すのか解らない
自分はARM解析からポインタを見つけたけれど初心者には難しいと思うので
能力データで管理している項目(スピード、スタミナなど)の変動を変動
サーチでなんとか捉え能力データの先頭アドレスを割り出すしかないと思う
先の調教師のアドレスが不動なので、この作業に関してはおろらく一度で
検索できれば以降は、そのアドレスを流用できると思われる
>>87
そんなピンポイントなコードは需要の問題でおそらく作ってくれる人はいな
いと思うので、正確にコピーコードを作れているのを前提に話をすると
上で書いたように単純にコピーしただけでは不具合が出るアイテム管理方法
である可能性と、先頭アドレスとデータサイズの解析誤りの可能性が考えら
れる(データの開始アドレスやサイズは4の倍数である可能性が高い)
上記を踏まえてやり直しても無理なら諦めた方が良い Bitって単位がもうわからない
こういう専門用語使われての何を見て勉強したらええのかしら
14bit=00000000000000 この範囲がIDって事ですかな?
14bit=000000 こっちかな?
8bit=FF=255
16bit=FFFF=65535
14bitの意味が解らないのです
ウイポ2013 だと 幼駒売却額ってのが表示されない
評価額、取引額が表示 一旦所有して売却する時の金額が出る
今一、どの数値で検索するもんなんか解らない
競走馬だと本賞金調べて
-2h〜-1hが競走馬の能力IDなのが解析できました。 >Bitって単位がもうわからない
1Bitは0または1の2値を扱う単位
1ByteはBitが8つ集まったものでマイナスを考慮しなければ0〜255までの値を扱える
見方を変えて8Bitとして捉えると0と1の2値を1Byte中に8つ格納できる
例えばイベント発生済みかどうかをメモリ上で記録する場合に、4Byte単位で
発生済みなら0x00000001、未発生なら0x00000000と管理しているゲームもよく
見かけるけれど、実際は1Bitで事足りるためメモリ容量が無駄に使用される
100個のイベントフラグを管理するのに4Byte単位管理では400Byte、1Bit単位
管理では100Bit(100/8=12.5 13Byte)で済む
ウイポも事情はわからないけど初代はスーファミなどのコンシューマ機に移植
されているみたいなので、メモリ使用量の削減のためにBit単位で項目を管理
したんじゃないかなとも思う
>14bitの意味が解らないのです
幼駒データの構造画像(2018版)を以下にアップしました
https://d.kuku.lu/6230f78021
これを見ると、アドレス0x86020598の8Bitと0x86020599の7Bitの計15Bitで
能力IDを管理していることがわかります(14Bitは間違いです)
気を付けなければいけないことは、0x86020599の8Bit目は馬主IDの一部にも
なっているので、Bitを意識せずにByte単位で値を書き換えてしまうと馬主
IDも変わってしまいます
>競走馬の能力IDなのが解析できました。
こちらが分ったのなら、後はその競走馬の能力項目変動前後で変動検索を
行い、絞り込んだ値を書き換えてみて能力が変更されているか確認し、変更
されていれば、当該アドレス − 能力ID × 能力データサイズで能力
データの先頭アドレスが求められる
2018だと馬を個別に調教出来て能力の変動も調べやすいだろうけど、2013が
どうかはわからない
もし、能力データで管理している項目を変更できるアイテムなどがあれば
一番簡単だけど多分ないかな >>90
めちゃめちゃ勉強になります。
14bitでサーチをかける場合
評価額 1000だとすると
16bit=1000=0000 0011 1110 1000=3E8 で検索
14bit=1000=だと どういう方法で検索するのでしょうか?
0〜65532
14bit=1000
11 1110 1000XX XX11 1110 1000 どっちかで
XXに01 か 11 10 の3パータンを考慮して検索するんかな?
6パターン全部試したけどダメだった。
取引額じゃないんかな >>90
能力データ検索
2013は史実馬能力エディットって機能があるから
これエディットで変動したら直ぐ繁栄されんのかな?
反映されなくても この方法で史実馬でも
能力IDから 自分のIDに変換すれば自分の変更したい能力ID割り出せるはず
ちょっとやってみますね エディットデータを読み込んでも
能力IDは変わらず
お、これなら簡単に能力IDわかるやん ウイニングポスト7 2013 解析でググったら、ウイポローダにアップされている
WP7_2012_PSP_Status_viewer_ver20120630.zipでPSPの2013のメモリダンプを
読み込みチートコードが作成できるという記事を見つけました
2013用データを読込めるみたいなので、これ(エクセルファイル)を落とせば、
馬や能力データの構造が分かる
評価額は最低表示単位が100万円なので、1で100万円、10で1000万円になる
上の所有幼駒シートの評価額を見ると2013は2018と同じ10Bitで0〜102300万円
(10億2300万円)の範囲で設定できることになる
エディット機能は即時反映はされないんじゃないかと思う(少なくとも確か2018
ではゲーム開始時にエディットデータを反映するかの確認があった気がする)
ただ、史実馬についての能力IDは同じ条件で開始すれば変わらないんじゃないか
と思うので、エディットで柔軟性〜賢さを弄りゲーム開始して8bit検索で値検索
を繰返すことにより検出可能かもしれない >>94
丁寧にありがとうございます
エクセルファイルを落としてみたんですが、
どう見たら構造が解るのかすらわからない手探り状態です
PSPのダンプデータ持って無いとダメなんでしょうか?
評価額の幼駒サーチが出来ました。
2億8900万の場合
21X1 で289を表示しているので
8bit検索で 21 で検索
1億6200万で売却
162を表示しているので A2 で検索
A2X0
10bit だと取引額の最大は
FFX3 1023で表現する (10億2300万円)
評価額の幼駒サーチは理解できました。
根気よく本当にありがとうございました。 エディット機能を使っての能力IDの割り出し
スピードでやってみたんですが上手くいかないです。
エディットで育成限界を弄ってるわけだから見つけられない事は無いとは
思ったんですけど上手くいきません
柔軟性で検索してみようと思います
最初に貰える 史実馬 牡5 アンドレアモン
なら柔軟性が可視化されてるので増減サーチがやりやすいと思うので >PSPのダンプデータ持って無いとダメなんでしょうか?
要らない
例えば所有幼駒シートを見てください
最初にある構造体の表が幼駒データに該当します
相対位置が内容データが開始するバイト位置
ビット情報が内容データがそのそのバイト中で使用するビット位置
ビット数が内容データのデータサイズでしょうね
上の構造表は幼駒データを表し、下のデータ名が馬能力となっている方が能力
データの構造体になっていると思います
この馬能力データは所有馬(競走馬)でも当然同じ構造になっています
そこで、相対位置0x03を見ると、柔軟性、瞬発力、勝負根性、賢さを1バイト内
で管理していることが見てとれます
それぞれ2ビットで0(C)〜3(S)で値管理しているようです
つまり、エディット機能を利用して柔軟性〜賢さをALL Cにするとそのビット列
は以下の様になり
賢 根 瞬 柔
00 00 00 00b
値は8bitで0ということになります
柔軟性〜賢さをALL Sにするとそのビット列は以下の様になり
賢 根 瞬 柔
11 11 11 11b
値は8bitで0xFFということになります
柔軟性C、瞬発力B、勝負根性A、賢さSの場合のビット列は以下の様になり
賢 根 瞬 柔
11 10 01 00b
値は8bitで0xE4ということになります
このような感じでエディット→新規ゲーム開始→エディットした値を8bit値
検索のサイクルを繰り返し絞り込むことにで検知可能かもしれません
検知できれば、その馬の能力ID(これでいうと馬能力インデックス)を調べ
当該アドレス − 能力ID × 12 − 3 で能力データの先頭アドレスが
わかるはずです >>97
めちゃくちゃありがとうございます
さっそくやってみます 見つけた
史実馬 牡5 アンドレアモン
能力データ 82004B67
ID 0C4A2
2018に準拠して
1C を能力データとして検証してみる
82004B67 - 0C4A2 × 1C
=81EA C9AF
んー 00で埋まってるなぁ…
なんか違う 当該アドレス − 能力ID × 12 − 3 で能力データの先頭アドレス ■ このスレッドは過去ログ倉庫に格納されています