Página 1 de 1

como puedo cambiar el nombre de selecciones??

NotaPublicado: Lun Mar 16, 2009 9:24 pm
por misil
se que (o eso imagino) modificando hexadecimal el SLES pero tengo entendido existen reglas de espacio y solo se puede modificar nombres con la misma cantidad de caracteres y lo que quiero es cambiar un nombre corto por uno largo. No lo he intentado aun, pero hace tiempo lo intente con un Pro del PS1 y porducia error.

por ejem. Si quiciera cambiar.
PERU por
VENEZUELA <=tengo entendido que estas 5 letras me causarian colgamiento.

no se si me podrian sacar de dudas antes e empesar a moverle al archivo

NotaPublicado: Lun Mar 16, 2009 10:30 pm
por ROBIMEX2002
Los nombres se guardan tal y como son, en una parte del ejecutable que después será cargada en memoria, luego este tiene una tabla de Offsets que apuntan a la memoria en si, de echo para poder saber en que parte del ejecutable se encuentra cada nombre de equipo (como cualquier otra cosa) hay que calcular el offset verdadero obteniendo el Offset virtual que hay en el ejecutable y restándole la dirección de inicio de memoria.

Lugo para saber cuando un nombre termina (la longitud del texto), se comprueba el Byte 0 o Byte vacio (NullChar de ahora en adelante) que será el final del texto.

Los nombres son guardados con más o menos relleno, a veces hay suerte y tiene más con lo que se puede escribir más y otras no, lo importante es que siempre debes dejar al menos un NullChar al final entre este y el siguiente nombre con el fin de que el programa así como el propio juego no lea más allá.

Un ejemplo:

Supongamos que los puntos son NullChar.
En el ejecutable, cada texto va seguido del otro separado por unos ceros (NullChar):

Austria....AUS..Belgium...BEL....

Esto sería para los 2 primeros equipos, seguiría así mas o menos para los demás.
El primer puntero apunta a la A de Austria, el segundo a la A de AUS, tercero a la B de Belgium.. etc.

¿Que pasaría si nos pasamos los punteros por el forro ?

Austria probando.elgium...BEL....

Al leer Austria, leería "Austria probando" ya que el primer NullChar está despues de la "o".
Al leer el nombre corto AUS, leería "bando" (el puntero es el mismo y la byte 0 está después de la o)
Al leer Belgium, que leería? nada. ¿nada? si, porque en ese puntero hay un NullChar nada más llegar, así que no llegaría a leer más allá.

Desastroso verdad?
Entonces mejor no comerse los punteros. si entre Austria.... y AUS hay 11 bytes usemos estos.

Vale pero hay otro problema, el NullChar de división.

Si ponemos:
Austria 123AUS..Belgium...BEL....

Leeríamos "Austria 123AUS", "AUS", "Belgium", esto también quedaría feo.

Así que en definitiva solo hay 10 bytes de espacio:
Austria 12.AUS..Belgium...BEL....

Leeríamos, "Austria 12", "AUS", "Belgium"...

Así sería lo correcto.
Si esá chunga la cosa, ya no creo que sea un fallo del programa , pero, se podrían cambiar los punteros de forma que se pueda meter más texto ?

Buena pregunta...

Si, se podría... Pero, (siempre hay peros)

Hay otro problema. Si comenzamos a modificar los punteros, y meter lo que nos plazca, al final nos comeremos varios nombres de equipos.
Puesto que esto es una tabla y como tal tiene un tamaño, digamos 500 bytes y todos están ocupados por nombres, si le damos más tamaño a un nombre hay que quitarle a otro para compensar.


posdata es un texto que lei de abscroll cuando estaba viendo sobre el tema del sles,saludos jugon

NotaPublicado: Lun Mar 16, 2009 10:54 pm
por LoseYourself
Eres autodidacta, eso me gusta.

NotaPublicado: Mar Mar 17, 2009 12:51 am
por misil
Wow!!! cada vez me sorprenes mas ROBIMEX2002..Gracias por la info.