PPTC Profiles

Added functionality that allows ExeFS mods to compile to their own PPTC
Profile and therefore store PTC data between sessions.
The feature calculates the hash of the currently loaded ExeFS mods and
stores the PPTC data in a profile that matches said hash, so you can
have multiple ExeFS loadouts without causing issues. This includes
different versions of the same mod as their hashes will be different.
Using this PR should be seamless as the JIT Sparse PR already laid the
groundwork for PPTC Profiles and this PR just allows ExeFS mods to load
and store their own profiles besides the `default` profile.

❗❗❗ **WARNING!** ❗❗❗
**This will update your PPTC profile version, which means the
PPTC profile will be invalidated if you try to run a PR/Build/Branch
that does not include this change!**
**This is only relevant for the default PPTC Profile, as any other profiles do not exist to older versions!**
This commit is contained in:
LotP1
2025-02-05 01:30:37 -06:00
committed by KeatonTheBot
parent a5e8c8ebad
commit da0c6c57f9
28 changed files with 278 additions and 28 deletions
+3
View File
@@ -75,6 +75,8 @@
"GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "응용프로그램 PPTC 캐시가 포함된 디렉터리 열기",
"GameListContextMenuCacheManagementOpenShaderCacheDirectory": "셰이더 캐시 디렉터리 열기",
"GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "응용프로그램 셰이더 캐시가 포함된 디렉터리 열기",
"GameListContextMenuCacheManagementNukePptc": "Purge PPTC cache",
"GameListContextMenuCacheManagementNukePptcToolTip": "Deletes all PPTC cache files for the Application",
"GameListContextMenuExtractData": "데이터 추출",
"GameListContextMenuExtractDataExeFS": "ExeFS",
"GameListContextMenuExtractDataExeFSToolTip": "응용프로그램의 현재 구성에서 ExeFS 추출 (업데이트 포함)",
@@ -487,6 +489,7 @@
"DialogWarning": "경고",
"DialogPPTCDeletionMessage": "다음 부팅 시, PPTC 재구축을 대기열에 추가 :\n\n{0}\n\n계속하겠습니까?",
"DialogPPTCDeletionErrorMessage": "{0}에서 PPTC 캐시 삭제 오류 : {1}",
"DialogPPTCNukeMessage": "You are about to purge all PPTC data from:\n\n{0}\n\nAre you sure you want to proceed?",
"DialogShaderDeletionMessage": "다음에 대한 셰이더 캐시 삭제 :\n\n{0}\n\n계속하겠습니까?",
"DialogShaderDeletionErrorMessage": "{0}에서 셰이더 캐시 제거 오류 : {1}",
"DialogRyujinxErrorMessage": "Ryujinx에 오류 발생",