Grand Prix Legends
Versión 1.1
Archivo Readme (Léeme) del parche
5/5/99

                ÍNDICE

1.  NOTAS

     2.  GENERAL

3.  MULTIJUGADOR: GENERAL

4.  MULTIJUGADOR: MÓDEM A MÓDEM

5.  MULTIJUGADOR: CORTAFUEGOS (FIREWALLS)

6.  NUEVAS OPCIONES DE ARCHIVO .INI

7.  NUEVO ARCHIVO .INI

8. NUEVAS CONFIGURACIONES PARA EL COCHE PREDETERMINADO

9. COMPATIBILIDAD CON FORCE FEEDBACK (RETROALIMENTACIÓN)

10. SERVICIO TÉCNICO E INFORMACIÓN LEGAL



1. NOTAS
--------

Algunos de los cambios incluidos en este parche, realizados específicamente para el modo multijugador, tienen como resultado que los clientes y servidores (anfitriones) de la versión 1.1.0.3 de GPL sean incompatibles con los clientes y servidores de la versión 1.0.0.0.

2. GENERAL
-----------

El desnivel de chasis mínimo se ha aumentado desde 1 pulg. (2,54 cm) a 2,5 pulg. (6,34 cm). Si se carga un coche que tiene un desnivel de chasis menor, éste  aumentará automáticamente al valor mínimo mencionado.

Se ha cambiado el orden de eliminación de los conductores cuando se elige un nivel de IA (inteligencia artificial) distinto al máximo, para que siga habiendo algunos conductores lentos controlados por el ordenador aun cuando el nivel de IA escogido sea bajo. 

Ahora se pueden asignar ejes del joystick al cambio de marchas.

Se ha corregido un error en el código DirectInput para joystick que ocasionaba problemas cuando un controlador disponía de más de ocho ejes (como por ejemplo el Xterminator de Gravis, al menos bajo Win95, y el Thrustmaster Force GT).

Se ha incluido un nuevo rastreador 3Dfx (rast3dfx.dll). La única diferencia consiste en una modificación que permite a los usuarios de Voodoo 3 cambiar las resoluciones de pantalla sin dañar los mapas de texturas.

Cuando se calibra el joystick, las instrucciones en pantalla piden que se devuelva el joystick a la posición centrada antes de pulsar Aceptar. El propósito es restablecer la posición centrada del joystick cuando se pulsa Aceptar. La versión 1.0 de GPL solamente determinaba la posición centrada cuando se pulsaba el botón "Calibrar joysticks" para dar comienzo a la calibración, y no la restablecía cuando se pulsaba el botón Aceptar. Este problema se ha arreglado.

Cuando se cargaba una partida guardada, se aplicaba la configuración de clasificación al coche, incluso si la sesión actual era de carrera. Este problema se ha arreglado.

El tablero de boxes en Nurburgring ha sido desplazado al otro lado de Sudkehre para que ahora se pueda ver el tiempo de la última vuelta. 

El juego a veces ocasionaba bloqueos del sistema a la hora de guardar una repetición larga; este error ya ha sido subsanado.

Algunas veces GPL no se cerraba de manera adecuada, imposibilitando el guardado de algunos archivos y la restitución de algunos valores del sistema. Esto parecía suceder con más frecuencia en ordenadores lentos y ya se ha corregido. Además, los cambios que se han realizado han aumentado el rendimiento del juego en un uno o dos por ciento.

La activación de la pantalla Información del jugador algunas veces podía modificar el estado de las ayudas de conducción de cambio automático, freno y tracción. Esto ya se ha corregido.

Anteriormente la lista desplegable Configuración de carrera que aparece en la pantalla de configuración del coche se salía de la parte inferior de la pantalla en vez de desplazarse, como sucede con la lista Configuración de práctica. Esto ya no ocurre.

GPL ahora puede ejecutarse en Windows NT con los controladores DirectX instalados (en teoría la versión NT4 con el Service Pack 3 y la beta 2 de NT 5). El controlador de joystick genérico no está disponible para Windows NT. GPL también funciona en sistemas NT con doble procesador, beneficiándose de ello, aunque no se trata de mejoras espectaculares, ya que el juego hace uso intensivo de la memoria, y un ordenador con dos procesadores tiene a los dos solicitando ancho de banda de memoria, en lugar de tener a uno solo. Debido a la arquitectura de GPL, es poco probable que el uso de un ordenador con más de dos procesadores tenga algún efecto en el rendimiento del juego.

Ya no está permitido entrar en el coche mientras aparece la bandera a cuadros durante la ronda de clasificación. Además, el Control de carrera reducirá el tiempo de aparición en pantalla de dicha bandera durante las clasificatorias una vez que hayan puntuado todos los coches.

Si todos los coches quedan fuera de la competición durante una sesión de carrera, el Control de carrera mostrará la bandera a cuadros y dará por finalizada la prueba.

Los resultados de carreras exportados ahora contienen el tipo de carrera (novato, intermedio-corta, etc.), así como el tiempo que se ha tardado en finalizarla y el número de vueltas.

Antes podía suceder que los controles de conducción (acelerador, freno, cambio de marchas, etc.) no funcionaran tras entrar en el coche, aunque todos ellos estuvieran adecuadamente calibrados y asignados. Era más probable que este problema tuviera lugar cuando se abría el panel de comunicación (chat), pero también podía suceder en cualquier momento. Esto se ha corregido.

GPL emplea por defecto una tasa de giro de volante sensible a la velocidad. A velocidades de 60 mph (96 Km/h) y superiores, se usa la tasa de giro de volante especificada en la configuración del coche. Por debajo de esa velocidad, la tasa de giro de volante tiene un valor comprendido entre 7:1 y la tasa definida en la configuración del coche. Esto es así para hacer posible la salida de boxes cuando la carretera está abarrotada y para que los giros cerrados de maniobra sean más fáciles. Para desactivar esta característica se pueden añadir las dos líneas siguientes al archivo core.ini:

[ Hack ]
steer_ratio = 0       ; 

Ahora las opciones introducidas desde la línea de comandos tienen prioridad sobre las de los archivos .ini. Estas opciones de mayor prioridad no se guardan en el archivo .ini, por lo que no es necesario hacer una copia de seguridad del mismo. Esta característica está diseñada para los programas que ejecutan GPL (VROC, por ejemplo; visita la página http://gpl.gamestats.com/vroc). El formato de una línea de comando prioritaria es:

	-ko"id_numérica:nombre_sección:nombre_clave:valor"

	...donde...

	id_numérica es la identificación del archivo .ini que contiene el valor que se va a reemplazar. Las correspondencias de esta variable son:

		0  = core.ini,
		10 = app.ini
		20 = player.ini
		40 = track.ini
		50 = address.ini
		65 = server.ini

	nombre_sección es el nombre de la sección del archivo .ini en la que existe la clave, como por ejemplo [Communications]. No se deben incluir los corchetes ([ y ]).

	nombre_clave representa el nombre de la clave, por ejemplo net_mdm_client_send_every.

	Por ejemplo, para asignar un valor de 3 a net_mdm_client_send_every de la sección Comunicaciones (Communications) de core.ini, habría que poner: 
	gpl -ko"0:communications:net_mdm_client_send_every:3"



3. MULTIJUGADOR: GENERAL
---------------------------

Anteriormente, cuando el anfitrión de una partida multijugador iniciaba un fin de semana de carreras, a veces ocurría que algún cliente no tenía disponible el botón verde que permite entrar en el coche. Esto se ha corregido.

En carreras multijugador a veces los clientes no veían sus propios tiempos de vuelta, o veían información incorrecta en el tablón de boxes durante la carrera. Esto se ha corregido casi por completo. Si la conexión cliente-servidor es muy deficiente, sigue existiendo la posibilidad de que el Control de carrera no ofrezca las puntuaciones correctas.

A veces el Control de carrera descalificaba a un cliente por conducir por la pista en dirección contraria, aun cuando esto no fuera cierto. Esto ya no ocurre.

En ocasiones el Control de carrera registraba un tiempo de vuelta de un cliente extremadamente corto si éste desconectaba y conectaba rápidamente cerca de la línea de salida/meta. En principio esto ya está arreglado.

Algunas veces los atajos de teclado para la repetición y los sistemas de cámara estaban activados durante la redacción de un mensaje en el panel de comunicación, cuando en realidad estos controles deben estar desactivados durante las conversaciones. Esto ya se ha corregido.

Anteriormente no existía la posibilidad de restringir el acceso a un servidor de GPL según el tiempo de latencia del cliente. Ahora, cuando se configura un servidor, se puede especificar un tiempo de latencia máximo permisible de hasta 1 segundo (aunque un tiempo de latencia superior a 0,5 segundos generalmente da malos resultados). El tiempo de latencia de un cliente sólo se comprueba una vez, en el momento de conectarse al servidor. Si dicho tiempo aumenta durante la conexión, el servidor no expulsa automáticamente al cliente.

Antes no había manera de limitar el número de clientes que se podían conectar a un servidor en una conexión en red concreta. Si se conectaban demasiados jugadores, el dispositivo podía acabar sobrecargado, lo cual se traducía en un rendimiento deficiente para todos los jugadores. Ahora existe la posibilidad de seleccionar el "número máximo de jugadores" para cada conexión en red.

Después de que muchas personas se hubieran conectado y desconectado a un servidor de carrera, los conductores que se conectasen nuevamente podían ver una larga sucesión de mensajes "X.Y:Conectado"..."X.Y:Desconectado" correspondientes a los conductores que ya no estaban conectados al servidor. Esto ya se ha corregido.

Se ha corregido un error por el cual después de que muchas personas se hubieran conectado y desconectado a un servidor de carrera, si un nuevo conductor se conectaba se le asignaba el número de coche 0, y pasaba a conducir por el circuito con un coche carente de número pintado. 

Las reglas mostradas a un cliente de una carrera de Grand Prix en modo multijugador antes indicaban que había dos sesiones de prácticas, cuando en realidad sólo hay una. Esto ya se ha corregido.

Un servidor de carrera GPL ahora puede comunicar su estado y responder a señales (pings) durante el transcurso de una sesión de carrera. Anteriormente, esto sólo se podía hacer durante las rondas clasificatorias, y únicamente desde la pantalla de configuración de carrera.

Los clientes de GPL intentan permanecer sincronizados con el servidor al que están conectados. Debido a la variabilidad de los tiempos de latencia, típica en Internet, esta tarea es poco precisa. El método que GPL 1.0 empleaba para intentar permanecer en sincronía con el servidor podía ocasionar dos anomalías distintas que se conocen como "tartamudeo de imágenes" y "golpeo de reloj". Se podía intentar compensar la una con la otra cambiando el valor de la variable  "clock_adj_delay" de la sección [Communications] en el archivo core.ini. Normalmente los valores bajos causan más tartamudeo en las imágenes y menos golpes de reloj, y los valores altos normalmente tienen efecto contrario. El valor predeterminado para esta variable era 12 en GPL 1.0, pero se ha cambiado a 4 en GPL 1.1.

GPL 1.1 incluye un segundo método para que el cliente permanezca en sincronía con el servidor. Este nuevo método pasa por alto la variable clock_adj_delay setting, dado que no tiene ninguna relación con su funcionamiento. Con él todavía son posibles los golpes de reloj, aunque deberían darse con menos frecuencia. El nuevo método también sustituye el efecto de tartamudeo de imágenes con un ajuste mucho más suave, que suele ser menos evidente y distrae menos durante la conducción. Como es lógico, sin embargo, cuanto menos estable sea la conexión al servidor, más evidente será ese ajuste.

El nuevo método es el que está configurado por defecto. Si lo deseas, se puede desactivar para volver a emplear el método antiguo; para ello asigna el valor 0 a la siguiente variable del archivo core.ini:

[ Task ]
synch_method = 1         ; 

Ahora los clientes remotos pueden controlar un servidor GPL, cosa que antes era inviable (en argot se denomina "jefe" a todo aquel que puede controlar un servidor). El control se puede llevar a cabo utilizando un formato especial para la contraseña del servidor. Los clientes que ahora se conecten utilizando la contraseña de "jefe" podrán controlar el servidor. El formato de contraseña es ahora "[access_pwd][/[boss_pwd]][=inicial.apellido_del_jefe]" donde access_pwd es la contraseña de acceso y boss_pwd es la contraseña del jefe (sin los corchetes ni las comillas; todo lo que está entre dos corchetes es opcional). La contraseña no hace distinción entre mayúsculas y minúsculas. A continuación se puede ver el significado de algunos ejemplos de contraseñas de servidor:


	"": No se especifica contraseña. Cualquiera puede conectarse al servidor. El único jefe es el servidor. 
	"private" (privada): Todos los clientes deben introducir la contraseña privada para poder conectar con el servidor. El único jefe es el servidor.
	"private/secret" (privada/secreta): Todos los clientes deben introducir la contraseña privada para poder conectar con el servidor. Cualquier cliente que también sepa la contraseña del servidor (secreta), e introduzca la contraseña correctamente (privada/secreta) puede convertirse también en jefe del servidor. Hay que tener en cuenta que esto permite la existencia de más de un jefe para el servidor. Los jefes deben cooperar entre sí.
	"private/secret=d.bravo (privada/secreta=d.bravo): El mismo caso que antes, pero cualquier conductor cuyo apellido sea "bravo" y cuya inicial sea "d" tendrá control de jefe sobre el servidor, aún cuando no haya introducido la contraseña de jefe (secreta).
	"/quiet" (silencioso): Cualquiera puede conectarse con el servidor sin especificar una contraseña. Cualquiera que introduzca la contraseña de jefe (/quiet) también será un jefe.
	"/": Esto puede ser interesante. Cualquiera puede conectarse al servidor sin introducir una contraseña. Todo el mundo puede ser un jefe.

Antes no había manera de expulsar a un jugador desde un servidor. Ahora cualquier jefe puede eliminar a un jugador utilizando el comando "!eject". Este comando debe introducirse como mensaje de comunicación (chat). La sintaxis del comando es "!eject jugador", donde jugador puede ser bien el símbolo "#" seguido del número de coche de jugador, o el nombre del jugador. Por ejemplo:
	"!eject #12"
	"!eject bravo"
	"!eject d.bravo"
	"!eject david.bravo"

Ahora se puede ejecutar GPL como cliente o servidor utilizando las opciones de la línea de comandos. GPL accederá automáticamente a la pantalla de configuración de multijugador, activará todos los botones correspondientes y se ejecutará o conectará. Cuando se ejecute como cliente, no aparecerá la dirección IP del servidor remoto. Cuando se desconecte un cliente ejecutado, se le dará la opción de volver a conectarse; de lo contrario saldrá del juego. Cuando un servidor ejecutado retroceda a partir de la pantalla de selección de circuito, se saldrá del juego. Más adelante se incluyen las descripciones de las nuevas secciones CLIENT (cliente) y SERVER (servidor) del archivo core.ini. Esta característica está diseñada para su empleo en sistemas como VROC (visita la página http://gpl.gamestats.com/vroc).


4. MULTIJUGADOR: MÓDEM A MÓDEM
--------------------------------

Han sido muchas las personas que han tenido problemas al usar conexiones directas de módem a módem. Esto se debe casi siempre a que los dos ordenadores tienen diferente información sobre la velocidad a la que están conectados los dos módems. Se ha cambiado el significado de la opción de velocidad de conexión para módem que aparece en la pantalla de configuración del modo multijugador de GPL. El significado anterior era: "Intentar la conexión a velocidades inferiores o iguales que ésta, pero empleando la velocidad notificada por el sistema, sea cual sea." Algunos ordenadores parecen hacer caso omiso de la primera parte, mientras que otros parecen notificar velocidades superiores a la velocidad real utilizada en la conexión de los dos módems. Cualquiera de estas situaciones puede provocar un fallo en la conexión.

La opción ahora quiere decir: "Intentar la conexión a una velocidad no superior a ésta. Si el sistema notifica una velocidad superior, dar por sentado que es falso y que la conexión está establecida realmente a esta velocidad. Si el sistema notifica que está conectado a una velocidad inferior a ésta, utilizar dicha velocidad." Esto reduce, aunque no elimina, la posibilidad de que la conexión falle. De esta manera también se obliga a que tanto el servidor como el cliente elijan la misma velocidad. Se ha añadido además la nueva opción "Notificada por el módem" a la lista de velocidad de conexión. Si no ha habido problemas con la conexión módem a módem anteriormente, se recomienda utilizar esta opción (tiene prácticamente el mismo significado que antes).

Si la conexión todavía no es posible, incluso cuando los dos ordenadores al extremo de la línea emplean la velocidad de conexión más baja de la lista, hay aún una cosa más que se puede intentar (también con GPL 1.0.0.0). Se debe crear un archivo llamado core.ini mediante el Bloc de Notas (o cualquier otro editor de texto tipo MS-DOS) en la misma carpeta en la que se encuentra el programa GPL (gpl.exe). En este archivo hay que introducir las dos líneas que aparecen a continuación:

[ Communications ]
assumedModemConnectSpeed = velocidad_en_baudios

Hay que reemplazar "velocidad_en_baudios" con un valor menor o igual que la velocidad actual con la que los módems se conectan entre sí. Por ejemplo, si los módems se están conectando a 24.000 bps, hay que poner 24.000. Si no se está seguro de los baudios a los que se están conectando los módems, lo mejor es hacer pruebas empezando con valores bajos (las velocidades normales son 19.200, 21.600, 24.000, 26.400, 28.800, etc.). Si se prueba con un valor demasiado alto, es probable que la conexión falle en breve (si es que llega a realizarse). Es importante que tanto el ordenador que llama como el que responde (cliente y servidor) utilicen el mismo valor.



5. MULTIJUGADOR: CORTAFUEGOS (FIREWALLS)
----------------------------------------

En GPL 1.0.0.0 era difícil, si no imposible, configurar un cortafuegos que permitiera a un cliente o servidor GPL ejecutarse detrás. Este problema ya no debe producirse, ya que ahora GPL utiliza 21 puertos consecutivos (por defecto [32766...32786]) destinados a las comunicaciones cliente/servidor, y los puertos 6970 para la notificación del estado y 6971 para respuestas a señales (pings).

Para la ejecución desde una máquina con una dirección IP privada tras un cortafuegos Linux, hay que combinar enmascaramiento IP y autoenviado IP (IP masquerading e IP autoforwarding). Pueden utilizarse las 3 líneas de comando siguientes:

ipfwadm -F -a accept -m -S a.a.a.a/m.m.m.m -D 0.0.0.0/0
ipautofw -A -r udp 6970 6971 -h a.a.a.a -v -u
ipautofw -A -r udp 32766 32786 -h a.a.a.a -v -u

donde a.a.a.a es la dirección del ordenador detrás del cortafuegos, y m.m.m.m es la máscara de red. Si se ejecuta un servidor tras el cortafuegos, los clientes deben conectarse a la dirección IP del cortafuegos. 

Si se desea ejecutar más de un servidor tras un cortafuegos, será necesario especificar a cada uno de los servidores sus propios intervalos de puertos para comunicaciones cliente/servidor, y también incluir estos intervalos de puertos en las reglas ipautofw. Se debe añadir lo siguiente a los archivos core.ini de cada uno de los servidores adicionales:

[ Communications ]
net_server_port = A

Se puede utilizar A=32787 para el segundo servidor, A=32808 para el tercero, etc.

Si se desea permitir que ordenadores exteriores al cortafuegos (VROC, por ejemplo) consulten el estado de varios servidores GPL, es necesario hacer preparativos. La mejor solución encontrada para llevar esto a cabo es el empleo de una regla ipautofw para el puerto de señales (pings) (puerto 6971) que hace que el cortafuegos reenvíe las señales entrantes a la dirección de notificación de la red que se encuentra tras el cortafuegos. Hay que usar la regla:

ipautofw -A -r udp 6970 6971 -h b.b.b.b -v -u

Donde b.b.b.b es la dirección de notificación de la red que se encuentra tras el cortafuegos.

¿Dirección de notificación? ¿Qué es eso? Una notificación es aquel mensaje que todo ordenador de la red debe ver. La dirección de notificación es una dirección que todos los ordenadores de la red tienen configurada para la escucha de este tipo de mensajes. En este caso, el comando ipautofw dice que todos los paquetes udp en los puertos 6970..6971 deben ir a todos los ordenadores situados tras el cortafuegos.

¿Cómo se determina la dirección de notificación? Es fácil: :  Dirección | (NO máscara de red)
Coge tu dirección ip y conviértela en código binario:	
	Decimal->172.15.134.123
	Binario->10101100.00001111.10000110.01111011
Coge la máscara de red y conviértela en código binario; a continuación invierte los ceros y los unos:	
	Decimal->255.255.255.0 
	Binario->11111111.11111111.11111111.00000000
	Inversión->00000000.00000000.00000000.11111111
Coge la dirección y súmala a la dirección invertida de la máscara de red:
	10101100.00001111.10000110.01111011
	00000000.00000000.00000000.11111111
	-----------------------------------
	10101100.00001111.10000110.11111111
Por último, reconvierte el resultado en decimal:
	Binario->10101100.00001111.10000110.11111111
	Decimal->172.15.134.255
De esta manera, en este ejemplo b.b.b.b sería 172.15.134.255.

Si tú (o el administrador de la red) no deseas notificar estos paquetes, tendrás que asignar cada servidor GPL a su propio puerto de señales en el archivo core.ini

[ Communications ]
bcast_ping_port = B

Por ejemplo, se puede usar B=6972 para el segundo servidor, B=6973 para el tercero, etc. También será necesario incluir estos puertos en la regla ipautofw, e informar a aquellas personas que deseen enviar señales a estos servidores acerca de estos puertos.



6. NUEVAS OPCIONES DE ARCHIVO .INI
-----------------------------------

A continuación se muestran las opciones y/o secciones que se han añadido al archivo core.ini. También aparecen los valores asignados por defecto.

[ Communications ]
bcast_ping_disable = 0       ; desactiva la respuesta a las señales (pings)
bcast_send_disable = 0       ; desactiva la notificación del estado del servidor 
disable_modem = 0            ; no busca módems al arrancar 

Si no se desea que el servidor GPL responda a las señales, el valor de bcast_ping_disable debe ser 1. Si no se desea que el servidor GPL notifique su estado, el valor bcast_send_disable debe ser 1 (esta opción ya estaba disponible en la versión 1.0.0.0). Si no se va a utilizar la conexión multijugador módem a módem de GPL, se puede asignar el valor 1 a la variable disable_modem para indicarle a GPL que no busque la presencia de módems. Con esto se consigue que el programa arranque más rápido.

ignore_net_read_errors = 1     ;
ignore_net_send_errors = 1     ;
log_server_comm_errors = 0     ;
log_server_connect_status = 0  ;

Los servidores de GPL 1.0 desconectaban al cliente (y los clientes de GPL 1.0 se desconectaban ellos solos del servidor) si detectaban un error mientras leían o enviaban un paquete de red. Estos errores parecen ocurrir de vez en cuando, incluso cuando no guardan relación con problemas más graves; son probablemente una de las principales causas de las desconexiones.

GPL 1.1 está configurado por defecto para no desconectarse cuando detecta errores de lectura o de envío. Se puede volver al comportamiento de GPL 1.0 asignando el valor 0 a las variables "ignore_". Por defecto, los servidores GPL no registran estos errores de lectura y escritura en el panel de comunicación. Si se producen problemas de desconexión cuando eres anfitrión de carreras, asigna el valor 1 a la variable log_server_comm_errors para que estos errores se muestren. También se puede asignar el valor 1 a esta variable para ver los mensajes de estado de conexión cuando los clientes se conectan y desconectan de tu servidor. Se recomienda activar estas opciones únicamente para realizar diagnósticos, ya que los mensajes son causa frecuente de distracción.


bcast_listserv =          ; 
bcast_send_freq = 4.0     ;

La variable bcast_listserv se puede dejar en blanco o puede tener asignada la dirección numérica (1.2.3.4) o simbólica (foo.bar.net) de un ordenador de Internet. Si se asigna este valor, el servidor GPL enviará su estado(*) a este ordenador una vez cada bcast_send_freq segundos (este valor no puede ser inferior a cuatro segundos). Es probable que otras personas en Internet pidan entonces a este ordenador una lista de los servidores GPL activos y este ordenador les informe de tu servidor.

En la actualidad el lugar más conocido para buscar servidores GPL en Internet es  VROC (que significa Virtual Racers' Online Connection, Conexión en Línea de Corredores Virtuales). Para acceder a VROC escribe la dirección http://www.vroc.net en tu navegador o explorador de Internet (en este momento también se puede acceder a VROC a través de la dirección http://gpl.gamestats.com/vroc). Desde ese punto, puedes escoger entre emplear el navegador para acceder al servidor de listas de carreras o descargar una utilidad llamada "GPL Spy Boy", un programa que funciona bajo Windows, que también proporciona acceso al servidor de listas de carreras. Cualquiera de estas opciones te permitirá unirte a carreras de GPL existentes o ejecutar tu propio servidor, pudiendo otros conectarse a él. Si ejecutas un servidor mediante cualquiera de estas utilidades, ellas emplearán automáticamente la variable bcast_listserv para informar continuamente al servidor de listas de carreras VROC del estado de tu servidor GPL. No es necesario que tú asignes explícitamente un valor a esta variable.

Si en lugar de ello decides iniciar manualmente un servidor de carreras GPL, puedes hacer la siguiente asignación:

bcast_listserv = vroc.net

De esta manera VROC estará continuamente informado del estado de tu servidor. Antes de ejecutar el servidor, se recomienda visitar la dirección http://www.vroc.net para efectuar el registro con VROC. De esta manera puedes proporcionar información adicional sobre tu servidor, como el tipo de conexión de Internet que tiene (módem analógico, módem por cable, RDSI, etc.), la ubicación (Boston, París, Madrid, ...), etc.

bcast_listserv_req = 						; 
bcast_listserv_req_freq = 10.0				; 

Si la variable bcast_listserv_req también está asignada, el cliente GPL enviará esta cadena al ordenador bcast_listserv una vez cada bcast_listserv_req_freq segundos. La primera letra de esta cadena debe ser una interrogación final (?). Es probable que este ordenador gestione una lista de los servidores de carreras GPL. Puede enviar su lista de servidores a tu cliente GPL, y esas carreras aparecerán en tu tabla "Local Games" (partidas locales). En la actualidad, VROC no acepta aquellas consultas de clientes GPL relativas a su lista de carreras. Para unirte a carreras debes emplear tu navegador o explorador de Internet o la utilidad GPL Spy Boy.

(*) Tu servidor GPL únicamente enviará la siguiente información al ordenador bcast_listserv machine:
- Tu dirección IP (o la dirección IP de tu cortafuegos, si es que éste realiza la traducción de direcciones).
 - El número de versión de GPL que estás ejecutando.
 - El número de puerto a través del cual el servidor de carreras acepta conexiones.
 - La inicial del nombre y el apellido del jugador con que compites.
 - El circuito en que estás.
 - El número actual de jugadores conectados a tu servidor.
 - El número máximo de jugadores a los que permites conectarse.
 - Las clases mínima y máxima de coches que se permiten en la carrera (entrenamiento principiantes, entrenamiento avanzado o coche de Grand Prix)
 - El tipo de carrera que estás disputando (Principiante, Intermedia, Corta, etc.)
 - El hecho de si estás seleccionando los parámetros de la carrera o si estás ejecutando el fin de semana de carreras.
 - La sesión que estás ejecutando (clasificación o carrera).
 - El tiempo (o el número de vueltas) restante de la sesión.
 - El hecho de si la carrera está protegida por contraseña (pero no la contraseña misma).
 - El tiempo de latencia máximo que el servidor permite a un cliente.

[ CLIENT ]
to_ip =     ; dirección IP numérica para conectar 
via_ip =    ; dirección IP numérica por la que conectar 

Estas dos opciones están diseñadas para su empleo con VROC, o un programa similar, en la ejecución de GPL como un cliente multijugador. Ambas deben ser direcciones IP numéricas (formato #.#.#.#). "to_ip" debe ser la dirección IP del servidor GPL. "via_ip" debe ser la dirección IP numérica de la interfaz a través de la cual se conectará el cliente GPL (si hay un cortafuegos, ésta debe ser la dirección IP real del propio cliente, no la dirección IP del cortafuegos tras el cual está el cliente). Si ambos valores están asignados, GPL accederá automáticamente a la pantalla de configuración de incorporación de multijugador e intentará conectarse al servidor GPL. Si la carrera está protegida con contraseña, también habrá que especificar dicha contraseña desde la línea de comandos. La dirección IP del servidor no se muestra al usuario.

Ejemplo:  	gpl -ko"0:client:to_ip:5.4.3.2" -ko"0:client:via_ip:1.2.3.4"        -ko"0:server:password:hola"

[ SERVER ]
auto_export_standings = 0  ; ¿Exportación automática si se ejecuta?
dedicated = 0      ; desatendido: ejecuta las carreras de server.ini 
launch = 0         ; ejecuta GPL como servidor multijugador 
max_latency = 0.0  ; segundos. El valor 0.0 sirve para desactivarlo 
max_car_class = 0  ; 0=GP, 1=AdvT, 2=NovT
min_car_class = 2  ; 0=GP, 1=AdvT, 2=NovT
password =         ; [acceso][/[jefe]][=i.apellido]
repeat = 0                 ; 

Si el valor correspondiente a las variables dedicated o a launch es 1, GPL accederá automáticamente a la pantalla de configuración de anfitrión para multijugador. Además, si la variable auto_launch tiene el valor 1 para cualquier conexión de red activa en el archivo server.ini (ver más adelante), GPL permitirá automáticamente la conexión en esas interfaces, y avanzará hasta la pantalla de selección de circuito. En caso contrario, GPL esperará a que el usuario seleccione los tipos de conexión permitidos y pulse el botón verde para avanzar hasta la pantalla de selección de circuito. Si la variable dedicated tiene el valor 1, GPL recorrerá la lista de carreras válidas, desde la carrera0 hasta la carreraN (donde N es igual o menor que 31) especificadas en el archivo server.ini. Si la variable repeat tiene el valor 0 o no está presente, la lista se recorrerá continuamente. Si la variable repeat tiene asignado un número mayor que 0, la lista se recorrerá ese número de veces.  El sonido y los gráficos 3D estarán desactivados, y el servidor mismo no podrá unirse a la carrera, para así reducir la carga del procesador. Si la variable dedicated tiene el valor 0, entonces el grupo de carreras especificado en server.ini será pasado por alto, y uno de los jefes tendrá que controlar el servidor.

Si alguna de las variables dedicated o launch tiene el valor 1, el servidor GPL abandonará automáticamente el circuito tres minutos después de que el Control de carrera haya completado las puntuaciones de la carrera. El Control emitirá un aviso relativo a esto un minuto antes de la salida del circuito. Si la variable auto_export_standings tiene el valor 1, el servidor exportará automáticamente los resultados de la carrera cuando emita este aviso. Los resultados se guardarán en el directorio de exportación de GPL y llevarán el nombre "<apellido del jugador>__<nombre del jugador>.<año>.<mes>.<día>.<hora>.<minuto>.html.  Por ejemplo: "González__Pedro.1999.04.30.18.02.html".

Si la variable max_latency es mayor que 0, este valor especificará el tiempo de latencia máximo permitido que puede tener un cliente para poderse conectar con el servidor. Si el tiempo de latencia de la conexión es superior a este valor, no se permitirá la conexión. Sin embargo, una vez establecida la conexión, ésta no se verá interrumpida aunque el tiempo de latencia aumente. Si el valor max_latency es 0, los clientes podrán conectarse sin que importe el tiempo de latencia.

Las opciones min_car_class y max_car_class se pueden emplear para obligar a todo el que se conecte al servidor a conducir un tipo de coche en particular (entrenamiento principiantes, entrenamiento avanzado o coche de Grand Prix). Por norma general estas dos variables deben tener el mismo valor.


7. NUEVO ARCHIVO .INI: SERVER.INI
------------------------------------

La versión 1.1.0.3 de GPL incluye la creación de un nuevo archivo, server.ini, en el directorio raíz del programa. Este archivo tiene dos propósitos. Primero, realiza el seguimiento de determinados datos de cada dirección de red en el ordenador. Segundo, puede contener una lista de carreras para que un servidor GPL desatendido las ejecute en una secuencia repetida.

El archivo server.ini tiene una sección separada del resto con tres valores para cada dirección TCP/IP e IPX que GPL encuentre en el ordenador. La secciones serán denominadas ip0,ip1,... ip5 para las direcciones TCP/IP, e ipx0, ipx1 para las direcciones IPX. El orden es el mismo que aparece en la pantalla de configuración de anfitrión para multijugador. Por ejemplo:

[ ip0 ]
addr = 129.9.6.19  ; (sólo como información)
auto_launch = 1    ; ¿permitir conexiones cuando se ejecuta?
max_players = 5    ; número máximo de jugadores permitidos 

[ ipx0 ]
addr = F1F50002:00105A02FD1E  ; (sólo como información)
auto_launch = 1               ; ¿permitir conexiones cuando se ejecuta?
max_players = 19              ; número máximo de jugadores permitidos 

addr: Este valor se introduce en el archivo server.ini sólo como información. Cuando GPL lee el archivo server.ini, pasa por alto este campo.
auto_launch: Si este valor es 1 y se ejecuta GPL como servidor multijugador (si el valor de la variable launch o de la variable dedicated es 1 en core.ini), GPL permitirá automáticamente conexiones en esta interfaz.
max_players: Este valor refleja el número máximo de jugadores seleccionado para una interfaz de red específica en la pantalla de configuración de anfitrión multijugador.

Si la variable dedicated tiene el valor 1 en la sección [SERVER] de core.ini, entonces GPL se ejecutará como servidor de carreras exclusivo e irá recorriendo automáticamente la lista de carreras especificada en este archivo (server.ini). Se puede incluir el listado de las carreras que se desea que el servidor utilice en secciones denominadas [race0], [race1], etc., hasta [race31]. El servidor irá ejecutando todas las carreras en orden secuencial comenzando por 0 hasta que el valor del circuito no exista o sea incorrecto, para después volver a empezar en race0 (carrera0). Por ejemplo:

[ race0 ]
ai = 5            ; número de IA (inteligencia artificial)
practice = 5      ; número de minutos de práctica 
race_type = 4     ; 0=Nov,1/2=int c/l,3/4=pro c/l,5=GP
track = monza     ; circuito

ai: Determina el número de coches con IA que van a participar en la carrera, de 0 a 19
practice: Determina la duración de la sesión de práctica en minutos, de 1 a 120.
race_type: Determina el tipo de carrera. 0 = Novato, 1 = Intermedio: corta, 2 = Intermedio: larga, 3 = Pro: corta, 4 = Pro: larga, 5 = Grand Prix.
track: Especifica el nombre del directorio que contiene el circuito (kyalami, mexico, monaco, monza, mosport, nurburg, rouen, silver, spa, watglen, zandvort).

El servidor abandonará el circuito y pasará a la siguiente carrera tres minutos después de que el Control de carrera haya acabado de puntuar, avisando a todos los clientes cuando quede un minuto para que salga del circuito. Para evitar que el servidor comience automáticamente la siguiente carrera de la secuencia, hay que mantener pulsada la tecla Mayús izquierda en el servidor mientras éste sale del circuito. Cuando se está en la pantalla de configuración de carrera se puede pulsar el botón rojo para salir del programa. También se pueden alterar los parámetros de la carrera y pulsar después el botón verde para continuar.


8. NUEVAS CONFIGURACIONES PARA EL COCHE PREDETERMINADO
----------------------------------------------------------

Se han incluido nuevas configuraciones para todos los coches de Grand Prix. Las configuraciones originales predeterminadas son generalmente más rápidas para los conductores experimentados que las nuevas, que son en su mayoría más adecuadas para los conductores inexpertos y que para un tipo de chasis determinado transmiten una sensación más constante de un circuito a otro.

9. COMPATIBILIDAD CON FORCE FEEDBACK (RETROALIMENTACIÓN)
---------------------------------------------------------

Es posible activar dispositivos de control con retroalimentación; para ello es necesario añadir las siguientes líneas al archivo core.ini:

[ Joy ]
allow_force_feedback = 1    ;


Además se puede juguetear con otras cosas. Se pueden añadir otras tres líneas; a continuación se muestran los valores predeterminados que se emplean si estas líneas no están presentes:

force_feedback_latency = 0.085               ; en segundos
force_feedback_damping = 40.0                ; número mágico
max_steering_torque = 225.0                  ; en Newton·pulg (¿¿¿???!!@#)

La variable force_feedback_latency se puede emplear para intentar reducir el retardo en la generación de la retroalimentación. Si jugueteas con la velocidad un poco, es posible que detectes que la retroalimentación no coincide con lo que el coche hace, es decir, hay un pequeño desfase. El valor predeterminado está indicado para el volante Microsoft Wheel; los volantes de otras marcas posiblemente requieran ensayar con el valor un poco. Normalmente el mejor número es el valor mínimo que funciona; intenta el 0.0 y auméntalo si la retroalimentación parece estar desfasada. Si el valor asignado es muy alto, tal vez se produzcan picos indeseados en los niveles de retroalimentación.

La variable force_feedback_damping se puede emplear para contrarrestar esos picos indeseados. Con esta variable se recomienda probar cualquier valor desde el 0.0 a cualquier número de tres cifras, pero también se producen saltos si se eleva en exceso.

La variable max_steering_torque es el nivel de par motor que se calcula en el juego para dar el máximo nivel de retroalimentación al dispositivo. Los valores altos reducen la retroalimentación que el usuario siente; los valores bajos la aumentan, pero tienden a reprimirla, de modo que no se siente el aumento de revoluciones del coche al subir una pendiente, etc. Lo sentimos por la rareza de las unidades (aunque eso sí, al menos corresponden a la magnitud física del par motor).


10. SERVICIO TÉCNICO E INFORMACIÓN LEGAL
----------------------------------------

Servicio técnico

Havas Interactive España
Avenida de Burgos, 9			
1°-OF2					
28036 Madrid
España

Teléfono: 91 383 26 23
Lunes a viernes de 9:30 a 14:00 y de 15:00 a 18:30
Fax: 91 381 2437


DEBE LEER ATENTAMENTE EL SIGUIENTE CONTRATO DE LICENCIA PARA EL USUARIO FINAL ANTES DE INSTALAR ESTE PROGRAMA DE SOFTWARE. SI NO ESTÁ DE ACUERDO CON LOS TÉRMINOS DE LA PRESENTE LICENCIA, NO DEBE INSTALAR EL SOFTWARE Y DEBE DEVOLVERLO INMEDIATAMENTE A SU PROVEEDOR O A HAVAS INTERACTIVE, QUIENES LE REINTEGRARÁN EL IMPORTE.

Este programa de software, todo material impreso, toda documentación en línea o electrónica y toda copia y trabajos derivados de este programa de software y sus materiales (el "Programa"), son propiedad de Havas Interactive, sus filiales, sus empresas autorizadas y/o sus proveedores. Todo uso del Programa está regido por los términos del Contrato de Licencia para el Usuario Final que se proporciona a continuación ("Contrato de Licencia"). El Programa sólo puede ser utilizado por usuarios finales de acuerdo con los términos del Contrato de Licencia. Queda expresamente prohibido todo uso, reproducción o redistribución del Programa que no se ajuste a los términos del Contrato de Licencia.


CONTRATO DE LICENCIA PARA EL USUARIO FINAL

1. Licencia de uso limitado. Havas Interactive garantiza por el presente documento y, por lo tanto, al instalar el Programa, usted acepta una licencia limitada no exclusiva y el derecho a instalar y utilizar una (1) copia del Programa para su uso en un ordenador doméstico o portátil. Este documento es una licencia, no un contrato de venta. La licencia no le confiere ningún título o propiedad sobre el Programa.
2. Propiedad. Todo título, derecho de posesión y derecho de propiedad intelectual sobre el Programa y sobre toda copia del mismo (incluidos, entre otros, cualquier título, código de ordenador, tema, objeto, personaje, nombre de personaje, historia, diálogo, eslogan, lugar, concepto, material gráfico, animación, sonido, composición musical, efecto audiovisual, método de operación, derecho moral, cualquier documentación relacionada y "subprograma" incorporado al Programa) son propiedad de Havas Interactive o de sus empresas autorizadas. El Programa está protegido por las leyes de copyright de los Estados Unidos, tratados y convenciones de copyright y otras leyes internacionales. Todos los derechos están reservados. El Programa contiene ciertos materiales con licencia y las empresas autorizadas por Havas Interactive pueden actuar para proteger sus derechos en caso de violación del presente Contrato.
3. Responsabilidades del usuario final.
A. Al estar sujeto a la Garantía de Licencia arriba detallada, no puede copiar, fotocopiar, reproducir, traducir, invertir la ingeniería, averiguar el código de origen, modificar, descompilar, crear trabajos derivados basados en el Programa ni eliminar avisos o notas sobre la propiedad del Programa, de forma parcial o completa, sin el consentimiento previo, por escrito, de Havas Interactive.
B. Se le otorga la licencia del Programa como producto único. No puede separar sus componentes para su uso en más de un ordenador. 
C. Tiene derecho a utilizar el Programa para su propio uso, pero no tiene derecho a:
(i) vender o transferir reproducciones del Programa a terceros de ninguna forma, ni a alquilar, arrendar o conceder una licencia del Programa a terceros sin el consentimiento previo por escrito de Havas Interactive.
(ii) explotar el Programa o alguna de sus partes para cualquier fin comercial incluidos, entre otros, el uso en un cibercafé, un centro de juegos por ordenador o cualquier otro sitio.
(iii) albergar o proporcionar servicios de encuentros para el Programa o emular o redirigir los protocolos de comunicación utilizados por Havas Interactive en la función de red del Programa, a través de emulación de protocolos, tunelización, modificación o adición de componentes al Programa, uso de un programa de utilidades o cualquier otra técnica conocida actualmente o desarrollada posteriormente, para cualquier propósito, incluidos, entre otros, el juego en red a través de Internet, el juego en red utilizando redes de juego comerciales o no comerciales o como parte de redes de agregación de contenidos, sin el consentimiento previo por escrito de Havas Interactive. Sin embargo, se le permite albergar servicios de encuentros para el Programa únicamente para jugar a través de Internet sin intereses comerciales (es decir, sin tarifas de ningún tipo y en un sitio no comercial sin ningún tipo de actividad comercial asociada, como publicidad o enlaces o marcos comerciales). Havas Interactive no se hace responsable ni ofrece ningún tipo de garantía con respecto al funcionamiento del Programa a través de Internet.


D. Debe hacer una copia de seguridad, en otro dispositivo seguro y con regularidad, de todos los archivos de datos relacionados con su uso del Programa, puesto que Havas Interactive no se hace responsable de la pérdida o deterioro de datos.

4. Transferencia del Programa. Puede transferir permanentemente todos los derechos concedidos por el presente Contrato de Licencia, siempre que el receptor acepte los términos de este Contrato de Licencia y usted acepte eliminar el Programa y todos los Materiales Nuevos de su ordenador doméstico o portátil.
5. Terminación. Este Contrato de Licencia estará en vigor hasta su terminación. Puede terminar el Contrato de Licencia en cualquier momento destruyendo el Programa y todos los Materiales Nuevos. Havas Interactive puede, si así lo desea, terminar este Contrato de Licencia si usted no cumple los términos y condiciones en él contenidos. En ese caso, deberá destruir inmediatamente el Programa y todos los Materiales Nuevos.
6. Controles de exportación. El Programa no puede ser reexportado, descargado o exportado a ningún país (ni a ningún súbdito o residente de dicho país) para el que Estados Unidos haya decretado un embargo de mercancías, ni a ninguna persona que figure en la lista de Súbditos Especialmente Señalados del Ministerio de Hacienda de Estados Unidos o en la Tabla de Órdenes Denegadas del Ministerio de Comercio de Estados Unidos. Al instalar el Programa, usted acepta estas condiciones y afirma y garantiza que no figura en ninguna de estas listas ni está bajo el control o es súbdito de tal país o residente en el mismo.
7. Garantía limitada. HAVAS INTERACTIVE RECHAZA EXPRESAMENTE TODA GARANTÍA POR EL PROGRAMA, EL EDITOR Y LOS MANUALES. EL PROGRAMA, EL EDITOR Y LOS MANUALES SE PROPORCIONAN TAL COMO SE PRESENTAN, SIN NINGÚN TIPO DE GARANTÍA, EXPRESA O IMPLÍCITA, INCLUYENDO, AUNQUE SIN LIMITARSE A, LAS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO CONCRETO O NO INCUMPLIMIENTO. 
HAVAS INTERACTIVE RECHAZA ASIMISMO TODAS LAS GARANTÍAS RELACIONADAS CON LA ADECUACIÓN AL AÑO 2000 DEL SOFTWARE. CONCRETAMENTE, HAVAS INTERACTIVE NO GARANTIZA QUE LA EJECUCIÓN O EL FUNCIONAMIENTO DEL PROGRAMA NO SE VEAN AFECTADOS POR LAS FECHAS ANTERIORES, CONTEMPORÁNEAS O POSTERIORES AL AÑO 2000, NI QUE EL PROGRAMA SEA CAPAZ DE PROCESAR, PROPORCIONAR Y/O RECIBIR DATOS CORRECTAMENTE DENTRO Y EN EL CAMBIO DE SIGLO, INCLUIDO EL ADECUADO INTERCAMBIO DE INFORMACIÓN ENTRE PRODUCTOS O APLICACIONES. QUEDA EXPRESAMENTE RECHAZADA CUALQUIER GARANTÍA CONTRA INCUMPLIMIENTO QUE PUEDA APARECER EN LA SECCIÓN 2-312(3) DEL CÓDIGO COMERCIAL UNIFICADO Y/O EN CUALQUIER NORMATIVA ESTATAL EQUIVALENTE.
Todo riesgo derivado del uso o ejecución del Programa es asumido por el Usuario, aunque Havas Interactive garantiza durante y hasta 90 días a partir de la fecha de compra del Programa que los medios que contienen el Programa están libres de defectos de material y fabricación. En caso de que los medios resulten defectuosos durante este período y presentado pruebas a Havas Interactive de la compra del Programa defectuoso, Havas Interactive optará libremente por 1) corregir cualquier defecto, 2) proporcionarle un producto de valor equivalente o menor o 3) devolverle su dinero. 
8. Limitación de responsabilidad. NI HAVAS INTERACTIVE, SU OFICINA CENTRAL, SUS FILIALES, AFILIADOS O EMPRESAS AUTORIZADAS SERÁN RESPONSABLES BAJO NINGÚN CONCEPTO DE NINGUNA PÉRDIDA O DAÑO DE NINGÚN TIPO QUE PUEDA RESULTAR DEL USO DEL PROGRAMA INCLUYENDO, PERO SIN LIMITARSE A, PÉRDIDA DE CLIENTELA, PÉRDIDA DE TRABAJO, FALLOS O MAL FUNCIONAMIENTO DE ORDENADORES, PÉRDIDA DE DATOS, DETERIORO DE DATOS NI NINGÚN OTRO DAÑO O PÉRDIDA COMERCIAL. Algunos estados no permiten la exclusión o limitación de daños fortuitos o importantes ni permiten limitaciones a la duración de una garantía implícita, por lo que es posible que las limitaciones arriba expresadas no tengan aplicación en su caso.
9. Recursos equitativos.  Por el presente documento acepta que Havas Interactive sufriría daños irreparables si no se hicieran cumplir específicamente los términos de este Contrato de Licencia, por lo que usted acepta que Havas Interactive tendrá derecho, sin ningún vínculo ni seguridad o prueba de daños, a recursos equitativos apropiados con respecto al incumplimiento de este Contrato de Licencia, además de a otros recursos de los que de otra forma pueda disponer Havas Interactive bajo las leyes aplicables.
10.  Otros. Este Contrato de Licencia sólo puede ser corregido, alterado o modificado por un instrumento por escrito, especificando dicha corrección, alteración o modificación, ejecutada por ambas partes. En el caso de que alguna disposición de este Contrato de Licencia sea declarada sin vigor por una magistratura o tribunal de justicia competente, dicha disposición se aplicará en la máxima extensión permisible y las partes restantes de este Contrato de Licencia continuarán con todo su vigor y efecto. Por el presente documento declara que ha leído y comprende el Contrato de Licencia arriba detallado y que acepta que la acción de instalar el Programa es un reconocimiento de su disposición a quedar sujeto a los términos y condiciones del Contrato de Licencia contenidos en el mismo. También declara y acepta que el presente Contrato de Licencia es la declaración completa y exclusiva del acuerdo entre Havas Interactive y usted y que el Contrato de Licencia sustituye a cualquier acuerdo previo o contemporáneo, verbal o escrito (incluidas declaraciones incongruentes de los materiales escritos o de la ayuda en línea que acompañan al Programa), y a cualquier otra comunicación entre Havas Interactive y usted.


