Volver al inicio

ZX Spectrum controla el aterrizaje lunar en KSP

Scott Manley controló el aterrizaje lunar en Kerbal Space Program con ZX Spectrum vía emulador Fuse, Interface 1 y kRPC. El sistema manejó retrasos de 2 s, similar a Apollo AGC. Además, se creó un emulador Z80 usando IA Gemini 3 Pro.

Aterrizaje lunar en ZX Spectrum en KSP: tecnologías retro
Advertisement 728x90

Aterrizaje lunar en Kerbal Space Program mediante ZX Spectrum: Detalles técnicos

El entusiasta Scott Manley implementó el control del módulo lunar en el simulador Kerbal Space Program usando un ZX Spectrum de 1982. El ordenador de 8 bits —con un procesador Z80A de 3.5 MHz y hasta 128 KB de memoria— manejó la tarea a pesar de los retrasos de dos segundos. La integración se basó en el emulador Fuse, Interface 1 y el mod kRPC.

Limitaciones de hardware del ZX Spectrum y comparación con AGC

El ZX Spectrum contaba con un procesador Z80A (3.5 MHz), Sinclair BASIC y 16–128 KB de memoria. Esto superaba al Apollo Guidance Computer (AGC) de la misión Apollo 11: 2.048 MHz, arquitectura de 15 bits y 2048 palabras de memoria con paridad de 1 bit. Los programadores del AGC optimizaron el código para un uso mínimo de recursos, lo que requirió considerable ingenio.

Manley señaló que los cargadores de smartphones modernos tienen más potencia de cómputo que un ZX Spectrum, pero la máquina retro aún exigía una optimización cuidadosa. Tuvo que empaquetar variables para calcular orientación, aceleración y trayectoria en la memoria limitada para habilitar maniobras y aterrizaje.

Google AdInline article slot

Integración del ZX Spectrum con Kerbal Space Program

La conexión directa no es posible debido a la falta de USB. La solución:

  • Emulador Fuse para ZX Spectrum.
  • Interface 1 virtual con puerto RS232.
  • Script de Python para intercambio de datos sobre la interfaz serie.
  • Mod Kerbal RPC (kRPC) para control externo de KSP vía Python u otros lenguajes.

El programa BASIC leía telemetría y enviaba comandos. Un script de Python actuaba como intermediario entre RS232 y kRPC, retransmitiendo datos a la simulación en tiempo real.

10 REM Chtenie data with RS232
20 INPUT #1, a$,b$,c$
30 PRINT "Telemetry: ";a$;" ";b$
40 REM Sending komand
50 PRINT #1, "THROTTLE 0.5"
60 GOTO 10

Este bucle proporcionaba un control básico de la nave espacial.

Google AdInline article slot

Proceso de aterrizaje y rendimiento

Tras el lanzamiento, el programa iniciaba el descenso del módulo a la Luna. El sistema procesaba datos con un retraso de ~2 segundos —reflejando el ciclo del AGC, que calculaba parámetros de navegación en el mismo intervalo y aterrizó con éxito Apollo 11.

Manley había configurado previamente la conexión para monitoreo y control. Pila completa: Fuse + Interface 1 + Python + kRPC. Los retrasos no impidieron correcciones de trayectoria y un aterrizaje suave.

Proyecto adicional: Emulador de ZX Spectrum en C++

Manley revivió un emulador abandonado de ZX Spectrum escrito en C++. El proyecto se había estancado debido a las 158 instrucciones básicas del Z80, que se expanden a más de 800 opcodes con prefijos y modos de direccionamiento. La implementación manual era tediosa.

Google AdInline article slot

Usando Gemini 3 Pro y Google Antigravity IDE, terminó el desarrollo en una tarde. La IA generó el manejo de opcodes, permitiendo que el emulador ejecutara juegos.

  • Ventajas de la IA: automatiza lo tedioso, proporciona emulación precisa de Z80.
  • Resultado: un emulador funcional sin errores en escenarios básicos.

Puntos clave

  • El ZX Spectrum (1982) supera en potencia al AGC (1969), pero aún necesita optimización para tareas en tiempo real.
  • La pila Fuse + Interface 1 + kRPC permite integrar sistemas de 8 bits con simuladores modernos.
  • Un ciclo de dos segundos coincide con el AGC y es suficiente para aterrizar.
  • La IA (Gemini 3 Pro) acelera la emulación de Z80 generando más de 800 opcodes en horas.

— Editorial Team

Advertisement 728x90

Leer después