안녕하십니까.
우연히 세이브파일을 옮기고 싶으시단 글을 읽고 예전에 제 아이가 열심히 했던 젤다 세이브를 옮겨주기위해 작업을 진행해보았습니다.
제 환경은 정펌 7.0.0 스위치 : 젤다 세이브가 저장됨 ㅋㅍ 6.2.0 스위치 : 옮겨질 곳 입니다.
우선 정펌 7.0.0에서 세이브 파일을 추출해야 합니다. 세이브 파일을 추출하기 위해선 NAND의 USER 파티션을 읽어야 합니다. 해당 파티션을 읽기 위해선 BIS 3번 키가 필요합니다.
biskey를 얻기 위해선 biskeydemp v8 을 이용해 키를 얻습니다. 이제 USER 파티션을 마운트하고 세이브 파일을 읽습니다. https://guide.sdsetup.com/#/manualchoidowngrade STEP 12를 참고합니다.
1. RCM 진입 2. memloader v3주입 (emmc rawNAND) 3. hacdiskmount 관리자권한 실행 4. open Physical Drive 클릭 5. Linux UMS disk 0 선택 6. USER 파티션 더블클릭 7. BIS 키 입력 8. Virtual Drive 영역의 Read only, Passthrough zeroes 둘다 선택 9. 빈 드라이브 문자 설정 (빈거면 아무거나 상관없습니다.) 10. Mount 클릭 (마운트 전에 Driver 가 설치 되지 않았다면 설치 후 마운트) 위에 설정한 드라이브로 연결이 되면 11. 파일 브라우저로 save 디렉토리 복사 12. Unmount 클릭 13. Switch 파워오프 (5초간 전원버튼 누르기)
이제 암호화(?) 되어 저장된 세이브파일을 ㅋㅍ에서 사용하는 Checkpoint 형태로 변환(해독)해야 합니다. 이를 위해 LibHac 라이브러리를 사용한 hactoolnet 을 이용해야 합니다.
https://github.com/Thealexbarney/LibHac
위의 hactoolnet 파일 사용방법이 복잡하니 좀더 편하게 변환하는 스크립트를 이용합니다.
https://gbatemp.net/threads/extract-save-from-nand-backup.514261/#post-8299285
위의 글중 jocover가 올려놓은 extract nand gamesave.rar 파일을 다운받아 사용합니다.
사용방법은 압축을 해제하면 save 디렉토리가 나오는데 USER 파티션에서 복사한 파일을 그대로 복사하고 run.bat을 실행하면 변환(해독) 합니다. 결과는 out 디렉토리에 저장이 됩니다.
이제 ㅋㅍ된 스위치로 옮기는 작업을 해야합니다.
ㅋㅍ된 스위치에선 checkpoint를 이용합니다. 우선 옮기고 싶은 게임을 실행해 세이브파일을 만듭니다. (checkpoint에서 인식할 수 있으면 됩니다) checkpoint에서 해당 게임의 세이브를 backup 합니다. 해당 backup 파일은 switch\Checkpoint\saves\ 하위에 저장되며 게임별로 구분되어 저장됩니다. 제 경우는 /switch/Checkpoint/saves/0x01007EF00011E000 The Legend of Zelda Breath of the Wild/20190212-134527 aaa 라는 디렉토리에 backup이 저장되었습니다. (User이름 aaa)
이 디렉토리에 내용을 다 지우고 out 디렉토리에 만들어진 세이브 파일을 옮기면 됩니다. 하지만 out 디렉토리에 만들어진 세이브파일은 게임 구분없이 저장된 순서로만 되어 있기 때문에 생성된 내용을 보고 잘 찾아넣어야 합니다.
게임마다 만들어진 세이브 파일 내용이 다르기 때문에 찾는게 어렵지는 않습니다.
젤다의 경우 0 tracker option.save 와 같은 형태로 되어 있어 동일한 형태의 세이브를 /switch/Checkpoint/saves/0x01007EF00011E000 The Legend of Zelda Breath of the Wild/20190212-134527 aaa 에 복사해줍니다.
이제 마지막으로 checkpoint 로 가서 복사를 한 세이브(20190212-134527 aaa)를 restore(복원) 해주면 끝이 납니다.
보기에는 복잡하고 어려워 보이나 해보시면 다운그레이드처럼 어렵지 않습니다.
그럼 이만
|