Ford Racing: Off Road (2008) PC


El último juego de coches creado por el estudio británico Razorworks, y el penúltimo juego creado por dicho estudio antes de su disolución. El honor de ser el último recae sobre Pipe Mania, que salió a la venta una semana más tarde que el juego que nos ocupa. Las críticas de este Ford Racing: Off-Road fueron, como siempre, tibias: un buen juego, pero que se queda a medias. Como todos los Ford Racing desde el 2.

A pesar de salir en 2008, con XBox 360 y PS3 ya en el mercado, este juego se fundamenta en la anterior generación: PS2, PSP, Wii y PC. Esto se traduce en un apartado técnico bastante discreto, incluso para la época. Aun así, tiene esa fluidez, manejo y físicas tan agradables que lo hacen muy atractivo de manejar y muy disfrutable. Lástima que le falte contenido y que todo se vea un poco tosco y a medio cocinar.


╔════════════════════════════╗
FORD RACING: OFF-ROAD
PC
╚════════════════════════════╝

Haremos un recorrido detallado, pero más rápido que en otras ocasiones, sobre el proceso de "restauración" para hacerlo funcionar en sistemas modernos (Windows 11) y que luzca mejor que nunca. Si te interesa el tema, como siempre digo, te recomiendo seguir los pasos en orden y no dejarte nada. Manos a la obra.


╔════════════════════════════╗
Descarga e instalación
╚════════════════════════════╝

Una vez más, este juego es imposible de conseguir por ninguna vía que no sea la segunda mano de la versión física. Existe una versión de Steam pero que ha sido retirada de la venta por tema de licencias. También la puedes conseguir en archive.org.

Procedamos: monta la imagen ISO con tu creador/gestor de unidades virtuales favorito (si no tienes ninguno, te recomiendo WinCDEmu). Si no salta el autorun, puedes ejecutar manualmente el "Autorun.exe" desde el disco o, directamente, el "Setup.exe". Para abreviar, esta vez no pondré capturas del proceso de instalación porque es realmente sencillo.

Si no hacemos ninguna modificación al juego, necesitaremos tener en todo momento el CD montado en la unidad virtual para poder jugar, a menos que utilicemos el widescreen patch, que elimina, a su vez, la protección SecuROM 7 del juego, como enseguida veremos.


╔════════════════════════════╗
Descarga e instalación del Widescreen fix
╚════════════════════════════╝

En primer lugar, haremos una copia de seguridad del ejecutable del juego, "FordORRexe". A continuación, descargaremos el Widescreen/FOV Fix, cortesía de Widescreen Gaming Forums, desde este enlace o desde este mirror. Una vez descargado, descomprimiremos el archivo y copiaremos el ejecutable a la carpeta del juego (por defecto, en C:\Archivos de Programa (x86)\Xplosiv\Off Road). Nos pedirá, por supuesto, sustituir el ejecutable. 

Dicho lo cual, ¡no arranques el juego todavía! Aún hay un par de cosas importantes que hacer.


╔════════════════════════════╗
Descarga, instalación 
y configuración de dgVoodoo
╚════════════════════════════╝

dgVoodoo traducirá el DirectX 9.0c de este juego a un más actual DirectX 11 y nos permitirá ejecutarlo a la resolución que queramos (con filtrado anisotrópico de hasta 16x y Multisampling Anti-Aliasing de hasta 8x), nos ayudará a corregir algunos problemillas de Z-Fighting aumentando la precisión del depth buffer (este juego no lo necesita) y también nos allanará el camino para poder usar ReShade.

Para empezar, descargaremos la última versión de dgVoodoo de su web oficial. La última versión disponible ahora mismo es la 2.82.5. Una vez descargado, extraeremos del zip los siguientes archivos a la carpeta del juego:

dgVoodoo.conf
dgVoodooCpl.exe
MS\x86\D3D9.dll

Una vez hecho, ejecutaremos dgVoodooCpl.exe como administrador. Una vez abierta la interfaz de dgVoodoo, haremos clic con el botón derecho sobre alguna zona libre de la ventana y nos saldrá un menú contextual, del que seleccionaremos "Show all sections of the configuration". Nos aparecerán, entonces, varias pestañas nuevas. Nos aseguraremos de que las opciones de las dos pestañas generales y las dos de DirectX quedan como en las capturas que se muestran a continuación:





En la resolución de pantalla de la segunda captura tendrás que poner, lógicamente, la resolución a la que quieres que se renderice el juego. En mi caso, 3840x2160, pero en tu caso puede ser distinta, según la resolución nativa de tu monitor.

Con el filtrado anisotrópico x16 y al MSAA x8 forzados desde dgVoodoo, obtendremos una imagen tremendamente sólida y nítida, salvo en los contornos de las texturas/sprites con transparencia. Para solucionarlo y conseguir un acabado sin nada de shimmering ni aliasing, activaremos el anti-aliasing de transparencia desde el panel de control de nuestra gráfica. En el caso de Nvidia, crearemos un perfil para este juego y forzaremos el anti-aliasing de transparencia a x8. Si queremos maximizar aún más la calidad y estabilidad temporal de la imagen, podemos forzar, además, algunos parámetros adicionales (en negrita):


Con esto los gráficos se verán más sólidos que nunca. 


╔════════════════════════════╗
Ajustes gráficos, sonido, control e idioma
╚════════════════════════════╝

Uno de los detalles que hablan por sí solos acerca de la cutrez de este juego es que, aún en pleno 2008 (recordemos que Bioshock salió el año anterior) nos encontramos con que los ajustes del juego se gestionan a través de una utilidad aparte, un ejecutable llamado "SysConfig.exe", que se encuentra en la carpeta "PCConfig" dentro del directorio principal del juego. Una solución arcaica, antediluviana y ortopédica, pero es lo que hay. Además, antes de ponernos a tocar parámetros, hay que hacer dos puntualizaciones:

  • La forma de funcionamiento no es demasiado consistente: la primera vez que ejecutamos dicha aplicación, se nos abrirá la venta de interfaz de la misma, donde tendremos distintas pestañas con parámetros para ajustar. Hasta aquí todo correcto. Sin embargo, tan pronto como hayamos hecho esto una vez y hayamos guardado los cambios, las próximas veces que ejecutemos dicha aplicación se ejecutará el juego directamente, sin permitirnos ni darnos oportunidad de hacer cambios en los ajustes. Este problema se soluciona ejecutando dicha aplicación como administrador (no importa que ya la hayas ejecutado antes), ya sea escogiendo la opción del menú contextual al hacer clic con el ratón derecho sobre el ejecutable, o haciendo el cambio de forma permanente para que, desde ese momento, simplemente tengamos que hacer doble clic en el ejecutable:


  • La propia ventana de la aplicación tiene un botón específico para ejecutar el juego una vez hayamos hecho los cambios pertinentes. La gracia del asunto ese que ese botón no funciona, dándonos el siguiente error:
Como nota al margen, existe un modo de que no aparezca dicho error: mover todos los archivos de la carpeta PCConfig, incluido el propio ejecutable, al directorio principal del juego. En ese caso el juego se ejecutará, pero en mi caso lo hacía con la ventana minimizada y fuera de foco, por lo que tenía que seleccionarla manualmente. Para ahorrarnos estas películas, mejor prescindir de dicho botón y usar el ejecutable del juego o su acceso directo.

Hechas estas salvedades, nos encontramos con la pestaña "Mostrar" (traducción lamentable del inglés "Display"), donde tendremos que escoger una resolución. ¿Qué resolución? Veámoslo:
  • Podemos escoger una resolución acorde al aspect ratio de nuestro monitor, pero inferior al mismo. Por ejemplo, en mi caso (monitor 4K), podría escoger 1280x720. ¿Por qué no la resolución nativa? Si recuerdas, en dgVoodoo ya hemos escogido la resolución nativa de nuestro monitor, y es la resolución a la que se van a ejecutar los gráficos 3D del juego pase lo que pase. Entonces, ¿qué utilidad tiene escoger en los ajustes del juego una resolución inferior (siempre respetando el aspect ratio)? Muy sencillo: gracias a eso conseguiremos que la interfaz de usuario/HUD se muestre a un tamaño mayor, evitando el clásico problema de "la interfaz de mi juego de hace 20 años es demasiado pequeña y, por tanto, ilegible, cuando lo corro a 16K", al tiempo que los gráficos 3D se verán ultranítidos al estar ejecutándose a lo que le hayamos dicho a dgVoodoo. Aquí puedes ver la diferencia entre escoger en los ajustes del juego una resolución inferior o superior:
1280x720 en Configuración del juego

3840x2160 en Cofiguración del juego

Como puedes ver, el espacio entre palabras a 4K sencillamente no existe, y los iconos de Intro y Escape de la parte superior derecha son mucho más pequeños. A la vista de estas capturas, la elección parece sencilla: escoger en los ajustes del juego, tal como hemos dicho, una resolución inferior a la nativa con el mismo aspect ratio. ¿Verdad? ¡FALSO! A pesar de lo visto, el hecho de escoger esa resolución inferior afectará muy negativamente a un aspecto del apartado gráfico de vital importancia, y que NO SE PUEDE DESACTIVAR DE NINGÚN MODO: el "specular bloom". Observa la diferencia de dicho efecto, de nuevo, a las mismas dos resoluciones:

1280x720 en Configuración del juego

3840x2160 en Configuración del juego

Como ves, el ponzoñoso efecto bloom presente en algunos circuitos depende de la resolución del juego, y es, como ocurre con el HUD y otros elementos 2D, independiente de la resolución de renderizado fijada en dgVoodoo. Es decir, que responde a la resolución fijada en los ajustes del propio juego: si ambas resoluciones coinciden, el efecto se mostrará correctamente, aunque sigue siendo guarrísimo y produce un shimmering y una inestabilidad en la imagen brutales. Pero, si la resolución fijada en los ajustes del juego es inferior a la de renderizado de los elementos 3D fijada por dgVoodoo, entonces el efecto se mostrará no sólo a esa resolución inferior sino, además, descentrado respecto a los elementos 3D. 

Por lo tanto, y sintiendo mucho no disfrutar de las ventajas de fijar en el juego una resolución inferior en cuanto al HUD y el espaciado de textos, no me queda otra alternativa que marcar en el juego la misma resolución que en dgVoodoo, es decir, la nativa de mi monitor:


Este caso no tiene por qué ser general, ni mucho menos. De hecho, diría que entra dentro de las excepciones. Lo mejor es siempre valorarlo juego a juego.

Y, por cierto: el parche widescreen que estamos usando soporta varios aspect ratios, incluido ultra-panorámico. Que el juego utilice un aspect ratio u otro dependerá exclusivamente del aspect ratio que tenga la resolución escogida. En esta entrada del Wide-Screen Gaming Forum tienes unas capturas de muestra de los distintos aspect ratios soportados por el parche.

En cuanto al sonido:


Todos los ajustes de esta ventana en sus diferentes pestañas salvo los controles (más sobre esto, luego) quedan guardados en el registro de Windows, concretamente en la siguiente dirección:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Empire Interactive\Off Road Racing
En ella, podemos ver los mismos elementos que en la utilidad de configuración y modificarlos, si queremos:


De hecho, si te fijas bien, hay una opción que no se encuentra en la utilidad de ajustes SysConfig:
Enable Envsound Effects
Entiendo que hace referencia a algún tipo de sonido envolvente. Tal vez se refiera al EAX ya que, según Wikipedia, este juego lo soporta (aparece en el listado simplemente como "Off Road", aunque el enlace nos lleva inequívocamente a este juego de 2008), pero no sé si esa lista es del todo fiable, pues en la tabla se indica que la versión de EAX soportada es la 1.0, cosa que me parece absurda para un juego de 2008. Quién sabe.

El caso es que, si habilito dicha opción desde el registro sin hacer nada más (suponiendo que sea un sonido envolvente genérico, no EAX), el juego funciona pero tiende a crashear con cierta frecuencia:


Si, además de habilitar dicha opción desde el registro, descargo DSOAL, que habilita la emulación por software de EAX vía OpenAL, el resultado es peor: el juego crashea el 100% de las veces antes de llegar al menú principal, tras la intro.

Aun así, voy a documentar el proceso, que es válido para otros juegos compatibles con EAX, como Need for Speed III o Mafia:
  • En primer lugar, descargaremos DSOAL desde este enlace de PCGamingWiki.
  • Del archivo zip descargado copiaremos en la carpeta principal de nuestro juego los siguientes dos archivos: dsound.dll y dsoal-aldrv.dll.
En teoría con esto ya debería funcionar EAX, dando por sentado que la opción habilitada en el registro es precisamente eso, el EAX... Pero no. No funciona. De hecho, el juego crashea tras la intro. Da igual que tengamos la opción habilitada en el registro o no: si los archivos están presentes en la carpeta del juego, éste crashea. Si quitamos los archivos, el juego arranca.

Conclusión: nada de EAX (al menos de momento). Tampoco creo que nos perdamos nada en este caso, y eso suponiendo que el juego sea realmente compatible, cosa que dudo muy seriamente, pues no figura por ningún sitio en los ajustes, en los manuales o en la caja. Lástima que ya no tenga mi vieja SoundBlaster Audigy 2 ZS para comprobarlo.

Pasando página respecto al audio, y omitiendo los ajustes del mando de momento, las otras dos pestañas no tienen mucho misterio:


Lo único que podemos ajustar aquí son las sombras dinámicas y la calidad del environment mapping. Nada de bloom, de heathaze... Nada de ninguna otra cosa. Y en los menús dentro del propio juego, menos aún. Lamentable.

Por último, el idioma:


Todo lo relacionado con los controles lo vamos a tratar en el apartado que viene a continuación. De momento, te sugiero que cierres SysConfig.exe.


╔════════════════════════════╗
Controles y vibración:
Masahiko Morii   VS   Xidi
╚════════════════════════════╝

Muy resumidamente: utilizar un mando XInput en un juego viejo que utiliza el protocolo DirectInput puede suponer un problema: aunque, en términos generales, podremos usar nuestro moderno mando sin problema, no todo va a ser de color de rosa: la vibración no funcionará y los gatillos de nuestro mando nos darán problemas, a buen seguro, a la hora de configurarlos como ejes analógicos independientes para el pedal del acelerador y el del freno.

Para solucionar el problema de la vibración, podemos recurrir al clásico "Force Feedback Driver for XInput" de Masahiko Morii (siempre que tengamos uno de los mandos incluidos en el listado de IDs de hardware incluidos en dicho driver) o a Xidi, que nos permitirá disfrutar de la vibración en cualquier mando XInput, ya sea un clon de mando de 360, un mando de Xbox Series conectado por bluetooth o un mando XInput genérico. Además, el tema de los gatillos analógicos queda fuera del alcance del driver de Masahiko Morii, mientras que Xidi nos puede solucionar la papeleta con facilidad.

Por lo tanto, mataremos dos pájaros de un tiro y usaremos Xidi.

(Nota: si tienes un mando de 360 o One conectado por USB y no quieres "complicarte" la vida con Xidi, siempre puedes usar el mencionado driver de Masahiko Morii, específicamente una modificación del mismo por parte de un tal NUK3 TH3 WHAL35 para soportar mandos de Xbox One (USB). Lo tienes disponible aquí, concretamente en el enlace a OneDrive que allí aparece. Si ese enlace está caído, he creado un mirror aquí. No tienes más que ejecutar el instalador y seguir las instrucciones. Se instala a nivel de sistema, no juego por juego como Xidi. Se desinstala usando el mismo instalador. Después de hacer una serie de pruebas he visto que con este driver modificado funciona la vibración tanto en el mando de 360 como en el de One. Con el driver de Masahiko original, efectivamente, sólo funciona en el de 360).

Utilizar Xidi es muy sencillo. La mínima complicación que va a tener es culpa del juego y de su estúpida utilidad de ajustes SysConfig.exe que no se encuentra en la misma carpeta del ejecutable del juego. Pero vamos paso a paso:
  1. Descargaremos Xidi desde Github.
  2. Como se trata de un juego de 32-bit que utiliza DirectInput 8, buscaremos dentro del zip descargado la carpeta Win32 y copiaremos el archivo dinput8.dll tanto al directorio principal del juego como a la carpeta PCConfig que se encuentra dentro. Es decir, necesitamos sendas copias del archivo dinput8.dll, una junto a FordORR.exe y la otra junto a SysConfig.exe. Otra opción habría sido mover todo en contenido de la carpeta PCConfig al directorio principal del juego, con lo que sólo necesitaríamos un archivo dinput8.dll, pero no compliquemos las cosas.
  3. Xidi está contenido dentro del archivo dinput8.dll. Si sólo queremos vibración, no necesitaríamos ningún archivo más. Pero como queremos usar los gatillos analógicos como dos ejes analógicos independientes, uno para el acelerador y otro para el freno, de manera que podamos pulsar los dos a la vez, si queremos, y que uno no anule al otro (más allá de que el freno y el acelerador son antagonistas, pero me refiero a que una señal de control no anularía a la otra: es decir, podremos estar acelerando pero a la vez frenando), necesitaremos crear, junto a cada archivo dinput8.dll, un archivo Xidi.ini conteniendo lo siguiente:
[Mapper]
Type                                = StandardGamepad
Type.1                              = ExtendedGamepad
Type.2                              = StandardGamepad
Type.3                              = StandardGamepad
Type.4                              = StandardGamepad

[Properties]
MouseSpeedScalingFactorPercent      = 100
UseBuiltInProperties                = yes
DeadzonePercentStickLeft            = 0
DeadzonePercentStickRight           = 0
DeadzonePercentTriggerLT            = 0
DeadzonePercentTriggerRT            = 0
SaturationPercentStickLeft          = 100
SaturationPercentStickRight         = 100
SaturationPercentTriggerLT          = 100
SaturationPercentTriggerRT          = 100

[Log]
Enabled                             = no
Level                               = 1

[Import]
dinput.dll                          = C:\Windows\system32\dinput.dll
dinput8.dll                         = C:\Windows\system32\dinput8.dll
winmm.dll                           = C:\Windows\system32\winmm.dll

[CustomMapper]
; This section does not exist by default.

[Workarounds]
; This section does not exist by default.
¿Cómo hacemos un archivo .ini? Haremos un archivo txt y le cambiaremos la extensión a .ini (asegúrate de que Windows te muestre las extensiones para tipos de archivo conocidos).

Bien, si nos fijamos en las primeras líneas, en Type.1 hemos puesto "ExtendedGamepad". Xidi tiene varias funciones de control preestablecidas, según el escenario que se nos presente: 
  • StandardGamepad → emula mandos antiguos estilo Sony PlayStation, como el Logitech Rumblepad 2. Tal como ocurría en estos mandos, el stick derecho se mapea a los ejes Z y Z-rotation. Los gatillos analógicos LT y RT de nuestro mando real son tratados como botones digitales y mapeados como tales. Es decir, la funcionalidad analógica de los mismos desaparece, pero al menos se pueden usar como botones.
  • DigitalGamepad → emula mandos antiguos únicamente digitales, como el Gravis GamePad Pro. Todos los ejes son digitales, no hay ningún tipo de funcionalidad analógica. Tanto la cruceta como el stick izquierdo de nuestro mando real son mapeados a los ejes X e Y. Aunque los mandos de este tipo sólo tenían esos dos ejes, podremos mapear el stick derecho de nuestro mando real a los ejes Z y Z-rotation.
  • ExtendedGamepad → similar a StandardGamepad salvo por el hecho de que nos permite conservar la funcionalidad analógica de los gatillos LT y RT de nuestro mando real. En este caso, como el stick derecho está mapeado a los ejes analógicos Z y Z-rotation, los gatillos son mapeados a los ejes analógicos X-rotation e Y-rotation.
  • XInputNative → copia el comportamiento antiguo de Windows 10: al conectar un mando de Xbox One, el stick derecho era mapeado a los ejes X-rotation e Y-rotation, mientras que los gatillos eran mapeados a los ejes Z y Z-rotation respectivamente. Esta configuración se cargaba la compatibilidad con muchos juegos antiguos, pero Xidi la incluye en caso de que alguien la necesite.
  • XInputSharedTriggers → copia el comprotamiento actual de Windows 10 cuando conectamos un mando de One o 360: el stick derecho es mapeado a los ejes X-rotation e Y-rotation, pero los gatillos comparten el eje Z. Esto ayuda a conservar la funcionalidad analógica de los gatillos pero impide que puedan ser usados independientemente.
De las cinco posibilidades, la que necesitamos es la de ExtendedGamepad: nos permite usar los gatillos como dos ejes independientes uno del otro, y no como la parte positiva y negativa de un mismo eje, lo cual nos permite usarlos a la vez. En este juego no es necesario realmente, ya que ni siquiera nos permite cambiar de marcha manualmente, pero en otros juegos que requieran de técnicas más avanzadas como el uso del freno motor o la técnica del punta-tacón, esta configuración nos lo permite.

Como hemos dicho, pondremos una copia del archivo Xidi.ini en la carpeta principal del juego, y otra en la carpeta PCConfig. Una vez hecho esto, ahora sí, abriremos de nuevo SysConfig.exe y nos iremos al apartado "Controles":


En "Controlador" escogeremos Xidi Virtual Controller 1 y haremos clic en "Configurar controles". En la ventana que se abre podremos configurar los controles a nuestro gusto hacienco clic en una acción de la lista, luego en el botón "Asignar control" y, por último, presionando el botón, gatillo o stick correspondiente en nuestro mando físico. Al acabar haremos clic en OK en esa ventana y, a continuación, en la ventana principal de SysConfig.exe.

No busques una opción para activar, desactivar o configurar la vibración: no la encontrarás. Pero, descuida: la vibración funcionará correctamente. Todos los ajustes de control se guardan, junto con nuestros progresos en el juego, en C:\Users\[Tu usuario]\AppData\Roaming\Off Road (o \Ford Racing Off Road, según la región de tu juego). Los controles concretamente en el archivo ctrllers.dat.

Con esto ya casi podremos ejecutar el juego. Una cosita más:


╔════════════════════════════╗
Ajustes de compatibilidad para FordORR.exe
╚════════════════════════════╝

Antes de ejecutar el juego, nos aseguraremos de marcar un par de opciones de compatibilidad, a las que accederemos mediante el menú contextual que aparece al hacer clic con el botón derecho del ratón sobre el ejecutable del juego - Propiedades - Compatibilidad:


En resumen: ejecutaremos el juego como Administrador y anularemos el reescalado que hace el sistema para altos DPIs. En mi entrada sobre el Colin McRae 2 explico pormenorizadamente el porqué de estos ajustes.

╔═══════════════════╗
Problemas que quedan sin solución
╚═══════════════════╝

Existen una serie de problemas que quedan sin solución, al menos de momento. A continuación, paso a enumerarlos, sin ningún orden en particular:

  • EAX/sonido envolvente: no funciona (más info en esta misma entrada).
  • Imposibilidad de desactivar los efectos guarros de shaders, en especial el bloom (specular bloom).
  • El juego no tiene modo online. El único multijugador que tiene es en local a pantalla partida para dos jugadores, y la imagen está horriblemente estirada. El widescreen fix no lo soluciona a día de hoy.
  • El widescreen fix no evita que se estiren el HUD y los menús: cuanto más panorámica la resolución, más estirados.
  • La cuenta atrás 3..2..1... del comienzo de la carrera está bugueada en sistemas actuales: el 3 y el 2 aparecen a la vez, con lo cual la verdadera cuanta atrás son 2 segundos. En un primer momento creí haberlo solucionado activando la compatibilidad con Windows XP SP3 en el ejecutable, pero a la tercera o cuarta vez volvió a pasar.
  • Se accede a los ajustes del juego mediante una aplicación aparte. Además, faltan elementos básicos como la posibilidad de usar cambio de marchas manual, o el calibrado de los ejes y zonas muertas. Por suerte esto último podremos hacerlo con utilidades externas como DS4Windows o reWASD, pero toca un poco los cojones.


╔═══════════════════╗
Cosas que dejo fuera esta vez
╚═══════════════════╝

En esta ocasió no voy a meterme con el reescalado de las secuencias FMV ni con ReShade. Si quieres abordar cualquiera de las dos cuestiones, en entradas anteriores tienes toda la info pormenorizada.


╔═══════════════════╗
Notas finales
╚═══════════════════╝

Otro juego de la saga Ford Racing, y otra vez esa sensación agridulce de lo que podría haber sido y no fue. Es un juego muy disfrutable. Con una mayor variedad de pruebas, algún modo de juego más, ajustes de configuración en condiciones y un modo online podría haber sido un juego de notable alto.

Espero que esta entrada te haya servido para hacerlo funcionar sin problemas.

¡Hasta la próxima!

Comentarios