Seguro que muchos recordaréis las partidas eternas a 3D Pinball: Space Cadet en los ordenadores del colegio o la oficina. Durante casi dos décadas se dio por hecho que su desaparición en Windows Vista respondía a un conflicto de licencias.
Pero ahora, Raymond Chen, ingeniero de Microsoft con más de treinta años en la compañía, ha explicado en su blog que el motivo real fue un error de programación que nadie logró localizar a tiempo, no un problema legal.
Chen formaba parte del equipo que migró Windows XP a 64 bits. Al compilar el sistema en el chip Alpha AXP, usado antes de que existiera el hardware Itanium, la bola de la mesa Space Cadet atravesaba el émbolo de lanzamiento y caía fuera de la mesa. Las partidas duraban apenas unos segundos.
Un error de redondeo que sus propios ingenieros no lograron corregir
Como os podéis imaginar, el detector de colisiones fallaba por un error de redondeo en coma flotante, un fallo típico al migrar cálculos entre arquitecturas de 32 y 64 bits. Chen y un compañero revisaron el motor físico del juego, pero el problema resultó mayor que el propio error, nadie sabía por dónde empezar a buscarlo.
El código lo había escrito años antes una empresa externa, Cinematronics, responsable del motor de Full Tilt! Pinball, del que Microsoft solo licenció la mesa Space Cadet. Nadie en la compañía entendía su funcionamiento interno ni el programa incluía comentarios que explicaran la lógica de cada función. Ni siquiera lograron localizar la parte responsable de mantener la bola sobre la mesa, así que corregirlo habría exigido estudiar línea a línea un motor ajeno, sin garantías de éxito.
Con millones de líneas de código todavía pendientes de migrar a 64 bits y una fecha de lanzamiento fijada, el equipo de Chen optó por una solución pragmática. Como explicó él mismo, no podían permitirse pasar días estudiando el código para descubrir qué oscuro error de redondeo en coma flotante estaba haciendo fallar la detección de fallos en el juego de Windows.
Ese motor ajeno y sin documentación no era prioritario con el resto del sistema pendiente de portar. Chen ha reconocido que esta sigue siendo una de las pocas decisiones que todavía le dejan un poso de nostalgia. Antes de que el juego desapareciera, él mismo había resuelto otro problema del Pinball original: el código no tenía límite de fotogramas y llegaba a renderizar más de un millón por segundo, dejando el procesador al cien por cien de uso. Con un límite de 120 fotogramas por segundo, el consumo bajó hasta el uno por ciento.
En 2022, Chen precisó que el fallo grave no ocurrió en Itanium, el procesador que finalmente usó Windows XP 64-bit Edition, sino en el Alpha AXP que Microsoft empleaba antes de tener listo ese hardware. Según su hipótesis, la causa fue un error en el modo de redondeo de la biblioteca en tiempo de ejecución de C, corregido después sin que nadie le avisara de que Pinball volvía a funcionar.
Por qué la licencia impide que Pinball vuelva de forma oficial
El error técnico explica la salida de Pinball en Windows Vista, pero no su ausencia durante casi dos décadas. En 2018, un equipo interno de Microsoft Garage intentó recuperar el juego rediseñando la versión de 32 bits, que sí funcionaba sin problemas. Una revisión legal del contrato frenó el proyecto: Microsoft solo tenía derechos para incluir el pinball Space Cadet en Windows y en el paquete Microsoft Plus.
La empresa nunca llegó a ser propietaria del motor original: solo obtuvo permiso para integrarlo en sus productos, no para explotarlo de forma independiente. Ese acuerdo cubría únicamente el título Space Cadet, no la distribución del juego por separado ni la publicación de su código fuente. Cinematronics y Maxis, las empresas responsables del título original Full Tilt! Pinball, terminaron absorbidas por Electronic Arts, así que los derechos siguen en manos de una compañía ajena al pacto original con Microsoft.
