[DS] Inició en el desarrollo para NDS

1, 2, 3, 4
umm no tengo ni idea pero intentalo con el paint de guindous que de momento nunca me a dao problemas. Por cierto has tenido en cuenta que el bmp tiene que estar a 256 colores¿?¿?¿?

Edito: He descargado el bmp que has puesto de prueva y esta a 24 bits tienes que guardarlo en modo 256 colores o 16 colores
Ya, al momento me di cuenta xD

Ya está arreglado aunque ahora no me sale bien una vez puesto en el código, se me ve toda la pantalla rosa... Usando los bmp de los ejemplos de Aarog me va bien pero ahora nada...
A ver si te sirve con ésto que cogí de Crazy Lords:

-Abrimos nuestro software de retoque fotografico con la imagen, la salvamos como GIF.

-Abrimos de nuevo el Paint y volvemos a salvar la imagen como BMP de 256 colores.

A mi me pasaba lo mismo que a ti, y con éso me coje el color transparente ;D.

Un saludo, Nekete.
Na, me sigue saliendo rosita el fondo en vez de transparente [decaio]
Al pasarlo a GIF, hay que fijar los colores que serán transparentes y grabar ;D (no sé si es lo que te falla, pero yo lo he hecho así con tu imagen).

Un saludo, Nekete.

Adjuntos

[La extensión bmp ha sido desactivada y no se mostrará en adelante]
Se puede programar para NDS con un mac(o linux)? es que el PA_lib ese viene con un .bat para instalar...

Un saludo.
Claro que se puede Fox, de hecho para el desarrollo en Windows se emplea un minientorno Unix, el msys con los comandos make, ar, etc. tanto con las libnds como con las PA_lib son ficheros de cabecera y fuente, con el devkitARM compilas el código y sin más. Por si te interesa, el .bat de instalación de las PA_lib lo único que hace es 'make' y luego construir las bibliotecas.

Saludos.
Arreglado el tema de las transparencias :)
¿Alguien sabe bien cómo hacer funcionar el micro de la DS y utilizar luego la información grabada?.

A poder ser con PAlibs, aunque si no es posible usando las nds.

Un saludo y gracias, Nekete.

PD: Aquí os dejo una gualtrapadilla en la que estoy "trabajando" y que es por lo que quería saber como funcionaba el micro y cómo se almacena lo grabado.
Hum... sabéis si hay alguna limitación en cuanto al tamaño de los sprites que no puedan ser mayores de 64X64 ?
Es que bueno, quería insertar un árbol y el tamaño 128X163 me salía un warning como que no el alto no era múltiplo de 8, hice ese mismo árbol a 160X160 y tampoco lo quiso, y lo mismo a 128X128... :( lo curioso es que un fondo a 256X256 si que se lo traga, aunque claro, es otra cosa... ¿soy el único al que le pasa? ¿alguna idea?
Según he leido, lo que se tiende a hacer es partir los dibujos en tantos trozos como sea necesario. En tu caso, serían 2 sprites de 64x64 ;).

Hay un modo llamado "double", pero que no te lleve a engaños porque no permite meter sprites de 128x128, es para que al rotar el sprite no quede cortado por algún lado.

----------------------
#define PA_SetSpriteDblsize (
screen,
obj,
dblsize)
PA_obj[screen][obj].atr0 = (PA_obj[screen][obj].atr0 & ALL_BUT(DBLSIZE)) + ((dblsize) << 9)

Enable or disable double size for a given sprite

Parameters:
screen Chose de screen (0 or 1)
obj Object number in the sprite system
dblsize 1 to enable doublesize, 0 to disable it...
----------------------

Un saludo, Nekete.
Mmmm ¿hay 'algo' que permita decirle que si mi personaje toca tal sprite, que no pueda seguir avanzando? o tendria que decirle simplemente que al llegar a tal coordenada no puede avanzar? es que este último método no me acaba de gustar, a la hora de hacer esto tengo demasiado en mente el mítico rpg maker XD

He probado un par de parámetros de la función PA_CreateSpriteEx(0,2,(void*)trondo_Bitmap,OBJ_SIZE_32X32,1,0,*,0,0,0,*,0,120,32);
El primer asterisco, que si mal no recuerdo el nombre era algo asi como obj_mod puede tener valor de 0, 1, 2, (noseke, transparent y window), pero de momento no funciona (además que no sé si es eso lo que a mi me interesa), y el segundo asterisco es sobre que capa situamos el sprite, pero si estan en la misma capa objeto y personaje el personaje pasa por encima, si el valor del personaje es menor este pasará por encima del objeto y si el valor en el sprite del personaje es mayor, entonces pasa por debajo del objeto (lo cual para un árbol de 4 sprites en forma de cuadrado está bien dar esta propiedad a los dos sprites superiores para que el personaje pase por detrás de ellos, pero jugando con esto tampoco he conseguido hacer que colisionen los sprites :(

Aprovecho que no ha habido respuesta para hace alguna consulta más (evidentemente después de empaparme de la documentación de la página de Mollusk). Me he empapado las funciones de Bg's, en el apartado que pone Bg's 0-2 y no he podido hacer que el fondo haga un scroll conforme avanza el personaje.

Y además, y esto he buscado sobretodo en funciones de sprites, aunque igualmente por diversos motivos me lo he mirado todo, no encuentro una manera de hacer eventos que no sean con botones, sino que sean en determinada posicion en la pantalla. ¿Seria con un GetSpriteXY que se ejecutase dentro del bucle y ponerle la condicion?¿Es esto poco profesional y un gasto inutil y horrible de recursos?

En fin, son tres preguntas que me interesan y que para mi bajo nivel (ya lo avisé ^_^) tienen difícil solución, pero espero que alguien que controle más del tema o cualquiera que se haya encontrado que queria hacer alguna de estas cosas pueda ayudarme.
Muchas gracias!
Respecto a las colisiones:
He mirado un poquillo, pero me cuesta encontrar cosas en castellano.
Aquí tienes unos cuantos algoritmos(sin comentar :S).
Y en inglés te puedes jartar a leer, pero encontré ésto que explica cosillas básicas sin un inglés muy complicado. (en los foros de gamedev parace haber muchas cosas, aunque ahora no puedo entretenerme :S).

"Y además, y esto he buscado sobretodo en funciones de sprites, aunque igualmente por diversos motivos me lo he mirado todo, no encuentro una manera de hacer eventos que no sean con botones, sino que sean en determinada posicion en la pantalla. ¿Seria con un GetSpriteXY que se ejecutase dentro del bucle y ponerle la condicion?¿Es esto poco profesional y un gasto inutil y horrible de recursos?". Si te refieres a con el stylus, sí hay una función que permite gestionar "toques" en una zona determinada(x1,y2,x2,y2).

Un saludo, Nekete.

PD:Si alguien se hace con cómo funciona el sonido, que me diga algo porfavor :,,(. Tengo un proyectito parado por éso.
Reservé memoria, hice un puntero que apuntaba a élla y luego grabé en esa zona con la función de PA_lib hasta desde que se pulsa un botón hasta que se suelta. ¿Hay que hacer algo más tipo gestor de tiempo o algo?.

Cenkiu!

PD2: Mira también alguno de los juegos/demos de aquí a ver si encuentras alguna "idea feliz" ;D
Bueno, gracias por la información en tu respuesta, aunque estos días estuve liado y ni lo probé ni respondí. En cuanto al audio a ver si te sirve esto http://teamnnc.free.fr/phpBB2/viewtopic.php?t=3 , a mi me daba un error al compilar creo, lo probé antes de este parón.
Saludos y suerte :D
Funciona algun emulador de la DS en linux?Es para no tener que ir metiendo en la SD de la SC el .nds generado para probarlo :(
Saludos!![bye]
no es lo que pides pero te remito a la respuesta de jandujar en este hilo: http://www.elotrolado.net/showthread.php?s=&postid=1703393996#post1703393996
por si te sirve de algo
regalado escribió:no es lo que pides pero te remito a la respuesta de jandujar en este hilo: http://www.elotrolado.net/showthread.php?s=&postid=1703393996#post1703393996
por si te sirve de algo

No tengo la tarjeta wireles todavia,asi que no voy a poder seguir eso :(
Pero muchas gracias por la info :)
Saludos!![bye]
Joder, ahora estoy desesperado para conseguir un número al azar. He probado la función rand y srand de stdlib.h que es lo que he encontrado en todas las búsquedas que he hecho, eso y esta documentación de las PA_lib que se me antoja muy escasa (ya que no se como aplicarla):
http://palib.pizz.biz/Documentation/eng/group___math.html#ga2

De hecho se ve que esto es una búsqueda pseudo-aleatoria, así que no sirve para mis propósitos, yo quiero un numero al azar de entre un intervalo de valores, pero no que en cada ejecucion los valores al azar salgan en el mismo orden, ya que siempre obtengo como resultado el mismo numero. En fin, siento dar tanto el coñazo pero supongo que alguien habrá necesitado hacer esto y lo habrá logrado, si es así espero que me echen un cable.

Gracias otra vez :)
Saludos, acabo de ver la funcion, y tienes una función que es PA_InitRand(), con esa se supone que coge la semilla generatoria a partir del reloj del sistema con lo que eliminas que se repita la secuencia (no lo he llegado a probar), pero si usas eso ya no puedes usar el srand, porque te cargas la semilla. Y PA_Rand, supongo que te devolvera un float con un valor entre 0 y 1, aqui ya entras en juego tú para regular el rango de aleatorios que estas buscando.
Oh merci! Bueno, después de hacer un montón de pruebas pillé el libro de Kernighan & Ritchie y vi que la solución era mucho más fácil :D
Eso si, intentaré comprender que es eso de la semilla y demás porque aunque no lo he necesitado ahora quien sabe si alguna vez tendré que meterle mano.

Yo necesitaba el valor aleatorio para compararlo con el valor de una variable mia, pues bien, para conseguir este valor con hacer
cpu = PA_Rand();
ya tengo en la variable cpu un valor aleatorio entre 0 y 65535
Saludos, bueno pues lo de la semilla es por el algoritmo que se utiliza en la generación de número como tú dices pseudoaleatorios. Digamos que partes de un número, y a raiz de ese número realizas unas operaciones matematicas, de las cuales el resultado no es predecible, ahi obtienes el número aleatorio. El problema que tienes es que si partes del mismo número generador la secuencia de aleatorios generadas es siempre la misma. Ejemplo: Imágina que utilizamos el dato 8 como semilla si realizamos el algoritmo obtendremos la siguiente secuencia: 8-> 5-7-3-15-1-2-6 ok, el caso es que siempre que usemos esa semilla vamos a obtener esa secuencia. Por eso esta la funcion del inicializador del random. Esa función lo que hace es coger la hora del sistema, convertirla a un valor númerico y usarla de semilla, de esa forma te aseguras que cada vez que ejecutes tú generador de aleatorios nunca obtengas la misma secuencia ya que nunca tendras la misma semilla. Espero que te haya quedado más claro.

En otro orden de cosas, ayer Mollusk saco una nueva revisión de las PA_Lib , la version 0.63a. El caso es que instalarlas se instalan perfectamente pero al compilar los programas que hacen uso de la libreria da un error :
main.cpp
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h: In function 'void PA_LoadGif(bool, void*)':
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error: invalid conversion from 'void*' to 'const u8*'
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error:   initializing argument 1 of 'int DecodeGif(const u8*, u8 (*)[256], u16*, s16*, s16*)'
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error: invalid conversion from 'void*' to 'u8 (*)[256]'
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error:   initializing argument 2 of 'int DecodeGif(const u8*, u8 (*)[256], u16*, s16*, s16*)'
make[2]: *** [main.o] Error 1
make[1]: *** [build] Error 2

Le pasa a alguien más o soy el unico
Psyk0Killer escribió:Saludos, bueno pues lo de la semilla es por el algoritmo que se utiliza en la generación de número como tú dices pseudoaleatorios. Digamos que partes de un número, y a raiz de ese número realizas unas operaciones matematicas, de las cuales el resultado no es predecible, ahi obtienes el número aleatorio. El problema que tienes es que si partes del mismo número generador la secuencia de aleatorios generadas es siempre la misma. Ejemplo: Imágina que utilizamos el dato 8 como semilla si realizamos el algoritmo obtendremos la siguiente secuencia: 8-> 5-7-3-15-1-2-6 ok, el caso es que siempre que usemos esa semilla vamos a obtener esa secuencia. Por eso esta la funcion del inicializador del random. Esa función lo que hace es coger la hora del sistema, convertirla a un valor númerico y usarla de semilla, de esa forma te aseguras que cada vez que ejecutes tú generador de aleatorios nunca obtengas la misma secuencia ya que nunca tendras la misma semilla. Espero que te haya quedado más claro.

En otro orden de cosas, ayer Mollusk saco una nueva revisión de las PA_Lib , la version 0.63a. El caso es que instalarlas se instalan perfectamente pero al compilar los programas que hacen uso de la libreria da un error :
main.cpp
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h: In function 'void PA_LoadGif(bool, void*)':
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error: invalid conversion from 'void*' to 'const u8*'
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error:   initializing argument 1 of 'int DecodeGif(const u8*, u8 (*)[256], u16*, s16*, s16*)'
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error: invalid conversion from 'void*' to 'u8 (*)[256]'
C:/devkitpro/palib/include/NDS/arm9/PA_Gif.h:19: error:   initializing argument 2 of 'int DecodeGif(const u8*, u8 (*)[256], u16*, s16*, s16*)'
make[2]: *** [main.o] Error 1
make[1]: *** [build] Error 2

Le pasa a alguien más o soy el unico


Desgraciadamente no eres el único, llevo desde el viernes queriendo compilar para probar mi juego con sonido y los controles ya implementados, y no hay narices, antes era un error de los sprites, ahora es con los gif :(

PD: librerias SDL y DOS portados por GPF para Nintendo DS!!
Perdonad, estoy haciendo unas clases para un juego.
El caso es que en el devcpp traga, pero al pasarlo por el gcc dice que está erróneo.
¿Hay alguna cosa especialita para clases en gcc?.

Un saludo, Nekete.
Buenas, creo que te he contestado en los foros de Mollusk, pero te lo cuento tambien aqui. En el proyecto que estoy realizando, por hacerlo más organizado quise tambien hacerlo por clases, y me daba errores al compilarlas. Así que creo que no admite la creacion de clases.

En otro orden de cosas estoy teniendo problemas con las funciones del PAD, no me funcionan correctamente. A todo el mundo le va lo de:
Pad.Newpress , Pad.Held y Pad.Release, porque de las direcciones la única que me hace caso es mover hacia la derecha.
A mi me va en cualquier dirección, aunque eso si, siempre uso Pad.Held
Buenas creo que a mi no me va porque uso archivos en .cpp , he hecho las probatinas con el codigo que viene en .c y funciona bien. Sin ir más lejos la función PA_SpriteTouched no me funciona codficando para C++ y va bien en C, pero si readapto mi codigo a C me salen varios errores y warning. Unos warnings son referentes a los archivos gráficos (El fondo, los sprites, logos, etc...) estos warning hacen referencia a que con la herramienta Gfx2gba, me genera los archivos map.c, raw.c y pal.c pero me añade la palabra extern en las declaraciones, ese warning tiene facil arreglo, le quito la palabra y compila bien. Pero este error no lo se corregir:
FigurasB.raw.o:(.rodata+0x0): multiple definition of `FigurasB_Bitmap'
DIOOOOooosss soy lo peor XD.
Para que tiren clases sólo hay que guardar tus archivos como ".cpp" y no como ".c".

Psyk0Killer pruébalo y me cuentas, a mi me va :,D!!!!

Qué alegría más grande je je je [sonrisa]
Saludos Nekete, pues te cuento yo tenia los archivos en cpp y ni aun asi me compilaba, pero puede que fuese algun error al escribir la interfaz, ya que lo hacia así:

#ifndef __Clase_h

class Clase{
variables....
public:
metodos...
}

#define __Clase_h
#endif


Bueno el caso que estoy cambiando todos mis archivos a .C . Porque las funciones que llevan las Palib no trabajan para mi. Por ejemplo la de PA_SpriteTouched, no hace ni papa. y las del Pad no me va ( y no me veas yo como un gilipollas dandole que te pego y más mosqueado porque le daba a las flechas y no se movia). El problema que ahora me sale un error muy raro, no al compilar sino al realizar el linkado:

linking MiProyec.arm7.elf
built ... MiProyec.arm7
make[1]: Leaving directory `/c/Practicas/Nds/MiProyec/arm7'
make -C arm9
make[1]: Entering directory `/c/Practicas/Nds/MiProyec/arm9'
Tablero.c
main.c
linking MiProyec.arm9.elf
c:/devkitPro/PAlib/lib\libpa9.a(PA.o): In function `PA_VueKeys':
c:/devkitPro/PAlib/lib/arm9/PA/PA_3D.c:32: undefined reference to `sin'
c:/devkitPro/PAlib/lib/arm9/PA/PA_3D.c:33: undefined reference to `cos'
c:/devkitPro/PAlib/lib/arm9/PA/PA_3D.c:34: undefined reference to `tan'
make[2]: *** [/c/Practicas/Nds/MiProyec/arm9/MiProyec.arm9.elf] Error 1
make[1]: *** [build] Error 2
make[1]: Leaving directory `/c/Practicas/Nds/MiProyec/arm9'
make: *** [arm9/MiProyec.elf] Error 2
¿Qué versión de las PAlibs usas?
Estoy usando la version 0.64b, pero ya he descubierto que se trata de mi makefile. Porque he usado el template suministrador por la ultima version de las PALib y me ha generado sin problemas el archivo .nds
A ver si consigo hacerme uno correctamente. El problema es que por lo que veo en las palib usan un binario para el arm7 ya generado, por lo que solo generan el arm9, pero en mi codigo tengo mi propio source para el arm7. Pero bueno estoy contento porque lo he probado y por fin funciona el PA_SpriteTouched.
A ver si te funciona y sacas algo para probarlo en nuestras DS :D

Un saludo, Nekete.

PD:Me ha picado la curiosidad, ¿qué estás haciendo?
De momento prefiero mantenerlo en secreto, más que nada por no crear ilusiones, pero cuando lo tenga avanzado prometo publicarlo.
No sé si hay alguien que esté programando con objetos aparte de Psyk0killer, pero tengo un problema al compilar y según he visto en este tutorial es en tiempo de enlazado(aunque no estoy seguro).

Tengo un archivo "carga_imagenes.h" en el que pongo todos los includes de las imagenes que tengo que cargar para luego hacerle la llamada. ej:


////////////// carga_imagenes.h ////////////////
#ifndef carga_imagenes_h

#include "imagenes/paleta.pal.c"
#include "imagenes/img1.raw.c"
#include "imagenes/img2.raw.c"
.....

#define carga_imagenes_h
#endif

El caso es que aunque tenga las #ifndef, me da un error por hacer repetidos includes de paleta e imágenes(paleta.pal.c e img1.raw.c del ejemplo).


No sé dónde está el error, pues aunque he mirado los man de g++, el make es el que venía en el template de las PALib y es un tanto enrevesado.
Lo que ejecuta el make es:
arm-elf-g++ -g -mthumb-interwork -mno-fpu -O -L/c/devkitPro//PAlib/lib -specs=ds_arm9.specs main.o nave.o pieza.o -LC:/devkitpro/palib/lib -lpa9 -L/c/devkitPro//libnds/lib -lnds9 -o build.elf

y el error que me muestra por pantalla es:

nave.o: In function `nave':
c:/devkitPro/proyectos/PAlibTemplate/source/nave.cpp:4: multiple definition of `arma2_Bitmap'
main.o:c:/devkitPro/proyectos/PAlibTemplate/source/main.cpp:10: first defined here
nave.o:(.rodata+0x100): multiple definition of `arma1_Bitmap'
main.o:(.rodata+0x100): first defined here
nave.o:(.rodata+0x200): multiple definition of `armas_Palette'
main.o:(.rodata+0x200): first defined here
pieza.o: In function `pieza':

Que según he leido es el típico error por no poner las #ifndef.

¿Sabe alguien cómo subsanarlo?.

Un saludo, Nekete.

PD: Pelín espeso el post [reojillo]


EDIT:
Postee en los foros de mollusk y con su consejo lo conseguí hacer funcionar, ha quedado así:


Probé la de Mollusc y.. sí :D

Lo que había que hacer era:

////////////////CARGA_IMAGENES.H//////////////////////
#ifndef carga_imagenes_h

extern const unsigned char arma1_Bitmap[256] __attribute__ ((aligned (4)));
extern const unsigned char arma2_Bitmap[256] __attribute__ ((aligned (4)));
extern const unsigned short armas_Palette[256] __attribute__ ((aligned (4)));
#define carga_imagenes_h = 1
#endif

////////////////CARGA_IMAGENES.CPP//////////////////////
#ifndef carga_imagenes_h

#include "imagenes/armas/armas.pal.c"
#include "imagenes/armas/arma1.raw.c"
#include "imagenes/armas/arma2.raw.c"

#define carga_imagenes_h = 1
#endif



Un saludo, Nekete.
Nekete escribió:Perdonad, estoy haciendo unas clases para un juego.
El caso es que en el devcpp traga, pero al pasarlo por el gcc dice que está erróneo.
¿Hay alguna cosa especialita para clases en gcc?.

Un saludo, Nekete.


El problema es que gcc compila C. El compilador de C++ es g++.

De todos modos si los archivos son .cpp gcc es muy listo y autoinvoca a g++ :P :P :P
Como estamos, familia?
Soy nuevo en la programación de DS y tengo unas cuantas dudas antes de unirme asiduamente a este foro :)
He bajado el NDS dev env y las Pa_lib.
Que hago ahora? Instalo el NDS dev env y el pa_lib luego, supongo, no?
Y que jerarquia de carpetas tiene un proyecto? es decir, que necesito?
hago una carpeta con el nombre de la aplicacion dentro del NDS dev Env y con el programmer notepad escribo el codigo fuente, no? pero como puedo compilar un juego con el make.exe?
me he bajado tutoriales pero son un poco liosos.
A grandes rasgos, necesito que me expliqueis como empezar y preparar las herramientas.

thnks
Hola!!

He empezado recientemente a programar en la NDS, y la verdad creía que iba a ser más complicado (hablo de PA_libs xD).
Vengo de programar J2ME así que de momento me ha costado dejar de pensar en Java y pensar en C++ xD, pasado ese paso voy ahi ahi.

Bueno que me enrollo, el motivo del post es para preguntar si alguien ha hecho ya un sudoku para la NDS??, por que voy a portar el mio que hice para mi movil S60 (aquí lo podeis ver Phone Sudoku ) y así aprendo bien como se programa en la NDS, pero si alguien ha hecho alguno (hablo de scene española xD) pos no se, a lo mejor me planteaba hacer otra cosa.

Espero opiniones ^^
No existe algun programa tipo "gamemaker" para hacer juegos de DS ??
es con los lenguajes de programacion no soy muy bueno :P
Morpheo17 escribió:Bueno que me enrollo, el motivo del post es para preguntar si alguien ha hecho ya un sudoku para la NDS??



Yo quería hacer uno, pero quería hacerlo bien (generación de puzzles, selección de dificultad, etc...). Pero el tema matemático del sudoku me superaba XD. Pasaba de hacer uno con puzzles prehechos o con puzzles aleatorios sin más.

Si te manejas con el tema matemático del sudoku, hacer uno no tiene que ser muy complejo (graficamente es sencillo, y con saber manejar la táctil y poco más ya lo tienes hecho). Si es el caso, anímate que mucha gente te lo agradecerá.


Taiyou
Sip, ya tenía el tema de generacion de Sudokus aleatorios por dificultad y tal, mirar si vas bien (es una estupidez, pero en fin...). Así que me pondré a ello, aunque ya empece un poco a trastear como pintar imagenes. Lo bueno que com no hay "animaciones" no me tengo que preocupar en fps ni na, solo a tirar de tactil....

Salu2
Morpheo17 escribió:Sip, ya tenía el tema de generacion de Sudokus aleatorios por dificultad y tal, mirar si vas bien (es una estupidez, pero en fin...). Así que me pondré a ello, aunque ya empece un poco a trastear como pintar imagenes. Lo bueno que com no hay "animaciones" no me tengo que preocupar en fps ni na, solo a tirar de tactil....

Salu2


Vaya , esperemos que ta salga bien el sodoku ... se de alguno que le dará buen uso. [angelito]
en nds que lenguaje de programacion se utiliza? [+risas]

gracias [bye]
Como en todas las consolas: C/C++
Hola, hace tiempo me puse con el tema de programacion para la DS y lo deje un poco de lado por la uni. Ahora que ya se acaba el cuatrimestre me quiero volver a enganchar y probar cosas. Cuando comence segui un tutorial que habia en la pagina de Lord Rafa, la pagina se llamaba Crazy Lord DS.

¿Alguien sabe donde esta esta pagina? es que el enlace ya no funciona. Si sabeis de alguna otra pagina buena en español tambien os lo agradeceria ;).

Y una ultima duda, en c o c++ me parece que hay una instruccion que es para que el programa se espere un cierto tiempo antes de ejecutar la siguiente instruccion, ¿sabeis si se puede hacer con las PAlib?, una solucion seria hacer un bucle por ejemplo hasta mil, pero prefiero hacer lo de otra manera si se puede :).

Un saludo y gracias. [bye]
has probado si funciona la función:
void sleep(long milisegundos)


No lo he probado, pero en C existe xD. Si lo pruebas, dinos si funciona. Depsues de los examenes lo pruebo yo si no lo has hecho, que ahora estamos todos liadisimos xD

Salu2
Gracias por la info, en cuanto pueda lo probare. Porque aun tengo que configurar el devkitarm para que me compile y me cree los .nds y .ds.gba que no se porque ahora no tira [buuuaaaa].

Cuando lo pruebe ya dire algo ;)

Un saludo. [bye]
Si llamas al metodo PA_WaitForVBL, tú programa se "pausara", hasta que ocurra la interrupcion Vertical Blank, esta interrupcion si no me equivoco ocurre 60 veces por segundo, así que solo te queda hacer cuentas. Saludos.
También, más fácil como tu dices. Pero se me ocurre, que pasa si tu programa va a menos de 60fps?? imagínate que xq tiene mucho calculo y no puede por ejemplo, o que kieres esperarte solo 5ms, con esa función no sirve. Tiene que poderse dormirse X ms de alguna manera, ya que es muy básico en la programación de videojuegos.
Hola Buenas, la Vertical Blank es una interrupcion, da igual lo que este haciendo tú programa, que internamente se parara, tratara la interrupción y volvera al codigo principal. Respecto a lo de 5ms, eso es ya más complicado, efectivamente esa precisión no se podría conseguir de esta forma, pero te acercarías bastante. Que yo sepa, no existe otra forma de retrasar un programa, si logras descubrir algo, te rogaría compartieses la información con nosotros, gracias. Yo solo conozco:
for(x=0;x<Tiempo;x++){ PA_WaitForVBL(); }
Estoy empezando con las PAlibs ahora que estoy dando C en clase...

El máximo tamaño de un sprite es de 64x64 no? Y si quiero poner un caballo que ocupa por ejemplo 128x64?
Hola a todos.

Ya os comente que queria volver a programar algo para la DS. Pero es que resulta que no puedo compilar nada. Os cuento.
Yo instalo el devkitPRO con el devkitARM, despues me bajo el ultimo PAlib y lo instalo tambien. Me baje unos ejemplos que vienen con el archivos built.bat para compilarlos pero no me funciona [nop]. He creado las variables de entorno, quizas mas incluso de las necesarias, pero me sigue sin funcionar, y creo que podria ser porque no me funcionan del todo bien las variables de entorno.

Si alguien sabe de un tutorial para que lo pueda seguir o algo que me ayude se lo agradecere, llevo toda la tarde del lunes de los nervios sniff sniff.

Bueno, un saludo.
195 respuestas
1, 2, 3, 4