mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-23 20:36:58 +02:00
26781e6fea
Port the static instruction patcher from shadPS4.
91 lines
2.9 KiB
C++
91 lines
2.9 KiB
C++
#ifndef KYTY_COMMON_EMULATOR_CONFIG_H_
|
|
#define KYTY_COMMON_EMULATOR_CONFIG_H_
|
|
|
|
#include "common/common.h"
|
|
#include "common/subsystems.h"
|
|
|
|
#include <filesystem>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
namespace Config {
|
|
|
|
KYTY_SUBSYSTEM_DEFINE(Config);
|
|
|
|
enum class ShaderOptimizationType { None, Size, Performance };
|
|
|
|
enum class ShaderLogDirection { Silent, Console, File };
|
|
|
|
enum class ProfilerDirection { None, Network };
|
|
|
|
enum class OutputDirection { Silent, Console, File };
|
|
|
|
using Keymap = std::vector<std::string>;
|
|
|
|
constexpr uint32_t DEFAULT_CONSOLE_LANGUAGE = 1;
|
|
constexpr uint32_t MAX_CONSOLE_LANGUAGE = 29;
|
|
|
|
struct ConfigOptions {
|
|
uint32_t screen_width = 1280;
|
|
uint32_t screen_height = 720;
|
|
bool fullscreen_enabled = false;
|
|
uint32_t vblank_frequency = 60;
|
|
uint32_t console_language = DEFAULT_CONSOLE_LANGUAGE;
|
|
bool vulkan_validation_enabled = false;
|
|
bool shader_validation_enabled = false;
|
|
ShaderOptimizationType shader_optimization_type = ShaderOptimizationType::None;
|
|
ShaderLogDirection shader_log_direction = ShaderLogDirection::Silent;
|
|
std::filesystem::path shader_log_folder = "_Shaders";
|
|
bool command_buffer_dump_enabled = false;
|
|
std::filesystem::path command_buffer_dump_folder = "_Buffers";
|
|
bool graphics_debug_dump_enabled = false;
|
|
OutputDirection printf_direction = OutputDirection::Console;
|
|
std::filesystem::path printf_output_file = "_kyty.txt";
|
|
ProfilerDirection profiler_direction = ProfilerDirection::None;
|
|
bool spirv_debug_printf_enabled = false;
|
|
bool renderdoc_enabled = false;
|
|
bool readback_linear_images = false;
|
|
#if KYTY_PLATFORM == KYTY_PLATFORM_WINDOWS
|
|
bool red_zone_protection_enabled = false;
|
|
#endif
|
|
Keymap keymap;
|
|
};
|
|
|
|
void Load(const ConfigOptions& cfg);
|
|
|
|
uint32_t GetScreenWidth();
|
|
uint32_t GetScreenHeight();
|
|
bool FullscreenEnabled();
|
|
uint32_t GetVblankFrequency();
|
|
uint32_t GetConsoleLanguage();
|
|
bool VulkanValidationEnabled();
|
|
|
|
bool ShaderValidationEnabled();
|
|
ShaderOptimizationType GetShaderOptimizationType();
|
|
ShaderLogDirection GetShaderLogDirection();
|
|
std::filesystem::path GetShaderLogFolder();
|
|
|
|
bool CommandBufferDumpEnabled();
|
|
std::filesystem::path GetCommandBufferDumpFolder();
|
|
|
|
bool GraphicsDebugDumpEnabled();
|
|
|
|
OutputDirection GetPrintfDirection();
|
|
std::filesystem::path GetPrintfOutputFile();
|
|
|
|
ProfilerDirection GetProfilerDirection();
|
|
|
|
bool SpirvDebugPrintfEnabled();
|
|
|
|
bool RenderDocEnabled();
|
|
bool ReadbackLinearImagesEnabled();
|
|
#if KYTY_PLATFORM == KYTY_PLATFORM_WINDOWS
|
|
bool RedZoneProtectionEnabled();
|
|
#endif
|
|
|
|
const Keymap& GetKeymap();
|
|
|
|
} // namespace Config
|
|
|
|
#endif /* KYTY_COMMON_EMULATOR_CONFIG_H_ */
|