Interface MIDI out para la Nintendo DS 
Collin Meyer, a través de su blog nos informa que ya tiene a puntito de caramelo su secuenciador MIDI para Nintendo DS. El secuenciador requiere como puerto MIDI este sencillo circuito conectado al slot trasero de la DS (obviamente es necesario que el software arranque del slot GBA mediante WifiMe o PassMe). Aquí y aquí pueden verse algunas fotos del invento. Para utilizar este sencillo interface MIDI out, ha desarrollado dSTAR: un secuenciador MIDI sencillito y controlable a través de la pantalla táctil. El nota se lo curró.

[ añadir comentario ] ( 1166 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 1749 )
Java para pobres 
Hace algunos días descubrí la máquina virtual de Java con licencia GPL Waba. Lo mejor que tiene, sin duda, es que modificando tres ficheros C, siguiendo un pequeño tutorial, podemos portar la máquina virtual para que se pueda ejecutar en cualquier entorno. Un tal Justin Armstrong ha portado esta máquina virtual para que ejecute en la Gameboy Advance sobre un pequeño sistema operativo de juguete (más info aquí).

Viendo lo sencillo del código fuente estoy tentado de hacer una implementación cruda de la máquina virtual para Gameboy Advance, aunque también es cierto que una implementación cruda impediría el uso de threads y demás lindezas, pero bueno, menos daría una piedra.

Creo que utilizando la librería de acceso a sistema de archivos romfs y la implementación de la newlib que tengo hechas para Gameboy Advance se podría dar el salto definitivo... ¡jur! O_o

¿Alguien se atreve? :-)

[ añadir comentario ] ( 1394 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 2056 )
Port de newlib para Gameboy Advance 
La librería newlib es una implementación orientada a sistemas embebidos de la libc de GNU y tal y como viene configurada por defecto es una librería muy buena para utilizarla en la Gameboy Advance, ya que permite el uso de rutinas estándar como memcpy, memset, etc; y, al mismo tiempo, contiene una implementación completa y compatible IEEE de la librería matemática de C, la famosa libm. Al ser una configuración por defecto, ésta tiene, como se puede intuir, muchas limitaciones.

Ayer estuve leyendo un artículo sobre cómo portar la newlib completamente a cualquier plataforma embebida y el resultado de la lectura y posterior aplicación de ese artículo puede verse en mi página de Gameboy Advance: una implementación parcial de la entrada/salida estándar así como una implementación de las funciones de acceso a ficheros utilizando el sistema de archivos romfs.

Ahora es posible hacer printf, puts, open, close, read y demás utilizando las llamadas compatibles POSIX con algunas limitaciones:

1. No existe entrada estándar. El handle de fichero 0 no es usable aún. Lo he hecho así ya que el pad de la Gameboy Advance sólo posee 10 botones (cuatro direcciones, A, B, L, R, start y select) que se acceden leyendo bits directamente de una posición de memoria.
2. El handle 1 (salida estándar) dirije el flujo a la pantalla, mientras que el handle 2 (salida de error estándar) dirije el flujo de datos a la SRAM no volátil del cartucho flash.
3. Es posible manipular mediante las llamadas POSIX estándar open, close, read, lseek y fstat ficheros alojados en una imagen de sistema de archivos romfs contatenada a la imagen ROM de la aplicación principal (ver página sobre GBA para más detalles).

[ añadir comentario ] ( 1112 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 1730 )
romfs para Gameboy Advance 
En mi página de proyectos para Gameboy Advance he incluido un pequeño miniproyecto de implementación del sistema de archivos romfs. Aún no realiza comprobaciones de checksum pero permite acceder a los contenidos de un sistema de archivos .romfs simplementa concatenándolo a la ROM de la aplicación principal:

cat mi_aplicacion.gba fichero.romfs > salida.gba

No he hecho pruebas en una Gameboy Advance física, sólo con el emulador, pero en cuanto tenga algo de tiempo las haré. Más info aquí.

[ 1 comentario ] ( 1177 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 1944 )
Nueva versión de midiout-test 
He retocado la aplicación de prueba del puerto MIDI de salida para la GBA y ahora envía mensajes active sense cada 200 milisegundos. El estándar MIDI obliga a hacerlo para que los receptores sepan que el extremo transmisor está activo. Con esta nueva característica ya si se puede decir que el midiout advance (así lo he bautizado :-) cumple con el estándar MIDI sin problemas.

Aún así, mi sintetizador Roland Fantom-XR desafortunadamente, hace oidos sordos a los mensajes MIDI que envía midiout advance. Aún no se si es que es más sensible al timming ya que la GBA no genera una stream MIDI de EXACTAMENTE 31250bps sino de 31242 bps. El estándar indica que puede haber una desviación del 1% arriba o abajo. El -1% de 31250 es 30937 mientras que el +1% es 31562; como 30937 < 31242 < 31562 la GBA cumple, en teoría con el estándar de timming y de hecho el sintetizador Chameleon responde perfectamente a los mensajes. Por otro lado he pensado que quizá sea una cuestión de suministro de corriente ya que utilizo resistencias de 150 ohms con una tensión de 3.3v y quizá eso no de la corriente suficiente para los optoacopladores MIDI del Roland Fantom-XR.

[ 1 comentario ] ( 1472 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 1958 )

<< <Anterior | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | Siguiente> >>