How to add an alternative emulator to ES-DE on MacOS (a guide)
I finally figured out how to add alternative emulators on MacOS. It's not at all hard once you know how to do it.
Step 1: Make a custom es_systems.xml
You need to make custom es_systems.xml and es_find_rules.xml so that ES-DE can find your emulator. Go to Applications, right click, select Show Package Contents. Go to /Applications/ES-DE.app/Contents/Resources/resources/systems/macos. Open up es_systems.xml and scroll down until you find the system your alternative emulator is for. Copy everything for just that system and paste it into a new text document (I use TextEdit, just make sure it's not on rich text).
For example, here's what your xml file would look like for GameCube:
<?xml version="1.0"?>
<systemList>
<system>
<name>gc</name>
<fullname>Nintendo GameCube</fullname>
<path>%ROMPATH%/gc</path>
<extension>.ciso .CISO .dff .DFF .dol .DOL .elf .ELF .gcm .GCM .gcz .GCZ .iso .ISO .json .JSON .m3u .M3U .rvz .RVZ .tgc .TGC .wad .WAD .wbfs .WBFS .wia .WIA .7z .7Z .zip .ZIP</extension>
<command label="Dolphin">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.dylib %ROM%</command>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<platform>gc</platform>
<theme>gc</theme>
</system>
</systemList>
To add an alternate emulator, you just add a new <command> tag after the default ones. For example, here's what it would look like if you wanted to add Dusklight to play Twilight Princess:
<command label="Dusklight (Standalone)">%EMULATOR_DUSKLIGHT% %ROM%</command>
%EMULATOR_DUSKLIGHT% is going to be used in your custom es_find_rules.xml. Basically, DUSKLIGHT will trigger the application defined in es_find_rules.xml. %ROM% just tells it to open whatever ROM you send it.
Here's what the complete custom es_systems.xml would look like for Dusklight:
<?xml version="1.0"?>
<systemList>
<system>
<name>gc</name>
<fullname>Nintendo GameCube</fullname>
<path>%ROMPATH%/gc</path>
<extension>.ciso .CISO .dff .DFF .dol .DOL .elf .ELF .gcm .GCM .gcz .GCZ .iso .ISO .json .JSON .m3u .M3U .rvz .RVZ .tgc .TGC .wad .WAD .wbfs .WBFS .wia .WIA .7z .7Z .zip .ZIP</extension>
<command label="Dolphin">%EMULATOR_RETROARCH% -L %CORE_RETROARCH%/dolphin_libretro.dylib %ROM%</command>
<command label="Dolphin (Standalone)">%EMULATOR_DOLPHIN% -b -e %ROM%</command>
<command label="Dusklight (Standalone)">%EMULATOR_DUSKLIGHT% %ROM%</command>
<platform>gc</platform>
<theme>gc</theme>
</system>
</systemList>
After you are done, you need to save it in /Users/USERNAME/ES-DE/custom_systems. On MacOS, everything in ES-DE.app (in the Applications folder) is read-only, so you have to save your custom xml files in the above folder for it to work.
Step 2: Make a custom es_find_rules.xml
In the same folder that you put your es_systems.xml, make a new text file (with TextEdit, or some other program. Just make sure it actually saves it as an xml file and you selected Make Plain Text under Format). This will be called es_find_rules.xml. In this file, you need to tell ES-DE where the emulator application is in your file system. Here's what it would look like for Dusklight:
<?xml version="1.0"?>
<!-- This is the ES-DE find rules configuration file for Macos -->
<ruleList>
<emulator name="DUSKLIGHT">
<rule type="staticpath">
<entry>/Applications/Dusklight.app/Contents/MacOS/Dusklight</entry>
</rule>
</emulator>
</ruleList>
The emulator name is whatever you put on %EMULATOR_ in your es_systems.xml file. Since I put %EMULATOR_DUSKLIGHT%, I put DUSKLIGHT as the emulator name. Under entry, it's just the path to the executable, which you can get by right clicking the app in Applications, Show Package Contents, then go to Contents/MacOS/APP_NAME. Right click the executable, hold option, and copy path name.
Step 3: Change metadata to open alternative emulator
Assuming you did the above correctly, everything should now work now in ES-DE. Open up ES-DE, and you can change all your ROMs to open with the alternative Emulator (Main Menu/Other Settings/Alternative Emulators. Alternatively, you can open up only a specific ROM with the alternative emulator by changing the metadata of the individual ROM. Go to the ROM, go to Options, Edit This Game's Metadata, Alternative Emulator (scroll down to the very bottom).
Step 4: You're Done!
At this point, it should work. It's really not that difficult, but I don't have very much experience with XML or how ES-DE works under the hood. Hopefully this helps future ES-DE MacOS users, since there isn't too much online about this.