小ネタ
こんにちは、いつもこちらのサイトを参考にさせてもらっています。
バグでも要望でもないのですが、管理人様に直接連絡する手段が見つからなかったので
申しわかりませんが、こちらに失礼させていただきます。


プロセスメモリエディタで編集したデータを保持したままソフトリセットする方法を発見しました。
(ただし、完結編でしか確認はしていません)

事前に準備すること

1, タイトル画面にてステートセーブ
2, データを編集→書き込み
3, 再度ステートセーブ

これだけです。

ソフトリセットについてはリセットボタンを押す代わりに
上記のステートセーブデータをロード → コンテニューでOKです。

その他に、Fからの引き継ぎデータ、完結編の既存セーブデータ、
いずれにも編集した状態を保持していることを確認致しました。
(ただ、乱数系については無知なのでリセットされているのかはわかりません・・)

今後データを編集するときはこのステートセーブを起点にすることでコード出力も不要になります。

デメリットとしては、全てのセーブデータに影響を受けてしまうこと、
すでに細部まで変更している人は、また一から編集する必要があること、くらいでしょうか。
ですが、これからプロセスメモリエディタを活用される人にはおすすめの方法です。

上記の方法をすでにご存知でしたらこちらのスレを消して下さい。
  • 2014/05/15 (Thu) 22:58:21
Re: 小ネタ
追記です。

上記の方法で編集する場合は、必ず改造コードはOFFにすること
改造コードを起動したままステートセーブをしてしまうと、改造コードもONの状態を保持してしまいます。
  • 2014/05/15 (Thu) 23:45:47
Re: 小ネタ
情報ありがとうございます。当掲示板はどんな話題でもOKですよー。

いつだか掲示板では触れたことがあった気がしましたが説明ページではノータッチでしたね・・・。
ステートセーブの情報をプロセスメモリエディタのページに追記させていただきました。
また丁寧に説明していただいたので、詳細としてこちらにリンクも貼らせて頂きました。

ただこの方法ですが少々デメリットがあって、
・セーブ時刻がステート時のものに巻き戻ってから換算される
・ステートセーブ後、新規にセーブしたデータはステートロード時には表示されない(ソフトリセットすると表示されるようになる)
とこんな感じのことが起きます。
新規セーブについてはステートセーブのタイミングをバンプレロゴが出てる間にすれば回避可能かと思いますが、セーブ時刻のズレは回避不可能かと思います。

うまく圧縮できるようになってファイルそのものを差し替えられるようになれば何の問題もなくなるんですが何年たっても出来る気が・・・
  • 2014/05/16 (Fri) 19:43:29
Re: 小ネタ
返信ありがとうございます。
そう言っていただけて少し安心しました。

巻き戻りについてはもしかしたらエミュレーターの仕様が関係しているかもしれません。

私が確認した時のエミュレーターは『SSF Ver0.12 beta R3』
(『No BIOS』欄にチェック無しの設定にしています。)
メモリエディタのバーションは『最終更新14/04/10』です。


ステートセーブのタイミングについてですが、
すみません、このあたりは以前の説明では誤解させてしまいますね。。

私がステートセーブをしたタイミングは

スタート、ロード、コンテニュー、オプション などが表示されている画面です。
(念のため画像を添付いたします)


このタイミングでステートセーブをするとデータの巻き戻りもありませんでしたし、
こちらでの確認ではステートセーブ後に新規でセーブしたデータもきちんと保持されていました。
また、コンテニューも直前にセーブしたデータが反映されておりました。
もちろん、メモリエディタで編集したデータのまま、です。

他にも、ステートセーブのタイミングを変えることで色々遊べることを確認しました。

1, スタートで始めた時だけ反映させたい → 主人公選択画面
2, セーブしたデータ全般を反映させたい → ロード選択後(本体RAM,カートリッジRAMの選択画面)
3, 特定のセーブデータだけ反映 → インターミッション画面
  • 2014/05/19 (Mon) 11:33:11
Re: 小ネタ
追加の説明ありがとうございます。
エミュレータバージョン、設定、
自分の思ってるタイトル画面もまさしくそこです。

>こちらでの確認ではステートセーブ後に新規でセーブしたデータもきちんと保持されていました。
ステートロード時もきちんと表示されているなら問題ありませんが、とりあえず自分でやるとどうなるかを解説します。
コンティニューデータは全く問題ないんですが、問題はロード画面です。
ロード画面に出すセーブデータの存在の確認はタイトル画面直前の
「○○プロ~」などの著作権なんやらが出ているタイミングで行われています。
なのでその後にSSFのセーブデータフォルダにセーブデータを突っ込んでもロード画面には出て来ません。
「新規セーブ」はインターミッションでセーブする時に最下部でするやつ(新規データ)のことで、
「○○プロ~」表示後にステートセーブ、新規データ作成、ステートロード、ロード画面といくと新規にセーブしたデータは現れないはずです。
添付した画像だとデータ40に新しく作ったデータがあるはずなんですが、表示されません。
扱い的には「セーブデータ一覧の読み込みが終わった後にSSFのセーブデータフォルダに突っ込んだデータ」と変わらなくなるためです。
そのため著作権表示以前のロゴ中にステートセーブしておくか、ソフトリセットすると著作権表示が出てセーブデータ内容が確認されるため、ステート保存後のセーブデータが現れるというわけです。

あと誤解がありそうなので補足すると、
>ステートセーブをするとデータの巻き戻りもありませんでしたし、
ですがセーブの巻き戻りではなくて、ただ単にセーブした時刻(4/8 18:55)などが毎回(ステートセーブした日時+そこからのプレイ時間)になってしまうというだけで、見た目以外に害はありません。

上記の事が発生しないなら問題はないのですが、仮に発生するとしても
・「新規データ」は選択しない、またデータの削除もしない
・セーブ時刻はどうでもいい
という方にはデメリットは多分ありません。

一応自分は発生してるので注意喚起ということで。
余談ですがセーブデータの総数が本体メモリ、カートリッジ合わせて100以上あると著作権表示の所でSSFが落ちます。
  • 2014/05/19 (Mon) 18:51:20
Re: 小ネタ
何度も返信ありがとうございます。あと、申し訳ありません、前回は私がとんちんかんな誤解釈をしたまま返信をしておりました。。
全て管理人様の解説で間違いありませんので、どうか前回の私の返信はスルーして下さい。

ご指摘いただいた点を含めてまとめるとこんな感じでしょうか。

手順

0. 予め本体RAMまたはカートリッジRAMにセーブデータを多めに作っておく※1
1. バンプレロゴの表示~メニュー画面の間にステートセーブ
2, プロセスメモリエディタにてデータを編集→書き込み
3, 再度ステートセーブ

※1 本体・カートリッジへの保存は合わせて最大で99個まで(100個以上の場合OP途中で強制終了する)

メリット
・擬似的なソフトリセットが行える
・変更したデータは既存のセーブデータにも反映される

デメリット
・ ステートセーブ後に変更したデータのみ反映
・ 本体RAM&カートリッジRAMへのセーブは「上書き保存」のみとなる※2
・ セーブ時刻がズレてしまう
・ 手順1の時に改造コードをONのままセーブすると、コードも保持されてしまう

※2 「新規データ」で保存したデータは仕様上、ステートロード後は使用できない(ロード画面にも表示されない)


今回も色々と参考になりました!本当にありがとうございました。


ちなみに、誤釈についてですが、、、

セーブ時刻ついては「時刻」の部分を無視して返信しておりました。
私の返信で指していた巻き戻りは無いというのはセーブデータそのものの方です。。

「新規セーブ」についても、なぜか私の中で「スタート」選択後、最初のインターミッションで保存したセーブデータという謎の解釈をしておりました。。

私は今まで「上書き保存」で作業していたので抜けていましたが、
「新規セーブ」での保存は私の方でも同じ症状が起きました。
  • 2014/05/19 (Mon) 23:46:55
Re: 小ネタ
なるほどなるほど、誤解がとけたようで何よりです。

まとめていただいた後で恐縮なんですがいい忘れてた点を少々・・・
と思ったんですがまとめ直していただくのも労力かと思いますのでちょっと自分のほうで改変させて頂きます。

プロセスメモリエディタで変更したデータを保持、また保持しつつ擬似的にソフトリセットする方法の手順

0, 予め本体RAMまたはカートリッジRAMにセーブデータを多めに作っておく※1
1, 起動したらタイトル画面(スタート、ロードなどがあるところ)でプロセスメモリエディタにてデータを編集→書き込み
2, ステートセーブする ※2
3, 手順2のステートをロードすればいつでも編集後の状態になるので、リセットしたい場面でステートロード→セーブデータのロードやコンティニューで擬似的なソフトリセットが可能となる
 新たに変更したいものができた場合はステートロード→編集・書き込み→ステートセーブで更新できる

※1 この方法だと上書き保存しか出来なくなるため。ただし本体・カートリッジへの保存は合わせて最大で99個までしか作成できない(100個以上の場合OP途中、もしくはセーブした瞬間に強制終了する)
また「F」ではFのみのセーブデータの総数だが、「F完」ではFとF完合わせての総数となるので注意

※2 この時、改造コードをONのままだとそのコードも保持される(逆に既にコード出力してある場合はここで入れておけば編集しなおさなくて済む)

メリット
・大量のコードを登録したり毎回有効にせずに済む

デメリット
・ 本体RAM&カートリッジRAMへのセーブは「上書き保存」のみとなる※3
・ セーブ時刻がズレてしまう

※3 「新規データ」でも保存はできるが、そのデータは仕様上ステートロード後に使用できない(ロード画面に表示されないため)


最初のステートセーブは「無編集データを別枠に取っておきたい」という場合以外は省略できるので省かせて頂きました。
メリット・デメリットはコード出力した場合との比較ということで。

あと乱数についてはどちらかと言えばハードリセットに近い状態になります。ステートロードしてから1フレームの誤差なく同じ入力を繰り返さない限り影響はないかと思います。

とりあえず書いてみましたが、書いた部分、書いてない部分合わせて疑問点などありましたらどうぞー
  • 2014/05/20 (Tue) 21:21:10
Re: 小ネタ
まとめ整理&補足していただましてありがとうございました!

1つだけ補足といいますか注意していただきたい点を

>※2 この時、改造コードをONのままだとそのコードも保持される(逆に既にコード出力してある場合はここで入れておけば編集しなおさなくて済む)

出力したコードをここでONにする場合、改造コードの性質上常に対象データを上書きし続けるため、以後プロセスメモリエディタでの編集を受け付けなくなります。

例:
改造コードでボイス・ムービーOFFにした状態でステートセーブすると、
プロセスメモリエディタにてボイス・ムービーOFFの✔をはずして『書き込み』を押しても更新ボタンを押すとまた✔が付く

ボイス・ムービーOFFのコードであれば、本サイトにONのコードも掲載されていますので修正は可能ですが、それでも今度はONの状態を上書きし続けてしまうため、プロセスメモリエディタでの編集は不可能となってしまいます。

もし改造コードを保持する場合は、プロセスメモリエディタの範囲外のみに絞るのが無難かもしれません。
(クリティカル補正バグの修正版、残りHP以上のダメージを表示する等)

  • 2014/05/28 (Wed) 12:07:27
Re: 小ネタ
返信ありがとうございます。
その点に関してはコードツールの使い方次第ですね。
コードの代替としてのステートセーブになるので、ステートセーブ後は保持した部分のコードをOFFにすれば競合は起こらないと思います。
  • 2014/05/28 (Wed) 13:28:01

返信フォーム






現在進行中のトピック以外では、なるべく新規投稿を使用して下さいますようお願いいたします。
プレビュー (投稿前に内容を確認)