emufii
Play your emulators online with friends, using a six-character code.
No ports to open, no IP address to share. Built for Android handhelds.
What it is · How it works · Consoles · Install · Privacy
[!IMPORTANT] DS local wireless needs WatermelonDS Emufii Edition. Starting with Emufii 2.0, DS local wireless games can be played online. This only works with WatermelonDS Emufii Edition, a fork of WatermelonDS that adds the netplay this needs.
It installs next to the official WatermelonDS, so you keep your saves and settings. Once the official WatermelonDS includes the netplay, the fork won't be needed anymore. Online play through Kaeru WFC still works with any melonDS or WatermelonDS.
What Emufii is (and isn't)
Emufii is an Android app that connects your emulators to your friends' emulators over the internet. The emulators think everyone is on the same Wi-Fi, so their own local multiplayer just works.
| What it does | What it isn't |
|---|---|
|
Connects the players. A private network between the players for the length of a session, through Android's VPN feature. Only game traffic goes through it. Sets up the emulator. Opens it on its multiplayer screen and fills in the connection details for you. Shows your games. The games from your own ROM folder, with covers and a compatibility badge, to start a session from. Brings your friends. Add them with a code, see who's online and what they're playing, and join their sessions. |
Not an emulator. Every game runs in the emulator you already use. Emufii doesn't run any game itself. Not a frontend. The game library is there to start multiplayer sessions. It doesn't replace your usual launcher. Not a downloader. Emufii doesn't include, download or install games, BIOS files, keys or emulators. You install the emulators and use your own dumps. Not streaming. Each player runs their own copy of the game on their own device. Not a way back to official servers. Emufii never connects to Nintendo's or Sony's servers, so games that needed them don't work online. DS games through the Kaeru WFC revival server are the exception. |
How it works
1. HostPick a game and share the six-character code. |
2. JoinFriends enter the code or pick a public session. |
3. ConnectEmufii opens the emulator and fills in the address. |
4. PlayEveryone plays as if on the same Wi-Fi. |
Consoles
| Console | Emulator | Multiplayer mode | Version needed |
|---|---|---|---|
| Switch | Eden | Local wireless | Any recent version |
| 3DS | Azahar | Local wireless | Pre-release 2126.0-rc or newer |
| Wii / GameCube | Dolphin | Netplay | Android build 2606a |
| PSP | PPSSPP | Ad hoc | Any recent version |
| PS2 | ARMSX2 | System Link / LAN | Any recent version |
| DS | WatermelonDS Emufii Edition | Local wireless | 0.8.0.rc2-emufii |
| DS | melonDS or WatermelonDS | Online via Kaeru WFC | Any recent version |
[!NOTE] Which games work? Games that had local multiplayer on the original console, and for the DS online mode, games that used Nintendo Wi-Fi Connection. See the full list of compatible games.
Every player needs the same emulator version and the same copy of the game.
Install
[!WARNING] Beta. Works on Android 13, 14 and 15. Expect bugs, and please report them on Discord.
- Install the emulators you want to use.
- Download the latest APK and install it.
- Open Emufii and follow the setup.
The autofill option is greyed out
Android blocks it for apps installed outside a store. Go to App info → ⋮ → Allow restricted settings, then turn Emufii on in Settings → Accessibility.
Updating
Download the new APK from the releases page and install it over the old one. Your settings are kept.
Checking the APK signature
21:EF:2D:D6:11:E0:96:5A:70:8F:61:F6:00:77:DE:97:D4:0D:59:FD:56:2F:1D:C5:F6:EF:6C:87:77:5E:81:D5
apksigner verify --print-certs Emufii-2.0.apk
Privacy
| What | Where it goes |
|---|---|
| Session code, nickname, game | On the server for the length of the session, deleted when it ends |
| Profile picture | On the server, seen by your friends and the players in your sessions. Removing it in the app deletes it |
| Online status, last game | Seen by anyone who has your friend code |
| Friend code | Never shown to the other players of a session |
| Network traffic | Only game traffic goes through Emufii's network |
| Games, BIOS, keys | Never included. Use your own dumps |
[!CAUTION] In a public session, other players' devices can reach yours, like on shared Wi-Fi. If you're playing with friends, keep the session private.
License
AGPL-3.0 (details in NOTICE.md). The app's source code is in this repository, but the session server and relay are private.
If you find a security issue, please report it privately on Discord.
How it was built
Emufii is built with Claude Code, and I'd rather tell you upfront. About 90% of the code was written with the AI, along with much of the research into how each emulator handles multiplayer.
That doesn't mean nobody is in charge. I decide the design and how the project is built and tested, I review the code that goes in, and I test every feature on real hardware before it ships.
Since then, a big part of the code has been rewritten.
If you're not comfortable with software made this way, that's completely fair. Just know that the app and the servers have had security reviews, with every issue found fixed, and that experienced developers have started contributing to the project.
If that sounds good to you, grab the latest version and come say hi on Discord!
Credits
Emulators
Eden · Azahar · Dolphin · PPSSPP · ARMSX2 · melonDS
Contributors
@sofianeelhor for the PPSSPP and ARMSX2 network automation
@BrianJr03 for the manual session setup and uncropped covers
Built with
WireGuard · Coil · Rounded M+
Also built on
WatermelonDS by SapphireRhodonite
melonDS Android by rafaelvcaetano
Kaeru WFC, the Nintendo Wi-Fi Connection revival
And everyone on the Discord who tests, reports bugs and plays.
