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.
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.
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.
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
Aún no hay comentarios.