Romxhacking Romxhacking
- Nasío pa'jakear -
 
 F.A.Q.F.A.Q.   BuscarBuscar   Lista de MiembrosLista de Miembros   Grupos de UsuariosGrupos de Usuarios   RegístreseRegístrese 
 PerfilPerfil   Identifíquese para revisar sus mensajesIdentifíquese para revisar sus mensajes   ConectarseConectarse 


Menú principal
Portal
Foros
F.A.Q.
Buscar
Lista de miembros
Grupos de usuarios
Perfil

Usuario
Nombre de Usuario:

Contraseña:

 Recordarme



He olvidado mi contraseña

¿Aún no tiene su cuenta?
Puede registrarse Aquí, es GRATIS.


Anuncio del administrador
No pretendemos solucionar todos los problemas ni ser referencia de nada, simplemente nos reunimos aquí para charlar de nuestras cosas.
NO SE RESPONDERÁ A NADA POR PRIVADO, QUE EL FORO ESTÁ PARA ALGO

Fuente Radiant Historia
Ir a página 1, 2, 3 ... 10, 11, 12  Siguiente
 
Publicar Nuevo Tema   Responder al Tema    Romxhacking -> Dudas y Preguntas
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
Skye



Sexo: Sexo:Mujer
Registrado: 03 Aug 2011
Mensajes: 95
Estado: Offline
MensajePublicado: Wed Aug 10, 2011 7:18 pm    Título del mensaje: Fuente Radiant Historia Responder citando

Buenas, tengo un problema con el Radiant Historia de DS. Hace tiempo que quiero traducir este juego, y he estado mirando la rom. Tampoco hay mucho que mirar: una carpeta con archivos de sonido, y una carpeta Data. En esa carpeta hay tres archivos: Data.bin, Data.idx, y Data.ndx. El bin es un megaarchivo de 33mb y es donde están tanto los gráficos como los textos. Los gráficos y demás archivos del sdk de nintendo los puedo sacar con un cutre programa que he escrito en python.

Bien, el problema es que no consigo encontrar la fuente por ningún lado.

Y también he visto algunas cosas curiosas, como código fuente de C o algo parecido.

Por cierto, al mirar el idx y el ndx (los otros archivos) he visto que el ndx tiene nombres de archivo, mientras que el idx sólo tiene números. Igual se puede usar el idx y el ndx para sacar los archivos del bin con su nombre correspondiente, pero hasta ahora no he visto relación alguna entre ellos. Debo ser muy torpe ^^

Bueno, si alguien pudiera ayudarme con lo de la fuente, estaría muy agradecida ^^
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
gadesx
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Edad: 28
Mensajes: 1941
Ubicación: El puche
Estado: Offline
MensajePublicado: Wed Aug 10, 2011 11:26 pm    Título del mensaje: Responder citando

bienvenida al foro, creo haber mirado este juego y creo que va todo empaquetado,
de DS es de los RPGs mas interesantes, a ver si se pasa cuecín XDDDDD
_________________
Mi blog y mi droga: http://gadesxscene.blogspot.com/
Volver arriba
Ver perfil del usuario Enviar mensaje privado [ Oculto ] Visitar sitio web del autor MSN Messenger
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Thu Aug 11, 2011 9:47 am    Título del mensaje: Responder citando

Tengo por aquí alguna cosilla, pero sin terminar. Me falta por sacar los ficheros del 'Data.bin', pero tengo todo el árbol de ficheros creado, 27872 nombres, de los cuales 2614 son carpetas. Por eso pasé del juego, porque tenía muchas cosas que mirar.

Las fuentes están justo antes de los textos, en la carpeta de los mensajes:
- Msg/font.bin
- Msg/fonttbl.bin
- Msg/br (vacío)
- Msg/en (vacío)
- Msg/fr (vacío)
- Msg/ge (vacío)
- Msg/it (vacío)
- Msg/ja (aquí van los textos, tanto en la versión JAP como en la USA)
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Skye



Sexo: Sexo:Mujer
Registrado: 03 Aug 2011
Mensajes: 95
Estado: Offline
MensajePublicado: Thu Aug 11, 2011 12:03 pm    Título del mensaje: Responder citando

Impresionante O.O
¿Lo has hecho usando el data.ndx?

Mirando el data.ndx, he visto que las extensiones de los archivos coinciden con lo extraído por mi cutre programa. Puede que los archivos en el data.bin estén en orden respecto al ndx. Vamos, que el ndx dice un archivo nanr, seguido de un ncer, seguido de un nanr... y así están en el bin.
A lo que no consigo encontrarle sentido es al data.idx :/

Y la fuente, mira que no pensar en buscar en el ndx... ahí está el nombre de archivo, pero parece que no es un NTFR... a ver cómo se saca/edita...
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Thu Aug 11, 2011 12:20 pm    Título del mensaje: Responder citando

Lo único que tengo apuntado del idx es que empìeza con:
- 4 bytes con el número de elementos (son 0x800)
- 4 bytes a 0
Luego vienen los elementos, que son dos valores de 3 bytes que no sé qué son, donde el primero va en orden creciente:
Código:
- 006011 0009B0
- 006113 000F74
- 006279 000DB0
- 006391 006F24
- 00647D 008100
- 0065F5 000600
- 006769 0001FC
- 006939 000168
  ...

Después, a partir de 0x3008, hay más datos que tampoco sé qué son.

En algún lugar de toda esa maraña están las longitudes y offsets de los ficheros.

Para el ndx he usado lo siguiente, que me crea la estructura de carpetas:
Código:
#include <stdio.h>
#include <stdlib.h>

void Tree(FILE *fp, char *fb, int sum, char *path);
void Folder(char *path);

int main (void) {
  FILE *fp;
  int fs;
  char *fb;

  if ((fp = fopen("data.ndx", "rb")) == NULL) exit(-1);
  fs = filelength(fileno(fp));
  if ((fb = (char *) malloc(fs)) == NULL) exit(-1);
  if (fread(fb, 1, fs, fp) != fs) exit(-1);
  if (fclose(fp) == EOF) exit(-1);

  Tree(fp, fb, 0, "data");

  free(fb);

  return(0);
}

void Tree(FILE *fp, char *fb, int sum, char *path) {
  int num, len, pos, fic;
  char filename[256];
  int i;

  num = *(short int *)(fb + sum); sum += 2;
  while (num--) {
    len = *(short int *)(fb + sum); sum += 2;
    for (i = 0; path[i]; i++) filename[i] = path[i];
    filename[i++] = '/';
    fic = 0;
    while (len--) {
      if (*(fb + sum) == '.') fic = 1;
      filename[i++] = *(fb + sum++);
    }
    filename[i] = 0;
    pos = *(int *)(fb + sum); sum += 4;
    if (!fic) {
      printf("<DIR> %s\n", filename);
      Folder(filename);
    } else {
      printf("      %s\n", filename);
    }
    if (pos) Tree(fp, fb, pos, filename);
  }
}

void Folder(char *path) {
  int i;

  for (i = 0; path[i]; i++) {
    if (path[i] == '/') {
      path[i] = 0;
      if (mkdir(path) > 0) exit(-1);
      path[i] = '/';
    }
  }
  if (mkdir(path) > 0) exit(-1);
}


Todo en: http://www.megaupload.com/?d=GTS7YUB5
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Skye



Sexo: Sexo:Mujer
Registrado: 03 Aug 2011
Mensajes: 95
Estado: Offline
MensajePublicado: Thu Aug 11, 2011 6:14 pm    Título del mensaje: Responder citando

Muchas gracias por tu ayuda CUE Smile
Entonces "sólo" queda sacar los archivos...
He estado mirando (otra vez) el idx... en el ndx hay un .msg llamado BOMB_FIND_REST_4.msg, el cual supongo corresponde al texto que hay en 0x16F386C en el bin. He estado buscando los offsets del texto y del nombre de archivo, pero no aparecen :/
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Fri Aug 12, 2011 9:16 am    Título del mensaje: Responder citando

Yo no sé por qué hay 0x800 elementos de 2*3 bytes al principio del fichero. Después, a partir de 0x3008 se observa que hay valores de 3 y de 4 bytes, y, a simple vista, no veo qué pauta siguen. A veces parece que hay 1 de 3 seguido de 2 de 4, se repite varias veces, luego hay otros valores, luego parece repetirse, etc.

Esos textos que dices tienen una longitud justo antes. En 0x16F3738 pone la longitud de la primera frase, hasta llegar la 0xFF separador. Lo mismo pasa en 0x16F36D0. En otros casos no veo la relación. Así que la longitud de los textos está dentro de los mismos.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Skye



Sexo: Sexo:Mujer
Registrado: 03 Aug 2011
Mensajes: 95
Estado: Offline
MensajePublicado: Fri Aug 12, 2011 1:28 pm    Título del mensaje: Responder citando

Bueno, tengo más o menos el "formato" de los textos. El texto en 0x16F3D18, por ejemplo:
Al final del texto anterior, vemos 0x1C. Esto es la longitud del header, por llamarlo de alguna forma, del texto en cuestión.
Luego 0x1 seguido de 0x0. Esto dice que el primer "trozo" de texto comienza en 0x0 relativo al final del header.
0x2 seguido de 0x35. El segundo trozo empieza en 0x35.
0x3 seguido de 0x69. El tercer trozo empieza en 0x69.
Luego 4 bytes y empieza el texto.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Fri Aug 12, 2011 2:25 pm    Título del mensaje: Responder citando

Eso es, y además amplío un poco más. Esos valores, 1-2-3..., indican el número de texto, de forma secuencial, y no tienen por qué comenzar en 1 (0x16AEDE0, por ejemplo, donde comienza por 0x02BD), hasta que se lee 0, que indica el final de los punteros. El bloque entero de textos va ajustado a 4 bytes.

La estructura de los textos queda así:
- 4 bytes con la longitud de la zona de punteros, sin contar con estos 4 bytes
- 4 bytes con el índice/número de texto correlativo, 0 si es el final
- 4 bytes con el offset absoluto del texto, empezando a contar desde el primer byte después de la zona de punteros (o sea, desde el inicio de la cabecera, sumar a este valor 4 más la longitud indicada al principio)
- textos, todos seguidos, ajustando a 4 bytes el final, rellenando con ceros si es el caso

Todo esto no sirve para mucho si no se pueden extraer los ficheros, pues estamos con el típico problema de tener que adaptarnos al espacio existente, sin poder ampliarlo ni reducirlo. Poder cambiarse puede hacerse, pero siempre he pensado que es un sistema bastante chapucero, propio de consolas más antiguas con serias limitaciones de espacio, y la DS no entra en esa categoría.

¿Me lo parece a a mí o hay textos japoneses y textos ingleses?
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Sat Aug 13, 2011 12:46 pm    Título del mensaje: Responder citando

Me estaba aburriendo un poco (no había nada curioso en la tele) y he fisgado un poco más los ficheros.

Parece ser que los textos empiezan en 0x016AED10. He mirado unos cuantos para ver relaciones y creo que algo he sacado. Lo que dije antes de que los bloques de textos están ajustados a 4 bytes creo que más bien es que los ficheros van ajustados a 4 bytes, así que se puede saber dónde empieza cada uno y su longitud:
- 0x016AED10, 0x23 bytes
- 0x016AED34, 0xA0 bytes
(solo los dos primeros, que no es plan de gastar el teclado)

Ojito, que hay textos en UTF-8, con caracteres de 1-2-3 bytes, y en ellos el 0x05 es el espacio. Para más info sobre la codificación, guguel es la solución (cómo mola cuando pones algo y rima).

Al estar cada fichero ajustado a 4 bytes nos indica que su longitud es múltiplo de 4 sí o sí, así que divido el offset de cada fichero entre 4. Lo hago porque me da la gana y porque quiero, que para eso es mi tiempo, además de que la experiencia debe servir para algo. Así que ahora tenemos:
- 0x016AED10 / 4 = 0x5ABB44, 0x23 bytes
- 0x016AED34 / 4 = 0x5ABB4D, 0xA0 bytes

Fisgoneando en el idx encontramos (y pasando del '0x', que también me desgasta el teclado):
- en 0003BD02 aparece la secuecia 44-BB-5A-00 + 23-00-00-00
- en 00025724 aparece la sencuecia 4D-BB-5A-00 + A0-00-00-00

¡¡¡Chorprecha!!! Ya sabemos que en el idx están almacenadas la longitud, en bloques de 32 bits (4 bytes, para los despistados) y el tamaño. El cómo y demás preguntas metafísicas (dónde, cuándo, etc.) ya te lo dejo a ti para que te lo curres.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Skye



Sexo: Sexo:Mujer
Registrado: 03 Aug 2011
Mensajes: 95
Estado: Offline
MensajePublicado: Sat Aug 13, 2011 6:08 pm    Título del mensaje: Responder citando

Genial xD gracias CUE, ya seguiré intentándolo Razz Si lo consigo, lo pondré aquí ^^
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Sun Aug 14, 2011 10:48 am    Título del mensaje: Responder citando

¿Estás segura de que quieres traducir este juego? (respuestas posibles: "Sí", "No", "No sabe/No contesta", "Oh, my god!").

Es que jugueteando un poco he sacado 13912 ficheros con textos, japoneses incluidos, además de uno que no tiene nada, aunque podría haber más. Si ya sería un auténtico coñazo traducirlo teniendo los punteros, no quiero pensar lo que sería hacerlo por el método del editor hexadecimal, sin pasarse del tamaño preestablecido para cada uno de ellos. Bueno, sé que hay gente loca, pero no sé yo si hasta este punto. Ojo, que el ser muchos ficheros no significa que sean muchas líneas. Hay ficheros con una línea, otros con dos, otros con definiciones, etc., vamos, lo normalucho, pero es un preñazo tenerlo todo separado en tantas partes.

En la lista de ficheros hay 13913, uno más, que no sé dónde narices se ha metido, pero como que paso de buscarlo. Total, sólo es el 0.007% de los ficheros, así que prefiero pensar que he sacado el 99.993% de los que hay y me quedo tan ancho.

Y eso que sólo he mirado los textos. Como alguien quiera mirar en la inmensidad de ficheros para buscar gráficos que traducir... (puntos suspensivos).

En un post has dicho que has hecho algo en python (sic), puedo darte la "cosa" extractora para que te lo curres, que, en realidad, es una chorrada. En teoría sólo tendrías que hacer una pequeña utilidad que compruebe que los textos traducidos no ocupen más del original y volver a meter todo en el "Data.bin". Ja, visto así parece muy simple.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Skye



Sexo: Sexo:Mujer
Registrado: 03 Aug 2011
Mensajes: 95
Estado: Offline
MensajePublicado: Sun Aug 14, 2011 11:31 am    Título del mensaje: Responder citando

Sí que quiero traducir el juego. ¿Loca? Me lo dicen mucho xD
Tampoco hay tantos gráficos con texto, afortunadamente... vamos por lo que he visto jugando.
Lo primero sería encontrar la fuente, meter nuestra querida eñe y vocales con tildes...
Y los punteros... por algún lado estarán, espero. Por ahora seguiré mirando.

Bueno, si me dieras la cosa extractora esa te lo agradecería Smile Ya veré que puedo hacer en python, aunque debería empezar a aprender algún C, que son los que sirven para cualquier cosa...
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Sun Aug 14, 2011 1:24 pm    Título del mensaje: Responder citando

Pues a esperar todo el mundo (One Piece, Radiant Historia, etc.), que acabo de decidir irme esta tarde a pasar unos días a la playa, a que la nenas admiren mi hermoso cuerpo bañarme y mirar a las pibitas tomar el sol.

¿Encontrar la fuente? ¿Te refieres a una especie de tabla gráfica que contiene los 1280 posibles caracteres que se pueden poner en el juego, contando ASCIIs, hiraganas, katakanas, kanjis, y sin contar los 2 caracteres especiales que hay, repartidos en 5 subtablas de 256 caracteres cada una? No sé, pero creo, imagino, pienso, me da la impresión que algo puede hacerse Very Happy Smile Laughing Razz Twisted Evil Wink
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
CUE
Administrador
Administrador



Registrado: 24 Jan 2011
Mensajes: 5314
Estado: Offline
MensajePublicado: Tue Aug 16, 2011 4:37 pm    Título del mensaje: Responder citando

Sólo para poner los dientes largos y que a alguna muchacha se la caiga la baba, o sea, mi mala hostia habitual para fastidiar Twisted Evil



Cuando tenga tiempo miro lo que me faltaba por postear, que ahora estoy recién llegado y tengo un montón de cosas que hacer.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Mostrar mensajes anteriores:   
Publicar Nuevo Tema   Responder al Tema    Romxhacking -> Dudas y Preguntas Todas las horas están en GMT + 1 Hora
Ir a página 1, 2, 3 ... 10, 11, 12  Siguiente
Página 1 de 12

 
Saltar a:  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas

Temas Relacionados
 Temas   Respuestas   Autor   Lecturas   Último Mensaje 
No hay mensajes nuevos Se puede editar algo del Legend of heroes trails in the sky? 1 gadesx 1457 Thu Apr 16, 2015 8:08 pm
CUE Ver último mensaje
No hay mensajes nuevos ¿Este programa puede servir para algo? 2 gadesx 1878 Sat Sep 21, 2013 8:22 am
CUE Ver último mensaje
No hay mensajes nuevos Algo para este "formato"? 3 cralso 2107 Tue Aug 20, 2013 7:53 am
CUE Ver último mensaje
No hay mensajes nuevos Light Crusader o algo 10 gadesx 3620 Sun Aug 04, 2013 1:07 pm
Auron Ver último mensaje
No hay mensajes nuevos Intentando aprender algo de romhack 13 tchusami 4791 Sat Nov 24, 2012 11:05 am
CUE Ver último mensaje
 


Crear foro gratis - Powered by phpBB © 2001, 2005 phpBB Group
subRebel style by ktauber