Registrarse

[Otros] Tips del GBARomHacking que nadie te dirá

Nachoius

Caminante del cielo
Esa es una sección a modo de tutorial, con información relevante del romhacking que no estará fácilmente disponible, o que nadie te dirá y solo lo aprenderías con el ensayo y error. La idea es ir actualizando estos tips pequeños que te pueden solucionar la vida y hacer más simple al a hora de romhackear, esto por supuesto ha sido en base a mis experiencias. La dejaré como colaborativa puesto que si alguien tiene algún tip también puede contribuir: editaré y agregaré a la lista

Al iniciarte en el scripting es necesario que sepas que cuando abres XSE y presionas control + d aparecerá la opción "refactorizar" esta tiene varias utlidades dependiendo si la activas o desactivas. Si está desactivada puedes editar los script antiguos que hiciste con mucho cuidado, cambiando un numero, una variable, pero no más que eso, no piense añadir más cosas, ya que si no esta activada esta opción XSE sobre escribe los datos, por lo que solo sirve para modificar pequeñas cosas que no gasten mas espacio de lo que ya había gastado anteriormente. Además sirve para traducción ya que puedes cambiar los punteros de los textos por otros y poder cambiar los dialogos sin tener que volver a hacer el script completo. Si esta opción esta activada no se verán las direcciones exactas donde estaba el script o original de la rom, si no que se verán etiquetas, si compilas no se sobreescribirá como la opción anterior, si no que se escribirá en un lugar libre de la rom. Si usas una u otra depende de lo que quieras lograr

Actualmente A.M. es la mejor herrramienta si quieres mapear y hacer muchas cosas más si hackeas en binario. Hay dos versiones, la 1.95 usala en version inglesa, sirve para mapear más eficientemente, ya que tiene nuevas funciones que facilitan su uso, si quieres hacer conexiones de los mapas esta version tambien es mejor ya que previsualiza como se verán los mapa. Por el contrario si quieres insertar tiles, scripts y demas cosas, te recomiendo usar el 1.9.2 funciona mucho mejor.

no disponible

No disponible

no disponible

Por lo general al comenzar el RH solemos confundirnos con las paletas en especial con las de los OW, para ser resumidos, hay dos tipos de paletas, las que permiten cohabitar con muchos OW en pantalla, y las que permiten solo un OW más el OW del player en pantalla.

Las primeras están las de los OW que usan paletas comunes, la del player, y las sombras de los OW que están ocultas en NSE, pero suelen ser los numeros intermedios. Por otra parte, el segundo tipo de paletas son las que dicen ser "corruptas" o "prohibidas" pero en realidad solo tienen esta limitación , ya que si introduces un OW además de los dos, este toma la otra paleta y se bugea, hay que saber su limitación.

Un consejo para esto es introducir el parche de paletas dinámicas así podrás usar todas sin distinción. Pero esto tiene sus desventajas como no poder refrescar las paletas (sin salir del mapa obviamente), in game aunque no hay nada que un wbto no arregle.

esto es debido a que tu tu mini sprite probablemente tenga el mismo número de sprite que el que esta reproduciendo, cambialo a uno disponible y ya dejará de hacer eso

A veces las cosas no sale como queríamos y no tenemos idea del porque, como consejo siempre revisa el header/cabezal en AM a la hora de romhackear, y ve si hay script de nivel originales en la rom. Si los hay elimínalos y verás como la mayoría de tus problemas desaparecen

Por lo general los parches tiene muchas bondades como ahorrar tiempo de trabajo o insertar cosas que te llevarian tiempo aprender. Pero, ¿Cuándo es seguro usar un parche? Para mi hay 2 tipos de parches:

1) Los parches que no crean información nueva y solo modifican la rom original, por lo general estos parches sirven tanto para rom avanzadas como para rom nuevas, son muy compatibles con otros parches tambien. Ya que, no tocan espacios vacios si no, solo modifican la rom original, como traducciones, paletas
Dinamicas, entre otros. Son los mas seguros.

2) Parches que crean informacion nueva, poco recomendables para rom avanzadas, son menos compatibles que los anteriores, tiene mucha o poca información nueva. Si son muy grandes como expandir la dex, megaevolución o parches de starterpack ( cambio de tiles, rutinas etc) no son re comendables de usar en rom avanzadas. Terminarán sobreescribiendo información.

Hay una tercera clase que mezcla estos dos, son los mixtos que cambian info original de la rom y ademas escriben nueva info en espacio libre, estos suelen ser los parches más documentados, ya que especifican donde escribirán la información nueva para que verifiques si tu rom tiene ese espacio libre. Parches como los de compumax y naren son de este tipo. Son los más seguros, ya que sabrás cada byte nuevo qye añadan.

Como recomendación final si vas usar un parche del tipo 2, insertalo en una rom virgen primero y verifica que espacio en la rom están usando. De este modo luego podrás comprobar si tu rom tiene esos espacios libres.

a veces testeamos el juego y pasa lo siguiente: al cambiar de mapa se bugean los tiles. Bueno esto pasa por no respetar la distacia prudencial. En el mapa habran 2 tileset el primario y el secundario, esto pasa con los secundarios. Hay una Zona segura que deben tener los mapas donde solo existan tiles primarios que son alrededor de 5 a 7 cuadros por el borde que conecta con el otro mapa, ya que si hay tiles del tileset secundario, se bugeará viceversa. Esto solo pasa cuando al cambiar de mapa cambias tambien de tileset secundario, si sigues usando los mismos tileset secundario de un mapa a otro y hay bugs el problema seguramente será otro.

los script de gatillo necesitan un "motor" de arranque para poder iniciar. Esas son las variables. ¿Al pisarlo tu script se pega? ¿Revisaste la variable de AM, no será que aun no la agregas? Recuerda que el numero de la variable no es el mismo que el valor de la variable.

¿En la carpeta de tu rom aparecen raramente unos archivos con el nombre .bak? Descuida no es nada malo cambialo a .gba y tendrás una copiande seguridad extra!!!

ire actualizando la publicación mientras vaya recordando tips y tenga tiempo
 
Última edición:

MetalKaktus

A la luz del quinto día, mira al este
Miembro insignia
Y yo como un imbécil editando los valores de var y datos que puse mal en hex, siempre se aprenden cosas nuevas, buen post Nacho.
 

Kaiser de Emperana

Called in hand
¿Qué pasa con el foro y estos temas con títulos clickbait de anuncios engañosos en la internet?

Más allá del título. Me parece que el tema una buena idea, pero la ejecución no tanto...
- Veo muchos errores de ortografía y gramática que hacen un poco difícil de seguirlo.
- Hay algunos de los puntos que están explicados así nomás, como la comparación de AMap 1.92 vs. 1.95, y no se terminan de entender.
- Otros puntos, como el de que tan seguros son los parches, donde, si bien da un regla general de que parches usar y cuales no, no explica el porqué de la misma. Además de que esto no es aplicable el 100% de las veces.
- Ahora que tiene menos de 10 puntos puede no parecer un problema, pero si esto se sigue actualizando, va a ser imposible de seguir sin alguna clasificación de los distintos tips.

Me parece que un tema de este formato iría mucho mejor en la wiki, donde todos pueden aportar con diferentes puntos y mejorar las explicaciones de los que ya existen.
 

Nachoius

Caminante del cielo
¿Qué pasa con el foro y estos temas con títulos clickbait de anuncios engañosos en la internet?

Más allá del título. Me parece que el tema una buena idea, pero la ejecución no tanto...
- Veo muchos errores de ortografía y gramática que hacen un poco difícil de seguirlo.
- Hay algunos de los puntos que están explicados así nomás, como la comparación de AMap 1.92 vs. 1.95, y no se terminan de entender.
- Otros puntos, como el de que tan seguros son los parches, donde, si bien da un regla general de que parches usar y cuales no, no explica el porqué de la misma. Además de que esto no es aplicable el 100% de las veces.
- Ahora que tiene menos de 10 puntos puede no parecer un problema, pero si esto se sigue actualizando, va a ser imposible de seguir sin alguna clasificación de los distintos tips.

Me parece que un tema de este formato iría mucho mejor en la wiki, donde todos pueden aportar con diferentes puntos y mejorar las explicaciones de los que ya existen.
Gracias por los consejos, el tema se mejorará con el tiempo. En los aspectos que dices. Pero yo prefiero dejarlo como "tutorial", saludos!
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: Tips del GBARomHacking que nadie te dirá

Aqui dejo unas consejos/tips que en lo personal me han servido en todo este tiempo (Perdon por la falta de tildes. En el trabajo tenemos teclado y SO en ingles :p)
  • Guarda siempre en algun editor de texto online ya sea everote, one note, etc offsets en donde insertas algo. Nunca sabes si en dos anios tienes que reparar o modificar datos insertados ahi.
  • Cuando busques espacio libre en tu ROM, busca la mayor cantidad posible de espacio para evitar que el espacio que hayas buscado sea insuficiente (Yo siempre pongo 9999 bytes. Llamame exagerado pero es mejor prevenir.)
  • Evita a toda costa la busqueda automatica de espacio libre en A-map, y si usas la 1.95 con mas razon. Lo mejor es que la herramienta integrada busque el espacio manualmente.
  • Jamas le apliques un parche a tu ROM directamente. Aplicalo a una copia y no lo apliques al principal hasta que ya te hayas asegurado que funciona bien.
  • Repuntear siempre sera mejor que ratar de hacer imposibles para que datos nuevos entren en el espacio anterior.
  • Evita herramientas que esten obsoletas si ya hay nuevas que hacen lo mismo. Esto debido a que herramientas viejas tienen capacidades limitadas y hasta causan bugs. (Por ejemplo Usar YAPE o Advance Series en vez de PGE o Gen 3 Tools)

Es todo lo que tengo por aportar.
 

Bugrhak

A long time ago I used to call myself "Subzero".
No me he leído todos los típs, si el que diré es repetido, avisad.
1- Si añades algo nuevo al rom, documénta todo.
Si por ejemplo insertas una rutina, podrías seguir la siguiente plantilla de documentación:

<Nombre de la rutina>
·Offset donde fue insertada la rutina.
·Tamaño/cantidad de bytes que ocupa.
·Dirección de punteros que van hacia la rutina.
.Bytes que son editados al implementar la rutina y la dirección en la que se encuentran dichos bytes.
De modo que este ultimo punto quede más o menos así:
OffsetUbicaciónByte - Valor del byte antes de ser editado - Valor del byte tras la modificación.
Cabe aclarar que este tipo de documentación es aplicable para casi todo.
 

Omega

For endless fight
Miembro del equipo
Administrador
Bonito tema, si señor!
Yo tengo una que todos olvidan mencionar, y es que en XSE se pueden usar números decimales en lugar de hex, la forma de hacerlo es omitiendo el "0x" en los parametros, un ejemplo:

Código:
pause 0xA //Forma hexadecimal de toda la vida.

pause 10 //Forma decimal, basta con omitir el 0x y listo.

El tema es una excelente forma de transmitir conocimiento útil a nuestros romhackers, si recuerdo más cosillas útiles editaré el mensaje o volveré a comentar, saludos!!!
 

Bugrhak

A long time ago I used to call myself "Subzero".
Venga, otro más.

A la hora de insertar tiles y preparar el tileset, hacerlo sobre un rom descartable hasta que tengáis el tileset completo.
Una vez que tu tileset esté completo, recién ahi es momento de insertarlo (al tileset con todos los tiles) en la rom definitiva.

Existe una razón muy sencilla para esto:

Cada vez que insertamos un tile nuevo en nuestro tileset y posteriormente guardamos los cambios en Advance Map, la herramienta suele repuntear el tileset. Es decir, Advance Map va insertando nuestro tileset actualizado en un lugar con espacio vacío dentro de nuestra rom (cabe destacar que también borra el tileset "desactualizado" ya que está ocupando espacio de manera innecesaria).
Existe la posibilidad de que cuando AM inserte el tileset no lo haga en una zona del rom con espacio libre y en su lugar sobrescriba datos.
Para evitar eso es que se usa un rom descartable tal y como he mencionado anteriormente.
 

Gold

Porrero a tiempo parcial
Miembro insignia
Uno muy importante que todos deberian aplicar si no lo han hecho.

Testeen su juego con mGBA o con algun core de RetroArch.
hay mucha. muchisima gente que le hace ilusion jugar a un hackrom en sus consolas, ya sea mediante flash cards o consolas hackeadas como la PSP, 3DS etc. Trata de testear usando dichos emuladores ya que hacen una emulacion identica a una GBA real. Si algo no funciona ahi de seguro en hardware real tampoco. Emular en consolas es una experiencia muy chula yuna lastima que por X bug no se pueda correr tu juego.
 
Arriba