PDA

Ver la versión completa : Homebrew que funciona en emulador pero no en la consola?



DarkDijkstra
27/02/2008, 09:44
Buenas, a ver si alguno/a me puede iluminar un poquito...

hace poco me regalaron una DS lite y me puse a trastear con ella, con la ilusa ilusión de siempre de hacer un jueguecillo que tengo en mente desde hace mucho.

La idea es usar la pantalla superior para hacer una representación 3D y la inferior para cosillas variadas (entre ellas pintar una vista superior del mapa 3D. Bien, despues de mucho pegarme, he conseguido pintar arriba un mini-escenario 3D (que se carga de un fichero) con opengl (uso libnds) y abajo, pintar líneas "a pelo" directamente usando el modo bitmap extendido.

Hasta ahi bien, al menos las pruebas en el PC. Todo el "chiringuito" lo tengo montado en gentoo con kde (devkitpro + kdevelop + desmume para probar).

El caso es que las últimas pruebas que hice anoche funcionaban bien sobre el emulador desmume (con la salvedad de que el fondo de la pantalla de opengl no se
pinta en negro, sino en blanco), pero al pasarlo a mi DS no funciona nada.

Me compre la DS supercard ONE (la verdad, no entiendo demasiado en ese tema, y vi en el foro que algunos la recomendabais) sobre todo porque no había que parchear los programas (se auto-parchean sobre la marcha si es necesario, si no me equivoco) y pensé que habría menos problemas en probar mis cosas. Además, como se pueden copiar los ficheros .nds tal cual, sin necesidad de ningún programa, pensé que asi me quitaría problemas con windows, wine o lo que fuese.

Lo curioso es que otras pruebas que he hecho (con opengl tb) si que funcionaban perfectamente en mi DS, asi que no se si será cosa de haber inicializado mal el sistema y subsistema gráfico...

Pues bueno, despues del rollo este, a lo que voy, es si hay que tener alguna consideración especial al copiar las cosas a la Supercard One o no, si hay algo con lo que debería contar, etc etc...

Y ya de paso, si alguien tiene un ratito libre y me hiciese el gran favor de probarlo en su DS (y comentar que tipo de tarjeta tiene), igual me aclararía las cosas... :brindis:

http://www.pollodegomaconpoleaenmedio.net/spr.nds

ahi lo podeis descargar (y no os riais, es una primera prueba muy cutre ; )

saludillos y gracias por adelantado

shashClp
28/02/2008, 00:25
El problema normalmente viene debido a la permisividad del desmume en cuanto al setup de los bancos y a que ignora totalmente si activamos o no el acceso a ciertos puertos. En la DS esto es importante para ahorrar bateria, y al no activarlos ciertas partes. Aparentemente esto no pasa en tu aplicación, ya que parece que si usas el powerON(POWER_ALL); (he debuggeado un poco tu app con el desmume).

Sin el código poco más te puedo ayudar. Si encuentras que falla, comentalo, y lo intentaré corregir, para posteriormente subirlo al CVS oficial del desmume. Asi en el futuro, debuggear con él será mas fácil :P

DarkDijkstra
28/02/2008, 09:46
Al final tras mucho probar y mucho desesperarme, resulta que el problema venía por la iluminación de la escena.
Usando desmume, puedes renderizar polígonos con texturas sin haber definido la iluminación, pero en la consola no se ve nada realmente.



glLight(0, RGB15(31,31,31) , 0, floattov10(-1.0), 0);
glMaterialf(GL_AMBIENT, RGB15(16,16,16));
glMaterialf(GL_DIFFUSE, RGB15(16,16,16));
glMaterialf(GL_SPECULAR, BIT(15) | RGB15(8,8,8));
glMaterialf(GL_EMISSION, RGB15(16,16,16));
glMaterialShinyness();
glPolyFmt(POLY_ALPHA(31) | POLY_CULL_BACK | POLY_FORMAT_LIGHT0)


al final conseguí verlo todo correctamente en mi DS.

Eso si, como comentaba arriba, usando desmume (ahora mismo no recuerdo la versión, pero igual no es la última, hace un tiempecillo que no actualizo mi gentoo, hoy si eso lo miro y te lo confirmo), el fondo de pantalla aparece blanco y usando la consola, negro.

En cuanto a lo de usar powerON(POWER_ALL), ¿no es recomendable?
Supongo que realmente no hace falta habilitar todo, pero bueno, llevo sólo una semana trasteando, suficientes dolores de cabeza me están dando ya los bancos de memoria y tal :loco:

Gracias por la ayuda

shashClp
28/02/2008, 12:13
Al final tras mucho probar y mucho desesperarme, resulta que el problema venía por la iluminación de la escena.
Usando desmume, puedes renderizar polígonos con texturas sin haber definido la iluminación, pero en la consola no se ve nada realmente.

Ok, miraré de compilar la versión de GTK sobre Windows y corrijo en el repositorio oficial en cuanto tenga tiempo, gracias por la información.


Eso si, como comentaba arriba, usando desmume (ahora mismo no recuerdo la versión, pero igual no es la última, hace un tiempecillo que no actualizo mi gentoo, hoy si eso lo miro y te lo confirmo), el fondo de pantalla aparece blanco y usando la consola, negro.

En el build de windows el fondo se ve negro. En principio el port de GTK deberia ser el mismo core 3D, ya que esta basado en el que hice yo para windows, pero a saber... Lo dicho, me lo miro cuando tenga un rato. Si quieres tener bastantes cosillas mas corregidas, coge la ultima version del repositorio oficial (http://sourceforge.net/cvs/?group_id=164579) y compilala tu mismo: he corregido bastantes bugs en el interpretador de CPU y varios bugs medianamente importantes, asi que mejor actualizate :)


En cuanto a lo de usar powerON(POWER_ALL), ¿no es recomendable?
Supongo que realmente no hace falta habilitar todo, pero bueno, llevo sólo una semana trasteando, suficientes dolores de cabeza me están dando ya los bancos de memoria y tal :loco:

De momento no te preocupes mucho por lo del powerON: activalo todo. Ahorrarias un poco de energia desactivando aquello que no uses, pero para desarrollar mejor todo activado. Sobre los bancos, es algo liado, yo tampoco los entiendo mucho :P

DarkDijkstra
28/02/2008, 12:33
La verdad es que acabo de empezar a programar para la DS y en comparación con la GP2X me parece un infierno todo el tema de la memoria de vídeo, el sistema y subsistema gráfico y tal... aunque en el fondo "los infiernos" son lo que más suelen motivar XD

Esta noche en casa actualizaré gentoo a ver que versión es la última, y si no, haré las pruebas con la versión del CVS

Si me van saliendo más cosillas raras en el futuro, las ire comentando