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

Ayuda traduccion Castlevania 64
Ir a página Anterior  1, 2, 3  Siguiente
 
Publicar Nuevo Tema   Responder al Tema    Romxhacking -> Dudas y Preguntas
Ver tema anterior :: Ver siguiente tema  
Autor Mensaje
carloscass1994



Sexo: Sexo:Hombre
Registrado: 06 Dec 2011
Edad: 24
Mensajes: 185
Estado: Offline
MensajePublicado: Sat Dec 10, 2011 5:38 pm    Título del mensaje: Responder citando

Hola denuevo, aqui un dato que me dejo un colega por el romhack hispano.

es Copy Pegue Razz

___________________________________________

No me lei todo todo lo de arriba pero la tabla es 16 bits?
Aparte eso de la letra que falta no sera porque no tiene ningun valor asignado?
Aveces una misma letra o caracter esta representado por 2 codigos hex distintos o sea 2 Tes o 2 eFes
digo capaz usa dos tablas al mismo tiempo.

CARLOS ESTO TE DEBE SERVIR LEELO LO TRADUJE ONLINE DEL PORTUGUES
Traducción para Nintendo 64 por el Dr. X AUTOR ORIGINAL

Para empezar vamos a ver lo que se necesita:

0. Editor hexadecimal, siempre vamos a necesitar: D voy a utilizar el WindHex, pero si usted desea utilizar su preferido
0. Cualquier ROM de Nintendo 64, aquí voy a utilizar el Mario Kart 64
0. n64demo, un pequeño programa para arreglar las el cheksum de la ROM
0. LemAsm, ensamblador para N64, el caso sirve para intercambio de bytes
0. N64gfx para editar la parte gráfica de la ROM, es muy complicado de usar y prácticamente no hay tutorial para ello: (
0. Una gran cantidad de paciencia XD

Una breve introducción. Algunas consolas de ciertos juegos son fáciles de traducir, sólo tienes que abrir el texto dumper ROM, vaya editor hexadecimal Prum y bla, bla, bla, bla. En el caso de la Nintendo 64 es diferente. El sistema utiliza un proceso llamado organización bytes Byte intercambio. Traducido, el Nintendo 64 utiliza de una manera diferente para obtener los bytes en la memoria, denominado swap Byte (Intercambio de Bytes). Esta explicación del Swap Byte puede parecer aburrido y sin importancia, pero es bueno saber. En este caso vemos a principios de la ROM de Mario Kart un nombre un poco loco, o mejor, Odie. Este es el intercambio de bytes: D. Usted puede notar que las mismas letras que se utilizan en la palabra loco en Oddi. Que debería estar recibiendo la caída de cosas, para comprender mejor cómo el intercambio Byte funcionará en la práctica. En Mario Kart ROM se le ve tan temprano:

FALTA LA IMAGEN PERO SE ENTIENDE

Este "Amir oaKtr6 4" es en realidad "Mario Kart 64," sólo lo que está en intercambio de bytes. Funciona mediante la adopción de los caracteres y la separación de cada dos, cambiando de posición y uniendose a ellos más tarde, por ejemplo:

Mario Kart 64 Nombre normal
Ma ri o Ka rt 6 4 La separación de los dos por dos, incluidos los espacios
aM ir o aK tr 6 4 Su sustitución en la posición de "Ma" se convirtió en "AM"
aMir oaKtr6 4 juntando los caracteres aparece esta monstruosidad aquí

Pregunta: ¿pero puedo traducir? Por supuesto, pero sólo si usted quiere pasar meses arrastrando el texto en el Bloc de notas todo el tiempo y pruebas para ver cómo se ve XD. De hecho, no hay paciencia para esto. Pero con el programa LemAsm se puede agarrar la ROM y cambiar los caracteres a la normalidad. Un consejo, el ode ha traducido este programa, lo consigue en su página web, www.odetraducoes.rg3.net. Con el programa en la mano, o mejor en HD, ábralo y vaya a Archivo - Rom> Abrir. Después de la ROM está abierto, vaya a Herramientas - Byteswap> ya que el texto se convierte en la opción predeterminada. Ahora sí, el texto establece lo normal para ir a la traducción.

AH! Sólo un detalle importante, N64 ROMs que están en *. rom no utilizan Byte Swap, otros (*. n64, *. V64 ...) si lo utilizan.

Con el texto en su lugar todo es mas lindo y solo hay que traducir. Pero después de terminar? ¿Qué debo hacer? Es tan fácil como 1, el proceso, abrir el LemAsm y hacer lo mismo que se hace pasar intercambio de bytes de texto normal, pero ahora como en el texto que irá al intercambio de bytes. Después de que usted tiene que corregir la ROM chksum para trabajar en todos los emuladores y no dan ningún problema importante, ir a la carpeta donde se ha colocado el n64demo y poner la ROM en el mismo N64 que se han traducido, haga clic en el ROM , mantenga y arrastre el icono del programa CHKSUM64.EXE, de esta manera:

EN RESUMEN CARLOS HAY QUE USAR EL LemASm PARA INVERTIR (BYTE SWAP) TRADUCIS Y LUEGO VOLVES A INVERTIR CON EL LemAsm DESPUES CORREGIS EL CHECKSUM CON EL OTRO PROGRAMA.
___________________________________________

Creo que esto puede ser de ayuda, aunque talves ya coneces de esto, pero sera que eso de invertir los bits sera lo que nesesito?
lo intente pero se me hace medio rarito como todo anda invertido no consigo nada Confused

Y a cual compresor te refieres cue?

creo que siendo el que intenta traducir esto me quedo un poco atras, bueno vamos que si puedo xD

denuevo muchisisimas gracias por toda la ayuda, creo que intentare contactarme con este dr.x aunque portugues tratare de pedirle consejo, puede que sepa mas de la n64.
_________________
Traducciones que espero algun dia terminar

Megaman X4 PC - lento pero algun dia la termino
Final Fantasy 2 PS1 - ni yo se que sera de este
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor MSN Messenger
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5435
Estado: Offline
MensajePublicado: Sat Dec 10, 2011 6:49 pm    Título del mensaje: Responder citando

Nada de eso te sirve. Entiendo que la gente quiera ayudar, pero muchas veces lo que hacen es liar más el asunto por no saber con qué están tratando y no haberlo mirado lo más mínimo. En tu caso ni necesitas varias tablas, ni necesitas ningún falso ensamblador (de lo que se habla en ese post es de un proceso para intercambiar bytes, pero no lo necesitas), ni necesitas ningún editor gráfico. Lo único que necesitas es descomprimir los datos, textos incluidos, pues el Castlevania 64 tiene la información comprimida. Para poder descomprimir eso se necesita saber dónde empiezan realmente los datos y eso no te lo va a indicar ningún manual. Sé como funciona, más o menos, la compresión que usa el juego, pero no sé dónde empezar a descomprimir, y ninguno de esos "manuales" va a servir. Lo unico que te puede servir de toda esa parrafada es el final: "DESPUES CORREGIS EL CHECKSUM CON EL OTRO PROGRAMA", y eso creo que ya tenías claro que debes hacerlo.

Como suele decirse, cada traducción es un mundo. Si traduces una rom en la que tienes todo el texto a la vista, sin tener que hacer procesos raros, entonces sí te puede servir todo eso, pero como no es el caso, mejor olvidarlo.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
carloscass1994



Sexo: Sexo:Hombre
Registrado: 06 Dec 2011
Edad: 24
Mensajes: 185
Estado: Offline
MensajePublicado: Sat Dec 10, 2011 9:39 pm    Título del mensaje: Responder citando

Pues sierto cue, tienes razon, aunque kishne es un gran colega que me ayuda como puede Smile
solo era por si las dudas Razz

bueno siguiendo, como es que tiene el compresor casi listo?
es que no te entiendo muy bien, estas programando un compresor y descompresor para este juego?
si es asi pues wow de verdad me alegraria muchisimo, si no pues no hay problema se entiende Smile

a porsierto cue si tenes cuenta en Taringa.net dime para dejarte almenos unos puntines por toda tu gran ayuda sin funfurruñaderas desagradables a la hora de pedir ayuda Very Happy
_________________
Traducciones que espero algun dia terminar

Megaman X4 PC - lento pero algun dia la termino
Final Fantasy 2 PS1 - ni yo se que sera de este
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor MSN Messenger
josekenshin



Sexo: Sexo:Hombre
Registrado: 28 Jan 2011
Edad: 35
Mensajes: 299
Estado: Offline
MensajePublicado: Sun Dec 11, 2011 10:36 am    Título del mensaje: Responder citando

También la cosa puede variar al tener la rom en .v64 o .n64??, ya que creo entender que están comprimidas en estos formatos y la rom original es de unos 200mb en el cartucho.

Aunque desconozco si se puede descomprimir o desempaquetar una rom de esta consola.

Saludos.
_________________
JoseKenshin Traducciones
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5435
Estado: Offline
MensajePublicado: Sun Dec 11, 2011 11:07 am    Título del mensaje: Responder citando

El compresor es para el juego, para poder sacar los textos en condiciones, como se ven en el savestate que posteé. Pero, y vuelvo a repetir, no sirve de nada si nadie me dice dónde empiezan y acaban los datos comprimidos. Creo, aunque puedo equivocarme, que el juego descomprime parte de los datos según los necesita, por lo que es probable que haya varios bloques comprimidos.

Por cierto, nadie dice que tu amigo no sea un buen tipo, nada más lejos de mi intención. Pero lo cierto es que te cuenta cosas que terminarán por liarte, que no tienen nada que ver con lo que quieres hacer y que no te van a servir de nada.

Ni de coña me registro en Taringa. Bastante me lo pensé antes de hacerlo en trullo-EOL.

jose, el formato de la rom es lo de menos. Hay montones de utilidades que te convierten entre los 3 formatos existentes, y cualquiera que sepa poner instrucciones lo puede hacer. Las roms, dependiendo del copier usado para dumpearlas, pueden ser del tipo:
- ROM, que es el formato real, 'low endian' o 'long word byte swap'. En este caso, el valor 'ABCD' está grabado como 'DCBA'.
- V64, formato estúpido que no debería existir, 'short word byte swap'. En este caso, el valor 'ABCD' está grabado como 'BADC'.
- Z64, el formato 'big endian' de toda la vida, donde el valor 'ABCD' está grabado como 'ABCD'.
Ojo, que a la hora de poner extensiones, la gente pone lo que les sale de la entrepierna, y puedes encontrarte con .v64, .z64, .n64, .rom, .jap, .usa, .pal, .bin, .u64, pero siempre será uno de los tres tipos que he puesto, por mucho que se empeñen algunos en que deben tener una extensión determinada (como los zurullos de NoIntro).

Para saber el formato de la rom, basta con leer los 4 primeros bytes:
- 0x40123780 para ROM
- 0x37804012 para V64
- 0x80371240 para Z64
Dependiendo del caso, se cambian los bytes como he indicado antes, ¡SIEMPRE DE 4 EN 4!, aunque pueda parecer que en el formato V64 se puede hacer de 2 en 2.

La rom es como cualquier otra, o como cualquier fichero empaquetado. Tiene su código, sus datos gráficos, sus textos, ... Sólo hay que buscar dónde están, igual que se hace con las de GB, con las de SNES, ...
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
carloscass1994



Sexo: Sexo:Hombre
Registrado: 06 Dec 2011
Edad: 24
Mensajes: 185
Estado: Offline
MensajePublicado: Mon Dec 12, 2011 12:03 am    Título del mensaje: Responder citando

Bien bien cue, ya se me hacia raro que una ron como castlevania de N64 tuviese un tamaño de solo 12 MB xD

Ya le envie un mensaje al Equipo de traductores Portugueses PO.B.R.E esperemos y sepan donde empiesa y terminan los datos comprimidos o almenos tengan un dato util para traducir el juego.

Que piensas de si tradusco el juego todo lo que pueda, es decir con la tabla que me has dado se puede traducir una pequeña pero considerable parte del juego, y asi si no se termina toda almenos se crea una traduccion parcial Smile
claro la idea de este foro es una tradu 100% completa.

Por sierto tengo unas dudas, hay partes que no consigo uzando la tabla, supongo que son graficas, pero como los consigo? los editores graficos que tengo son estos:
TilEd 2002, Tile Layer Pro, YY-CHR.
solo e probado en rom sencillas como la GBA, NES, GBC, Pero nunca con la N64

estos editores graficos sirven para esto? o hay alguno en especial para estas roms?

ademas que e visto que muchos traductorees consiguen graficos en roms en poco tiempo, como se hace?
me pongo a ver los tiles de arriba a abajo en todos los modos que tenga el editor grafico o hay algun mejor metodo?
en fin, como le hago para ver las graficas de la ROM de N64 y para editarlas.

aqui unas imagenes da las cosas que no puedo editar.





A esta parte la edito en el editor hex sin problemas pero nose porque carrisos al guardarla no se ve ningun cambio Confused , si puedes editar esta parte y ejecutarla sin problemas, dime para saber si se puede y como.



Cuento que despues de una hora logre porfin comprender como es eso de los cambios de bites jajajaja tu lo aprendiste en segundos xD bueno ya se mas o menos como se maneja, veo que para
traducirlo solo hace falta buena imaginacion para escribir palabras con bites que tengan sentido mas alante, solo que es realmente algo tedioso Rolling Eyes

aqui dejo un ejemplo de lo que andava asiendo tratando de cambiar el "Level select" por algo en español, lamentablemente aun no me viene ninguna idea Razz si tienen una frase que encaje con los bits de la segunda palabra pasenla Exclamation

bueno talves suene raro ese palabrero que digo pero cue tu me deves entender xD

; .$$$
;Level Select
;Elige Nivel
;.......$$$..
; Nivel

; $$ $$
;Level Select
;12345 S45ect < aqui fue cuando agarre la idea, que vi que en ves de "Select" decia S45ect Laughing
;*.*.*.*.*.*. < lo utilisaba como una guia lineal, pero ya con el "12345 S45ect" me va mejor Razz
;
;Juego go
;

bueno ojala alguien le venga una ideita para pasar esa !"$"#Q$" que por solo dos cutres letras se hace dificil Laughing Laughing
$
tenia la idea de poner "Modo de dato" pero olvide que tomaria aparte de la "o" el espacio Rolling Eyes Laughing quedando mal esto.

bueno este es mi tonto reporte de hoy, espero no averme retrasado Cool Laughing

Saludos!!!
_________________
Traducciones que espero algun dia terminar

Megaman X4 PC - lento pero algun dia la termino
Final Fantasy 2 PS1 - ni yo se que sera de este
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor MSN Messenger
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5435
Estado: Offline
MensajePublicado: Mon Dec 12, 2011 12:36 pm    Título del mensaje: Responder citando

carloscass1994 escribió:
Que piensas de si tradusco el juego todo lo que pueda, es decir con la tabla que me has dado se puede traducir una pequeña pero considerable parte del juego, y asi si no se termina toda almenos se crea una traduccion parcial Smile
claro la idea de este foro es una tradu 100% completa.

Eso sería una auténtica chapuza. Lo que se ve a simple vista, además de no estar completo, es una pequeña parte de los textos. Un claro ejemplo es la parte del prólogo, donde sólo ves parte de "Transylvania" y poco más, pero en realidad son un montón de líneas de texto.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
Kishne



Sexo: Sexo:Hombre
Registrado: 10 Dec 2011
Edad: 33
Mensajes: 1
Estado: Offline
MensajePublicado: Mon Dec 12, 2011 1:28 pm    Título del mensaje: Responder citando

Bueno carlos al parecer el asunto venia complicado yo no quise darte informacion falsa o algo asi, lo que pasa que en el otro foro no pusiste nada sobre que el juego estaba comprimido sino directamente ni abria el pico, bueno que tengas suerte con los programadores que vas a necesitar en esta tradu.
chao
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
carloscass1994



Sexo: Sexo:Hombre
Registrado: 06 Dec 2011
Edad: 24
Mensajes: 185
Estado: Offline
MensajePublicado: Mon Dec 12, 2011 3:03 pm    Título del mensaje: Responder citando

Oka oka Kishne tranquilo, aqui todos nos entendemos bien ( o almenos eso creo yo Laughing )
Igual gracias por tu ayuda, sobre que esta comprimido yo no sabia nada en ese momento, orita es que vengo aprendiendo algunas cosas que no me esperaba xD

y tienes razon cue, no queda de otra que esperar para descomprimir eso o alguna otra ruta que no imagino cual podria ser Razz
gracias a todos por la ayuda.
_________________
Traducciones que espero algun dia terminar

Megaman X4 PC - lento pero algun dia la termino
Final Fantasy 2 PS1 - ni yo se que sera de este
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor MSN Messenger
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5435
Estado: Offline
MensajePublicado: Mon Dec 12, 2011 6:49 pm    Título del mensaje: Responder citando

Kishne, no se trata de dar información falsa, que tal vez no es la expresión adecuada, pero muchas veces, con la mejor intención del mundo, hace que la gente se desvíe de lo que está haciendo hacia otras cosas que no tienen nada que ver y no le conducen a nada. Por eso he querido ser franco desde el principio, diciendo que hace falta alguien que sepa bastante del tema para poder traducir el juego, y no hay manual en toda la red que pueda ayudar. Y, además de no haber información útil para este juego, tampoco parece que haya mucha gente que pueda ayudar.

carlos, si no consigues que alguien te diga cómo extraer/separar las partes de la rom, vamos, dónde empieza y acaba cada cosa, ya puedes ir despidiéndote de la traducción. Todo lo que hagas te va a valer de poco, y ni siquiera puedes sacar los gráficos/fuentes para poder traducirlos. No creo que los brasileños ayuden mucho, pues trato con muchos de ellos, y de haber sacado algo ya tendrían un proyecto de traducción. He preguntado un poco y no saben nada del tema. Puedes mirar en http://www.romhacking.trd.br/ que es donde hablan de la mayoría de cosas que hacen, y ver si saben algo más.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
carloscass1994



Sexo: Sexo:Hombre
Registrado: 06 Dec 2011
Edad: 24
Mensajes: 185
Estado: Offline
MensajePublicado: Wed Dec 14, 2011 2:55 pm    Título del mensaje: Responder citando

Denuevo disculpen mi demora, ya lo de la ayuda de Kishne los tres lo entendimos bien y no tenemos probllemas Smile olvidemos esa parte xD

Pues bueno, lamentablemente tienes la razon cue, no hay esperanzas sin nadie que sepa coma va esto de la compresion dela N64 Sad
los brasileños nisiquiera me responde.
Creo que no queda mucho de este tema por decir, si no te molesta solo deja el compresor que isiste por algun lado, por si en algun futuro alguien lo nesesite y ya tenga todo lo nesesario.
si por suerte encuentro alguna cosa que me paresca util la comento Smile
Gracias por toda la ayuda.
_________________
Traducciones que espero algun dia terminar

Megaman X4 PC - lento pero algun dia la termino
Final Fantasy 2 PS1 - ni yo se que sera de este
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor MSN Messenger
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5435
Estado: Offline
MensajePublicado: Wed Dec 14, 2011 3:11 pm    Título del mensaje: Responder citando

Ah, no, si yo no tengo problemas. Creo que he explicado las cosas bien, sin ánimo de ofender a nadie. Si alguien lo ha interpretado mal no me preocupa, que bastante tengo con lidiar con los seguidores de la "luz". Es lo que tiene estar en el reverso tenebroso Smile

Al compresor hay que "limarlo" un poco. Si quieres, explico cómo va, que es mejor ponerlo con un ejemplo que darlo hecho, y así comento también los "pelillos" que faltan. Pero no antes del fin de semana, que he empezado unos días sabáticos. Es una forma tonta de decir que ahora no tengo ganas de nada, pero que no se entere nadie Twisted Evil
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
carloscass1994



Sexo: Sexo:Hombre
Registrado: 06 Dec 2011
Edad: 24
Mensajes: 185
Estado: Offline
MensajePublicado: Sat Dec 17, 2011 12:53 am    Título del mensaje: Responder citando

jajajaja cue, bien bien, explica explica, eso del compresor vendria bien paprender mas Smile

no entiendo eso de los seguidores de la "luz" ni idea de verdad pero bueno no importa xD

disculpa mi demora todos estos dias, estuve ocupado formateando esta pc xD

Saludos.
_________________
Traducciones que espero algun dia terminar

Megaman X4 PC - lento pero algun dia la termino
Final Fantasy 2 PS1 - ni yo se que sera de este
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor MSN Messenger
CUE
Administrador
Administrador


Sexo: Sexo:Hombre
Registrado: 24 Jan 2011
Mensajes: 5435
Estado: Offline
MensajePublicado: Wed Dec 21, 2011 9:43 pm    Título del mensaje: Responder citando

Es hora de explicar la compresión del juego, ahora que tengo un rato libre. Seguramente se deberá leer 20 veces para que, como siempre, y por no variar, haya uno o dos que se enteren de algo, pero no tengo el cuerpo para muchas explicaciones, que llevo desde el lunes celebrando las navidades por anticipado con unos y con otros, que mola más que escribir estos jeroglíficos. Y si no se entiende siempre se puede coger algo más ameno, como la magnífica Metafísica de Kant, o algo similar.

Para explicarlo se necesita un cacho de ROM con lo que vamos a descomprimir y un cacho de MEMORIA con lo mismo pero descomprimido. Me he fijado que los offsets de lo que he puesto no coinciden con los de carloscass1994, pero como estoy 100% seguro de usar la ROM correcta, utilizaré los datos de la mía. En las dos imágenes siguientes se ve lo que hay, antes y después de comprimir, y se ve perfectamente por qué no se debe traducir lo que se ve (poder se puede, pero no es aconsejable), ya que es mucho más lo que no se ve.

NOTA: Los offsets de la primera imagen corresponden a los de la ROM, tratándola como un fichero. Los de la segunda imagen corresponden a los de una copia de la memoria con el juego en ejecución, tratándola como un fichero también.

Una cosa a tener en cuenta es que no sé dónde empiezan los datos comprimidos, así que comienzo en una zona que todos puedan ver, justo donde comienza el texto "Transylvania". En la primera imagen el cursor está en el byte que vamos a interpretar, y suponemos que todo lo anterior ya lo hemos descomprimido y puesto en condiciones. En la segunda imagen el cursor está justo donde empezaremos a poner los datos, que debería ser una zona con todos los valores a cero, pero pongo todo para que se vaya viendo y no tener que estar poniendo cuarenta mil diecisiete imágenes.





Más o menos la compresión funciona así:
- cogemos un byte
- si el byte tiene el bit superior a 0 indica que tratamos con un dato comprimido con LZ, y se necesita leer otro byte
- si el byte tiene los 3 bits superiores a 1 indica que debemos poner ceros
- cualquier otro caso indica que se deben tomar bytes sin comprimir

En otras palabras:
- si el byte es '0xxxxxyy' tomamos otro byte, 'zzzzzzzz', y con los 16 bits formamos: 0-xxxxx-yyzzzzzzzz', donde 'yyzzzzzzzz' es un offset de 10 bits ('OFFSET'), y 'xxxxx' es una cantidad ('N'). Eso significa que debemos coger 'N+2' bytes que estén 'OFFSET' bytes más atrás en la parte descomprimida (una compresión LZ normal). Luego se verá mejor con los ejemplos.
- si el byte es '111xxxxx' indica que debemos poner 'xxxxx'+2 bytes a cero.
- si el byte va desde '10000000' hasta '11011111' significa que los 7 bits inferiores es el número de bytes que vienen sin comprimir y que deberemos copiar tal cual.

* lo de añadir '+2' es una característica que no voy a explicar, pero es así (quien sepa algo de compresiones lo entiende, el resto deberá aceptarlo)

OJO: esos 3 casos son fruto de la observación y es bastante probable que no sean correctos del todo. Puede que que en vez de comprobar que un byte comience por el bit '0' sea '00', con lo cual la cantidad tendría un bit menos, o que haya más de 2 casos por controlar si el byte comienza por el bit '1', pero para poder comprobarlo en condiciones se necesita tener los datos completos, no empezar por el medio como he hecho yo. No obstante, y aunque haya algún otro caso, se puede descomprimir con lo explicado, y si aparece alguna cosa rara habrá que controlarla.

Vamos a pasar a la parte práctica, descomprimiendo 'a mano' lo que hay en la primera imagen para irlo poniendo en la segunda. ya sabemos que es un trozo de texto, que los caracteres son de 16 bits y que se usa la tabla que he puesto en otro post.

El primer byte que tenemos es 0x8F, que en binario es 10001111. Tal como hemos explicado eso indicaría, quitando el bit superior, que a continuación vienen 0x0F (0001111, 15 en decimal) bytes sin comprimir, que copiamos tal cual de la 'primera imagen' a la 'segunda imagen'. Lo explico así por no decir en 'la memoria que está a partir del offset donde tenemos el cursor de la segunna imagen'. Después de eso habría que actualizar los 'cursores' en ambas imágenes. Los 15 bytes, y sabiendo que el último que había puesto era un 0x00 (el que está antes del 'cursor'), nos daría algo así:
+ --36 T (el 0x00 superior ya estaba puesto)
+ 0054 r (pongo el carácter para que se vaya viendo el resultado)
+ 0043 a
+ 0050 n
+ 0055 s
+ 005B y
+ 004E l
+ 0058 v

Después del 0x8F y los 15 bytes siguientes tenemos un 0x0C, que en binario es 00001100. Al ser el bit superior un 0 debemos coger otro byte, qe es 0x0C también. Con esos 16 bits formamos '0-00011-0000001100', que, traducidos a lenguaje ordinario, significa que debemos coger 5 bytes de 12 bytes más atrás. 5 es el binario '00011' más 2, y 12 el valor de los 10 bits inferiores. Estos bytes se cogen de la parte descomprimida, no hay que olvidarlo. El cursor está ahora después del valor 0x58 de la 'v', así que contamos 12 bytes más atrás y cogemos 5 bytes, que son:
+ 0043 a
+ 0050 n
+ 00--

Ahora viene un 0x85, que, analizando el valor, quiere decir que debemos coger 5 bytes sin comprimir:
+ --4B i (el 0x00 superior ya estaba puesto)
+ 0043 a
+ 000E ,

Ahora viene un 0x09, que forma parte de un trozo LZ, y nos indica que debemos coger 4 bytes de 0x130 bytes antes. Aquí vemos por qué es tan importante saber dónde empiezan los datos. 0x130 es un valor que está bastante más atrás, y en estos momentos sólo podemos conocerlo porque lo tenemos en memoria, no porque lo hayamos calculado:
+ 0001 \n (esto es un salto de línea a lo C)
+ 0002 # (pongo '#' para indicar un espacio en blanco)

Ahora un 0x9A, que indica que tomemos 26 bytes tal cual:
+ 004B i
+ 0050 n
+ 0002 #
+ 0056 t
+ 004A h
+ 0047 e
+ 0002 #
+ 004F m
+ 004B i
+ 0046 d
+ 0002 #
+ 0013 1
+ 001B 9

Ahora un 0x0C que BLA BLA BLA copiemos 5 bytes de 20 antes:
+ 0056 t
+ 004A h
+ 00--

Ahora un 0x96 para BLA BLA BLA 22 bytes sin comprimir:
+ --02 #
+ 0045 c
+ 0047 e
+ 0050 n
+ 0056 t
+ 0057 u
+ 0054 r
+ 005B y
+ 0010 .
+ A300 ?
+ FFFF <end> (éste es el fin de la línea)
+ A0--

Y así podríamos seguir hasta que nos aburramos.

Más o menos eso es todo, fácil de explicar si no tuviera tanto alcohol en el cuerpo, pero dicen que un clavo saca a otro clavo, así que quien no lo entienda, que se ponga a beber. No garantizo que así se comprenda mejor, pero se entrará en un estado más 'alegre'.

Para entenderlo mejor se puede ir descomprimiendo 'a mano', en un fichero donde vayamos apuntando los bytes y todo ese rollo. Pero sé que es algo que no se suele hacer.

Nada de lo que se ha explicado está por la red ni se encuentran indicaciones de cómo hacerlo, así que cualquier intento de hacerse con la autoría de la descompresión será un plagio (que es lo que suele ocurrir). Por supuesto, siempre queda la opción, como ha pasado con los compresores de la Nintendo DS, de hacer algo similar días después de que alguien lo publique por primera vez, pero hoy día ya nadie cree en ese tipo de casualidades, a pesar de que continúan pasando (¡qué casualidad!).

Copyleft 2011 CUE.
Verbatim copying, translation and distribution of this entire article is permitted in any digital medium, provided this notice is preserved.
Volver arriba
Ver perfil del usuario Enviar mensaje privado  
carloscass1994



Sexo: Sexo:Hombre
Registrado: 06 Dec 2011
Edad: 24
Mensajes: 185
Estado: Offline
MensajePublicado: Thu Dec 22, 2011 9:33 pm    Título del mensaje: Responder citando

Bien, deneuvo disculpa mi tan larga demora, es increible lo que logras con la des-compresion, pero como dijiste se nesesitara leer como 20 veses, aunque al echarle una ojeada rapido se ve que esta bien explicado, vere que puedo aprender y cambiar del juego.

Una cosa mas cue, hare un topic en el RomHack Hispano, le pondre "Busco un Experto en la N64" para ver si tengo suerte y encuentro quen sepa lo que se nesesita para descomprimir este juego, no hay problema con ello? en caso de que no estes deacuerdo avisame y no se hace Smile

denuevo muchas gracias por toda la ayuda, e dejado detinido un tiempo el intento de traducir este juego, por lo de formatear la pc y ademas que no e copiado el juego a la pc por sinceramente flojera tonta de conectar el pendrive ( tengo solo 2 entradas usb, raton y teclado las ocupan xD asi que mi flojera por hay es que viene Razz ) igual lo hare pronto y retomare mi pequeño intento por traducir este juego Smile
aunque realmente si algun dia lo lograra ( dificilmente Sad ) el autor vendrias siendo en realidad tu cue xD
Saludos.
_________________
Traducciones que espero algun dia terminar

Megaman X4 PC - lento pero algun dia la termino
Final Fantasy 2 PS1 - ni yo se que sera de este
Volver arriba
Ver perfil del usuario Enviar mensaje privado   Visitar sitio web del autor MSN Messenger
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 Anterior  1, 2, 3  Siguiente
Página 2 de 3

 
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 1629 Thu Apr 16, 2015 8:08 pm
CUE Ver último mensaje
No hay mensajes nuevos ¿Este programa puede servir para algo? 2 gadesx 2079 Sat Sep 21, 2013 8:22 am
CUE Ver último mensaje
No hay mensajes nuevos Algo para este "formato"? 3 cralso 2357 Tue Aug 20, 2013 7:53 am
CUE Ver último mensaje
No hay mensajes nuevos Light Crusader o algo 10 gadesx 4183 Sun Aug 04, 2013 1:07 pm
Auron Ver último mensaje
No hay mensajes nuevos Intentando aprender algo de romhack 13 tchusami 5556 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