Registrarse

Información importante a la hora de compilar

Estado
Cerrado para nuevas respuestas.

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.
 

Kaktus

Miembro insignia
Miembro insignia
Bueno, ya te lo he escrito por tu perfil, pero aún así, lo escribiré por aquí también.

He de decir que no tengo demasiada experiencia en este entorno, pero en base a lo que sé, creo que no estás del todo en lo correcto, ya que según he podido comprobar hasta el momento, los únicos fragmentos de código que sí tienen una dirección predefinida en el ROM son los textos. por tanto no hay prácticamente riesgo a no ser que trabajes con ellos y solapes la información de ambos textos.

Me explico, según tengo entendido, en C se trabaja llamando a "direcciones" (no recuerdo el nombre técnico) que están definidas por palabras y no por un lugar/offset de la ROM, por tanto, todos estos datos se van a escribir automáticamente sobre espacio vacío, y cualquier referencia ha dicho nombre, al compilar, es definido como una dirección específica de la ROM, por tanto, creo y me gustaría pensar que todo este proceso de repuntear blablabla se hace automáticamente al compilar. Además, dudo que a la hora de compilar, por no querer dejar espacios vacíos, la ROM solape información (que por cierto, supongo que tiraría error la consola de comandos)

Esto es cómo creo y he entendido hasta ahora que funciona, aún así tampoco tengo mucha idea de como trabajaron los señores de Game Freak y tampoco me he mirado todos los archivos al detalle, tan sólo le he dado una ojeada y trasteado un poco. Pero me parecería la opción más lógica.

Lo único que si es cierto, que me imagino que es a lo que te refieres, es que a la hora de usar herramientas con offsets predeterminados, dejarían de ser válidas a no ser que se crease su correspondiente INI, lo cuál sería un coñazo. Aún así teniendo código abierto, dudo que necesitamos tirar mano de herramientas, lo más factible ahora sería investigar sobre todos y cada uno de los archivos y como manipularlos a placer.

Corregidme si me equivoco.

Un saludo :D
 

Kaiser de Emperana

Called in hand
A ver, creo que hay algunos que no terminan de entender algo básico.
Pokeruby/pokeemerald/pokefirered son algo totalmente diferente al rom hacking. No son herramientas para hacer una rom base con algunas rutinas cambiadas.
Con pokeruby no se debe usar ninguna herramienta de rom hacking, ya que ninguna va a funcionar. No es cosa de compilar el rom una vez, con algunos cambios, y después usarlo como si fuera el original. Si uno usa pokeruby tiene que básicamente deshechar todas las herramientas que descargaron y tutoriales que leyeron en este foro, ya que ninguno sirve para nada.
Las únicas herramientas que van a utilizar de ahora en adelante son el editor de texto y pretmap.
 
Estado
Cerrado para nuevas respuestas.
Arriba