Thanks for the replies. After ~10 hours I have finally figured out what was going on...it was likely that my Dolphin installations were using the same MAC address. I had copied my Dolphin folder from one computer to the other..perhaps a default mac is stored in there somewhere.
What I did to solve:
Go into Dolphin's Sys\GameSettings\GM4E01.ini (INI file for Mario Kart DD)
Added the following:
[Core]
BBA_MAC = 123456789004
I set the BBA_MAC on my other computer to 123456789003 (it's for machine #3) but obviously you can use any MAC-length value...and now it works 100% of the time (have to wait ~10 seconds for the emulators to see each other).
Next, for Boomslang,
Here are some scripts I wrote for automating bridging. I have only tested this on Windows 10. To get this set up, I renamed the OpenVPN adapter to "Gamecube" so I only had one very obviously-labeled adapter called "Ethernet". What I do is add and remove the Ethernet adapter to/from the bridge. This script is not very robust, but it works. The only difference between the AHK scripts is the sleep period.
WinClose, Network Connections
; Open "Network Connections"
Run, control ncpa.cpl
Sleep, 500
; Find "Ethernet" Label
Send {E}
Sleep, 500
; Go to "Add to Bridge" or "Remove from Bridge" Option
Send +{F10}
Sleep, 100
Send {Down}
Sleep, 100
Send {Down}
Sleep, 100
Send {Down}
Sleep, 100
Send {Down}
Sleep, 100
Send {Enter}
; Wait for adapter updates to kick in
Sleep, 16000
; Close window
WinClose, Network Connections
WinClose, Network Connections
; Open "Network Connections"
Run, control ncpa.cpl
Sleep, 500
; Find "Ethernet" Label
Send {E}
Sleep, 500
; Go to "Add to Bridge" or "Remove from Bridge" Option
Send +{F10}
Sleep, 100
Send {Down}
Sleep, 100
Send {Down}
Sleep, 100
Send {Down}
Sleep, 100
Send {Down}
Sleep, 100
Send {Enter}
; Wait for adapter updates to kick in
Sleep, 5000
; Close window
WinClose, Network Connections
And my script to launch mario kart dd (bat file):
# Bridge if needed
cd C:\arcade\utils
netsh bridge show adapter | find /i "Ethernet" || bridge.exe
# Run game
cd C:\arcade\games\gamecube
Dolphin.exe Roms\s3-mkusa.iso -b
# Unbridge if needed
cd C:\arcade\utils
netsh bridge show adapter | find /i "Ethernet" && quick-unbridge.exe
100% success rate for LAN Mario Kart DD.
I have some super hacky way to keep my IP addresses the same between both adapters, but it significantly lengthens the mkdd.bat file I use to launch the game, and it needs admin privileges..be careful to note that the IPs of 192.168.0.105, 192.168.0.5, and 192.168.0.205 that I use in the script below should be unique per machine (e.g. another machine will have 192.168.0.6, 192.168.0.106, and 192.168.0.206).
# Update ethernet IP to some arbitray IP (add 100 to it -- this machine's default IP is 192.168.0.5)
netsh interface ip set address "Ethernet" static 192.168.0.105 255.255.255.0 192.168.0.1 2
# Enable the bridge and update it's IP to use this machine's original IP
netsh interface set interface "Network Bridge" ENABLED
netsh interface ip set address "Network Bridge" static 192.168.0.5 255.255.255.0 192.168.0.1 2
# Add "ethernet" to bridge if it needs to be added
cd C:\arcade\utils
netsh bridge show adapter | find /i "Ethernet" || bridge.exe
# Run game
cd C:\arcade\games\gamecube
Dolphin.exe Roms\s3-mkusa.iso -b
# Remove "Ethernet" from bridge
cd C:\arcade\utils
netsh bridge show adapter | find /i "Ethernet" && quick-unbridge.exe
# Set arbitrary IP address for network bridge (+200) and disable it
netsh interface ip set address "Network Bridge" static 192.168.0.205 255.255.255.0 192.168.0.1 2
netsh interface set interface "Network Bridge" DISABLED
# Restore ethernet IP address (192.168.0.5)
netsh interface ip set address "Ethernet" static 192.168.0.5 255.255.255.0 192.168.0.1 2