[PR #3376] [MERGED] Game specific configs #3422

Closed
opened 2026-02-27 22:03:38 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/shadps4-emu/shadPS4/pull/3376
Author: @kalaposfos13
Created: 8/3/2025
Status: Merged
Merged: 9/4/2025
Merged by: @georgemoralis

Base: mainHead: game-specific-configs


📝 Commits (10+)

  • ab335a9 poc
  • f6cbd76 Set up variable game specific variable copies
  • 384d9b9 Set up getters to return the game specific option if it exists
  • c79264a Avoid exceptions if a value isn't in the config
  • 7cfc49c Make sure the custom configs folder exists
  • 85e6297 Merge remote-tracking branch 'origin/main' into game-specific-configs
  • cae958c Update + review comments + rewrite
  • f545e1e The loathsome clang-formatter
  • 5a38d80 Merge remote-tracking branch 'origin/main' into game-specific-configs
  • a6040f0 Specify which getter/setter is used everywhere

📊 Changes

5 files changed (+393 additions, -328 deletions)

View changed files

📝 src/common/config.cpp (+386 -327)
📝 src/common/config.h (+1 -1)
📝 src/common/path_util.cpp (+1 -0)
📝 src/common/path_util.h (+2 -0)
📝 src/emulator.cpp (+3 -0)

📄 Description

With this PR, you can create a new config file in userdir/configs/ named CUSAXXXXX.toml, where CUSAXXXXX is the ID of the game you're making the config for, and you can put any option in it that you'd like overwritten for that game only. For example, if you want to have readbacks turned on for every game, but have DMA only for SotC, you can turn on readbacks in the main config (which is still userdir/config.toml), have DMA turned off there, then make the userdir/custom_configs/CUSA08809.toml file and put the following in it:

[GPU]
directMemoryAccess = true

If you have a game running, and update your settings from the GUI by opening settings and clicking save for example, these game-specific changes won't override your main config, however you can't reload them either by doing that.


🔄 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/3376 **Author:** [@kalaposfos13](https://github.com/kalaposfos13) **Created:** 8/3/2025 **Status:** ✅ Merged **Merged:** 9/4/2025 **Merged by:** [@georgemoralis](https://github.com/georgemoralis) **Base:** `main` ← **Head:** `game-specific-configs` --- ### 📝 Commits (10+) - [`ab335a9`](https://github.com/shadps4-emu/shadPS4/commit/ab335a92be84c6736bf1d212b4be4e48f89ccfb8) poc - [`f6cbd76`](https://github.com/shadps4-emu/shadPS4/commit/f6cbd766e8fca7212707b58762d57326e7102145) Set up variable game specific variable copies - [`384d9b9`](https://github.com/shadps4-emu/shadPS4/commit/384d9b9d61867a3b39253d9c6147f715d2826161) Set up getters to return the game specific option if it exists - [`c79264a`](https://github.com/shadps4-emu/shadPS4/commit/c79264a9834e6a8ebec9ab344e322c3db0ca852f) Avoid exceptions if a value isn't in the config - [`7cfc49c`](https://github.com/shadps4-emu/shadPS4/commit/7cfc49c1dbfa67095600364d7408467c31863292) Make sure the custom configs folder exists - [`85e6297`](https://github.com/shadps4-emu/shadPS4/commit/85e62979f23b378f941526e84d82698a95af4638) Merge remote-tracking branch 'origin/main' into game-specific-configs - [`cae958c`](https://github.com/shadps4-emu/shadPS4/commit/cae958cc82364ae899271fa27f08bd524e25034d) Update + review comments + rewrite - [`f545e1e`](https://github.com/shadps4-emu/shadPS4/commit/f545e1eeb8d5e1db7ed336297f2ff8a0e99e1d0c) The loathsome clang-formatter - [`5a38d80`](https://github.com/shadps4-emu/shadPS4/commit/5a38d8029805223db631aec8ff452413b60e50e5) Merge remote-tracking branch 'origin/main' into game-specific-configs - [`a6040f0`](https://github.com/shadps4-emu/shadPS4/commit/a6040f06e3d466a1bc779d1959b5d7897c099168) Specify which getter/setter is used everywhere ### 📊 Changes **5 files changed** (+393 additions, -328 deletions) <details> <summary>View changed files</summary> 📝 `src/common/config.cpp` (+386 -327) 📝 `src/common/config.h` (+1 -1) 📝 `src/common/path_util.cpp` (+1 -0) 📝 `src/common/path_util.h` (+2 -0) 📝 `src/emulator.cpp` (+3 -0) </details> ### 📄 Description With this PR, you can create a new config file in userdir/configs/ named CUSAXXXXX.toml, where CUSAXXXXX is the ID of the game you're making the config for, and you can put any option in it that you'd like overwritten for that game only. For example, if you want to have readbacks turned on for every game, but have DMA only for SotC, you can turn on readbacks in the main config (which is still userdir/config.toml), have DMA turned off there, then make the userdir/custom_configs/CUSA08809.toml file and put the following in it: ```toml [GPU] directMemoryAccess = true ``` If you have a game running, and update your settings from the GUI by opening settings and clicking save for example, these game-specific changes won't override your main config, however you can't reload them either by doing that. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 22:03:38 +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#3422
No description provided.