Commodore OS Vision 3.0: Revive la Gloria Retro en Tu PC


Los Commodore 64 (1982) y Amiga (1985) revolucionaron la informática doméstica: el C64, con 64 KB RAM, chip gráfico VIC-II (16 colores, sprites) y sonido SID (3 voces sintetizadas), fue el ordenador domestico más vendido (17+ millones) gracias a su BASIC integrado y miles de juegos accesibles. Frente al ZX Spectrum (1982), que destacaba por su CPU Z80 más rápida (3.5 MHz vs 1 MHz del C64), mayor resolución (256×192) y precio mas asequible (16/48 KB RAM), el C64 superiorizaba en gráficos multicolores sin «attribute clash», sprites hardware, scrolling suave y sonido profesional (e incluso un teclado mecánico muy distintivo), aunque el Spectrum brillaba en ports precisos y programación vectorial pese a su altavoz básico.

Bueno han pasado unos cuantos años ¿ y si quisiéramos recordar esos míticos tiempos?…pues commodore OS Vision 3.0 es una buenísima opción porque puede transformar cualquier PC en una máquina retro inspirada en estos íconos, fusionando nostalgia de los 80-90 con un Linux moderno basado en Debian Bookworm. Esta distro gratuita de 64 bits incluye más de 200 juegos preinstalados, emuladores listos y una interfaz clásica, perfecta para entusiastas de electrónica, DIY y sistemas embebidos que buscan un setup instantáneo para jugar y programar.

La estrella es su BASIC V1 renovado, compatible con gráficos 3D, sprites, tilemaps, físicas avanzadas y datos personalizados, ideal para revivir la programación directa de la era Commodore y enseñar a nuevas generaciones. El menú principal da acceso rápido a emuladores C64/Amiga, juegos Linux-retro, demos, editores de píxeles, trackers MOD/SID y manuales escaneados con estética vintage. Commodore OS Central integra recursos comunitarios, con planes para una tienda que ampliará contenidos sin perder el espíritu DIY.

Imagen del Commodore 64x  designada por Barry Altman and Leo Nigro in 2010

Commodore OS Vision 3.0: Actualizaciones, Descargas y el Renacer de Commodore

Commodore OS Vision 3.0, lanzada el 22 de abril de 2025 por la nueva Commodore International Corporation (formada el 12 de julio de 2025 tras una campaña fan-driven), representa la distro Linux gaming-retro más ambiciosa: basada en Debian, incluye 200+ juegos Linux gratuitos, clásicos C64/Amiga vía emuladores, OS BASIC con gráficos 3D/sprites/físicas, Commodore OS Central (hub de recursos, futura tienda/lanzador) y un configurador retro para ROMs/boot jingles.

Su origen en 2010 se centra por Leo Nigro para Commodore USA (precargada en C64x de Barry Altman), pasó por v2.0 (diciembre 2023) enfocada en nostalgia con software Linux avanzado (ofimática, 3D, edición). En 2025, saga «Vamos a comprar Commodore» (#WeAreCommodore): vídeos de Perifractic (RetroRecipes) impulsan reacquisición por fans como Sean Donohue (MyRetroComputer), culminando en anuncios: «Compramos Commodore!» (30 junio), C64 Ultimate (12 julio) – resurgimiento del PC más vendido (12.5M unidades hasta 1993) con WiFi/LED, 10k+ juegos compatibles, bajo lema «Desconecta el Caos. Return to the Pixel», alineado con tendencias retro (35% demanda jóvenes, estudio Journal of Retro Computing 2023) y anti-fatiga digital (20% aumento, Univ. Sydney 2024).

​Descargas Directas y Recursos Oficiales

Instalación: Guía Paso a Paso Detallada

Paso 1: Descarga de la ISO

Accede a la web oficial https://www.commodoreos.net/CommodoreOS.aspx y selecciona la descarga de Commodore OS Vision 3.0 (35 GB). Elige torrent (recomendado por velocidad y estabilidad) o descarga directa. Verifica el hash SHA256 del archivo para integridad.

Paso 2: Preparar USB Bootable

Inserta un USB de ≥64 GB (vacío, se borrará todo). Descarga Rufus desde https://rufus.ie/es/ o usa BalenaEtcher. En Rufus: selecciona la ISO, elige el USB, activa «DD Image» mode si aparece, y haz clic en Start. Espera 10-15 minutos; el USB queda listo.

Paso 3: Configurar BIOS/UEFI para Boot

Reinicia tu PC, entra en BIOS (F2, DEL o F12 según placa). Desactiva Secure Boot, prioriza USB en Boot Order, guarda y sale. Si usas VM: crea máquina en VirtualBox/VMware, asigna ≥4GB RAM, 2-4 cores CPU, 64GB disco virtual.

Paso 4: Primer Arranque y Prueba Live

Inserta USB, reinicia: selecciona «Try Commodore OS» para modo Live (sin instalar). Explora juegos/emuladores, prueba WiFi/sonido. Verifica compatibilidad hardware antes de instalar.

Paso 5: Instalación en Disco Duro

Desde Live, abre instalador (icono escritorio). Elige idioma/español, teclado, zona horaria. Selecciona particiones: usa GParted para formatear (ext4 raíz, swap si <8GB RAM), o instalación automática. Confirma, escribe GRUB bootloader. Proceso: 20-30 minutos.

Paso 6: Post-Instalación y Actualizaciones

Reinicia sin USB. Actualiza sistema: abre terminal, ejecuta sudo apt update && sudo apt upgrade. Configura drivers (NVIDIA/AMD si aplica) vía repositorios. Accede foro forum.commodoreos.net para WiFi fixes o tweaks específicos.

Ideal para Proyectos Electrónicos y DIY

¿Te sientes nostálgico? El sistema operativo Commodore puede actualizarse con ROMs C64 y Amiga (de Cloanto) para ser compatible con Commodore, con la capacidad de ejecutar software clásico de la era de Commodore de 8, 16 y 32 bits mediante emulación. Actualmente se está desarrollando un precioso lanzador universal de juegos que te permitirá navegar fácilmente por juegos para Commodore PET, VIC-20, C16/Plus4, C64, C128 y AMIGA, así como otros microordenadores y consolas de la época. No hace falta preocuparse por disquetes, ya que muchos juegos pueden comprarse legalmente y descargado de internet a tu ordenador, o reproducido bajo demanda directamente desde Internet Software Archiv.

Una pantalla mas grande para el ESP32


En un post anterior vimos como usar una pequeña pantalla OLED con un ESP32. Ciertamente una pantalla pequeña consume menos y ocupa muy poco espacio, pero cuando no tenemos esos problemas, es mas interesante usar una pantalla algo mas grande, pues aunque pueda parecer elegante, en realidad con una pantalla tan pequeña apenas hay sitio para mostrar información (además de que posiblemente cueste lo mismo y además suelen usar los mismo pines de datos).

En este post vamos usar la AZ-Delivery 1.77″ ST7735 con ESP32 (comprado en Amazon en https://amzn.to/4pK0utQ ) y la librería de Adafruit donde solo tenemos que adaptar el constructor y asegurarnos de que el cableado coincide con los pines correctos (en nuestro caso 14,13,12,27,26).

Atención porque aunque el manual de Az-Delivery que nos ofrece este pantalla solo muestren como ejemplo un Arduino mega con un adaptador ( ver figura mas abajo), es posible conectar directamente la pantalla AZDelivery de 1.77 pulgadas ST7735 al ESP32 sin conversor de nivel lógico.

En caso de usar un Arduino Uno como hemos visto arriba, el cableado se complica dado que tenemos adaptar 4 líneas de datos a los niveles de 3.3v. Como vemos para configurar este adaptador, se debe conectar el pin VA del LCC a +3.3V y el pin VB a +5V. El pin OE debe unirse a +3.3V mediante una resistencia de arranque de 1 kΩ, mientras que el pin GND se conecta a tierra. En esta configuración, el lado “A” del LCC trabaja con señales de bajo nivel (3.3V) y el lado “B” con señales de alto nivel (5V), tal como se muestra en el diagrama de conexión.

Es muy importante destacar que como el ESP32 opera a niveles lógicos de 3.3V, compatibles con los requisitos de la pantalla (2.7V-3.3V) NO NECESITA UN SHIFTER , a diferencia del Arduino Uno o un ATMega328P que usan 5V y necesitan un shifter como el TXS0108E.

Aclarado este aspecto del conversor que NO NECESITAMOS usando un ESP32, en la imagen vemos las 8 conexiones dela pantalla , por cierto en el mismo orden que la pantalla pequeña que vimos en un post anterior:

Una vez vistas las conexiones, el cableado con los pines elegidos y funcionales debe mantenerse exactamente el mismo mapeo que usábamos en la pantalla de 0.96″:

  • SCL/SCK → GPIO14 (SCK del bus SPI)
  • SDA/MOSI → GPIO13 (MOSI)
  • RES/RST → GPIO12
  • DC/A0 → GPIO27
  • CS → GPIO26
  • VCC → 3.3V
  • GND → GND
  • LED/BL → 3.3V (o a un GPIO si quieres controlar el brillo)​

En el código también debemos ajustar el constructor de Adafruit. En lugar de:

Adafruit_ST7735 tft = Adafruit_ST7735(10, 8, 9);

Usa tus pines (CS, DC, RST):
#define TFT_CS   26
#define TFT_DC 27
#define TFT_RST 12

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

El resto del SPI (SCK=14, MOSI=13) lo maneja SPI por hardware. No hace falta pasarlos al constructor si usamos el SPI por defecto del ESP32.​

Inicialización correcta para 1.77″ 128×160

En setup() usaremos el inicializador recomendado para 1.77″ (Adafruit lo llama “INITR_BLACKTAB” o “INITR_GREENTAB”; muchas 1.77″ van bien con BLACKTAB):

void setup(void) {
SPI.begin(14, -1, 13, 26); // SCK=14, MISO sin usar (-1), MOSI=13, CS=26
tft.initR(INITR_BLACKTAB); // si ves colores raros, prueba INITR_GREENTAB
tft.fillScreen(ST77XX_BLACK);
delay(500);
show_page();
tft.setTextColor(ST77XX_WHITE, ST77XX_BLACK);
tft.setTextSize(2);
tft.setFont(); // vuelve a la fuente por defecto
}

Fíjate que es setTextColor, no setTextcolour (esa grafía daría error de compilación).​

Se pueden utilizar cualquiera de los siguientes colores predefinidos:
ST77XX_BLACK
ST77XX_RED
ST77XX_BLUE
ST77XX_MAGENTA
ST77XX_ORANGE
ST77XX_WHITE
ST77XX_GREEN
ST77XX_CYAN
ST77XX_YELLOW

O también, se pueden utilizar números hexadecimales de 4-bits que representan un color específico (por ejemplo 0x2AFF)

Las fuentes se encuentran en la carpeta de la librería Adafruit_GFX: … > Arduino > libraries > Adafruit_GFX_Library > Fonts Cuando se importa una fuente específica, se debe importar la librería de fuentes después de la librería Adafruit_GFX, como en las siguientes líneas del código de ejemplo

4. Código adaptado para ESP32 y pines deseados

Aquí sin mas dilaciones un ejemplo de sketch funcional ajustado a un ESP32 con librerías Adafruit y usando los pines descritos ( y por supuesto probado en este humilde blog):

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Fonts/FreeSansBold9pt7b.h>
#include <Adafruit_ST7735.h>

#define TFT_CS 26
#define TFT_DC 27
#define TFT_RST 12

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

void setup(void) {
// SPI en los pines que quieres: SCK=14, MOSI=13
SPI.begin(14, -1, 13, TFT_CS);

tft.initR(INITR_BLACKTAB); // o INITR_GREENTAB si hace falta
tft.fillScreen(ST77XX_BLACK);
delay(500);
show_page();
tft.setTextColor(ST77XX_WHITE, ST77XX_BLACK);
tft.setTextSize(2);
tft.setFont(); // fuente por defecto (bitmap)
}

void loop() {
for (uint8_t i = 0; i < 100; i++) {
changing_value(i);
// delay(100);
}
}

void show_page() {
tft.setFont(&FreeSansBold9pt7b);
tft.fillScreen(ST77XX_BLACK);
tft.setTextColor(ST77XX_RED);
tft.setCursor(14, 22);
tft.print("AZ-Delivery");

tft.drawFastHLine(0, 35, 128, ST77XX_GREEN);

tft.drawTriangle(1, 45, 28, 70, 55, 45, ST77XX_WHITE);
tft.fillTriangle(78, 70, 104, 45, 127, 70, 0xA3F6);

tft.drawRect(1, 80, 50, 30, ST77XX_BLUE);
tft.fillRoundRect(78, 80, 50, 30, 5, 0x2D4E);

tft.fillCircle(25, 135, 15, 0x5BA9);
tft.drawCircle(102, 135, 15, ST77XX_GREEN);
tft.drawLine(45, 150, 80, 40, ST77XX_ORANGE);
}

void changing_value(uint8_t value) {
tft.setFont(&FreeSansBold9pt7b);
tft.setTextColor(ST77XX_WHITE, ST77XX_BLACK);

if (value < 10) {
tft.setCursor(15, 88);
tft.print("0");
tft.print(value);
} else {
tft.setCursor(15, 88);
tft.print(value);
}
}

Este código muestra cómo inicializar y manejar una pantalla TFT basada en el controlador ST7735 usando la librería Adafruit_ST7735 junto con Adafruit_GFX. Primero se definen los pines de conexión del display (CS, DC y RST) y luego se configura la comunicación SPI utilizando pines personalizados para SCK (14) y MOSI (13). En la función setup(), se inicializa la pantalla con un estilo determinado (INITR_BLACKTAB), se limpia con color negro y se llama a la función show_page(), que dibuja una página inicial con texto, líneas, triángulos, rectángulos y círculos de distintos colores, mostrando las capacidades gráficas de la librería.

En la función loop(), el programa recorre valores del 0 al 99 y los muestra en pantalla mediante la función changing_value(). Esta función actualiza una cifra en una posición fija de la pantalla usando una fuente más grande (FreeSansBold9pt7b) y color blanco sobre fondo negro. De esta forma, el código demuestra tanto cómo renderizar gráficos estáticos (formas y texto) como cómo actualizar valores dinámicos en la pantalla TFT, lo que resulta útil para interfaces visuales en proyectos con microcontroladores, por ejemplo, medidores o indicadores en sistemas embebidos.

Con esto mantenemos exactamente las mismas líneas SPI (14,13,12,27,26) que ya teníamos en la pantalla mas pequeña y aprovechamos la librería oficial de Adafruit para el ST7735 de la AZ-Delivery.​