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 ] ( 1876 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2028 )
Día lluvioso en Las Palmas 
Hoy desde la madrugada se ha puesto a llover que da gusto (con aparato eléctrico y todo) y, para colmo de males, la solana de casa no es tan impermeable al agua como el obrero que vino nos hizo hacer creer. Suerte que por estos lares el régimen de lluvias no es muy alto que si no... :-)

Anoche me terminé de leer "Todos los nombres" de José Saramago. El libro promete más de lo que resulta ser al final, pero vale la pena leerlo. Antes de irme a la cama también estuve programando un poco para la Gameboy Advance, probando una modificación que hice del código que posteé ayer para utilizar la técnica del doble buffer para reproducir muestras de cualquier tamaño y no limitadas a 65535 bytes. Por lo pronto la cosa no rula y pega unos chasquidos la consola que dan gusto :-D. Todo se andará.

A la espera que mi querido amigo anónimo "Mel Lamam.es" escriba algún comentario jocoso acerca de mis gustos literarios, me despido :-)

[ 1 comentario ] ( 1839 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1978 )
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 ] ( 2535 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2012 )
Camiseta MSX :-) 

¡A que está guapa la camiseta que me hice ayer con el logo del MSX! 8-) jejeje, ahora si que soy un auténtico retro-man... xD

[ 3 comentarios ] ( 2119 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1868 )
XML/XSLT 
No, no se me han trabado los dedos en el teclado :-D. Es que hace poco descubrí las hojas de estilo para transformación de XML (también conocidas como XSLT) y todo el potencial que tienen. Se pueden utilizar para implementar pequeñas rutinas que se ejecutan en el navegador y que permiten realizar cálculos e interpretar la propia estructura XML del documento raiz para convertirlo en un fichero de texto, en una página web o lo que te venga en gana (en Gallery of Stupid XSL and XSLT Tricks hay un buen popurrí de ejemplos).

En la sección "soft" he añadido algunos enlaces interesantes y dos ejemplillos hechos por mi y que funcionan directamente en el navegador.

Me encanta este lenguaje 8-)

[ añadir comentario ] ( 1358 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 1978 )

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