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 ] ( 1124 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 1765 )
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 ] ( 1188 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 1985 )
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 ] ( 1483 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |   ( 3 / 1998 )
Cambios en la web de Gameboy Advance 
En la web de Gameboy Advance http://gba.gabiot.com he puesto toda la información necesaria para construir el interface MIDI de salida para la GBA así como una sencilla aplicación de ejemplo (licencia GPL). En la misma web he puesto algunas fotos de cómo me ha quedado el invento a mi :-). Ya he mandado la noticia a los principales sitios de desarrollo de GBA porque, creo, nadie hasta ahora había equipado la GBA con un puerto MIDI de salida (MIDI out), lo más parecido hasta ahora era el interface MIDI de entrada (MIDI in) compatible LittleSoundDJ que sólo reconocía mensajes MIDI sync.

[ añadir comentario ] ( 1169 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente
  |    |    |    |  enlace relacionado  |   ( 3 / 1855 )
Interface MIDI para la GBA (y IV) 
¡¡¡ LO CONSEGUÍ !!!

:-D. Estoy que no quepo: Ya conseguí montarle un puerto MIDI de salida a la Gameboy Advance. He hecho una pequeña aplicación que envía un mensaje note on cuando pulsas el boton A y otro note off cuando pulsas en boton B. Lo he probado con el sintetizador Chameleon que tengo y los resultados son increibles. ¡¡La GBA ya tiene puerto MIDI de salida!! :-D

En breve pondré los esquemas (que son muy sencillos) y todo el código fuente del software. Ahora no hay nada que impida utilizar la Gameboy Advance como secuenciador MIDI ;-)

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

<< <Anterior | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | Siguiente> >>