Tutorial  Updated

How to play NDS Games ONLINE! (Native Hardware, DS/3DS, Cart/Flashcart/TwilightMenu++)

Credits

shutterbug2000 - nds-constrain't
Me - Tutorial

Estimated Time of Completion of Tutorial

Like 2 minutes tops

Common Terms, Websites, e.t.c

Don't skip out on understanding these terms and websites, they will be used from here on and wont be re-explained.
Native Hardware: Any Nintendo System that can NATIVELY run Nintendo DS Cartridges or ROMs. These systems DONT emulate them.
Wiimmfi: Most Popular Backend used for Custom Servers
nds-contrain't: SSL Vulnerability/Workaround allowing custom servers to be fake signed and accepted by Nintendo DS hardware as if they were Nintendo's Servers.
NTR; Nitro: Nintendo DS's Code Name
TWL; Twilight: Nintendo DSi's Code Name

Preparation

Important Notes:

  • All games can be run any way you please as long as its run natively on the hardware, this includes, Pirating Flashcarts (e.g. R4, Acekard), Official Cartridges, ROMs off of SD via TwilightMenu++/nds-bootstrap, DSiWare, e.t.c
  • NTR (non TWL games) requires you to have a WEP secured WiFi access point or a fully unsecured Open network. (You are currently on WPA2). Both of these are extremely unsafe and leave you vulnerable to attacks. Below explains your current options of connecting your System to the Internet.

Options for WiFi Connectivity (Pick your poison):

  • Open (Unsecure / No Password) WiFi Access Point
    This leaves you to obvious issues:
    - People using your WiFi, possibly doing illegal activity, wasting your bandwidth.
    - A LOT of attacks, more than you think, including Session Hijacking, Ad Injection, Phissing (e.g. Fake Router Updates asking for private "security" information), Packet sniffing, Data Scraping, and TONS more.
  • WEP (Secured / Password) WiFi Access Point
    The WEP security standard is extremely insecure itself, it was hacked beyond kind and anyone can brute a handshake on it extremely fast.
    Its basically leaving yourself vulnerable to 5 minutes worth of effort before them finding your password.
    Once they brute a handshake and have access to your WiFi, while slightly safer, it essentially has the same vulnerabilities as Open WiFi Access Points.
    The only reason its slightly safer is the hope no one that walks past your WiFi signal doesn't know how to break WEP.
  • Hotspot (Unsecure / No Password / MAC Locked/Whitelisting Security) WiFi Access Point
    This allows you to create a WiFi Access Point that can be recognized by the Nintendo DS NTR games that is safer.
    MAC Locking or otherwise known as Whitelisting is a security form where you can only allow certain devices to connect at all. All devices provide the WiFi access point a MAC address, its essentially a string as a form of an Identifier.
    MAC's are tied to WiFi Adapters rather than consoles/bios's/firmwares so all devices would be a unique MAC code.
    I cant give you an EXACT software/device to use, but I recommend googling "<Your OS/Device> WiFi Hotspot MAC Lock Whitelist" or similar.
    Some routers have a "Guest" network mode which can often do something like this which may work for you, however I can confirm it not working on FritzOS! 7.01 on FritzBox! routers ("Open" is still actually WPA2, just doesnt use a Password)
    Most modern android devices natively have support for this, but there are various android apps that create hotspots with this ability designed for older devices.
  • Connectify.me Windows PC Hotspot WiFi Access Point
    A lot of people also recommend using a Connectify.me setup allowing you to use your WiFi adapter to share a WiFi as a new Access Point under your own Settings.
    For obvious reasons its best to use the paid version which with the coupon: "DEAL80" (which currently works) you can get it fairly cheap.
    It's best to use an Adapter thats 2.4GHz (Nintendo DS doesnt support 5GHz), and best to use an adapter that isnt doing anything, so if you have only one Adapter in your system, and that adapter is receiving your WiFi, its best not to use that to create the Connectify hotspot with.
    I can't recommend or unrecommend this method as I have yet to try it out, but if it goes well, it would pretty much replace having to use a phone as a Hotspot as explained above.
  • Nintendo's USB WiFi Adapter
    DONT USE THIS. For one, it only has SUPPORT for Windows XP, it's software doesn't officially work on Windows 7+.
    Even then, if you do use Windows XP for it, Windows XP has botchy WiFi drivers, and will eventually run into the same issue not supporting modern WiFi Security.
    Even THEN, the WiFi Adapter is very botchy, its prone to issues, disconnects, freezes and worse of it all, pretty much everyone who uses it reports that it gets extremely hot after minutes of using it.
  • Have any other options not listed here? Please let us know!

Once you have prepared a WiFi Access Point with one of the options above, then you are prepared! Continue below to connect to a Custom Server.

Using a Custom Server with NO Modification w/nds-constraint

Setting up a Custom ServerCustom Server List


  1. Before we can continue, we need to choose a server to connect with, choose a server in the Custom Server List tab above.
    Take note of the DNS IP Address listed for the server.
    1. Enter Wi-Fi Connection Settings, either through a Game-Menu or Settings.
    2. Connection Settings -> Connection 1 and select your Access-Point (Emulater's will already have an Access-Point named "SoftAP" which has no password). It will try testing the connection once you type in your password, it WILL fail here as the DS is trying to connect to the official servers and notes how its ended its online service years ago. It's OK! Your Access-Point however has connected just fine.
    3. Go back into Connection 1 again and set Auto-Obtain DNS to NO and edit BOTH PRIMARY AND SECONDARY DNS to the DNS IP Address of the Custom Server you chose earlier. We set both Primary and Secondary now because there has been confirmed occurences of the DS's skipping Primary and going straight to Secondary causing it to connect to the official servers (and say service ended) or fail to connect at all.
    4. Save Settings, and then go back into Connection 1 and click Test Connection to confirm a successful connection.
    DONE! Go play online! As long as the game is supported by Wiimmfi, you should have no issues.


  2. All server's listed here connects to Wiimmfi's Playerbase and uses the nds-constrain't SSL exploit.
    Choose any server listed here you wish, it doesn't really matter as they all use the exact same backend, the only difference is the server's speed/latency/ping and if its down or not.
    If you know a server not listed here, that is using Wiimmfi and uses nds-constrain't please let us know.
    • Kaeru WFC: 178.62.43.212 (Recommended by shutterbug2000 - nds-constrain't discover'er)
    • RiiConnect24: 164.132.44.106


Explain mister!

Why this is different to other tutorials and why people are talking about Custom Servers for the Nintendo DS all of a sudden is because of nds-constraint being found.
In a very summed down tl-dr, it basically bypasses a check on connections made between the server and the nintendo ds that makes sure its from Nintendo and not spoofed by a Third Party (Research MiTM).
Previously before this bypass was found, to be able to use Custom Servers people had to patch every single game they wanted to run. I believe this can be done by patching the rom files with third party software (Flashcards only in this case) or for original cartridges use an Action Replay code which for me anyway, never really worked, seems to have been way too specific to each game and region.

Because of nds-constraint, we dont have to do anything except change the DNS so that we can change the DNS Resolve for lets say "wfc.nintendo.com" to "wfc.wiimfii.com".
Then wfc.wiimfii.com would go ahead and use the nds-constraint exploit to bypass the check on Nintendo DS games.

This is huge, you really should realize how big this is.
It's now possible to play any game online (aslong as its supported by the server) without modifying roms, cartridges or consoles apart from changing ONE setting.

Proof - Playing Mario Kart DS Online on a Japanese DSi through Kaeru WFC

 
Last edited by PRAGMA,

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,258
Trophies
1
Location
Ireland
Website
github.com
XP
5,038
Country
Ireland
Ive removed the details about Emulation WFC instructions mainly due to the current path DeSmuME is taking for WFC is basically trying to shatter its progress (theres drama or something about it).
Since the current branch of DeSmuME (including all nightly's) isn't even really attempting to work on WFC, and that it is still quite far away, it's best to pretend its not even possible for now at least :(

Hopefully MelonDS's Emulation can get as if not better than DeSmuME as MelonDS's WFC code is much better but its general emulation itself lacks in comparison to DeSmuME's multi-year progress.
:( ~ s a d w f c h o u r s ~
 

Lunos

Well-Known Member
Member
Joined
Dec 26, 2010
Messages
226
Trophies
1
Age
27
Location
Montevideo
XP
681
Country
Uruguay
Ive removed the details about Emulation WFC instructions mainly due to the current path DeSmuME is taking for WFC is basically trying to shatter its progress (theres drama or something about it).
Since the current branch of DeSmuME (including all nightly's) isn't even really attempting to work on WFC, and that it is still quite far away, it's best to pretend its not even possible for now at least :(

Hopefully MelonDS's Emulation can get as if not better than DeSmuME as MelonDS's WFC code is much better but its general emulation itself lacks in comparison to DeSmuME's multi-year progress.
:( ~ s a d w f c h o u r s ~
Progress must have been made in the last months since you wrote that post, because Kaeru's WFC is working perfectly on my end using the latest Nightly of Desmume.

The procedure is very simple, I'll write it very quickly here for anyone who's interested.

1) Download the latest Stable version of Desmume. You can find it right here.
2) Download the latest Nightly version of Desmume. You can find it right here.
3) Download the latest installer of WinPcap. You can find it right here.
4) Configure Desmume as you see fit, loading your BIOS7, BIOS9 and Firmware in the process. You can do that under Config > Emulation Settings.
5) Go to Config > Wifi Settings and make sure that "Enable WiFi Emulation" is checked and the Bridge Network Adapter selected is your main Ethernet Controller.
6) Boot up your game and go to its Nintendo WFC Settings.
7) Delete all the Connection Settings there or modify the Connection 1 directly, whatever floats your boat.
8) Make sure to do the following modifications:
* Set "Auto-obtain DNS" to "No".
* Set the Primary DNS to "164.132.44.106"
* Set the Secondary DNS to "1.1.1.1"
9) Save Settings
10) Go back to the Connection 1 Settings and run the Test Connection function, to make sure that everything is working correctly.

And that's it, really. Go back to the main menu of your game, and you should be able to access its WiFi functions normally.

Notes:
* The latest Nightly version is always shared as a single .exe file, which won't work on its own. That's why I'm asking to download the latest Stable version of Desmume first, so you can drag and drop the latest Nightly in your Desmume folder.

* You must be connected to the internet via Ethernet connection. WiFi connection will not work, if I recall correctly.

* Unlike the main post of this thread says, setting the Secondary DNS to the same DNS Address as the Primary DNS got me locked to one single Mystery Gift in the Pokémon Games with Kaeru's WFC. When I changed the Secondary DNS to 1.1.1.1, I was able to get other Mystery Gifts as well however.
EDIT: This might have actually no effect at all. I booted up Platinum just now and tried to get another Mystery Gift. At first I got a Shiny Milotic, but since I had 3 Wonder Cards, I had to go back, delete 1 and connect to "Nintendo's" WFC again. However, on that 2nd attempt, what I found was a Wonder Card that I already had.
I guess this is fully random. Sometimes you get a new Mystery Gift, and sometimes you get a repeated one.
I'd personally still suggest to use 1.1.1.1 though, because that's what Team Kaeru suggests in their official website.


If anyone sees anything wrong with this post, let me know and I'll fix it up.
 

Attachments

  • DeSmuME-VS2015-Release.png
    DeSmuME-VS2015-Release.png
    64.6 KB · Views: 245
Last edited by Lunos,

raxadian

Well-Known Member
Member
Joined
Nov 10, 2018
Messages
4,392
Trophies
1
Age
41
XP
4,601
Country
Argentina
Any progress in making it work better on a real DS? I am tired of all the crashes, feels like I was using Windows 98.
 

PRAGMA

Well-Known Member
OP
Member
Joined
Dec 29, 2015
Messages
2,258
Trophies
1
Location
Ireland
Website
github.com
XP
5,038
Country
Ireland
This still works like a charm in 2020. The only issues ive been seeing is with people using emulators. Native hardware works like a charm. (Tested on Kaeru WFC dns)
 

chief18

Active Member
Newcomer
Joined
Apr 21, 2021
Messages
33
Trophies
0
Age
22
XP
105
Country
Italy
Progress must have been made in the last months since you wrote that post, because Kaeru's WFC is working perfectly on my end using the latest Nightly of Desmume.

The procedure is very simple, I'll write it very quickly here for anyone who's interested.

1) Download the latest Stable version of Desmume. You can find it right here.
2) Download the latest Nightly version of Desmume. You can find it right here.
3) Download the latest installer of WinPcap. You can find it right here.
4) Configure Desmume as you see fit, loading your BIOS7, BIOS9 and Firmware in the process. You can do that under Config > Emulation Settings.
5) Go to Config > Wifi Settings and make sure that "Enable WiFi Emulation" is checked and the Bridge Network Adapter selected is your main Ethernet Controller.
6) Boot up your game and go to its Nintendo WFC Settings.
7) Delete all the Connection Settings there or modify the Connection 1 directly, whatever floats your boat.
8) Make sure to do the following modifications:
* Set "Auto-obtain DNS" to "No".
* Set the Primary DNS to "164.132.44.106"
* Set the Secondary DNS to "1.1.1.1"
9) Save Settings
10) Go back to the Connection 1 Settings and run the Test Connection function, to make sure that everything is working correctly.

And that's it, really. Go back to the main menu of your game, and you should be able to access its WiFi functions normally.

Notes:
* The latest Nightly version is always shared as a single .exe file, which won't work on its own. That's why I'm asking to download the latest Stable version of Desmume first, so you can drag and drop the latest Nightly in your Desmume folder.

* You must be connected to the internet via Ethernet connection. WiFi connection will not work, if I recall correctly.

* Unlike the main post of this thread says, setting the Secondary DNS to the same DNS Address as the Primary DNS got me locked to one single Mystery Gift in the Pokémon Games with Kaeru's WFC. When I changed the Secondary DNS to 1.1.1.1, I was able to get other Mystery Gifts as well however.
EDIT: This might have actually no effect at all. I booted up Platinum just now and tried to get another Mystery Gift. At first I got a Shiny Milotic, but since I had 3 Wonder Cards, I had to go back, delete 1 and connect to "Nintendo's" WFC again. However, on that 2nd attempt, what I found was a Wonder Card that I already had.
I guess this is fully random. Sometimes you get a new Mystery Gift, and sometimes you get a repeated one.
I'd personally still suggest to use 1.1.1.1 though, because that's what Team Kaeru suggests in their official website.


If anyone sees anything wrong with this post, let me know and I'll fix it up.
Is this still valid? Plus afaik Winpcap is not supported on Windows 10
 

rcodi

Member
Newcomer
Joined
May 27, 2021
Messages
8
Trophies
0
XP
60
Country
United States
For another access point option I've had good results using a Raspberry Pi 3 running OpenWRT with hidden SSID and WEP (still very insecure but less risk if rural). It's a more involved solution but it's bridging using Ethernet rather than cellular or a wireless repeater which introduces even more lag. Hardware is pretty cheap too, even older Pi should be able to run this if you had a wireless dongle that was compatible with OpenWRT (plenty of guides and videos out there).

Link for reference on basic setup

Beyond that setup you just need to change the wireless to legacy and either make it WEP or open. Also note you'll want to open the full port range on UDP on OpenWRT and then on the main router upstream to the DS/Wii and I also recommend setting a static IP assignment for the specific MAC. Security-wise you can also add MAC filtering on the OpenWRT device to make it an exclusive AP for Wiimmfi.
 
Last edited by rcodi,

Lunos

Well-Known Member
Member
Joined
Dec 26, 2010
Messages
226
Trophies
1
Age
27
Location
Montevideo
XP
681
Country
Uruguay
Progress must have been made in the last months since you wrote that post, because Kaeru's WFC is working perfectly on my end using the latest Nightly of Desmume.

The procedure is very simple, I'll write it very quickly here for anyone who's interested.

1) Download the latest Stable version of Desmume. You can find it right here.
2) Download the latest Nightly version of Desmume. You can find it right here.
3) Download the latest installer of WinPcap. You can find it right here.
4) Configure Desmume as you see fit, loading your BIOS7, BIOS9 and Firmware in the process. You can do that under Config > Emulation Settings.
5) Go to Config > Wifi Settings and make sure that "Enable WiFi Emulation" is checked and the Bridge Network Adapter selected is your main Ethernet Controller.
6) Boot up your game and go to its Nintendo WFC Settings.
7) Delete all the Connection Settings there or modify the Connection 1 directly, whatever floats your boat.
8) Make sure to do the following modifications:
* Set "Auto-obtain DNS" to "No".
* Set the Primary DNS to "164.132.44.106"
* Set the Secondary DNS to "1.1.1.1"
9) Save Settings
10) Go back to the Connection 1 Settings and run the Test Connection function, to make sure that everything is working correctly.

And that's it, really. Go back to the main menu of your game, and you should be able to access its WiFi functions normally.

Notes:
* The latest Nightly version is always shared as a single .exe file, which won't work on its own. That's why I'm asking to download the latest Stable version of Desmume first, so you can drag and drop the latest Nightly in your Desmume folder.

* You must be connected to the internet via Ethernet connection. WiFi connection will not work, if I recall correctly.

* Unlike the main post of this thread says, setting the Secondary DNS to the same DNS Address as the Primary DNS got me locked to one single Mystery Gift in the Pokémon Games with Kaeru's WFC. When I changed the Secondary DNS to 1.1.1.1, I was able to get other Mystery Gifts as well however.
EDIT: This might have actually no effect at all. I booted up Platinum just now and tried to get another Mystery Gift. At first I got a Shiny Milotic, but since I had 3 Wonder Cards, I had to go back, delete 1 and connect to "Nintendo's" WFC again. However, on that 2nd attempt, what I found was a Wonder Card that I already had.
I guess this is fully random. Sometimes you get a new Mystery Gift, and sometimes you get a repeated one.
I'd personally still suggest to use 1.1.1.1 though, because that's what Team Kaeru suggests in their official website.


If anyone sees anything wrong with this post, let me know and I'll fix it up.
Bumping this thread to mention that things also work pretty great on melonDS too.
I just tried the shiny new v0.9.5 and it's effortless to set up.
Compared to Desmume though, you don't need WiNPCap to get things going on melonDS.

1) Download the latest build of melonDS. You can find it right here.
2) Configure melonDS as you see fit, loading your BIOS7, BIOS9 and Firmware in the process. You can do that under Config > Emu Settings. (Note: loading your BIOSes and a Firmware is mandatory.)
3) Boot up your game and go to its Nintendo WFC Settings.
4) Delete all the Connection Settings there or modify the Connection 1 directly, whatever floats your boat.
5) Make sure to do the following modifications:
* Set "Auto-obtain DNS" to "No".
* Set the Primary DNS to "164.132.44.106"
* Set the Secondary DNS to "1.1.1.1"
6) Save Settings
7) Go back to the Connection 1 Settings and run the Test Connection function, to make sure that everything is working correctly.

And that's it, really. Go back to the main menu of your game, and you should be able to access its WiFi functions normally.

 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    K3Nv2 @ K3Nv2: https://youtu.be/9kE3Env_2AY?si=Bs6lUZ0ZIlqmYaGT +1