Con fiebre y jugando con la Gameboy Advance 
Pues eso, desde esta mañana estoy con una gripe de esas matadoras a tope :-(. No sé si mañana podré ir a la oficina. El caso es que aproveché el estar en casa para coger el juegazo que estoy haciendo, el MatchIt, y probarlo en una Gameboy Advance física (la mía). Fíjense si me flipé que grabé un video y todo para inmortalizar el histórico evento... xD.

Pásense por la sección "gameboy advance" y vayan a la subsección "juegos". El vídeo está en formato MPEG-4 y el mplayer de Linux lo visualiza sin problemas. Está a una resolución bastante cutre ya que me tenido que conformar con la opción de vídeo de la cámara fotográfica :-).

Bueno, pues eso, pa que le puedan echar un vistazo aquellos que no tengan tiempo de bajarse el emulador VisualBoyAdvance. Por cierto utilizo un cartucho Flash F2A Ultra de 256 Mbit y la utilidad if2a para pasar las ROMs por USB del PC a la GBA en Linux.

[ añadir comentario ] ( 1428 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3731 )
Paquetes raw ethernet en Linux 
En la sección "soft" he puesto un targz con dos aplicaciones sencillitas para acceder desde C a bajo nivel a los interfaces de red ethernet en Linux. En programa eth_send permite enviar paquetes ethernet crudos con mensajes de texto en su interior, mientras que el programa eth_recv permite leer los paquetes ethernet crudos que llegan a una interface de red y permite configurar la interface de red en modo promíscuo, como si fuese un sniffer de red (ver código fuente eth_recv.c).

Las he tenido que hacer para probar una interface de red embebida que estamos configurando en la empresa.

Todo el código es GPL.

[ añadir comentario ] ( 1436 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 3853 )
Reproductor OggVorbis para la Gameboy Advance 
Acabo de terminar la versión preliminar de un reproductor de ficheros OggVorbis para Gameboy Advance utilizando una adaptación de la librería Tremor, una librería desarrollada en un 90% en ANSI C y que utiliza aritmética de punto fijo para decodificar los streams Ogg. Aún tengo que optimizar algunas cosillas, ya que el rendimiento del reproductor es bastante pobre, pero por lo menos realiza la decodificación satisfactoriamente.

En la sección "gameboy advance" he puesto un fichero tar.gz que incluye la adaptación que he hecho de la librería para Gameboy Advance y un ejemplo de utilización con la canción Sequencer Funk de UNIT-E, con licencia Creative Commons Attribution-ShareAlike 2.5.

Todo mi código tiene licencia GPL mientras que el código de la librería Tremor posee licencia BSD (más info en http://xiph.org).

[ añadir comentario ] ( 1559 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2198 )
MOD player en punto fijo: ahora para GBA 
Ya he conseguido adaptar el reproductor de ficheros MOD en punto fijo para la Gameboy Advance. Al final me ahorré las divisiones precalculándolas, ya que sólo se realizaban entre un conjunto bastante limitado de números. El reproductor tiene un rendimiento bastante mejorable y aún consume mucha CPU; espero poder optimizarlo lo suficiente como para poder incluirlo en el juego MatchIt y así añadirle música y efectos de sonido al juego.

Por supuesto, ni que decir tiene que todo el código del reproductor es GPL :-). Sección "gameboy advance" del menú de la izquierda.

[ 1 comentario ] ( 1481 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 2106 )
MOD player en punto fijo 
Hacía tiempo que no posteaba algo por aquí. Lo cierto es que estoy algo estresadillo ya que voy a comprarme un piso en Las Palmas y estoy de papel en papel y tiro porque me toca.. :-). Sin embargo el estrés no me impide el loable ejercicio de la programación y acabo de subir a la sección "soft" un reproductor de fichero de música MOD (si, si, los del Amiga ^_^) recién salidito del horno que he hecho en C y que utiliza un algoritmo de mezcla en punto fijo. El reproductor no soporta todos los efectos (aún no tiene trémolo ni vibrato, por ejemplo) y el objetivo final es portarlo para Gameboy Advance y en eso estoy trabajando ahora.

El problema de la Gameboy Advance es que si quieres que la rutina de interrupción del DMA para el audio te vaya a toda hostia la tienes que alojar en la IWRAM (In-Chip Work RAM) y ahí sólo tienes 32 Kbytes para código. Tal cual está escrito el reproductor, el código compilado no cabe en estos 32 Kbytes y estoy optimizando algunos cálculos de 32 bits y evitando en lo posible realizar divisiones (el procesador ARM7TDMI de la GBA no sabe dividir :-) ) para no generar código en exceso.

Ya iré comentando los avances.

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

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