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": "您即将删除:\n\n{0} 的 PPTC 缓存文件\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 模拟器发生错误",