[DS] Wifi Loader: Cargador de aplicaciones via WIFI

1, 2, 3, 4, 511
Hermes
MegaAdicto!!!
11.053 mensajes
desde ene 2003
Editado 1 vez. Última: 4/02/2008 - 02:45:08 por Hermes.
Hola.

Despues de bastante trabajo con la libreria WIFI y de algo de investigacion, he conseguido hacer un cargador que se antojaba MUY necesario y que evita el estar constantemente grabando en la memoria flash ejecutables cuando estamos desarrollando.

Como Funciona el Programa

El programa se divide en dos partes, un ejecutable que he compilado bajo MinGW (el entorno que utilizamos para compilar en la DS) que hace las veces de server.

Cuando ejecutamos Wifiloader.exe, de inmediato nos aparece una ventana de seleccion de ficheros en la que tendremos que seleccionar el ejecutable en formato .nds o .ds.gba que queramos subir.

El servidor utiliza el puerto 9999 y está a la escucha de cualquier IP que acceda a ese puerto, asi que en principio, no deberia haber problemas de conexion (salvo que tengais ese puerto capado o esteis utilizandolo en otra aplicacion)

El protocolo utilizado, es TCP/IP, con lo cual se asegura de que los datos suban de forma fiable.

Es conveniente ejecutar primero el server del PC antes de ejecutar la aplicacion de la DS.

En la DS, tendreis que ejecutar el fichero 0wifiloader.nds o el *.ds.gba (los que usais SuperCard, podeis renombrar este fichero a *.sc.nds y teoricamente, deberia de ir)

El programa recupera de la flash la primera configuracion guardada (ya sabeis que necesitais un juego que acceda a internet grabe dicha configuracion) asi que no tendreis que meter la IP de forma manual.

Cuando lo ejecutais, aparece un mensaje en pantalla como este: "Connecting via WFC data"

Si veis que tarda rato en salir el el mensaje ""Connected successfully!", seguramente se haya quedado flipada la aplicacion, por lo que recomiendo pulsar el boton A para que se recargue desde la ROM

Una vez que se conecta al server, se procede a cargar a aplicacion, mostrandose en la parte inferior el numero de KB subidos.


La aplicacion es capaz de cargar ficheros .nds, .sc.nds y .ds.gba, aunque en realidad, se salta el cargador de las ultimas versiones y utiliza la cabecera de fichero .nds de dichos ejecutables (hace un scaneo para detectar una cadena de texto que sirve de referencia)

Tiene una capacidad para cargar ficheros en RAM de 2MB, aunque no debeis de olvidar que este fichero no se puede leer como ROM,por lo que si quereis utilizar un filesystem, deberiais buscar vuestros datos en la RAM.

Cuando los datos son cargados, la aplicacion de la DS envia un comando al server para que cierre la aplicacion, asi que no os extrañeis por ello.

El cargador esta pensado para que reinicie registros claves, como WIFI, contadores, dma's , caches, etc, con el fin de evitar al maximo lincompatibilidades. El codigo de ARM7 debe ser cargado en su memoria exclusiva, sin utilizar la memoria de 4MB compartida (tal y como se compila de forma estandar, vamos) ya que esa memoria está en uso por el cargador en el momento de proceder a la carga el ejecutable de ARM7 y el resultado podria ser impredecible.

De momento, no se dispone de la posibilidad de poder resetear la aplicacion mediante una combinacion de botones o algo asi (para no tener que apagar la consola y proceder a cargar la aplicacion desde el browser de nuestro aparatejo) , cosa que se podria hacer mediante una librería de carga en el futuro.

El codigo fuente, lo publicaré cuando complete el trabajo, pues aqui hay muchas cosas implicadas (modificaciones en la libreria de RPC. Multithread, eSound, WIFI,... documentacion..., vamos que hay tela de trabajo)


En fin, aqui os dejo el enlace para que podais probar la beta :) :





EDITADO BETA 1.5:

Añadido soporte WEP de 128 bits y algun cambio menor

Explicacion de lo nuevo aqui:



http://www.elotrolado.net/showthread.php?s=&postid=1705912181#post1705912181

o leete el readme :p

BETA 1.5



OLD 0.1 Beta

OLD 1.0 Beta

OLD 1.1 Beta

OLD 1.2
~@-@~
Marlo Brando
2.463 mensajes
desde ago 2004
Enhorabuena MAESTRO.
LockeCole
MegaAdicto!!!
1.130 mensajes
desde jun 2004
Para aclararnos, es lo mismo que el wifime pero no necesitas tener una tarjeta dedicada a servir a la DS, no?
jandujar
JanduSoft CEO
1.106 mensajes
desde jun 2004
en BCN
EXACTAMENTE.

Y ESTO IMPLICA!!!!

Que los que tengan MAC OS X (en los que espero incluirme en las proximas semanas), ya pueden programar enviando sus aplicaciones directamente!!!
Escapology
MegaAdicto!!!
8.861 mensajes
desde mar 2003
en Elche
Yo no me entero.

Yo tengo un router, tengo una tarjeta de red inalambrica, tengo una DS sin modificar...

¿A mi no me sirve para enviar demos y aplicaciones?
jandujar
JanduSoft CEO
1.106 mensajes
desde jun 2004
en BCN
Si tienes un cartucho para cargar homebrew -> SI (solo demos y homebrew, no juegos comerciales)

Imagina que tienes una supercard.

Ejecutas en la supercard el fichero nds que adjunta hermes, en el pc el ejecutable y le dices que quieres cargar la demo del polarium.
El programa envia la demo a la DS por TCP/IP -> mediante wifi a tu router. Y lo ejecuta.
chesko
Adicto
372 mensajes
desde jun 2006
en Madrid
programa realmente util para desarrolladores! yo hasta ahora subia las cosas a la ds con el dsftp pero esto parece que sera mas comodo :)
Muchas gracias.
CalvinWatterson
MegaAdicto!!!
1.166 mensajes
desde dic 2005
en Bilbao
Una pregunta de torpe... este programa puede sustituir al wifime para flashear la ds?

Es decir, es exactamente igual en todo al wifime excepto por no necesitar una ralink con drivers especificos?

PD Sea asi o no, felicidades al programador por este soft, yo tego un mac y eso de los drivers me mataba...
toruzz
Srsly guise
969 mensajes
desde oct 2004
en Madrid
¡Wow! Felicidades tío.
Sería verdaderamente útil integrarlo en los firmware's de los flash carts...
(y no miro a nadie xD)
vkno
Habitual
82 mensajes
desde abr 2003
en Vallekas
y sirve tb para cargar roms sin necesidad de meterlas a la flash?? seria un pountazo jugar por wifi tipo conexion usb de la psp xDD
1, 2, 3, 4, 511