Mitos y "factos" del VIC-20


El Commodore VIC-20 fue introducido en 1981 en Europa y Estados Unidos. Había sido introducido en Japón con otro nombre, VIC-1001, en 1980. Esta es mi "rant" sobre datos incorrectos que se repiten habitualmente entre la comunidad retro nacional e internacional, a veces incluso como chascarrillos.

Mito 1. La memoria del VIC-20 "el VIC 20 tiene 3k".

Cifras que he leído o escuchado por ahí, en redes sociales: 3,5k / 4k / 3k / 6k. 

Si vamos a acordar que el C64 y el CPC464 tienen 64k, el Spectrum 16 o 48k, o el BBC Micro 32k, la respuesta correcta es fácil, tiene 5k. En configuración de fábrica, 5 kBytes de RAM y 1 kNibbles (0,5 kBytes) de memoria de color. Además de los 20kB de ROM que quizá dan nombre al ordenador.

Es cierto que al arrancar, antes de entrar en el editor de BASIC, se informa de "3.583 bytes free". Pero bien que el C64 informa de 38.911 y nunca oí decir "el C64 tiene 38kB" o de manera análoga "el C16 tiene 12kB".


"Factos". Las expansiones de memoria.

Debido su bajo precio, muchos usuarios interesados en prestaciones superiores simplemente adquirían otro ordenador, sin lamentarse demasiado por no haber amortizado su VIC. Pero sí es cierto que los que se mantenían usuarios por más tiempo, acababan comprando expansiones de memoria RAM. 

Ampliación memoria conmutable de 3k/16k
Commodore sacó ampliaciones de 3kB, 8kB y 16kB. Se podían conectar las tres a la vez si se disponía de un expansor de cartuchos.

No hay compatibilidad entre la ampliación de 3kB y las de 8/16kB. Para abarcar el máximo número de usuarios lo más conveniente era desarrollar para +8kB. Aunque aún hay algún despistado que saca algún desarrollo para +3kB.

Después salieron ampliaciones de third parties de 16kB, y más adelante, también alguna de 32kB. Algunas ampliaciones de 16kB/32kB eran conmutables, para más compatibilidad podían funcionar alternativamente como de 3kB.

En la escena retro actual es posible obtener ampliaciones de +35kB (que cubren todo el espacio de direcciones) y de +37kB (además ofrecen 2kB en un espacio reservado a "puertos" del hardware, pero nunca utilizado).

Jelly Monsters (1981). Cartucho de Commodore.
La principal utilidad de las ampliaciones de +32kB es poder cargar programas que se publicaron en formato cartucho, juegos habitualmente. Hay poco software nativo para +32kB.

Hay que recordar que gran parte del catálogo más popular en la época se publicó en formato cartucho. Por ello hay ampliaciones que incorporan una selección de juegos, o permiten crear una personalizada en slots de memoria flash.

Algunas ampliaciones ofrecen todavía más memoria, 128kB/512kB/1Mb,  utilizando el conmutado de bancos. Pero no hay software disponible ni parece que lo vaya a haber.

Personalmente pienso que el catálogo más interesante del VIC20 no está en cartucho y por eso las selecciones de juegos no valen la pena.


Mito 2. La resolución gráfica del VIC 20 "el VIC20 tiene 22 columnas".

Este tiene algo más de sentido. Pero como en el caso anterior, es una limitación del editor de BASIC, que no soporta otra anchura de pantalla. En el chip de vídeo tanto el número de filas como el de columnas es programable y crece a costa del borde.

Un televisor puede mostrar 26 columnas sin problemas. Ajustando el monitor 1084 PAL se sacan 28 o 29 columnas. Con el número de filas todavía hay menos limitación y se llega al máximo teórico de 32. La tabla de debajo muestra los valores para diversos juegos.

JuegoDescripcionColumnasFilasTotal celdas
Jelly MonstersClon Pacman, 19812329667
SkrambleAnirog, 19842626676
Tetris DeluxeNippur72, 20071828504
ArukanoidoClon de Arkanoid, 20181532480
Robots RumbleDigital Monastery, 2019 2425600
Moons of JupiterTipo Asteroids, 19822632832
Zombie CalaveraDigital Monastery, 20193022660
Cosmic FirebirdsTipo Galaxian, 19832430720
BonzoTipo Space Panic, 19822429696
MyriadRabbit Software, 19822232704
SkyhawkQuicksilva, 19832520500
Dig DugClon Dig Dug, 19832026520
Frogger'07Clon Frogger, 2007**max

Arukanoido, Pixel, 2018
Fijarse que el Spectrum tenía 32 columnas y 24 filas, o sea 768 celdas, es decir, el VIC tampoco queda tan atrás en este parámetro, número total de celdas (proporcional al número total de pixels).

Lo que sí es cierto es que el aspect ratio de los pixels no es agradable, son demasiado alargados. 

La mala impresión se agrava porque mucha gente, incluso en canales de Youtube, usa ordenadores retro sin ajustar el televisor a una entrada de la imagen en 4:3 (dejando el 16:9 actual) y en el caso del VIC eso es fatal. Los emuladores tampoco ajustan el ratio al abrir las ventanas, no sé si es desidia o es cosa del sistema operativo.

"Factos". Posibilidades gráficas del chip de vídeo VIC.

Cómo hace la visualización el VIC-20.

Para explicar qué muestra el VIC 20 en pantalla lo más practico es fijarse otros dos ordenadores: el PET y el C64, el VIC-20 es una evolución intermedia. Del C64 nos vamos a fijar en dos modos de visualización, el alfanumérico y el alfanumérico multicolor.

El PET

Todos los ordenadores de 8 bits de Commodore, desde el PET hasta el C128, arrancan dando paso al editor de BASIC, utilizando un modo alfanumérico de visualización, "CBM BASIC" etc etc. 

Todos disponen de un set de 256 caracteres (con los gráficos PETSCII). Cada uno de los caracteres se representa con un símbolo de 8 pixels de ancho y 8 de alto. El espacio es el caracter en que no se ilumina ningún pixel. Los caracteres se alinean en una retícula que, en el caso habitual, PET y C64, es de 40 columnas x 25 filas (1000 celdas). 

En realidad es posible elegir entre dos sets de caracteres PETSCII, uno tiene mayúsculas y minúsculas y otro sólo tiene mayúsculas, a cambio de más caracteres gráficos. La definición gráfica de los símbolos de cada uno de los sets de caracteres, a 1 bit por pixel, ocupa 2kBytes de ROM.

El C64

Donkey Kong (1983). Cartucho de Atari.
A diferencia del PET, en el modo alfanumérico del C64 a cada una de las celdas se le asigna un color de entre los 16 de la paleta, y los pixels iluminados se ven de ese color. Los no iluminados se ven en el color del fondo de la pantalla (que también se elige entre los 16 de la paleta).

Otra diferencia es que se puede usar un juego de caracteres definido por el usuario en memoria RAM, a utilizar en lugar del PETSCII.

Aparentemente el chip VIC al principio tenía unas especificaciones similares (con otro número de filas y columnas). Pero la versión definitiva que se incluye en los VIC1001/VIC20 es en realidad similar al modo alfanumérico multicolor del C64.

Este modo permite utilizar caracteres multicolor. Estos tienen 4 pixels de ancho y 8 de alto, o sea, se sacrifica la mitad de la resolución. A cambio en cada celda se pueden mostrar 4 colores, en vez de 2. Esta clase de caracteres gráficos se introduce con el VIC 20, después se mantiene en los siguientes 8-bit de Commodore.

El VIC20

Antes de seguir explicando las características del modo multicolor vale la pena hacer una pausa y fijarse en 3 juegos de VIC-20, el Jelly Monsters, que sólo usa caracteres normales, el Donkey Kong que, excepto para los textos, sólo usa caracteres multicolor y el Arukanoido, que los mezcla. 

Frogger'07, Victragic, 2007

La parte mala de los caracteres multicolor es que sólo uno de los 4 colores de la celda se define de manera independiente. Los otros 3 colores son comunes para todas las celdas de la pantalla, como lo es el color del fondo en el modo alfanumérico "original".

Lo que se hace en el modo alfanumérico multicolor es posibilitar el uso mezclado de caracteres normales y caracteres multicolor. 

Dar esta posibilidad tiene un coste, y es que se reduce a los 8 primeros colores la paleta para colores definidos a nivel de celda. Los 3 colores "de fondo" se siguen escogiendo de la paleta completa de 16 colores. 


Diferencias del VIC-20 con el C64.

Una vez establecido que el modo de visualización del VIC-20 se corresponde con el modo alfanumérico multicolor del C64, vamos a fijarnos en las diferencias (al margen del ya explicado número de filas y columnas).

  • Paleta de colores
    Paleta de colores: alguna vez oí por ahí que eran iguales. Aunque ambas tienen 16, los 8 colores no básicos son diferentes. 

  • Colores "de fondo": el C64 sí que tiene realmente 3, pero en el VIC-20 uno de los 3 es el color del borde (de ahí la abundancia de juegos con el borde de colores chillones), y se elige de la paleta reducida de 8 en vez de la paleta general de 16.

    El Frogger'07, para que no se vea un borde rojo chillón, utiliza el truco de maximizar el área visible (el número de filas y columnas).

Otras diferencias gráficas entre VIC-20 y C64 no relacionadas con el modo alfanumérico multicolor:
  • Modos bitmap: en el VIC-20 no hay modo bitmap, pero sí un pseudomodo bitmap con más restricciones de color y de número de columnas y filas. 
  • Sincronización con el raster: el VIC20 no tiene interrupciones raster, pero sí se puede obtener el valor del raster, suficiente para sincronizar la visualización.
  • Acceso a memoria: el VIC-II del C64 puede acceder a los 64k de RAM en 4 bancos de 16kB, mientras que el VIC del VIC20 sólo puede acceder a los 5k de RAM de base. 

Mito 3: La disketera 1541 del C64 "es lenta para mantener la compatibilidad con el VIC-20"


Esto no se comenta tanto como de la memoria o el vídeo, pero también lo he oído varias veces y es bastante estúpido, quizá haya gente que cree que la limitación de la velocidad viene dada por el cable o por el conector.

En todo caso Commodore no hizo una unidad de disco para el C64, la 1541 es prácticamente idéntica a la 1540, que es la unidad de disco del VIC-20. Modificada para que sea algo más lenta, porque el C64 es algo más lento que el VIC-20 a nivel de ejecución de CPU. 

Cabe destacar que Commodore sí sacó disketeras más rápidas para modelos subsiguientes:
  • La 1551 para el C16/+4, que se conectaba al puerto de cartuchos. Está el poco conocido dato de que a pesar de eso no es más rápida que una 1541 con un turboloader.
  • La 1571 para el C128, que además es compatible con el VIC20, C64 y C16 (aunque en estos casos emula a una 1541).
Teniendo en cuenta que cuando el VIC20 y la 1540 salen al mercado en 1981, e incluso cuando se preparaba la salida al mercado del C64 en 1982, Commodore vivía de la línea PET, no me extrañaría que hubieran tomado la decisión deliberadamente. Así, si alguien quisiese disquetera rápida, tanto para el VIC20 como para el C64, podía comprar el cartucho interfaz IEEE488 y una disketera CBM8050 o similar.

De hecho recuerdo una publicidad en español de Commodore o del distribuidor tratando de explicar que el PET/CBM era para uso profesional y el VIC 20 para uso familiar con razones tales como "el VIC tiene el Basic 2.0 mientras que el PET/CBM tiene el Basic 4.0" y "la unidad de disco del VIC tiene 1 disco de 170 kB mientras que la del PET/CBM tiene 2 discos de 500 kB". Da idea de los esfuerzos que hacían las compañías, no solo Commodore, por mantener la posición de sus líneas cuando iban quedando obsoletas, recurriendo a cierto grado de desinformación.

Mito 4: El VIC20 es "difícil de programar".


Esto se he escucha menos a menudo, pero también es algo que se da por hecho. Quizá como justificación de la poca cantidad y/o calidad de software. El tema es, comparado con qué. 

Manic Miner, Kweepa, 2018
La CPU 6502 es relativamente común. Si se refiere a la poca memoria de serie, por loables que sean los esfuerzos por programar para una necesidad inferior de memoria, tiene más sentido ampliarla

Probablemente se refieran en comparación con el C64, que lo substituyó, o con el Spectrum, que fue la plataforma base para el desarrollo de videojuegos en Reino Unido. 

A pesar de que el parque de VIC20 en 1983 y 1984 era grande, no se ha podido disfrutar de juegos como Manic Miner hasta hace poco. Entonces quizá sí tendría que concordar en que la plataforma por las razones que fuese era difícil de programar, más con los medios de la época.

Consuela pensar que muchos otros ordenadores también se comieron los mocos en definitiva.

"Factos". Lo que se no se pudo disfrutar en el VIC.


A diferencia del C64, el VIC20 que aparece en 1981, quedó completamente olvidado hacia 1985. No se reanima la actividad hasta la era retro a mediados de los 2000. Es decir, tuvo una vida corta, más parecida a la de otros ordenadores olvidados como el Oric y el Sharp MZ, por citar un par. 

Es decir, no estuvo activo el suficiente tiempo para que los desarrollos sacasen mucho jugo a las máquinas que disfrutasen de ampliación de memoria. El VIC básico queda limitado por la poca memoria, aunque pueda haber algún título muy eficiente en el uso de memoria, como Pulse (Pixel, 2014).

Al hablar de desarrollos me refiero a multimedia, que es lo que se valora de los ordenadores retro actualmente, o sea, juegos y demos.

Los títulos más recordados suelen ser los cartuchos que sacó la misma Commodore al sacar la máquina, casi todos de tipo arcade, y los cartuchos que sacó Atari. Cuando salió el VIC20 en 1981 lo habitual eran los cartuchos o copiar listados de libros y revistas. El mercado de cintas se anima algo después.

Bertie the ball, Misfit, 2014

Teóricamente podría haber disfrutado de esos gráficos tipo Spectrum, con color clash pero muy detallados que pueden ser muy bonitos, pero apenas se observa ese estilo en unos pocos títulos modernos de Misfit, o un estilo parecido en los ports de Mojon Twins de Majikeyric.

Técnicamente podría haber disfrutado de los juegos populares en 1983 y 1984, de entre los juegos británicos sólo se recuerdo que se convirtiese el Jet Pac. De juegos americanos llegaron ports al menos de Activision, como Pitfall y Jungle Hunt, pero a menudo de calidad mediocre.

Está claro que programar sprites en el VIC-20 es muchísimo más trabajoso que utilizar los sprites nativos de un C64. Quizá más trabajoso también que con los gráficos tipo bitmap de un Spectrum.

Por otra parte, los gráficos tipo alfanumérico sí pueden hacer que muchas animaciones puedan ser muy rápidas. Como ejemplos de acción rápida, Myriad y Pulse.

No he puesto capturas de juegos rápidos porque en foto quedan mejor los juegos que tienen un background estático detallado, en contraposición a los juegos con scroll o con muchos elementos en movimiento.

En todo caso, cuando el soporte de distribución favorito cambió del cartucho a las cintas, el VIC 20 dejó de tener el mismo nivel software que el Spectrum y el C64. Sí hubo algunos títulos de más calidad para máquinas con +8kB y +16kB, pero habitualmente exclusivos de la plataforma y poco populares fuera de ella, por ejemplo, Submarine Commander. El Commodore 16 vino a ocupar el espacio "entry level" al que todavía aspiraba el VIC, y para 1984 era mucho más adecuado.

Pitfall, "remaster", Victragic, 2013
El VIC ahora disfruta de cierta popularidad por dos razones: no dejó de ser un ordenador muy vendido en algunos países, y además quizá algunos conceptos sencillos tienen más sentido en un VIC 20 que en un C64, donde el nivel está más alto.

Otra anécdota personal: siempre pensé que la competencia del VIC20 era el ZX81, que con una ampliación de 16kB éste era como un Spectrum en blanco y negro. Pero no, prácticamente no hay manera de sacar gráficos en un ZX81, a menos que sean tipo ASCII, en este sentido es más parecido a un PET. Podría haber competido con el Acorn Atom, pero éste sólo se distribuyó en forma de kit. Entonces quizá sea razonable decir que el VIC20 fue el primer ordenador doméstico barato (home computer).


Otras cosas interesantes del VIC20.

El sonido.


Es un tema que pasa un poco desapercibido, pero en una época en la que casi todos los ordenadores sólo eran capaces de emitir zumbidos, el VIC20 tenía bastantes más posibilidades.

Es decir, habitualmente parece que el VIC-20 estuviese a la cola en cuanto a prestaciones, exceptuando la calidad del teclado y la cantidad de periféricos. Pero al menos en el sonido es muy superior al Spectrum.

Aunque con unos tonos muy distorsionados y muy poco control sobre el volumen, tiene 3 canales y otro de ruido. Queda a la sombra del SID pero a mí me gusta bastante, me parece muy chiptune.

¿8 kB de memoria de video?


Un aspecto relacionado con la ampliación de memoria de 3kB es que se ubica en direcciones de memoria accesibles por el chip de vídeo VIC, los 8kB más bajos del espacio de direcciones. Para que el chip pueda acceder también es necesario que se trate de memoria interna, desafortunadamente no vale la ampliación externa.

Existe un mod consistente en añadir esos 3kB como memoria interna. Se deben poder contar con los dedos de una mano el número de ordenadores con ese mod. En un ordenador sin sprites disponer de 8kB de memoria de vídeo en vez de 4-5kB y poder cargar 3 o 4 juegos de caracteres en vez de 2 hubiese mejorado la capacidad gráfica.

Publicar un comentario

2 Comentarios

  1. Muy buen artículo, me ha sorprendido lo de las columnas "variables", desconocía esa característica del VIC20.

    ResponderEliminar
    Respuestas
    1. Gracias, la verdad es que si no lo has mamado en la época es difícil estar al corriente de todas las peculiaridades del sistema

      Eliminar