Autor Tema: Nancy Drew Saga (Traducción) [En proceso]  (Leído 780 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado mmogas

  • Altair 8800
  • *
  • Mensajes: 28
  • País: 00
  • Fecha de registro: Octubre 26, 2025, 18:24:46 pm
    • Ver Perfil
Nancy Drew Saga (Traducción) [En proceso]
« en: Febrero 25, 2026, 21:53:10 pm »
Hola:

Me estoy planteando un nuevo reto: La traducción de la saga de Nancy Drew (clásicos soportados por SCUMMVM).

Por el momento estoy recopilando información de como descomprimir y manipular los ficheros del juego.

He localizado varias paginas muy útiles y herramientas como:

RavioliGameTools_v2.10
QuickBMS
GameExtractor
https://shimmerfairy.neocities.org/nd/ff_ciftree
Fuentes SCUMMVM

Pero aun así me falta información para avanzar.

Si alguien ha investigado antes sobre estos juegos y quiere ponerlo en común se lo agradecería.

Retos:
- Analisis de CifTree.DAT, *.CIF ,*.CAL , *.CAB
- Localizar fuentes
- Localizar y formato textos/subtítulos
- Localizar y formato imágenes (para editar)

Un saludo

Desconectado pakolmo

  • Webmasters
  • Sovereign
  • *****
  • Mensajes: 5106
  • País: es
  • Sexo: Masculino
  • Fecha de registro: Enero 16, 2015, 02:57:33 am
    • Ver Perfil
    • Parches Amateurs Aventuras Gráficas
Re: Nancy Drew Saga (Traducción) [En proceso]
« Respuesta #1 en: Febrero 26, 2026, 07:42:39 am »
Ni idea, pero asperet tradujo Nancy Drew: Secrets Can Kill (Remastered).

Desconectado walas74

  • Moderador Global
  • Intel Pentium III
  • *****
  • Mensajes: 829
  • País: co
  • Fecha de registro: Septiembre 22, 2007, 14:58:22 pm
    • Ver Perfil
    • Email
Re: Nancy Drew Saga (Traducción) [En proceso]
« Respuesta #2 en: Febrero 26, 2026, 13:23:17 pm »
Alguna vez me planteé traducir Nancy Drew, pero la verdad no lo vi nada sencillo y suelen haber muchas imágenes para traducir.

Le he escrito a asperet al respecto a ver qué dice, pero puede ser que en el remastered hayan cambiado el motor que se use y la forma de traducir sea más sencilla, no sé...
« Última modificación: Febrero 26, 2026, 13:24:49 pm por walas74 »



Desconectado mmogas

  • Altair 8800
  • *
  • Mensajes: 28
  • País: 00
  • Fecha de registro: Octubre 26, 2025, 18:24:46 pm
    • Ver Perfil
Re: Nancy Drew Saga (Traducción) [En proceso]
« Respuesta #3 en: Febrero 28, 2026, 19:50:38 pm »
Hola:

Por lo que he podido ver, en la versión de asperet de Nancy Drew: Secrets Can Kill (Remastered) el fichero CIFTREE.DAT se puede desempaquetar con RavioliExplorer y GameExtractor, mostrando ficheros con texto plano (p.e. SCK_CONVO_SCRIPT_SC) y otros con imágenes PNG.

Algunos ficheros CIFTREE.DAT  son desempaquetables con RavioliExplorer.  He podido extraer el CIFTREE.DAT de NANCY2, NANCY6 y NANCY7. (*) . Los otros no me ha dejado.

Voy a trabajar con los juegos instalados que poseen el CIFTREE.DAT. Así tendré una mejor visión de los archivos disponibles.

NANCY2 (*):
43 49 46 20 54 52 45 45 20 57 61 79 6E 65 53 69 6B 65 73 00 00 00 00 00 02 00 01 00 51 05 00 00
C   I   F        T   R  E   E        W  a  y   n   e   S   i    k   e   s
NANCY3:
43 49 46 20 54 52 45 45 20 57 61 79 6E 65 53 69 6B 65 73 00 00 00 00 00 02 00 01 00 B5 05 00 00
NANCY4:
43 49 46 20 54 52 45 45 20 57 61 79 6E 65 53 69 6B 65 73 00 00 00 00 00 02 00 01 00 69 06 00 00
NANCY5:
43 49 46 20 54 52 45 45 20 57 61 79 6E 65 53 69 6B 65 73 00 00 00 00 00 02 00 01 00 2C 07 00 00
NANCY6 (*):
43 49 46 20 54 52 45 45 20 57 61 79 6E 65 53 69 6B 65 73 00 00 00 00 00 02 00 01 00 95 08 00 00
NANCY7 (*):
43 49 46 20 54 52 45 45 20 57 61 79 6E 65 53 69 6B 65 73 00 00 00 00 00 02 00 01 00 F3 0A 00 00

Mi apuesta es que esos archivos CIFTREE.DAT contengan fuentes y los textos a traducir.

Voy a intentar varios algoritmos LZSS y analizar las fuentes de SCUMMVM por si veo como se gestionan esos ficheros.

Empezaré por NANCY6 ya tiene texto y voz a la vez desde el principio y la estructura de ficheros parece más clara.
« Última modificación: Marzo 02, 2026, 23:41:58 pm por mmogas »

Desconectado mmogas

  • Altair 8800
  • *
  • Mensajes: 28
  • País: 00
  • Fecha de registro: Octubre 26, 2025, 18:24:46 pm
    • Ver Perfil
Re: Nancy Drew Saga (Traducción) [En proceso]
« Respuesta #4 en: Hoy a las 14:18:59 »
Después de analizar el código fuente del motor de NANCY en SCUMMVM y el contenido hexadecimal de ficheros CIFTREE.DAT,  he descubierto los siguiente:

- Los juegos NANCY1 , NANCY2 , NANCY3 al 5 y NANCY6 y posteriores tienen estructuras del fichero CIFTREE.DAT diferentes (abajo la indico).
- El contenido de los ficheros de este contenedor se almacenan en formato PLAIN (valor 03) o COMPRESSED (02).
- Los datos están comprimidos por LZSS y ofuscados.
- En general se componen de:
 + Una cabecera HEADER de 0x32 bytes con información de la versión y del numero de ficheros ENTRY que contienen
 + Una zona de HASH (que no he analizado aun en detalle).
 + Zona con las ENTRY's que dan información de los como el contenido de los ficheros está almacenado en al zona de DATA.
 + Zona de DATA donde esta el contenido de los ficheros
 + Los ficheros almacenados como COMPRESSED son generalmente imágenes del juego
 + Entre los ficheros PLAIN he localizado ficheros de escena (S*.) que es donde se presenta información de la escena y los subtítulos en una estructura parecida a "<c1>Nancy ..... text text text.<c0><n><o>"
 + Otro fichero PLAIN interesante es el BOOT que entre otras cosas parece que prepara los caracteres a partir de los ficheros gráficos #FONT.

Ahora mismo he preparado una herramienta .py más o menos operativa que extrae el contenido de CIFTREE.DAT.
[las imágenes comprimidas aun no se extraen correctamente ya que me falta interpretar parte de la estructura de cada ENTRY].

Para los ficheros PLAIN, entre los que están las escenas, estoy trabajando en otra herramienta que me clasifique y permita editar el contenido de cada una.

Después tocará hacer la tarea inversa de volver a reconstruir el fichero CIFTREE.DAT con el contenido modificado.

ESTRUCTURA CIFTREE.DAT NANCY1:
proximamente...

ESTRUCTURA CIFTREE.DAT NANCY2:
Proximamente...

ESTRUCTURA CIFTREE.DAT NANCY3-5:
Proximamente...

ESTRUCTURA CIFTREE.DAT NANCY6+:
Proximamente...



« Última modificación: Hoy a las 21:21:08 por mmogas »

Desconectado mmogas

  • Altair 8800
  • *
  • Mensajes: 28
  • País: 00
  • Fecha de registro: Octubre 26, 2025, 18:24:46 pm
    • Ver Perfil
Re: Nancy Drew Saga (Traducción) [En proceso]
« Respuesta #5 en: Hoy a las 14:54:47 »
ESTRUCTURA CIFTREE.DAT NANCY 1:

HEADER:
HEADER_START= 0x000000      # Inicio HEADER (0x000000-0x00001D)
HEADER_SIZE = 0x1E         # Tamaño total de la cabecera (30Bytes)
HEADER_SIGNATURE_POS = 0x0   # Posicion SIGNATURE
HEADER_SIGNATURE_SIZE = 0x13   # Tamaño SIGNATURE (0x13 = 19Bytes)
HEADER_VERSION = 0x18         # Version (4Bytes)
HEADER_NUM_ENTRY_POS = 0x1C   # Posicion numero de ENTRYs (2Bytes)

HASH:
HASH_START = 0x00001E         # Inicio del HASH (0x1E = 30)
HASH_SIZE = 0x00800         # Tamaño del HASH (0x800 = 2048Bytes)

ENTRY:
ENTRY_START = 0x00081E      # Inicio ENTRY AREA
ENTRY_SIZE = 0x26         # Tamaño de cada ENTRY (0x26 = 38Bytes)
name        = data(0x00)      # Nombre del fichero [8Bytes]
value1      = data(0x08)       # Valor fijo 0x00 [1Byte]
index       = u16(0x09)      # Indice ENTRY [2Bytes]
width       = u16(0x0B)      # Anchura de la imagen comprimida [2Bytes]
height      = u16(0x0F)      # Altura de la imagen comprimida [2Bytes]
bpp         = data(0x11)       # Profundidad de color de la imagen [1Byte]
value2     = data(0x12)       # Valor fijo 0x02 [1Byte]
offset      = u32(0x13)       # Offset de donde empieza el contenido el fichero en campo area DATA [4Bytes]
decomp_sz   = u32(0x17)       # Tamaño del fichero descomprimido  [4Bytes]
packed_sz   = u32(0x1F)       # Tamaño del fichero enpaquetado dentro del area de DATA [4Bytes]
ftype       = data[0x23]       # 0x02 = Comprimido, 0x03 = Plain (sin comprimir) [1Byte]

DATA:
DATA_START = 0x########

ESTRUCTURA CIFTREE.DAT NANCY 2:

HEADER:
HEADER_START= 0x000000         # Inicio HEADER (0x000000-0x00001F)
HEADER_SIZE = 0x20         # Tamaño total de la cabecera (32Bytes)
HEADER_SIGNATURE_POS = 0x0      # Posicion SIGNATURE
HEADER_SIGNATURE_SIZE = 0x13      # Tamaño SIGNATURE (0x13 = 19Bytes)
HEADER_VERSION = 0x18         # Version (4Bytes)
HEADER_NUM_ENTRY_POS = 0x1C      # Posicion numero de ENTRYs (2Bytes)

HASH:
HASH_START = 0x000020         # Inicio del HASH (0x20 = 32)
HASH_SIZE = 0x00800         # Tamaño del HASH (0x800 = 2048Bytes)

ENTRY:
ENTRY_START = 0x000820         # Inicio ENTRY AREA
ENTRY_SIZE = 0x46         # Tamaño de cada ENTRY (0x46 = 70Bytes)
name        = data(0x00)      # Nombre del fichero [8Bytes]
value1      = data(0x08)       # Valor fijo 0x00 [1Byte]
index       = u16(0x09)         # Indice ENTRY [2Bytes]
width       = u16(0x13)         # Anchura de la imagen comprimida [2Bytes]
height      = u16(0x17)         # Altura de la imagen comprimida [2Bytes]
value1      = u16(0x2B)         # Campo desconocido [2Bytes]
value2      = u16(0x2D)         # Campo desconocido [2Bytes]
value3      = u16(0x2F)         # Campo desconocido [2Bytes]
bpp         = data(0x31)       # Profundidad de color de la imagen [1Byte]
value4      = data(0x32)       # Valor fijo 0x02 [1Byte]
offset      = u32(0x33)       # Offset de donde empieza el contenido el fichero en campo area DATA [4Bytes]
decomp_sz   = u32(0x37)       # Tamaño del fichero descomprimido  [4Bytes]
packed_sz   = u32(0x3F)       # Tamaño del fichero enpaquetado dentro del area de DATA [4Bytes]
ftype       = data[0x43]       # 0x02 = Comprimido, 0x03 = Plain (sin comprimir) [1Byte]

DATA:
DATA_START = 0x########

ESTRUCTURA CIFTREE.DAT NANCY 3-5:

HEADER:
HEADER_START= 0x000000         # Inicio HEADER (0x000000-0x00001F)
HEADER_SIZE = 0x20         # Tamaño total de la cabecera (32Bytes)
HEADER_SIGNATURE_POS = 0x0      # Posicion SIGNATURE
HEADER_SIGNATURE_SIZE = 0x13      # Tamaño SIGNATURE (0x13 = 19Bytes)
HEADER_VERSION = 0x18         # Version (4Bytes)
HEADER_NUM_ENTRY_POS = 0x1C      # Posicion numero de ENTRYs (2Bytes)

HASH:
HASH_START = 0x000020         # Inicio del HASH (0x20 = 32)
HASH_SIZE = 0x00800         # Tamaño del HASH (0x800 = 2048Bytes)

ENTRY:
ENTRY_START = 0x000820         # Inicio ENTRY AREA
ENTRY_SIZE = 0x5E         # Tamaño de cada ENTRY (0x5E = 94Bytes)
name        = data(0x00)         # Nombre del fichero [32Bytes]
index       = u16(0x21)         # Indice ENTRY [2Bytes]
width       = u16(0x2B)         # Anchura de la imagen comprimida [2Bytes]
height      = u16(0x2F)         # Altura de la imagen comprimida [2Bytes]
# bpp         = data(0x??)          # Profundidad de color de la imagen (fija o no localizada) [1Byte]
decomp_sz   = u32(0x57)          # Tamaño del fichero descomprimido (dudas original 0x43 , 0x45 , 0x47) [4Bytes]
offset      = u32(0x4B)          # Offset de donde empieza el contenido el fichero en campo area DATA [4Bytes]
packed_sz   = u32(0x57)          # Tamaño del fichero enpaquetado dentro del area de DATA [4Bytes]
ftype       = data[0x5B]          # 0x02 = Comprimido, 0x03 = Plain (sin comprimir) [1Byte]

DATA:
DATA_START = 0x########

ESTRUCTURA CIFTREE.DAT NANCY 6+:

« Última modificación: Hoy a las 19:55:10 por mmogas »