Desde hace tiempo podéis jugar a los PC Fútbol (y a otros juegos de Dinamic) desde el navegador en la sección Jugar de pcfsite. Ese sistema ha cumplido: ha devuelto a mucha gente a sus ligas de los 90 sin instalar nada. Pero tiene un techo, y hoy quiero contaros cómo lo vamos a superar. El lunes 26 de octubre por la mañana abrimos source.pcfsite.com Entra para ver el enlace, con los ocho PC Fútbol, del 4.0 al 2001, convertidos en programas nativos que funcionan sin emulador, y el repositorio público en GitHub para quien quiera participar.
Es un texto largo. Si solo queréis lo esencial: los juegos son los mismos de siempre, código original incluido, pero ahora corren como un programa de hoy; cargan en segundos, van fluidos, las partidas se guardan en vuestra cuenta, y todo el trabajo está abierto para que se mejore entre todos.
Los ocho se juegan en el navegador y guardan partidas. «Completo» quiere decir que se arranca, se recorre y se juega; no que esté libre de fallos. Quedan recorridos largos por hacer (temporadas enteras, apartados secundarios, el online del 2001 queda fuera) y seguro que aparecen cosas: para eso está el Diario de cada ficha y este foro.
Formas de ayudar, de menor a mayor:
Nos vemos el lunes en source.pcfsite.com. Las preguntas, aquí debajo.
Es un texto largo. Si solo queréis lo esencial: los juegos son los mismos de siempre, código original incluido, pero ahora corren como un programa de hoy; cargan en segundos, van fluidos, las partidas se guardan en vuestra cuenta, y todo el trabajo está abierto para que se mejore entre todos.
Lo que tenemos hoy y por qué se queda corto
La sección Jugar funciona con una máquina virtual: el navegador arranca un PC entero de la época (MS-DOS o Windows 98 completo) y el juego corre dentro. Es la forma más rápida de poner un juego antiguo en marcha, y por eso empezamos así. Pero la experiencia está lejos de la original, y quienes jugáis a menudo lo habéis notado:- La carga. Hay que descargar y arrancar un Windows 98 entero antes de ver el menú. Son cientos de megas y un buen rato de espera en cada visita.
- La velocidad. Emular un procesador instrucción a instrucción cuesta mucho más que ejecutar el programa. El simulador 3D de partidos, que ya exigía al PC de 1998, se arrastra; el ratón va con retardo; en portátiles modestos y en Safari la cosa empeora.
- El sonido. Pasa por una tarjeta de sonido emulada y por la emulación del sistema: cortes, desincronización con la imagen, músicas que no suenan.
- La fidelidad. El reloj del juego no es el del PC original: hay juegos que van demasiado rápido o demasiado lento, pantallas que parpadean, resoluciones que el navegador escala como puede.
- Las partidas. Viven dentro del disco virtual de esa máquina, en ese navegador. Perder los datos del navegador es perder la liga.
- Es una caja negra. Si algo falla dentro de la máquina virtual, no hay forma de arreglarlo juego a juego. Y nunca podrá dar más que el original: ni resoluciones modernas, ni mejoras, ni nada que el juego de 1998 no hiciera ya.
Lo nuevo: el juego traducido desde su propio código
En source.pcfsite.com no hay máquina virtual. Hemos cogido el programa original de cada PC Fútbol (el MANAGER.EXE y las bibliotecas propias de Dinamic que lo acompañan) y lo hemos traducido, instrucción a instrucción, a código fuente C, que después se compila como cualquier aplicación actual. El proceso, en cuatro pasos:- Localizar las funciones. Cada programa se analiza con Ghidra, la herramienta de ingeniería inversa de la NSA, que encuentra dónde empieza y acaba cada función. El PC Fútbol 2001 tiene unas 91.000. Las bibliotecas de Microsoft que traía el CD (MFC, el runtime de C) se tratan igual, porque el juego las usa de verdad.
- Traducir cada instrucción. Un traductor propio desensambla cada función y escribe, por cada instrucción del procesador, las líneas de C que hacen exactamente lo mismo. Los registros del procesador pasan a ser variables; la memoria del juego, una tabla. No se reescribe nada a mano ni se «mejora» la lógica: la táctica, el mercado, el simulador, la economía del club y hasta los errores del original son los de 1998, porque son su mismo código. Lo único que se toca es un parche de seis bytes en el 4.0 para que la comprobación anticopia (el escudo de la página del manual) se dé siempre por buena, como ya hacían las reediciones.
- Volver a escribir lo que ponía Windows. El juego le pide muchas cosas al sistema: ventanas, GDI, DirectDraw, Direct3D, DirectSound, DirectMusic, DirectShow, el registro, el CD, hilos, excepciones; en el 4.0, el MS-DOS, la VGA y la Sound Blaster. Todo eso se ha reimplementado desde cero en C++ sobre SDL, una biblioteca libre que funciona en macOS, Windows, Linux y el navegador. Incluye un Direct3D por software propio: es el que dibuja los partidos 3D del 6.0 al 2001 y, en el 2000 y el 2001, también los menús.
- Comprobar que es el mismo juego. Cada juego se recorre con guiones automáticos (ratón y teclado solos, capturas, registro del programa): menú, manager, alineación, partido, grabar y cargar. Todas las capturas de las fichas salen de ahí, de la versión traducida. Cuando algo falla, se compara con lo que hace el programa original hasta dar con la diferencia, y se arregla en nuestra capa, no en el juego. Cada arreglo queda anotado en el Diario público de cada ficha.
Qué cambia para quien juega
- Arranca en segundos, no en minutos. No hay sistema operativo que cargar.
- Va fluido. El simulador 3D del 2000 y el 2001 a buena velocidad, el ratón sin retardo, el sonido y la música sincronizados (la música MIDI del 2000 suena con el banco de instrumentos General MIDI original; la MP3 del 2001, decodificada en el propio juego).
- La imagen es la del original: resolución nativa de cada juego, escalada a la ventana o a pantalla completa sin recortes.
- Las partidas se guardan en tres sitios a la vez: en tu navegador (sin cuenta y sin conexión con nosotros), en tu cuenta de pcfsite si has entrado (para seguir la misma liga desde otro ordenador; se guardan las 10 últimas versiones de cada fichero y hay copia diaria), y en un fichero tuyo si lo descargas desde la ficha. Son exactamente los ficheros que grababa el juego original: una partida de aquí se abre en el juego original en un PC de 1998, y al revés.
- Transparencia total. La página «Cómo funciona» de source.pcfsite.com explica con detalle todo esto, incluido qué datos vuestros ve el sitio (los registros habituales del servidor web y nada más: ni rastreadores, ni anuncios, ni cuentas propias; la cuenta es la del foro).
Los juegos, hoy
| Juego | Versiones | Qué está |
|---|---|---|
| PC Fútbol 4.0 (MS-DOS) | la 4.1 del CD | Manager, Promanager, Historia, Base de datos |
| PC Fútbol 5.0 | base y Edición de Oro | completo |
| PC Fútbol 6.0 | base y Edición de Oro | completo, con el simulador 3D |
| PC Fútbol 7 | base y 7 Plus | completo, con el simulador 3D |
| PC Fútbol 2000 | con la Extensión | Euromanager, oficina, partido 3D, Historia, Base de datos, Seguimiento, FutbolQuiz, música MIDI, panel de ayuda |
| PC Fútbol 2001 | con las 13 actualizaciones oficiales (versión 3.6) | Euromanager, oficina, partido en modo resultado y 3D, música MP3, panel de ayuda |
Qué pasa con la sección Jugar
No desaparece de golpe. Los PC Fútbol de source.pcfsite.com son ya la forma recomendada de jugar; la máquina virtual se mantiene mientras el resto del catálogo de Dinamic (PC Calcio, PC Premier, PC Basket, los demás) se va portando con este mismo método, juego a juego. Es trabajo, y por eso lo siguiente.El código, abierto: participad
El lunes publicamos también el repositorio en GitHub: github.com/nuvolacat/pcfsite-source, con licencia GPL-3.0. Contiene el traductor, la plataforma, el reproductor web, la ficha técnica de cada juego y el sitio entero, con documentación en cada carpeta: cómo funciona el método, cómo se traduce un juego de principio a fin, qué variables de diagnóstico hay, cómo se prueba. No contiene ningún fichero de los juegos ni el código generado a partir de ellos: los datos de la versión web se publican con permiso de los titulares de los derechos de Dinamic Multimedia; para la versión de escritorio hace falta la copia propia del juego (el CD).Formas de ayudar, de menor a mayor:
- Jugar y contar lo que falla, aquí en el foro o abriendo un issue: qué juego, en qué pantalla, qué pasó. Con el registro del programa (en la web, ?log en la dirección lo muestra en pantalla) se encuentra casi todo.
- Recorrer a fondo un juego: una temporada entera, los apartados que menos se usan, comparar con el original.
- Versiones de escritorio. El código compila hoy en macOS; en Windows y Linux debería hacerlo con pocos cambios (es C y C++ sobre SDL3 y CMake), y ahí es donde hace falta gente: compilar, empaquetar un ejecutable que arranque desde la carpeta del CD, probar en distintas máquinas. Una versión de escritorio es el mismo juego, sin navegador, a pantalla completa.
- Mejorar la plataforma: cada juego nuevo pide piezas de Windows o DirectX que no estaban; cada pieza que se implementa mejor beneficia a todos.
- Portar el resto del catálogo: la documentación explica cómo se añade un juego desde su CD; las herramientas ya saben instalar desde los contenedores de Dinamic y desde los instaladores de los últimos títulos.
Un recordatorio
Todo esto es un proyecto de preservación hecho por aficionados, sin afiliación con Dinamic Multimedia ni con sus sucesores. Las marcas y los contenidos de los juegos son de sus dueños, y se publican con su permiso.Nos vemos el lunes en source.pcfsite.com. Las preguntas, aquí debajo.
3