diff options
| author | Kleidis <kleidis1@protonmail.com> | 2025-12-17 03:59:27 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-12-17 03:59:27 +0100 |
| commit | b9530ae80f9994f4a10143f8336f2b9bee4416fc (patch) | |
| tree | 6d3da866cb878c7fda927ca68bb4d6467f6b76f6 /src/core/game_settings.h | |
| parent | 5130185d122781a125f43602cfe521a905a5b1a0 (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/game_settings.h')
| -rw-r--r-- | src/core/game_settings.h | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/core/game_settings.h b/src/core/game_settings.h new file mode 100644 index 0000000000..327a1a4e2c --- /dev/null +++ b/src/core/game_settings.h @@ -0,0 +1,60 @@ +// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-License-Identifier: GPL-3.0-or-later + +#pragma once + +#include <array> +#include <cstdint> +#include <string> + +namespace VideoCore { class RendererBase; } + +namespace Core::GameSettings { + +enum class OS { + Windows, + Linux, + MacOS, + IOS, + Android, + FireOS, + HarmonyOS, + FreeBSD, + DragonFlyBSD, + NetBSD, + OpenBSD, + HaikuOS, + AIX, + Managarm, + RedoxOS, + Solaris, + Unknown, +}; + +enum class GPUVendor { + Nvidia, + AMD, + Intel, + Apple, + Qualcomm, + ARM, + Imagination, + Microsoft, + Unknown, +}; + +enum class TitleID : std::uint64_t { + NinjaGaidenRagebound = 0x0100781020710000ULL +}; + +struct EnvironmentInfo { + OS os{OS::Unknown}; + GPUVendor vendor{GPUVendor::Unknown}; + std::string vendor_string; // raw string from driver +}; + +EnvironmentInfo DetectEnvironment(const VideoCore::RendererBase& renderer); + +void LoadOverrides(std::uint64_t program_id, const VideoCore::RendererBase& renderer); + +} // namespace Core::GameSettings |
