Rescate Wi-Fi de NDS y Wii

Como sabréis, dentro de unos cuantos días Nintendo apagará sus servidores que permiten la conexión Wi-Fi a los juegos de la NDS y Wii. Por eso motivo se ha creado este proyecto, para mantener toda la funcionalidad.

La idea original es de Toad King, un usario de GbaTemp que creo este hilo. Además ha creado la web: Save Nintendo Wi-Fi. El objetivo es el de crear un servidor falso que simule ser un servidor de Nintendo y que por tanto podamos seguir jugando on-line o descargar DLC.

A pesar de que el proyecto lleva su tiempo, el avance básicamente ha sido el de comenzar a crear el servidor. El desarrollo se está haciendo desde GitHub desde aquí. Y le queda bastante... Algunos juegos ya tienen algunas funciones restauradas como Phantasy Star 0.

¿Qué se puede hacer hasta el 20 de mayo?
Para hacer el servidor se necesita saber qué datos se intercambian NDS / Wii y servidor de Nintendo. Para ello, sólo basta con captura el tráfico entre ambos con programas como Wireshark. Una vez obtenido dicho tráfico (paquetes) se pueden analizar y crear el servidor para que recree todo ello. Como no hay mucho tiempo, creo que la prioridad ahora mismo es capturar el tráfico de cuantos más juegos mejor y que ya más tarde, con tranquilidad se puede ayudar a crear el servidor.

¿Cómo capturar los datos intercambiados?
Para ello he creado una serie de programas que básicamente reducen todo el proceso a jugar. No hace falta instalar nada, solo seguir los siguiente pasos (sólo para NDS, para Wii en la página de Toad King hay información):

Herramientas
* Ordenador con Windows (en VirtualBox funciona también).
* Conexión a Internet mediante Ethernet (usando VirtualBox esto no es necesario).
* SSL Autopatcher v1.4: http://www.mediafire.com/download/s5ucc ... r_v1.4.zip
* Desmume PCAP v1.2: http://www.mediafire.com/download/x5odq ... P_v1.2.zip
* BIOS y Firmware de NDS para DeSmuME. Esto que lo busque cada uno por ahí.

Pasos
1.- Seleccionar el juego objetivo. Aquí hay una lista de Nintendo con juegos que perderán el on-line. No están todos, pero si para empezar.
2.- Arrastrar y soltar la ROM sobre SslPatcher.exe. Este programa parcheará el juego (si lo necesita) para forzarlo a que no cifre los datos que transmite. En ese caso, creará un nuevo archivo en el directorio del juego original con igual nombre pero añadiendo "[NOSSL]".
3.- Copiar los archivos de BIOS y Firmware dentro de la carpeta Firmware de DeSmuME.
4.- Abrir DeSmuME PCAP y configurarlo.
4.A.- Ir a Config->Wifi Settings. Seleccionar Infrastructure y en el menú desplegable vuestra tarjeta de red Ethernet.
4.B.- Ir a Config->Emulation Settings. Activar "Use external BIOS images" y seleccionar los archivos de BIOS. Activar "Use external firmware image" y seleccionar el archivo de Firmware.
Jugar.

Una vez hecho esto para un juego, para los siguientes sólo habrá que parchearlo y jugar.

NOTA 1: No hace falta entrar en la configuración Wi-Fi para configurar punto de acceso y demás, eso debe de cogerlo del archivo firmware.dfc que se incluye. Está configurado para que use el túnel SSL que hay en la página de Toad King, esto es necesario porque la conexión a algunos servidores ha de ser por HTTPS.
En caso de no ser así, el único cambio que hay que hacer es introducir la siguiente dirección de DNS: 199.195.254.155

NOTA 2: Cada vez que se entre en el modo on-line se creará un archivo ".pcap" (a veces más de uno) donde se guardarán todos los paquetes que DeSmuME reciba y envíe (se puede abrir con Wireshark). El archivo se cerrará cuando se cierre la conexión. Este archivo es el que hay que compartir para crear el servidor.

NOTA 3: Tened cuidado si movéis de carpeta el emulador. Las rutas que hay en el archivo desmume.ini y que apuntan a los archivos de la BIOS y el Firmware son absolutas, y hay que actualizarlas por tanto. Para solucionarlo, se puede o modificar el archivo o repetir el paso 4.A. Este fallo puede causar el error 20104.

Alternativas si no dispones de conexión Ethernet
Como dije anteriormente, este proceso sólo funciona si tu ordenador está conectado al router / punto de acceso principal mediante un cable Ethernet. Si no es así y tienes conexión Wi-Fi o 3G aquí pongo algunas alternativas que he probado.

* Si dispones de dos ordenador y un cable Ethernet, conéctalos con el cable entre sí. En el equipo que tenga la conexión por Wi-Fi o 3G, entra en las configuraciones de los adaptadores de red y establece que el adaptador que tenga Internet comparta la conexión con el adaptador Ethernet. De esta forma ahora el segundo equipo tendrá conexión a Internet por Ethernet como queríamos. Si alguien está interesado en este proceso, puedo hacer un pequeño tutorial tanto para Windows como para Linux.

* Otra solución es instalar Windows como una máquina virtual en VirtualBox (otros programas de simulación puede funcionar aunque no los he probado personalmente). En este caso no hay que hacer ninguna configuración extra, simplemente seguir los pasos pero dentro de esa máquina virtualizada. El problema es que DeSmuME puede ir bastante lento ahí dentro.

Formas de compartir los archivos
* Toad King propone enviarselos por email (en su web está) para que él los suba a su web.
* Yo propongo usar Google Drive. Daré acceso a la carpeta a las personas que quieran participar y así la lista que hay de juegos por capturar la puede actualizar cada usuario al instante. La carpeta (en modo de sólo ver) es la siguiente: https://drive.google.com/folderview?id= ... sp=sharing
* Cualquier otra opción será bienvenida.

Un saludo.
Interesante iniciativa! Lástima que ahora no tengo tiempo para hacer estas cosas sinó colaboraba sin pensármelo
Lo que Nintendo te quita, la Scene te lo da.

Muy interesante, habrá que echarle un ojo.
3 respuestas