Control de usuario
Patrocinadores
Estadísticas
Miembros:
150.737
Online:
901
Hilos:
848.263
Mensajes:
11.640.538
Stats

Índice de foros NDS Scene

[Programación en NDS][Recopilación de tutoriales Palib y Voc

Foro dedicado a las aplicaciones y hardware de la scene (no flash carts)

Moderadores: The Sabbat, eGladiator

judelco
Avatar de usuario
General Error!!!
 
Mensajes: 1258
Registrado: 21 Jun 2007
Ubicación: En un sobre lololol

Mensajepor judelco 13 Abr 2008 22:26

Kratos Studio escribió:ok [oki] , sabeis alguno como conectarse con wifi a internet en PAlib?


Hay me has pillado...... [carcajad]

No :-(
PALIB-> The Legend of Zelda: The Six Sages (DS)

Imagen

Kratos Studio
Avatar de usuario
Habitual
 
Mensajes: 63
Registrado: 12 Abr 2008
Ubicación: España

Mensajepor Kratos Studio 13 Abr 2008 23:41

Es que estoy creando un mini OS y quiero poner la opcion de conectarse a internet pero necesito como base saber conectarse wifi.
Esta firma ha sido modificada porque incumplía la normativa sobre utilización de firmas.

Plata
Avatar de usuario
#include"...
 
Mensajes: 748
Registrado: 27 Dic 2006
Ubicación: Debajo de un puente

Mensajepor Plata 14 Abr 2008 20:52

Bueno, ya siento que espereis por el tuto (en realidad no xD) pero ahora ando liado con wii. De todas formas intentare tener el siguiente pronto.

salu2
Esta firma ha sido modificada porque incumplía la normativa sobre utilización de firmas.

Kratos Studio
Avatar de usuario
Habitual
 
Mensajes: 63
Registrado: 12 Abr 2008
Ubicación: España

Mensajepor Kratos Studio 14 Abr 2008 20:58

no pasa nada Plata, por cierto sabes como adivinar las coordenadas x e y? quiero decir que como consigo dar con el punto exacto que yo quiero? probando a ojo?
Esta firma ha sido modificada porque incumplía la normativa sobre utilización de firmas.

Plata
Avatar de usuario
#include"...
 
Mensajes: 748
Registrado: 27 Dic 2006
Ubicación: Debajo de un puente

Mensajepor Plata 18 Abr 2008 15:58

Ya te he respondido por mp (es algo que he contestado mucho...) xD
Esta firma ha sido modificada porque incumplía la normativa sobre utilización de firmas.

alexpowerup
Avatar de usuario
Adicto
 
Mensajes: 268
Registrado: 22 Sep 2007
Ubicación: En un restaurante del inf

Mensajepor alexpowerup 10 May 2008 11:51

En el primer post del hilo falta poner la URL del tutorial 9 ._.
ImagenImagen

judelco
Avatar de usuario
General Error!!!
 
Mensajes: 1258
Registrado: 21 Jun 2007
Ubicación: En un sobre lololol

Re:

Mensajepor judelco 10 May 2008 12:53

alexpowerup escribió:En el primer post del hilo falta poner la URL del tutorial 9 ._.


Yo también lo ví, pero me daba cosa decirlo... xD

Ya que posteo aprovecho y digo tambien que el TITULO del hilo le faltan letras (... "voc" -> ... vocABULARIO)
PALIB-> The Legend of Zelda: The Six Sages (DS)

Imagen

Paco20011
Avatar de usuario
Adicto
 
Mensajes: 225
Registrado: 23 May 2003

Mensajepor Paco20011 12 May 2008 23:39

Yo estoy creando un juego (o al menos lo intento) para la DS con conexión Wifi a internet (en concreto a un servidor con PHP). Así que me he pegado con la madre del cordero y su abuela por la cantidad de cosas raras que me han pasado.

Os dejo el código básico para conectarse a la Wifi, que por cierto vienen en los ejemplos de PaLib (esa misteriosa carpeta que se llama "PAlibExamples"). La forma más sencilla y básicota, que puede dar algunos fallos (a mí me funciona bien) es:

Código: Seleccionar todo
PA_InitWifi(); //Inicio las librerias Wifi
char *response = (char *) malloc(1000); //aquí guardo la respuesta

if (PA_ConnectWifiWFC()) {  //Arranco el Wifi, aquí la DS empieza a parpadear
       char url[256];      
      sprintf(url, "http://www.miserver.php?variable=valor");
      PA_GetHTTP(response,url);   
}

Wifi_DisconnectAP(); //cuando he terminado desconecto del servidor al que me he enchufado (www.miserver.php)
Wifi_DisableWifi(); //y apago el Wifi

PA_OutputText(0,1,1,response); //imprimo la respuesta del servidor


Eso es lo básico. Luego hay unas funciones que en teoría hacen los GET mucho mejor y sin tantos problemas, pero como a mí no me daba problema alguno el getHTTP pues lo he usado. Estas las he modificado algo yo, pero se basan en el ejemplo Leaderboard de Palib también. Dichas funciones son las siguientes:

Código: Seleccionar todo
int sendMsg(char *buffer, char *url) {
   int sock;
   char server[256];
   char buffer3[256];         
   int pos = httpServer(server,url);
   
   PA_InitSocket(&sock,server,80,PA_NONBLOCKING_TCP);   
   char buffer2[256];
   sprintf(buffer2, "GET %s HTTP/1.0\r\nhost: %s\r\nAccept: */*\r\n\r\n",url+pos,server);
   send(sock,buffer2,256,0);
   strcpy(buffer,"");

   while(buscarPalabra(buffer3,"\r\n\r\n",0) == -1) {
      if (Pad.Newpress.Start) break;
      memset(buffer3,0,sizeof(buffer3));
      recv(sock,buffer3,256,0);
   }
   int poshtml = buscarPalabra(buffer3,"\r\n\r\n",0)+4;
   strcat(buffer,buffer3+poshtml);
   while(1) {
      if (Pad.Newpress.Start) break;
      memset(buffer3,0,sizeof(buffer3));
      if(recv(sock,buffer3,256,0)<1) break;
      strcat(buffer,buffer3);
   }
   if(sock) closesocket(sock);
   return 1;
}

int httpServer(char *buffer, char *buffer2) {
    int i,depart=0;
    if(buscarPalabra(buffer2,"http://",0)!=-1)
       depart+=7;
    for(i = depart; buffer2[i] != '\0' && buffer2[i] != '/' && buffer2[i] != '\\'; i++) {
          buffer[i-depart]=buffer2[i];
    }
    buffer[i-depart]='\0';
return i;
}

int buscarPalabra(char *mot1, char *mot2, int depart) {
   unsigned int i,j,erreur=1;
   for(i=depart;i<strlen(mot1);i++) {   
      if(mot1[i]==mot2[0]) {
         erreur=0;               
         for(j=0;j<strlen(mot2);j++) {
            if(mot2[j]!=mot1[i+j])
               erreur=1;
         }               
         if(erreur==0)   return i;
      }
   }
   return -1;
}


Estas en teoría son mejores por varias cosas. Eliminan las cabeceras de la respuesta del servidor (cabeceras HTML), que por lo general no te vuelven con el GetHTTP tampoco pero a veces se puede colar alguna cosa por ahí (nunca me ha pasado). Y además te permite cortar de cuajo el intento de conexión pulsando el botón Start. Pero bueno, que esto según necesidades.

Yo tras pegarme durante semanas con todo, encontré muchas cosas que me fallaban y las pude solventar prácticamente todas y al final me funcionaba igual de bien con el GetHTTP que con estas funciones, así que por no meter tanto código uso el getHTTP. Ahora el único problema que tengo es que la DS se cuelga aleatoriamente al conectar a la Wifi, pero a otros no les pasa por lo que creo que es cosa de la configuración de mi router. Si puedo lo miraré.

Intentaré leerme este hilo a menudo (y el foro de homebrew) para resolver dudas, que ya que me he tirado de los pelos resolviendo chorradas (chorradas que no se encuentran fácilmente) pues que al menos sirva para que al resto no le pase lo mismo.


PD: si alguien recibe caracteres vacíos (al imprimir la respuesta del servidor aparecen caracteres vacíos por ahí) ya descubrí lo que es, tras muuucho tiempo. Es un carácter de control, el número ASCII 1. Por lo tanto hay que borrarlos. Para ver el ASCII de un caracter -> (int)c. Ese ASCII debe ser >31 para que se corresponda con un caracter del teclado (los anteriores son caracteres de control).

PD2: también he hehco un programilla de DS que se conecta a un ordenador que tiene corriendo un servidor en Java, puedo poner un tutorial de esto también (tanto del servidor Java como del de DS).

PD3: cuando tenga mi juego terminado y pase a fase de pruebas lo pondré en el foro para que lo podáis probar y ponerme a parir por ser cutre xDDD (os mato :P). Espero que no me surjan problemas insalvables y pueda terminarlo. Por cierto, se llama Anime Quest.

Rigle
Avatar de usuario
Traductor del TWEWY
 
Mensajes: 1579
Registrado: 10 Nov 2007
Ubicación: En Shibuya >.<

Mensajepor Rigle 13 May 2008 23:26

plata ,a ver si pones nuestra recopilacion de nuestros homebrews , que tienen el source para aprender [sonrisa] [sonrisa] [sonrisa]

Keorke
Avatar de usuario
Novato
 
Mensajes: 10
Registrado: 27 Ene 2007
Ubicación: GT

Mensajepor Keorke 17 May 2008 20:09

[oki] Genial ...

Muy grandico tutorial y esta explicado a [TODO BIEN]

Gracias...

PrevioSiguiente

Volver a Scene

¿Quién está conectado?

Usuarios navegando por este foro: No hay usuarios registrados visitando el foro y 1 invitado