La actualización Windows 11 24H2 causa problemas en juegos antiguos como Grand Theft Auto: San Andreas

EntretenimientoVideojuegos

La actualización Windows 11 24H2 causa problemas en juegos antiguos como Grand Theft Auto: San Andreas

La última actualización de Windows 11 ha generado fallos inesperados en juegos clásicos, afectando la experiencia de los usuarios en títulos como GTA: San Andreas.

Descripción

Microsoft lanzó en octubre de 2023 la actualización de Windows 11 24H2, que incluye varias mejoras notables como actualizaciones en Copilot, soporte ampliado para archivos tar y 7z, un nuevo modo de ahorro de energía y mayor compatibilidad con equipos recientes. Sin embargo, esta actualización también ha generado problemas inesperados en ciertos videojuegos, en particular en clásicos como Grand Theft Auto: San Andreas.

Tras la implementación de la actualización, algunos jugadores reportaron la desaparición del avión Skimmer en el juego, un fallo que afectaba la experiencia en el mundo abierto. Estos informes, que comenzaron a circular en las comunidades, llamaron la atención del desarrollador Silent, conocido por su proyecto de mejoras no oficiales SilentPatch, destinadas a optimizar el funcionamiento de juegos antiguos en sistemas modernos.

Silent llevó a cabo una investigación y descubrió que la desaparición del avión se debía a errores en valores flotantes dentro del código del juego, específicamente en una función llamada CPlane::PreRender. Cuando el juego intentaba ajustar el rotor del avión, utilizaba un valor de velocidad que alcanzaba cifras astronómicas (del orden de 3,73e+29), lo que provocaba que el juego colapsara ante estos números incorrectos.

Este problema surgía por la forma en que el juego carga los datos del vehículo desde el archivo vehicles.ide. En particular, la entrada del Skimmer no incluía parámetros necesarios para sus ruedas, por lo que los valores en memoria estaban sin inicializar, dependiendo de datos residuales que, por pura suerte, en versiones previas de Windows permanecían intactos y permitían configurar correctamente el vehículo.

El cambio en Windows 11 24H2, sin embargo, modificó el uso de memoria en funciones internas relacionadas con la lectura de archivos, en concreto en la función LeaveCriticalSection. Este cambio hizo que los valores residuales anteriores se sobrescribieran, exponiendo la vulnerabilidad y provocando que el juego interpretara datos corruptos —como un valor de Z del bounding box de -4,3e+33—, lo que causaba que el avión desapareciera o lanzara al personaje hacia el cielo en una especie de bucle de errores.

Silent aclara que este no es un error de Windows en sí, sino una consecuencia de que el código del juego dependía de comportamientos no definidos del sistema operativo, cuyo cambio en Windows 11 24H2 fue la causa del problema. Como solución temporal, ofrece a los usuarios la posibilidad de editar manualmente el archivo vehicles.ide, añadiendo los parámetros faltantes para el Skimmer, lo que permite recuperar la presencia del avión antes de que se lance un parche oficial o por SilentPatch.

Este episodio pone en evidencia cómo pequeñas dependencias en la programación de juegos antiguos pueden verse afectadas por cambios internos en sistemas operativos modernos, recordando la importancia de actualizar y revisar el código para evitar errores que afectan la experiencia del usuario.