[PR #824] [MERGED] Rewrite Save Data & Impl Save Data Dialog #1794

Closed
opened 2026-02-27 21:13:58 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/shadps4-emu/shadPS4/pull/824
Author: @viniciuslrangel
Created: 9/7/2024
Status: Merged
Merged: 9/20/2024
Merged by: @georgemoralis

Base: mainHead: lib-SaveData2


📝 Commits (10+)

  • 820382a core: Rewrite PSF parser & add encoder
  • 5e05fec core/fs: allow to mount path as read-only
  • 1de295a common: Add CString wrapper to handle native null-terminated strings
  • 477bd4e SaveData: rewrite to implement full functionality
  • 3df2ac6 mock value for SYSTEM_VER
  • de0a38d SavaData: backup features
  • 0e61607 SavaData: SaveDataMemory features
  • e9218c1 imgui Ref-counted textures
  • dd65ee3 imgui: rework gamepad navigation
  • d059ea5 PSF: fixed psf not using enum class for PSFEntryFmt (was a standard old ugly enum)

📊 Changes

51 files changed (+4898 additions, -1113 deletions)

View changed files

📝 CMakeLists.txt (+14 -3)
scripts/file_formats/sfo.hexpat (+52 -0)
src/common/cstring.h (+133 -0)
📝 src/common/io_file.cpp (+14 -0)
📝 src/common/io_file.h (+2 -0)
📝 src/common/string_util.cpp (+8 -3)
📝 src/common/string_util.h (+3 -1)
📝 src/core/file_format/psf.cpp (+252 -38)
📝 src/core/file_format/psf.h (+60 -15)
📝 src/core/file_sys/fs.cpp (+8 -3)
📝 src/core/file_sys/fs.h (+5 -2)
📝 src/core/libraries/app_content/app_content.cpp (+11 -16)
📝 src/core/libraries/kernel/file_system.cpp (+29 -5)
📝 src/core/libraries/kernel/libkernel.cpp (+1 -1)
📝 src/core/libraries/libs.cpp (+2 -2)
📝 src/core/libraries/np_trophy/trophy_ui.h (+0 -4)
src/core/libraries/save_data/dialog/savedatadialog.cpp (+163 -0)
src/core/libraries/save_data/dialog/savedatadialog.h (+33 -0)
src/core/libraries/save_data/dialog/savedatadialog_ui.cpp (+802 -0)
src/core/libraries/save_data/dialog/savedatadialog_ui.h (+317 -0)

...and 31 more files

📄 Description

- based on the #767 branch, gonna rebase after merge

Extra

  • SFO file handling
    Better support for SFO binary payload & allow to encode (write) back to file
  • ImGui texture/image handling
    This uses a background thread to read & decode png then queues to upload in next frame

Save Data

  • Save Data Library
  • Save Data Backup
  • Save Data Memory

Save Data Dialog

  • Save Data Dialog listing
  • Save Data Dialog images
  • Save Data Dialog user msg
  • Save Data Dialog system msg
  • Save Data Dialog error
  • Save Data Dialog progress bar

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/shadps4-emu/shadPS4/pull/824 **Author:** [@viniciuslrangel](https://github.com/viniciuslrangel) **Created:** 9/7/2024 **Status:** ✅ Merged **Merged:** 9/20/2024 **Merged by:** [@georgemoralis](https://github.com/georgemoralis) **Base:** `main` ← **Head:** `lib-SaveData2` --- ### 📝 Commits (10+) - [`820382a`](https://github.com/shadps4-emu/shadPS4/commit/820382a3e755667d430971334bc9374cf920d55d) core: Rewrite PSF parser & add encoder - [`5e05fec`](https://github.com/shadps4-emu/shadPS4/commit/5e05fecdd0afbc441f0636792c22802edf8164ad) core/fs: allow to mount path as read-only - [`1de295a`](https://github.com/shadps4-emu/shadPS4/commit/1de295aa949fa9be4518be185be8a677c50ed44a) common: Add CString wrapper to handle native null-terminated strings - [`477bd4e`](https://github.com/shadps4-emu/shadPS4/commit/477bd4ea9dcc955ba87e37a01fc042bc05121a6c) SaveData: rewrite to implement full functionality - [`3df2ac6`](https://github.com/shadps4-emu/shadPS4/commit/3df2ac60d16f492d0e136cf7b1f5318a4ccb9117) mock value for SYSTEM_VER - [`de0a38d`](https://github.com/shadps4-emu/shadPS4/commit/de0a38db0aa2973afeb2acabd320d9813db8efc2) SavaData: backup features - [`0e61607`](https://github.com/shadps4-emu/shadPS4/commit/0e61607f2e478a843b74da7d30db8444114633c3) SavaData: SaveDataMemory features - [`e9218c1`](https://github.com/shadps4-emu/shadPS4/commit/e9218c1395e5cb0278250a39bab8f1df6877fb12) imgui Ref-counted textures - [`dd65ee3`](https://github.com/shadps4-emu/shadPS4/commit/dd65ee36833a76646cbc7c6a49f1f5a515600a2c) imgui: rework gamepad navigation - [`d059ea5`](https://github.com/shadps4-emu/shadPS4/commit/d059ea5ac3118b4e620351170f108a077336f74e) PSF: fixed psf not using enum class for PSFEntryFmt (was a standard old ugly enum) ### 📊 Changes **51 files changed** (+4898 additions, -1113 deletions) <details> <summary>View changed files</summary> 📝 `CMakeLists.txt` (+14 -3) ➕ `scripts/file_formats/sfo.hexpat` (+52 -0) ➕ `src/common/cstring.h` (+133 -0) 📝 `src/common/io_file.cpp` (+14 -0) 📝 `src/common/io_file.h` (+2 -0) 📝 `src/common/string_util.cpp` (+8 -3) 📝 `src/common/string_util.h` (+3 -1) 📝 `src/core/file_format/psf.cpp` (+252 -38) 📝 `src/core/file_format/psf.h` (+60 -15) 📝 `src/core/file_sys/fs.cpp` (+8 -3) 📝 `src/core/file_sys/fs.h` (+5 -2) 📝 `src/core/libraries/app_content/app_content.cpp` (+11 -16) 📝 `src/core/libraries/kernel/file_system.cpp` (+29 -5) 📝 `src/core/libraries/kernel/libkernel.cpp` (+1 -1) 📝 `src/core/libraries/libs.cpp` (+2 -2) 📝 `src/core/libraries/np_trophy/trophy_ui.h` (+0 -4) ➕ `src/core/libraries/save_data/dialog/savedatadialog.cpp` (+163 -0) ➕ `src/core/libraries/save_data/dialog/savedatadialog.h` (+33 -0) ➕ `src/core/libraries/save_data/dialog/savedatadialog_ui.cpp` (+802 -0) ➕ `src/core/libraries/save_data/dialog/savedatadialog_ui.h` (+317 -0) _...and 31 more files_ </details> ### 📄 Description ~- based on the #767 branch, gonna rebase after merge~ ## Extra - [x] SFO file handling Better support for SFO binary payload & allow to encode (write) back to file - [x] ImGui texture/image handling This uses a background thread to read & decode png then queues to upload in next frame ## Save Data - [x] Save Data Library - [x] Save Data Backup - [x] Save Data Memory ## Save Data Dialog - [x] Save Data Dialog listing - [x] Save Data Dialog images - [x] Save Data Dialog user msg - [x] Save Data Dialog system msg - [x] Save Data Dialog error - [x] Save Data Dialog progress bar --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 21:13:58 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shadPS4#1794
No description provided.