Nuevas cositas para la GBA 
En la sección "gameboy advance" he añadido el fichero mode4font.tar.gz que es un ejemplo de uso de fuentes de caracteres 8x8 en el modo gráfico 4 (240x160 a 256 colores) de la Gameboy Advance. El fichero main.c incluye la función

puts(int x, int y, u8 color, char *s)

que permite escribir una cadena de texto en la pantalla en modo gráfico 4. La fuente la convertí a mano usando el GIMP con una fuente gratuita de las que hay a millones por internet y luego convertí la imagen plana a formato .h de 1 bit (fichero 8x8font.h). Aquí tienen una captura de la ejecución del ejemplo en el emulador de Gameboy Advance, VisualBoyAdvance:



Por lo pronto sólo soporta caracteres ASCII (nada de acentos ni nada de eso), a ver si con el tiempo le pongo soporte para ISO 8859-15 o un subconjunto de UTF-8. Bueno, por hoy la cosa ya está bien. A dormir :-)

[ 2 comentarios ] ( 1836 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1752 )
Algunos cambios en la sección Gameboy Advance 
He hecho la sección "gameboy advance" bilingüe y he añadido un nuevo ejemplo al apartado de gráficos: Un pequeño programa que muestra cómo se accede a la memoria de video de la Gameboy Advance en el modo gráfico 4 (240x160 a 256 colores), tanto a la memoria de pantalla como a la memoria de la paleta (mode4.tar.gz).

Además, el conversor de ficheros de imagen a ficheros .H para Gameboy Advance, el HGenerator, ahora soporta imágenes RGB (no indexadas) generando como salida, en esos casos, un array de enteros de 16 bits con la información RGB de cada pixel en formato RGB 5-5-5, compatible con el modo gráfico 3 de la GBA. Si la imagen de entrada es de 256 colores indexada funciona como hasta ahora, esto es; vuelca la paleta y los datos en arrays separados.

Ahora a cenar... ;-)

[ añadir comentario ] ( 1170 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1990 )
Implementación de un doble buffer de sonido en la Gameboy Advance 
¡Lo conseguí! :-) Anoche me di cuenta del error lamentable que estaba cometiendo en algunas líneas de código al tratar un array de bytes con signo como si fuese un array de enteros de 32 bits sin signo (chiquita diferencia). El caso es que el fichero directsound.tar.gz que hay ahora para bajarse ya tiene el main.c adaptado para doble buffer.

El ejemplo sigue siendo el mismo, pero en lugar de reservar un buffer DMA del tamaño del sample completo, lo reserva siempre de un mismo tamaño, pequeño y potencia de dos. Controlando el desbordamiento de cada una de las mitades del buffer podemos reproducir de forma continuada o, lo que es lo mismo, reproducir muestras de longitud arbitraria.

Sección "gameboy advance" del menú de la izquierda.

[ 1 comentario ] ( 1734 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1842 )
Algunas cosillas para programar la Gameboy Advance 
En la sección "gameboy advance" he añadido algunas cosillas nuevas:

bin2o.cpp - Una pequeña utilidad que permite convertir cualquier fichero binario en formato ELF object file de tal manera que, enlazándolo con la aplicación principal podemos acceder a los datos de ese fichero mediante una variable extern. La utilidad es de DarkFader y le he cambiado algunas líneas de código para que compile perfectamente en Linux.

directsound.tar.gz - Una pequeña aplicación hecha en C que reproduce una muestra en la Gameboy Advance tanto en modo DMA como en modo interrupción. Es de cosecha propia, aunque está basada en el tutorial de Belogic para programar el chip de sonido de la GBA. El tar.gz incluye ya una imagen ROM directsound.gba del programa compilado para que la puedas ejecutar directamente en un emulador (i.e. VisualBoyAdvance).

Pues eso, que ya estás tardando en bajarte los ficheros y ponerte a practicar :-)

[ 2 comentarios ] ( 2394 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1820 )
Plugin de exportación de ficheros .h para Tiled 
Hace algunos días comentaba por estos lares que estaba echándole un vistazo a unos programas de edición de gráficos basados en baldosas. Al final el que más me gustó fue Tiled (http://tiled.rpgdx.net), por su sencillez y por lo fácil que resultaba implementar plugins para él.

Tan fácil es hacer plugins para Tiled que hasta yo he hecho uno que permite exportar el mapa a formato cabecera de código fuente de C (.h). Por lo pronto el plugin es sólo de salida (sólo exporta, no importa) y sólo escribe la información del mapa en sí. Los datos de las baldosas (sus pixels) no son guardados aún (todo se andará, aunque ese trabajo ahora mismo lo hace el HGenerator que también lo puedes pillar en esta web :-) ).

Pásate por la sección "gameboy advance" del menú de la izquierda, en la que también he actualizado el HGenerator para que el usuario pueda elegir el nombre de la variable que se generará con los datos de la imagen.

[ 1 comentario ] ( 1329 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1836 )

<< <Anterior | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | Siguiente> >>