[5.05] 세이브 파일 활용법

같은 게임이지만 타이틀 ID가 다른 게임(즉 유럽 버전이나 북미버전, 아시아 버전 등)의 세이브 데이터나, 다른 콘솔에서 저장된 세이브 데이터를 활용하는 방법이 나왔네요.^^

일단 필요한 파일을 받으시고요.

  • PS4 Save Mounter
  • NetCat GUI.zip (2.2 MB) : 이건 꼭 필요한건 아니에요. 페이로드를 보낼 줄만 알면 돼요.^^
  • FileZilla : 이것 역시 다른 FTP 클라이언트를 써도 되지만 젤 많이 쓰는거죠.^^
  • Save Repository (Discussion) : 여긴 현재 논의가 계속되면서 유저들이 세이브 데이터를 올리는 곳입니다. 다운 받아서 사용할 수 있겠죠?^^

 

아주 쉽게 전체적인 구도를 그려보자면 아래와 같이 진행됩니다. A게임의 세이브 파일을 타이틀 아이디는 다르지만 같은 게임인 B에 적용할 때: PC와 플포가 당근 한 넷웍에 물려 있어야만 합니다.

0. 실행 전에 가능하면 세이브 데이터들을 백업해 놓고 시작하세요.^^

1.  A를 실행하고 최종 세이브를 마친 상태에서 게임을 닫지 않고 XMB로 나온다.

2. 익스플로잇 메뉴에서 BIN Loader를 실행하여 페이로드를 받을 수 있는 상태로 놔둔다.

3. PC에서 NetCat이나 기타 페이로드 인젝터를 사용하여 ps4debug.bin을 플포로 보낸다.
(NetCat에서는 포트를 9020으로 설정해야함)

4. 그 상태에서 다시 익스플로잇 메뉴로 가서 FTP 페이로드를 먹인다.

5. PS4 save mounter를 실행하고 플포의 IP를 쓴 뒤 connect한다.

6. mounter에서 refresh processes를 누르고 드랍다운 메뉴에서 eboot.bin을 선택한다.(어떤 게임은 아닐 수도 있지만 대부분은 eboot.bin임)

7. mounter에서 setup 버튼을 누르고 Find Drs.에서 방금 세이브를 마친 디렉토리를 선택한다. 게임에서 quicksave가 나왔으면 QUICKSAVE0 디렉토리가 나타나 있다.

8. 디렉토리 하단의 드랍 다운 메뉴에서 READ/WRITE를 선택한 뒤 mount 버튼을 누른다.

9. 그 상태에서 파일 질라 등의 FTP 클라이언트를 실행하여 플포에 접속한다.(포트는 1337)

10. mmt/sandbox/CUSAXXXXX_000(실행 중인 A게임의 ID)/savedata0 폴더를 찾아 폴더째 PC로 복사한다. 이 폴더에 세이브 데이터가 들어 있는거고 이걸 압축해서 공유할 수 있는거죠. 파일 질라를 종료한다.

11. 이제 PC에서 ps4 save mounter를 unmount버튼으로 작업을 일단 종료시키고 A를 끝낸다.

이제부터는 가져온 데이터를 적용하는 방법이에요.

12. B를 실행하고 NEW 게임으로 시작한 뒤 역시 게임 상태에서 XMB로 나온다.

13. 익스플로잇 메뉴로 가서 FTP 페이로드를 먹인다.

14. PC에서 PS4 save mounter를 실행하고 플포의 IP를 쓴 뒤 connect한다.

15. 위 6-7번의 과정을 반복하고 Find Drs. 를 보면, 그냥 게임만 시작했을 경우엔 AUTOSAVEn 디렉토리들을 발견할 수 있다. n의 숫자가 마지막인게 가장 최근 세이브 폴더라고 보면 된다는데 이건 확실치는 않아요. 어쨌든 마지막 숫자, 예를 들어 AUTOSAVE3 정도를 선택한다. 그리고 mount 버튼을 누른다.

16. 파일 질라를 실행한 뒤 플포에 접속하고 mmt/sandbox/CUSAXXXXX_000(실행 중인 B게임의 ID)/savedata0 폴더로 들어 간다.

17. savedata0 폴더 안에 checkpoint.dat 파일이 있을 것이다. 위 10번에서 PC로 복사해 놓은 savedata0 폴더의 checkpoint.dat파일을 가져와 덮어 씌운다. savedata0 폴더 안의 sce_sys 폴더의 내용은 옮길 필요가 없고 옮겨서는 안돼요.^^

18. PC에서 mounter를 unmount 버튼을 눌러 끝낸다. FTP를 접속한 상태로 이렇게 할 경우 FTP를 새로 고침하면 savedata0 폴더 전체가 사라진걸 보게 된다. (정상인거에요^^)

19. 이제 플포 XMB에서(실행 중 나와 있는 상태) 그대로 B 게임을 닫고 다시 B를 실행한다. 그럼 A의 세이브가 적용된 걸 확인할 수 있다.^^

게임에 따라 잘 안될 수도 있어요.^^ 자세한 것은 아래 영상을 참고하세요.^^

 

 

 

[5.05] 타이틀 ID가 다른 업뎃 파일 적용법

같은 게임이지만 발매한 곳에 따라 타이틀 ID가 다른 경우, 게임 업뎃파일 역시 타이틀 ID에 맞춰서 적용을 해줘야만 하죠. 하지만 내가 가진 게임의 타이틀 ID와 다른 게임 업뎃 파일 밖에 구할 수 없다면 이럴 때는 어떻게 해야할까요? 이걸 해결하기 위한 방법이 나와서 정리해 둡니다. 아마도 fpkg파일을 풀고 편집할 수 있고 gengp4의 패러미터들을 이해할 수 있는 분들이라면 이 정도는 문제가 되지 않을꺼에요.^^ 여하튼 정리해봅니다.

0. 아래 모든 pkg 파일들은 풀 수 있는 fpkg 파일(패스코드를 알고 있는, 대부분 00000…. 이겠죠?)을 의미합니다.

준비물: fake pkg tools 최신 버전, 다운로드는 여기입니다.
gengp4 최신 버전, 다운로드는 여기입니다.
HxD Hex 에디터. 이건 알아서 구하셈.^^

 

1.  orbis-pub-chk.exe로 게임 pkg 파일에서 param.sfo 파일을 추출한다(Sc0/param.sfo). 이걸 일단 잘 보관해 놓으세염.^^

2. 추출 후 패치 pkg 파일을 열고 모든 파일을 임의의 폴더에 풀어낸다. 풀어낸 내용물 중, Sc0 폴더 이하의 모든 파일과 폴더들을 Image0/sce_sys/ 로 옮긴다. 모두 덮어 씌우면 돼요. 그리고 비어있는 Sc0폴더는 삭제하세요.^^

3. 1에서 추출했던 원게임 param.sfo 파일을 2번의 Image0/sce_sys/로 덮어 씌운다.

4. Hex 에디터로 덮어 씌운 param.sfo 파일을 열고 우측 중간쯤에 있는 TITLE_ID.VERSION… 아래에 있는 숫자 1.00 을 업뎃 버전에 맞게 수정해 준다. 이건 패치 파일 pkg에 나와 있는 숫자를 쓰면 돼요. pkg 파일명의 맨 뒤에 나타난 A01XX-V01XX.pkg 에서 A0뒤의 세 숫자가 버전인거죠.^^ 그리고 숫자 바로 하단의 gd(game disc)를 gp(game patch)로 수정해준다.

5. 역시 Hex 에디터로 같은 폴더에 있는 nptitle.dat 파일을 열고 둘째 줄에 있는 title ID를 원본 게임 title ID로 바꾼다. 이거 중요하겠죠? 수정 후에 세이브 하는거 잊지 마세요. 그리고 bak파일이 생성되었다면 모두 삭제해야 합니다.

6. 4에서 수정한 param.sfo를 다른 폴더로 복사해서 보관한다. 이건 왜냐하면 gengp4로 작업할 경우 안의 내용이 바뀌기 때문이에요.

7. gengp4를 실행한 후 위의 Image0 폴더를 클릭한 뒤 generate.GP4 버튼을 누르고 GP4를 만든 다음 좌측에 있는 log/gp4 탭 중 gp4를 눌러서 형성된 내용을 확인한다. 여기에서 <volume type> pkg_GP4_app </volume type> 에서 _app을 _patch 로 수정한다. 그리고 3~4줄 아래에 있는 내용 중 storage_type=”digital50″ 을 찾아 “digital25″로 수정한다. 수정 후 save.GP4로 파일을 저장한다.

8. Image0/sce_sys 폴더의 param.sfo 파일을 지우고 위 6번에서 보관했던 파일을 붙여 넣는다. 덮어 씌워도 돼염^^  Hex 에디터로 버전을 다시 확인해봐도 좋겠죠?^^

9. orbis-pup-gen.exe를 실행한 후 7번에서 만든 gp4 파일을 불러온 후, command -> project setting -> package에서 storage type이 25GB인지 확인한 다음, patch 탭을 눌러 application package에서 원본 게임 pkg를 지정한다. 이건 패치 파일 만들어본 분들은 다 아시겠죠?^^

10. ok 를 누르고 나와서 build 버튼을 눌러 경로 지정해주고 Build로 패치 파일 만드는 작업을 시작하면 된다. 에러 없이 잘 진행되면 된거죠. warning 나오는건 무시해도 돼요.^^

자세한건 아래 영상을 보면 이해가 더 빠를거에요.^^

[5.05] 외장 스토리지 사용시 주의사항

이건 뭐 다 아시리라 생각합니다만, 그래도 혹시 모르시는 분들을 위해 써 놓습니다.

플포에 USB 외장 스토리지를 사용해서 컨텐츠를 설치했을 경우, 이걸 사용하지 않고 빼 놓을 땐 반드시 PS 버튼을 누르고 Quick Menu로 들어가서 Sound/Device -> Stop Using Extended  Storage를 눌러서 제거를 해야 합니다. 안 그러면 기껏 설치한 모든 컨텐츠가 날아가요.^^ 플포를 끈 후에 제거해도 이건 마찬가지랍니다. 그러니 주의하세요. 그리고 플포에서 포맷한 외장 스토리지는 PC에서 열리지 않아요. 뭐 언젠가는 이것을 읽을 수 있는 날도 오긴 오겠죠.^^

[5.05] DLC 덤핑하기

DLC를 덤프하는 방법이에요. FTP를 써서 덤프하는 kitchen법이랑 아주 비슷하답니다.

DLC Dumping (with Extra Data):

  1. 원하는 게임을 실행하고 메인 메뉴에서 PS 버튼을 눌러 XMB로 빠져 나온다.
  2. FTP 페이로드를 올린다.
  3. PC에서 파일질라 등으로 플포 IP:1337 로 접속해서 내장 하드 드라이브에 접근한다.
  4. /mnt/sandbox/pfsmnt/에서 마지막이 ‘-ac’로 끝나는 디렉토리들을 PC로 전송한다.
  5. fake pkg generator 패키지에 포함된 orbis-pub-sfo.exe 실행하고 아래와 같이 써 넣는다.
  • category: ‘(PS4) Additional Content’
  • ContentID: 정확한 컨텐트 ID. 예를들어 ‘EP0177-CUSA06211_00-DIVAFT39FUTURE00’
  • 왼편의 Title Text를 누르고 AC title (Default Language)에 DLC의 이름을 넣는다.(예를들어 ‘Hatsune Miku: Project DIVA Future Tone Future Sound’)
  • File -> Save 로 저장하되, 위치는 덤프한 DLC 디렉토리 안의 sce_sys 디렉토리에 param.sfo 이름으로 저장한다. (예를 들어 ‘EP0177-CUSA06211_00-DIVAFT39FUTURE00-ac/sce_sys/param.sfo’)

6. orbis -pub-gen.exe을 실행한 뒤 File -> New Project -> Additional Content Package with Extra Data를 선택한다.
7. Image0을 더블 클릭한 후 열리면 거기에 위의 DLC 디렉토리 안의 모든 내용 파일과 서브 디렉토리를 집어 넣는다. (드롭 다운)
8. 창을 닫고 Commands -> Project settings -> Package 를 누른 뒤, 컨텐트 ID를 쓰고 (예를 들어 EP0177-CUSA06211_00-DIVAFT39FUTURE00) 패스코드를 넣는다. (당근 000… 이겠죠? 원 게임도 이게 같은지 확인하세요.^^)
9. Command -> Build Image 에서 저장할 패스를 지정해 주고 build를 눌러 파일을 만든다.

참 쉽죠?^^

 

DLC Dumping (without Extra Data – DLC unlocks):

이거 할 때는 정확한 컨텐트ID가 필요해요. Playstaion Store 웹에서 DLC를 찾으면 컨텐트ID가 URL에 표시되겠죠?^^ DLC를 선택하고 왼쪽의 사이즈 정보에 파일 사이즈가 없다면 그건 exrtra data가 아니라 unlock DLC라는걸 알 수 있을거에요.^^

또한 PSDLE 웹 브라우저 익스텐션을 써도 돼요. delisted DLCs, promo DLCs 또는 Preorder DLCs 등이 해당되는데 이것들은 pkg 링크는 없지만 정확한 컨텐트ID는 제공된다고 하네요.

 

 <python3를 쓰는 간단한 방법>

1. ez_fake_dlc.py 를 다운 받아서 Fake PKG generator 디렉토리 안에 넣는다.
2. CMD에서 그걸 실행시킨 후 컨텐트ID와 이름을 패러미터로 집어 넣는다.
(예를들어 ez_fake_dlc.py EP9000-CUSA04943_00-ACEUCROWXXXXXXXX “Gravity Rush 2: The Ark of Time – Raven’s Choice”)
3. 그럼 fpkg unlock DLC 파일들이 ‘fake_dlc_pkg’ 디렉토리에 만들어진다.

참 쉽죠?^^

 

<수동 방법>

1. orbis -pub-sfo.exe 을 실행한 후

  • category: ‘(PS4) Additional Content’
  • ContentID: 정확한 컨텐트 ID. 예) ‘UP9000-CUSA03694_00-ACUSCROWXXXXXXXX’
  • 왼편의 Title Text를 누르고 AC title (Default Language)에 DLC의 이름을 넣는다.(예를들어 ‘Gravity Rush 2: The Ark of Time – Raven’s Choice’)
  • File -> Save 로 저장하되, 위치는 아무 디렉토리 안의 sce_sys 디렉토리에 param.sfo 이름으로 저장한다. (예를 들어 ‘DLC_unlock/sce_sys/param.sfo’)

2. orbis -pub-gen.exe을 실행한 뒤 File -> New Project -> Additional Content Package without Extra Data를 선택한다.
3.  Image0을 더블 클릭한 후 열리면 위에서 반든 sce_sys와 param.sfo 파일을 집어 넣는다. (드롭 다운)
4. 창을 닫고 Commands -> Project settings -> Package 를 누른 뒤, 컨텐트 ID를 쓰고 (예를 들어 UP9000-CUSA03694_00-ACUSCROWXXXXXXXX) 패스코드를 넣는다. (당근 000… 이겠죠? 원 게임도 이게 같은지 확인하세요.^^)
5.  Command -> Build Image 에서 저장할 패스를 지정해 주고 build를 눌러 파일을 만든다.

참 쉽죠?^^ 이제 DLC를 마음껏 즐기세요.^^

[5.05] 기존 세이브 파일을 살리려면…[업뎃1]

update1: Summon Night6 Lost Borders (CUSA05630)로 테스트했어요. 완벽하게 되네요.^^

 


 

원본 디스크로 게임을 즐기다가 덤프해서 fpkg파일로 백업을 만들어 플포에 설치하면 기존 세이브가 corrupt로 표시되어 전혀 사용할 수 없었죠?^^ 저도 망해봐서 알아요.ㅠㅠㅠ 그런데 이제 기존 디스크로 즐기던 게임의 세이브 파일을 그대로 사용할 수 있는 방법이 나왔네요.^^

잠시 개념 정리를 위해 설명을 드리자면, 세이브 파일은 keystone 파일과 관련이 있답니다. 이건 각 디스크의 내용 안에 포함되어 있고 업데이트/패치 파일엔 존재하지 않아요. 당근이겠죠? 패치 파일에 이게 있다면 패치 후 세이브를 사용하지 못하게 될테니까요. keystone 파일은 모든 플포 게임에 있는데, 이건 패스코드에 기반되어 만들어지는거랍니다. 그런데 fpkg를 만들 때 패스코드가 바뀌고 -대부분 0000….을 사용하죠?- 그렇기 때문에 게임 타이틀 ID가 같음에도 플포는 이걸 잘못된 세이브 파일로 인지하는거랍니다.^^

그럼 어떻게 하면 될까요? 당근 fpkg를 만들고 거기에 오리지널 keystone 파일을 넣어주면 돼요. 문제는 원래 게임의 패스코드를 알 수 없으므로 만들 때 이걸 넣을 수는 없고 만든 후에 강제로 밀어 넣는 방법을 씁니다.

<방법>

1. fpkg를 만들 때 orbis-pub-gen.exe을 실행한 후 build 누르고 옵션에서 modifiable pkg를 선택합니다. ^^

2. 게임 덤프에서 keystone 파일을 fpkg에 밀어넣습니다. 아래 처럼 해주면 돼요. orbis-pub-cmd.exe 파일이 당근 필요하겠죠?^^

orbis-pub-cmd.exe pkg_file_add –passcode 00000000000000000000000000000000 –force X:\CUSAXXXX-app\sce_sys\keystone sce_sys/keystone X:\<file name>.pkg

* X:\CUSAXXXX-app 에는 덤프한 app 폴더 경로, X:\<file name>.pkg에는 1에서 만든 fpkg 파일의 경로와 파일명을 정확히 써 넣으세요.^^

3. 만든 fpkg를 설치한 후 기존 세이브 파일을 읽어보세요.^^

* 어떤 게임은 세이브데이터를 수정해야 하는 경우도 있다네요. 그러니까 다 성공하는건 아니에요. 세이브 데이터 수정 방법은 알아내는대로 또 포스팅할게요.^^