Ford Racing 3 (2004) PC



Continuación directa del 2, con físicas algo retocadas, diferentes circuitos y pruebas y gráficos notablemente mejorados -pese a lo que digan algunos- para haber 1 año escaso de diferencia entre ambos títulos. Hay quien prefiere el 2 al 3. Puedo estar de acuerdo en cuanto a algunos circuitos, y es que este Ford Racing 3 debería haber incluido todo el contenido del 2 y haberse construido desde ahí. Pero más allá de eso, opino que el 3 supera al 2 en prácticamente todo lo demás. Ah, y la vibración del mando funciona.


╔════════════════════════════╗
FORD RACING 3
PC
╚════════════════════════════╝

Al igual que ocurrió con el título anterior, no se han presentado demasiados problemas a la hora de hacer funcionar este juego correctamente. Únicamente han quedado algunas cosillas sin resolver que no suponen ningún problema, y que mencionaré en los correspondientes apartados.

En cualquier caso, te recomiendo seguir los pasos en orden y no dejarte nada. Sin más preámbulos, vamos con ello.


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

En la actualidad es imposible adquirir este juego por ninguna vía. Sin embargo, lo tienes disponible para su descarga en archive.org, pero yo no te he dicho nada.

Montar la imagen ISO e instalar el juego de forma normal. Una vez instalado, te aconsejo que vayas a la carpeta de instalación (por defecto C:\Archivos de programa (x86)\Empire Interactive\Ford Racing 3\) y hagas copia de seguridad del ejecutable, fr3.exe, por si acaso.


╔════════════════════════════╗
Ajustes gráficos, de audio y de idioma
╚════════════════════════════╝

Muchos juegos antiguos tenían los ajustes de resolución (y, a veces, el resto de ajustes gráficos) fuera del propio juego, en una ventana de ajustes propia. Si vamos a "Inicio - Programas - Empire Interactive - Ford Racing 3 - Game Configuration" o ejecutamos directamente el archivo "syscfg.exe" ubicado en la carpeta "CONFIG" dentro de la carpeta del juego, podremos ajustar diversos parámetros (no olvides ejecutarlo como Administrador):


Desde esta ventana nos aseguraremos de elegir los máximos ajustes gráficos. En resolución, al igual que sucedía con Star Wars - Racer, te recomiendo que escojas la más baja que tenga la misma relación de aspecto que tu monitor, y la profundidad de color más alta. Mi monitor es 16:9, por lo que escogeré 1280 x 720 x 32. No te preocupes si tu monitor tiene una resolución nativa mucho mayor: recuerda que la resolucion real a la que se renderizará el juego vendrá dada por dgVoodoo. El escoger resoluciones menores desde los ajustes de configuración del juego responde a dos motivos principales:
  1. En muchos juegos antiguos que dependen mucho de la CPU el rendimiento se resiente a altas resoluciones, incluso en CPUs modernas, si ejecutamos el juego nativamente y no a través de un wrapper como dgVoodoo. Escogiendo una resolución baja en los ajustes del juego y una alta en dgVoodoo solucionaremos ese problema en gran medida, y el rendimiento será mucho mejor, sea cual sea la resolución final a la que dgVoodoo renderice el juego.
  2. El HUD de muchos de estos juegos no se lleva bien con resoluciones muy altas, y tiende a mostrarse a un tamaño ridículamente pequeño, tanto más pequeño cuanto mayor sea la resolución escogida en los ajustes del juego. En cambio, si escogemos una resolución relativamente baja en los mismos, y luego una resolución alta en dgVoodoo, el tamaño del HUD seguirá siendo grande y legible, por norma general.
  3. En la pestaña "Detail Level" te recomiendo que desactives elefecto de "Depth of Field". No noto que funcione ningún efecto de profundida de campo, pero sí noto la imagen un poco más borrosa y con algo de aliasing cuando el efecto está activado. Por eso, te aconsejo quitarlo: no aporta nada y resta calidad y nitidez a la imagen final. Puedes dejar activados el resto de efectos. Por cierto: el efecto de calor "Heat Haze" o "Heathaze" no parece funcionar tampoco, a diferencia del Ford Racing 2, por lo que da igual si lo dejas activado o desactivado. Yo lo tengo activado.
Todos estos ajustes quedan guardados en el registro de Windows, en la ruta HKEY_LOCAL_MACHINE \ SOFTWARE \ WOW6432Node \ Empire Interactive \ Ford Racing 3. El resto de ajustes, es decir, los que hagamos desde dentro del propio juego, incluyendo perfiles y partidas guardadas, quedan guardados en el archivo autosave ubicado en \SAVEDATA\AUTOSAVE.


╔════════════════════════════╗
Widescreen fix de AuToMaNiAk005
╚════════════════════════════╝

Ha habido otros widescreen fixes para este juego en el pasado, pero éste es el primer widescreen fix HOR+ que no estira el HUD, lo cual es novedad, ya que ha salido hace escasas semanas.

Descargaremos el widescreen fix de AuToMaNiAk005 desde su Google Drive o desde este mirror. Aclaro que es la última versión disponible a día 11 de julio de 2023. El enlace original de Google Drive lo he sacado del canal de YouTube del autor:


Es una pena que este tipo no se dé más a conocer. Sería genial que actualizase la obsoleta información de la entrada de este juego en PCGamingWiki.

El zip que acabamos de descargar contiene 3 archivos de texto explicativos y un archivo "fr3.exe". Éste es el que necesitamos pegar en nuestra carpeta de instalación. Aparte del widescreen fix, el archivo contiene ya el NoCD, por lo que no tendremos que preocuparnos de tener el disco metido ni la imagen del juego montada para jugar.

En Windows 11 este widescreen fix funciona sin problemas. No he probado en Windows anteriores, por lo que no sé si da algún tipo de error como el widescreen fix del Ford Racing 2.


╔════════════════════════════╗
Windows Media Source Filter fix
╚════════════════════════════╝

Este juego de 2004 utiliza un antiguo componente de DirectShow para la reproducción de música, que fue eliminado por Microsoft en Windows Vista. Las pistas de música están en formato WMA. Lo que haremos será restablecer el antiguo "Windows Media Source Filter". Con eso conseguiremos que el juego no crashee al acabar la intro y que la música funcione. Lo haremos de la siguiente manera:
  1. Descargamos el Windows Media Source Filter - DirectShow Codec v1.7 desde este enlace o desde este mirror.
  2. Descomprimimos el zip a una carpeta, en cualquier lugar, no necesariamente en el directorio de instalación del juego.
  3. Haremos clic derecho sobre el archivo "ApplyPatch.bat" y lo ejecutaremos como administrador.
  4. Una vez nos diga que todo se ha instalado y registrado correctamente, copiaremos los archivos strmdll.dll y drmclien.dll a la carpeta de instalación del juego.
Y, con esto, ya estaría.


╔════════════════════════════╗
dgVoodoo, el Santo Grial
de los juegos viejos en 3D
╚════════════════════════════╝

dgVoodoo traducirá el DirectX9 de este juego (a diferencia de Ford Racing 2, que es un juego DirectX8) 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 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.8.1. Una vez descargado el zip, coloca los siguientes archivos en la carpeta principal del juego:

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

Ahora, ejecuta dgVoodoCpl.exe. Deja todas las opciones como vienen por defecto, a excepción de las siguientes:
  • Pestaña General \ Appearance \ Scaling mode: 
    • Para jugar en el aspect ratio 4:3 original -> "Stretched, 4:3 Aspect Ratio"
    • Para 16:9, ya sea con el panorámico con vFOV recortado o usando el mencionado widescreen fix (recomendado) -> "Unspecified".
  • Pestaña General \ Miscellaneous: Keep window aspect ratio: ON
  • Pestaña General \ Miscellaneous: Capture mouse: OFF
  • Pestaña DirectX \ Resolution (ejemplo para una resolución efectiva de 4K):
    • Para 4:3 -> 2880x2160 (aunque no sale en el desplegable, puedes teclear este valor y pulsar Intro).
    • Para 16:9 -> 3840x2160
  • Pestaña DirectX \ Texturing: Filtering: Force anisotropic 16x
  • Pestaña DirectX \ Antialiasing (MSAA): 4x (si te atreves y tu PC es lo bastante potente, puedes probar 8x). Por cierto: así como en el caso del Star Wars Racer te dije que no se te ocurriese crear perfil del juego en el panel de control de Nvidia que modifique el anisotrópico o el anti-aliasing, ni siquiera el de transparencia, ya que eso provocaría que el juego no a arrancaría o, si lo hacía, habría shimmering en las texturas, en esta ocasión te recomiendo justo lo contrario: que actives, en el perfil del panel de control de Nvidia para este juego, la opción de Anti-aliasing de transparencia (la captura es del FR2, pero sirve igual para este FR3):

  • Ajustes avanzados: haciendo clic con el botón derecho sobre alguna zona libre de la ventana de dgVoodoo, nos saldrá un menú contextual del que seleccionaremos "Show all sections of the configuration". Nos aparecerán varias pestañas nuevas. Iremos a "DirectXExt" \ Miscellaneous \ Depth buffers y escogeremos "Force 32 bit". Con esto corregiremos los problemas de parpadeo de poligonos en la lejanía que luchan por superponerse a otros (Z-fighting).
  • Para reducir los tiempos de carga en el Star Wars Racer, recomendaba, en la pestaña "DirectXExt", activar la opción "Batched update for primary surface". Aunque en este juego no noto una disminuación sensible de los tiempos de carga, sigo dejando la opción activada. Y del mismo modo, si tenemos problemas de rendimiento, iremos a la pestaña DirectX \ Miscellaneous y marcaremos la opción "Fast video memory access". Supuestamente reduce drásticamente el uso de la CPU. En mi caso, tampoco noto ninguna diferencia. Los replays en este juego me van a 60fps, nada de 58fps como me ocurre en el Ford Racing 2.
Una vez tengamos todo, haremos clic en "Apply" y en "OK" para cerrar la ventana.


╔════════════════════════════╗
Vibración - Xidi, o  cómo conseguir que 
cualquier mando XInput, 
por cable o no, vibre (y sin bugs)
╚════════════════════════════╝

A diferencia del Ford Racing 2, la vibración en este juego SÍ funciona, pero necesitaremos, como siempre en estos casos de juegos viejos DirectInput en los que queremos que funcione la vibración al usar un mando moderno XInput, algo como el driver de Masahiko Morii o, mejor aún, Xidi (echa un vistazo a mi anterior entrada sobre Star Wars: Racer para más info de estos drivers/wrappers. Si tienes intención de usar los gatillos analógicos para acelerar y frenar, entonces elige Xidi y olvida el driver de Masahiko Morii. La explicación, en el apartado siguiente).

Tanto el "Force Feedback Driver for XInput by Masahiko Morii" como su modificación por un tal por un tal NUK3 TH3 WHAL35 para soportar mandos de Xbox One (USB) presentan dos enormes inconvenientes:
  • Sólo son compatibles con los mandos XInput cuyas IDs de Hardware formen parte de su lista. La modificación añade algunos mandos, entre ellos el de One (conectado por USB), pero hay muchos mandos que quedan fuera. Mandos XInput que no son clones del de 360 ni del de One (en las propiedades del mando en el menú de Dispositivos e impresoras NO se muestran como "XBOX 360 For Windows" o "Xbox One For Windows"). Y esto limita bastante el número de mandos que podemos usar, a menos que un alma caritativa los vaya registrando "a mano" en el driver", es decir, lo vaya actualizando con nuevas IDs de hardware.
  • La fidelidad de la traslación de la vibración del estándar DirectInput al XInput no es todo lo alta que cabría esperar, produciéndose fallos o inconsistencias en la misma (Star Wars: Racer), así como intensidades excesivas y pérdida de detalle fino (Need for Speed III: Hot Pursuit). Hay vibración, sí, pero es un poco burda comparada con la experiencia real de usar un mando DirectInput con capacidad de vibración.
Durante años he creído que este software era la mejor elección para poder disfrutar de la vibración en nuestros antiguos y queridos juegos de PC con un mando actual. Y es que, si a un juego de por sí viejo y desfasado encima le quitas funcionalidades, pues apaga y vámonos. Por eso el driver de Masahiko Morii se antojaba como la panacea, una solución universal... Hasta que le metí mano a fondo al Star Wars: Racer y empezaron a aflorar los problemas y limitaciones que he mencionado.

Sin embargo, hasta hace unos días aún lo veía como la mejor opción; Usando el mando de PS4, PS5 (USB o Bluetooth) con DS4Windows o el mando de One / One S (USB), pensaba, la compatibilidad estaba garantizada durante años. Y eso bien valía el precio a pagar (los dos problemas mencionados anteriormente).

Pero, en un giro inesperado de los acontecimientos, la cosa cambió: buscando alternativas en GitHub, me topé por casualidad con Xidi, en principio otro wrapper DirectInput / WinMM a XInput con algunas características adicionales, pero nada más. Pero cuál fue mi sorpresa cuando, al probarlo con Star Wars: Racer, vi cómo se resolvían de un plumazo los dos problemas comentados:
  • El mando 8BitDo Ultimate C Wired USB conectado en modo XInput vibraba por fin. Puntualizo lo del modo XInput porque en modo DirectInput seguramente le ocurra lo mismo que a los mandos Logitech: necesitará drivers específicos del fabricante para producir vibración. Y, a día de hoy, 8BitDo no ha sacado ninguno.
  • La vibración funciona sin ningún tipo de fallo ni bug donde el driver de Masahiko Morii no funciona del todo bien, al menos en los casos que me he encontrado (Star Wars Racer, Need for Speed 3).
Además, el mando de Xbox One S y el de Series X/S conectados por Bluetooth también vibran, y sin necesidad de reWASD, aunque siguen perdiendo la vibración aleatoriamente al rato de estar funcionando, a menos que los conectemos por cable o con el dongle USB que trae el propio mando de Series X/S. No es culpa de XIDI ni de reWASD sino, más bien, de los propios drivers de Windows.

Sin embargo, XIDI también tiene algún pequeño inconveniente:
  • No es una solución general a nivel de sistema, que instales una vez y te olvides. En este caso tienes que instalarlo en cada juego (copiando del zip a la carpeta del juego el archivo Win32 \ dinput.dll o dinput8.dll, según el juego sea DirectInput 1-7 o Directinput 8).
  • En ocasiones requiere un poco de configuración adicional. Por defecto, Xidi tratará a nuestro mando XInput como un "StandardGamepad" y no como "XInputNative". Esto implica únicamente que los gatillos de nuestro mando XInput serán reconocidos en los juegos DirectInput como botones digitales y no como ejes analógicos. A mí no me afecta especialmente, ya que no uso los gatillos para aceleración/frenada analógica, pero puede que a ti sí. Para poder cambiar los ajustes del wrapper tendrás que crear un archivo Xidi.ini con la siguiente estructura (lo tienes también aquí):
[Mapper]
Type                                = StandardGamepad
Type.1                              = StandardGamepad
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.

En este caso, si sólo vas a usar un mando, puedes cambiar, en la línea que comienza por "Type.1", el valor "StandardGamepad" a "XInputNative", quedando tal que así:
[Mapper]
Type = StandardGamepad
Type.1 = XInputNative
Type.2 = StandardGamepad
Type.3 = StandardGamepad
Type.4 = StandardGamepad

Si vas a usar más mandos, repite el proceso para cada uno. Si no haces este cambio el mando funcionará igualmente, pero si tenías guardado previamente algún esquema de control dentro del juego, verás que ya no te sirve porque los botones están cambiados:


Aparte del cambio de numeración en algunos botones, éste es el resultado que obtendremos según el valor que pongamos:
  • StandargGamepad → El juego reconocerá los gatillos de nuestro mando como botones digitales.  Es la configuración que yo uso, ya que no uso los gatillos para acelerar y frenar.
  • XInput Native → El juego reconocerá los gatillos de nuestro mando como un único eje analógico. Esto no tiene por qué ser un problema, ya que podrás acelerar con un gatillo y frenar con el otro, todo de manera analógica. El único inconveniente es que no podrás usar ambos gatillos simultáneamente para ciertas técnicas avanzadas como el punta-tacón. Ni que decir tiene que en este juego no vas a necesitar eso para nada. A menos que tengas algún tipo de TOC extraño, esta configuración te debería bastar.
  • ExtendedGamepad → El juego reconocerá los gatillos de nuestro mando como dos ejes analógicos independientes (gatillo izquierdo como "RX Axis) y gatillo derecho como "RY Axis"). Estarás pensando: pues ya está, esto soluciona lo del punto anterior, ¿no? Pues sí, y no: en circunstancias normales, desde luego, ésta sería la solución que te permitiría usar ambos gatillos de manera analógica y pulsarlos al mismo tiempo si quisieras. El problema es que, una vez en carrera, los gatillos no se comportan como deberían: el gatillo derecho activará el freno/marcha atrás en todo el rango desde el 0 (nada presionado) hasta la mitad del recorrido del gatillo, mientras que acelerará en el rango comprendido entre la mitad del recorrido y el presionado a fondo. Mientras tanto, el gatillo izquierdo no hará absolutamente nada, pese a haberlo mapeado. Todo esto ocurre porque no hemos calibrado los gatillos desde el menú de calibración del juego. Por desgracia, al salir de dicho menú de calibrado, el juego crashea sin guardar los cambios, por lo que la calibración resulta imposible, al igual que ocurre en FR2, con la diferencia de que en FR2 podemos usar los dos gatillos analógicos de manera independiente sin problemas ni errores, por lo que no es necesaria la calibración. El mensaje de error que nos arroja FR3 al salir del menú de calibración, por cierto, es el siguiente:
    JOYSTICK:1574: Failed to set device properties (0x80004001)

    Una solución parcial a este crasheo es usar el archivo "dinput.dll" de Xidi en vez del "dinput8.dll". En este caso, el juego no crasheará al salir del menú de calibración, pero habrémos perdido los gatillos analógicos y la vibración. Vamos, que no es ninguna solución. He abierto una incidencia en el GitHub del creador de Xidi exponiéndole el problema. Si no actualizo este texto significará que no ha contestado. He probado también a instalar el juego en C:\ en vez de en C:\Archivos de Programa (x86). También he probado a tomar posesión (take ownership) de la carpeta en ambas ubicaciones, con idéntico resultado. Nada que hacer, al menos hasta recibir respuesta de samuelgr.
Un último apunte acerca de la vibración: por defecto viene desactivada (aunque no te extrañe que te vibre sin haberla activado. El juego está como un cencerro). La activaremos en los ajustes del mando dentro del juego:


Tampoco te extrañe que vuelvas a este menú en otro momento y te la encuentres desactivada (pero realmente esté funcionando). En cuanto a la intensidad de la vibración y los ajustes de zona muerta y linealidad de los sticks, nada de lo que modifiquemos en este menú tendrá ningún efecto, aunque los ajustes se queden como los hemos dejado y, por lo tanto, parezca que se han guardado y aplicado. Guardado, sí. Aplicado, no. Aunque yo, por si acaso, lo he dejado como en la imagen, pero qué va: no surte ningún efecto ni noto diferencia alguna en el manejo del vehículo. Es uno de los bugs con los que cuenta este juego. Por suerte, el mapeo de botones sí se guarda correctamente. No obstante, con los ajustes por defecto de linealidad y zona muerta he conseguido superar el juego al 100% en modo difícil, con lo que la cosa no es tan grave:



╔════════════════════════════╗
Controles / Esquema /
Perfil DS4Windows 
╚════════════════════════════╝

Mi esquema de control preferido para este tipo de juegos es el clásico de juegos de PS1 hasta el año 97, aproximadamente:


Aunque veas un mando de PS4, el esquema vale exactamente igual para un mando de Xbox y, por extensión, para cualquier mando XInput. De esta imagen, por cierto, hay que hacer varias puntualizaciones:
  • He intentado ajustar el esquema de control lo máximo posible a la configuración clásica de PSX para juegos de conducción/arcade.
  • Este juego ya permite, a diferencia del FR2, usar la cruceta del mando para navegar por los menús, por lo que esta vez no he mapeado la cruceta a los cursores del teclado. Lo que sí he mapeado, mediante DS4Windows, es el botón OPTIONS, antiguamente conocido como START, a la tecla Escape. De ese modo, puedo pausar la partida en cualquier momento, saltarme las secuencias FMV, etc. Por lo demás, el juego parece asignar por defecto el botón Círculo a la acción de cancelar dentro de los menús, por lo que faltaría asignar el botón X a la acción de aceptar, que, por defecto, es el Intro del teclado, al cual lo he mapeado. Por último, asignaremos L3 a la captura de pantalla (tecla "Impr Pant" o "PrtSc") y R3 a la tecla que, perosnalmente, tengo asignada al toggle on/off de ReShade (tecla asterisco, sobre el teclado numérico). Con DS4Windows es muy sencillo asignar cualquier botón del mando a dicha tecla. Si no usas un mando de PS4, tu mejor apuesta es joy2key. En este caso, mapear el botón L3 a la tecla de "Impr Pant" es un pelín engorroso ya que el programa no registra la pulsación de dicha tecla a la hora de asignarla, sino que hay que desplegar el menú contextual sobre la casilla de registro y elegir PRINT SCREEN.
  • Como he mencionado en el apartado anterior relativo a Xidi, no he asignado el acelerador y freno a los gatillos analógicos del mando porque mi intención es conseguir un esquema de control lo más parecido al típico juego de coches de PSX, al menos hasta el año 97-98. En este caso específico, y puesto que "StandardGamepad" es el ajuste por defecto de Xidi, no necesitarías crear un archivo Xidi.ini. Si lo creas, tienes que asegurarte de dejar las siguientes líneas como "StandardGamepad":
[Mapper]
Type                                = StandardGamepad
Type.1                              = StandardGamepad

Echa un vistazo al apartado anterior, donde explico las diferentes opciones que tenemos para usar o no los gatillos analógicos.

Si tienes un Dualshock 4 o un DualSense y te convence mi esquema de control, puedes descargar mi perfil de DS4Windows desde aquí. Si tienes un mando de Xbox, te recomiendo encarecidamente joy2key para mapear el mando a las teclas del teclado de la imagen anterior, siguiendo el procedimiento descrito.


╔════════════════════════════╗
ReShade (opcional)
╚════════════════════════════╝

Reshade es un inyector de efectos por post-procesado -tales como oclusión ambiental, profundidad de campo, aberración cromática, grano/ruido, correcciones de color, etc.- desarrollado por Crosire, que podemos aplicar a nuestro juego para cambiar y mejorar su aspecto gráfico. ReShade funciona con juegos en DirectX 9, 10, 11, 12, OpenGL y Vulkan.

Nota: las siguientes capturas relativas a la instalación y configuración de ReShade pertenecen al tutorial del Star Wars: Racer, por lo que las rutas de los ejecutables, etc., son distintas.

Primero, descargaremos ReShade desde su web oficial. En el momento de escribir esto, la última versión disponible es la 5.8.0. Al ejecutar el archivo nos pedirá que localicemos el ejecutable del juego donde queremos inyectar ReShade (por defecto, en C:\ Archivos de Programa (x86) \ Empire Interactive \ Ford Racing 3 \ fr3.exe):


A continuación, tenemos que decirle a ReShade qué API gráfica está usando nuestro juego. El juego corre bajo DirectX 9, pero ya sabemos que, dgVoodoo mediante, el juego está siendo convertido a DirectX11 "al vuelo", por lo que marcaremos la segunda opción:


En el siguiente paso, podemos pasar y crear nosotros nuestro propio preset jugando con los distintos shaders y configuraciones, o importar uno ya hecho:


El que yo he creado, aparte de ser bastante liviano en cuanto a recursos, es sutil y da a la imagen un aspecto más cálido y agradable, con una iluminación, sobre todo de los cielos, algo más realista. Aquí imágenes del antes y el después:



Si te gusta, puedes descargarlo de aquí.

Una vez descargado, coloca el archivo en la carpeta principal del juego. Entonces, desde la ventana de instalación de ReShade que aún tienes abierta, busca el archivo y selecciónalo. Si lo has hecho así, en el siguiente paso habrá ya unos cuantos packs de shaders seleccionados:


En teoría, dejándolos tal cual vienen debería funcionar mi preset sin ningún problema, pero por algún motivo el shader "Chromaticity.fx" de dicho preset no se instala. Por ello, te recomiendo que busques y marques manualmente el pack de shaders "RSRetroArch", al que se supone que pertenece, o que marques todos e instales todo (haciendo clic en "Unckeck all" y luego en "Check all").

Una vez hecho, empezará a descargar los shaders de algún lugar de internet (algún repositorio de GitHub, imagino). Cuando haya terminado, si todo ha ido bien, saldrá esta ventana:


Hacemos clic en Finish y ya estaría. Ahora, cada vez que iniciemos el juego, nos saldrá un pequeño banner semitransparente en la parte superior de la pantalla anunciando que ReShade está cargando los shaders de nuestro preset. Una de las ventajas de las últimas versiones es que detecta cuando estamos viendo una secuencia FMV y no se aplica ahí, o eso parece que ocurre con el FR2, pero no con el FR3.

En cuanto a cómo se usa ReShade, cómo modificar el preset o crear uno nuevo, cómo alterar individualmente los parámetros de cada shader, hacer capturas de pantalla con el antes y el después, activar o desactivar efectos individualmente o en conjunto, medir el impacto en milisegundos de cada shader en el pipeline global, y un largo etcétera, hay muchos tutoriales y vídeos a lo largo y ancho de la red, pero aquí tienes el tip más básico con el que empezar a toquetear: con la tecla "Inicio" o "Home" del teclado nos aparecerá, en una ventana flotante encima del propio juego, la interfaz gráfica de ReShade. A partir de ahí, el mundo es tuyo.

Otro pequeño consejo es que, si quieres utilizar shaders que necesitan acceder al buffer de profundidad (depth buffer), como por ejemplo los que alteran la profundidad de campo, etc., deberás tener desactivado el MSAA desde los ajustes de dgVoodoo, en este caso, o desde los ajustes del propio juego o del panel de control de la gráfica, en general. En el caso de mi preset, ninguno de los shaders que utiliza necesitan acceder a dicho buffer, por lo que no necesitas desactivar el anti-aliasing y todo se verá mucho más sólido.

Por cierto: el único archivo dll que introduce ReShade en la carpeta de instalación del juego es "dxgi.dll". Y, en cuanto a problemas o fallos, a diferencia de FR2, la instalación de ReShade no repercute negativamente en el juego ni se cuelga al salir como sí ocurre en el 2.


╔════════════════════════════╗
Intro FMV reescalada
╚════════════════════════════╝

En esta ocasión no me he detenido a reescalar la secuencia introductura FMV. Si quieres intentarlo por tu cuenta, tienes la información necesaria en la entrada sobre Ford Racing 2 en este mismo blog.


╔════════════════════════════╗
Banda sonora personalizada
╚════════════════════════════╝

En la anterior entrada del blog hice mención a la posibilidad de usar una banda sonora personalizada a base de sustituir los archivos musicales presentes por los que nosotros queramos, siempre que mantengan el formato WMA y el nombre de archivo. Pero de esa manera sólo podremos tener tantas canciones como número de archivos WMA tenga el juego originalmente.

Sin embargo, esta vez he ido un poco más allá y he encontrado en un grupo de Discord la manera de poder usar tantas pistas musicales como queramos, tanto para los menús como para las carreras.

Las músicas del juego se encuentran todas en la carpeta SND \ MUSIC, separadas convenientemente en la carpeta FRONTEND, que contiene la música de los menús, y la carpeta INGAME, que contiene la música que suena durante las carreras. Si entras en cada una de ellas verás el siguiente esquema:
  • Una serie de archivos .wma que contienen la música del juego. Son los archivos que, de hecho, utiliza el juego.
  • Una serie de archivos equivalentes pero en formato .wav, que contienen la música sin comprimir. Estos archivos son del todo inútiles, ya que no pueden ser usados por el juego. Quizá se incluyeron para facilitar al jugador la banda sonora sin comprimir, en caso de que quisiera escucharla con calidad fuera del juego. No tiene otra explicación porque, como digo, a día de hoy al menos, es imposible hacer que el juego utilice dichos archivos. El viejo truco de cambiarles la extensión a .wma tampoco surte ningún efecto. Están ahí únicamente como extra o a modo de curiosidad.
  • Un archivo con extensión .MPC (FRONTEND.MPC e INGAME.MPC, en la carpeta FRONTEND e INGAME respectivamente). Éste es el archivo que tendremos que modificar para incluir las pistas de audio que queramos, con los nombres que queramos, lo cual veremos a continuación en detalle.
Lo primero que tenemos que hacer es conseguir las canciones que queremos utilizar. Lo ideal es que provengan de una fuente sin compresión o con compresión sin pérdida (lossless). El juego tiende a reproducir las canciones a un volumen inferior al real, aunque tengamos el volumen al máximo en los ajustes de audio del mismo. Audacity es un editor de audio gratuito que nos servirá para subirles la ganancia sin llegar a distorsionar. Además, nos permitirá exportar directamente en formato WMA gracias al complemento FFmpeg que tendremos que descargar aparte, ya que Audacity no puede incluirlo en el instalador por temas de patentes. Una vez instalado, bastará con exportar el archivo como WAV y cambiar el tipo de archivo a WMA antes de hacer clic en guardar. Una vez tengamos todos nuestros archivos en WMA, los renombraremos a algo sencillo, en mayúsculas y, a ser posible, entre 8 y 12 caracteres alfanuméricos, sin símbolos ni caracteres especiales. 

A continuación, descargaremos e instalaremos un editor hexadecimal. Siempre me ha gustado HxD Hex Editor. Una vez en funcionamiento, abriremos el archivo INGAME.MPC mencionado anteriormente y nos encontraremos con algo similar a esto:


El esquema es sencillo. Nos fijaremos primero en el número que en la imagen está marcado en rojo. Ese número es el primer byte del archivo e indica el número total de canciones que tenemos. En el ejemplo, hay 3 canciones (a la derecha de la imagen puedes ver recuadrados 3 bloques bien diferenciados, uno por canción). Si pensamos meter un número mayor de canciones, basta con cambiar ese byte al valor correspondiente, siempre en decimal. Es decir, si vamos a tener, por ejemplo, 16 canciones, colocaremos el cursor sobre el byte (directamente en el número, que en el ejemplo está en rojo, y no sobre el punto del bloque de la derecha del todo, que también está en rojo) y teclearemos el número 16 tal cual, nada de convertir a hexadecimal.

Hemos abierto el archivo INGAME.MPC porque será el que usaremos como base para nuestros dos archivos .MPC modificados. La razón es que el archivo FRONTEND.MPC original sólo tiene 1 canción y va a ser un poco más engorroso editarlo si queremos tener más de una canción para los menús. Es preferible quitar cosas del archivo INGAME.MPC y luego guardarlo como FRONTEND.MPC que añadírselas al archivo FRONTEND.MPC original. El motivo es que el el resto de canciones que no son la primera (etiquetadas como "regular songs" en la imagen anterior), comienzan con unos bytes diferentes. Además, es más fácil copiar y pegar bloques enteros intermedios sin alterar la última línea de bytes del archivo, la cual tampoco debemos modificar (nombrada "ending data" en la imagen anterior).

Una vez aclarado este punto, veamos cómo añadir o quitar canciones. El archivo original INGAME.MPC tiene 7 canciones. Supongamos que nosotros queremos tener 6. Para ello, lo que tendríamos que hacer es cambiar el valor del primer byte de "07" a "06" y luego eliminar una de las canciones intermedias ("regular songs" en la imagen anterior). Para eliminarla, seleccionaremos cuidadosamente en el bloque de la derecha la línea que contiene el título más las 3 líneas que siguen (la siguiente ya sería la línea del título de la siguiente canción) y borraremos con la tecla Suprimir.

Por el contrario, si queremos añadir en vez de quitar, haremos la misma selección, copiaremos y pegaremos tantas veces como sea necesario para dar cabida a todas nuestras canciones. No olvides cambiar el primer byte acorde al número total de canciones.

Por último, tendremos que modificar los nombres de las canciones en nuestro archivo .MPC para que coincida con los archivos reales WMA que ya tendremos colocados en su carpeta. Si te fijas en las líneas donde están escritos los nombres de las canciones, observarás que los 4 primeros byes son puntos o bien otros caracteres, y que el título de la canción empieza en el 5º byte. Si respetas eso no habrá ningún problema. Además, cuando termina el nombre vemos que la línea está completada con puntos. Si tienes que sobreescribir alguno de esos puntos porque el título de la canción tiene más de 8 caracteres, no pasa absolutamente nada. Pero, eso sí, asegúrate, y esto es muy importante, de que el primer punto tras la última letra del título de nuestra canción tiene el valor "00" y no "02" ni ningún otro. Esto es porque cualquier valor distinto al "00" estará indicando al juego que, entre la última letra del título de la canción y el ".WMA" hay algún caracter o espacio. Como el nombre del archivo real de audio no tiene dicho espacio que está esperando el juego, éste crasheará si intenta reproducirlo, diciendo que no ha podido encontrar el archivo de música correspondiente. Por lo tanto, cuidado con eso.

Por último, nos aseguraremos de haber dejado intacta la última línea de bytes (marcada como "ending data" en la imagen anterior). Esa línea no debería estar completa, pues sólo tiene 4 bytes. Si tiene más o tiene menos, es que algo hemos hecho mal. Habremos arrastrado algún byte por ahí sin darnos cuenta. Por eso es conveniente que guardes copia de los archivos .MPC originales, por si acaso.

De esta manera puedes conseguir mejorar la discreta banda sonora de este juego. Hay quien ha añadido la banda sonora del Ford Racing 2 a las pistas ya existentes.

Yo, en cambio, he creado un par de packs, uno con la banda sonora del Ridge Racer Type 4 (1999) (descarga), y otro con la banda sonora del Need for Speed III: Hot Pursuit (1998) (descarga). Te recomiendo que copies la carpeta MUSIC original a otra parte y la sustituyas por la descargada porque, si las mezclas, vas a tener un batiburrillo de archivos que no es práctico. El mod va a funcionar igual, pues habrá sobreescrito los archivos .MPC originales con los modificados y el juego sólo reproducirá las músicas del mod, pero ya me entiendes.

En cada mod incluyo, además, una captura de pantalla con la relación de volúmenes recomendada para obtener una mejor experiencia. 


╔════════════════════════════╗
Multiplayer y grupos/servers de Discord
╚════════════════════════════╝

Tenemos dos opciones de multijugador:
  • Para dos jugadores en modo local a pantalla partida: funciona correctamente, pero ni siquiera el widescreen fix puede evitar que la imagen esté horriblemente estirada. El HUD está más o menos bien, aunque algo descentrado. He contactado con el creador para ver si puede hacer algo al respecto. Si tengo noticias, actualizaré:

Actualización 19-8-2023: por fin he recibido respuesta de AuToMaNiAk005. Lo ha arreglado. He actualizado los enlaces de descarga con la versión del widescreen fix actualizada a día de hoy. Así es como se ve ahora:


Parece ser que ha arreglado el aspect ratio perdiendo vFOV (VERT-) en vez de ganar hFOV (HOR+), al menos respecto a la versión anterior del parche. No me voy a quejar: sigue teniendo FOV suficiente.
  • Para hasta 6 jugadores en red: no lo he analizado con detenimiento ni lo he probado, pero te dejaré a continuación un vídeo donde creo que explica todo bastante bien. Se basa en Hamachi. He leído que esta aplicación limita el número del lobby de jugadores simultáneos a 5, además de otros problemas y complicaciones que ahora no recuerdo. En definitiva, te recomiendo seguir el videotutorial que te pongo a continuación, pero usando una alternativa a Hamachi llamada Radmin VPN:


¿Dónde puedes encontrar gente para jugar online o charlar sobre éste y otros juegos de la saga Ford Racing? Pues en Discord, claro. Y no hay un grupo/servidor, sino dos:
Discord no deja de sorprender. Espero poder sacar un rato y echar unas carreras.


╔═══════════════════╗
NOTAS FINALES
╚═══════════════════╝

Antes de cerrar, quiero dejar aquí constancia de un mensaje de error que me ha aparecido una sola vez, pero que creo interesante reseñar. Al parecer se produce si pulsas demasiado rápido "Intro" (o el botón X del mando, con mi perfil de DS4Windows) cuando te están dando recompensas y objetos desbloqueados. Si te ocurre, cosa bastante poco frecuente, el juego se cerrará con el siguiente mensaje de error:



Y, por mi parte, ya estaría todo. Que disfrutes de este arcade de conducción como ya no los hacen. A veces se agradecen juegos así: simpes, directos, adictivos y sin relleno ni chorradas. Nos vemos en el próximo.






Comentarios