スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- ] スポンサー広告 | Blog Ranking | Trackback(-)

セーブデータの暗号化と復号化が可能なプラグイン - MagicSave Ver 1.2 

セーブデータの暗号化と復号化をすることができる プラグイン MagicSave Ver 1.2 がリリースされました。




MagicSave はセーブデータの暗号化と復号化をすることができるプラグインです。

セーブデータを暗号化・復号化するためのツールは現時点でいくつかあるけどゲームを一度終了してそのソフトを起動する必要があったりGameKeyも別に探さなければいけない

手間がかかる物ばかりでもっと簡単にしたい、そんな理由で作った物です

このプラグインを使えばゲーム中、普段セーブ・ロードするのと同じ感覚で暗号化されていない元のままのデータを読込・保存出来ます

またそのゲームのGameKeyをDumpすることも可能です

自分では未確認ですが、破損したセーブファイルの修復も出来るようです
手順としては、まずセーブファイルを正常に読み込めるFWでMagicSaveを使いファイルを書き出す
そして破損扱いになるFWでゲーム起動後、適当にセーブを新規作成をして その新規作成したデータを読み込む際にMagicSave側から前に書き出しておいたデータを読み込ませるようにして、その後に改めてセーブすると直るそうです

※ReadMe より


セーブデータを改変して不正にデータを操作できないようにするために ゲームをセーブをすると 暗号化されてセーブデータが作成され ロードする際には復号化してセーブデータが読み込まれます。

このプラグインは セーブする際に 暗号化していない状態でセーブデータを保存し ロードする際にそのセーブデータを読み込むことができます。
これにより 暗号化していない生の状態のセーブデータ を作成し 編集したあとに ロードすることが可能なためセーブデータから能力値などの数値を変更することができます。

また UMDの要求 FW 以下で作成したセーブデータを要求 FW 以上にアップデートした PSP で破損データ扱いになって読み込むことができなくなる問題もこのプラグインで解消することができます。

例:要求 FW 5.00 のUMDを CFW 4.01 M33 でプレイしてセーブデータを作成した場合 CFW 5.00 M33以上に PSP をアップデートすると そのセーブデータが破損データ扱いになって読み込めなくなります(前のバージョンに戻すと読み込めるようになる)

なぜセーブデータが破損データ扱いになって読み込めなくなるのか?

通常では UMD の要求 FW 以下のバージョンでゲームを起動するようにすると 要求 FW にバージョンアップするように表示されます。
しかし CFW が導入された PSP では 要求 FW 以下のバージョンでもゲームが起動できてしまうため 暗号化方式が違う セーブデータが作成されてしまいます。

そのため 要求 FW 以上に CFW のバージョンをアップデートすると 暗号化の方式が違うセーブデータが読み込めないため 破損データ扱いになってしまいます。

※読み込めない セーブデータ=破損データ として扱われるためセーブデータが壊れてしまったわけではない

また 最近では CFW 5.50 GEN-D3, 5.03 GEN-C for HEN を導入すると セーブデータを作成したバージョンに関係なく 特定のゲームでセーブデータが破損データ扱いになってしまいます。

このように 暗号化方式の違いによってセーブデータが読み込めなくなります。


そこで 正常に読み込める 要求FW 以下の CFW で暗号化されていない生のセーブデータを MagicSave で作成, 要求 FW 以上のバージョンの CFW で生のデータを読み込んでセーブすれば セーブデータの暗号化方式に関係なくセーブデータを読み込めるようになります。

 


このように セーブデータの暗号化と復号化以外にもセーブデータの修復ができる便利なプラグインです。

注意:

- MagicSave側にセーブデータを書き込めても非暗号化状態とは限らない(別でゲーム製作側独自の暗号化を施している場合がある)
- MagicSaveのプラグインを有効にすると起動しない、または突然フリーズする
- ゲームモード(Normal/M33/NP9660/OE)や、形式(UMD/ISO/CSO)を変えることで解決する場合があります
- MagicSaveを有効にしているのに機能しないゲームがある
- セーブデータが破損する可能性もありますので 必ずバックアップを取ったうえで十分注意してお使い下さい

[ 手順 ]

準備するもの

- CFW 5.00 M33 以上のバージョンを導入済みの PSP-1000/PSP-2000 または 5.03 GEN for HEN, CFWEnabler が動作可能な PSP-2000/PSP-3000

プラグイン導入

1.メモリースティックの ルートディレクトリ(PSPフォルダがあるところ)に seplugins フォルダを作成します。 ※すでに作成してある場合はしなくて良い

[ 右クリック>新規作成>フォルダ で作成する ] 


2.MagicSave v1.2 をダウンロードして解凍します。


3.解凍してできた Plugin_MagicSave_Ver1.2 フォルダ の中にある「MagicSave.prx」を 先ほど メモリースティック の ルートディレクトリ に作成した seplugins フォルダの中にコピーします。 



[ メモリースティック構成:seplugins/MagicSave.prx ] 

4.同じく 解凍してできた Plugin_MagicSave_Ver1.2 フォルダ の中にある「MagicSave」フォルダを メモリースティック の ルートディレクトリ(PSPフォルダのあるところ)にコピーします。 

 

[ メモリースティック構成:MagicSave ] 



5.メモリースティックの ルートディレクトリ に作成した seplugins フォルダ の中に「game」という名前の テキストドキュメント を作成する。

※すでに作成してある場合しなくて良い

[ 右クリック>新規作成>テキストドキュメント で作成する ]   


6.先ほど作成した game.txt に「ms0:/seplugins/MagicSave.prx 1」と書き込みをして 上書き保存 をする。  



※すでに書き込みがある場合は下記の様に改行して追記してください

例: 



7.これでプラグインの導入は完了です。

使用方法

ゲームを起動してセーブをすると メモリースティックの ルートディレクトリ にコピーした MagicSave/Save/ フォルダの中に 暗号化されていないセーブデータが保存されます。
また 通常セーブデータが保存される PSP/SAVEDATA/ フォルダの中にも同時に暗号化されたセーブデータが保存されます。

※この MagicSave/Save/ フォルダに保存された暗号化されていないセーブデータを好きなように編集することができます
ロードする際には MagicSave/Save/ に保存された暗号化されていないセーブデータがロードされます。

破損したセーブファイルの修復方法:

要求 FW 以下で保存されたセーブデータを MagicSave で暗号化されていない生のデータ にして 要求 FW 以上で生のデータを読み込むことで破損データ扱いになっていたセーブデータを読み込むことができます。

※ここでは例として メタルギアソリッド を使用しています

[ 手順 ]

1.PSP をセーブデータが読み込むことが出来ていたバージョンに戻します。

例えば 5.00 M33 ではセーブデータが読み込めていたが 5.50 GEN-D3 にしたら読み込めなくなった場合は PSP のバージョンを Universal Unbricker や RecoveryFlasher v1.60 などを使って 5.00 M33 に戻します。

2.セーブデータが読み込むことが出来ていたバージョンのPSPで ゲーム(UMD/ISO/CSO)を起動します。

3.ゲームを起動したら MagicSave が起動していることを確認するため 音量+ と 音量- ボタンを押してメニューが表示されたら △ボタン を押してメニューを閉じます。

※メニューが表示されない場合は手順を確認して MagicSave がちゃんと導入されているか確認してください

4.セーブデータをロードしてゲームを始めたら 適当なセーブポイントでゲームをセーブすると自動で暗号化されていない生のセーブデータが メモリースティックの MagicSave/Save/ に保存されます。



5.暗号化されていないセーブデータが保存されたか確認するために一度 ゲームを終了します。

6.メモリースティックの MagicSave/Save/ フォルダの中に 暗号化されていないセーブデータが保存されているか確認します。



※セーブデータが作成されていない場合は 再度ゲーム内でセーブをやり直してみたり 下の「ユーザー定義ファイルの説明」を参照してください

7.PSP を元のバージョンにアップデートして戻します。

8.MagicSave で暗号化されていないセーブデータを読み込めるようにするために メモリースティックの PSP/SAVEDATA/ フォルダの中にある破損データ扱いになっていたセーブデータを削除します。

※削除する前に一応バックアップをとっておいてください

9.ゲームを起動して 音量+ と 音量- ボタンを押してメニューを表示させます。

10.「Status="off"」を ×ボタン で選択して「Engine:<←「On」 >」の項目で 方向キー← を押して「Engine:< 「Off」→>」にして MagicSave を無効にしたら  △ボタン を二回押してメニューを閉じます。



11.適当にセーブデータを新規作成してゲームを終了します。

 

※ここで作成したセーブデータを MagicSave に保存した暗号化されていないセーブデータを上書きするため 適当にセーブデータを作成して構いません

12.再度ゲームを起動して 音量+ と 音量- ボタンを押してメニューを表示させます。

13.「Status="on"」を ×ボタン で選択して「Engine:< 「Off」→>」の項目で 方向キー→ を押して「Engine:<←「On」 >」にして MagicSave を有効にしたら  △ボタン を二回押してメニューを閉じます。



14.先ほど 手順11 で作成したセーブデータをロードします。



15.すると  メモリースティックの MagicSave/Save/ に保存した暗号化されていないセーブデータがロードされて読み込まれます。

16.これで破損データ扱いになっていたセーブデータを読み込むことができましたので 一度セーブします。



17.MagicSave プラグインは無効にしておいてください。

※無効にする方法は 記事の下にありますので参照してください

18.これでセーブデータの修復は完了です。

機能説明

MagicSave の機能の説明と設定方法について Readme から引用して説明します。

メニュー各項目についての説明:

ゲームを起動して 音量+ と 音量- ボタンを同時に押すと MagicSave のメニューが表示され 設定を変更することができます。

┣"Status"   セーブデータ読み書きの監視するかどうか
┃┣"Engine"   On = 監視、Off = 監視しない
┃┗"Advanced"   (上級者向け、Engineの状態が "Off" だと 中にある全項目は機能しない、選択も不可)
┃ ┣"Save Data"  
┃ ┃┣"Read from MagicSave" セーブデータをMagicSaveから読み込むかどうか
┃ ┃┣"Write to  MagicSave" セーブデータをMagicSaveへ書き込むかどうか
┃ ┃┃
┃ ┃┃   ※MagicSaveへの書き込みが無効で、読み込みだけが有効な状態だと
┃ ┃┃     MagicSaveから古いデータを読み込んでしまう恐れがある
┃ ┃┃     意図して別動作をさせたい場合以外は両方とも有効 または 無効にした方がいい
┃ ┃┃
┃ ┃┗"Fix Read Size"  セーブデータのサイズがオリジナルと違っても強制的にMagicSaveから読み込むか
┃ ┃    ユーザー定義ファイルにある fix_read と同じです
┃ ┃    ここで指定すれば全ゲームでこの機能が有効になります(個別指定しなくて済む)
┃ ┃
┃ ┣"Use Config File"  セーブデータ読み書きの監視方法を変更
┃ ┃    Default = 標準の設定、Current Game = ユーザ定義ファイルの設定
┃ ┃    ※詳しくは下記の【ユーザー定義ファイルについて】を参照
┃ ┃     "Current Game"は現在のゲーム対応するユーザー定義ファイルがなければ選択不可
┃ ┃
┃ ┗"Dump Gamekey"  セーブデータ読込・保存時にGameKeyをDumpするかどうか

┣"Menu Option"   メニュー表示関係の設定変更
┃┣"Pad"   Menu_Only = ゲーム側の操作を無効、Menu+Game = ゲーム側の操作は無効にしない
┃┗"Delay"   メニューがちらつく際の調整用

┗"Log"    Logを出力するかどうか


Settings.ini についての説明:

メモリースティックのルートディレクトリにコピーした MagicSave フォルダの中にある Settings.ini を編集することによって MagicSave 起動時の動作を変更することができます。

Engine = On
SaveType = On
LoadType = On
DumpGameKey = Off
Log = Off
Pad_Status = On
Fix_Read = Off
Menu_Delay = 1000

設定を変更したい項目の赤い文字の部分を 以下の対応するものに置き換えて上書き保存します。

Engine // セーブデータの読み書きを監視するかどうか(On : Off )デフォルト:On
SaveType // MagicSaveへ書き込むかどうか(On : Off )デフォルト:On
LoadType // MagicSaveから読み込むかどうか(On : Off )デフォルト:On
DumpGameKey // セーブデータが読み書きされる際にGameKeyもDumpするかどうか(On : Off )デフォルト:Off
Log  // ログを取るかどうか(On : Off )デフォルト:Off
Pad_Status // メニュー表示時にゲーム側の操作を無効化するかどうか(On : Off )デフォルト:On
Fix_Read // サイズが違ってもMagicSave側からデータを読み込むかどうか(On : Off )デフォルト:Off
Menu_Delay // メニュー表示のちらつきを抑えるための機能です、メニュー内のと同じ(数値指定)デフォルト:1000

Menu_Hotkey.ini についての説明:

MagicSave のメニューで使用するボタンをメモリースティックのルートディレクトリにコピーした MagicSave フォルダの中にある Menu_Hotkey.ini を編集することによって MagicSave 起動時の動作を変更することができます。

HotKey_Show = VolUp + VolDown
HotKey_Back = Triangle
HotKey_Select = Cross
HotKey_Up = Up
HotKey_Down = Down
HotKey_Left = Left
HotKey_Right = Right

設定を変更したい項目の赤い文字の部分を 以下の対応するものに置き換えて上書き保存します。

HotKey_Show:メニューを表示する
HotKey_Back:メニューを閉じる、前の項目へ戻る
HotKey_Select:メニュー上のアイテムを選択
HotKey_Up:メニューを 上 へ移動
HotKey_Down: メニューを 下 へ移動
HotKey_Left:メニューを 左 へ移動
HotKey_Right:メニューを 右 へ移動

ini 側へ記述する文字 対応するボタン:

SELECT = セレクト
START = スタート
Up = 十字キー 上
Right = 十字キー 右
Down = 十字キー 下
Left = 十字キー 左
LTrigger = Lトリガー
RTrigger = Rトリガー
Triangle = △
Circle = ○
Cross = ×
Square = □
HOME = HOME
HOLD = 電源側のHOLD
NOTE = ♪
SCREEN = 明るさ調整
VolUp = 音量+
VolDown = 音量-

ユーザー定義ファイルについての説明:

- MagicSaveのプラグインを有効にしていると突然フリーズしたり、メニューが表示出来なくなる
- 動作がおかしい または Magic Save側へセーブデータの読み書きがされない

これらはゲーム別に動作方法を定義したファイルを読み込ませることによって 正常動作 または 問題が解決出来る場合があります。

※上記の症状が出ないゲームはユーザー定義ファイルを用意する必要はありません

ユーザー定義ファイルの構成について:

ユーザー定義ファイルは メモリースティックの MagicSave/Config/ フォルダ内に ゲームID.txt ファイルを作り、MagicSave側へ読み込ませることで動作します。
読み込む対象はそのゲームIDに一致するファイルのみです。

MagicSave起動時に現在のゲーム(ID)と一致するファイルがあれば自動で読み込まれます。
ゲーム中にメニューの"Advanced"→"Use Config File"から Default ⇔ Current Game (ユーザー定義ファイル)と変えることで途中で切り替えることも可能です。

その際は改めてゲームIDのチェックをするので 例えば途中で別のゲームへ切り替えるプラグインを使った場合でも そのゲームに合った定義ファイルを読み込ませることが出来ます。

ゲームIDについて:

XXXXYYYYY という形式(X = 英字、Y=数字)でゲームのパッケージに書かれているのを確認する もしくは Log を有効すれば確認することが可能です。

※Log からの確認方法
例:Load Config File Failed : ms0:/MagicSave/Config/ULJS00236.txt [ Not Found ]
ULJS00236 の部分がゲームID です。

ユーザー定義ファイルへ記述可能な設定:

※大文字小文字は区別されず 空白、英字(a~zA~Z)、数字(0~9)、=(イコール)、_(アンダーバー)、,(カンマ)以外の文字を含む行は処理されません (コメント扱い)

各設定は一行へまとめて書くことは出来ません、必ず改行をあけて一つずつ記述してください。

status, mode_load, mode_save は それら3つ全てが正しく記述されていた場合のみ設定されます。

menu_mem:メニュー用に使うメモリの確保方法を変更します
突然フリーズするゲームはこの設定を変更することによって解決する場合があります。
プラグイン起動後に一度でも設定されると、違う定義ファイルを読み込ませても変更されることはありません。

low:アドレス前方からメモリを確保
high:アドレス後方からメモリを確保

※記述例
menu_mem = low
menu_mem = high

※指定なしの場合はアドレス前方(low)

fix_read:セーブデータのサイズがオリジナルと違っても強制的にMagicSaveから読み込むかどうか
※読み込み時に "Size Err" が出るゲームなどに有効
Setting.ini にある項目と同じです(ini側で設定しておけば一括指定出来る)

on = 読み込みサイズエラー修正を有効にします

※強制的に読み込ませるだけなので ゲーム側で正常処理されるかどうかは分からない

/*記述例*/
fix_read = on

※指定なしの場合は無効
 
・status = セーブデータ "読み書き" の監視方法
・mode_load = セーブデータ "書き込み" の監視方法
・mode_save = セーブデータ "読み込み" の監視方法

status, mode_load, mode_save について、さらに詳しい解説:

MagicSaveが正常動作しない場合は、そのゲームに合った設定を見つける必要があります。
その為にはまずゲーム起動後に "Logを有効" にして適当にセーブ、ロードをしてみます。
するとメモリースティックの MagicSave/Log フォルダ内に作成された Log ファイルに

Load/Save Last Data [ Status:~ , Mode:~ ]
というのが所々に記録されます。

※Ver1.2からは Engine がOffでも、Logが有効ならユーザー定義ファイル用の情報を出力するようになった

Status, Mode はそれぞれ、セーブ または ロードが実行された直前の状態を表しています。
その情報を元に status , mode_load , mode_save を設定します。

status  には ロード、セーブに共通する値を(ほとんどのゲームは "3" だけで問題ないと思われる)
mode_load には ロード したと思われる時の値を
mode_save には セーブ したと思われる時の値を

それぞれ = (イコール)の後に ,(カンマ)区切りで複数の値を指定可能 (今の仕様では最大20まで)

"Load/Save Last Data" のログから mode_load, mode_save の値をなかなか絞り込めない場合はセーブのみ、ロードのみを繰り返してみるといいでしょう。

/* 記述例 ↓のは適当な値 */
status = 1,2
status = 3

mode_save = 19
mode_save = 15,20,25

mode_load = 11,12,13,14
mode_load = 99

※">MagicSave/Config/ フォルダ内にいくつかユーザー定義ファイルのサンプルが用意してあるのでそれを見てみるのもいいでしょう

(※)プラグインを無効にする

MagicSave プラグイン を使わなくなったりして 無効にしたくなった場合は 手順6 で書き込んだ「ms0:/seplugins/MagicSave.prx 1」を

「ms0:/seplugins/MagicSave.prx 0」

に変更して 上書き保存することによって 無効になります。

関連リンク:
MagicSave - 2ちゃんねる PSP自作ソフト開発スレ






関連記事

関連エントリ抽出中...
セーブデータ直ってほっとしました

ありがとうございました
[ 2010/01/09 15:29 ] [ 編集 ]
長文ご苦労様です。
これでMPO+が楽しめます。

ちなみに初コメントです。
いつもためになってます。
これからもがんばってください。
[ 2010/01/09 16:03 ] [ 編集 ]
OPSとかのセーブデータってもともと正常なセーブデータだからどうしてもD3でやりたい人用ってな感じがする(・ω・`

何はともあれ長文の解説ご苦労様です。
[ 2010/01/09 19:11 ] [ 編集 ]
アップデートしてから、セーブデータが破損して困っていたので助かりました
[ 2010/01/09 21:43 ] [ 編集 ]
なんか、おもしろそうなプラグインですね。更新お疲れさまです。
[ 2010/01/10 12:35 ] [ 編集 ]
難しいことはよく分かんないけどようはD3で正常にセーブデータを読み込めるってことですよね。

ようやく安心してD3にうp出来るよ
[ 2010/01/10 16:55 ] [ 編集 ]
このマジックセーブの場合は同じPSPでの、アップデートによりセーブデータが使えなくなるのを修復するということですが、僕の場合はPSP-3000でゲームをしていて、ボタンの調子が悪くなり、PSP-1000でしようとしたところ、セーブデータが壊れましたと表示されました。
これってこのプラグインで直すことはできるのですか??
[ 2010/01/12 19:12 ] [ 編集 ]
jkbljkさん

PSPのバージョンを何を導入しているかを説明して下さい。

PSP-3000のバージョンよりPSP-1000バージョンが低いとセーブデータが破損する可能性があります。
場合によってはPSP-1000をバージョンアップすればこのプラグインを使わなくても、破損データにならずに済みますよ。
[ 2010/01/13 20:17 ] [ 編集 ]
chu2さん

えっとおそらくPSP-3000とPSP-1000は両方5.03GEN-D3です(またはPSP-3000は5.03GEN-Bのどちらかです)

[ 2010/01/15 18:17 ] [ 編集 ]
2.0が出ています
[ 2010/01/18 18:01 ] [ 編集 ]
コメントの投稿
※コメントは承認制となっておりますので反映に時間がかかります。













管理者にだけ表示を許可する
PS1
■PS1変換ソフト
- popstation v4
- popstation v5 

■PS1ディスク交換用ソフト
- PopstationMD Free GUI

■様々なFWのPopsが使用可能
- PopsLoader v2
- Popsloader for 5.00 M33-2
- Popsloader for 5.50 GEN
- Popsloader Extracter v0.0.2
全記事表示リンク
メールフォーム

ご要望や連絡等を受け付けております。

※質問は受け付けていませんので、記事のコメントへお願いします。

お名前:

メールアドレス:

件名:

本文:



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。