domingo, 10 de octubre de 2010

DATA-GEAR: Transferencias DMA en tu Spectrum

Data-Gear: A la izquierda el Z80, a la derecha el chip DMA
Uno de los problemas que tienen nuestros pequeños ordenadores es la velocidad del procesador cuando hay que mover "grandes" cantidades de datos por la RAM. Imaginad un juego con scroll parallax de varios planos en un Spectrum, cantidades ingentes de sprites en pantalla, niveles de profundidad con superposición de sprites, saltarnos la limitación de color de 8x8 y todo a 50 fps... Imposible, vamos, con el pobre Z80, que terminaría bien frito y sin conseguir el resultado deseado (ni de lejos).

Crear un scroll por software en máquinas como el Spectrum, que carecen de hardware específico para ello, requiere de un uso intensivo de CPU. Si la CPU está ocupada en esa tarea, pues otras cosas necesarias quedan pendientes de hacerse (mover sprites por pantalla, inteligencia artificial de personajes varios, reproducir música, leer las pulsaciones del teclado, etc) hasta que el scroll no se ha procesado.

Vista inferior: Conexión al zócalo del Z80
Todo se resume en que la copia de datos (en la pantalla en este caso, cerca de 7 Kbytes aproximadamente) tiene que hacerla el procesador (el Z80). Pero, ¿qué pasaría si hubiese un chip encargado de realizar todas esas operaciones mientra la CPU descansa plácidamente o se dedica a otras tareas más interesantes?.

Ampliación pinchada en un Spectrum
Las siglas D.M.A. en inglés significan (Direct Memory Access: Acceso Directo a Memoria). Esto significa, simplificando mucho, que en lugar de decirle al procesador que copie "x" datos de una zona de la memoria a otra, en su lugar se lo decimos a un chip específico para esa tarea (que además la realiza mucho más eficientemente que el procesador). Le indicamos al chip DMA que queremos copiar "x" bytes desde aquí hasta allí. El tiempo empleado para hacer esa copia es varias veces inferior al usado por la CPU, por lo que la ganancia en velocidad es notable (sin necesidad de usar un procesador más rápido).

Pero esto no se limita a copia de datos por la RAM. También es aplicable a los dispositivos que tiene el ordenador (por regla general). Enviar datos a gran velocidad al chip de sonido AY-8912, por ejemplo, para conseguir música sampleada de gran calidad sin necesidad de consumir recursos del procesador.

Velesoft, conscientes de ello y de las ventajas que puede dar un chip DMA, han creado una ampliación para Spectrum llamada DATA-GEAR. ¿Ventajas? Pues por ejemplo, con el chip DMA instalado en el Spectrum podemos transferir hasta 865 Kbytes en un segundo, osea, que podemos llenar la memoria de un modelo de 128 Kbytes casi 7 veces en el transcurso de un segundo. Y todo funcionando a la velocidad original de 3.5Mhz.

Imagen generada usando el chip DMA
La ampliación va pinchada en el zócalo del procesador del Spectrum y el procesador a su vez, en la propia ampliación, por lo que no es necesario modificar nada del equipo original, más que extraer la CPU, pincharla en la plaquita de la ampliación y todo el conjunto pinchado en el zócalo original del procesador.

Con tal carta de presentación, sólo queda que accedáis a la web y veáis muchísimos ejemplos y vídeos, para que comprobéis el funcionamiento de esta curiosa ampliación.


Un saludo.

¿Te gustan los chiptunes? Pues hazte un player...

Sí, es el colmo de los retrocolmos. Sólo si eres un verdadero friki como yo te hará gracia este aparato (aún estás a tiempo de no seguir leyendo, pero si no tienes nada mejor que hacer... sigue).

Muchos de nosotros escuchamos con especial asiduidad música chiptunera (en el blog sin ir más lejos tenéis un ejemplo en streaming constante). Solemos usar algún reproductor específico para nuestro sistema operativo y para el sistema que queremos reproducir, bien sean archivos AY/YM, archivos SID, archivos MOD...

Prototipo del reproductor. Abajo a la derecha, el AY
Otros, simplemente no quieren andar arrancando su "pecera" cada vez que quieren oír chiptunes y se montan un reproductor hardware que conectan directamente a sus equipos de música. Con un par...

Tolaemon, ha hecho lo propio. Su reproductor en concreto usa un chip de sonido AY-8912 (presente en los Amstrad CPC, MSX, Spectrum, Atari ST, Oric...) por lo que todas las canciones (que son muchas) preservadas de estos sistemas pueden ser reproducidas desde su reproductor.

No me negaréis que es chulo el reproductor
Tiene todo tipo de funciones, típicas de un reproductor actual, como Play, Pausa, Fast Forward, Rewind, Pitch y además volúmenes separados para cada uno de los 3 canales y un volumen Master. Un zócalo para memorias SD/MMC sirve de soporte de almacenamiento de las melodías y una pantalla de cristal líquido nos muestra toda la información específica de la reproducción actual.

Como añadido interesante, destacar un puerto MIDI, para reproducir las melodías en un instrumento con soporte MIDI.

La verdad es que es muy curioso, y mirando la caja que se ha montado este hombre, muchísimo más. Os dejo un vídeo mostrando el funcionamiento del reproductor "portátil" y la web de Tolaemon, donde encontraréis muchísima información sobre éste y otros proyectos:

Saludos.

MSX y Spectrum, más cerca que nunca.

Hace ya algún tiempo que vi asombrando un proyecto realizado por "mcleod_ideafix". Muchos de vosotros lo conocéis, otros no. Algunos conocen sus proyectos, otros no...

Para los que no, aquí os dejo una pequeña explicación del proyecto que nos acontece en esta ocasión. Pero primero, hagamos las presentaciones correctamente.

Mcleod_ideafix es un usuario español de Spectrum (sí, sí, español). Este hombre es un prodigio, un tío inteligente como él solo y siempre dispuesto a ayudar (lo digo por experiencia propia, con mi aparato USB). Además, dedica el poco tiempo que tiene a nuestros equipos Retro (concretamente con su Spectrum). Sólo por eso, merece nuestra admiración más absoluta y si por mí fuese, reconocimiento público en la plaza del ayuntamiento.

La cuestión es, que considero justo y necesario dar a conocer su trabajo fuera de los límites spectrumiles (en el mundo del Spectrum ya es bastante conocido), pues su esfuerzo también puede ser aplicable a otros sistemas y... porque se lo merece, qué narices...

El interfaz en cuestión con el VDP
Vayamos entonces al grano. ¿Imagináis tener el chip de vídeo del MSX en un Spectrum? Pues este hombre lo ha hecho... ¿Imagináis tener el chip de vídeo del MSX2 o del MSX2+ en un Spectrum? Pues... tiempo al tiempo, todo se andará.

Así es. Mcleod_ideafix ha ideado una ampliación para Spectrum que incluye el chip de vídeo del MSX (TMS9929 es la versión PAL del VDP) y que añade los modos de pantalla del MSX al Spectrum.

De momento, tenemos un sistema "Dual Screen"; por un lado una pantalla dando una salida de vídeo desde el VDP y otra pantalla con la salida de vídeo nativa del Spectrum, aunque lo ideal (cuando el proyecto sea retomado) será tener de fondo la pantalla del Spectrum y en primer plano superpuesta la salida de vídeo del VDP, todo en la misma pantalla.

¡Pantalla del Game Over de MSX en un Spectrum!
Tener el VDP del MSX en un Spectrum, facilita el desarrollo de aplicaciones en paralelo en ambas plataformas, si bien, eso no significa que podamos ejecutar juegos y programas de MSX directamente en un Spectrum. Hay que parchearlos sustituyendo llamadas al hardware por las nuevas direcciones, así como llamadas a la ROM específica del MSX por sus equivalentes en Spectrum. Tras hacerlo, los programas de MSX funcionan perfectamente en el Spectrum.

En cualquier caso, mejor visitáis su Web y lo flipáis un poco con una explicación mucho más detallada del proyecto. No os quedéis en las imágenes de esta entrada y visitad su web, donde además tiene vídeos del invento funcionando. De verdad que merece muchísimo la pena leer por completo sus explicaciones y ver todos los videos, 100% recomendado.


Un saludo.

sábado, 9 de octubre de 2010

Consolas japonesas: FM TOWNS Marty


Made in Japan


Los europeos conocemos a la perfección consolas como la NES, GameBoy o SNES de Nintendo, Master System, Game Gear o MegaDrive (Genesis) de SEGA, la PlayStation de Sony... Todas ellas con un denominador común: Japón.

FM Towns Marty - Consola japonesa de 32 bits Intel
Sin embargo, hay una cantidad enorme de consolas japonesas muy interesantes, muy potentes y muy conocidas en el país del sol naciente. Consolas que por aquí ni hemos olido. Y como me encanta descubrir nuevas arquitecturas, aquí os dejo un "review" de la consola FM TOWNS Marty.

Lanzada al mercado por Fujitsu en el año 1993, esta consola está basada en un ordenador aparecido en japón (también de la mano de Fujitsu) en el año 1989. Este ordenador (FM TOWNS a secas), era una variante de un PC estándar orientado a aplicaciones multimedia. Calzaba un procesador Intel 386DX a 16Mhz. ¿Os pensabais que la XBOX fue la primera consola con un procesador Intel? Puedo equivocarme, pero estamos ante la primera consola de 32 bits del mercado (ganando por meses a la consola de Commodore, la CD32, con alma de Amiga 1200). Si bien, la consola japonesa no salió de Japón, así que podemos considerar la Amiga CD32 la primera consola de 32 bits del mercado (exceptuando Japón, claro).

Finales de los años 80, época en la que los europeos amantes de "las peceras" soñaban con tener un 286 medio decente, una tarjeta gráfica EGA y 1 Mbyte de RAM, son suerte... Y ese maravilloso beeper. El que más, se gastaba un dineral en una tarjeta de sonido Adlib.

Ordenador FM TOWNS II (Si hubiese pillado uno...)
Pues como iba diciendo, incluye un 386DX (eso quiere decir que estamos hablando de una máquina de 32 bits) y posibilidad de añadir el coprocesador matemático i387, 2 Mbytes de RAM (ampliables a 6) un lector CDROM de velocidad simple y un pad de juegos.

A nivel compatibilidad con los PCs normales de la época, el tema fue mejorando con el paso de los años. El Windows 3.11 era instalable en esta arquitectura y con la llegada del Windows 95, la compatibilidad fue completa con el resto de PCs del mercado.

Shadow of the Beast - FM TOWNS Marty
En el tema gráfico no está nada mal. Resoluciones desde 320x200 hasta 640x480 con colores de pantalla simultáneos desde 16 hasta 32.768 de una paleta que va desde los 4096 hasta los 16.7 millones de colores (dependiendo del modo de pantalla usado). También capaz de mezclar modos de pantalla (split screen). Además tiene un total de 1024 sprites hardware en pantalla de 16x16 píxeles cada uno de ellos.

En el apartado de sonido, el estándar FM TOWNS dispone de 1 chip FM de Yamaha (YM 2612) que nos proporcionan 6 canales de sonido FM (es el mismo chip que usa la MegaDrive) y de 1 chip de Ricoh (Ricoh RFC5C68) que nos dan ni más ni menos que 8 canales de sonido PCM (samples). También tenemos la posibilidad de reproducir pistas de audio desde el CDROM.

Sobre este pepino del año 1989 se fabricó la consola bautizada "Marty". Presume de tener un catálogo enorme de conversiones de recreativas de calidad excepcional como:
  • After Burner
  • Super Street Fighter 2
  • Tatsujin OU
  • Raiden
  • Turbo OutRun
  • Chase HQ
  • ...

Tanto el ordenador como la consola son un pepino, sinceramente. Sólo tenemos que comparar los videos del After Burner de PC y del FM TOWNS...

Lo mejor que podéis hacer es pegarle un vistazo a los vídeos que os dejo e ir enlazando a partir de ahí, porque descubriréis verdaderas maravillas.

FM TOWNS Marty... Una consola de 32 bits con procesador 386DX. Cómo me mola...

Saludos.




TurboSound: Más música para tu Spectrum

Para los amantes del sonido chiptune y poseedores de un Spectrum, llega este interfaz. ¿Quieres tener 12 canales de sonido adicionales a los 3 canales AY de tu Spectrum o al beeper de tu 48K? Pues aquí tienes la solución: TurboSound-Easy.

Aspecto del último prototipo de la TurboSound
Se trata de una ampliación en desarrollo que incluye 2 chips de sonido AY-8912 (ambos programados en el interior de un FPGA, ¿os suena?) y un chip de sonido nativo SAA1099 (el mismo usado en los Sam Coupé). La suma de los 3 chips nos da un total de 12 canales de sonido para dar rienda suelta a nuestra pervertida imaginación.

Y todo de la mano de Velesoft, un grupo de personas que desarrollan hardware para Spectrum (y no es lo único interesante que tienen en catálogo, ya lo iréis descubriendo).

La TurboSound tiene varias versiones, cada una con capacidades sonoras distintas. Uno de esos modelos, incluye dos chips FM (¿recordáis como suena la Megadrive o las SoundBlaster de antaño?).

Versión más artesanal con 2 AY (6 canales de sonido)
En la web tienen todo lo necesario para que vosotros mismos podáis montaros una. Si bien la revisión que usa FPGA es algo menos accesible (por la necesidad de disponer un programador para el FPGA), tenemos a nuestra disposición esquemas del resto de revisiones, que son mucho más artesanales. El único problema es que la mayoría de la página está en checo.

También hay unos cuantos ejemplos en formato MP3 de como suena el invento por si tenéis curiosidad. Echadle un vistazo aquí: http://velesoft.speccy.cz/turbosound-cz.htm.

Saludos.

Cartucho Harmony... ¿Jugamos? - Atari 2600

Le ha llegado el turno a una de las abuelitas. La Atari 2600 también tiene algunas cosas interesantes que añadirle. Una gran noticia, sin duda, para aquellos que poseen una y siguen utilizándola.

Primer prototipo del cartucho
Me refiero al cartucho Harmony. Este cartucho dará horas y horas de juego sin descanso a sus afortunados poseedores.

No se trata de una expansión de RAM, ni de una CPU nueva (o tal vez sí, como luego veremos) ni de una gráfica nueva. Simplemente es un cartucho con una ranura SD que nos permitirá jugar al catálogo interminable de juegos de Atari.

Un menú aparecerá en pantalla que nos permitirá elegir el juego. Seleccionamos al afortunado y... ¡a jugar! Así de simple. Y es que muchas veces no necesitamos grandes ampliaciones para facilitarnos la vida y darnos horas de diversión.

Versión final del cartucho
Por otro lado, este cartucho permite a los desarrolladores de software probar sus juegos directamente en una Atari real.

Para ir terminando, sobre mi comentario de la CPU; este cartucho tiene en su interior un microcontrolador con corazón ARM (misma CPU usada en la GameBoy Advance). Ciertamente, estáis en lo correcto si pensáis que se está desaprovechando terriblemente usándolo únicamente para cargar juegos. Y no sois los únicos. Los creadores del cartucho han visto las posibilidades que puede dar ese cartucho y están desarrollando una actualización del software para permitir otras cosas más interesantes... No puedo ni imaginarme qué puede ocurrir si haces uso de una CPU potente con el hardware original de la Atari 2600. Sólo por la curiosidad, la cosa promete.
El producto final a la venta

Podéis entrar en su web y descargaros el manual en PDF del cartucho o encargar uno para vosotros (no hay mucha información más): http://harmony.atariage.com/

Os dejo un vídeo del invento funcionando.

Saludos.





jueves, 7 de octubre de 2010

Uzebox - Un Microcontrolador convertido en Consola

Primer prototipo de la UzeBox, simple como ella sola
Ay... Los microcontroladores... Tan baratitos, tan facilitos de programar... Desde encender unas lucecitas hasta mover motorcillos; los más "pintáos" como yo lo usan para interconectar cacharros USB a un Amstrad CPC. Y tienen ese aspecto tan "retro" (algunos de ellos)... Parecen enteramente un Z80 o un MOS 6510.

... Motorcillos... Lucecitas... ¡Anda ya! ¿Por qué no hacemos una consola? Venga va, si tú lo dices... (éste ya se ha tomado su ración diaria de Frostys caducados).

Última versión muchísimo más pulida
Pues dicho y hecho. Con un simple Microcontrolador AVR de 40 pines (6 euros), un puñado de resistencias y condensadores (un par de euros más) y un par de conectores para mandos de SNES (ni RAM ni nada, que para eso tenemos la interna del AVR, 4 Kbytes, casi nada...), ya tenemos una consola molona y barata.

Ríete te la NES, que si te pensabas que esto no puede ser más que una consolilla cutre, aquí os dejo algunas características técnicas:
  • Resolución de pantalla máxima de 240x224 píxeles.
  • Modos de patrones y sprites hardware.
  • 256 colores en pantalla
  • 3 canales de sonido y 1 canal de ruido (como la Gameboy)
  • Salidas de vídeo compuesto y SVideo.
Como veis no es moco  de pavo. Además tiene un lector de tarjetas SD para reprogramar el juego en su Flash Interna (64K), con lo que cada vez que enciendes el invento, tienes ese juego "pre-programado" hasta que lo cambies por otro desde el lector SD.

El software se programa en C puro y duro. Así que ya no tienes excusa para hacerte tu propia consola y tus propios juegos.

En fin, os dejo unas fotitos y unos vídeos para que os deis cuenta de que no vamos de bromas.

Más información en la web: http://belogic.com/uzebox/

Saludos.

Que foto más curiosa...

Reproduciendo vídeo... Esta chavala me suena.

(Una partidita al Tetris?