aboutsummaryrefslogtreecommitdiff
path: root/src/core/core.cpp
diff options
context:
space:
mode:
authorKleidis <kleidis1@protonmail.com>2025-12-17 03:59:27 +0100
committercrueter <crueter@eden-emu.dev>2025-12-17 03:59:27 +0100
commitb9530ae80f9994f4a10143f8336f2b9bee4416fc (patch)
tree6d3da866cb878c7fda927ca68bb4d6467f6b76f6 /src/core/core.cpp
parent5130185d122781a125f43602cfe521a905a5b1a0 (diff)
[core] Add overridable game setting functionality (#2963)
Adds a place to override specific game settings for specific vendors Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2963 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: Maufeat <sahyno1996@gmail.com> Co-authored-by: Kleidis <kleidis1@protonmail.com> Co-committed-by: Kleidis <kleidis1@protonmail.com>
Diffstat (limited to 'src/core/core.cpp')
-rw-r--r--src/core/core.cpp46
1 files changed, 3 insertions, 43 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp
index edc2df4851..bf97184f8f 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -6,6 +6,7 @@
#include <memory>
#include <utility>
+#include "game_settings.h"
#include "audio_core/audio_core.h"
#include "common/fs/fs.h"
#include "common/logging/log.h"
@@ -292,48 +293,6 @@ struct System::Impl {
return SystemResultStatus::Success;
}
-
- void LoadOverrides(u64 programId) const {
- std::string vendor = gpu_core->Renderer().GetDeviceVendor();
- LOG_INFO(Core, "GPU Vendor: {}", vendor);
-
- // Reset all per-game flags
- Settings::values.use_squashed_iterated_blend = false;
-
- // Insert PC overrides here
-
- #ifdef ANDROID
- // Example on how to set a setting based on the program ID and vendor
- if (programId == 0x010028600EBDA000 && vendor == "Mali") { // Mario 3d World
- // Settings::values.example = true;
- }
-
- // Example array of program IDs
- const std::array<u64, 10> example_array = {
- //0xprogramId
- 0x0004000000033400, // Game 1
- 0x0004000000033500 // Game 2
- // And so on
- };
-
- for (auto id : example_array) {
- if (programId == id) {
- // Settings::values.example = true;
- break;
- }
- }
-
- #endif
-
- // Ninja Gaiden Ragebound
- constexpr u64 ngr = 0x0100781020710000ULL;
-
- if (programId == ngr) {
- LOG_INFO(Core, "Enabling game specifc override: use_squashed_iterated_blend");
- Settings::values.use_squashed_iterated_blend = true;
- }
- }
-
SystemResultStatus Load(System& system, Frontend::EmuWindow& emu_window,
const std::string& filepath,
Service::AM::FrontendAppletParameters& params) {
@@ -419,7 +378,8 @@ struct System::Impl {
LOG_ERROR(Core, "Failed to find program id for ROM");
}
- LoadOverrides(program_id);
+
+ GameSettings::LoadOverrides(program_id, gpu_core->Renderer());
if (auto room_member = Network::GetRoomMember().lock()) {
Network::GameInfo game_info;
game_info.name = name;