kakarotto
Leyenda de WaH
Buenas Tardes a todos.
Sería de vital importancia que los administradores pusieran esto como un punto importante, porque de hecho lo es.
Vamos a hablar de los "peligros" que conlleva modificar el código fuente de pokeruby, pokefirered y pokeemerald.
Ya sé que muchos de vosotros lo sabéis, pero quiza una persona menos experimentada se frustre y no sepa porque le ha "petado" su rom.
Bien, dicho esto, comencemos:
- Compilar un rom introduciendo más información en el código fuente harás que la función sea más grande, por lo tanto todas las funciones después de la función modificada cambiaran su offset
- Si compilas una función con menor tamaño a la original no hay problema, pues al ser más pequeña puedes "inyectarla" en el offset original y quizas el resto de código antiguo podrías utilizarlo para otros fines.
- Si quieres compilar una función con más información que la original sin cambiar ningún offset no te queda otra que introducirlo en un espacio vacío. Para algunas funciones crear un proyecto de inyección de código y hacer referencia a ellas es algo rápido de hacer..y otras es una auténtica locura como querer modificar una simple línea de código de la battle engine. Hay que hacer hincapié que se debe de crear un archivo ld con los offsets de las funciones, variables...etc. y luego en la función C que vayas a utilizar para inyectar el código hacer referencia a esos offsets mediante "extern [tipo] [nombre de la función].
De lo contrario, si no se realiza la declaración correcta de todo el juego se congelará o se hará un reinicio automático.
Nota: El compilador te avisará de cualquier error que se pueda subsanar.
Bueno esto es todo de momento.. Próximamente crearé un tutorial de como crear tu propia plantilla para inyectar código.
Un saludo.
Sería de vital importancia que los administradores pusieran esto como un punto importante, porque de hecho lo es.
Vamos a hablar de los "peligros" que conlleva modificar el código fuente de pokeruby, pokefirered y pokeemerald.
Ya sé que muchos de vosotros lo sabéis, pero quiza una persona menos experimentada se frustre y no sepa porque le ha "petado" su rom.
Bien, dicho esto, comencemos:
- Compilar un rom introduciendo más información en el código fuente harás que la función sea más grande, por lo tanto todas las funciones después de la función modificada cambiaran su offset
- Si compilas una función con menor tamaño a la original no hay problema, pues al ser más pequeña puedes "inyectarla" en el offset original y quizas el resto de código antiguo podrías utilizarlo para otros fines.
- Si quieres compilar una función con más información que la original sin cambiar ningún offset no te queda otra que introducirlo en un espacio vacío. Para algunas funciones crear un proyecto de inyección de código y hacer referencia a ellas es algo rápido de hacer..y otras es una auténtica locura como querer modificar una simple línea de código de la battle engine. Hay que hacer hincapié que se debe de crear un archivo ld con los offsets de las funciones, variables...etc. y luego en la función C que vayas a utilizar para inyectar el código hacer referencia a esos offsets mediante "extern [tipo] [nombre de la función].
De lo contrario, si no se realiza la declaración correcta de todo el juego se congelará o se hará un reinicio automático.
Nota: El compilador te avisará de cualquier error que se pueda subsanar.
Bueno esto es todo de momento.. Próximamente crearé un tutorial de como crear tu propia plantilla para inyectar código.
Un saludo.