From 05b131b33ff121820f418682e4cb377a984a8129 Mon Sep 17 00:00:00 2001 From: June <rjp2030@outlook.com> Date: Wed, 25 Dec 2024 03:37:37 +0900 Subject: [PATCH] maintenence --- src/MeloNX/MeloNX.xcodeproj/project.pbxproj | 194 +++++++++++++++++- .../UserInterfaceState.xcuserstate | Bin 0 -> 55226 bytes .../xcschemes/xcschememanagement.plist | 24 +++ src/MeloNX/MeloNX/MeloNX.entitlements | 4 + .../Ryujinx.Headless.SDL2.csproj | 7 +- 5 files changed, 224 insertions(+), 5 deletions(-) create mode 100644 src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/june.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 src/MeloNX/MeloNX.xcodeproj/xcuserdata/june.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj index b7ed4fa70..ea39e22de 100644 --- a/src/MeloNX/MeloNX.xcodeproj/project.pbxproj +++ b/src/MeloNX/MeloNX.xcodeproj/project.pbxproj @@ -6,6 +6,23 @@ objectVersion = 73; objects = { +/* Begin PBXAggregateTarget section */ + BD43C6212D1B248D003BBC42 /* com.Stossy11.MeloNX.RyujinxAg */ = { + isa = PBXAggregateTarget; + buildConfigurationList = BD43C6222D1B248D003BBC42 /* Build configuration list for PBXAggregateTarget "com.Stossy11.MeloNX.RyujinxAg" */; + buildPhases = ( + BD43C62A2D1B252F003BBC42 /* ShellScript */, + ); + dependencies = ( + BD43C6262D1B249E003BBC42 /* PBXTargetDependency */, + ); + name = com.Stossy11.MeloNX.RyujinxAg; + packageProductDependencies = ( + ); + productName = com.Stossy11.MeloNX.RyujinxAg; + }; +/* End PBXAggregateTarget section */ + /* Begin PBXBuildFile section */ 4E0DED342D05695D00FEF007 /* SwiftUIJoystick in Frameworks */ = {isa = PBXBuildFile; productRef = 4E0DED332D05695D00FEF007 /* SwiftUIJoystick */; }; 4E4854022D138D7600A446A6 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E80AA622CD7122800029585 /* GameController.framework */; }; @@ -27,6 +44,20 @@ remoteGlobalIDString = 4E80A98C2CD6F54500029585; remoteInfo = MeloNX; }; + BD43C6252D1B249E003BBC42 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4E80A9852CD6F54500029585 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BD43C61D2D1B23AB003BBC42; + remoteInfo = Ryujinx; + }; + BD43C62D2D1B25DE003BBC42 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 4E80A9852CD6F54500029585 /* Project object */; + proxyType = 1; + remoteGlobalIDString = BD43C6212D1B248D003BBC42; + remoteInfo = com.Stossy11.MeloNX.RyujinxAg; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -47,6 +78,7 @@ 4E80A99D2CD6F54700029585 /* MeloNXTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MeloNXTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 4E80A9A72CD6F54700029585 /* MeloNXUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MeloNXUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 4E80AA622CD7122800029585 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; + BD43C6282D1B2514003BBC42 /* Ryujinx.Headless.SDL2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Ryujinx.Headless.SDL2.dylib; path = "MeloNX/Dependencies/Dynamic Libraries/Ryujinx.Headless.SDL2.dylib"; sourceTree = "<group>"; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -139,10 +171,17 @@ Dependencies/XCFrameworks/SDL2.xcframework, ); }; + BD43C6122D1B1769003BBC42 /* PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet */ = { + isa = PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet; + buildPhase = 4E80A9892CD6F54500029585 /* Sources */; + membershipExceptions = ( + "Core/Headers/Ryujinx-Header.h", + ); + }; /* End PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet section */ /* Begin PBXFileSystemSynchronizedRootGroup section */ - 4E80A98F2CD6F54500029585 /* MeloNX */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (4E80AA1D2CD7015100029585 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 4E9A82F32CF87822006D7086 /* PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = MeloNX; sourceTree = "<group>"; }; + 4E80A98F2CD6F54500029585 /* MeloNX */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (4E80AA1D2CD7015100029585 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, BD43C6122D1B1769003BBC42 /* PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet */, 4E9A82F32CF87822006D7086 /* PBXFileSystemSynchronizedGroupBuildPhaseMembershipExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = MeloNX; sourceTree = "<group>"; }; 4E80A9A02CD6F54700029585 /* MeloNXTests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = MeloNXTests; sourceTree = "<group>"; }; 4E80A9AA2CD6F54700029585 /* MeloNXUITests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = MeloNXUITests; sourceTree = "<group>"; }; /* End PBXFileSystemSynchronizedRootGroup section */ @@ -178,6 +217,7 @@ 4E80A9842CD6F54500029585 = { isa = PBXGroup; children = ( + BD43C6282D1B2514003BBC42 /* Ryujinx.Headless.SDL2.dylib */, 4E80A98F2CD6F54500029585 /* MeloNX */, 4E80A9A02CD6F54700029585 /* MeloNXTests */, 4E80A9AA2CD6F54700029585 /* MeloNXUITests */, @@ -206,6 +246,25 @@ }; /* End PBXGroup section */ +/* Begin PBXLegacyTarget section */ + BD43C61D2D1B23AB003BBC42 /* Ryujinx */ = { + isa = PBXLegacyTarget; + buildArgumentsString = "publish -c Release -r ios-arm64 -p:ExtraDefineConstants=DISABLE_UPDATER src/Ryujinx.Headless.SDL2 --self-contained true"; + buildConfigurationList = BD43C61E2D1B23AB003BBC42 /* Build configuration list for PBXLegacyTarget "Ryujinx" */; + buildPhases = ( + ); + buildToolPath = "$(HOME)/.dotnet/dotnet"; + buildWorkingDirectory = "$(SRCROOT)/../.."; + dependencies = ( + ); + name = Ryujinx; + packageProductDependencies = ( + ); + passBuildSettingsInEnvironment = 0; + productName = Ryujinx; + }; +/* End PBXLegacyTarget section */ + /* Begin PBXNativeTarget section */ 4E80A98C2CD6F54500029585 /* MeloNX */ = { isa = PBXNativeTarget; @@ -219,6 +278,7 @@ buildRules = ( ); dependencies = ( + BD43C62E2D1B25DE003BBC42 /* PBXTargetDependency */, ); fileSystemSynchronizedGroups = ( 4E80A98F2CD6F54500029585 /* MeloNX */, @@ -299,6 +359,12 @@ CreatedOnToolsVersion = 16.1; TestTargetID = 4E80A98C2CD6F54500029585; }; + BD43C61D2D1B23AB003BBC42 = { + CreatedOnToolsVersion = 16.2; + }; + BD43C6212D1B248D003BBC42 = { + CreatedOnToolsVersion = 16.2; + }; }; }; buildConfigurationList = 4E80A9882CD6F54500029585 /* Build configuration list for PBXProject "MeloNX" */; @@ -322,6 +388,8 @@ 4E80A98C2CD6F54500029585 /* MeloNX */, 4E80A99C2CD6F54700029585 /* MeloNXTests */, 4E80A9A62CD6F54700029585 /* MeloNXUITests */, + BD43C61D2D1B23AB003BBC42 /* Ryujinx */, + BD43C6212D1B248D003BBC42 /* com.Stossy11.MeloNX.RyujinxAg */, ); }; /* End PBXProject section */ @@ -350,6 +418,28 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + BD43C62A2D1B252F003BBC42 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/../../src/Ryujinx.Headless.SDL2/bin/Release/net8.0/ios-arm64/native/Ryujinx.Headless.SDL2.dylib", + ); + outputFileListPaths = ( + ); + outputPaths = ( + "$(SRCROOT)/MeloNX/Dependencies/Dynamic Libraries/Ryujinx.Headless.SDL2.dylib", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "cd ../..\nmv src/Ryujinx.Headless.SDL2/bin/Release/net8.0/ios-arm64/native/Ryujinx.Headless.SDL2.dylib src/MeloNX/MeloNX/Dependencies/Dynamic\\ Libraries/Ryujinx.Headless.SDL2.dylib\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ 4E80A9892CD6F54500029585 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -385,6 +475,16 @@ target = 4E80A98C2CD6F54500029585 /* MeloNX */; targetProxy = 4E80A9A82CD6F54700029585 /* PBXContainerItemProxy */; }; + BD43C6262D1B249E003BBC42 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BD43C61D2D1B23AB003BBC42 /* Ryujinx */; + targetProxy = BD43C6252D1B249E003BBC42 /* PBXContainerItemProxy */; + }; + BD43C62E2D1B25DE003BBC42 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = BD43C6212D1B248D003BBC42 /* com.Stossy11.MeloNX.RyujinxAg */; + targetProxy = BD43C62D2D1B25DE003BBC42 /* PBXContainerItemProxy */; + }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ @@ -393,6 +493,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_OPTIMIZATION = time; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -423,17 +524,20 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; + EAGER_LINKING = YES; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; GCC_DYNAMIC_NO_PIC = NO; + GCC_FAST_MATH = YES; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); + GCC_UNROLL_LOOPS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -441,12 +545,14 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 18.1; + LLVM_LTO = YES_THIN; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = NO; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_ENFORCE_EXCLUSIVE_ACCESS = "debug-only"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; @@ -456,6 +562,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_OPTIMIZATION = time; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; @@ -486,12 +593,15 @@ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + EAGER_LINKING = YES; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_FAST_MATH = YES; GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 3; + GCC_OPTIMIZATION_LEVEL = fast; + GCC_UNROLL_LOOPS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; @@ -499,12 +609,15 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; IPHONEOS_DEPLOYMENT_TARGET = 18.1; + LLVM_LTO = YES_THIN; LOCALIZATION_PREFERS_STRING_CATALOGS = YES; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_DISABLE_SAFETY_CHECKS = YES; + SWIFT_ENFORCE_EXCLUSIVE_ACCESS = "debug-only"; VALIDATE_PRODUCT = YES; }; name = Release; @@ -529,7 +642,9 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); + GCC_OPTIMIZATION_LEVEL = fast; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = MeloNX/Info.plist; INFOPLIST_KEY_GCSupportsGameMode = YES; @@ -673,6 +788,10 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); MARKETING_VERSION = 0.0.8; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; @@ -704,8 +823,9 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); - GCC_OPTIMIZATION_LEVEL = 3; + GCC_OPTIMIZATION_LEVEL = fast; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = MeloNX/Info.plist; INFOPLIST_KEY_GCSupportsGameMode = YES; @@ -849,6 +969,10 @@ "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", + "$(PROJECT_DIR)/MeloNX/Dependencies/Dynamic\\ Libraries", ); MARKETING_VERSION = 0.0.8; PRODUCT_BUNDLE_IDENTIFIER = com.stossy11.MeloNX; @@ -932,6 +1056,52 @@ }; name = Release; }; + BD43C61F2D1B23AB003BBC42 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEBUGGING_SYMBOLS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = 95J8WZ4TN8; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + BD43C6202D1B23AB003BBC42 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 95J8WZ4TN8; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + BD43C6232D1B248D003BBC42 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 95J8WZ4TN8; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + BD43C6242D1B248D003BBC42 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = 95J8WZ4TN8; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ @@ -971,6 +1141,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + BD43C61E2D1B23AB003BBC42 /* Build configuration list for PBXLegacyTarget "Ryujinx" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BD43C61F2D1B23AB003BBC42 /* Debug */, + BD43C6202D1B23AB003BBC42 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + BD43C6222D1B248D003BBC42 /* Build configuration list for PBXAggregateTarget "com.Stossy11.MeloNX.RyujinxAg" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + BD43C6232D1B248D003BBC42 /* Debug */, + BD43C6242D1B248D003BBC42 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ diff --git a/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/june.xcuserdatad/UserInterfaceState.xcuserstate b/src/MeloNX/MeloNX.xcodeproj/project.xcworkspace/xcuserdata/june.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..337a1297bf64c623c3bf88fa0e8a00ec87eaee7d GIT binary patch literal 55226 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 literal 0 HcmV?d00001 diff --git a/src/MeloNX/MeloNX.xcodeproj/xcuserdata/june.xcuserdatad/xcschemes/xcschememanagement.plist b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/june.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 000000000..4fe0b9620 --- /dev/null +++ b/src/MeloNX/MeloNX.xcodeproj/xcuserdata/june.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>MeloNX.xcscheme_^#shared#^_</key> + <dict> + <key>orderHint</key> + <integer>0</integer> + </dict> + <key>Ryujinx.xcscheme_^#shared#^_</key> + <dict> + <key>orderHint</key> + <integer>3</integer> + </dict> + <key>com.Stossy11.MeloNX.RyujinxAg.xcscheme_^#shared#^_</key> + <dict> + <key>orderHint</key> + <integer>4</integer> + </dict> + </dict> +</dict> +</plist> diff --git a/src/MeloNX/MeloNX/MeloNX.entitlements b/src/MeloNX/MeloNX/MeloNX.entitlements index 99f471672..aff1d9915 100644 --- a/src/MeloNX/MeloNX/MeloNX.entitlements +++ b/src/MeloNX/MeloNX/MeloNX.entitlements @@ -2,6 +2,10 @@ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> + <key>com.apple.developer.kernel.extended-virtual-addressing</key> + <true/> + <key>com.apple.developer.kernel.increased-debugging-memory-limit</key> + <true/> <key>com.apple.developer.kernel.increased-memory-limit</key> <true/> </dict> diff --git a/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj b/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj index 25831c6de..059ba0d68 100644 --- a/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj +++ b/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj @@ -11,8 +11,10 @@ <PublishAot>true</PublishAot> <PublishAotUsingRuntimePack>true</PublishAotUsingRuntimePack> + <AotCompilerOptions>-flto -Ofast -funroll-loops</AotCompilerOptions> <UseNativeAOTRuntime>true</UseNativeAOTRuntime> <TrimmerSingleWarn>false</TrimmerSingleWarn> + <OptimizationPreference>Speed</OptimizationPreference> </PropertyGroup> <!-- iOS linking stuff from godot --> @@ -46,7 +48,8 @@ <Message Importance="normal" Text="Found XCode at $(XcodeSelect)" Condition=" '$(FindXCode)' == 'true' "/> <ItemGroup> - <LinkerArg Include="-Wl,-ld_classic" /> +<!-- <LinkerArg Include="-Wl,-ld_classic" /> --> + <LinkerArg Include="-flto -Ofast" /> <LinkerArg Include="-isysroot %22$(XCodePath)Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk%22" Condition=" $(RuntimeIdentifier.Contains('simulator')) "/> <LinkerArg Include="-isysroot %22$(XCodePath)Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk%22" @@ -80,7 +83,7 @@ <ItemGroup> <PackageReference Include="OpenTK.Core" /> - <PackageReference Include="Ryujinx.Graphics.Nvdec.Dependencies" /> + <!-- <PackageReference Include="Ryujinx.Graphics.Nvdec.Dependencies" /> --> </ItemGroup> <Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="false">