miércoles, 6 de octubre de 2010

Vale, muy bonito pero... ¿Qué es un FPGA?

Acabo de caer en la cuenta de que en mis entradas aparece el término FPGA por todos lados y es muy probable que a la gran mayoría os suene a chino.

Si bien directamente no tiene que ver con lo Retro, indirectamente tiene muchísimo que ver. Voy a intentar explicaros brevemente lo que es un FPGA y por qué se usa tantísimo en nuevos proyectos electrónicos.

Un FPGA no es más que un circuito integrado configurable. FPGA viene del inglés (Field Programable Gate Array) que vendría a significar algo parecido a "Conjunto de matriz de puertas programable". La verdad es que eso tampoco clarifica demasiado, así que empezaremos por lo básico.

Un chip FPGA de la casa Altera
Los circuitos integrados digitales están compuestos por puertas lógicas (AND, OR, NOT) encargadas de dar un resultado en su salida directamente relacionada con sus entradas. Lógica elemental. Los que hayáis estudiado filosofía, recordaréis lo de "Si P es igual a Q entonces si no P, entonces no Q" (o algo así era). 

Las funciones de un circuito integrado (incluyendo los procesadores) vienen determinadas por el número de puertas lógicas que hay en su interior y por el modo en que éstas están conectadas entre ellas. Todo eso en su conjunto, conforman un circuito lógico como por ejemplo, el procesador Z80.

Pues un FPGA es un chip "en blanco" el cual tiene un número de puertas lógicas en su interior, sin configurar y sin conectar entre sí. Nosotros debemos encargarnos de interconectar esas puertas para crear un circuito específico. Por lo tanto, sería posible copiar "literalmente" la configuración lógica interna (interconexionado) de un procesador Z80 dentro de un FPGA, con lo que el FPGA funcionaría como un Z80, o mejor decir que ese FPGA internamente es un Z80 real.

Un chip FPGA de la casa Xilinx
Si a eso añadimos a que es reprogramable tantas veces como queramos, podemos ir deduciendo las posibilidades que nos dan los FPGA, desde crear desarrollos nuevos (chips de nuevo desarrollo como controladoras VGA, controladoras IDE, USB, procesadores...) hasta clonar chips ya existentes (u ordenadores completos si el integrado FPGA es suficientemente grande y tiene puertas lógicas suficientes).

El One Chip MSX, por ejemplo, es un MSX2 enterito dentro de uno de estos chips. Eso nos da una idea de la versatibilidad de estos integrados.

Es habitual que la gente confunda un ordenador en FPGA (como el One Chip MSX) con un emulador. La realidad es que no tienen nada que ver, si bien su meta es la misma: Reproducir el funcionamiento del sistema original

Un emulador es un conjunto de rutinas (programas) encargadas de emular el funcionamiento de los componentes de un ordenador (por ejemplo). Estas rutinas se encargan de "traducir" datos desde la máquina emulada hasta la máquina anfitrión (donde ejecutamos el emulador), con mayor o menor precisión. Es software puro y duro; conseguir un emulador perfecto es prácticamente imposible.

Arquitectura interna de un FPGA
El FPGA puede ser una copia idéntica del chip que se intenta reproducir y sus funcionamientos serán idénticos. Con el FPGA recreamos el hardware original y su funcionamiento a nivel eléctrico (y no sólo a nivel lógico como los emuladores).

En definitiva, que los FPGA molan muchísimo y los hay de distintos tamaños (número de puertas lógicas programables) y precios. Cuantas más puertas tengan, más potentes son y más dispositivos se pueden reproducir en su interior.

La verdad es que es un poco lioso el tema, sobretodo si no se está acostumbrado a manejar este tipo de terminologías, pero por lo menos espero haber aclarado un poco todo lo que rodea al Omnipresente FPGA.

Más información, cómo no, en la Chachipedia: http://es.wikipedia.org/wiki/FPGA

Un saludo.

Atari VBXE - Colorines molones para los Atari 8 bits

Atari 800XL, pequeñito pero matón
Le llega el turno a los ordenadores Atari 8 bits. Concretamente a las gamas XE/XL. Para quienes no los conozcan, esta serie de ordenadores Atari de 8 bits vendrían a ser el competidor al Commodore 64, si bien, cuenta una leyenda bastante creíble que realmente son el hermano pequeño del Commodore Amiga. Recordemos que el Amiga, antes de ser de Commodore, pudo ser de Atari.

La verdad es que son equipos muy curiosos, aunque en nuestro país apenas se supo de ellos. Por el momento, vamos a conocer una ampliación llamada Atari VBXE que usa como centro neurálgico, cómo no, un FPGA.

Estamos hablando de una tarjeta gráfica diseñada por unos chavales polacos. Por allí la escena y el feedback relacionado con estos Atari es enorme. Tan enorme es que no dejan de sacar dispositivos para los Atari 8 bits (así como nuevo software) y con esta tarjeta gráfica han desplazado a estos ordenadores a un plano superior.

La Atari VBXE es potente por naturaleza. Sustituye al chip de video GTIA de los XE/XL (más bien se coloca "en su zócalo" y el GTIA se pincha en la nueva placa: se complementan) y proporciona cosas tan guays como:
  • Modos de video "Overlay" a 160x240 píxeles y 320x240 a 256 colores y 640x200 píxeles a 16 colores.
  • Paleta de colores RGB de 21 bits por componente. 4 paletas independientes de 256 colores cada una, que permiten mostrar 1024 colores simultáneamente en pantalla de un total de 2 millones aproximadamente.
  • Blitter con funciones de copia AND, OR, XOR y modos de ADDición así como detección de colisiones.
  • Salida de vídeo de 15 Khz compatible con los monitores de Amiga 1084S.
Como veis, es una pasada de plaquita. Además, según las últimas informaciones, ahora también es  compatible con los modelos de Atari 400 y 800 originales (los que montan el chip de vídeo CTIA).

Atari VBXE
Pero lo mejor es que veáis un vídeo y juzguéis vosotros mismos, ¿no creéis? (Nota mental: "Voy a tener que contratar un par de polacos a tiempo completo para inventar cacharritos").

Si sabéis leer polaco (cosas más raras he visto) o tenéis paciencia para usar el "google translator" e intentar entender la traducción (creo que se entiende mucho mejor el polaco original), podéis pegarle un vistazo a la web: http://vbxe.atari8.info/index.html.

O por lo menos le podéis pegar un vistazo a la galería de fotos, pues se llama "Galería" (debe ser la única palabra polaca entendible).

Saludos.

Turbo Chameleon 64 - Más trastos para el Commodore 64

Si es que este "parato" al que llamaron ordenador con forma de tostadora es una mina en cuanto a trastos que enchufarle.

Otra ampliación más que usa el puerto de cartucho para llevar el Commodore 64 a límites insospechados es la que os traigo en esta ocasión. ¿Qué tendrá ese puerto de cartucho mágico? ¿Duendes? ¿Hadas? ¿Magos? Pues algo así será...

Imagen del prototipo en cuestión
Turbo Chameleon 64 es un cartuchito muy mono que permite a los usuarios de un C64 usar un monitor VGA a 60hz. Esta ampliación lee información del bus de expansión y la hace suya, enviándola a una reproducción en FPGA del VIC II original y generando directamente la señal VGA. Esto implica que la señal de vídeo en el monitor es literalmente perfecta. Digamos que estamos clonando "pantallas".

A parte de la salida VGA, el cartucho tiene una reproducción del procesador 6510. Actualmente funciona al equivalente a 1.8 Mhz pero está previsto llegar a los 8 Mhz. También tiene integrado un lector de tarjetas SD/MMC, puerto PS/2 de teclado, emulación de disquetera, puerto de infrarrojos, reloj en tiempo real con batería y cositas varias más.

Vamos, una ampliación para darle vidilla al Commodore.

Testeando la salida VGA
Peeeeero, agarraros los pantalones que lo mejor está por venir. El cartucho puede funcionar, atención, sin un Commodore 64 en su otro extremo. ¿Cómo dices? Pues que digo que esta ampliación tiene un conector USB para darle alimentación de 5V, y usando su puerto VGA, su puerto de teclado y su lector de tarjetas, puedes usarla directamente sin tener un Commodore 64 original. "Quicir" que la ampliación por sí sola es un Commodore 64 "tuneao".

Oferta 2x1, que estamos que lo regalamos. De verdad, que no dejo de sorprenderme día a día.

El proyecto está en fase de testeo y parece ser que su salida es inminente (ya tienen hasta distribuidor anunciando el invento).


Podéis ver más información al respecto en la web de uno de los desarrolladores: http://syntiac.com/chameleon.html. También podéis pegar un vistazo a la web que se va a dedicar a la distribución: http://www.vesalia.de/e_chameleon.htm.

Un saludo a todos.

Ayer fue el SID, hoy lo llaman SwinSID - Commodore 64/128

Qué bien suena el "joío" SID del Commodore 64. Lástima que se caliente tantísimo y sea propenso a morir en acto de servicio. Y si esto ocurre... ¿qué hacemos? ¿Pedimos un SID a los Reyes Magos de Oriente? ¿Dejamos al pobre C64 mudito? ¿Buscamos por eBay a ver si por casualidad de las casualidades...?

La verdad es que es un problema... O lo era al menos, porque actualmente tenemos el SwinSID

Módulo SwinSID en un C64 con dos AVRs y un SID original, juntitos
SwinSID es un sustituyo del SID original del C64 con la particularidad de que este modulito tiene 6 canales de sonido (y no 3 como el SID original) y te da salida estéreo y 16 bits. Además tiene soporte nativo para reproducción de samples de 8 bits.

Realmente se trata de dos microcontroladores AVR 8515 programados para realizar las funciones del SID. El invento está bastante testeado (la primera versión apareció en el año 2005) y sin ser el sonido 100%  idéntico al de un SID, el resultado es más que aceptable (pero muy aceptable).

En su web http://www.swinkels.tvtom.pl/swinsid/ tenéis documentación, ejemplos, fotos varias y de distintos modelos (evoluciones o revisiones) y todo lo necesario para montártelo tú mismo. De todos modos, el sitio ha estado caído unos días y veo que falta "material" (alguna demo, alguna foto... nada importante).

De todos modos os dejo dos ejemplos al final de esta entrada (cortesía del simpático señor del fondo, HTML5) para que podáis opinar. Demos las gracias al señor Swinkels por desarrollar cachivaches para ordenadores retro.

Por cierto... ¿Y si conectáramos este aparatito a un Amstrad, un Spectrum o un MSX? ¿Seis canales SID más 3 canales AY? Ummmm...

Saludos.
Eyes of the East


Mr. Marvelous

OT - Música Retro en el blog

¡Arriba OGG, abajo MP3!
Bueno, hoy (más bien ayer, por las horas que son) no ha habido ninguna entrada en el blog. Lo cierto es que he dedicado toda la tarde y parte de la noche a integrar un reproductor de archivos OGG al blog para reproducir musiquillas de nuestras queridas maquinitas vía "streaming".

Y por fin lo he conseguido (y no ha sido nada fácil para mí, os lo aseguro). Lo mío no es programar estas cosas tan modernas, me gusta más el BASIC. Que si Javascript, que si CSS, que si la abuela fuma...

Pues lo dicho, ahí a la derecha tenéis un reproductor que enlaza con los servidores de Kohina (la mejor emisora de música retro bajo mi punto de vista). Dadle al botón "Escuchar" y se hará la magia. En cualquier caso, hay que tener claros un par de puntos:
  • El reproductor usa funciones del nuevo HTML5. Eso implica que no en todos los navegadores funcionará el reproductor. Los navegadores que yo he comprobado son:
    • Internet Explorer 8: No va ni de coña. IE8 es el peor navegador y el menos estándar de todos. No tiene soporte de HTML5.
    • SRWare Iron: Navegador con base Chromium. Es mi navegador de cabecera por ser rápido, ligero... Una maravilla. Además, tiene la ventaja sobre el "famoso" Chrome de Google, que no envía datos a ningún sitio. Sí, el Chrome envía datos sobre los sitios por los que navegas entre otras cosas. Y por supuesto, el reproductor funciona perfectamente (en mi versión, 6.x). Si alguien quiere probarlo puede descargarlo de aquí: http://www.srware.net/downloads/srware_iron.exe
    • Mozilla Firefox: Es mi segundo navegador. El reproductor también funciona perfectamentel Yo uso la versión 3.6.x y va sin problemas.
    • Opera: Por lo que he leído, debería funcionar perfectamente también.
    • Safari: Los usuarios de Mac están de suerte. También pueden hacer uso del reproductor. Desconozco si la versión Windoes del Safari funciona igual de bien.
  • Los que sigáis empeñados en usar Internet Explorer, podéis acceder directamente a la página de Kohina y usar el reproductor Java: http://www.kohina.com
El estándar que viene...
Los que se pregunten por qué no he usado el reproductor Java tiene una respuesta sencilla: Es feo de narices y odio el Java. Además paso de dar soporte al único navegador que no funciona de todos los mencionados. Dadle las gracias a Microsoft por no seguir el estándar.

Los que se pregunten por qué no he usado un reproductor Flash: Adobe no soporta reproducción de archivos OGG (no vaya a ser que se les caiga la piel si dan soporte a un formato abierto y libre). Sólo dan soporte para MP3 y Kohina emite en formato Vorbis OGG.

En definitiva, que lo probéis y que disfrutéis con los musicones y chiptunes que Kohina nos ofrece "by the face". Los que uséis Internet Explorer, este es un buen momento para probar "cosas nuevas" y descubrir un mundo de posibilidades (y de velocidad). No os quedéis anticuados.

Saludos.

lunes, 4 de octubre de 2010

Más de 1000 visitas en 2 días - ¡GRACIAS!

Hace únicamente dos días que inauguré el blog. Jamás llegué a imaginarme tal aceptación y tal cantidad de visitas cuando empecé a escribir la primera entrada.

Por eso, sólo tengo una cosa que deciros a todos: ¡Muchísimas Gracias a Todos Vosotros!

Espero poder seguir ofreciendo buenos contenidos para el disfrute de todos vosotros.

Saludos.

Chu, Chuuuuuuuuu... ROCKET!!!! - Spectrum

Para que veáis que los usuarios de Amstrad no somos rencorosos, os voy a enseñar un proyecto que tenemos entre manos el omnipresente Syx y yo.

¿Sabéis? Me encanta pelearme con los atributos de colores del Spectrum. Digamos que son "ladrillo-pixeles de colores" mucho más grandotes, jejejejeje. La historia es que me gusta intentar darle color (y no sólo tramas) a los gráficos spectrumiles, así que nos pusimos manos a la obra y nos preguntamos, ¿qué hacemos?

Un cepecero dibujando para Spectrum...
Pues una conversión del juego Chu-Chu Rocket!, ni más ni menos, para Spectrum. Un juego muy divertido, frenético y con montones de sprites simultáneos en pantalla... Pero... ¿muchos, muchos, muchos? Sí señor, muchos.

Pero tranquilos, que los usuarios de Amstrad tenemos que batallar siempre con los excesivos 16 Kbytes de VRAM que tiene que mover el pobre Z80 contra los cerca de 7 Kbytes de VRAM que usa el Spectrum (menos de la mitad).

¿Eso qué significa? Significa que las rutinas mega optimizadas que Syx usa para el Amstrad, pues, con cuatro arreglos, literalmente funden en el Spectrum (qué le vamos a hacer, la vida es así). 

100 Ratitas Presumidas
Pues ya tenemos pruebas de concepto de las rutinas y tenemos a la no poco despreciable cantidad de... 100 ratitas en pantalla a 25 fps. Osea, 100 sprites de 16x16 píxeles a todo trapo por la pantalla.

¿Os parece bien? ¿Sí? ¿No? Veremos en lo que termina esto... ¡Maldito Spectrum! (pero con cariño).

Saludos.