Installing DeSmuME from source on OS X

From DeSmuME
Jump to: navigation, search

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