Índice/ Anuncios y noticias/ source.pcfsite.com: los PC Fútbol traducidos desde su propio código (abre el lunes 26)
Anuncio Noticia

source.pcfsite.com: los PC Fútbol traducidos desde su propio código (abre el lunes 26)

4 mensajes · 23 vistas
#1 por jordirubo » Hoy, 14:15
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.

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:
  1. 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.
  2. 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.
  3. 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.
  4. 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.
El mismo código C se compila a WebAssembly para el navegador. El juego corre en un hilo aparte de la página, dibuja en un canvas y usa el audio del navegador. No se descarga el CD entero: cuando el juego abre un fichero, el navegador pide al servidor de datos solo el trozo que necesita (peticiones de 512 KB), y en segundo plano va guardando en caché lo que el juego más usa, para que no haya esperas a mitad de pantalla. Hace falta un navegador reciente (Chrome, Edge, Firefox o Safari) y unos 2 GB de memoria libre.

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

JuegoVersionesQué está
PC Fútbol 4.0 (MS-DOS)la 4.1 del CDManager, Promanager, Historia, Base de datos
PC Fútbol 5.0base y Edición de Orocompleto
PC Fútbol 6.0base y Edición de Orocompleto, con el simulador 3D
PC Fútbol 7base y 7 Pluscompleto, con el simulador 3D
PC Fútbol 2000con la ExtensiónEuromanager, oficina, partido 3D, Historia, Base de datos, Seguimiento, FutbolQuiz, música MIDI, panel de ayuda
PC Fútbol 2001con las 13 actualizaciones oficiales (versión 3.6)Euromanager, oficina, partido en modo resultado y 3D, música MP3, panel de ayuda
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.

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.
Y, más adelante, lo que el método hace posible por primera vez: con el código legible función a función, añadir lo que entonces no existía (resoluciones modernas, pantalla completa nítida, editores) sin romper nada, porque el original sigue ahí debajo, intacto.

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.
#2 por Titu » Hoy, 14:47
Muy interesante.

¿Es más o menos parecido al proyecto de @jgervais ?

Entra para ver el enlace

¿Se podrá ejecutar fuera del navegador? Para no depender de internet.
"Hola, me voy a presentar, soy tu asistente."
#3 por jordirubo » Hoy, 15:16 · editado
Es exactamente lo mismo solo que pcfsource implementa mejoras gráficas y funcionales.

Y lo de las apps externas si tengo tiempo las presento el lunes.
#4 por Stojakovic » Hoy, 15:33 · editado
Cada día te superas más @jordirubo

Muchísimas gracias por esta obra de arte, todo el esfuerzo, la dedicación y por seguir regalándole tanto amor a la comunidad de PC Fútbol
En mis tiempos mozos, actualizaba el mítico PC Fútbol 2001
──────────────────────────────────────────────────
👉 Sígueme en 𝕏: @PuenRober Entra para ver el enlace