¿Cómo chinoizar un juego para un solo jugador? ¡El juego está en inglés! ¡Estoy buscando herramientas y métodos para convertir juegos!
Hay dos tipos principales de archivos que deben analizarse:
1. Fuentes del juego
2. Scripts en inglés del juego.
¿Pero cómo? Encontrarlos es una tarea difícil. Debido a que los creadores de juegos generalmente no revelan el formato de archivo del juego, no quieren que los jugadores puedan modificar el juego a voluntad (esto es solo una ilusión), pero muchos jugadores incondicionales aún pueden descifrar el archivo del juego. estructurar y modificar el juego.
Hay dos formas principales de determinar el formato del archivo:
1. Buscar recursos en Internet, encontrar expertos en juegos y pedir ayuda.
2. Es difícil actuar como un experto y analizar el formato de los archivos del juego.
Afortunadamente, Lucas tiene muchos fanáticos de sus juegos, e incluso crearon un sitio web dedicado, LucasHacks(), para discutir cómo modificar los distintos juegos que produjo. Toda la documentación sobre el formato de archivos del juego que necesitaba provino de este sitio web, que me ayudó mucho con mi trabajo de localización y me ahorró mucho tiempo, así que quiero agradecerles y rendir homenaje a quienes escribieron la documentación.
Los siguientes son algunos formatos de archivos de juegos utilizados por GF
1 Formato de archivo .tab
Es un archivo que almacena todos los scripts en inglés del juego. El contenido del archivo está cifrado, no hay información disponible cuando se abre con un editor de texto normal. El método de descifrado consiste en utilizar 0xDD para realizar operaciones de espera o espera en todos los bytes del archivo.
El siguiente es el código fuente para descifrar el archivo (C#):
botón de anulación privada1_Click(remitente del objeto, System.EventArgs e)
{ p>
//Crear un lector de datos.
FileStream fs = fs = fs(remitente del objeto), System.EventActiveAs = e;
FileStream fs = new FileStream("c:\\grim.tab", FileMode. Open , FileAccess.Read);
BinaryReader r = nuevo BinaryReader(fs);
FileStream fs2 = nuevo FileStream("c:\\text.txt", FileMode.Create);
BinaryWriter w = new BinaryWriter(fs2);
fs.Position = 4
while(fs.Position lt; fs.Length)
p>
{
w.Write((byte)(r.ReadByte()^ 0xdd));
}
r.ReadByte()^ 0xdd);
w.Write((byte)(r.ReadByte()^ 0xdd)).
r.Close(); >
w.Close();
fs.Close();
fs2.Close()
}
Descifrado El archivo es solo texto normal y puedes ver que todos los diálogos del juego están en él. Aquí tenéis 2 extractos del documento:
sito030 Ah, sí, sí.
Eso es lo que le dije. Eso es lo que le dije.
sito031 ¿estás bromeando?
¡sito032 le dio esta idea desde el principio!
¡sito032 le dio esta idea desde el principio!
Como puedes ver, el nombre del orador está a la izquierda y el contenido del discurso a la derecha. Lo que los separa es lo que parece un espacio, pero en realidad es el carácter de tabulación en la tabla ASCII, que es 0x09 en hexadecimal.
El "Kakumoto" del juego se puede modificar cambiando el contenido del archivo a chino. Otro punto que vale la pena señalar es que no es necesario volver a modificar el archivo después de la modificación. Otro punto que vale la pena señalar es que después de modificar el archivo, no es necesario volver a cifrarlo. Simplemente guarde el archivo descifrado con el nombre del archivo previamente cifrado para sobrescribirlo.
2..formato de archivo lab
Es el formato de archivo de recursos del juego y todos los recursos del juego (como sonidos, imágenes, animaciones) se almacenan en él. Es muy similar a los formatos de archivos comprimidos de uso común, como zip y rar. Su función es comprimir muchos archivos en un solo archivo y luego descomprimirlo para usarlo cuando sea necesario. Los archivos de laboratorio también sirven para este propósito. Colocan muchos archivos de sonido, animación y otros archivos en un archivo de laboratorio para llamarlos cuando sea necesario. Los archivos de laboratorio no son archivos comprimidos, sino que simplemente conectan todos los archivos entre sí. Guardar como archivo.
El archivo experimental consta de un encabezado de archivo, una tabla de desplazamiento de archivos, una lista de nombres de archivos y un bloque de almacenamiento físico de archivos. El siguiente contenido está extraído de la documentación de LucasHacks
(1) Encabezado
Campo
Longitud de los datos
Descripción
Identificación
Largo (4 bytes)
Identificador de encabezado LabN
Versión
Largo (4 bytes)
Largo(4 bytes)
Número de versión del archivo
Archivo
Largo(4 bytes)
Largo(4 bytes) Bytes bytes )
El número de archivos de recursos contenidos en este archivo de laboratorio
a
Largo (4 bytes)
Desconocido
b
Largo (4 bytes)
Desconocido Desconocido
(2) Tabla de compensación de archivos
Campo
Longitud de los datos
Descripción
Ofs
Largo (4 bytes)
Desplazamiento del nombre de archivo, utilizado para buscar nombres de archivos de recursos
Desplazamiento
Largo (4 bytes)
Desplazamiento de archivo utilizado para buscar archivos de recursos en archivos de laboratorio Posición relativa en
Tamaño
Largo (4 bytes)
Tamaño de archivo
U
Largo (4 bytes)
Siempre 0
(3) Lista de nombres de archivos
Los nombres de todos los archivos de recursos en el archivo de experimento Los nombres de todos los archivos de recursos en el archivo Nombre de archivo, cada dos nombres de archivo están separados por 0x00.
(4) Bloque de almacenamiento físico de archivos
Todos los archivos de recursos se almacenan en este bloque, el primero y el último.
Se adjunta un archivo experimental que se puede abrir con un editor binario para comparar su estructura y comprenderlo mejor.
Data005.rar
Formato de archivo 3.Laf
Es el formato de archivo de fuente del juego y se presentará en detalle en el capítulo de fuentes.
Este es el formato de archivo de fuente para juegos.