From 08f65cbd01cda0345e597c8398dc33ea2e2fa932 Mon Sep 17 00:00:00 2001 From: crueter Date: Thu, 28 May 2026 20:36:16 +0200 Subject: [PATCH 1/2] [frontend] Fix auto updater flavors on Windows (#4019) Matches the build ID and compiler now. Note that this could still use some work on the Windows side of things. Ideally, it would just replace the executables in place; however, I think using the setup files will be better. Most of my concerns w.r.t this issue is that users will want to install multiple in the same place; however, I think it's fair to just not support the older versions at all for now. If users really want to do that, they can use the portable versions and cry about it. Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4019 Reviewed-by: CamilleLaVey Reviewed-by: MaranBr Reviewed-by: Lizzie --- src/CMakeLists.txt | 21 +++++++++++++++++++++ src/common/net/net.cpp | 22 +++++++++++++--------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 58ae00e8d9..86aa23c627 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,20 +21,41 @@ if (YUZU_STATIC_BUILD) add_compile_definitions(QT_STATICPLUGIN) endif() +# Build identifiers if (NIGHTLY_BUILD) add_compile_definitions(NIGHTLY_BUILD) endif() +# Legacy (android only) if (YUZU_LEGACY) message(WARNING "Making legacy build. Performance may suffer.") add_compile_definitions(YUZU_LEGACY) endif() +# Genshin Spoof (android only) if (GENSHIN_SPOOF) message(WARNING "Making Genshin spoof build") add_compile_definitions(GENSHIN_SPOOF) endif() +# Build ID (mingw only right now) +# Pretty much just refers to the CI "target" for this build +if (NOT BUILD_ID) + if (ARCHITECTURE_x86_64) + set(BUILD_ID amd64) + elseif(ARCHITECTURE_arm64) + if (WIN32) + set(BUILD_ID arm64) + else() + set(BUILD_ID aarch64) + endif() + else() + set(BUILD_ID "${ARCHITECTURE}") + endif() +endif() + +add_compile_definitions(BUILD_ID="${BUILD_ID}") + # Set compilation flags if (MSVC AND NOT CXX_CLANG) set(CMAKE_CONFIGURATION_TYPES Debug Release CACHE STRING "" FORCE) diff --git a/src/common/net/net.cpp b/src/common/net/net.cpp index 1d836cbd1d..ec627177a2 100644 --- a/src/common/net/net.cpp +++ b/src/common/net/net.cpp @@ -62,16 +62,20 @@ std::vector Release::GetPlatformAssets() const { #ifdef _WIN32 #ifdef ARCHITECTURE_x86_64 - find_asset("Standard", {"amd64-msvc-standard.exe", "amd64-msvc-standard.zip", "mingw-amd64-gcc-standard.exe", "mingw-amd64-gcc-standard.zip"}); - find_asset("PGO", {"mingw-amd64-clang-pgo.exe", "mingw-amd64-clang-pgo.zip"}); +#ifdef _MSC_VER + find_asset("Standard", {"amd64-msvc-standard.exe", "amd64-msvc-standard.zip"}); +#else // _MSC_VER + find_asset("Standard", {BUILD_ID "-gcc-standard.exe", BUILD_ID "-gcc-standard.zip"}); + find_asset("PGO", {BUILD_ID "-clang-pgo.exe", BUILD_ID "-clang-pgo.zip"}); +#endif // _MSC_VER #elif defined(ARCHITECTURE_arm64) - find_asset("Standard", {"mingw-arm64-clang-standard.exe", "mingw-arm64-clang-standard.zip"}); - find_asset("PGO", {"mingw-arm64-clang-pgo.exe", "mingw-arm64-clang-pgo.zip"}); -#endif + find_asset("Standard", {"arm64-clang-standard.exe", "arm64-clang-standard.zip"}); + find_asset("PGO", {"arm64-clang-pgo.exe", "arm64-clang-pgo.zip"}); +#endif // ARCHITECTURE_arm64 #elif defined(__APPLE__) #ifdef ARCHITECTURE_arm64 find_asset("Standard", {".dmg", ".tar.gz"}); -#endif +#endif // ARCHITECTURE_arm64 #elif defined(__ANDROID__) #ifdef ARCHITECTURE_x86_64 find_asset("Standard", {"chromeos.apk"}); @@ -82,9 +86,9 @@ std::vector Release::GetPlatformAssets() const { find_asset("Standard", {"optimized.apk"}); #else find_asset("Standard", {"standard.apk"}); -#endif -#endif -#endif +#endif // GENSHIN_SPOOF +#endif // ARCHITECTURE_arm64 +#endif // __APPLE__ return found_assets; } From 251a3470dc92acb039ffebec019bc1f4ad248dc9 Mon Sep 17 00:00:00 2001 From: crueter Date: Thu, 28 May 2026 21:22:28 +0200 Subject: [PATCH 2/2] [desktop] Set max stdio limit to 2048 on MSVCRT environments (#4023) Such as MINGW64. I legitimately don't have an explanation for this. Signed-off-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4023 Reviewed-by: MaranBr Reviewed-by: Lizzie --- src/yuzu/main.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index f8528d9671..b4472bff11 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -107,8 +107,14 @@ int main(int argc, char* argv[]) { QCoreApplication::setApplicationName(QStringLiteral("eden")); #ifdef _WIN32 - // Increases the maximum open file limit to 8192 + // Increases the maximum open file limit. + // MSVCRT limits this to 2048 for some inexplicable (and likely arcane) reason, + // so we have to account for that as well. +#ifdef __MSVCRT__ + _setmaxstdio(2048); +#else _setmaxstdio(8192); +#endif #elif defined(__APPLE__) // If you start a bundle (binary) on OSX without the Terminal, the working directory is "/". // But since we require the working directory to be the executable path for the location of