Parchea el PC Basket
Capítulo 1.
Dorsal, nombre y posición del jugador
Xavi G Sunyer  | 23.08.2012 - 21:26h.
Imprimir esta noticia |  0 comentarios |  [ Comentar ]
Xavi G Sunyer  | 23.08.2012 - 21:26h.

Bienvenidos de nuevo al tutorial "Parchea el PC Basket". Una vez instaladas las herramientas necesarias, vamos a empezar a dar los primeros pasos en la edición del PC Basket 6.5.

En este primer capítulo, el objetivo será el de empezar a familiarizarse con el entorno Hex Workshop, y para ello empezaremos a modificar algunos datos básicos de los jugadores: número de dorsal, nombre abreviado, nombre completo, posición en el campo y jerarquía en el equipo.


Apertura y primer vistazo a la base de datos

Una vez ejecutamos el Hex Workshop en nuestra máquina, el primer paso es abrir la base de datos del juego para poder realizar modificaciones. La ruta de dicha base de datos es el archivo EQ022022.PKF que se encuentra dentro de la carpeta DBDAT del directorio en el que tenemos el PC Basket. En mi caso, a modo de curiosidad, la ruta del archivo es C:\Pc Basket 6.5\DBDAT\EQ022022.PKF, pero cada uno de vosotros deberá localizarlo en la carpeta en la que hayáis descomprimido vuestro PC Basket.

Paso 1
Ejecutamos el Hex Workshop desde nuestra máquina. Si utilizamos Windows, lo encontraremos en el menú de Programas, dentro de la carpeta Hex Workshop v5.1, y la aplicación que hay que abrir es la llamada Hex Workshop Hex Editor.

Paso 2
Una vez abierto el editor, podemos abrir el archivo mencionado anteriormente. Para ello, vamos al menú "File", opción "Open", y buscamos el archivo EQ022022.PKF dentro de la carpeta DBDAT del directorio donde tenemos el PC Basket. Haciendo clic sobre el archivo en cuestión, lo ejecutamos.

Pantalla de apertura de archivo

Tras haber abierto el archivo, veremos un montón de números y letras, y una pequeña columna derecha en la que hay texto entremedio de caracteres extraños.

Lo que vemos en la columna izquierda, la más ancha, es el contenido del archivo en hexadecimal. De la misma forma que la base decimal contiene los dígitos del 0 al 9, la base hexadecimal la forman 16 dígitos: los números del 0 al 9, y las letras de la A a la F. El número siguiente al 9 es el A (10 en decimal). Luego vendrían B (11), C (12), D (13), E (14), F (15), y el siguiente número ya lo formarían dos dígitos: 10 (16 en decimal).

En la columna derecha, al mismo tiempo, vamos viendo el contenido de la columna izquierda decodificado utilizando el mapa que introducimos en el capítulo 0. Gracias a ello, podemos leer con normalidad los nombres de los jugadores, o sus biografías.

Cada grupo de dos dígitos de la columna izquierda es un byte del archivo. Cuando hablemos de textos, cada carácter corresponderá a un byte, con lo que para cambiar una "a" por una "b" deberemos cambiar el grupo de dos dígitos. En este caso de cambiar una "a" por una "b", si utilizamos el conversor de letras veremos que tendríamos que cambiar un 00 por un 03. Es decir, cuando estemos en medio de un texto -ya sea nombre de jugador, biografía, o cualquier otro texto-, en caso que localicemos un byte que sea 00, querrá decir que ahí hay una "a" minúscula.

Estructura de un archivo hexadecimal

De todas formas, no os preocupéis en exceso de entender estos conceptos presentados previamente a modo de curiosidad. Lo importante será lo que viene a partir de ahora, que es cuando empezamos la edición de los conceptos que nos interesan explícitamente.


Localización del nombre de un jugador

Lo primero que vamos a hacer una vez abierto el archivo en el que aparecen los datos de todos los jugadores, es encontrar dónde se encuentra el nombre de cualquiera de ellos.

Paso 1
Abrimos el Conversor de texto. Para ello, hacemos doble clic sobre el archivo ConversorText.exe que obtuvimos en el capítulo anterior.

Paso 2
Una vez abierto el conversor de texto, introducimos parte del nombre del jugador que queremos encontrar. Como ejemplo, intentaremos localizar a Alberto Angulo, jugador del Real Madrid en el PC Basket 6.5. Recordemos que los primeros apellidos están en mayúsculas en el juego. Así, pues, escribimos Alberto ANGULO en el campo superior del conversor de texto y, a medida que vayamos escribiendo, iremos viendo en el campo inferior la conversión del nombre al formato utilizado por el PC Basket 6.5 en hexadecimal. En el caso de Alberto ANGULO, veremos que la conversión es 200D030413150E41202F26342D2E.

Conversión del nombre de Alberto Angulo

Paso 3
Pulsamos el botón de "Copiar", para copiar el contenido del campo inferior al portapapeles.

Paso 4
Vamos al Hex Workshop, donde tenemos la base de datos del juego abierta, y accedemos a la opción "Find" del menú "Edit". Se puede acceder a ella a través del atajo CTRL + F, también, es decir, pulsando la tecla CTRL y la letra F a la vez.

Paso 5
Una vez en la ventana de búsqueda de texto, nos aseguramos tener seleccionada la opción "Hex Values" en "Type". En caso contrario, seleccionamos dicha opción. A continuación, nos situamos dentro del campo "Value", borramos su contenido en caso de que no esté vacío, y pegamos el texto que tenemos copiado en el portapapeles, que corresponde al nombre de Alberto ANGULO en hexadecimal. Para pegar dicho texto, podemos pulsar el atajo CTRL + V, o bien clicar con el botón derecho del ratón sobre el campo, y pulsando la opción "Pegar".

Búsqueda de texto

Cuando pulsamos el botón "Aceptar", vemos que hemos encontrado el sitio en el que aparece el nombre completo de Alberto ANGULO, seleccionado tanto en la columna del contenido, como en la de la traducción del mismo. Si echamos un vistazo a la columna derecha, lograremos ver el nombre completo de Alberto ANGULO: Fco. Alberto ANGULO Espinosa.


Desgranando el nombre del jugador

Tras haber localizado el nombre del jugador, vamos a echar un vistazo a todo el conjunto de bytes que forman el nombre abreviado y el nombre completo del jugador.

Si nos fijamos en el texto seleccionado en la columna derecha veremos que, justo antes del nombre completo de Fco. Alberto ANGULO Espinosa, aparece el texto ANGULO, A. Es justamente el nombre abreviado del jugador, que aparece en distintas pantallas del juego, como "Plantilla" o "Quinteto".

En primer lugar, hagamos un repaso a todos los elementos que forman esta secuencia (fijándonos en el contenido de la columna izquierda).

Secuencia del nombre de un jugador

0A 00
Número de caracteres del nombre abreviado. Si nos fijamos en el nombre abreviado, ANGULO, A. tiene 10 caracteres, que sería A en hexadecimal. Si ponemos el número en dos dígitos, tenemos 0A. El 00 que aparece a continuación, no debemos modificarlo.

20 2F 26 34 2D 2E 4D 41 20 4F
Después del número de caracteres que forman el nombre abreviado del jugador, nos encontramos con tal nombre abreviado. En este caso, vemos ANGULO, A. en forma hexadecimal, que sería el mismo resultado que obtendríamos si hiciéramos la conversión con el conversor de texto.

1C 00
A continuación, encontramos la longitud del nombre completo. Si contamos los caracteres de Fco. Alberto ANGULO Espinosa, veremos que en total ocupa 28 caracteres, número que pasado a hexadecimal resulta 1C. El 00, nuevamente, no tiene trascendencia en este caso.

27 02 0E 4F 41 20 0D 03 04 13 15 0E 41 20 2F 26 34 2D 2E 41 24 12 11 08 0F 0E 12 00
Y tras el número de caracteres, encontramos el nombre completo, convertido a hexadecimal: Fco. Alberto ANGULO Espinosa.

* Para convertir un número de decimal a hexadecimal, o viceversa, podemos utilizar la calculadora de Windows, o bien utilizar cualquier herramienta on-line.


Modificación del nombre del jugador

Ahora que hemos localizado el nombre y sabemos reconocer todos sus elementos, vamos a modificar el nombre de Alberto Angulo por el de algún jugador actual del mismo equipo, el Real Madrid.

Primeramente, debemos comprobar cuál es la longitud de la suma del nombre abreviado y el completo. Es decir, en el caso de Alberto Angulo, tenemos que el nombre abreviado tiene una longitud de 10 caracteres y el nombre completo de 28, con lo que podemos decir que la longitud total es de 38 (10 + 28).

Un factor importantísimo a tener en cuenta es que el archivo EQ022022.PKF nunca puede ocupar ni más ni menos espacio que el original. En caso contrario, nuestro PC Basket dejaría de funcionar. Por lo tanto, no podremos añadir ni suprimir bytes, sólo modificar los existentes.

Por esa razón, una vez modifiquemos el nombre del jugador, la longitud del archivo deberá seguir siendo la misma. En este caso, hay algunos "trucos" para poder conseguirlo sin necesidad de que el nuevo jugador tenga exactamente la misma longitud que el antiguo.

La primera recomendación que damos, es asegurarnos que la longitud total del nuevo jugador es igual o inferior a la del antiguo jugador. En nuestro caso, sustituiremos a Alberto Angulo por Rudy Fernández. Vamos a comprobar, pues, la longitud total del nombre de Rudy Fernández:

Nombre abreviado: FERNANDEZ, R.
Al haber más jugadores con apellido Fernández en la Liga Endesa 2012-13, añadimos la inicial del nombre de pila dentro del nombre abreviado. En este caso, la longitud de FERNANDEZ, R. sería de 13 caracteres.

Nombre completo: Rodolfo FERNANDEZ Farrés
El nombre completo de Rudy Fernández, Rodolfo FERNANDEZ Farrés, es de 24 caracteres.

Vemos que la longitud total del nombre de Rudy Fernández es de 37 caracteres (13 + 24). Como es inferior a la longitud de Alberto Angulo (38), podemos hacer la sustitución con éxito.

Lo que haremos a continuación será generar la cadena de texto completa que sustituirá a la desgranada antes, correspondiente a Alberto Angulo.

0B 00
El primer elemento, como hemos comentado, es el número de caracteres del nombre abreviado. En el caso de FERNANDEZ, R. la longitud es de 13 caracteres, que expresado en hexadecimal resulta 0B.

27 24 33 2F 20 2F 25 24 3B 4D 41 33 4F
Utilizando el conversor de texto, podemos obtener la forma hexadecimal de FERNANDEZ, R. El resultado es justamente 2724332F202F25243B4D41334F.

19 00
Sí, no es un error. Aunque la longitud del nombre completo de Rudy es de 24, en este caso el número que introducimos como longitud del nombre completo es 25 (expresado en hexadecimal, es 19). La razón es que la longitud total no debe variar, con lo cual, debe seguir siendo de 38. Como el nombre abreviado tenía una longitud de 13, el nombre completo debe tener una longitud de 38 menos 13, es decir 25, para que el total siga siendo el mismo.

33 0E 05 0E 0D 07 0E 41 27 24 33 2F 20 2F 25 24 3B 41 27 00 13 13 04 12
A continuación de la longitud del nombre completo, introducimos el nombre entero, Rodolfo FERNANDEZ Farres, cuya codificación en hexadecimal la obtenemos gracias al conversor de texto.

¿Pero si hemos indicado que la longitud del nombre completo es de 25, y luego hemos introducido 24 caracteres, el PC Basket se lo tragará? Buena pregunta. Efectivamente, el nombre completo de Rudy no aparecería correctamente si dejáramos el archivo así mismo y probáramos de ejecutar el juego. Para ello, necesitamos rellenar los caracteres sobrantes con algún carácter que no se vea. En nuestro caso, lo rellenaremos con espacios.

41

Como la longitud total del nombre de Alberto Angulo era de 38, y la de Rudy Fernández de 37, sólo tenemos que añadir un espacio para que se correspondan ambas longitudes. El espacio, expresado en hexadecimal, es 41 (se puede obtener la conversión con el conversor de texto).

Así pues, tenemos que toda la secuencia entera que hace referencia al nombre de Rudy Fernández, sería la siguiente:

0B002724332F202F25243B4D41334F1900330E050E0D070E412724332F202F25243B4127001313041241

Éste es el texto que introduciríamos en lugar del que hemos presentado antes de Alberto Angulo:

0A00202F26342D2E4D41204F1C0027020E4F41200D030413150E41202F26342D2E41241211080F0E1200

Sustitución del nombre de Alberto Angulo por el de Rudy Fernández

Vemos que los caracteres que hemos modificado respecto al archivo original salen de color rojo. Una vez hecha la modificación, podemos guardar el archivo, yendo a la opción "Save" del menú "File". Nos preguntará si queremos guardar una copia del archivo original. En este caso, siempre es recomendable hacer copias, para poder volver atrás en caso de haber cometido cualquier error.


Dorsal del jugador

Ahora que ya estamos más familiarizados con la localización y modificación de cadenas de texto, vamos a ver que nos va a resultar más sencilla la modificación del dorsal y de la posición en el campo.

Una vez tenemos localizado el nombre del jugador, justo antes de la longitud del nombre abreviado, vemos que hay un byte que, en el caso de Alberto Angulo es 04.

Justo este byte anterior a la longitud del nombre abreviado, corresponde al dorsal del jugador. El 04 corresponde, en este caso, al 4 en decimal, puesto que Alberto Angulo llevaba el dorsal 4 en el Real Madrid.

Aunque en aquella época se utilizaran los números del 4 al 15, mayoritariamente, en el PC Basket se pueden asignar los dorsales actuales sin temor a que haya ningún tipo de error en la ejecución. Podríamos asignar el 44 a Marcus Slaughter (2C en hexadecimal), por ejemplo, y el juego funcionaría sin ningún tipo de problema.

Siguiendo con la modificación de Alberto Angulo por Rudy Fernández, modificaríamos el 04 por un 05, que sería el dorsal de Rudy Fernández en hexadecimal.

Sustitución del dorsal de Alberto Angulo por el de Rudy Fernández

Posición del jugador (I)

En el PC Basket 6.5 hay dos posiciones del jugador: la primera es la posición en el campo (base, escolta, alero, ala-pívot y pívot), mientras que la segunda es la posición dentro de la plantilla (base titular, escolta titular, alero titular, ala-pívot titular, pívot titular, 6º hombre, 7º, 8º, etc).

No necesariamente deben coincidir ambas posiciones. Es decir, se puede poner como base titular a alguien cuya posición natural sea la de escolta. Siguiendo con el caso del Real Madrid, podríamos definir a Sergio Llull como escolta, y luego ponerlo como base titular dentro del equipo, en un quinteto formado por Llull-Carroll-Rudy-Mirotic-Reyes, por poner un ejemplo.

Justo después del nombre completo de Alberto ANGULO Espinosa, que ahora es Rodolfo FERNANDEZ Farrés, vemos los siguientes 3 bytes: 06 00 02.

06 00
El primer byte después del nombre completo del jugador corresponde a la posición dentro de la plantilla. En este caso, Alberto Angulo saldría como 6º hombre por defecto. Con lo cual, el byte que lo indica es 06. El 00 que aparece a continuación, en algunos jugadores veremos que es 01, pero es intrascendente. En nuestro caso, vamos a considerar a Rudy Fernández como alero titular del equipo, para formar el quinteto mencionado anteriormente. En tal caso, sustituiremos el 06 por un 03.

Posición en la plantilla

01 - Base titular
02 - Escolta titular
03 - Alero titular
04 - Ala-pívot titular
05 - Pívot titular
06 - 6º hombre
07 - 7º hombre
08 - 8º hombre
09 - 9º hombre
0A - 10º hombre
0B - 11º hombre
0C - 12º hombre

02
El byte que aparece a continuación de la posición en la plantilla, es el byte correspondiente a la posición en el campo. El 02 de Alberto Angulo indica que juega en la posición de escolta. En nuestro caso, indicaremos que Rudy Fernández juega en la posición de alero, con lo que cambiaremos el 02 por un 03.

Posición en el campo

01 - Base
02 - Escolta
03 - Alero
04 - Ala-pívot
05 - Pívot

Sustitución de la posición de Alberto Angulo por el de Rudy Fernández

Cabe mencionar que estas dos modificaciones no tienen repercusión dentro de la pantalla "Plantilla", pero sí en la pantalla "Quinteto" y otras del juego. Si, tras estas modificaciones, ejecutamos el juego y vamos a la pantalla "Plantilla" del Real Madrid, jugando una Liga Manager, por ejemplo, veríamos a Rudy Fernández dentro de los escoltas.


Resultado de la práctica

Como resultado de la práctica de esta semana, os ofrecemos la modificación de dorsales, nombres y posiciones de los jugadores del Real Madrid por los confirmados hasta ahora para la temporada 2012-13.

Para ello, hemos hecho las siguientes sustituciones:

Jugador 1998-99 Jugador 2012-13
Dorsal 4
ANGULO, A.
Fco. Alberto ANGULO Espinosa
6º hombre
Escolta
Dorsal 5
FERNANDEZ, R.
Rodolfo FERNANDEZ Farrés
Alero titular
Alero
Dorsal 11
SANTOS
Ismael Fabián SANTOS Rodríguez
8º hombre
Base
Dorsal 13
RODRÍGUEZ, S.
Sergio RODRIGUEZ Gómez
10º hombre
Base
Dorsal 14
ITURBE
Iker ITURBE Martínez de Lecea
9º hombre
Ala-pívot
Dorsal 44
SLAUGHTER
Marcus Anthony SLAUGHTER
Ala-pívot
6º hombre
Dorsal 8
VICTORIANO
Lucas Javier VICTORIANO
Base titular
Base
Dorsal 8
SUAREZ
Carlos SUAREZ García-Osorio
8º hombre
Alero
Dorsal 15
MARTIN, B.
Robert Marvin MARTIN
Ala-pívot titular
Pívot
Dorsal 9
REYES
Felipe REYES Cabanas
Pívot titular
Pívot
Dorsal 12
HERREROS
Alberto HERREROS Ros
Escolta titular
Escolta
Dorsal 20
CARROLL
Jaycee Don CARROLL
Escolta titular
Escolta
Dorsal 7
LASA, J.
José LASA Azpeitia
7º hombre
Base
Dorsal 23
LLULL
Sergio LLULL Meliá
Base titular
Escolta
Dorsal 9
BUENO
Antonio BUENO Delgado
11º hombre
Pívot
Dorsal 12
MIROTIC
Nikola MIROTIC
Ala-pívot titular
Ala-pívot
Dorsal 6
BEARD
Tanoka Dwight BEARD
Pívot titular
Pívot
Dorsal 7
POCIUS
Martynas POCIUS
11º hombre
Alero
Dorsal 5
STRUELENS
Eric STRUELENS
Alero titular
Ala-pívot
Dorsal 4
DRAPER
Dontaye DRAPER
9º hombre
Base
Dorsal 13
LUYK
Sergio LUYK Torres
10º hombre
Alero
Dorsal 16
BEGIC
Mirza BEGIC
7º hombre
Pívot

Hemos de añadir que, a fecha de hoy, los dorsales todavía no se han hecho oficiales, y la plantilla no se ha dado por cerrada.

Descargar el parche del primer capítulo Descargar el parche del primer capítulo

Una vez descargado el archivo, sólo debéis reemplazarlo por el original en la carpeta DBDAT del directorio de vuestro PC Basket, y ejecutar el juego.

Pantalla del quinteto inicial
Selección ACB para disputar el All Stars

Envíanos tus parches

Os invitamos a practicar durante la semana los conceptos presentados en este capítulo, con tal de ir cogiendo soltura.

En caso de que tengáis cualquier duda, podéis realizarla dejando un comentario en esta misma página, y las iremos resolviendo desde aquí mismo.



Compartir noticia:  Facebook |  Twitter |  Menéame |  Digg |  Del.icio.us |  Technorati |  Yahoo! My Web   


Artículo publicado por Xavi G Sunyer

0 comentarios
Danos tu opinión
Danos tu opinión
Nick:


Comentario:


Código de seguridad: 3443

Por favor, necesitamos que reescribas el código de seguridad para asegurarnos que no se trata de un robot: