qna_rh
Thread Id: 12888
Thread Name: Cómo se elimina un script en cualquier ROM?
#0
ZeKro 18355
Mi duda es la siguiente:
Quiero hacer un hack (de prueba), y necesito saber como se elimina un script completamente y que se quede el espacio que ocupa, vacío, de modo que se pueda rellenar con el script o con otra cosa que yo quiera.
Por ejemplo: Eliminar el script de que te dan un pokémon y hacer yo mi script propio, pero en el mismo espacio, no en otro espacio nuevo.

Si en vez de decirme como lo elimino me decís como lo edito, de forma que sea el script que yo quiera, tambien me vale =)
#1
Ciro4315♪ 17148
No sé si es el modo correcto, pero puedes descompilar ese offset en XSE, y sin quitar el #org 0xDirección trabajar ahí.

Ten en cuenta que si el nuevo script ocupa más que el anterior, tu ROM se joderá (hay muchas posibilidades de que esto ocurra)
#2
Javi4315♪ 13374
A parte de lo que dice Ciro, si lo quieres eliminar tendrás que hacerlo con un editor hexadecimal. Tú mismo tendrás que borrar el script en hex. Pero es algo tedioso, porque tienes que ver bien hasta dónde llega y tener en cuenta los distintos pointers. La verdad, no te lo recomiendo si no es absolutamente necesario y menos para que sea un rom de pruebas.
#3
ZeKro 18355
y entonces, si es tan peligroso y jodido,
que se hace con los scripts al empezar un hack de pokémon??
Por que yo he jugado muchos hacks
y en ninguno veo scripts de pokémon sin haberlos editado...
#4
Ciro4315♪ 17148
A ver

Cuando tú descompilas un script te sale algo así:

#org 0x26462845472834573459874384587438
msgbox 0x4565748349568743849587483 0x6
end

#org 0x4565748349568743849587483
= AAAAAAAAAAAAAAAAAAAAAAAAA

Ese script descompilado no tiene etiquetas dinámicas ni el comando #dynamic, por lo que al compilarlo sobreescribirás ese script (y si el nuevo script es más grande, joderás algo que haya por delante)

Si haces esto, ya joderías el script:

#org 0x26462845472834573459874384587438
msgbox 0x4565748349568743849587483 0x6
end

#org 0x4565748349568743849587483
= AAAAAAAAAAAAAAAAAAAAAAAAAA

(Sí, solo con poner una A más)

Sin embargo, en un script con dynamic, lo que haces es buscar espacio libre a partir de la dirección que indiques en el mismo comando, el XSE se encarga de hacerlo y tú no jodes nada:

#dynamic 0x800000

#org @inicio
msgbox @frase 0x6
goto 0x123456
end

#org 0x123456
msgbox @frase2 0x6
return

#org @frase
= Hola

#org @frase2
= Adiós.

Al poner eso, #dynamic buscará espacio libre solo para las etiquetas dinámicas, en este caso @inicio, @frase y @frase2.
#5
ZeKro 18355
ok! entonces no se puede quitar un script... se puede descompilar y editarlo, pero se puede joder...
No importa , haré scripts nuevos y ya está!
Se puede cerrar el Tema! =)