mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-06 01:12:33 +00:00
Merge branch 'shadps4-emu:main' into gcc-ci
This commit is contained in:
commit
2856fbedb2
@ -1042,7 +1042,6 @@ install(TARGETS shadps4 BUNDLE DESTINATION .)
|
|||||||
|
|
||||||
if (ENABLE_QT_GUI AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
if (ENABLE_QT_GUI AND CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
||||||
install(FILES "dist/net.shadps4.shadPS4.desktop" DESTINATION "share/applications")
|
install(FILES "dist/net.shadps4.shadPS4.desktop" DESTINATION "share/applications")
|
||||||
install(FILES "dist/net.shadps4.shadPS4.releases.xml" DESTINATION "share/metainfo/releases")
|
|
||||||
install(FILES "dist/net.shadps4.shadPS4.metainfo.xml" DESTINATION "share/metainfo")
|
install(FILES "dist/net.shadps4.shadPS4.metainfo.xml" DESTINATION "share/metainfo")
|
||||||
install(FILES ".github/shadps4.png" DESTINATION "share/icons/hicolor/512x512/apps" RENAME "net.shadps4.shadPS4.png")
|
install(FILES ".github/shadps4.png" DESTINATION "share/icons/hicolor/512x512/apps" RENAME "net.shadps4.shadPS4.png")
|
||||||
install(FILES "src/images/net.shadps4.shadPS4.svg" DESTINATION "share/icons/hicolor/scalable/apps")
|
install(FILES "src/images/net.shadps4.shadPS4.svg" DESTINATION "share/icons/hicolor/scalable/apps")
|
||||||
|
@ -11,7 +11,6 @@ path = [
|
|||||||
"dist/net.shadps4.shadPS4.desktop",
|
"dist/net.shadps4.shadPS4.desktop",
|
||||||
"dist/net.shadps4.shadPS4_metadata.pot",
|
"dist/net.shadps4.shadPS4_metadata.pot",
|
||||||
"dist/net.shadps4.shadPS4.metainfo.xml",
|
"dist/net.shadps4.shadPS4.metainfo.xml",
|
||||||
"dist/net.shadps4.shadPS4.releases.xml",
|
|
||||||
"documents/changelog.md",
|
"documents/changelog.md",
|
||||||
"documents/Quickstart/2.png",
|
"documents/Quickstart/2.png",
|
||||||
"documents/Screenshots/*",
|
"documents/Screenshots/*",
|
||||||
|
27
dist/net.shadps4.shadPS4.metainfo.xml
vendored
27
dist/net.shadps4.shadPS4.metainfo.xml
vendored
@ -36,9 +36,30 @@
|
|||||||
<categories>
|
<categories>
|
||||||
<category translate="no">Game</category>
|
<category translate="no">Game</category>
|
||||||
</categories>
|
</categories>
|
||||||
<releases type="external" url="https://cdn.jsdelivr.net/gh/fpiesche/flatpak-builds/apps/net.shadps4.shadPS4/net.shadps4.shadPS4.releases.xml">
|
<releases>
|
||||||
<release version="v.0.4.0" date="2024-11-03">
|
<release version="0.5.0" date="2024-12-25">
|
||||||
<description></description>
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.5.0</url>
|
||||||
|
</release>
|
||||||
|
<release version="0.4.0" date="2024-10-31">
|
||||||
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.4.0</url>
|
||||||
|
</release>
|
||||||
|
<release version="0.3.0" date="2024-09-23">
|
||||||
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.3.0</url>
|
||||||
|
</release>
|
||||||
|
<release version="0.2.0" date="2024-08-15">
|
||||||
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.2.0</url>
|
||||||
|
</release>
|
||||||
|
<release version="0.1.0" date="2024-07-01">
|
||||||
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/0.1.0</url>
|
||||||
|
</release>
|
||||||
|
<release version="0.0.3" date="2024-03-23">
|
||||||
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.3</url>
|
||||||
|
</release>
|
||||||
|
<release version="0.0.2" date="2023-10-21">
|
||||||
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.2</url>
|
||||||
|
</release>
|
||||||
|
<release version="0.0.1" date="2024-09-29">
|
||||||
|
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.1</url>
|
||||||
</release>
|
</release>
|
||||||
</releases>
|
</releases>
|
||||||
<content_rating type="oars-1.1"/>
|
<content_rating type="oars-1.1"/>
|
||||||
|
23
dist/net.shadps4.shadPS4.releases.xml
vendored
23
dist/net.shadps4.shadPS4.releases.xml
vendored
@ -1,23 +0,0 @@
|
|||||||
<releases>
|
|
||||||
<release version="0.4.0" date="2024-10-31">
|
|
||||||
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.4.0</url>
|
|
||||||
</release>
|
|
||||||
<release version="0.3.0" date="2024-09-23">
|
|
||||||
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.3.0</url>
|
|
||||||
</release>
|
|
||||||
<release version="0.2.0" date="2024-08-15">
|
|
||||||
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v.0.2.0</url>
|
|
||||||
</release>
|
|
||||||
<release version="0.1.0" date="2024-07-01">
|
|
||||||
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/0.1.0</url>
|
|
||||||
</release>
|
|
||||||
<release version="0.0.3" date="2024-03-23">
|
|
||||||
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.3</url>
|
|
||||||
</release>
|
|
||||||
<release version="0.0.2" date="2023-10-21">
|
|
||||||
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.2</url>
|
|
||||||
</release>
|
|
||||||
<release version="0.0.1" date="2024-09-29">
|
|
||||||
<url>https://github.com/shadps4-emu/shadPS4/releases/tag/v0.0.1</url>
|
|
||||||
</release>
|
|
||||||
</releases>
|
|
@ -33,6 +33,7 @@ namespace Config {
|
|||||||
|
|
||||||
static bool isNeo = false;
|
static bool isNeo = false;
|
||||||
static bool isFullscreen = false;
|
static bool isFullscreen = false;
|
||||||
|
static std::string fullscreenMode = "borderless";
|
||||||
static bool playBGM = false;
|
static bool playBGM = false;
|
||||||
static bool isTrophyPopupDisabled = false;
|
static bool isTrophyPopupDisabled = false;
|
||||||
static int BGMvolume = 50;
|
static int BGMvolume = 50;
|
||||||
@ -105,10 +106,14 @@ bool isNeoModeConsole() {
|
|||||||
return isNeo;
|
return isNeo;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isFullscreenMode() {
|
bool getIsFullscreen() {
|
||||||
return isFullscreen;
|
return isFullscreen;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string getFullscreenMode() {
|
||||||
|
return fullscreenMode;
|
||||||
|
}
|
||||||
|
|
||||||
bool getisTrophyPopupDisabled() {
|
bool getisTrophyPopupDisabled() {
|
||||||
return isTrophyPopupDisabled;
|
return isTrophyPopupDisabled;
|
||||||
}
|
}
|
||||||
@ -309,10 +314,14 @@ void setVblankDiv(u32 value) {
|
|||||||
vblankDivider = value;
|
vblankDivider = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFullscreenMode(bool enable) {
|
void setIsFullscreen(bool enable) {
|
||||||
isFullscreen = enable;
|
isFullscreen = enable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setFullscreenMode(std::string mode) {
|
||||||
|
fullscreenMode = mode;
|
||||||
|
}
|
||||||
|
|
||||||
void setisTrophyPopupDisabled(bool disable) {
|
void setisTrophyPopupDisabled(bool disable) {
|
||||||
isTrophyPopupDisabled = disable;
|
isTrophyPopupDisabled = disable;
|
||||||
}
|
}
|
||||||
@ -575,6 +584,7 @@ void load(const std::filesystem::path& path) {
|
|||||||
|
|
||||||
isNeo = toml::find_or<bool>(general, "isPS4Pro", false);
|
isNeo = toml::find_or<bool>(general, "isPS4Pro", false);
|
||||||
isFullscreen = toml::find_or<bool>(general, "Fullscreen", false);
|
isFullscreen = toml::find_or<bool>(general, "Fullscreen", false);
|
||||||
|
fullscreenMode = toml::find_or<std::string>(general, "FullscreenMode", "borderless");
|
||||||
playBGM = toml::find_or<bool>(general, "playBGM", false);
|
playBGM = toml::find_or<bool>(general, "playBGM", false);
|
||||||
isTrophyPopupDisabled = toml::find_or<bool>(general, "isTrophyPopupDisabled", false);
|
isTrophyPopupDisabled = toml::find_or<bool>(general, "isTrophyPopupDisabled", false);
|
||||||
BGMvolume = toml::find_or<int>(general, "BGMvolume", 50);
|
BGMvolume = toml::find_or<int>(general, "BGMvolume", 50);
|
||||||
@ -701,6 +711,7 @@ void save(const std::filesystem::path& path) {
|
|||||||
|
|
||||||
data["General"]["isPS4Pro"] = isNeo;
|
data["General"]["isPS4Pro"] = isNeo;
|
||||||
data["General"]["Fullscreen"] = isFullscreen;
|
data["General"]["Fullscreen"] = isFullscreen;
|
||||||
|
data["General"]["FullscreenMode"] = fullscreenMode;
|
||||||
data["General"]["isTrophyPopupDisabled"] = isTrophyPopupDisabled;
|
data["General"]["isTrophyPopupDisabled"] = isTrophyPopupDisabled;
|
||||||
data["General"]["playBGM"] = playBGM;
|
data["General"]["playBGM"] = playBGM;
|
||||||
data["General"]["BGMvolume"] = BGMvolume;
|
data["General"]["BGMvolume"] = BGMvolume;
|
||||||
|
@ -17,9 +17,9 @@ void saveMainWindow(const std::filesystem::path& path);
|
|||||||
|
|
||||||
std::string getTrophyKey();
|
std::string getTrophyKey();
|
||||||
void setTrophyKey(std::string key);
|
void setTrophyKey(std::string key);
|
||||||
|
bool getIsFullscreen();
|
||||||
|
std::string getFullscreenMode();
|
||||||
bool isNeoModeConsole();
|
bool isNeoModeConsole();
|
||||||
bool isFullscreenMode();
|
|
||||||
bool getPlayBGM();
|
bool getPlayBGM();
|
||||||
int getBGMvolume();
|
int getBGMvolume();
|
||||||
bool getisTrophyPopupDisabled();
|
bool getisTrophyPopupDisabled();
|
||||||
@ -66,7 +66,8 @@ void setVblankDiv(u32 value);
|
|||||||
void setGpuId(s32 selectedGpuId);
|
void setGpuId(s32 selectedGpuId);
|
||||||
void setScreenWidth(u32 width);
|
void setScreenWidth(u32 width);
|
||||||
void setScreenHeight(u32 height);
|
void setScreenHeight(u32 height);
|
||||||
void setFullscreenMode(bool enable);
|
void setIsFullscreen(bool enable);
|
||||||
|
void setFullscreenMode(std::string mode);
|
||||||
void setisTrophyPopupDisabled(bool disable);
|
void setisTrophyPopupDisabled(bool disable);
|
||||||
void setPlayBGM(bool enable);
|
void setPlayBGM(bool enable);
|
||||||
void setBGMvolume(int volume);
|
void setBGMvolume(int volume);
|
||||||
|
@ -111,7 +111,7 @@ public:
|
|||||||
return raw_firmware_ver;
|
return raw_firmware_ver;
|
||||||
}
|
}
|
||||||
|
|
||||||
[[nodiscard]] const PSFAttributes& PSFAttributes() const {
|
[[nodiscard]] const PSFAttributes& GetPSFAttributes() const {
|
||||||
ASSERT(initialized);
|
ASSERT(initialized);
|
||||||
return psf_attributes;
|
return psf_attributes;
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ namespace Libraries::Kernel {
|
|||||||
int PS4_SYSV_ABI sceKernelIsNeoMode() {
|
int PS4_SYSV_ABI sceKernelIsNeoMode() {
|
||||||
LOG_DEBUG(Kernel_Sce, "called");
|
LOG_DEBUG(Kernel_Sce, "called");
|
||||||
return Config::isNeoModeConsole() &&
|
return Config::isNeoModeConsole() &&
|
||||||
Common::ElfInfo::Instance().PSFAttributes().support_neo_mode;
|
Common::ElfInfo::Instance().GetPSFAttributes().support_neo_mode;
|
||||||
}
|
}
|
||||||
|
|
||||||
int PS4_SYSV_ABI sceKernelGetCompiledSdkVersion(int* ver) {
|
int PS4_SYSV_ABI sceKernelGetCompiledSdkVersion(int* ver) {
|
||||||
|
@ -86,7 +86,7 @@ int main(int argc, char* argv[]) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
// Set fullscreen mode without saving it to config file
|
// Set fullscreen mode without saving it to config file
|
||||||
Config::setFullscreenMode(is_fullscreen);
|
Config::setIsFullscreen(is_fullscreen);
|
||||||
}},
|
}},
|
||||||
{"--fullscreen", [&](int& i) { arg_map["-f"](i); }},
|
{"--fullscreen", [&](int& i) { arg_map["-f"](i); }},
|
||||||
{"--add-game-folder",
|
{"--add-game-folder",
|
||||||
|
@ -97,7 +97,7 @@ int main(int argc, char* argv[]) {
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
// Set fullscreen mode without saving it to config file
|
// Set fullscreen mode without saving it to config file
|
||||||
Config::setFullscreenMode(is_fullscreen);
|
Config::setIsFullscreen(is_fullscreen);
|
||||||
}},
|
}},
|
||||||
{"--fullscreen", [&](int& i) { arg_map["-f"](i); }},
|
{"--fullscreen", [&](int& i) { arg_map["-f"](i); }},
|
||||||
{"--add-game-folder",
|
{"--add-game-folder",
|
||||||
@ -190,4 +190,4 @@ int main(int argc, char* argv[]) {
|
|||||||
// Show the main window and run the Qt application
|
// Show the main window and run the Qt application
|
||||||
m_main_window->show();
|
m_main_window->show();
|
||||||
return a.exec();
|
return a.exec();
|
||||||
}
|
}
|
||||||
|
@ -300,6 +300,8 @@ void SettingsDialog::LoadValuesFromConfig() {
|
|||||||
ui->discordRPCCheckbox->setChecked(
|
ui->discordRPCCheckbox->setChecked(
|
||||||
toml::find_or<bool>(data, "General", "enableDiscordRPC", true));
|
toml::find_or<bool>(data, "General", "enableDiscordRPC", true));
|
||||||
ui->fullscreenCheckBox->setChecked(toml::find_or<bool>(data, "General", "Fullscreen", false));
|
ui->fullscreenCheckBox->setChecked(toml::find_or<bool>(data, "General", "Fullscreen", false));
|
||||||
|
ui->fullscreenModeComboBox->setCurrentText(QString::fromStdString(
|
||||||
|
toml::find_or<std::string>(data, "General", "FullscreenMode", "Borderless")));
|
||||||
ui->separateUpdatesCheckBox->setChecked(
|
ui->separateUpdatesCheckBox->setChecked(
|
||||||
toml::find_or<bool>(data, "General", "separateUpdateEnabled", false));
|
toml::find_or<bool>(data, "General", "separateUpdateEnabled", false));
|
||||||
ui->showSplashCheckBox->setChecked(toml::find_or<bool>(data, "General", "showSplash", false));
|
ui->showSplashCheckBox->setChecked(toml::find_or<bool>(data, "General", "showSplash", false));
|
||||||
@ -534,8 +536,9 @@ void SettingsDialog::UpdateSettings() {
|
|||||||
|
|
||||||
const QVector<std::string> TouchPadIndex = {"left", "center", "right", "none"};
|
const QVector<std::string> TouchPadIndex = {"left", "center", "right", "none"};
|
||||||
Config::setBackButtonBehavior(TouchPadIndex[ui->backButtonBehaviorComboBox->currentIndex()]);
|
Config::setBackButtonBehavior(TouchPadIndex[ui->backButtonBehaviorComboBox->currentIndex()]);
|
||||||
|
Config::setIsFullscreen(ui->fullscreenCheckBox->isChecked());
|
||||||
|
Config::setFullscreenMode(ui->fullscreenModeComboBox->currentText().toStdString());
|
||||||
Config::setIsMotionControlsEnabled(ui->motionControlsCheckBox->isChecked());
|
Config::setIsMotionControlsEnabled(ui->motionControlsCheckBox->isChecked());
|
||||||
Config::setFullscreenMode(ui->fullscreenCheckBox->isChecked());
|
|
||||||
Config::setisTrophyPopupDisabled(ui->disableTrophycheckBox->isChecked());
|
Config::setisTrophyPopupDisabled(ui->disableTrophycheckBox->isChecked());
|
||||||
Config::setPlayBGM(ui->playBGMCheckBox->isChecked());
|
Config::setPlayBGM(ui->playBGMCheckBox->isChecked());
|
||||||
Config::setLogType(ui->logTypeComboBox->currentText().toStdString());
|
Config::setLogType(ui->logTypeComboBox->currentText().toStdString());
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>970</width>
|
<width>970</width>
|
||||||
<height>670</height>
|
<height>750</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
@ -133,6 +133,35 @@
|
|||||||
<string>Enable Fullscreen</string>
|
<string>Enable Fullscreen</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="fullscreenModeGroupBox">
|
||||||
|
<property name="title">
|
||||||
|
<string>Fullscreen Mode</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="fullscreenModeLayout">
|
||||||
|
<item>
|
||||||
|
<widget class="QComboBox" name="fullscreenModeComboBox">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>Borderless</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>True</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QCheckBox" name="separateUpdatesCheckBox">
|
<widget class="QCheckBox" name="separateUpdatesCheckBox">
|
||||||
@ -536,6 +565,9 @@
|
|||||||
<property name="leftMargin">
|
<property name="leftMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>80</number>
|
||||||
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="hLayoutTrophy">
|
<layout class="QHBoxLayout" name="hLayoutTrophy">
|
||||||
<item>
|
<item>
|
||||||
@ -566,6 +598,12 @@
|
|||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<pointsize>10</pointsize>
|
||||||
|
<bold>false</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
@ -93,7 +93,23 @@ WindowSDL::WindowSDL(s32 width_, s32 height_, Input::GameController* controller_
|
|||||||
}
|
}
|
||||||
|
|
||||||
SDL_SetWindowMinimumSize(window, 640, 360);
|
SDL_SetWindowMinimumSize(window, 640, 360);
|
||||||
SDL_SetWindowFullscreen(window, Config::isFullscreenMode());
|
|
||||||
|
bool error = false;
|
||||||
|
const SDL_DisplayID displayIndex = SDL_GetDisplayForWindow(window);
|
||||||
|
if (displayIndex < 0) {
|
||||||
|
LOG_ERROR(Frontend, "Error getting display index: {}", SDL_GetError());
|
||||||
|
error = true;
|
||||||
|
}
|
||||||
|
const SDL_DisplayMode* displayMode;
|
||||||
|
if ((displayMode = SDL_GetCurrentDisplayMode(displayIndex)) == 0) {
|
||||||
|
LOG_ERROR(Frontend, "Error getting display mode: {}", SDL_GetError());
|
||||||
|
error = true;
|
||||||
|
}
|
||||||
|
if (!error) {
|
||||||
|
SDL_SetWindowFullscreenMode(window,
|
||||||
|
Config::getFullscreenMode() == "True" ? displayMode : NULL);
|
||||||
|
}
|
||||||
|
SDL_SetWindowFullscreen(window, Config::getIsFullscreen());
|
||||||
|
|
||||||
SDL_InitSubSystem(SDL_INIT_GAMEPAD);
|
SDL_InitSubSystem(SDL_INIT_GAMEPAD);
|
||||||
controller->TryOpenSDLController();
|
controller->TryOpenSDLController();
|
||||||
|
Loading…
Reference in New Issue
Block a user