miércoles, 3 de abril de 2024

4 - Traducción para "Crystal Mines" de NES al Español



INFO DE LA ROM:

Database match: Crystal Mines (USA) (Unl)
Database: No-Intro: Nintendo Entertainment System (v. 20210216-231042)
File SHA-1: 4D068EA8F41675D3D2471211DF1B4709D07C4FE7
File CRC32: 245AB38B
ROM SHA-1: 7D92E71E23B35943147C513CAAB7AAB4B4927DD6
ROM CRC32: 72E66392

Changelog:
Versión 1.0 (19/02/2024):
- Traducción completa.
- Gráficos editados.

Versión 1.1 (20/02/2024):
-Traducida pantalla final.

Versión 1.2 (05/11/2024):
-Traducida una cutscene olvidada.
-Pequeña mejora en algunos textos.




3 - Traducción para "Chip 'n Dale Rescue Rangers" de NES al Español Latino.

 


Y seguimos con otra traducción de un título de mi infancia. La traducción se hizo con la intención  de mantener el doblaje hecho en latinoamérica por lo cual, se modificó los nombres originales y se adaptaron a los del doblaje, espero lo disfrutes.

Este parche debe ser aplicado a la versión americana.

INFO DE LA ROM:


Database match: Chip 'n Dale - Rescue Rangers (USA)
Database: No-Intro: Nintendo Entertainment System (v. 20210216-231042)
File SHA-1: 39A5FDB7EFD4425A8769FD3073B00DD85F6CD574
File CRC32: E641BD98
ROM SHA-1: BD21B1C548F183A136B1357A283E46F73702D08D
ROM CRC32: 8BF29CB6

Changelog:

Versión 1.0 (13/02/2024):

- Traducción completa.
- Se agregaron letras minúsculas y caracteres del español.
- Pantalla inicial traducida.
- Nombres adapatados al doblaje latino "GADGET" por "Gady" y "FAT CAT" por "Mala Cara".
- Traducido parte del HUD de pausa.

versión 1.1 (03/12/2024):

- Repaso general del Script.
- "Gady" cambiado a "Gaddy".
- Se crearon 2 versiones, uno con mayúsculas-minúsculas y otro solo con mayúsculas.

2 - Traducción para "Base Deff Adventures" de NES al Español

 


Para continuar una traducción a un juego indie que salio el pasado 2019, traduccion hecha del francés.






Info de la ROM:

Database match: not found
Database: No-Intro: Nintendo Entertainment System (v. 20210216-231042)
File SHA-1: 68270F3C00E9690363B0D6DCD8006E47472E61E8
File CRC32: 5006C82F
ROM SHA-1: C84FD1CFFC340647D0FC40215D68034BC041ED5D
ROM CRC32: F8253658

Usar la ROM Basse Def Adventures (USA Europe) (Fr) (Aftermarket), no esta testeado en la version WORLD.

Changelog:
Versión 1.0 (23/03/2024):

- Traducción completa al español.

1- Traducción para "Dragon Ninja (J) (Bad Dudes vs Dragon Ninja)" para NES en Español


        Bueno, que me mejor para inaugurar este blog que con uno de mis títulos favoritos que jugué desde la infancia "Bad Dudes vs Dragon Ninja", sin embargo esta es una modificación a la versión japonesa que se llama "Ninja Dragon", que por cierto goza de "Cutscenes" entre niveles, la cual lo hace más llamativa, y que no comparte su versión americana ni la versión de Arcade. También posee lo controles originales, que por alguna razón que desconozco, decidieron invertir en la version americana.







Esta traducción esta basada en al versión traducida del japones por Stardust Crusaders

La información de la Rom es:


Database match: Dragon Ninja (Japan)
Database: No-Intro: Nintendo Entertainment System (v. 20210216-231042)
File SHA-1: A2FB92BFEBAC5E05405DB31D8D82E200FC4186AF
File CRC32: DB6EF617
ROM SHA-1: 489D1FC30630D3AD60835992C2433250A8E0803E
ROM CRC32: 2A7D3ADF

Nota: si van a jugar en el emulador Mesen ocupen la versión de la ROM Dragon Ninja (J) (PRG0) [p1] [!].nes 

Changelog:

Versión 1.0 (06/02/2024):
- Semi-full traducción.
- Edición de Gráficos.

Versión 1.1 (08/02/2024):
Traducido el Sprite que me faltó.

Gracias a Jackid por ayudarme a localizar el texto que me faltó.

Descarga el parche aquí.


martes, 1 de diciembre de 2020

[Notas Romhacking] Compresión de Golomb-Rice de 4 bits

En este artículo documentaré como funciona la codificación de Golomb, esto se hace con la intención de compartir conocimientos con la comunidad de romhack hispana.

Esta codificación se hace presente de la desarrolladora Imagineering Inc. específicamente en los siguientes títulos de NES:

  • Barbie
  • Home Alone 2
  • Ren & Stimpy Show, The
  • Simpsons Bart vs Space Mutants
  • Simpsons Bart vs The World
  • Simpsons Bartman Meet Radiactive Man

Para entender como funciona primero debemos entender la diferencia entre 1 byte y 1 bit. Recordemos un 1 byte esta conformado por una cadena binaria conformada por 8 bits, tal y como muestra la imágen de abajo.



Si ocupamos las mates, con potencias de 2 tenemos que 2^8 = 256 combinaciones, y los bytes pueden representarse en formato hexagecimal del 0x00 al 0xFF.

Bien para la codificación de estos juegos se han ocupado 4 bits, osea la mitad de un byte, si ocupamos mates nuevamente, 2^4 = 16 combinaciones, no es mucho, ya que el alfabeto consta de 26 letras (sin contar caracteres de puntuación, etc), sin embargo como solución podemos sacrificar un espacio y asignarle un "byte flag", de esta manera podemos crear otro alfabeto de 16 espacios, y cuantos queramos sacrificando siempre un espacio en el primer diccionario.

Para ver esto de mejor forma tomare como ejemplo el juego: "The Ren & Stimpy Show - Buckeroo$!" de NES. Si analizamos su tabla de caracteres (char map):



Como podemos ver en la imágen en la parte seleccionada, este juego ocupa 49 caracteres, a su derecha los tenemos en ASCII. Bien si hacemos los calculos: 49 / 16 = 3,0625, (aproximamos al entero siguiente) o sea necesitaremos 4 diccionarios para poder llenar todos los caracteres. Ahora, ¿cuántos caracteres caén en el primer diccionario?, Si pensaste en 13 estas en lo correcto, pues debemos sacrificar 3 espacio para ocuparlos como flag para apuntar a los otros diccionarios.

La siguiente tabla resume lo anterior:


Algo importante de mencionar es que orden de los caracteres están basado es su frecuencia de aparición, lo que quiere decir que los caracteres de la columna 0 seŕan los que tienen mayor probabilidad de aparecer y por lo tanto al no requerir de un "flag" ocuparan solo 4 bits , por el contrario los de la demas columnas( 1, 2 y 3) ocuparán 8 bits.

Ahora solo debemos encontrar donde esta el texto(no explicaré esto aquí) y tomar todos los valores hexagecimales y dividirlos en 2 partes cada byte, por ejemplo el byte "D0", nos quedaría "D" y "0", si lo pasamos a decimal "13" "0", a esto se le llamarán "nybbles", y abajo tenemos un extracto del texto en nybbles.



Ahora, solo debemos interpretar lo números como si fueran coordenadas, y ocupar la tabla de más arriba, recuerden ocuparemos por defecto la fila 0, si es que llegamos a un flag, cambiamos de diccionario y  ocupamos el "nybble" siguiente, para ejemplificar mejor ocuparemos la región que está encerrada.

5 = N, 6 = I,
13 (flag para ir al diccionario 1) -> 0 = C, 
13 (flag para ir al diccionario 1) -> 12 = K,

1 = E, 12 = L, 2 = O, 10 = D, 1 = E, 2 = O , 5 = N, 11 = {0D}

Así nos queda la cadena de texto:

NICKELODEON{0D}

Bien, ya decodificamos el texto, y esto corresponde a la intro del juego, la primera línea específicamente:


Ahora, solo queda hacer una herramienta que haga esto automáticamente, y bueno hacer lo contrario, osea comprimir de texto, para eso debemos también crear nuevos diccionarios, basados en la frecuencia de aparición de cada caracter, para comprimir con la misma eficacia. Y por último y no menos importante manejar los punteros de los textos.

Herramienta disponible aquí.

Hasta pronto en otra nota de romhacking.