This commit is contained in:
Fire Cube 2025-07-05 15:47:07 +02:00
parent 4f99f304e6
commit 19f266f162
5 changed files with 50 additions and 24 deletions

View file

@ -35,8 +35,10 @@ static bool isNeo = false;
static bool isDevKit = false; static bool isDevKit = false;
static bool isTrophyPopupDisabled = false; static bool isTrophyPopupDisabled = false;
static bool enableDiscordRPC = false; static bool enableDiscordRPC = false;
static u32 screenWidth = 1280; static u32 windowWidth = 1280;
static u32 screenHeight = 720; static u32 windowHeight = 720;
static u32 internalScreenWidth = 1280;
static u32 internalScreenHeight = 720;
static s32 gpuId = -1; // Vulkan physical device index. Set to negative for auto select static s32 gpuId = -1; // Vulkan physical device index. Set to negative for auto select
static std::string logFilter; static std::string logFilter;
static std::string logType = "sync"; static std::string logType = "sync";
@ -178,12 +180,20 @@ double getTrophyNotificationDuration() {
return trophyNotificationDuration; return trophyNotificationDuration;
} }
u32 getScreenWidth() { u32 getWindowWidth() {
return screenWidth; return windowWidth;
} }
u32 getScreenHeight() { u32 getWindowHeight() {
return screenHeight; return windowHeight;
}
u32 getInternalScreenWidth() {
return internalScreenHeight;
}
u32 getInternalScreenHeight() {
return internalScreenHeight;
} }
s32 getGpuId() { s32 getGpuId() {
@ -318,12 +328,20 @@ void setGpuId(s32 selectedGpuId) {
gpuId = selectedGpuId; gpuId = selectedGpuId;
} }
void setScreenWidth(u32 width) { void setWindowWidth(u32 width) {
screenWidth = width; windowWidth = width;
} }
void setScreenHeight(u32 height) { void setWindowHeight(u32 height) {
screenHeight = height; windowHeight = height;
}
void setInternalScreenWidth(u32 width) {
internalScreenWidth = width;
}
void setInternalScreenHeight(u32 height) {
internalScreenHeight = height;
} }
void setDebugDump(bool enable) { void setDebugDump(bool enable) {
@ -600,8 +618,10 @@ void load(const std::filesystem::path& path) {
if (data.contains("GPU")) { if (data.contains("GPU")) {
const toml::value& gpu = data.at("GPU"); const toml::value& gpu = data.at("GPU");
screenWidth = toml::find_or<int>(gpu, "screenWidth", screenWidth); windowWidth = toml::find_or<int>(gpu, "screenWidth", windowWidth);
screenHeight = toml::find_or<int>(gpu, "screenHeight", screenHeight); windowHeight = toml::find_or<int>(gpu, "screenHeight", windowHeight);
internalScreenWidth = toml::find_or<int>(gpu, "internalScreenWidth", internalScreenWidth);
internalScreenHeight = toml::find_or<int>(gpu, "internalScreenHeight", internalScreenHeight);
isNullGpu = toml::find_or<bool>(gpu, "nullGpu", false); isNullGpu = toml::find_or<bool>(gpu, "nullGpu", false);
shouldCopyGPUBuffers = toml::find_or<bool>(gpu, "copyGPUBuffers", false); shouldCopyGPUBuffers = toml::find_or<bool>(gpu, "copyGPUBuffers", false);
readbacksEnabled = toml::find_or<bool>(gpu, "readbacks", false); readbacksEnabled = toml::find_or<bool>(gpu, "readbacks", false);
@ -751,8 +771,10 @@ void save(const std::filesystem::path& path) {
data["Input"]["specialPadClass"] = specialPadClass; data["Input"]["specialPadClass"] = specialPadClass;
data["Input"]["isMotionControlsEnabled"] = isMotionControlsEnabled; data["Input"]["isMotionControlsEnabled"] = isMotionControlsEnabled;
data["Input"]["useUnifiedInputConfig"] = useUnifiedInputConfig; data["Input"]["useUnifiedInputConfig"] = useUnifiedInputConfig;
data["GPU"]["screenWidth"] = screenWidth; data["GPU"]["screenWidth"] = windowWidth;
data["GPU"]["screenHeight"] = screenHeight; data["GPU"]["screenHeight"] = windowHeight;
data["GPU"]["internalScreenWidth"] = internalScreenWidth;
data["GPU"]["internalScreenHeight"] = internalScreenHeight;
data["GPU"]["nullGpu"] = isNullGpu; data["GPU"]["nullGpu"] = isNullGpu;
data["GPU"]["copyGPUBuffers"] = shouldCopyGPUBuffers; data["GPU"]["copyGPUBuffers"] = shouldCopyGPUBuffers;
data["GPU"]["readbacks"] = readbacksEnabled; data["GPU"]["readbacks"] = readbacksEnabled;
@ -829,8 +851,8 @@ void setDefaultValues() {
isFullscreen = false; isFullscreen = false;
isTrophyPopupDisabled = false; isTrophyPopupDisabled = false;
enableDiscordRPC = true; enableDiscordRPC = true;
screenWidth = 1280; windowWidth = 1280;
screenHeight = 720; windowHeight = 720;
logFilter = ""; logFilter = "";
logType = "sync"; logType = "sync";
userName = "shadPS4"; userName = "shadPS4";

View file

@ -25,10 +25,14 @@ bool getIsFullscreen();
void setIsFullscreen(bool enable); void setIsFullscreen(bool enable);
std::string getFullscreenMode(); std::string getFullscreenMode();
void setFullscreenMode(std::string mode); void setFullscreenMode(std::string mode);
u32 getScreenWidth(); u32 getWindowWidth();
u32 getScreenHeight(); u32 getWindowHeight();
void setScreenWidth(u32 width); void setWindowWidth(u32 width);
void setScreenHeight(u32 height); void setWindowHeight(u32 height);
u32 getInternalScreenWidth();
u32 getInternalScreenHeight();
void setInternalScreenWidth(u32 width);
void setInternalScreenHeight(u32 height);
bool debugDump(); bool debugDump();
void setDebugDump(bool enable); void setDebugDump(bool enable);
s32 getGpuId(); s32 getGpuId();

View file

@ -445,7 +445,7 @@ s32 PS4_SYSV_ABI sceVideoOutConfigureOutputMode_(s32 handle, u32 reserved, const
} }
void RegisterLib(Core::Loader::SymbolsResolver* sym) { void RegisterLib(Core::Loader::SymbolsResolver* sym) {
driver = std::make_unique<VideoOutDriver>(Config::getScreenWidth(), Config::getScreenHeight()); driver = std::make_unique<VideoOutDriver>(Config::getInternalScreenWidth(), Config::getInternalScreenHeight());
LIB_FUNCTION("SbU3dwp80lQ", "libSceVideoOut", 1, "libSceVideoOut", 0, 0, LIB_FUNCTION("SbU3dwp80lQ", "libSceVideoOut", 1, "libSceVideoOut", 0, 0,
sceVideoOutGetFlipStatus); sceVideoOutGetFlipStatus);

View file

@ -222,7 +222,7 @@ void Emulator::Run(std::filesystem::path file, const std::vector<std::string> ar
} }
} }
window = std::make_unique<Frontend::WindowSDL>( window = std::make_unique<Frontend::WindowSDL>(
Config::getScreenWidth(), Config::getScreenHeight(), controller, window_title); Config::getWindowWidth(), Config::getWindowHeight(), controller, window_title);
g_window = window.get(); g_window = window.get();

View file

@ -762,8 +762,8 @@ void SettingsDialog::UpdateSettings() {
m_gui_settings->SetValue(gui::gl_backgroundMusicVolume, ui->BGMVolumeSlider->value()); m_gui_settings->SetValue(gui::gl_backgroundMusicVolume, ui->BGMVolumeSlider->value());
Config::setLanguage(languageIndexes[ui->consoleLanguageComboBox->currentIndex()]); Config::setLanguage(languageIndexes[ui->consoleLanguageComboBox->currentIndex()]);
Config::setEnableDiscordRPC(ui->discordRPCCheckbox->isChecked()); Config::setEnableDiscordRPC(ui->discordRPCCheckbox->isChecked());
Config::setScreenWidth(ui->widthSpinBox->value()); Config::setWindowWidth(ui->widthSpinBox->value());
Config::setScreenHeight(ui->heightSpinBox->value()); Config::setWindowHeight(ui->heightSpinBox->value());
Config::setVblankDiv(ui->vblankSpinBox->value()); Config::setVblankDiv(ui->vblankSpinBox->value());
Config::setDumpShaders(ui->dumpShadersCheckBox->isChecked()); Config::setDumpShaders(ui->dumpShadersCheckBox->isChecked());
Config::setNullGpu(ui->nullGpuCheckBox->isChecked()); Config::setNullGpu(ui->nullGpuCheckBox->isChecked());