Cocoa Port: Fix build errors that can occur when building on Xcode versions later than 10.3.

- The script that renames the DeSmuME.app package with the git version now runs as a Build Post-Action script rather than as the last build rule. This is to fix an incompatibility with code signing, which is now forced in Xcode 11 and later.
- Update some variables to comply with newer and stricter compiler rules.
This commit is contained in:
rogerman 2021-08-26 14:32:25 -07:00
parent e8f619c44a
commit 92cb90f433
10 changed files with 78 additions and 68 deletions

1
.gitignore vendored
View File

@ -74,3 +74,4 @@ xcuserdata/
/.cproject /.cproject
/config.log /config.log
/.project /.project
.DS_Store

View File

@ -4454,7 +4454,6 @@
AB2DF23215E0834E00B4D0BC /* ShellScript */, AB2DF23215E0834E00B4D0BC /* ShellScript */,
AB796CEE15CDCBA200C59155 /* Sources */, AB796CEE15CDCBA200C59155 /* Sources */,
AB796D6515CDCBA200C59155 /* Frameworks */, AB796D6515CDCBA200C59155 /* Frameworks */,
AB8CF4681FBCEA010039C223 /* ShellScript */,
); );
buildRules = ( buildRules = (
); );
@ -4475,7 +4474,6 @@
AB79004B215B84E50082AE82 /* ShellScript */, AB79004B215B84E50082AE82 /* ShellScript */,
AB79004C215B84E50082AE82 /* Sources */, AB79004C215B84E50082AE82 /* Sources */,
AB790128215B84E50082AE82 /* Frameworks */, AB790128215B84E50082AE82 /* Frameworks */,
AB790139215B84E50082AE82 /* ShellScript */,
); );
buildRules = ( buildRules = (
); );
@ -5260,7 +5258,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "#!/bin/sh\n\n# This script creates an application package that merges the ppc binary of an\n# Xcode 3 PowerPC release build to the i386 and x86_64 binaries of an Xcode 4\n# (or later) release build. It also replaces the .nib files with ones that are\n# created specifically in Xcode 6, which is the last version of Xcode that can\n# compile Leopard-compatible .nib files.\n#\n# Before you use this script, make sure that you already have an existing\n# PowerPC Release build from Xcode 3 in the ${SRCROOT}/build/Release directory,\n# as well as an Xcode 6 .app in the same directory.\n\n# Create the Merged Release directory, plus a working copy of the .app.\nmkdir -p \"${SRCROOT}/build/Merged Release\"\ncd \"${SRCROOT}/build/Merged Release\"\ncp -a \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app\" \"./\"\n\nif test -e \"${SRCROOT}/build/Release/DeSmuME (PPC).app/Contents/MacOS/DeSmuME (PPC)\"\nthen\n\ncd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Contents/MacOS\"\n\n# Create the temp binaries for Intel.\nlipo \"./${EXECUTABLE_NAME}\" -thin i386 -output \"./${EXECUTABLE_NAME}_i386\"\nlipo \"./${EXECUTABLE_NAME}\" -thin x86_64 -output \"./${EXECUTABLE_NAME}_x86_64\"\n\n# Merge the separate temp binaries into a single binary package.\nrm -f \"${SRCROOT}/build/Merged Release/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\"\nlipo \"${SRCROOT}/build/Release/DeSmuME (PPC).app/Contents/MacOS/DeSmuME (PPC)\" \"./${EXECUTABLE_NAME}_i386\" \"./${EXECUTABLE_NAME}_x86_64\" -create -output \"${SRCROOT}/build/Merged Release/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\"\n\n# Remove the temp binaries now that we're done with them.\nrm -f \"./${EXECUTABLE_NAME}_i386\"\nrm -f \"./${EXECUTABLE_NAME}_x86_64\"\n\nfi\n\n# Copy the .nib files from an \"extract NIB\" .app to the Merged Release .app\ncd \"${SRCROOT}/build/Merged Release/${PRODUCT_NAME}.app/Contents/Resources/English.lproj\"\ncp -af \"${SRCROOT}/build/Release/DeSmuME (extract NIB).app/Contents/Resources/English.lproj/MainMenu.nib\" \"./\"\ncp -af \"${SRCROOT}/build/Release/DeSmuME (extract NIB).app/Contents/Resources/English.lproj/DisplayWindow.nib\" \"./\""; shellScript = "#!/bin/sh\n\n# This script creates an application package that merges the ppc binary of an\n# Xcode 3 PowerPC release build to the i386 and x86_64 binaries of an Xcode 4\n# (or later) release build. It also replaces the .nib files with ones that are\n# created specifically in Xcode 6, which is the last version of Xcode that can\n# compile Leopard-compatible .nib files.\n#\n# Before you use this script, make sure that you already have an existing\n# PowerPC Release build from Xcode 3 in the ${SRCROOT}/build/Release directory,\n# as well as an Xcode 6 .app in the same directory.\n\n# Create the Merged Release directory, plus a working copy of the .app.\nmkdir -p \"${SRCROOT}/build/Merged Release\"\ncd \"${SRCROOT}/build/Merged Release\"\ncp -a \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app\" \"./\"\n\nif test -e \"${SRCROOT}/build/Release/DeSmuME (PPC).app/Contents/MacOS/DeSmuME (PPC)\"\nthen\n\ncd \"${TARGET_BUILD_DIR}/${PRODUCT_NAME}.app/Contents/MacOS\"\n\n# Create the temp binaries for Intel.\nlipo \"./${EXECUTABLE_NAME}\" -thin i386 -output \"./${EXECUTABLE_NAME}_i386\"\nlipo \"./${EXECUTABLE_NAME}\" -thin x86_64 -output \"./${EXECUTABLE_NAME}_x86_64\"\n\n# Merge the separate temp binaries into a single binary package.\nrm -f \"${SRCROOT}/build/Merged Release/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\"\nlipo \"${SRCROOT}/build/Release/DeSmuME (PPC).app/Contents/MacOS/DeSmuME (PPC)\" \"./${EXECUTABLE_NAME}_i386\" \"./${EXECUTABLE_NAME}_x86_64\" -create -output \"${SRCROOT}/build/Merged Release/${PRODUCT_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\"\n\n# Remove the temp binaries now that we're done with them.\nrm -f \"./${EXECUTABLE_NAME}_i386\"\nrm -f \"./${EXECUTABLE_NAME}_x86_64\"\n\nfi\n\n# Copy the .nib files from an \"extract NIB\" .app to the Merged Release .app\ncd \"${SRCROOT}/build/Merged Release/${PRODUCT_NAME}.app/Contents/Resources/English.lproj\"\ncp -af \"${SRCROOT}/build/Release/DeSmuME (extract NIB).app/Contents/Resources/English.lproj/MainMenu.nib\" \"./\"\ncp -af \"${SRCROOT}/build/Release/DeSmuME (extract NIB).app/Contents/Resources/English.lproj/DisplayWindow.nib\" \"./\"\n";
}; };
AB2DF23215E0834E00B4D0BC /* ShellScript */ = { AB2DF23215E0834E00B4D0BC /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5274,7 +5272,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\""; shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\"\n";
}; };
AB2DF23515E0839D00B4D0BC /* ShellScript */ = { AB2DF23515E0839D00B4D0BC /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5302,20 +5300,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\""; shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\"\n";
};
AB790139215B84E50082AE82 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if test -d \"${TARGET_BUILD_DIR}/DeSmuME.app\" ; then\n\nDESCRIBE=`git describe --always --long --dirty=\"+\"`\nif [ \"$DESCRIBE\" == \"\" ] ; then\nDESCRIBE=\"0\"\nfi\n\nNEWBUILDNAME=\"${PRODUCT_NAME} git#$DESCRIBE.app\"\ncd \"${TARGET_BUILD_DIR}\"\nrm -rf \"$NEWBUILDNAME\"\nmv -f \"${PRODUCT_NAME}.app\" \"$NEWBUILDNAME\"\n\nfi";
}; };
AB790140215B84F20082AE82 /* ShellScript */ = { AB790140215B84F20082AE82 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5330,7 +5315,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\"\n";
}; };
AB7901A8215B84F20082AE82 /* ShellScript */ = { AB7901A8215B84F20082AE82 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5344,7 +5329,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\""; shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\"\n";
}; };
AB796CA515CDCBA200C59155 /* ShellScript */ = { AB796CA515CDCBA200C59155 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5359,7 +5344,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\"\n";
}; };
AB79FFE3215B84E50082AE82 /* ShellScript */ = { AB79FFE3215B84E50082AE82 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5374,20 +5359,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\"\n";
};
AB8CF4681FBCEA010039C223 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "if test -d \"${TARGET_BUILD_DIR}/DeSmuME.app\" ; then\n\nDESCRIBE=`git describe --always --long --dirty=\"+\"`\nif [ \"$DESCRIBE\" == \"\" ] ; then\nDESCRIBE=\"0\"\nfi\n\nNEWBUILDNAME=\"${PRODUCT_NAME} git#$DESCRIBE.app\"\ncd \"${TARGET_BUILD_DIR}\"\nrm -rf \"$NEWBUILDNAME\"\nmv -f \"${PRODUCT_NAME}.app\" \"$NEWBUILDNAME\"\n\nfi";
}; };
AB8F3C181A53AC2600A80BF6 /* ShellScript */ = { AB8F3C181A53AC2600A80BF6 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5402,7 +5374,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\""; shellScript = "cd \"${SRCROOT}/translations\"\nibtool --generate-strings-file \"./English.lproj/MainMenu.strings\" \"./English.lproj/MainMenu.xib\"\n";
}; };
AB8F3C721A53AC2600A80BF6 /* ShellScript */ = { AB8F3C721A53AC2600A80BF6 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -5416,7 +5388,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\""; shellScript = "cd \"${SRCROOT}\"\nsh \"git-scmrev.sh\"\n";
}; };
/* End PBXShellScriptBuildPhase section */ /* End PBXShellScriptBuildPhase section */
@ -7101,7 +7073,9 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_X86_VECTOR_INSTRUCTIONS = sse4.1;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"\"$(SRCROOT)/openemu\"", "\"$(SRCROOT)/openemu\"",
@ -7118,7 +7092,9 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
buildSettings = { buildSettings = {
ARCHS = "$(ARCHS_STANDARD_64_BIT)"; ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++"; CLANG_CXX_LIBRARY = "libc++";
CLANG_X86_VECTOR_INSTRUCTIONS = sse4.1;
FRAMEWORK_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = (
"$(inherited)", "$(inherited)",
"\"$(SRCROOT)/openemu\"", "\"$(SRCROOT)/openemu\"",

View File

@ -1,10 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "0440" LastUpgradeVersion = "0440"
version = "1.3"> version = "1.7">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"> buildImplicitDependencies = "YES">
<PostActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Script"
scriptText = "cd &quot;${PROJECT_DIR}&quot;&#10;&#10;if test -d &quot;build/Release/${PRODUCT_NAME}.app&quot; ; then&#10;&#10;DESCRIBE=`git describe --always --long --dirty=&quot;+&quot;`&#10;if [ &quot;$DESCRIBE&quot; == &quot;&quot; ] ; then&#10;DESCRIBE=&quot;0&quot;&#10;fi&#10;&#10;NEWBUILDNAME=&quot;${PRODUCT_NAME} git#$DESCRIBE.app&quot;&#10;cd &quot;build/Release&quot;&#10;rm -rf &quot;$NEWBUILDNAME&quot;&#10;mv -f &quot;${PRODUCT_NAME}.app&quot; &quot;$NEWBUILDNAME&quot;&#10;&#10;fi&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "AB796CA415CDCBA200C59155"
BuildableName = "DeSmuME.app"
BlueprintName = "DeSmuME (OS X App -- Latest Xcode)"
ReferencedContainer = "container:DeSmuME (Latest).xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PostActions>
<BuildActionEntries> <BuildActionEntries>
<BuildActionEntry <BuildActionEntry
buildForTesting = "YES" buildForTesting = "YES"
@ -27,8 +45,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
@ -38,8 +54,8 @@
ReferencedContainer = "container:DeSmuME (Latest).xcodeproj"> ReferencedContainer = "container:DeSmuME (Latest).xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <Testables>
</AdditionalOptions> </Testables>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Debug" buildConfiguration = "Debug"
@ -63,8 +79,6 @@
ReferencedContainer = "container:DeSmuME (Latest).xcodeproj"> ReferencedContainer = "container:DeSmuME (Latest).xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction> </LaunchAction>
<ProfileAction <ProfileAction
buildConfiguration = "Release" buildConfiguration = "Release"

View File

@ -1,10 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<Scheme <Scheme
LastUpgradeVersion = "0940" LastUpgradeVersion = "0940"
version = "1.3"> version = "1.7">
<BuildAction <BuildAction
parallelizeBuildables = "YES" parallelizeBuildables = "YES"
buildImplicitDependencies = "YES"> buildImplicitDependencies = "YES">
<PostActions>
<ExecutionAction
ActionType = "Xcode.IDEStandardExecutionActionsCore.ExecutionActionType.ShellScriptAction">
<ActionContent
title = "Run Script"
scriptText = "cd &quot;${PROJECT_DIR}&quot;&#10;&#10;if test -d &quot;build/Release/${PRODUCT_NAME}.app&quot; ; then&#10;&#10;DESCRIBE=`git describe --always --long --dirty=&quot;+&quot;`&#10;if [ &quot;$DESCRIBE&quot; == &quot;&quot; ] ; then&#10;DESCRIBE=&quot;0&quot;&#10;fi&#10;&#10;NEWBUILDNAME=&quot;${PRODUCT_NAME} git#$DESCRIBE.app&quot;&#10;cd &quot;build/Release&quot;&#10;rm -rf &quot;$NEWBUILDNAME&quot;&#10;mv -f &quot;${PRODUCT_NAME}.app&quot; &quot;$NEWBUILDNAME&quot;&#10;&#10;fi&#10;">
<EnvironmentBuildable>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "AB79FFE2215B84E50082AE82"
BuildableName = "DeSmuME.app"
BlueprintName = "DeSmuME (OS X App with 32-bit -- Xcode 9)"
ReferencedContainer = "container:DeSmuME (Latest).xcodeproj">
</BuildableReference>
</EnvironmentBuildable>
</ActionContent>
</ExecutionAction>
</PostActions>
<BuildActionEntries> <BuildActionEntries>
<BuildActionEntry <BuildActionEntry
buildForTesting = "YES" buildForTesting = "YES"
@ -27,8 +45,6 @@
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES"> shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion> <MacroExpansion>
<BuildableReference <BuildableReference
BuildableIdentifier = "primary" BuildableIdentifier = "primary"
@ -38,8 +54,8 @@
ReferencedContainer = "container:DeSmuME (Latest).xcodeproj"> ReferencedContainer = "container:DeSmuME (Latest).xcodeproj">
</BuildableReference> </BuildableReference>
</MacroExpansion> </MacroExpansion>
<AdditionalOptions> <Testables>
</AdditionalOptions> </Testables>
</TestAction> </TestAction>
<LaunchAction <LaunchAction
buildConfiguration = "Debug" buildConfiguration = "Debug"
@ -61,8 +77,6 @@
ReferencedContainer = "container:DeSmuME (Latest).xcodeproj"> ReferencedContainer = "container:DeSmuME (Latest).xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction> </LaunchAction>
<ProfileAction <ProfileAction
buildConfiguration = "Release" buildConfiguration = "Release"

View File

@ -246,7 +246,7 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.9.12</string> <string>0.9.12</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string>public.app-category.entertainment</string> <string>public.app-category.games</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>

View File

@ -246,7 +246,7 @@
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>0.9.12</string> <string>0.9.12</string>
<key>LSApplicationCategoryType</key> <key>LSApplicationCategoryType</key>
<string>public.app-category.entertainment</string> <string>public.app-category.games</string>
<key>LSMinimumSystemVersion</key> <key>LSMinimumSystemVersion</key>
<string>${MACOSX_DEPLOYMENT_TARGET}</string> <string>${MACOSX_DEPLOYMENT_TARGET}</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>

View File

@ -1,5 +1,5 @@
/* /*
Copyright (C) 2014-2017 DeSmuME team Copyright (C) 2014-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -7120,8 +7120,8 @@ void OGLDisplayLayer::ProcessOGL()
GLuint texMain = (selectedDisplaySource[NDSDisplayID_Main] == NDSDisplayID_Main) ? fetchObj.GetFetchTexture(NDSDisplayID_Main) : fetchObj.GetFetchTexture(NDSDisplayID_Touch); GLuint texMain = (selectedDisplaySource[NDSDisplayID_Main] == NDSDisplayID_Main) ? fetchObj.GetFetchTexture(NDSDisplayID_Main) : fetchObj.GetFetchTexture(NDSDisplayID_Touch);
GLuint texTouch = (selectedDisplaySource[NDSDisplayID_Touch] == NDSDisplayID_Touch) ? fetchObj.GetFetchTexture(NDSDisplayID_Touch) : fetchObj.GetFetchTexture(NDSDisplayID_Main); GLuint texTouch = (selectedDisplaySource[NDSDisplayID_Touch] == NDSDisplayID_Touch) ? fetchObj.GetFetchTexture(NDSDisplayID_Touch) : fetchObj.GetFetchTexture(NDSDisplayID_Main);
GLsizei width[2] = { emuDisplayInfo.renderedWidth[selectedDisplaySource[NDSDisplayID_Main]], emuDisplayInfo.renderedWidth[selectedDisplaySource[NDSDisplayID_Touch]] }; GLsizei width[2] = { (GLsizei)emuDisplayInfo.renderedWidth[selectedDisplaySource[NDSDisplayID_Main]], (GLsizei)emuDisplayInfo.renderedWidth[selectedDisplaySource[NDSDisplayID_Touch]] };
GLsizei height[2] = { emuDisplayInfo.renderedHeight[selectedDisplaySource[NDSDisplayID_Main]], emuDisplayInfo.renderedHeight[selectedDisplaySource[NDSDisplayID_Touch]] }; GLsizei height[2] = { (GLsizei)emuDisplayInfo.renderedHeight[selectedDisplaySource[NDSDisplayID_Main]], (GLsizei)emuDisplayInfo.renderedHeight[selectedDisplaySource[NDSDisplayID_Touch]] };
VideoFilter *vfMain = this->_output->GetPixelScalerObject(NDSDisplayID_Main); VideoFilter *vfMain = this->_output->GetPixelScalerObject(NDSDisplayID_Main);
VideoFilter *vfTouch = this->_output->GetPixelScalerObject(NDSDisplayID_Touch); VideoFilter *vfTouch = this->_output->GetPixelScalerObject(NDSDisplayID_Touch);

View File

@ -1,5 +1,5 @@
/* /*
Copyright (C) 2018 DeSmuME team Copyright (C) 2018-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -86,7 +86,7 @@ public:
void *refObject; void *refObject;
MacClientSharedObject *sharedData; MacClientSharedObject *sharedData;
NSInteger formatID; NSUInteger formatID;
std::string savePath; std::string savePath;
std::string romName; std::string romName;
bool useDeposterize; bool useDeposterize;

View File

@ -1,5 +1,5 @@
/* /*
Copyright (C) 2017-2018 DeSmuME team Copyright (C) 2017-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -292,7 +292,7 @@ static void* RunFileWriteThread(void *arg)
NSString *savePath = [NSString stringWithCString:param.savePath.c_str() encoding:NSUTF8StringEncoding]; NSString *savePath = [NSString stringWithCString:param.savePath.c_str() encoding:NSUTF8StringEncoding];
NSURL *fileURL = [NSURL fileURLWithPath:[savePath stringByAppendingPathComponent:fileName]]; NSURL *fileURL = [NSURL fileURLWithPath:[savePath stringByAppendingPathComponent:fileName]];
[CocoaDSFile saveScreenshot:fileURL bitmapData:newImageRep fileType:param.formatID]; [CocoaDSFile saveScreenshot:fileURL bitmapData:newImageRep fileType:(NSBitmapImageFileType)param.formatID];
// Clean up. // Clean up.
delete cdp; delete cdp;

View File

@ -1,7 +1,7 @@
/* /*
Copyright (C) 2006 yopyop Copyright (C) 2006 yopyop
Copyright (C) 2006-2007 shash Copyright (C) 2006-2007 shash
Copyright (C) 2008-2017 DeSmuME team Copyright (C) 2008-2021 DeSmuME team
This file is free software: you can redistribute it and/or modify This file is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -1156,8 +1156,8 @@ template <TextureStoreUnpackFormat TEXCACHEFORMAT>
void NDSTextureUnpack4x4(const size_t srcSize, const u32 *__restrict srcData, const u16 *__restrict srcIndex, const u32 palAddress, const u32 sizeX, const u32 sizeY, u32 *__restrict dstBuffer) void NDSTextureUnpack4x4(const size_t srcSize, const u32 *__restrict srcData, const u16 *__restrict srcIndex, const u32 palAddress, const u32 sizeX, const u32 sizeY, u32 *__restrict dstBuffer)
{ {
const u32 limit = srcSize * sizeof(u32); const u32 limit = srcSize * sizeof(u32);
const u16 xTmpSize = sizeX >> 2; const u32 xTmpSize = sizeX >> 2;
const u16 yTmpSize = sizeY >> 2; const u32 yTmpSize = sizeY >> 2;
//this is flagged whenever a 4x4 overruns its slot. //this is flagged whenever a 4x4 overruns its slot.
//i am guessing we just generate black in that case //i am guessing we just generate black in that case
@ -1165,8 +1165,13 @@ void NDSTextureUnpack4x4(const size_t srcSize, const u32 *__restrict srcData, co
for (size_t y = 0, d = 0; y < yTmpSize; y++) for (size_t y = 0, d = 0; y < yTmpSize; y++)
{ {
u32 tmpPos[4]={(y<<2)*sizeX,((y<<2)+1)*sizeX, size_t tmpPos[4] = {
((y<<2)+2)*sizeX,((y<<2)+3)*sizeX}; ((y<<2)+0) * sizeX,
((y<<2)+1) * sizeX,
((y<<2)+2) * sizeX,
((y<<2)+3) * sizeX
};
for (size_t x = 0; x < xTmpSize; x++, d++) for (size_t x = 0; x < xTmpSize; x++, d++)
{ {
if (d >= limit) if (d >= limit)
@ -1174,9 +1179,9 @@ void NDSTextureUnpack4x4(const size_t srcSize, const u32 *__restrict srcData, co
if (dead) if (dead)
{ {
for (int sy = 0; sy < 4; sy++) for (size_t sy = 0; sy < 4; sy++)
{ {
const u32 currentPos = (x<<2) + tmpPos[sy]; const size_t currentPos = (x<<2) + tmpPos[sy];
dstBuffer[currentPos] = dstBuffer[currentPos+1] = dstBuffer[currentPos+2] = dstBuffer[currentPos+3] = 0; dstBuffer[currentPos] = dstBuffer[currentPos+1] = dstBuffer[currentPos+2] = dstBuffer[currentPos+3] = 0;
} }
continue; continue;
@ -1268,7 +1273,7 @@ void NDSTextureUnpack4x4(const size_t srcSize, const u32 *__restrict srcData, co
for (size_t sy = 0; sy < 4; sy++) for (size_t sy = 0; sy < 4; sy++)
{ {
// Texture offset // Texture offset
const u32 currentPos = (x<<2) + tmpPos[sy]; const size_t currentPos = (x<<2) + tmpPos[sy];
const u8 currRow = (u8)((currBlock>>(sy<<3))&0xFF); const u8 currRow = (u8)((currBlock>>(sy<<3))&0xFF);
dstBuffer[currentPos ] = tmp_col[ currRow &3]; dstBuffer[currentPos ] = tmp_col[ currRow &3];