magno escribió:lito69 escribió:Estoy buscando info para traducir este star ocean, llevo 2 dias, no creo que consiga nada pero vamos de ilusión se vive, he visto como ampliar de 48 megas a 96 con un parche, sería lo suyo que te dejara hacerlo a la inversa
, me he bajado un pack que se supone que es para compress y decompress, pero vamos de momento ni papa, a ver como leñes saco texto aunque sea del de 96, con earthbound usaba una aplicación.
He visto esto:
https://docs.google.com/spreadsheets/d/ ... li=1#gid=0De esta web:
http://www.snes-projects.de/forum/index ... eadID=2427No sé si te ayuda
@magno
Eso está bien, que esta "polémica" ayude a la gente a investigar por su cuenta, ya me doy por satisfecho
De todas formas, eso que posteas es de RedScorpion y su gente; en cuanto comenté lo del proyecto en RHDN en seguida se pusieron en contacto conmigo (igual que un portugués y un francés) para que les ayudara porque tienen problemas con el insertor que había programado Doug (el portugués que me contactó). Llevan un par de años parados porque están encontrando problemas con el script y creo que es porque se basan en el hack de Dejap, que hace un planteamiento complejo de la traducción. Os explico:
En la versión japonesa:
* Hay un motor de descompresión en el juego que detecta con una cabecera cómo descomprimir y copiar datos desde ROM a RAM: unos son LZSS, otros RLE, otros RAW, otro aritméticos (S-DD1). Todo esto va a un buffer de RAM de 6KB.
* Hay un motor para cada tipo de datos en el juego que lee lo descomprimido (texto, eventos, mapas, gráficos) y lo "ejecuta", de modo que el motor de texto japonés lee lo descomprimido LZSS por el motor de compresión y va generando el texto en pantalla
Dejap hace lo siguiente:
* Crea un "nuevo" tipo de bloque que copia todo lo comprimido con Huffman a RAM, pero sin descomprimir, y que es ejecutado por el motor de descompresión; lo mete en ese buffer de RAM de 6KB
* Modifcan el motor de texto para que lea los datos de Huffman cad vez que se pide un byte para mostrar una letra en pantalla, y tras descomprimir Huffman, necesita descomprimir el valor obtenido con un diccionario, por lo que necesita mucho espacio en RAM extra para ello.
* La descompresión anterior (LZH) ha de generar una línea de texto completa de una vez, analizarla para comprobar si cabe en una línea del diálogo; por tanto, necesita memoria extra a parte de los 6Kb para dejar una línea de texto
* La descompresión para cada diálogo es un poco lenta porque implica una descompresión Huffman + LZ
Yo hago lo siguiente:
* Creo un nuevo tipo de bloque de datos que usa Huffman, pero éste SÍ se descomprime en RAM cuando lo requiere el motor de descompresión. La precaución a tomar es que no se superen los 6KB del buffer. Además, esto me permite comprimir otros datos que antes estaban en RAW con el árbol Huffman.
* He creado un compresor LZSS y RLE más potente que el que hay en el juego, pero compatible; esto quiere decir que cada bloque de datos comprimidos con estos algoritmos es descomprimido y recomprimido para obtener unos cuandos bytes más de compresión, y además, al usar Huffman en los bloques que antes estaban sin comprimir, consigo 3KB extra de espacio en la ROM japonesa.
* Cuando el motor de texto del juego pide una letra, yo hago arranco mi descompresión por diccionario (LZ) y la hago al vuelo, de modo que no necesito espacio extra en RAM.
Hasta ahora parece que mi método funciona, espero que no haya ninguna parte del juego donde algún buffer desborde y no funcione.