amchacon escribió:Hay muchisimos programas para la ds que cargan imagenes en bmp desde la sd. Algunas aguantan hasta los 24 bits de color sin problemas:
Blue escribió:Buf, es chunguete eso, porque ya digo que cuento las imagenes por miles. Ya no solo sprites si no también tiles y fondos. Por lo que el método paleta queda casi descartado ya que hay tantas imagenes y tantos colores que no se podrían meter en una paleta de 256 colores. La carga de imágenes al vuelo, con la poca potencia de ds y la escasa velocidad de lectura de sd lo hacen casi imposible creo yo. Necesito una sugerencia gorda al respecto ya que mi aplicación carga todo lo necesario para el menú y el juego base, es decir, sprites de el muñeco, las armas, los corazones, las monedas y otros objetos base, coleccionables como llaves y pociones, efectos especiales, cosas así, además de los tiles del nivel, la imagen de fondo, No me es problema usar libnds si tengo las directrices de como hacerlo, es decir como dibujar sprites, dibujar texto, reproducir sonidos y leer la entrada de teclas y táctil. Y ante todo, poder manuipular sprites. Es decir, si tengo un bmp en memoria poder dibujar sobre él.
Blue escribió:el problema de las paletas es que tendría que cambiar de paleta por cada objeto que dibuje, cosa que no me hace nada de gracia. Pero es que convertir todas esas imágenes en paletas es parecido a suicidarse . y 64kb no da para tanta paleta.
Blue escribió:Hay alguna forma de unificar mediante alguna aplicación distintos bmps en una única paleta aunque implique perdidas de color?
Solo tendría la paleta del personaje, la de elementos de pantalla, y 4 para los escenarios en las distintas partes del día. La cuestión es poder hacer todo esto con 4 clicks.
Blue escribió:Este es un ejemplo de un nivel:
Imágenes a calidad 24bits
Tamaño de sprites aproximado: 3,28 MB (3.442.294 bytes) En disco 5,17 MB (5.431.296 bytes)
Tamaño de tiles aproximado:417 KB (427.368 bytes) En disco 508 KB (520.192 bytes)
Tamaño de imagen de fondo: 225 KB (230.454 bytes) En disco 228 KB (233.472 bytes
Otros ficheros:
data (tamaño fijo)
Tamaño de nivel: 16,4 KB (16.800 bytes) En disco 24,0 KB (24.576 bytes)
sonido (diferentes rangos, se pueden reducir de tamaño)
Tamaño de sonidos (creciendo) 921 KB (944.069 bytes) 988 KB (1.011.712 bytes)
Música:
4-8 Mb (wav). Puede pasarse a mp3/ogg
Por no hablar de todas las estructuras que hay que tener en memoria, textos, etcétera.
Ya no hablemos de optimización de código para que se mueva a plena velocidad
typedef struct AnimationNode
{ struct AnimationNode*next;
Animacion* anim;
}AnimationNode;
typedef struct Animacion
{
char speed;
char cantidad;
BitmapNode *nodeFirst;
}Animacion;
typedef struct BitmapNode
{
struct BitmapNode* next;
int hotspotX, hotspotY;
int actionpointX, actionpointY;
Bitmap*picture;
}BitmapNode;
Blue escribió:Voy a hacer una cosa. Cuando llegue a casa crearé una aplicación para DS desde cero y meteré lo que es el código de mi aplicación dentro borrando lo que es toda la carga, solo que cree estructuras vacías, y veré el tamaño de la rom. Si no voy a tener que empezar a quitar cosas, y me gustaría que quedase la aplicación íntegra.
Otra cosa. Hay virtual buffers? Me gustaría tener un buffer de memoria de 320x240 y dibujar en él, para luego reducur el tamaño a la ventana de ds mediante aceleración gráfica. Is it possible?
ANTONIOND escribió:Blue escribió:Voy a hacer una cosa. Cuando llegue a casa crearé una aplicación para DS desde cero y meteré lo que es el código de mi aplicación dentro borrando lo que es toda la carga, solo que cree estructuras vacías, y veré el tamaño de la rom. Si no voy a tener que empezar a quitar cosas, y me gustaría que quedase la aplicación íntegra.
Otra cosa. Hay virtual buffers? Me gustaría tener un buffer de memoria de 320x240 y dibujar en él, para luego reducur el tamaño a la ventana de ds mediante aceleración gráfica. Is it possible?
Te respondo solo a eso, que lo de los numeritos no me hace gracia ahora mismo, jeje.
En 3D -> Matriz ortogonal para 2D -> Escalar pantalla para que 320x240 se ajusten a 256x192
Igual queda mal por el escalado, pero no se me ocurre otra cosa.
Blue escribió:Se le puede añadir un blender para suavizar el zoom? No se que clase de efectos se puede hacer. No es mi primera aplicación con ds, pero no es que entrase mucho en el tema.
ANTONIOND escribió:Bua, lo tienes bastante complicaillo... Primero haz las conversiones a los formatos que usarías ahora a ver si cuadra mejor en los 4 mb de la ds.
amchacon escribió:ANTONIOND escribió:Bua, lo tienes bastante complicaillo... Primero haz las conversiones a los formatos que usarías ahora a ver si cuadra mejor en los 4 mb de la ds.
Primera vez que oigo que la capacidad maxima de un nds es de 4 mb.
Aqui te doy una prueba de lo contrario (este nds ocupa 13 mb):
http://nds.scenebeta.com/noticia/nightfox-colors
PD: lo de los 24 bits ha sido un gran fail, lo reconozco xDDD
ANTONIOND escribió:amchacon escribió:ANTONIOND escribió:Bua, lo tienes bastante complicaillo... Primero haz las conversiones a los formatos que usarías ahora a ver si cuadra mejor en los 4 mb de la ds.
Primera vez que oigo que la capacidad maxima de un nds es de 4 mb.
Aqui te doy una prueba de lo contrario (este nds ocupa 13 mb):
http://nds.scenebeta.com/noticia/nightfox-colors
PD: lo de los 24 bits ha sido un gran fail, lo reconozco xDDD
Segundo fail, yo también he visto juegos de 8 mb y similares.
No he dicho tamaño de la rom, me refería a la ram. Y bueno, EFS y nitrofs y todas las librerías que hacen eso lo único que hacen es "pegar" los archivos extra al nds, el límite de 4 mb sigue ahí, si no tienes acceso al sistema de archivos (fat, también vale la ram del cartucho en los flashcards de slot-2) ya puedes decir misa que no puedes hacer nada con esos archivos "pegados".
Si no, intenta añadir como datos a un nds mas de 4 mb. Es decir, cojes un archivo de mas de 4 mb, ponle de nombre "cosa.bin", lo pones en la carpeta "data", incluyes "cosa_bin.h" y haces alguna operacion... yo que se... int * cosa = cosa_bin; A ver si te deja el compilador. (Instrucciones para un template de libnds, claro)
Blue escribió:Si que uso los 128 sprites. Uso alrededor de 300 por lo que tengo que tirar de opengl. Ahora mismo he convertido todos mis bmps en binarios de 8 bits con paleta.
Alguien puede decirme como se carga la paleta y como se dibuja un sprite cargado? un ejemplo sencillo por favor.
Suikoden77 escribió:(si es que vas a usar palib, aunque dicen que son mejores las libnds)
Blue escribió:...
ANTONIOND escribió:Suikoden77 escribió:(si es que vas a usar palib, aunque dicen que son mejores las libnds)
Es que son mejores...Blue escribió:...
Si eso mañana te hago un ejemplo para cargar una textura o 2 con paleta y mostrarlas en la pantalla usando 3D.
Suikoden77 escribió:las libnds tienen alguna libreria para pasar datos en plan liblobby? en ese caso pasare todo mi proyecto a libnds
Hero Of Time escribió:Veo chungo portar eso a DS.Lo ideal seria que esperes a que avance la scene en DSi, y lo programes para ella, ya que tiene 16 MB de RAM, y el procesador es un poco mas rapido ademas, podria ser el primer juego homebrew que aproveche las capacidades de DSi