본문으로 건너뛰기
PS5PCEM
작동펌웨어와 HLE

저장 데이터

마운트된 저장 슬롯은 쓰기 가능한 /savedata0이 됩니다. 타이틀은 일반 파일 API를 쓰며, 다음 실행 때 타이틀이 알리는 제품 코드 아래에서 같은 파일을 찾습니다.

2026년 10월 10일까지의 저장소 노트

저장 데이터가 있는 곳

게임 설치본은 읽기 전용이고, 이동식 저장 장치에 있을 수 있으며, 패치될 때 통째로 교체됩니다. 저장 데이터는 이 세 가지보다 오래 살아남아야 합니다. PS5PCEM은 슬롯을 에뮬레이터 홈 아래 savedata/<titleId>/<slot>/에 타이틀이 보고하는 제품 코드를 키로 저장합니다. 같은 게임의 덤프 두 개는 저장을 공유하고, 서로 다른 두 게임은 공유하지 않습니다.

슬롯 이름은 게스트에서 오며, 디렉터리가 되기 전에 정리됩니다. 구분자, 드라이브 콜론, 상위 디렉터리 링크는 밑줄이 됩니다. 이 문자들을 그냥 지우면 서로 다른 두 이름이 한 디렉터리로 합쳐질 수 있습니다. 아예 디렉터리가 될 수 없는 이름은 고정된 이름으로 대체합니다. 저장을 잃는 것보다 예측 가능한 곳에 두는 편이 낫기 때문입니다.

마운트와 존재 확인

마운트는 슬롯을 해결하고 /savedata0이 그곳을 가리키게 합니다. 없는 슬롯은 타이틀이 요청했을 때만 만듭니다. 타이틀이 쓴 적 없는 저장을 확인하면 없음이라는 결과를 받으며, 이것이 타이틀이 기대하는 결과입니다. 타이틀과 함께 배포된 것은 모두 읽기 전용으로 남고, 저장 마운트가 쓰기 가능한 곳입니다.

존재 여부는 파일을 열어 보는 대신 메타데이터 경로로 답합니다. 열 때만 성공하던 마운트 때문에 모든 존재 확인이 실패했고, 그 결과 Jets 'n' Guns 2는 실행할 때마다 프로필을 다시 썼습니다. 타이틀이 쓴 슬롯 목록 요청에도 답합니다. 마운트는 기존 저장을 열었는지 새로 만들었는지도 보고합니다. 블록 형태의 저장 API는 sce_sdmemory 아래의 타이틀별 별도 블롭을 사용하며, 타이틀이 예약할 때 불러오고 동기화를 요청할 때 씁니다.

불완전한 슬롯

시작 시 탐색은 펌웨어 메타데이터나 빈 스테이징 파일만 들어 있는 중단된 슬롯을 숨깁니다. Cat Quest III에서는 path.txt만 있는 설정 슬롯이 재현되었습니다. 그러면 타이틀이 없는 Data.dat에서 실패하고 시작 프레임 뒤에서 영원히 기다렸습니다. 이제 탐색이 그 불완전한 슬롯을 건너뛰고 계속 진행합니다.

런처는 저장 데이터 페이지에서 다른 라이브러리 타일이 쓴 저장까지 포함해 모든 로컬 슬롯을 타이틀 ID별로 묶습니다. zig-out 아래의 개발 빌드는 에뮬레이터 홈을 저장소 루트로 해결합니다. 패키지 빌드는 자기 디렉터리를 사용합니다. 그래서 같은 패키지를 명령줄로 시작하든 런처로 시작하든 저장 루트 하나를 공유합니다.

구현된 것

  • 정리된 슬롯 이름을 쓰는, 타이틀 ID 기준의 쓰기 가능한 /savedata0 마운트.
  • 존재 확인, 슬롯 목록, 마운트가 저장을 새로 만들었는지에 대한 보고.
  • 블록 형태 저장 API를 위한 타이틀별 sce_sdmemory 블롭.
  • 실제 저장 내용이 없는 중단된 슬롯 숨기기.

아직 빠진 것

  • 저장은 호스트 디렉터리입니다. 콘솔의 저장 데이터 대화 상자와 클라우드 동기화는 제공하지 않습니다.
  • 타이틀이 생성을 요청하지 않은 슬롯은 없는 것으로 보고됩니다.
  • 트로피, 활동, 그 밖의 계정 기반 기록은 이 마운트 밖에 있습니다.

관련 메커니즘

이 페이지들에 대하여

본문은 PS5PCEM 저장소의 아키텍처 노트와 2026년 10월 보고서를 따릅니다. 특정 테스트를 통과했다고 해서 새로운 프레임 속도나 새로운 완주를 뜻하지는 않습니다.

모든 기술