This video demonstrates how it is possible to play online multiplayer DS games on Android (in this case, Mario Kart DS), thanks to the Linux version of the melonDS emulator, and a Linux container.
I used a Xiaomi Redmi 9T smartphone, with a Qualcomm Snapdragon 662 SoC (on the stock MIUI 12).
Termux was used for running the Ubuntu 20 container (courtesy of andronix.app), bVNC to connect to the video server, and GamePad for the actual buttons for playing.
Andronix also provides a fix for sound, which doesn’t work by default: https://docs.andronix.app/hardware/sound
Keep in mind that there is no graphics hardware acceleration in the Linux environment, meaning the CPU has to do the extra work of graphics rendering, resulting in potentially low performance. Online multiplayer for MKDS is very resource-heavy and you can see the degraded performance (while in singleplayer it performs almost perfectly, not that it matters since this setup is worse than the native melonDS Android port for playing offline).
melonDS was compiled from source inside the Linux container, after making a small change to the code (removing this line here: https://github.com/Arisotura/melonDS/blob/1bda85383f3916ceecfa96861602ff401e36deb6/src/frontend/qt_sdl/main.cpp#L2735 to prevent the emulator from crashing because of an insignificant SDL error).
I will make a more detailed guide on how to set this up for playing if there is enough demand.
Download This Video