이전 MagicSave v1.X에서는 세이브데이터가 잘 작동하는 커펌 버전에서 먼저 세이브데이터를 복호화(암호화 해제)한 뒤, 최신 커펌으로 다시 업데이트해서 이 복호화된 세이브데이터를 불러오는 방식이라 상당히 복잡하고 귀찮은 과정이 필요했습니다. 하지만 MagicSave v2.0에서는 커펌 버전을 변경할 필요없이 현재 커펌에서 손상된 데이터를 강제로 불러와 복구할 수 있는 기능이 추가되어 상당히 편리해졌습니다.
이 글은 커펌 5.50 GEN-D3 또는 커펌 5.03 GEN-C for HEN으로 업데이트 후, 이전 커펌에서 사용하던 세이브 파일이 손상된 데이터로 잘못 표시되어 로드할 수 없을 경우에 이를 복구하는 방법을 다룬 것입니다. 실제로 손상된 세이브데이터는 복구할 수 없으며, 게임에 따라 복구가 불가능한 경우도 있습니다.
또 이전 글에서도 적었듯이 제가 테스트할만한 게임은 가지고 있지 않아 실제로 테스트는 하지 못했습니다. 그래도 밑져야 본전이니 한 번 테스트해보세요.
[ 설치법 / 사용법 ]
1. 위 첨부파일을 받아 압축을 풀고 그 안의 'MagicSave'와 'seplugins' 폴더를 메모리스틱 최상위에 복사합니다. (덮어쓰겠냐는 메세지가 나오면 '예'를 선택해 덮어쓰세요.)
2. ms0:/seplugins/ 폴더에 있는 game.txt 파일을 메모장으로 열어 아래의 문장을 새로 추가한 뒤 저장합니다.
ms0:/seplugins/MagicSave.prx 1
(game.txt 파일이 없다면 새로 만드세요.)3. 다른 플러그인과 충돌이 발생할 수도 있으니 game.txt에 등록된 다른 플러그인은 모두 비활성화해주시길 바랍니다.
4. 필요한 설정은 미리 해두었으니, 이제 해당하는 게임을 실행해서 세이브데이터를 불러옵니다. 이전에는 로드할 수 없었던 세이브데이터를 정상적으로 불러왔다면 복구가 성공한 것입니다.
5. 이전의 세이브데이터를 정상적으로 불러온 뒤에는 게임 내에서 다시 세이브데이터를 저장합니다. 한 번 새로 저장한 후에는 위에서 설치한 MagicSave 플러그인을 비활성화하거나 완전히 제거해도 됩니다. (설치 제거는 설치 방법의 역순.)
6. 게임의 세이브데이터 형식에 따라 복구가 불가능한 경우도 있습니다. 그냥 포기하시거나 아래 리드미 내용을 참고로 해서 여러가지 다른 방법으로 시도해보세요. (라이트 버전 사용, 엔진 모드1으로 복호화 후 로드 등등.)
7. 기타 MagicSave 플러그인의 단축키나 참고사항은 이전 MagicSave v1.0 글을 참고해주세요.
--------------------------------------------------------------------------------------------
위에서는 단순히 손상된 세이브데이터를 복구하는 방법만 간추려 적었습니다. 하지만 MagicSave 플러그인의 기능은 이보다 훨씬 더 다양한데 제가 다 설명하기에는 힘이 들어 그냥 리드미 파일의 구글 번역기 내용으로 대신합니다. (그나마도 양이 많아 직접 수정하지 못했기 때문에 이해하기 힘들 수도 있습니다. ㅜㅜ)
참고로 MagicSave v2.0의 원래 자료는 http://www1.axfc.net/uploader/Sc/so/74300.zip에서 다운로드 가능합니다.
MagicSave v2.0 리드미 내용 열기
================================================== ===========================
[이 플러그인에 대하여】
세이브 파일을 암호 해독하는 도구는 현재로서는 몇 가지 있지만
게임을 종료하고 해당 소프트웨어를 시작할 필요가 있고
GameKey도별로 찾아야 말라
번거로움이 그들뿐만 좀더 쉽게하고, 그런 이유로 만든 물건입니다
이 플러그인을 사용하면 게임에서 평소 세이브로드하는 것과 같은 감각으로
암호화되지 않은 원본 그대로의 데이터를 읽어 들이고 저장할 수있습니다
GameKey의 Dump 및 손상된 저장 파일 읽기 (복구) 가능
※ 손상된 파일 읽기는 Ver 2.0 ~ 예
세이브 파일이 손상될 수있습니다
항상 백업을하는 데주의해서 사용하세요
어떠한 손해를보고도 제작자는 책임을지지 않습니다
================================================== ===========================
[Regular Edition / Lite 버전의 차이점]
※ Ver1.2에서는, 통상 판 / Lite 버전의 차이는 메뉴 기능이 있는지 없는지 정도 그들되어있습니다
• 일반 버전 = MagicSave.prx
메뉴에서 MagicSave쪽에있는 각 기능의 상태를 게임에서도 변경 가능
* Lite Version = MagicSaveLite.prx
일반 버전에서 메뉴 표시 및 기타 불필요한 곳을 빼고
구성을 최소화하여 다른 플러그인과의 호환성을 높인 것입니다
그 이외는 통상 판과 동일합니다
* 아무리 설정을 검토해서 작동하지 않는 다른 플러그인을 사용하지 못할
* 게임 중에 메뉴에서 설정을 변경할 수 없다
그런 분들이 Lite 버전을 시험해 보면 좋을지도 모릅니다
사용자 정의 파일은 게임 (플러그 인)를 시작할 때 한 번만로드되지 않습니다
메뉴 기능이 생략되어 있기 때문에 길을 따라 각 기능의 상태를 변경하거나 할 수없습니다
※ Lite 버전은 부팅할 때 Setting.ini에서 값을 읽습니다
Engine 관계, Log, Gamekey의 Dump를 사용하려면 설정이 필요합니다
================================================== ===========================
[설치 방법]
MagicSave, seplugins 폴더를 메모리 스틱 루트 (바로 아래)에 복사
seplugins / game.txt를 열고
Normal Edition 경우
ms0 : / seplugins / MagicSave.prx 1
Lite Version 경우
ms0 : / seplugins / MagicSaveLite.prx 1
을 덧붙이기 후 저장 (game.txt이 없으면 생성)
================================================== ===========================
[Setting.ini 대하여】
메모장 등으로 열어 내용을 변경하면 MagicSave 시작 동작을 변경할 수있습니다
■ 일반 설정
Engine = 저장 파일 읽기 및 쓰기를 모니터링하는 방법을 지정
설정하는 무슨을 모르는 사람은 【Engine의 각 모드]를 참조
(Off, Mode1, Mode2) 기본값 : Mode1
DumpGameKey = 세이브 파일을 읽고 쓸 때 GameKey도 Dump 여부
(On, Off) 기본값 : Off
Log = 로그를 가지고 있는지
(On, Off) 기본값 : Off
Pad_Status = 메뉴가 표시될 때 게임 쪽 작업을 비활성화할지 여부, Lite 버전에서 사용
(On, Off) 기본값 : On
Menu_Delay = 메뉴 표시의 깜빡임을 억제하기위한 기능입니다, Lite 버전에서 사용
(On, Off) 기본값 : 1000
■ "Engine"가 "Mode1"의 경우에만 유효한 설정
Mode1_SaveType = 세이브 파일을 MagicSave 쪽 (MagicSave / Save / 게임 ID)에 기록할지 여부
(On, Off) 기본값 : On
Mode1_LoadType = 세이브 파일을 MagicSave 쪽 (MagicSave / Save / 게임 ID)에서로드할지 여부
(On, Off) 기본값 : On
Mode1_Fix_Read = 크기가 달라도 MagicSave 쪽 (MagicSave / Save / 게임 ID)에서 데이터를 로드할 것인지
Mode1에서 저장한 세이브 파일
MagicSave 쪽 (MagicSave / Save / 게임 ID)를 로드할 때
"Load Failed : ?????? [Size Err ???:???]"
오류가 로그 파일에 나오는 게임 등을 효과
(On, Off) 기본값 : Off
■ "Engine"가 "Mode2"의 경우에만 유효한 설정
Mode2_Sel_Type = 세이브 파일 저장 형식을 지정 여부
(On, Off) 기본값 : Off
※ 지정하지 않으면 현재 상태를 유지합니다
Mode2_WriteType = 세이브 파일 저장 형식을 선택
"Mode2_Sel_Type"가 "On"의 경우에만, 저장 포맷을 변경할 수
Raw = 암호화하지 않고 보존, Normal = PSP 표준으로 저장 (암호화된 상태)
(Raw, Normal) 기본값 : Normal
Mode2_Read_Invalid = 손상된 파일을로드 가능 여부
(On, Off) 기본값 : Off
※ Lite 버전은 부팅할 때 Setting.ini에서 값을 읽습니다
Engine 관계, Log, Gamekey의 Dump를 사용하려면 설정이 필요합니다
================================================== ===========================
【메뉴 조작용 Key에 관하여】
MagicSave 사이드 메뉴는 게임 시작 후 몇 초 후 사용 가능합니다
작업에 대한 Key는 다음 [Menu_Hotkey.ini 대하여】 참조
================================================== ===========================
[Menu_Hotkey.ini 대하여】
메모장 등으로 열어 내용을 변경하면 메뉴가 표시될 때 사용법을 변경할 수있습니다
HotKey_Show = 메뉴 표시
기본값 : VolUp + VolDown
HotKey_Back = 메뉴를 닫기 이전 항목으로 이동
기본값 : Triangle
HotKey_Select = 메뉴 항목을 선택
기본값 : Cross
HotKey_Up = 메뉴를 위로 이동
기본값 : Up
HotKey_Down = 메뉴를 아래로 이동
기본값 : Down
HotKey_Left = 메뉴를 왼쪽으로 이동
기본값 : Left
HotKey_Right = 메뉴를 오른쪽으로 이동
기본값 : Right
각 조작 버튼 설정 (HotKey)은 자유롭게 변경 가능 아래 물에서 여러 함께 사용할 수있습니다
ini 측에 설명하는 문자 해당 버튼
SELECT = 선택
START = 스타트
Up = 십자 키에
Right = 십자 키 오른쪽
Down = 십자가 키에
Left = 십자 키 왼쪽
LTrigger = L 트리거
RTrigger = R 트리거
Triangle = △
Circle = ○
Cross = ×
Square = □
HOME = HOME
HOLD = 공급 측면의 HOLD
NOTE = ♪
SCREEN = 밝기
VolUp = 음량 +
VolDown = 음량 -
================================================== ===========================
[Engine의 각 모드]
※ Mode1, Mode2는 세이브 파일을 읽고 쓰는 위치가 다릅니다
Mode1 = MagicSave / Save 폴더
Mode2 = PSP / SAVEDATA 폴더 (PSP 표준 폴더)
* Off = 저장 파일 읽기 / 쓰기는 모니터하지 않습니다
GameKey의 Dump도 불가합니다
Log 작동합니다
* Mode1 = 읽거나 데이터를 차단하고, 저장 파일의 암호화를 해제합니다
세이브로드시 MagicSave 쪽 (MagicSave / Save / 폴더)에이 파일을 읽고 쓸 수있습니다
■ 장점
* Mode2는 무리한 게임에 대응할 수있는지도 모른다
■ 단점
* 게임 쪽과는 별도로 MagicSave 측에도 저장 파일 읽기 및 쓰기 때문에
메모리 스틱에 부담이 배가되는
(자신이 정체 불명이지만, Mode1거나 손상된 세이브 파일을 복구 할 것 같습니다
단계로 먼저 저장 파일을 제대로 읽을 FW에서 MagicSave 측에 파일을 내보낼
그리고 눈물 취급된다 FW 게임 시작되면 적당하게 세이브를 새로 만들기를하고
그 새로 만든 데이터를 로드할 때 MagicSave 측면에서 이전에 내보낸
데이터를로드하도록하고, 그 다음에 다시 저장하면 치유하는 것 같습니다)
* Mode2 = 시스템 레벨에서 저장 파일 암호화를 해제합니다
게임 측이 읽고 쓰는 파일 자체 (/ PSP / SAVEDATA /에있는 파일) 작업
세이브 파일을 로드할 때 MagicSave 측이 파일의 상태를 자동으로 확인하고 적절한 조치를합니다
(암호화된 상태라면 복호화 처리 등)
로딩시의 처리는 사용자 측이 신경 쓸 필요가없습니다
※ 세이브,로드하는 동안 Engine의 상태를 변경 해 버리면
세이브 파일이 손상될 수있습니다
대부분의 게임은 문제 없지만, "Raw"형식으로 저장 해 버리면
일부 게임에 완전하게 복구할 수없는 손상된 파일이되어 버리는 위험이있습니다
염려될 [SaveTypeChecker 정보]를 참조하세요
■ 장점
* "Raw"형식으로 저장하는 암호화되지 않은 상태의 저장 파일
데이터 (/ PSP / SAVEDATA /???/의 파일)을 직접 편집해서
게임 쪽에서 그대로 읽을 수
(개조 service, 손상된 파일 처리를한다.)
* 게임 측이 읽고 쓰는 파일 자체를 사용하기 때문에
Mode1과 달리 메모리 스틱에 부담 (읽기 / 쓰기)이 억제되는
* 손상된 세이브 파일을 강제로 가져올 것이 가능
※ 손상된 파일을 복구 할 수있는 것은 아니기
■ 단점
* "Raw"형식으로 저장한 세이브 파일
MagicSave 플러그인이 동작하지 PSP
또는
MagicSave의 Engine이 Mode2 이외라면 읽을 수 없다
※ "Normal"로 저장하고 원래 상태로 되돌 리면 지금까지 같이 읽을 수
================================================== ===========================
【메뉴의 각 항목에 대하여】
※ Engine, Enable Pad의 상태를 변경하려면 오조 작을 방지
해당 항목을 선택하여 안에있는 항목으로 이동해야합니다
┣ "Status"저장 파일 읽기 및 쓰기, 감시 방법을 지정
┃ ┣ "Engine"Off = 사용 안 함, Mode1 * Mode2 = 효과
┃ ┃ ※ Mode1, Mode2의 차이는 [Engine의 각 모드]를 참조
┃ ┃
┃ ┣ "Use Config File"저장 파일 읽기 및 쓰기를 감시하기위한 동작 방법을 지정
┃ ┃ Default = 기본 설정, Current Game = 사용자 정의 설정
┃ ┃ "Current Game"현재 게임 지원하는 사용자 정의 파일이 있어야 선택 없음
┃ ┃ ※ 자세한 사항은 [사용자 정의 파일]을 참조
┃ ┃
┃ ┣ "Dump Gamekey"저장 파일을 읽고 쓸 때 GameKey를 Dump 여부
┃ ┃
┃ ┗ "Advanced"고급 기능, 더 세세한 설정이 가능
┃ Engine의 상태를 "Off"이라고 흐리게
┃ 자세한 사항은 【메뉴, Advanced 항목에 대하여]를 참조
┃
┃
┣ "Menu Option"메뉴 표시 관계 설정 변경
┃ ┣ "Pad"Menu_Only = 게임 쪽 작업을 무효 Menu + Game = 게임 쪽 작업을 해제하지
┃ ┗ "Delay"메뉴가 깜박일 때 조정용
┃
┗ "Log"Log 출력 여부
================================================== ===========================
【메뉴, Advanced 항목에 대하여】
Engine 상태 (Mode1, Mode2)에서 설정 가능한 항목이 다릅니다
Engine가 Off라고 안에있는 모든 항목이 작동하지 않습니다
■ Engine이 Mode1 경우
┗ "Advanced"
┗ "Save Data"
┣ "Read from MagicSave"저장 파일을 MagicSave 쪽 폴더에서로드할지 여부
┃ ([Setting.ini 대하여】의 Mode1_LoadType와 동일)
┃
┣ "Write to MagicSave"저장 파일을 MagicSave 쪽 폴더에 기록할지 여부
┃ ([Setting.ini 대하여】의 Mode1_SaveType와 동일)
┃
┃ ※ MagicSave 쓰기가 잘못 읽기만이 유효한 상태라고
┃ MagicSave에서 오래된 데이터를 읽어들이 우려가
┃ 목적으로 다른 동작을 원한다면 다른 다 설정하거나 해제하는 것이 좋다
┃
┗ "Fix Read Size"([Setting.ini 대하여】의 Mode1_Fix_Read와 동일)
여기에 지정하면 모든 게임에서이 기능을 사용할 수있습니다 (별도 지정하지 않아도)
※ 이것은 Mode2있다 "Read Invalid Data"은 완전히 다른 기능을합니다
이 옵션을 사용해서 손상된 파일을 읽을 수없습니다.
■ Engine이 Mode2 경우 ( "Mode2_Sel_Type"가 "On"의 경우에만 지정된 형식으로 저장 가능)
┗ "Advanced"
┗ "Save Data Write Type"
┣ "Select"저장 파일 저장 형식을 지정 여부
┃ ┃ ([Setting.ini 대하여】의 Mode2_Sel_Type와 동일)
┃ ┃ ※ 지정하지 않으면 현재 상태를 유지합니다
┃ ┃
┃ ┣ "Raw"암호화하지 않고 저장합니다
┃ ┃ ([Setting.ini 대하여】의 Mode2_WriteType와 동일)
┃ ┃
┃ ┗ "Normal"PSP 표준 사양 (암호화된 상태)로 저장합니다
┃ ([Setting.ini 대하여】의 Mode2_WriteType와 동일)
┃ "Raw"형식으로 한 저장 파일은 "Normal"로 저장 고치면
┃ 원래 상태 (암호화된 상태)에 복귀할 수있습니다
┗ "Etc"
┗ "Read Invalid Data"손상된 파일 처리 기간 세이브 파일을로드 가능 여부
(【Setting.ini 대하여】의 Mode2_Read_Invalid와 동일)
이상은 없는데 눈물 처리 될 파일을 복구 할 수도있습니다 (CFW의 Ver을 올린 경우 등)
※이 옵션은 강제로 읽어 들일 수있게하지만
정말 데이터 부분이 손상된 경우 게임에서 제대로 처리되지 않는 생각
================================================== ===========================
[사용자 정의 파일]
* MagicSave 플러그인을 사용하고 있으면 갑자기 메뉴가 표시 할 수 없게된다
* 동작이 재미있
이들은 게임별로 작동 방식을 정의하는 파일을로드 시켜서
정상 동작이나 문제를 해결 할 수있습니다
※ 상기의 증상이없는 게임은 사용자 정의 파일을 준비할 필요가없습니다.
■ 사용자 정의 구성 내용
사용자 정의 파일은 MagicSave / Config / 폴더
게임 ID.txt 파일을 만들고 MagicSave 측에로드하기위한 필요합니다
읽을 내용은 해당 게임 ID와 일치하는 파일만 백업합니다
MagicSave 시작할 때 현재 게임 (ID)와 일치하는 파일이 있으면 자동으로로드됩니다
**** 여기서는 보통 버전을 사용하는 경우에만 ****
게임 중에 메뉴의 "Status"→ "Use Config File"에서
Default "="Current Game (사용자 정의)로 바꾸기위한
길을 따라 전환할 수있습니다
그 때는 다시 게임 ID를 확인하기 때문에
예를 들면 중간에 다른 게임으로 전환 플러그인을 사용해도
그 게임에 맞는 정의 파일을 읽어 들일 수있습니다
**** 여기까지는 보통 버전을 사용하는 경우에만 ****
■ 게임 ID에 관하여
XXXXYYYYY 형식 (X = 글자, Y = 숫자)에서
게임 포장에 써있는 것을 확인하는가?
Log를 사용하는 경우
"Load Config File Failed : ms0 : / MagicSave/Config/ULJS00236.txt [Not Found] ←의 ULJS00236이 게임 ID
라는 항목에서 확인 가능합니다
■ 사용자 정의 파일에 작성 가능한 설정
※ 대소문자를 구분하지 않고 공백 문자 (a - zA - Z), 숫자 (0 ~ 9), = (등호), _ (밑줄), (콤마)
이외의 문자를 포함하는 행을 처리되지 않습니다 (주석 처리)
각 설정은 한줄에 한 번에 쓸 수없습니다 항상 줄 바꿈을두고 하나씩 차례로 써주세요
status, mode_load, mode_save는 Enigne 상황에서 On 그 3 가지 모두 제대로 작성되지 경우에만 설정됩니다
menu_meu은 MagicSave이 보통 만 지정 가능
* Mode1_Fix_Read = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode1"순간에만 적용)
* Mode2_Sel_Type = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode2"순간에만 적용)
* Mode2_WriteType = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode2"순간에만 적용)
* Mode2_Read_Invalid = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode2"순간에만 적용)
* Menu_Mem = 메뉴에 사용하는 메모리의 확보 방법을 변경합니다
갑자기 메뉴를 사용하지 못할 게임이 설정을 변경하여 해결할 수있습니다
플러그인 시작 후 한 번 설정하면, 다른 정의를 허용하 변경될 수없습니다
Low = 주소 전방에서 메모리를 확보, High = 주소 후방에서 메모리를 확보
/ * 작성 예 * /
Menu_Mem = Low
Menu_Mem = High
※ 지정되지 않은 경우에는 주소 전방 (low)에서
* Status = 세이브 파일 "읽기 / 쓰기"를 모니터링하는 방법
* Mode_Load = 세이브 파일 "쓰기"를 모니터링하는 방법
* Mode_Save = 세이브 파일 "읽기"를 모니터링하는 방법
■ Status, Mode_Load, Mode_Save에 대한 상세 설명
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은 선방했다고 생각하는 순간의 값을
각각 = (Equal) 다음에, (쉼표)로 구분하여 여러 값을 지정할 수있습니다 (지금의 사양은 최대 20까지)
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 / 폴더에 여러 사용자 정의 파일 예제를 제공하고 있기 때문에
그것을 보는 것도 좋을 것입니다
================================================== ===========================
[SaveTypeChecker 대하여】
Engine이 Mode2의시
* 사용자 단위로 저장 가능 (하나의 저장에)
* 각각 다른 파일로 저장된다
이 조건에 해당하는 게임은 "Raw"형식 (암호화되지 않은 상태)에 저장 해 버리면
완전히 영구적으로 손상된 파일이되어 버리는 위험이있습니다
예 : FLATOUT 등
염려될 백업 데다가 "Raw"로 저장을하고
그 세부호루다을 SaveTypeChecker.exe로 드래그 앤 드롭하여
상태를 확인하세요
※ 여러 폴더를 동시에 선택 (드래그 앤 드롭) 가능
"세부호루다 이름 = 상태
형식으로 결과가 나옵니다
상태는 Raw (unencrypted), Normal (암호화), Invalid (비활성화) 3 개입니다
"Raw"형식으로 저장된 것을 확인하고 "Raw"가 표시되면 OK
그렇지 않은 경우 "Raw"형식으로 저장을 지원 할 수없는 게임입니다
※ 안전을 100 % 보장하는 것은 아닙니다, 어디 까지나 기준 정도로하세요
================================================== ===========================
【사양 알려진 문제점】
※ Ver1.2에서 시작 직후부터 저장 파일 독서를 감시하게 된
* 파일은 반드시 암호화되지 않은 상태로된다고는 할 수 없다
(다른 게임 제작자 측이 자신의 암호를주고있는 경우가있다)
================================================== ===========================
[Q & A]
Q : MagicSave 플러그인을 사용하면 시작하지 않거나 예기치 않게 고정한다
A : 게임 모드 (Normal/M33/NP9660/OE)이나 형식 (UMD / ISO / CSO)를 바꾸면 해결 할지도 모릅니다
그래도 안될 경우 메모리 스틱에 읽고 쓰기가 집중하고있는지도 모르기 때문에,
일부 기능 (Log)를 해제하는 것만으로도 개선하는 경우가있습니다
Q : MagicSave 사용하고있는 작동하지 않는 게임이있다
A : 위의 [사용자 정의 파일]을 참조하세요
Q : Mode2에서 저장 파일 저장 포맷 (Raw, Normal)가 바꿀 수없는
A : Mode2_Sel_Type, Mode2_WriteType 다 설정되어 있어야합니다
(Setting.ini 또는 메뉴)
Mode2_Sel_Type = Off라고 아무리 Mode2_WriteType를 지정하여 저장하면
저장 파일 형식은 변경되지 않습니다
================================================== ===========================
【동작 확인]
* CFW 5.50 GEN - D2 (PSP - 1000)
* CFW 5.50 GEN - D3 (PSP - 1000)
※ 제작자는 PSP - 1000만을 소지하고 있지 않기 때문에
다른 기종에서 동작 확인은 불가입니다
각자 실제로 움직이는지 확인
================================================== ===========================
[추가 예정 기능]
*로드, 저장시 각자가 스크립트에서 데이터에 어떤 작업을 施せる 되길 바란다
(체크섬 수정 자체 암호화하고있는 게임 등에 대한 지원을 위해)
* 게임 중에 세이브 파일을 편집하기위한 편집기 같은 물도 만들고 싶다
[이 플러그인에 대하여】
세이브 파일을 암호 해독하는 도구는 현재로서는 몇 가지 있지만
게임을 종료하고 해당 소프트웨어를 시작할 필요가 있고
GameKey도별로 찾아야 말라
번거로움이 그들뿐만 좀더 쉽게하고, 그런 이유로 만든 물건입니다
이 플러그인을 사용하면 게임에서 평소 세이브로드하는 것과 같은 감각으로
암호화되지 않은 원본 그대로의 데이터를 읽어 들이고 저장할 수있습니다
GameKey의 Dump 및 손상된 저장 파일 읽기 (복구) 가능
※ 손상된 파일 읽기는 Ver 2.0 ~ 예
세이브 파일이 손상될 수있습니다
항상 백업을하는 데주의해서 사용하세요
어떠한 손해를보고도 제작자는 책임을지지 않습니다
================================================== ===========================
[Regular Edition / Lite 버전의 차이점]
※ Ver1.2에서는, 통상 판 / Lite 버전의 차이는 메뉴 기능이 있는지 없는지 정도 그들되어있습니다
• 일반 버전 = MagicSave.prx
메뉴에서 MagicSave쪽에있는 각 기능의 상태를 게임에서도 변경 가능
* Lite Version = MagicSaveLite.prx
일반 버전에서 메뉴 표시 및 기타 불필요한 곳을 빼고
구성을 최소화하여 다른 플러그인과의 호환성을 높인 것입니다
그 이외는 통상 판과 동일합니다
* 아무리 설정을 검토해서 작동하지 않는 다른 플러그인을 사용하지 못할
* 게임 중에 메뉴에서 설정을 변경할 수 없다
그런 분들이 Lite 버전을 시험해 보면 좋을지도 모릅니다
사용자 정의 파일은 게임 (플러그 인)를 시작할 때 한 번만로드되지 않습니다
메뉴 기능이 생략되어 있기 때문에 길을 따라 각 기능의 상태를 변경하거나 할 수없습니다
※ Lite 버전은 부팅할 때 Setting.ini에서 값을 읽습니다
Engine 관계, Log, Gamekey의 Dump를 사용하려면 설정이 필요합니다
================================================== ===========================
[설치 방법]
MagicSave, seplugins 폴더를 메모리 스틱 루트 (바로 아래)에 복사
seplugins / game.txt를 열고
Normal Edition 경우
ms0 : / seplugins / MagicSave.prx 1
Lite Version 경우
ms0 : / seplugins / MagicSaveLite.prx 1
을 덧붙이기 후 저장 (game.txt이 없으면 생성)
================================================== ===========================
[Setting.ini 대하여】
메모장 등으로 열어 내용을 변경하면 MagicSave 시작 동작을 변경할 수있습니다
■ 일반 설정
Engine = 저장 파일 읽기 및 쓰기를 모니터링하는 방법을 지정
설정하는 무슨을 모르는 사람은 【Engine의 각 모드]를 참조
(Off, Mode1, Mode2) 기본값 : Mode1
DumpGameKey = 세이브 파일을 읽고 쓸 때 GameKey도 Dump 여부
(On, Off) 기본값 : Off
Log = 로그를 가지고 있는지
(On, Off) 기본값 : Off
Pad_Status = 메뉴가 표시될 때 게임 쪽 작업을 비활성화할지 여부, Lite 버전에서 사용
(On, Off) 기본값 : On
Menu_Delay = 메뉴 표시의 깜빡임을 억제하기위한 기능입니다, Lite 버전에서 사용
(On, Off) 기본값 : 1000
■ "Engine"가 "Mode1"의 경우에만 유효한 설정
Mode1_SaveType = 세이브 파일을 MagicSave 쪽 (MagicSave / Save / 게임 ID)에 기록할지 여부
(On, Off) 기본값 : On
Mode1_LoadType = 세이브 파일을 MagicSave 쪽 (MagicSave / Save / 게임 ID)에서로드할지 여부
(On, Off) 기본값 : On
Mode1_Fix_Read = 크기가 달라도 MagicSave 쪽 (MagicSave / Save / 게임 ID)에서 데이터를 로드할 것인지
Mode1에서 저장한 세이브 파일
MagicSave 쪽 (MagicSave / Save / 게임 ID)를 로드할 때
"Load Failed : ?????? [Size Err ???:???]"
오류가 로그 파일에 나오는 게임 등을 효과
(On, Off) 기본값 : Off
■ "Engine"가 "Mode2"의 경우에만 유효한 설정
Mode2_Sel_Type = 세이브 파일 저장 형식을 지정 여부
(On, Off) 기본값 : Off
※ 지정하지 않으면 현재 상태를 유지합니다
Mode2_WriteType = 세이브 파일 저장 형식을 선택
"Mode2_Sel_Type"가 "On"의 경우에만, 저장 포맷을 변경할 수
Raw = 암호화하지 않고 보존, Normal = PSP 표준으로 저장 (암호화된 상태)
(Raw, Normal) 기본값 : Normal
Mode2_Read_Invalid = 손상된 파일을로드 가능 여부
(On, Off) 기본값 : Off
※ Lite 버전은 부팅할 때 Setting.ini에서 값을 읽습니다
Engine 관계, Log, Gamekey의 Dump를 사용하려면 설정이 필요합니다
================================================== ===========================
【메뉴 조작용 Key에 관하여】
MagicSave 사이드 메뉴는 게임 시작 후 몇 초 후 사용 가능합니다
작업에 대한 Key는 다음 [Menu_Hotkey.ini 대하여】 참조
================================================== ===========================
[Menu_Hotkey.ini 대하여】
메모장 등으로 열어 내용을 변경하면 메뉴가 표시될 때 사용법을 변경할 수있습니다
HotKey_Show = 메뉴 표시
기본값 : VolUp + VolDown
HotKey_Back = 메뉴를 닫기 이전 항목으로 이동
기본값 : Triangle
HotKey_Select = 메뉴 항목을 선택
기본값 : Cross
HotKey_Up = 메뉴를 위로 이동
기본값 : Up
HotKey_Down = 메뉴를 아래로 이동
기본값 : Down
HotKey_Left = 메뉴를 왼쪽으로 이동
기본값 : Left
HotKey_Right = 메뉴를 오른쪽으로 이동
기본값 : Right
각 조작 버튼 설정 (HotKey)은 자유롭게 변경 가능 아래 물에서 여러 함께 사용할 수있습니다
ini 측에 설명하는 문자 해당 버튼
SELECT = 선택
START = 스타트
Up = 십자 키에
Right = 십자 키 오른쪽
Down = 십자가 키에
Left = 십자 키 왼쪽
LTrigger = L 트리거
RTrigger = R 트리거
Triangle = △
Circle = ○
Cross = ×
Square = □
HOME = HOME
HOLD = 공급 측면의 HOLD
NOTE = ♪
SCREEN = 밝기
VolUp = 음량 +
VolDown = 음량 -
================================================== ===========================
[Engine의 각 모드]
※ Mode1, Mode2는 세이브 파일을 읽고 쓰는 위치가 다릅니다
Mode1 = MagicSave / Save 폴더
Mode2 = PSP / SAVEDATA 폴더 (PSP 표준 폴더)
* Off = 저장 파일 읽기 / 쓰기는 모니터하지 않습니다
GameKey의 Dump도 불가합니다
Log 작동합니다
* Mode1 = 읽거나 데이터를 차단하고, 저장 파일의 암호화를 해제합니다
세이브로드시 MagicSave 쪽 (MagicSave / Save / 폴더)에이 파일을 읽고 쓸 수있습니다
■ 장점
* Mode2는 무리한 게임에 대응할 수있는지도 모른다
■ 단점
* 게임 쪽과는 별도로 MagicSave 측에도 저장 파일 읽기 및 쓰기 때문에
메모리 스틱에 부담이 배가되는
(자신이 정체 불명이지만, Mode1거나 손상된 세이브 파일을 복구 할 것 같습니다
단계로 먼저 저장 파일을 제대로 읽을 FW에서 MagicSave 측에 파일을 내보낼
그리고 눈물 취급된다 FW 게임 시작되면 적당하게 세이브를 새로 만들기를하고
그 새로 만든 데이터를 로드할 때 MagicSave 측면에서 이전에 내보낸
데이터를로드하도록하고, 그 다음에 다시 저장하면 치유하는 것 같습니다)
* Mode2 = 시스템 레벨에서 저장 파일 암호화를 해제합니다
게임 측이 읽고 쓰는 파일 자체 (/ PSP / SAVEDATA /에있는 파일) 작업
세이브 파일을 로드할 때 MagicSave 측이 파일의 상태를 자동으로 확인하고 적절한 조치를합니다
(암호화된 상태라면 복호화 처리 등)
로딩시의 처리는 사용자 측이 신경 쓸 필요가없습니다
※ 세이브,로드하는 동안 Engine의 상태를 변경 해 버리면
세이브 파일이 손상될 수있습니다
대부분의 게임은 문제 없지만, "Raw"형식으로 저장 해 버리면
일부 게임에 완전하게 복구할 수없는 손상된 파일이되어 버리는 위험이있습니다
염려될 [SaveTypeChecker 정보]를 참조하세요
■ 장점
* "Raw"형식으로 저장하는 암호화되지 않은 상태의 저장 파일
데이터 (/ PSP / SAVEDATA /???/의 파일)을 직접 편집해서
게임 쪽에서 그대로 읽을 수
(개조 service, 손상된 파일 처리를한다.)
* 게임 측이 읽고 쓰는 파일 자체를 사용하기 때문에
Mode1과 달리 메모리 스틱에 부담 (읽기 / 쓰기)이 억제되는
* 손상된 세이브 파일을 강제로 가져올 것이 가능
※ 손상된 파일을 복구 할 수있는 것은 아니기
■ 단점
* "Raw"형식으로 저장한 세이브 파일
MagicSave 플러그인이 동작하지 PSP
또는
MagicSave의 Engine이 Mode2 이외라면 읽을 수 없다
※ "Normal"로 저장하고 원래 상태로 되돌 리면 지금까지 같이 읽을 수
================================================== ===========================
【메뉴의 각 항목에 대하여】
※ Engine, Enable Pad의 상태를 변경하려면 오조 작을 방지
해당 항목을 선택하여 안에있는 항목으로 이동해야합니다
┣ "Status"저장 파일 읽기 및 쓰기, 감시 방법을 지정
┃ ┣ "Engine"Off = 사용 안 함, Mode1 * Mode2 = 효과
┃ ┃ ※ Mode1, Mode2의 차이는 [Engine의 각 모드]를 참조
┃ ┃
┃ ┣ "Use Config File"저장 파일 읽기 및 쓰기를 감시하기위한 동작 방법을 지정
┃ ┃ Default = 기본 설정, Current Game = 사용자 정의 설정
┃ ┃ "Current Game"현재 게임 지원하는 사용자 정의 파일이 있어야 선택 없음
┃ ┃ ※ 자세한 사항은 [사용자 정의 파일]을 참조
┃ ┃
┃ ┣ "Dump Gamekey"저장 파일을 읽고 쓸 때 GameKey를 Dump 여부
┃ ┃
┃ ┗ "Advanced"고급 기능, 더 세세한 설정이 가능
┃ Engine의 상태를 "Off"이라고 흐리게
┃ 자세한 사항은 【메뉴, Advanced 항목에 대하여]를 참조
┃
┃
┣ "Menu Option"메뉴 표시 관계 설정 변경
┃ ┣ "Pad"Menu_Only = 게임 쪽 작업을 무효 Menu + Game = 게임 쪽 작업을 해제하지
┃ ┗ "Delay"메뉴가 깜박일 때 조정용
┃
┗ "Log"Log 출력 여부
================================================== ===========================
【메뉴, Advanced 항목에 대하여】
Engine 상태 (Mode1, Mode2)에서 설정 가능한 항목이 다릅니다
Engine가 Off라고 안에있는 모든 항목이 작동하지 않습니다
■ Engine이 Mode1 경우
┗ "Advanced"
┗ "Save Data"
┣ "Read from MagicSave"저장 파일을 MagicSave 쪽 폴더에서로드할지 여부
┃ ([Setting.ini 대하여】의 Mode1_LoadType와 동일)
┃
┣ "Write to MagicSave"저장 파일을 MagicSave 쪽 폴더에 기록할지 여부
┃ ([Setting.ini 대하여】의 Mode1_SaveType와 동일)
┃
┃ ※ MagicSave 쓰기가 잘못 읽기만이 유효한 상태라고
┃ MagicSave에서 오래된 데이터를 읽어들이 우려가
┃ 목적으로 다른 동작을 원한다면 다른 다 설정하거나 해제하는 것이 좋다
┃
┗ "Fix Read Size"([Setting.ini 대하여】의 Mode1_Fix_Read와 동일)
여기에 지정하면 모든 게임에서이 기능을 사용할 수있습니다 (별도 지정하지 않아도)
※ 이것은 Mode2있다 "Read Invalid Data"은 완전히 다른 기능을합니다
이 옵션을 사용해서 손상된 파일을 읽을 수없습니다.
■ Engine이 Mode2 경우 ( "Mode2_Sel_Type"가 "On"의 경우에만 지정된 형식으로 저장 가능)
┗ "Advanced"
┗ "Save Data Write Type"
┣ "Select"저장 파일 저장 형식을 지정 여부
┃ ┃ ([Setting.ini 대하여】의 Mode2_Sel_Type와 동일)
┃ ┃ ※ 지정하지 않으면 현재 상태를 유지합니다
┃ ┃
┃ ┣ "Raw"암호화하지 않고 저장합니다
┃ ┃ ([Setting.ini 대하여】의 Mode2_WriteType와 동일)
┃ ┃
┃ ┗ "Normal"PSP 표준 사양 (암호화된 상태)로 저장합니다
┃ ([Setting.ini 대하여】의 Mode2_WriteType와 동일)
┃ "Raw"형식으로 한 저장 파일은 "Normal"로 저장 고치면
┃ 원래 상태 (암호화된 상태)에 복귀할 수있습니다
┗ "Etc"
┗ "Read Invalid Data"손상된 파일 처리 기간 세이브 파일을로드 가능 여부
(【Setting.ini 대하여】의 Mode2_Read_Invalid와 동일)
이상은 없는데 눈물 처리 될 파일을 복구 할 수도있습니다 (CFW의 Ver을 올린 경우 등)
※이 옵션은 강제로 읽어 들일 수있게하지만
정말 데이터 부분이 손상된 경우 게임에서 제대로 처리되지 않는 생각
================================================== ===========================
[사용자 정의 파일]
* MagicSave 플러그인을 사용하고 있으면 갑자기 메뉴가 표시 할 수 없게된다
* 동작이 재미있
이들은 게임별로 작동 방식을 정의하는 파일을로드 시켜서
정상 동작이나 문제를 해결 할 수있습니다
※ 상기의 증상이없는 게임은 사용자 정의 파일을 준비할 필요가없습니다.
■ 사용자 정의 구성 내용
사용자 정의 파일은 MagicSave / Config / 폴더
게임 ID.txt 파일을 만들고 MagicSave 측에로드하기위한 필요합니다
읽을 내용은 해당 게임 ID와 일치하는 파일만 백업합니다
MagicSave 시작할 때 현재 게임 (ID)와 일치하는 파일이 있으면 자동으로로드됩니다
**** 여기서는 보통 버전을 사용하는 경우에만 ****
게임 중에 메뉴의 "Status"→ "Use Config File"에서
Default "="Current Game (사용자 정의)로 바꾸기위한
길을 따라 전환할 수있습니다
그 때는 다시 게임 ID를 확인하기 때문에
예를 들면 중간에 다른 게임으로 전환 플러그인을 사용해도
그 게임에 맞는 정의 파일을 읽어 들일 수있습니다
**** 여기까지는 보통 버전을 사용하는 경우에만 ****
■ 게임 ID에 관하여
XXXXYYYYY 형식 (X = 글자, Y = 숫자)에서
게임 포장에 써있는 것을 확인하는가?
Log를 사용하는 경우
"Load Config File Failed : ms0 : / MagicSave/Config/ULJS00236.txt [Not Found] ←의 ULJS00236이 게임 ID
라는 항목에서 확인 가능합니다
■ 사용자 정의 파일에 작성 가능한 설정
※ 대소문자를 구분하지 않고 공백 문자 (a - zA - Z), 숫자 (0 ~ 9), = (등호), _ (밑줄), (콤마)
이외의 문자를 포함하는 행을 처리되지 않습니다 (주석 처리)
각 설정은 한줄에 한 번에 쓸 수없습니다 항상 줄 바꿈을두고 하나씩 차례로 써주세요
status, mode_load, mode_save는 Enigne 상황에서 On 그 3 가지 모두 제대로 작성되지 경우에만 설정됩니다
menu_meu은 MagicSave이 보통 만 지정 가능
* Mode1_Fix_Read = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode1"순간에만 적용)
* Mode2_Sel_Type = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode2"순간에만 적용)
* Mode2_WriteType = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode2"순간에만 적용)
* Mode2_Read_Invalid = Setting.ini에있는 항목과 동일합니다 (※ "Engine"가 "Mode2"순간에만 적용)
* Menu_Mem = 메뉴에 사용하는 메모리의 확보 방법을 변경합니다
갑자기 메뉴를 사용하지 못할 게임이 설정을 변경하여 해결할 수있습니다
플러그인 시작 후 한 번 설정하면, 다른 정의를 허용하 변경될 수없습니다
Low = 주소 전방에서 메모리를 확보, High = 주소 후방에서 메모리를 확보
/ * 작성 예 * /
Menu_Mem = Low
Menu_Mem = High
※ 지정되지 않은 경우에는 주소 전방 (low)에서
* Status = 세이브 파일 "읽기 / 쓰기"를 모니터링하는 방법
* Mode_Load = 세이브 파일 "쓰기"를 모니터링하는 방법
* Mode_Save = 세이브 파일 "읽기"를 모니터링하는 방법
■ Status, Mode_Load, Mode_Save에 대한 상세 설명
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은 선방했다고 생각하는 순간의 값을
각각 = (Equal) 다음에, (쉼표)로 구분하여 여러 값을 지정할 수있습니다 (지금의 사양은 최대 20까지)
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 / 폴더에 여러 사용자 정의 파일 예제를 제공하고 있기 때문에
그것을 보는 것도 좋을 것입니다
================================================== ===========================
[SaveTypeChecker 대하여】
Engine이 Mode2의시
* 사용자 단위로 저장 가능 (하나의 저장에)
* 각각 다른 파일로 저장된다
이 조건에 해당하는 게임은 "Raw"형식 (암호화되지 않은 상태)에 저장 해 버리면
완전히 영구적으로 손상된 파일이되어 버리는 위험이있습니다
예 : FLATOUT 등
염려될 백업 데다가 "Raw"로 저장을하고
그 세부호루다을 SaveTypeChecker.exe로 드래그 앤 드롭하여
상태를 확인하세요
※ 여러 폴더를 동시에 선택 (드래그 앤 드롭) 가능
"세부호루다 이름 = 상태
형식으로 결과가 나옵니다
상태는 Raw (unencrypted), Normal (암호화), Invalid (비활성화) 3 개입니다
"Raw"형식으로 저장된 것을 확인하고 "Raw"가 표시되면 OK
그렇지 않은 경우 "Raw"형식으로 저장을 지원 할 수없는 게임입니다
※ 안전을 100 % 보장하는 것은 아닙니다, 어디 까지나 기준 정도로하세요
================================================== ===========================
【사양 알려진 문제점】
※ Ver1.2에서 시작 직후부터 저장 파일 독서를 감시하게 된
* 파일은 반드시 암호화되지 않은 상태로된다고는 할 수 없다
(다른 게임 제작자 측이 자신의 암호를주고있는 경우가있다)
================================================== ===========================
[Q & A]
Q : MagicSave 플러그인을 사용하면 시작하지 않거나 예기치 않게 고정한다
A : 게임 모드 (Normal/M33/NP9660/OE)이나 형식 (UMD / ISO / CSO)를 바꾸면 해결 할지도 모릅니다
그래도 안될 경우 메모리 스틱에 읽고 쓰기가 집중하고있는지도 모르기 때문에,
일부 기능 (Log)를 해제하는 것만으로도 개선하는 경우가있습니다
Q : MagicSave 사용하고있는 작동하지 않는 게임이있다
A : 위의 [사용자 정의 파일]을 참조하세요
Q : Mode2에서 저장 파일 저장 포맷 (Raw, Normal)가 바꿀 수없는
A : Mode2_Sel_Type, Mode2_WriteType 다 설정되어 있어야합니다
(Setting.ini 또는 메뉴)
Mode2_Sel_Type = Off라고 아무리 Mode2_WriteType를 지정하여 저장하면
저장 파일 형식은 변경되지 않습니다
================================================== ===========================
【동작 확인]
* CFW 5.50 GEN - D2 (PSP - 1000)
* CFW 5.50 GEN - D3 (PSP - 1000)
※ 제작자는 PSP - 1000만을 소지하고 있지 않기 때문에
다른 기종에서 동작 확인은 불가입니다
각자 실제로 움직이는지 확인
================================================== ===========================
[추가 예정 기능]
*로드, 저장시 각자가 스크립트에서 데이터에 어떤 작업을 施せる 되길 바란다
(체크섬 수정 자체 암호화하고있는 게임 등에 대한 지원을 위해)
* 게임 중에 세이브 파일을 편집하기위한 편집기 같은 물도 만들고 싶다
* 관련글 보기 *
손상된 세이브데이터 복구 - MagicSave v1.0