Installing DeSmuME from source on OS X

From DeSmuME
(Difference between revisions)
Jump to: navigation, search
(Set Up the Build Environment)
 
(11 intermediate revisions by one user not shown)
Line 1: Line 1:
 
== About the Build Targets ==
 
== About the Build Targets ==
DeSmuME for OS X may be built using several different configurations. Each build configuration is listed in an Xcode project as a "build target." The Xcode project files, provided with the DeSmuME source code, include several build targets to suit your needs. Many build targets are similar to each other, and so they have been organized into the following categories, based on what the build target produces.
+
DeSmuME for macOS may be built using several different configurations. Each build configuration is listed in an Xcode project as a "build target." The Xcode project files, provided with the DeSmuME source code, include several build targets to suit your needs. Many build targets are similar to each other, and so they have been organized into the following categories, based on what the build target produces.
  
  
=== OS X App ===
+
=== macOS App ===
These build targets produce a self-contained OS X application package (or "app bundle"). These builds use our official OS X frontend to run the DeSmuME emulator, and are designed for the debugging and testing of pre-release builds. These app bundles are compatible with OS X v10.6 or later. (Also compatible with OS X v10.5 if building from the Xcode 3 project).
+
These build targets produce a self-contained macOS application package (or "app bundle"). These builds use our official macOS frontend to run the DeSmuME emulator, and are designed for the debugging and testing of pre-release builds. These app bundles are compatible with macOS 10.6 or later. (Also compatible with macOS 10.5 if building from the Xcode 3 project).
 +
 
  
 
'''Build Target Goals:'''
 
'''Build Target Goals:'''
 
* Fully featured.
 
* Fully featured.
* Widest build compatibility with Xcode versions running different OS X versions.
+
* Widest build compatibility with Xcode versions running different macOS versions.
 
* Quick debug-and-test of code changes.
 
* Quick debug-and-test of code changes.
 +
  
 
'''Advantages:'''
 
'''Advantages:'''
* Can be built on machines running OS X v10.5 or later, and Xcode v3.1.4 or later.
+
* Builds only have a minimum requirement Xcode 3.2.6, so any machine running macOS 10.6 or later can make this build.
 
* Binaries can be configured to run in debug mode or in release mode.
 
* Binaries can be configured to run in debug mode or in release mode.
 
* Binaries can be configured for PowerPC or Intel compatibility.
 
* Binaries can be configured for PowerPC or Intel compatibility.
* Building the app is faster than the final release build.
+
* Building the app is much faster than the final release build.
 +
 
  
 
'''Disadvantages:'''
 
'''Disadvantages:'''
* Binary compatibility with OS X v10.5 requires Xcode 3 to build.
+
* Binary compatibility with macOS v10.5 requires Xcode 3 to build.
  
  
=== OS X App (dev+) ===
+
'''Builds For This Category:'''
This build target is just like the normal OS X App build, except it enables additional debugging features, such as the GDB remote stub. This build is meant for developer usage.
+
* DeSmuME (Xcode 3).xcodeproj
 +
** DeSmuME (macOS App; Intel; LLVM-Clang) | ''Builds for i386/x86_64, requires Xcode 3.2.6 using Clang 1.7. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.5.''
 +
** DeSmuME (macOS App; Intel; LLVM-GCC) | ''Builds for i386/x86_64, requires Xcode 3.2.6 using GCC 4.2.1. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.5.''
 +
** DeSmuME (macOS App; PowerPC; LLVM-Clang) | ''Builds for ppc/ppc64, requires Xcode 3.2.6 using Clang 1.7 for ppc and GCC 4.2.1 for ppc64. Runs on PowerPC 32-bit and PowerPC 64-bit, macOS 10.5 only.''
 +
** DeSmuME (macOS App; PowerPC; LLVM-GCC) | ''Builds for ppc/ppc64, requires Xcode 3.2.6 using GCC 4.2.1. Runs on PowerPC 32-bit and PowerPC 64-bit, macOS 10.5 only.''
 +
 
 +
* DeSmuME (Latest).xcodeproj
 +
** DeSmuME (macOS App; Intel64 -- Latest Xcode) | ''Builds for x86_64/x86_64h, requires Xcode 10.1 minimum. Runs on Intel 64-bit and Intel 64-bit Haswell, minimum macOS 10.12.''
 +
** DeSmuME (macOS App; AppleSilicon -- Latest Xcode) | ''Builds for arm64, requires Xcode 12.4 minimum. Runs on Apple Silicon, minimum macOS 11.0.''
 +
** DeSmuME (macOS App; Intel32 Intel64 -- Xcode 8) | ''Builds for i386/x86_64, requires Xcode 8.2.1 minimum to Xcode 9.4.1 maximum. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.6.''
 +
 
 +
 
 +
=== macOS App (dev+) ===
 +
This build target is just like the normal macOS App build, except it enables additional debugging features, such as the GDB remote stub. This build is meant for developer usage.
 +
 
  
 
'''Build Target Goals:'''
 
'''Build Target Goals:'''
 
* Fully featured, and includes additional debugging features.
 
* Fully featured, and includes additional debugging features.
* Must be compatible with the latest version of Xcode running on the latest version of OS X.
+
* Must be compatible with the latest version of Xcode running on the latest version of macOS.
 
* Quick debug-and-test of code changes.
 
* Quick debug-and-test of code changes.
 +
  
 
'''Advantages:'''
 
'''Advantages:'''
* Can be built on machines running Xcode v4.6.3 or later.
+
* Builds only have a minimum requirement Xcode 8.2.1, so any machine running macOS 10.11.5 or later can make this build.
 
* Binaries can be configured to run in debug mode or in release mode.
 
* Binaries can be configured to run in debug mode or in release mode.
 
* Building the app is faster than the final release build.
 
* Building the app is faster than the final release build.
 +
  
 
'''Disadvantages:'''
 
'''Disadvantages:'''
* Must be built on a machine running OS X v10.7 or later.
 
 
* Due to the additional debugging features, performance will be slightly lower compared to the other builds.
 
* Due to the additional debugging features, performance will be slightly lower compared to the other builds.
  
  
=== OS X App (Xcode 6 .XIB for v10.5 Leopard Release Build) ===
+
'''Builds For This Category:'''
This build target is a helper build target for producing final release builds of DeSmuME. It is used solely as an intermediate build step, and is not intended for normal usage. See [[#OS_X_App_Build_for_Final_Release]] for more details.
+
* DeSmuME (Latest).xcodeproj
 +
** DeSmuME (macOS App; Intel64 dev+ -- Latest Xcode) | ''Builds for x86_64/x86_64h, requires Xcode 10.1 minimum. Runs on Intel 64-bit and Intel 64-bit Haswell, minimum macOS 10.12.''
 +
** DeSmuME (macOS App; AppleSilicon dev+ -- Latest Xcode) | ''Builds for arm64, requires Xcode 12.4 minimum. Runs on Apple Silicon, minimum macOS 11.0.''
 +
** DeSmuME (macOS App; Intel32 Intel64 dev+ -- Xcode 8) | ''Builds for i386/x86_64, requires Xcode 8.2.1 minimum to Xcode 9.4.1 maximum. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.6.''
 +
 
  
 +
=== macOS App (v10.5 Leopard Final Release Build) ===
 +
This build target is for producing final release builds of DeSmuME. These builds will use our official macOS frontend contained in an macOS app bundle, and are tuned for the fastest possible performance and the widest binary and OS compatibility.
  
=== OS X App (v10.5 Leopard Release Build) ===
 
This build target is for producing final release builds of DeSmuME. These builds will use our official OS X frontend contained in an OS X app bundle, and are tuned for the fastest possible performance and the widest binary and OS compatibility.
 
  
 
'''Build Target Goals:'''
 
'''Build Target Goals:'''
Line 51: Line 73:
 
* Widest OS compatibility.
 
* Widest OS compatibility.
 
* Fastest performance.
 
* Fastest performance.
 +
  
 
'''Advantages:'''
 
'''Advantages:'''
 
* Produces the fastest running binaries compared to all other build targets.
 
* Produces the fastest running binaries compared to all other build targets.
* Produces a universal binary that supports both 32-bit and 64-bit.
+
* Produces a universal binary that supports PowerPC 32-bit, Intel 32-bit, Intel 64-bit, Intel 64-bit Haswell, and Apple Silicon.
* Binaries are compatible with OS X v10.5 and later.
+
* Binaries are compatible with macOS 10.5 and later.
 +
 
  
 
'''Disadvantages:'''
 
'''Disadvantages:'''
* Must be built on a machine running the latest version of OS X and Xcode.
+
* Building the app for release takes several more steps than other builds.
* Building the app for release takes more steps than other builds.
+
* Performing proper PGO exercises requires additional time and effort.
* Requires a separate Mac or virtual machine running OS X Mavericks in order to run Xcode v3.2.6 and Xcode v6.2 for the intermediate build steps.
+
* Requires a separate Mac or virtual machine running macOS 10.9.5 in order to run Xcode 3.2.6 and Xcode 6.2 for intermediate build steps.
 +
* Requires a separate Mac or virtual machine running macOS 10.12.6 or macOS 10.13.6 in order to run Xcode 8.3.3 for intermediate build steps.
 +
* Requires a separate Mac or virtual machine running the latest macOS (12.3.1 as of this writing) in order to run the latest Xcode (13.3.1 as of this writing) for intermediate build steps.
 +
 
 +
 
 +
'''Builds For This Category:'''
 +
* DeSmuME (Xcode 3).xcodeproj
 +
** DeSmuME (macOS App; Release Stage 1 PowerPC32; Xcode 3) | ''Builds for ppc, requires Xcode 3.2.6. Runs on PowerPC 32-bit.''
 +
 
 +
* DeSmuME (Latest).xcodeproj
 +
** DeSmuME (macOS App; Release Stage 2 Leopard NIB -- Xcode 6) | ''Compiles nib file and copies resources only, requires Xcode 6.2. Base container that runs all binaries, minimum macOS 10.5.''
 +
** DeSmuME (macOS App; Release Stage 3 Intel32 -- Xcode 8) | ''Builds for i386, requires Xcode 8.3.3. Runs on Intel 32-bit.''
 +
** DeSmuME (macOS App; Release Stage 4 Intel64 -- Xcode 8) | ''Builds for x86_64, requires Xcode 8.3.3. Runs on Intel 64-bit.''
 +
** DeSmuME (macOS App; Release Stage 5 Intel64 Haswell -- Latest Xcode) | ''Builds for x86_64h, requires latest Xcode (13.3.1 as of this writing). Runs on Intel 64-bit Haswell.''
 +
** DeSmuME (macOS App; Release Stage Final AppleSilicon -- Latest Xcode) | ''Builds for arm64, requires latest Xcode (13.3.1 as of this writing). Runs on Apple Silicon.''
  
  
 
=== OpenEmu Plug-in ===
 
=== OpenEmu Plug-in ===
 
These build targets produce a plug-in bundle that is compatible with the OpenEmu application (http://openemu.org/). These build targets exist to prove that our DeSmuME source code is modular enough to be adapted easily into other applications. In this case, the plug-in contains the DeSmuME emulator backend, while OpenEmu acts as the frontend that runs the emulator.
 
These build targets produce a plug-in bundle that is compatible with the OpenEmu application (http://openemu.org/). These build targets exist to prove that our DeSmuME source code is modular enough to be adapted easily into other applications. In this case, the plug-in contains the DeSmuME emulator backend, while OpenEmu acts as the frontend that runs the emulator.
 +
  
 
'''Build Target Goals:'''
 
'''Build Target Goals:'''
 
* Compatibility with OpenEmu.
 
* Compatibility with OpenEmu.
 
* Proving that the core source code is modular enough to be integrated with third-party frontends.
 
* Proving that the core source code is modular enough to be integrated with third-party frontends.
 +
  
 
'''Advantages:'''
 
'''Advantages:'''
 
* Compatible with OpenEmu.
 
* Compatible with OpenEmu.
 
* Plug-ins are much smaller in size compared to full application builds.
 
* Plug-ins are much smaller in size compared to full application builds.
 +
  
 
'''Disadvantages:'''
 
'''Disadvantages:'''
* Must be built on a machine running OS X v10.11 or later.
+
* Builds require Xcode 12.4 minimum, which requires a machine running macOS 10.15 or later to make this build.
* Binaries only run on machines with 64-bit Intel processors running OS X v10.11 or later.
+
* The frontend is handled by a third-party application, which will not expose all of DeSmuME's features to the user. This is especially noticeable when running older versions of OpenEmu.
* The frontend is handled by a third-party application, which will not expose all of DeSmuME's features to the user.
+
 
 +
 
 +
'''Builds For This Category:'''
 +
* DeSmuME (Latest).xcodeproj
 +
** DeSmuME (OpenEmu Plug-in -- Latest Xcode) | ''Builds for x86_64/x86_64h/arm64, requires Xcode 12.4 minimum. Runs on Intel 64-bit, Intel 64-bit Haswell and Apple Silicon, minimum OpenEmu 1.0.4.''
  
 
== Set Up the Build Environment ==
 
== Set Up the Build Environment ==
Line 84: Line 129:
 
{| class="wikitable" style="text-align: center;"
 
{| class="wikitable" style="text-align: center;"
 
! scope="col" width="250" | Project File Name
 
! scope="col" width="250" | Project File Name
! scope="col" width="200" | Supported Xcode Version
+
! scope="col" width="400" | Supported Xcode Version
 
|-
 
|-
 
| DeSmuME (Xcode 3).xcodeproj
 
| DeSmuME (Xcode 3).xcodeproj
| v3.1.4 (if running on Leopard); v3.2.6 (if running on Snow Leopard or later)
+
| v3.2.6 only (runs on 10.6.8 Snow Leopard to 10.9.5 Mavericks)
 
|-
 
|-
 
| DeSmuME (Latest).xcodeproj
 
| DeSmuME (Latest).xcodeproj
| v4.6.3 or later
+
| Typical Usage: v8.2.1 or later (runs on 10.11.6 El Capitan to latest macOS)
 +
Final Release Builds: v6.2 only (runs on 10.9.5 Mavericks)
 
|}
 
|}
  
Line 97: Line 143:
  
  
You must use Xcode 3 if any of the following conditions apply:
+
You must use Xcode 3.2.6 if any of the following conditions apply:
* You are running OS X v10.5 or v10.6.
+
* The machine you are building from is running macOS 10.9.5 Mavericks or earlier.
* You are building an OS X App that runs on OS X v10.5.
+
* You are building a macOS app that can run on macOS 10.5 Leopard.
* You are building an OS X App that runs on PowerPC processors.
+
* You are building a macOS app that can run on PowerPC processors.
* You are building an OS X App for final release.
+
  
  
You must use Xcode 4 or later if any of the following conditions apply:
+
You must use Xcode 8.2.1 to Xcode 9.4.1 if any of the following conditions apply:
* You are running OS X v10.7 or later.
+
* You are building a macOS app that can run on Intel 32-bit processors.
* You are building an OpenEmu Plug-in.
+
* You are building a macOS app that can run on macOS 10.6 Snow Leopard.
* You are building an OS X App for final release.
+
  
  
'''Note:''' ''Xcode 3 is not compatible with OS X v10.10 Yosemite. If you require the use of Xcode 3, you will need to run it on an older version of OS X.''
+
You must use Xcode 10.1 or later if any of the following conditions apply:
 +
* You are building a macOS app that can run on Intel 64-bit Haswell processors.
 +
* You are building a macOS app that can use SSE4.1 for Intel 64-bit development builds. (This requires an Intel Core 2 Duo Penryn processor, dropping support for Merom and Santa Rosa processors. This also requires macOS 10.12 Sierra or later.)
 +
 
 +
 
 +
You must use Xcode 12.4 or later if any of the following conditions apply:
 +
* You are building a macOS app that can run on Apple Silicon processors.
 +
* You are building the OpenEmu plug-in.
 +
 
 +
 
 +
You must use the following versions of Xcode if you are making the Final Release Build of the macOS app:
 +
* Xcode 3.2.6 running on 10.9.5 Mavericks
 +
* Xcode 6.2 running on 10.9.5 Mavericks
 +
* Xcode 8.3.3 running on 10.12.6 Sierra or 10.13.6 High Sierra
 +
* Latest Xcode version (13.3.1 as of this writing) running on latest macOS version (12.3.1 Monterey as of this writing)
 +
 
 +
 
 +
'''Note:''' ''macOS 10.7 Lion, 10.8 Mountain Lion, and 10.10 Yosemite are 'dead zones' for development. Mavericks can run Xcode 3.2.6 and Xcode 6.2 while being able to run all of the same versions that Lion and Mountain Lion can, while El Capitan can run Xcode 8.2.1 while being able to run all of the same versions that Yosemite can. Therefore, we do not recommend using Lion, Mountain Lion, or Yosemite for any meaningful development work.''
  
  
Line 124: Line 185:
  
 
Once you are logged in to ADC, you can use the following download links for Xcode 3.
 
Once you are logged in to ADC, you can use the following download links for Xcode 3.
* Xcode v3.1.4 Direct Download Link (for Leopard): http://adcdownload.apple.com/Developer_Tools/xcode_3.1.4_developer_tools/xcode314_2809_developerdvd.dmg
+
* Xcode 3.2.6 Direct Download Link (for Snow Leopard to Mavericks): https://download.developer.apple.com/Developer_Tools/xcode_3.2.6_and_ios_sdk_4.3__final/xcode_3.2.6_and_ios_sdk_4.3.dmg
* Xcode v3.2.6 Direct Download Link (for Snow Leopard): http://adcdownload.apple.com/Developer_Tools/xcode_3.2.6_and_ios_sdk_4.3__final/xcode_3.2.6_and_ios_sdk_4.3.dmg
+
 
+
If you will be building a Final Release build, then you also need Xcode 6.
+
* Xcode v6.2 Direct Download Link (for Mavericks): http://download.developer.apple.com/Developer_Tools/Xcode_6.2/Xcode_6.2.dmg
+
  
 
==== Download the Latest Version of Xcode ====
 
==== Download the Latest Version of Xcode ====
Downloading the latest version of Xcode is very easy! If you are running Lion or later and have any Apple ID, then you can download Xcode directly from the Mac App Store.
+
Downloading the latest version of Xcode is very easy! If you are running macOS Monterey and have any kind of Apple ID (you do not specifically need an Apple Developer ID), then you can download Xcode directly from the Mac App Store.
* Xcode Mac App Store Link (for Lion or later): https://itunes.apple.com/us/app/xcode/id497799835?ls=1&mt=12
+
* Xcode Mac App Store Link: https://apps.apple.com/us/app/xcode/id497799835?mt=12
 +
 
 +
If you are already logged into your ADC account, you can also find the latest version of Xcode here (it will be at the top of the list):
 +
* Latest Xcode Direct Download Link: https://developer.apple.com/download/all/?q=Xcode
 +
 
 +
==== Download Additional Xcode Versions for the macOS App Final Release Build ====
 +
If you will be making a Final Release Build of the macOS app, then you will also need these versions of Xcode. Again, you will need to be logged into ADC to use these direct download links.
 +
* Xcode 6.2 Direct Download Link (for Stage 2): https://download.developer.apple.com/Developer_Tools/Xcode_6.2/Xcode_6.2.dmg
 +
* Xcode 8.3.3 Direct Download Link (for Stage 3 and Stage 4): https://download.developer.apple.com/Developer_Tools/Xcode_8.3.3/Xcode_8.3.3.xip
  
  
Line 160: Line 225:
  
  
==== Set Up the Latest Version of Xcode ====
+
==== Set Up Other Versions of Xcode ====
When you download Xcode from the Mac App Store, Xcode should automatically install itself to the Applications folder once the download is complete. There are no additional steps. Pretty easy, right?
+
If you downloaded Xcode from the Mac App Store, Xcode should automatically install itself to the Applications folder once the download is complete. There are no additional steps. Pretty easy, right?
  
 +
But if you downloaded Xcode directly from ADC, then you will need to perform the following steps to install Xcode:
 +
 +
1. Move the .xip file to your Applications folder.
 +
 +
2. Open the .xip file. It will automatically start decompressing itself into Xcode.app in your Applications folder. ''This will take some time to finish, so be patient.''
 +
 +
3. When Xcode.app finishes decompressing, you may rename it to something else now. This can be useful if you are planning to run multiple versions of Xcode, naming each Xcode.app to something that helps you stay organized.
 +
 +
4. Launch the Xcode app. Depending on which version of macOS you are running, you may or may not see Xcode performing a validation check on itself. If it does, allow Xcode to complete the check. ''This will take some time to finish, so be patient.''
 +
 +
5. Once Xcode finishes launching, it may ask you to install command line tools. Allow this installation, since DeSmuME can use them for certain tasks.
 +
 +
6. After the command line tools finish installing, Xcode should now be ready for your use.
 +
 +
7. The .xip file is no longer necessary. You can choose to move it to a different location or delete it at this time.
  
 
== Download the DeSmuME Source Code ==
 
== Download the DeSmuME Source Code ==
 
The DeSmuME source code is managed using git and is hosted on GitHub.
 
The DeSmuME source code is managed using git and is hosted on GitHub.
* DeSmuME "master" Branch Download Link: https://github.com/TASVideos/desmume/archive/master.zip
+
* DeSmuME "master" Branch Download Link: https://github.com/TASEmulators/desmume/archive/refs/heads/master.zip
 
+
  
 
== Build the DeSmuME Source ==
 
== Build the DeSmuME Source ==
Line 173: Line 252:
  
 
There should be two Xcode project files present in this folder:
 
There should be two Xcode project files present in this folder:
* DeSmuME (XCode 3).xcodeproj
+
* DeSmuME (Xcode 3).xcodeproj
 
* DeSmuME (Latest).xcodeproj
 
* DeSmuME (Latest).xcodeproj
  
  
=== OS X App Build ===
+
=== macOS App Build ===
 
This is the quickest and easiest way to get started with using a pre-release build of DeSmuME.  
 
This is the quickest and easiest way to get started with using a pre-release build of DeSmuME.  
  
 
==== Building Using Xcode 3 ====
 
==== Building Using Xcode 3 ====
1. Open the "DeSmuME (XCode 3).xcodeproj" project file using Xcode 3.
+
1. Open the "DeSmuME (Xcode 3).xcodeproj" project file using Xcode 3.
  
 
2. In the Build Target menu (located in the upper-left corner of the project window), under Active Configuration, choose Release.
 
2. In the Build Target menu (located in the upper-left corner of the project window), under Active Configuration, choose Release.
  
3. In the Build Target menu, under Active Target, choose one of the four build targets.
+
3. In the Build Target menu, under Active Target, choose one of the following build targets:
 +
* DeSmuME (macOS App; Intel; LLVM-Clang) ''Makes i386/x86_64 binaries, uses Clang 1.7''
 +
* DeSmuME (macOS App; Intel; LLVM-GCC) ''Makes i386/x86_64 binaries, uses GCC 4.2.1''
 +
* DeSmuME (macOS App; PowerPC; LLVM-Clang) ''Makes ppc/ppc64 binaries, uses Clang 1.7 for ppc and GCC 4.2.1 for ppc64''
 +
* DeSmuME (macOS App; PowerPC; LLVM-GCC) ''Makes ppc/ppc64 binaries, uses GCC 4.2.1''
  
 
4. Choose Build > Build, and then wait for Xcode to finish building the app.
 
4. Choose Build > Build, and then wait for Xcode to finish building the app.
  
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder. If you built the app using the "DeSmuME (XCode 3).xcodeproj" project file, then the built app will also include the current git commit number.
+
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder.
  
==== Building Using the Latest Version of Xcode ====
+
==== Building Using Xcode 8 or Later ====
 
1. Open the "DeSmuME (Latest).xcodeproj" project file using Xcode.
 
1. Open the "DeSmuME (Latest).xcodeproj" project file using Xcode.
  
2. Choose Product > Scheme > DeSmuME (OS X App).
+
2. In Xcode, choose File > Project Settings....
  
3. In Xcode, choose Product > Build For > Profiling, and then wait for Xcode to finish building the app.
+
3. Click Advanced....
  
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder.
+
4. Choose Legacy, then click Done. Click Done again to exit Project Settings.
  
 +
5. In the Product > Scheme menu, choose one of the following:
 +
* DeSmuME (macOS App; Intel64 -- Latest Xcode) ''Makes x86_64/x86_64h binaries, requires Xcode 10.1 or later''
 +
* DeSmuME (macOS App; AppleSilicon -- Latest Xcode) ''Makes arm64 binary, requires Xcode 12.4 or later''
 +
* DeSmuME (macOS App; Intel32 Intel64 -- Xcode 8) ''Makes i386/x86_64 binaries, minimum Xcode 8.2.1 - maximum Xcode 9.4.1''
  
=== OS X App Dev+ Build ===
+
6. In Xcode, choose Product > Build For > Profiling, and then wait for Xcode to finish building the app.
The steps here are similar to that of the normal OS X App build, but will produce the developer-oriented build instead. In addition, you must be using Xcode 4 or later to make this build.
+
 
 +
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder. The built app will also include the current git commit number.
 +
 
 +
=== macOS App dev+ Build ===
 +
The steps here are similar to that of the normal macOS App build, but will produce the developer-oriented build instead. In addition, you must be using Xcode 8.2.1 or later to make this build.
  
 
1. Open the "DeSmuME (Latest).xcodeproj" project file using Xcode.
 
1. Open the "DeSmuME (Latest).xcodeproj" project file using Xcode.
  
2. Choose Product > Scheme > DeSmuME (OS X App, dev+).
+
2. In Xcode, choose File > Project Settings....
 +
 
 +
3. Click Advanced....
 +
 
 +
4. Choose Legacy, then click Done. Click Done again to exit Project Settings.
 +
 
 +
5. In the Product > Scheme menu, choose one of the following:
 +
* DeSmuME (macOS App; Intel64 dev+ -- Latest Xcode) ''Makes x86_64/x86_64h binaries, requires Xcode 10.1 or later''
 +
* DeSmuME (macOS App; AppleSilicon dev+ -- Latest Xcode) ''Makes arm64 binary, requires Xcode 12.4 or later''
 +
* DeSmuME (macOS App; Intel32 Intel64 dev+ -- Xcode 8) ''Makes i386/x86_64 binaries, minimum Xcode 8.2.1 - maximum Xcode 9.4.1''
 +
 
 +
''If you want to run dev+ build with Xcode's LLDB debugger:''
  
If you want to run dev+ build with Xcode's LLDB debugger:
+
6a. Click Run. This will build a Debug version of the app, which will automatically launch when finished.
3a. Click Run. This will build a Debug version of the app, which will automatically launch when finished.
+
  
 
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Debug" folder.
 
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Debug" folder.
  
If you need to use the dev+ build without running the debugger:
+
''If you need to use the dev+ build without running the debugger:''
3b. In Xcode, choose Product > Build For > Profiling, and then wait for Xcode to finish building the app. (Note that this build does use program optimizations.)
+
 
 +
6b. In Xcode, choose Product > Build For > Profiling, and then wait for Xcode to finish building the app. (Note that this build does use program optimizations.)
  
 
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder.
 
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder.
  
  
=== OS X App Build for Final Release ===
+
=== macOS App Final Release Build ===
 
This is the process that we use for our official release builds. To make this build, you must meet the following requirements:
 
This is the process that we use for our official release builds. To make this build, you must meet the following requirements:
* You must have both Xcode v3.2.6 and Xcode v6.2 installed on a system running OS X Mavericks v10.9.5.
+
* You must have both Xcode 3.2.6 and Xcode 6.2 installed on a system running macOS 10.9.5 Mavericks.
* You must have the latest version of Xcode running on the latest version of macOS. (At the time of this writing, the latest version of Xcode is v9.1, and the latest version of macOS is 10.13.1.)
+
* You must have Xcode 8.3.3 installed on a system running macOS 10.12.6 Sierra or macOS 10.13.6 High Sierra.
 +
* You must have the latest version of Xcode running on the latest version of macOS. (At the time of this writing, the latest version of Xcode is 13.3.1, and the latest version of macOS is 12.3.1.)
 +
 
  
1. Let's start with building on OS X Mavericks: Open the "DeSmuME (XCode 3).xcodeproj" project file using Xcode 3.
+
1. Let's start with building on macOS Mavericks: Open the "DeSmuME (Xcode 3).xcodeproj" project file using Xcode 3.2.6.
  
 
2. In the Build Target menu (located in the upper-left corner of the project window), under Active Configuration, choose Release.
 
2. In the Build Target menu (located in the upper-left corner of the project window), under Active Configuration, choose Release.
  
3. In the Build Target menu, under Active Target, choose the build target "DeSmuME (OS X App; PowerPC Release Build)".
+
3. In the Build Target menu, under Active Target, choose the build target "DeSmuME (macOS App; Release Stage 1 PowerPC32 -- Xcode 3)".
  
 
4. Choose Build > Clean All Targets.
 
4. Choose Build > Clean All Targets.
Line 234: Line 338:
 
5. In the Clean All Targets sheet, check all options, then click Clean, and then wait for the clean process to finish.
 
5. In the Clean All Targets sheet, check all options, then click Clean, and then wait for the clean process to finish.
  
6. Choose Build > Build, and then wait for the build process to finish. This will make a new app called "DeSmuME (PPC).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.
+
6. Choose Build > Build, and then wait for the build process to finish. This will make a new app called "DeSmuME (ppc32).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.
  
7. While still on OS X Mavericks: Open the "DeSmuME (Latest).xcodeproj" project file using Xcode 6.2.
+
7. While still on macOS Mavericks: Open the "DeSmuME (Latest).xcodeproj" project file using Xcode 6.2.
  
8. Choose Product > Scheme > DeSmuME (OS X App; Xcode 6 .XIB for v10.5 Leopard Release Build).
+
8. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 2 Leopard NIB -- Xcode 6).
  
9. Choose Product > Clean, and then wait for the clean process to finish.
+
9. In Xcode, choose File > Project Settings....
  
10. Choose Product > Build, and then wait for the build process to finish. This will make a new app called "DeSmuME (Xcode 6).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.
+
10. Click Advanced....
  
11. Quit both Xcode 3 and Xcode 6 on OS X Mavericks.
+
11. Choose Legacy, then click Done. Click Done again to exit Project Settings.
  
12. On the latest macOS: Open the "DeSmuME (Latest).xcodeproj" project file using the latest version of Xcode.
+
12. Choose Product > Clean, and then wait for the clean process to finish.
  
8. Choose Product > Scheme > DeSmuME (OS X App; v10.5 Leopard Release Build).
+
13. Choose Product > Build, and then wait for the build process to finish. This will make a new app called "DeSmuME.app" in the "/desmume/src/frontend/cocoa/build/Release" folder.
  
13. Choose Product > Clean, and then wait for the clean process to finish.
+
14. Quit both Xcode 3.2.6 and Xcode 6.2 on macOS Mavericks.
  
14. Choose Product > Perform Action > Generate Optimization Profile.
+
15. On the next system running macOS Sierra or High Sierra: Open the "DeSmuME (Latest).xcodeproj" project file using Xcode 8.3.3.
  
15. In the Generate Optimization Profile sheet, ensure that Use Run Action is the selected option, and then click Run.
+
16. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 3 Intel32 -- Xcode 8).
  
16. Wait for Xcode to finish building the app. When Xcode finishes, DeSmuME.app will automatically launch.
+
17. Choose Product > Clean, and then wait for the clean process to finish.
  
17. Perform the recommended PGO exercises listed on this page: TBD
+
18. Choose Product > Perform Action > Generate Optimization Profile.
  
18. After all PGO exercises are complete, quit DeSmuME.app. Xcode should now report that it has generated an optimization profile.
+
19. In the Generate Optimization Profile sheet, ensure that Use Run Action is the selected option, and then click Run.
  
19. In Xcode, choose Product > Build For > Profiling, and then wait for Xcode to finish.
+
20. Wait for Xcode to finish building the app. When Xcode finishes, DeSmuME will automatically launch.
  
And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Merged Release" folder.
+
21. Perform the recommended PGO exercises listed on this page: TBD
 +
 
 +
22. After all PGO exercises are complete, quit DeSmuME. Xcode should now report that it has generated an optimization profile.
 +
 
 +
23. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (i386).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.
 +
 
 +
24. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 4 Intel64 -- Xcode 8).
 +
 
 +
25. Repeat Steps 14 - 19.
 +
 
 +
26. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (x86_64).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.
 +
 
 +
27. Quit Xcode 8.3.3 on macOS Sierra / High Sierra.
 +
 
 +
28. On the next system running the latest macOS: Open the "DeSmuME (Latest).xcodeproj" project file using the latest version of Xcode.
 +
 
 +
29. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 5 Intel64 Haswell -- Latest Xcode).
 +
 
 +
30. Repeat Steps 14 - 19.
 +
 
 +
31. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (x86_64h).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.
 +
 
 +
32. Choose Product > Scheme > DeSmuME (macOS App; Release Stage Final AppleSilicon -- Latest Xcode).
 +
 
 +
33. Repeat Steps 14 - 19.
 +
 
 +
34. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (arm64).app" in the "/desmume/src/frontend/cocoa/build/Release" folder, as well as combining all of the previously built binaries into the same DeSmuME.app container.
 +
 
 +
And you're done! The newly built DeSmuME.app will be present in the "/desmume/src/frontend/cocoa/build/Merged Release" folder.
  
  
Line 272: Line 404:
  
 
You can download the OpenEmu SDK source code from here:
 
You can download the OpenEmu SDK source code from here:
* OpenEmu SDK Download Link: https://github.com/OpenEmu/OpenEmu-SDK/archive/master.zip
+
* OpenEmu SDK Download Link: https://github.com/OpenEmu/OpenEmu-SDK/archive/refs/heads/master.zip
  
  
Line 278: Line 410:
 
1. Open the "OpenEmu-SDK.xcodeproj" project file using the latest version of Xcode.
 
1. Open the "OpenEmu-SDK.xcodeproj" project file using the latest version of Xcode.
  
2. Choose Product > Scheme > OpenEmuBase.
+
2. In the left-hand sidebar, click the "OpenEmu-SDK" project icon. This should show the project file's settings.
  
3. Click Run. This will build a Debug version of the framework.
+
3. In the project file settings, in the left-hand sidebar, click "OpenEmu-SDK" under Project.
  
4. After the build finishes, choose Product > Build For > Profiling. This will start building the Release version of the framework.
+
4. Click "Build Settings", and then click "All" to show all of the build settings at the project file level.
  
5. In the Xcode sidebar, expand the Products folder. This should show "OpenEmuBase.framework".
+
5. For the Architectures setting, click its associated drop-down menu, and choose "Other...".
  
6. Click "OpenEmuBase.framework", and then choose File > Show in Finder.
+
6. Delete all existing settings by clicking the "-" button. (The one existing setting should be "$(ARCHS_STANDARD)".)
  
7. In the Finder window that appears, you should be in a folder named "Debug". Right-click the window title (which should read "Debug"), and then choose the "Products" folder underneath it.
+
7. While in the Architectures setting, click the "+" button and enter the setting "x86_64".
  
8. Wait for Xcode to finish building the Release version framework.
+
8. Click the "+" button and enter the setting "x86_64h".
  
9. In the Finder, from the "Products" folder, open the "Release" folder.
+
9. Click the "+" button and enter the setting "arm64".
  
10. Move OpenEmuBase.framework into the "desmume/src/frontend/cocoa/openemu" folder.
+
10. In the upper-left corner of the Project Build settings, there will be another "+" button, where mousing over it will read "Add a new conditional or user-defined build setting". Click that button and choose "Add User-Defined Setting".
  
==== Building the OpenEmu plug-in ====
+
11. The new setting will read "NEW_SETTING"; replace this "VALID_ARCHS".
'''Note:''' ''In order to build the OpenEmu plug-in, it is mandatory that OpenEmuBase.framework is present in the "desmume/src/frontend/cocoa/openemu" folder. Otherwise, the build will fail due to missing frameworks.''
+
  
1. Open the "DeSmuME (Latest).xcodeproj" project file using the latest version of Xcode.
+
12. Click the empty space directly to the right of VALID_ARCHS to enter its associated setting. For this setting, enter the following exactly as shown:
 +
x86_64 x86_64h arm64
  
2. Choose Product > Scheme > DeSmuME (OpenEmu Plug-in).
+
13. Choose Product > Scheme > OpenEmuBase.
  
3. Click Run. This will build a Debug version of the plug-in.
+
14. Choose Product > Build For > Profiling. This will start building the Release version of the framework.
  
4. After the build finishes, choose Product > Build For > Profiling. This will start building the Release version of the plug-in.
+
15. After the build finishes, choose Product > Show Build Folder in Finder. Then in the Finder window that appears, you should be in a folder named "Build". Open the Products folder, then the Release folder. The new OpenEmuBase.framework bundle should now be present in this folder.
  
5. In the Xcode sidebar, expand the Products folder. This should show the "DeSmuME.oecoreplugin" bundle.
+
16. Move OpenEmuBase.framework into the "desmume/src/frontend/cocoa/openemu" folder.
  
6. Click "DeSmuME.oecoreplugin", and then choose Show in Finder.
+
==== Building the OpenEmu plug-in ====
 +
'''Note:''' ''In order to build the OpenEmu plug-in, it is mandatory that OpenEmuBase.framework is present in the "desmume/src/frontend/cocoa/openemu" folder. Otherwise, the build will fail due to missing frameworks.''
  
7. In the Finder window that appears, you should be in a folder named "Debug". Right-click (or Control-click) the window title (which should read "Debug"), and then choose the "Products" folder underneath it.
+
1. Open the "DeSmuME (Latest).xcodeproj" project file using the latest version of Xcode.
  
8. Wait for Xcode to finish building the Release version plug-in.
+
2. Choose Product > Scheme > DeSmuME (OpenEmu Plug-in -- Latest Xcode).
  
9. In the Finder, from the "Products" folder, open the "Release" folder.
+
3. Choose Product > Build For > Profiling. This will start building the Release version of the plug-in.
  
10. Choose New > New Finder Window.
+
''The following step depends on if you have set the Project Settings to use a Legacy build location.''
  
11. With the new Finder window selected, choose Go > Go To Folder.
+
4a. '''If you did not previously set the Project Settings to use a Legacy build location:''' After the build finishes, choose Product > Show Build Folder in Finder. Then in the Finder window that appears, you should be in a folder named "Build". Open the Products folder, then the Release folder. The new DeSmuME.oecoreplugin bundle should now be present in this folder.
  
12. In the drop-down sheet, in the "Go to the folder" text field, enter the following exactly as shown:
+
4b. '''If you have previously set the Project Settings to use a Legacy build location:''' After the build finishes, in the Finder, navigate to the "desmume/src/frontend/cocoa/build/Release". The new DeSmuME.oecoreplugin bundle should now be present in this folder.
~/Library/Application Support/OpenEmu/Cores
+
  
13. Move the DeSmuME.oecoreplugin bundle from the Release folder into the Cores folder.
+
5. Choose New > New Finder Window.
  
And that's it! The DeSmuME OpenEmu plug-in should now be installed. You should now be able to run NDS ROMs from within OpenEmu.app.
+
6. With the new Finder window selected, choose Go > Go To Folder.
  
 +
7. In the drop-down sheet, in the "Go to the folder" text field, enter the following exactly as shown:
 +
~/Library/Application Support/OpenEmu/Cores
 +
 +
8. Move the DeSmuME.oecoreplugin bundle from the Release folder into the Cores folder.
 +
 +
And that's it! The DeSmuME OpenEmu plug-in should now be installed. You should now be able to run NDS ROMs from within OpenEmu.app!
  
 
== Appendix A: Comparison Charts of Different Builds ==
 
== Appendix A: Comparison Charts of Different Builds ==
Line 337: Line 475:
  
 
{| class="wikitable" style="text-align: center;"
 
{| class="wikitable" style="text-align: center;"
! scope="col" width="150" |
+
! scope="col" width="200" |
! scope="col" width="150" | OS X App
+
! scope="col" width="200" | macOS App
! scope="col" width="150" | OS X App (dev+)
+
! scope="col" width="200" | macOS App (dev+)
! scope="col" width="150" | OS X App (Final Release)
+
! scope="col" width="200" | macOS App (Final Release)
! scope="col" width="150" | OpenEmu Plug-in
+
! scope="col" width="200" | OpenEmu Plug-in
 
|-
 
|-
 
! scope="row" | PowerPC, 32-bit
 
! scope="row" | PowerPC, 32-bit
| Yes[1]
+
| YES[1] (macOS 10.5)
| No
+
| NO
| Yes
+
| YES (macOS 10.5)
| No
+
| NO
 
|-
 
|-
 
! scope="row" | PowerPC, 64-bit
 
! scope="row" | PowerPC, 64-bit
| Yes[1]
+
| YES[1] (macOS 10.5)
| No
+
| NO
| No
+
| NO
| No
+
| NO
 
|-
 
|-
 
! scope="row" | Intel, 32-bit
 
! scope="row" | Intel, 32-bit
| Yes
+
| YES[1] (macOS 10.5)
| Yes
+
YES (macOS 10.6)
| Yes
+
| YES (Xcode 8.2.1 - 9.4.1)
| No
+
| YES (macOS 10.5)
 +
| NO
 
|-
 
|-
 
! scope="row" | Intel, 64-bit
 
! scope="row" | Intel, 64-bit
| Yes
+
| YES[1] (macOS 10.5)
| Yes
+
YES (macOS 10.6)
| Yes
+
 
| Yes
+
YES w/ SSE4.1 (macOS 10.12)
 +
| YES (Xcode 8.2.1 - 9.4.1)
 +
YES w/ SSE4.1 (Xcode 10.1 or later)
 +
| YES (macOS 10.5)
 +
| YES (OpenEmu 1.0.4)
 
|-
 
|-
! scope="row" | OS X v10.5 (Leopard)
+
! scope="row" | Intel, 64-bit Haswell
| Yes
+
| YES (macOS 10.12)
| No
+
| YES (Xcode 10.1 or later)
| Yes
+
| YES (macOS 10.9)
| No
+
| YES (OpenEmu 1.0.4)
 
|-
 
|-
! scope="row" | OS X v10.6 (Snow Leopard)
+
! scope="row" | Apple Silicon, 64-bit
| Yes
+
| YES (macOS 11.0)
| No
+
| YES (Xcode 12.4 or later)
| Yes
+
| YES (macOS 11.0)
| No
+
| YES (OpenEmu 1.0.4)
 
|-
 
|-
! scope="row" | OS X v10.7 (Lion)
+
! scope="row" | macOS 10.5 Leopard
| Yes
+
| YES[1]
| Yes
+
| NO
| Yes
+
| YES
| No
+
| NO
 
|-
 
|-
! scope="row" | OS X v10.8 (Mountain Lion)
+
! scope="row" | macOS 10.6 Snow Leopard
| Yes
+
| YES
| Yes
+
| NO
| Yes
+
| YES
| No
+
| NO
 
|-
 
|-
! scope="row" | OS X v10.9 (Mavericks)
+
! scope="row" | macOS 10.7 Lion
| Yes
+
| YES
| Yes
+
| NO
| Yes
+
| YES
| No
+
| YES (OpenEmu 1.0.4)
 +
YES (OpenEmu 2.0.1)
 +
|-
 +
! scope="row" | macOS 10.8 Mountain Lion
 +
| YES
 +
| NO
 +
| YES
 +
| YES (OpenEmu 1.0.4)
 +
YES (OpenEmu 2.0.1)
 +
|-
 +
! scope="row" | macOS 10.9 Mavericks
 +
| YES
 +
| NO
 +
| YES
 +
| YES (OpenEmu 1.0.4)
 +
YES (OpenEmu 2.0.1)
 +
|-
 +
! scope="row" | macOS 10.10 Yosemite
 +
| YES
 +
| NO
 +
| YES
 +
| YES (OpenEmu 1.0.4)
 +
YES (OpenEmu 2.0.1)
 +
|-
 +
! scope="row" | macOS 10.11 El Capitan
 +
| YES
 +
| YES (Xcode 8.2.1)
 +
| YES
 +
| YES (OpenEmu 2.0.9.1)
 +
|-
 +
! scope="row" | macOS 10.12 Sierra
 +
| YES
 +
| YES (Xcode 8.3.3)
 +
YES (Xcode 9.2)
 +
| YES
 +
| YES (OpenEmu 2.0.9.1)
 +
|-
 +
! scope="row" | macOS 10.13 High Sierra
 +
| YES
 +
| YES (Xcode 8.3.3)
 +
YES (Xcode 9.4.1)
 +
 
 +
YES (Xcode 10.1)
 +
| YES
 +
| YES (OpenEmu 2.0.9.1)
 
|-
 
|-
! scope="row" | OS X v10.10 (Yosemite)
+
! scope="row" | macOS 10.14 Mojave
| Yes
+
| YES
| Yes
+
| YES (Xcode 9.4.1)
| Yes
+
YES (Xcode 11.3.1)
| No
+
| YES
 +
| YES (OpenEmu 2.3.3)
 
|-
 
|-
! scope="row" | OS X v10.11 (El Capitan)
+
! scope="row" | macOS 10.15 Catalina
| Yes
+
| YES
| Yes
+
| YES (Xcode 12.4)
| Yes
+
| YES
| Yes
+
| YES (OpenEmu 2.3.3)
 
|-
 
|-
! scope="row" | OS X v10.12 (Sierra)
+
! scope="row" | macOS 11.0 Big Sur
| Yes
+
| YES
| Yes
+
| YES (Xcode 13.2.1)
| Yes
+
| YES
| Yes
+
| YES (OpenEmu 2.3.3)
 
|-
 
|-
! scope="row" | OS X v10.13 (High Sierra)
+
! scope="row" | macOS 12.0 Monterey
| Yes
+
| YES
| Yes
+
| YES (Xcode 13.3.1)
| Yes
+
| YES
| Yes
+
| YES (OpenEmu 2.3.3)
 
|}
 
|}
  
1. Available only by configuration in Xcode 3.
+
1. Available only by building with the "DeSmuME (Xcode 3).xcodeproj" file using Xcode 3.2.6.
  
 
== Appendix B: Installing DeSmuME From Source (Legacy Instructions) ==
 
== Appendix B: Installing DeSmuME From Source (Legacy Instructions) ==
 
This is a document that described an older method for installing DeSmuME from the source code. It is now obsolete and no longer supported by the DeSmuME team. You can view it here: [[Installing DeSmuME from source on Mac OS X (Legacy Instructions)]]
 
This is a document that described an older method for installing DeSmuME from the source code. It is now obsolete and no longer supported by the DeSmuME team. You can view it here: [[Installing DeSmuME from source on Mac OS X (Legacy Instructions)]]

Latest revision as of 07:35, 14 May 2022

Contents

About the Build Targets

DeSmuME for macOS may be built using several different configurations. Each build configuration is listed in an Xcode project as a "build target." The Xcode project files, provided with the DeSmuME source code, include several build targets to suit your needs. Many build targets are similar to each other, and so they have been organized into the following categories, based on what the build target produces.


macOS App

These build targets produce a self-contained macOS application package (or "app bundle"). These builds use our official macOS frontend to run the DeSmuME emulator, and are designed for the debugging and testing of pre-release builds. These app bundles are compatible with macOS 10.6 or later. (Also compatible with macOS 10.5 if building from the Xcode 3 project).


Build Target Goals:

  • Fully featured.
  • Widest build compatibility with Xcode versions running different macOS versions.
  • Quick debug-and-test of code changes.


Advantages:

  • Builds only have a minimum requirement Xcode 3.2.6, so any machine running macOS 10.6 or later can make this build.
  • Binaries can be configured to run in debug mode or in release mode.
  • Binaries can be configured for PowerPC or Intel compatibility.
  • Building the app is much faster than the final release build.


Disadvantages:

  • Binary compatibility with macOS v10.5 requires Xcode 3 to build.


Builds For This Category:

  • DeSmuME (Xcode 3).xcodeproj
    • DeSmuME (macOS App; Intel; LLVM-Clang) | Builds for i386/x86_64, requires Xcode 3.2.6 using Clang 1.7. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.5.
    • DeSmuME (macOS App; Intel; LLVM-GCC) | Builds for i386/x86_64, requires Xcode 3.2.6 using GCC 4.2.1. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.5.
    • DeSmuME (macOS App; PowerPC; LLVM-Clang) | Builds for ppc/ppc64, requires Xcode 3.2.6 using Clang 1.7 for ppc and GCC 4.2.1 for ppc64. Runs on PowerPC 32-bit and PowerPC 64-bit, macOS 10.5 only.
    • DeSmuME (macOS App; PowerPC; LLVM-GCC) | Builds for ppc/ppc64, requires Xcode 3.2.6 using GCC 4.2.1. Runs on PowerPC 32-bit and PowerPC 64-bit, macOS 10.5 only.
  • DeSmuME (Latest).xcodeproj
    • DeSmuME (macOS App; Intel64 -- Latest Xcode) | Builds for x86_64/x86_64h, requires Xcode 10.1 minimum. Runs on Intel 64-bit and Intel 64-bit Haswell, minimum macOS 10.12.
    • DeSmuME (macOS App; AppleSilicon -- Latest Xcode) | Builds for arm64, requires Xcode 12.4 minimum. Runs on Apple Silicon, minimum macOS 11.0.
    • DeSmuME (macOS App; Intel32 Intel64 -- Xcode 8) | Builds for i386/x86_64, requires Xcode 8.2.1 minimum to Xcode 9.4.1 maximum. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.6.


macOS App (dev+)

This build target is just like the normal macOS App build, except it enables additional debugging features, such as the GDB remote stub. This build is meant for developer usage.


Build Target Goals:

  • Fully featured, and includes additional debugging features.
  • Must be compatible with the latest version of Xcode running on the latest version of macOS.
  • Quick debug-and-test of code changes.


Advantages:

  • Builds only have a minimum requirement Xcode 8.2.1, so any machine running macOS 10.11.5 or later can make this build.
  • Binaries can be configured to run in debug mode or in release mode.
  • Building the app is faster than the final release build.


Disadvantages:

  • Due to the additional debugging features, performance will be slightly lower compared to the other builds.


Builds For This Category:

  • DeSmuME (Latest).xcodeproj
    • DeSmuME (macOS App; Intel64 dev+ -- Latest Xcode) | Builds for x86_64/x86_64h, requires Xcode 10.1 minimum. Runs on Intel 64-bit and Intel 64-bit Haswell, minimum macOS 10.12.
    • DeSmuME (macOS App; AppleSilicon dev+ -- Latest Xcode) | Builds for arm64, requires Xcode 12.4 minimum. Runs on Apple Silicon, minimum macOS 11.0.
    • DeSmuME (macOS App; Intel32 Intel64 dev+ -- Xcode 8) | Builds for i386/x86_64, requires Xcode 8.2.1 minimum to Xcode 9.4.1 maximum. Runs on Intel 32-bit and Intel 64-bit, minimum macOS 10.6.


macOS App (v10.5 Leopard Final Release Build)

This build target is for producing final release builds of DeSmuME. These builds will use our official macOS frontend contained in an macOS app bundle, and are tuned for the fastest possible performance and the widest binary and OS compatibility.


Build Target Goals:

  • Fully featured.
  • Widest binary compatibility.
  • Widest OS compatibility.
  • Fastest performance.


Advantages:

  • Produces the fastest running binaries compared to all other build targets.
  • Produces a universal binary that supports PowerPC 32-bit, Intel 32-bit, Intel 64-bit, Intel 64-bit Haswell, and Apple Silicon.
  • Binaries are compatible with macOS 10.5 and later.


Disadvantages:

  • Building the app for release takes several more steps than other builds.
  • Performing proper PGO exercises requires additional time and effort.
  • Requires a separate Mac or virtual machine running macOS 10.9.5 in order to run Xcode 3.2.6 and Xcode 6.2 for intermediate build steps.
  • Requires a separate Mac or virtual machine running macOS 10.12.6 or macOS 10.13.6 in order to run Xcode 8.3.3 for intermediate build steps.
  • Requires a separate Mac or virtual machine running the latest macOS (12.3.1 as of this writing) in order to run the latest Xcode (13.3.1 as of this writing) for intermediate build steps.


Builds For This Category:

  • DeSmuME (Xcode 3).xcodeproj
    • DeSmuME (macOS App; Release Stage 1 PowerPC32; Xcode 3) | Builds for ppc, requires Xcode 3.2.6. Runs on PowerPC 32-bit.
  • DeSmuME (Latest).xcodeproj
    • DeSmuME (macOS App; Release Stage 2 Leopard NIB -- Xcode 6) | Compiles nib file and copies resources only, requires Xcode 6.2. Base container that runs all binaries, minimum macOS 10.5.
    • DeSmuME (macOS App; Release Stage 3 Intel32 -- Xcode 8) | Builds for i386, requires Xcode 8.3.3. Runs on Intel 32-bit.
    • DeSmuME (macOS App; Release Stage 4 Intel64 -- Xcode 8) | Builds for x86_64, requires Xcode 8.3.3. Runs on Intel 64-bit.
    • DeSmuME (macOS App; Release Stage 5 Intel64 Haswell -- Latest Xcode) | Builds for x86_64h, requires latest Xcode (13.3.1 as of this writing). Runs on Intel 64-bit Haswell.
    • DeSmuME (macOS App; Release Stage Final AppleSilicon -- Latest Xcode) | Builds for arm64, requires latest Xcode (13.3.1 as of this writing). Runs on Apple Silicon.


OpenEmu Plug-in

These build targets produce a plug-in bundle that is compatible with the OpenEmu application (http://openemu.org/). These build targets exist to prove that our DeSmuME source code is modular enough to be adapted easily into other applications. In this case, the plug-in contains the DeSmuME emulator backend, while OpenEmu acts as the frontend that runs the emulator.


Build Target Goals:

  • Compatibility with OpenEmu.
  • Proving that the core source code is modular enough to be integrated with third-party frontends.


Advantages:

  • Compatible with OpenEmu.
  • Plug-ins are much smaller in size compared to full application builds.


Disadvantages:

  • Builds require Xcode 12.4 minimum, which requires a machine running macOS 10.15 or later to make this build.
  • The frontend is handled by a third-party application, which will not expose all of DeSmuME's features to the user. This is especially noticeable when running older versions of OpenEmu.


Builds For This Category:

  • DeSmuME (Latest).xcodeproj
    • DeSmuME (OpenEmu Plug-in -- Latest Xcode) | Builds for x86_64/x86_64h/arm64, requires Xcode 12.4 minimum. Runs on Intel 64-bit, Intel 64-bit Haswell and Apple Silicon, minimum OpenEmu 1.0.4.

Set Up the Build Environment

All DeSmuME build targets must be built using Apple's Xcode IDE. The Xcode project files, included in the "desmume/src/frontend/cocoa" folder of the source code, are supported for the following versions of Xcode:

Project File Name Supported Xcode Version
DeSmuME (Xcode 3).xcodeproj v3.2.6 only (runs on 10.6.8 Snow Leopard to 10.9.5 Mavericks)
DeSmuME (Latest).xcodeproj Typical Usage: v8.2.1 or later (runs on 10.11.6 El Capitan to latest macOS)

Final Release Builds: v6.2 only (runs on 10.9.5 Mavericks)

Xcode Setup

Refer to the following conditions to determine which Xcode version you need to install.


You must use Xcode 3.2.6 if any of the following conditions apply:

  • The machine you are building from is running macOS 10.9.5 Mavericks or earlier.
  • You are building a macOS app that can run on macOS 10.5 Leopard.
  • You are building a macOS app that can run on PowerPC processors.


You must use Xcode 8.2.1 to Xcode 9.4.1 if any of the following conditions apply:

  • You are building a macOS app that can run on Intel 32-bit processors.
  • You are building a macOS app that can run on macOS 10.6 Snow Leopard.


You must use Xcode 10.1 or later if any of the following conditions apply:

  • You are building a macOS app that can run on Intel 64-bit Haswell processors.
  • You are building a macOS app that can use SSE4.1 for Intel 64-bit development builds. (This requires an Intel Core 2 Duo Penryn processor, dropping support for Merom and Santa Rosa processors. This also requires macOS 10.12 Sierra or later.)


You must use Xcode 12.4 or later if any of the following conditions apply:

  • You are building a macOS app that can run on Apple Silicon processors.
  • You are building the OpenEmu plug-in.


You must use the following versions of Xcode if you are making the Final Release Build of the macOS app:

  • Xcode 3.2.6 running on 10.9.5 Mavericks
  • Xcode 6.2 running on 10.9.5 Mavericks
  • Xcode 8.3.3 running on 10.12.6 Sierra or 10.13.6 High Sierra
  • Latest Xcode version (13.3.1 as of this writing) running on latest macOS version (12.3.1 Monterey as of this writing)


Note: macOS 10.7 Lion, 10.8 Mountain Lion, and 10.10 Yosemite are 'dead zones' for development. Mavericks can run Xcode 3.2.6 and Xcode 6.2 while being able to run all of the same versions that Lion and Mountain Lion can, while El Capitan can run Xcode 8.2.1 while being able to run all of the same versions that Yosemite can. Therefore, we do not recommend using Lion, Mountain Lion, or Yosemite for any meaningful development work.


Download Xcode 3

You can download Xcode 3 from the Apple Developer Connection website. Note that before you can download anything from the ADC website, you must log in using an Apple Developer ID. Once you are logged in, you may use the provided download links to download Xcode 3.


If you do not have an Apple Developer ID, you can register one for free.

If you are not already logged in to ADC, you can log in by accessing the ADC Downloads page.

Once you are logged in to ADC, you can use the following download links for Xcode 3.

Download the Latest Version of Xcode

Downloading the latest version of Xcode is very easy! If you are running macOS Monterey and have any kind of Apple ID (you do not specifically need an Apple Developer ID), then you can download Xcode directly from the Mac App Store.

If you are already logged into your ADC account, you can also find the latest version of Xcode here (it will be at the top of the list):

Download Additional Xcode Versions for the macOS App Final Release Build

If you will be making a Final Release Build of the macOS app, then you will also need these versions of Xcode. Again, you will need to be logged into ADC to use these direct download links.


Uninstall Previous Versions of Xcode

We highly recommend that you uninstall any previous versions of Xcode before you begin your installation. Doing so will better guarantee that you will have a clean build environment for DeSmuME. The easiest method for uninstalling Xcode is to use the uninstall-devtools script, located in the Library folder of your Xcode installation.

Note: You do not need to uninstall any versions of Xcode that are v4.3 or later. These versions of Xcode are self-contained application packages, which do not conflict with other Xcode versions.

To uninstall Xcode, open Terminal and type the following command into the command line:

sudo /Developer/Library/uninstall-devtools -mode=all

Note: You must be logged into an Administrator account to use this command.

Note: This command assumes that Xcode was installed at the default location, /Developer. The path to the uninstall-devtools script may be different if you did not use the default location when installing Xcode from before.


Set Up Xcode 3

Note: If you do not require the build options that Xcode 3 provides, then you may skip this step. See the Xcode Setup section for more details.

After Xcode 3 is downloaded, you will have a .dmg disk image containing a package installer. Start the Xcode 3 installation by opening the installer, and follow the onscreen instructions until you get to the installation list.

Once the installation list is shown, do the following:

  • Unless you are planning on building other software that must run on OS X v10.4, you may deselect the Mac OS X 10.4 SDK. (DeSmuME can only run on OS X v10.5 or later.)
  • If you are planning on installing the latest version of Xcode alongside Xcode 3, then deselect "System Tools" and "Essentials > iOS SDK". Since the latest Xcode will already have the newest version of the iOS SDK, installing the version included with Xcode 3 will be a waste of time and disk space.

Continue the installation as normal and let the installation finish.


Set Up Other Versions of Xcode

If you downloaded Xcode from the Mac App Store, Xcode should automatically install itself to the Applications folder once the download is complete. There are no additional steps. Pretty easy, right?

But if you downloaded Xcode directly from ADC, then you will need to perform the following steps to install Xcode:

1. Move the .xip file to your Applications folder.

2. Open the .xip file. It will automatically start decompressing itself into Xcode.app in your Applications folder. This will take some time to finish, so be patient.

3. When Xcode.app finishes decompressing, you may rename it to something else now. This can be useful if you are planning to run multiple versions of Xcode, naming each Xcode.app to something that helps you stay organized.

4. Launch the Xcode app. Depending on which version of macOS you are running, you may or may not see Xcode performing a validation check on itself. If it does, allow Xcode to complete the check. This will take some time to finish, so be patient.

5. Once Xcode finishes launching, it may ask you to install command line tools. Allow this installation, since DeSmuME can use them for certain tasks.

6. After the command line tools finish installing, Xcode should now be ready for your use.

7. The .xip file is no longer necessary. You can choose to move it to a different location or delete it at this time.

Download the DeSmuME Source Code

The DeSmuME source code is managed using git and is hosted on GitHub.

Build the DeSmuME Source

Regardless of which build target you will be using, you will need to use one of the Xcode project files provided with the DeSmuME source code. For most cases, you will want to build the latest revision. So from the source code folder, navigate to the "/desmume/src/frontend/cocoa" folder.

There should be two Xcode project files present in this folder:

  • DeSmuME (Xcode 3).xcodeproj
  • DeSmuME (Latest).xcodeproj


macOS App Build

This is the quickest and easiest way to get started with using a pre-release build of DeSmuME.

Building Using Xcode 3

1. Open the "DeSmuME (Xcode 3).xcodeproj" project file using Xcode 3.

2. In the Build Target menu (located in the upper-left corner of the project window), under Active Configuration, choose Release.

3. In the Build Target menu, under Active Target, choose one of the following build targets:

  • DeSmuME (macOS App; Intel; LLVM-Clang) Makes i386/x86_64 binaries, uses Clang 1.7
  • DeSmuME (macOS App; Intel; LLVM-GCC) Makes i386/x86_64 binaries, uses GCC 4.2.1
  • DeSmuME (macOS App; PowerPC; LLVM-Clang) Makes ppc/ppc64 binaries, uses Clang 1.7 for ppc and GCC 4.2.1 for ppc64
  • DeSmuME (macOS App; PowerPC; LLVM-GCC) Makes ppc/ppc64 binaries, uses GCC 4.2.1

4. Choose Build > Build, and then wait for Xcode to finish building the app.

And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder.

Building Using Xcode 8 or Later

1. Open the "DeSmuME (Latest).xcodeproj" project file using Xcode.

2. In Xcode, choose File > Project Settings....

3. Click Advanced....

4. Choose Legacy, then click Done. Click Done again to exit Project Settings.

5. In the Product > Scheme menu, choose one of the following:

  • DeSmuME (macOS App; Intel64 -- Latest Xcode) Makes x86_64/x86_64h binaries, requires Xcode 10.1 or later
  • DeSmuME (macOS App; AppleSilicon -- Latest Xcode) Makes arm64 binary, requires Xcode 12.4 or later
  • DeSmuME (macOS App; Intel32 Intel64 -- Xcode 8) Makes i386/x86_64 binaries, minimum Xcode 8.2.1 - maximum Xcode 9.4.1

6. In Xcode, choose Product > Build For > Profiling, and then wait for Xcode to finish building the app.

And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder. The built app will also include the current git commit number.

macOS App dev+ Build

The steps here are similar to that of the normal macOS App build, but will produce the developer-oriented build instead. In addition, you must be using Xcode 8.2.1 or later to make this build.

1. Open the "DeSmuME (Latest).xcodeproj" project file using Xcode.

2. In Xcode, choose File > Project Settings....

3. Click Advanced....

4. Choose Legacy, then click Done. Click Done again to exit Project Settings.

5. In the Product > Scheme menu, choose one of the following:

  • DeSmuME (macOS App; Intel64 dev+ -- Latest Xcode) Makes x86_64/x86_64h binaries, requires Xcode 10.1 or later
  • DeSmuME (macOS App; AppleSilicon dev+ -- Latest Xcode) Makes arm64 binary, requires Xcode 12.4 or later
  • DeSmuME (macOS App; Intel32 Intel64 dev+ -- Xcode 8) Makes i386/x86_64 binaries, minimum Xcode 8.2.1 - maximum Xcode 9.4.1

If you want to run dev+ build with Xcode's LLDB debugger:

6a. Click Run. This will build a Debug version of the app, which will automatically launch when finished.

And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Debug" folder.

If you need to use the dev+ build without running the debugger:

6b. In Xcode, choose Product > Build For > Profiling, and then wait for Xcode to finish building the app. (Note that this build does use program optimizations.)

And you're done! The newly built app will be present in the "/desmume/src/frontend/cocoa/build/Release" folder.


macOS App Final Release Build

This is the process that we use for our official release builds. To make this build, you must meet the following requirements:

  • You must have both Xcode 3.2.6 and Xcode 6.2 installed on a system running macOS 10.9.5 Mavericks.
  • You must have Xcode 8.3.3 installed on a system running macOS 10.12.6 Sierra or macOS 10.13.6 High Sierra.
  • You must have the latest version of Xcode running on the latest version of macOS. (At the time of this writing, the latest version of Xcode is 13.3.1, and the latest version of macOS is 12.3.1.)


1. Let's start with building on macOS Mavericks: Open the "DeSmuME (Xcode 3).xcodeproj" project file using Xcode 3.2.6.

2. In the Build Target menu (located in the upper-left corner of the project window), under Active Configuration, choose Release.

3. In the Build Target menu, under Active Target, choose the build target "DeSmuME (macOS App; Release Stage 1 PowerPC32 -- Xcode 3)".

4. Choose Build > Clean All Targets.

5. In the Clean All Targets sheet, check all options, then click Clean, and then wait for the clean process to finish.

6. Choose Build > Build, and then wait for the build process to finish. This will make a new app called "DeSmuME (ppc32).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.

7. While still on macOS Mavericks: Open the "DeSmuME (Latest).xcodeproj" project file using Xcode 6.2.

8. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 2 Leopard NIB -- Xcode 6).

9. In Xcode, choose File > Project Settings....

10. Click Advanced....

11. Choose Legacy, then click Done. Click Done again to exit Project Settings.

12. Choose Product > Clean, and then wait for the clean process to finish.

13. Choose Product > Build, and then wait for the build process to finish. This will make a new app called "DeSmuME.app" in the "/desmume/src/frontend/cocoa/build/Release" folder.

14. Quit both Xcode 3.2.6 and Xcode 6.2 on macOS Mavericks.

15. On the next system running macOS Sierra or High Sierra: Open the "DeSmuME (Latest).xcodeproj" project file using Xcode 8.3.3.

16. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 3 Intel32 -- Xcode 8).

17. Choose Product > Clean, and then wait for the clean process to finish.

18. Choose Product > Perform Action > Generate Optimization Profile.

19. In the Generate Optimization Profile sheet, ensure that Use Run Action is the selected option, and then click Run.

20. Wait for Xcode to finish building the app. When Xcode finishes, DeSmuME will automatically launch.

21. Perform the recommended PGO exercises listed on this page: TBD

22. After all PGO exercises are complete, quit DeSmuME. Xcode should now report that it has generated an optimization profile.

23. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (i386).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.

24. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 4 Intel64 -- Xcode 8).

25. Repeat Steps 14 - 19.

26. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (x86_64).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.

27. Quit Xcode 8.3.3 on macOS Sierra / High Sierra.

28. On the next system running the latest macOS: Open the "DeSmuME (Latest).xcodeproj" project file using the latest version of Xcode.

29. Choose Product > Scheme > DeSmuME (macOS App; Release Stage 5 Intel64 Haswell -- Latest Xcode).

30. Repeat Steps 14 - 19.

31. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (x86_64h).app" in the "/desmume/src/frontend/cocoa/build/Release" folder.

32. Choose Product > Scheme > DeSmuME (macOS App; Release Stage Final AppleSilicon -- Latest Xcode).

33. Repeat Steps 14 - 19.

34. In Xcode, choose Product > Build For > Profiling, and then wait for the build process to finish. This will make a new app called "DeSmuME (arm64).app" in the "/desmume/src/frontend/cocoa/build/Release" folder, as well as combining all of the previously built binaries into the same DeSmuME.app container.

And you're done! The newly built DeSmuME.app will be present in the "/desmume/src/frontend/cocoa/build/Merged Release" folder.


OpenEmu Plug-in Build

The DeSmuME OpenEmu plug-in is used as an extension to the OpenEmu application. Installing the plug-in involves building OpenEmuBase.framework from source, then moving the framework to the "desmume/src/frontend/cocoa/openemu" folder, then building the plug-in from source, and then finally placing the plug-in into the ~/Library/Application Support/OpenEmu/Cores folder.


You can download the OpenEmu SDK source code from here:


Building and installing OpenEmuBase.framework from source

1. Open the "OpenEmu-SDK.xcodeproj" project file using the latest version of Xcode.

2. In the left-hand sidebar, click the "OpenEmu-SDK" project icon. This should show the project file's settings.

3. In the project file settings, in the left-hand sidebar, click "OpenEmu-SDK" under Project.

4. Click "Build Settings", and then click "All" to show all of the build settings at the project file level.

5. For the Architectures setting, click its associated drop-down menu, and choose "Other...".

6. Delete all existing settings by clicking the "-" button. (The one existing setting should be "$(ARCHS_STANDARD)".)

7. While in the Architectures setting, click the "+" button and enter the setting "x86_64".

8. Click the "+" button and enter the setting "x86_64h".

9. Click the "+" button and enter the setting "arm64".

10. In the upper-left corner of the Project Build settings, there will be another "+" button, where mousing over it will read "Add a new conditional or user-defined build setting". Click that button and choose "Add User-Defined Setting".

11. The new setting will read "NEW_SETTING"; replace this "VALID_ARCHS".

12. Click the empty space directly to the right of VALID_ARCHS to enter its associated setting. For this setting, enter the following exactly as shown:

x86_64 x86_64h arm64

13. Choose Product > Scheme > OpenEmuBase.

14. Choose Product > Build For > Profiling. This will start building the Release version of the framework.

15. After the build finishes, choose Product > Show Build Folder in Finder. Then in the Finder window that appears, you should be in a folder named "Build". Open the Products folder, then the Release folder. The new OpenEmuBase.framework bundle should now be present in this folder.

16. Move OpenEmuBase.framework into the "desmume/src/frontend/cocoa/openemu" folder.

Building the OpenEmu plug-in

Note: In order to build the OpenEmu plug-in, it is mandatory that OpenEmuBase.framework is present in the "desmume/src/frontend/cocoa/openemu" folder. Otherwise, the build will fail due to missing frameworks.

1. Open the "DeSmuME (Latest).xcodeproj" project file using the latest version of Xcode.

2. Choose Product > Scheme > DeSmuME (OpenEmu Plug-in -- Latest Xcode).

3. Choose Product > Build For > Profiling. This will start building the Release version of the plug-in.

The following step depends on if you have set the Project Settings to use a Legacy build location.

4a. If you did not previously set the Project Settings to use a Legacy build location: After the build finishes, choose Product > Show Build Folder in Finder. Then in the Finder window that appears, you should be in a folder named "Build". Open the Products folder, then the Release folder. The new DeSmuME.oecoreplugin bundle should now be present in this folder.

4b. If you have previously set the Project Settings to use a Legacy build location: After the build finishes, in the Finder, navigate to the "desmume/src/frontend/cocoa/build/Release". The new DeSmuME.oecoreplugin bundle should now be present in this folder.

5. Choose New > New Finder Window.

6. With the new Finder window selected, choose Go > Go To Folder.

7. In the drop-down sheet, in the "Go to the folder" text field, enter the following exactly as shown:

~/Library/Application Support/OpenEmu/Cores

8. Move the DeSmuME.oecoreplugin bundle from the Release folder into the Cores folder.

And that's it! The DeSmuME OpenEmu plug-in should now be installed. You should now be able to run NDS ROMs from within OpenEmu.app!

Appendix A: Comparison Charts of Different Builds

Build Compatibility

The table below lists a summary of both binary and operating system compatibility for all possible builds.

Note: All binaries will not be compatible with OS X v10.4 (Tiger) or earlier.

macOS App macOS App (dev+) macOS App (Final Release) OpenEmu Plug-in
PowerPC, 32-bit YES[1] (macOS 10.5) NO YES (macOS 10.5) NO
PowerPC, 64-bit YES[1] (macOS 10.5) NO NO NO
Intel, 32-bit YES[1] (macOS 10.5)

YES (macOS 10.6)

YES (Xcode 8.2.1 - 9.4.1) YES (macOS 10.5) NO
Intel, 64-bit YES[1] (macOS 10.5)

YES (macOS 10.6)

YES w/ SSE4.1 (macOS 10.12)

YES (Xcode 8.2.1 - 9.4.1)

YES w/ SSE4.1 (Xcode 10.1 or later)

YES (macOS 10.5) YES (OpenEmu 1.0.4)
Intel, 64-bit Haswell YES (macOS 10.12) YES (Xcode 10.1 or later) YES (macOS 10.9) YES (OpenEmu 1.0.4)
Apple Silicon, 64-bit YES (macOS 11.0) YES (Xcode 12.4 or later) YES (macOS 11.0) YES (OpenEmu 1.0.4)
macOS 10.5 Leopard YES[1] NO YES NO
macOS 10.6 Snow Leopard YES NO YES NO
macOS 10.7 Lion YES NO YES YES (OpenEmu 1.0.4)

YES (OpenEmu 2.0.1)

macOS 10.8 Mountain Lion YES NO YES YES (OpenEmu 1.0.4)

YES (OpenEmu 2.0.1)

macOS 10.9 Mavericks YES NO YES YES (OpenEmu 1.0.4)

YES (OpenEmu 2.0.1)

macOS 10.10 Yosemite YES NO YES YES (OpenEmu 1.0.4)

YES (OpenEmu 2.0.1)

macOS 10.11 El Capitan YES YES (Xcode 8.2.1) YES YES (OpenEmu 2.0.9.1)
macOS 10.12 Sierra YES YES (Xcode 8.3.3)

YES (Xcode 9.2)

YES YES (OpenEmu 2.0.9.1)
macOS 10.13 High Sierra YES YES (Xcode 8.3.3)

YES (Xcode 9.4.1)

YES (Xcode 10.1)

YES YES (OpenEmu 2.0.9.1)
macOS 10.14 Mojave YES YES (Xcode 9.4.1)

YES (Xcode 11.3.1)

YES YES (OpenEmu 2.3.3)
macOS 10.15 Catalina YES YES (Xcode 12.4) YES YES (OpenEmu 2.3.3)
macOS 11.0 Big Sur YES YES (Xcode 13.2.1) YES YES (OpenEmu 2.3.3)
macOS 12.0 Monterey YES YES (Xcode 13.3.1) YES YES (OpenEmu 2.3.3)

1. Available only by building with the "DeSmuME (Xcode 3).xcodeproj" file using Xcode 3.2.6.

Appendix B: Installing DeSmuME From Source (Legacy Instructions)

This is a document that described an older method for installing DeSmuME from the source code. It is now obsolete and no longer supported by the DeSmuME team. You can view it here: Installing DeSmuME from source on Mac OS X (Legacy Instructions)

Personal tools