Registrarse

¿Liberar offset?

Estado
Cerrado para nuevas respuestas.
Bueno, estaba traduciendo el Dark Rising (ahora no que hay exámenes) y me pregunto si cuando voy traduciendo al refactorizar inserto el script ya traducido pero, el que estaba en inglés sigue ahí (creo). ¿Hay alguna forma de borrarlo y dejar el espacio libre?

Lo digo porque quería aplicar un parche más adelante y temo que no tenga el espacio.
 

Gold

Porrero a tiempo parcial
Miembro insignia
Pues si usaras PKSV te podrías dar cuenta en que offset donde empieza el texto y en cual acaba, aunque creo recordar que XSE te dice el tamaño de cada string, si dice que el string antiguo pesa 88 bytes entonces llena 88 bytes con FF, asi de sencillo
 
Pues para eso deberías conocer exactamente de donde a donde va el script y cambiar todos esos datos por FF.
Gracias. Probaré el PKSV que dice Susanoomon.

Pues si usaras PKSV te podrías dar cuenta en que offset donde empieza el texto y en cual acaba, aunque creo recordar que XSE te dice el tamaño de cada string, si dice que el string antiguo pesa 88 bytes entonces llena 88 bytes con FF, asi de sencillo
Gracias. Voy a probar la herramienta a ver. Hombre, decir si que dice donde está pero como que me puedo equivocar y cagarla.


EDITO: ¿Cómo se puede saber de donde a donde va el script?
 
Última edición:

Gold

Porrero a tiempo parcial
Miembro insignia
Pues fácil, solo decompila el script con PKSV, localiza el offset del texto en inglés, por ejemplo sería 0x8193C0, luego en la barra de herramientas buscas la opción "debug (fake compile)" te va a desplegar una ventana con una especie de log con las offsets usadas en cada string, baja hasta localizar la offset deseada, va a decir algo así: "0x8193C0 ===> 0x45 bytes" eso quiere decir que el texto tiene un peso de 45 bytes, entonces con ese dato vete a hxd y dirigete a la offset del texto y a partir de ahi vas a llenar los siguientes 45 bytes con FF, y asi es como liberas espacio
 
M

Miembro eliminado 28262

Invitado
Pues fácil, solo decompila el script con PKSV, localiza el offset del texto en inglés, por ejemplo sería 0x8193C0, luego en la barra de herramientas buscas la opción "debug (fake compile)" te va a desplegar una ventana con una especie de log con las offsets usadas en cada string, baja hasta localizar la offset deseada, va a decir algo así: "0x8193C0 ===> 0x45 bytes" eso quiere decir que el texto tiene un peso de 45 bytes, entonces con ese dato vete a hxd y dirigete a la offset del texto y a partir de ahi vas a llenar los siguientes 45 bytes con FF, y asi es como liberas espacio
¿Qué acaso el XSE, no tiene la misma opcion cada vez que le das a debug? o_O

Cómo sea, en todo caso, Dani está en lo correcto, lo que también pudieses hacer seria cojer el texto con A-text y luego traducirlo SIN REPUNTEAR, así no pierdes espacio ni ocupas más memoria en la ROM.

Saludos.

PD: A-TEXT4WIN!!
 

Kaiser de Emperana

Called in hand
No hay porque insertar todo el script de vuelta. Con que repuntees los textos ya alcanza.
Y creo que podrías hasta hacerlo con Dynamic. EJ:

Script original dijo:
#org 0x804520
lock
msgbox 0x6 0x804540
release
end

#org 0x804540
= Hi! How are you?
Y traducido sería abrir es script y cambiar los textos por offset dinámicos.

Traducido dijo:
#dynamic 0x900000 (O el offset donde quieras tener todos los textos)

#org 0x804520
lock
msgbox 0x6 @frase
release
end

#org @frase
= ¡Hola! ¿Cómo estás?
Así el script se mantiene en las mismas direcciones pero con punteros cambiados.


Y para borrar los textos en inglés yo te recomendaría tener un "rom en blanco". Un simple archivo *.gba que todos sus bytes sean FF. Le hacés una copia y la copia la abrís con XSE. Con XSE compilás todos los textos que quieras borrar.
Textos en inglés dijo:
#org 0x804540
= Hi! How are you?

#org 0x804578
= olakase

#org 0x804640
= blablabla
Y hacés un parche ips entre el rom en blanco y el rom que solo tiene los textos compilados. Y así tenes un parche que borra los textos convirtiéndolos en FF.

Si no me expliqué bien preguntame xD
Suerte.
 

Loz

_______
Bueno IronMon, creo que te estas complicando mucho la vida (recuerdo que yo también me complicaba mucho cuando estaba aprendiendo), supongo que el Hack que estas traduciendo es este, ¿verdad?



Pokémon –Dark Rising 1 (Tome el archivo .ips que encontré en su web)

Si no es así, pues creo que vi otro Hack.

Pero bueno, esta explicación te servirá igual.

El manejo de los scripts no los conozco muy bien, como mencione en una anterior oportunidad yo solo los utilizo para ver los offsets de los diálogos.

Con respecto a tu duda, como te menciona Kaiser de Emperana, si quieres reducir el consumo de espacio en la ROM, solo tienes que repuntear los diálogos del Hack como se hace habitualmente, ya sea con Thingy (supongo que leíste el pequeño tutorial que hay en el foro respecto a su uso) o cualquier editor hexadecimal que conozcas, o simplemente sobrescribir el diálogo en inglés, pero con esta última opción tienes que tener cuidado al momento de la traducción, porque se hace un esfuerzo al tratar de que las palabras quepan, entren o encajen en el espacio predefinido del texto en inglés y al hacer esto en ocasiones se pierde la narrativa original de la historia del Hack, por eso es conveniente o recomendable colocar la traducción de los diálogos en un lugar libre de la ROM (lugar donde haya muchos FFs).
Te menciono todo esto porque la forma de como planteas tu duda me da la impresión de que estas realizando todo el script de nuevo y lo estás colocando en otro lugar, o tal vez sean solo ideas mías.

Con respecto al espacio, puede ver que tienes suficiente espacio libre en la ROM, he aquí una pequeña lista de los lugares libres que encontré en la ROM:

De 916300 a 924900
De 924C60 a 924D80 pequeño
De 925160 a 94FE80
De 950260 a 9502F0 pequeño
De 951390 a 965940
De 965C40 a 97B3F0
De 97B640 a 990EC0
De 991340 a 9A6E00
De 9A7130 a 9BC440
De 9BC7E0 a 9D1F00
De 9D2210 a 9E82C0
De 9E85D0 a 9FD480
De 9FD7F0 a 9FFFD0 mediana
De A01A00 a A12F30
De A13330 a A289F0
De A28D50 a A53F70
De A54280 a A69A30
De A69E30 a A7F4F0
De A81090 a AEFFD0
De AF05C0 a BFFFD0
De C0AA50 a CFFFD0
De EB1D00 a FFFFF0

Si quieres puedes verificarlos tú mismo.

Con respecto al parche, supongo que sobrescribe un lugar ya utilizado en la ROM y es por eso que intentas despajar esa área, mmm, si es ese el caso, tendrías que reacomodar toda la información donde se aplica el parche, pero eso es un tanto más complicado ya que la información a reacomodar podría ser un script, mapa, etc. Tendrías que rehacer la estructura del juego, pero si no, creo que tienes suficiente espacio en la ROM, eso sí, dependiendo del tamaño del parche que quieras aplicar.

Por último, lo de borrar la información que ya no nos sea útil se puede (la verdad nunca lo probé, pero teóricamente no afectaría en nada al juego), pero en este caso creo que no sería recomendable, porque según lo que vi en los diálogos de inicio del juego, los textos están entrelazados con los scripts, y al querer borrar el texto en ingles no recuperarías mucho espacio.

Bueno espero que te sirva de algo lo que te mencione y que sigas con tu traducción.
 
Estado
Cerrado para nuevas respuestas.
Arriba