Registrarse

[Otros] Pautas para trabajar en un hack y no bugearlo.

eing

Miembro de honor
Miembro de honor
¿Cuantas veces os ha pasado que despues de mucho trabajo os habeis dado cuenta que vuestro juego tiene un bug y no podeis solucionarlo?
De seguro que a muchisima gente le ha pasado, y ha tenido que volver a empezar...

Para ello, os recomiendo una forma ORDENADA de trabajar, y es la siguiente.

1- Si hablamos de insertar tiles, no inserteis tiles en vuestro rom directamente, pues cada vez que se importa un tileset el am te repuntea.
Y si no tienes activada la casilla de "no repubtear automaticamente", te puede fastidiar algo que ya tengas echo, o bien repuntear en un lugar donde no quieras..
Para ello en el Am hay una opcion que es para que el repunteo lo hagas tu mismo, seleccionalo y asi decidiras TU donde repuntear la informacion..
Bien aparte de eso, como trabajamos en otro rom que no es el de verdad este podemos insertarle todos los tiles que queramos y repuntear 818372992 veces, una vez el tileset insertado y acabado podemos proceder a insertarlo en nuestro hack, asi solo se repunteará UNA vez, frente a las mil que realizas mientras insertas tiles.

2-Hacer los scripts con Los offsets que dejen bastante libertad entre ellos. Para ello no uses dynamic, ya que si lo usas y el antiguo offset nucleo se queda sin espacio, este no te lo borrara, seguirá alli, y te lo guardara en una nueva unicacion, algo que te hace desaprovechar espacio sin lugar a duda.
De hacerlo tu manual, puedes dejar entre offset nucleo y offset nucleo unos 64 bytes, por si las moscas.. (por si decidimos añadirle algo mas, recuerda que ya un applymovement mas son (apply+persona+puntero=6 bytes) pues imaginense hacer varias modificaciones.. Te fastidiaria el script.

3-Despues de hacer cambios importantes en el ROM, revisar que todo vaya bien sobretodo los bugs mas notorios, como el de la evolucion, atrapar pokemon, peleas..etc!

4-y un ultimo consejo, cuando trabajes en el rom, haz TODO en otros roms externos, y asi llevar los datos buenos al rom que sera la beta, asi te aseguras que no haya bugs.
Aparte que aconsejo repartir los offsets para cada cosa, por ejemplo asi:
Scripts: 6F0000 - 7F0000
Msgbox: C00000 - D00000
Applys: 6C0000 - 6D0000
Gráficas: 7F0001 - BF0001
Musica: E00000 - F00000

Los offsets han sido aleatorios e inclusive exagerados.
Por ejemplo de "E00000" a "F00000" hay "100000" de diferencia.
Un porron de bytes vamos ...

Eso es todo, a ver si veo menos hacks bugeados y mas orden, que ultimamente vamos a lo loco..


Pd. Se me olvidaba, tambien os aconsejo que para un correcto avance del hack vayais por partes, primer pueblo y scripts, segundo pueblo y scripts... Si no luego os tocará trabajar durante mucho tiempo en algo, y os será completamente aburrido...
 

TrevorTS

Miembro de honor
Miembro de honor
:eek:, sorprendente a partir de hoy tomare en cuenta todas esas indicaciones el problema de espacio del a-map xD me vuelve loco.
en fin creo que para la beta2 tendre que pasar todo a una rom limpia :3.
 

Gender

DeathSpace
Vaya que gran información nos has aportado, ahora me doy
cuenta de lo que Xiros me decía era verdad, usar el dynamic
puede traer algunos problemas. También lo de repuntear en el
AM se me ha olvidado pero se agradece la aportación.

Tendré en cuenta todo, + Like tu post :D
 

Starman

bruh
De toda la vida ha sido hacer una backup, si sale un bug pues nos vamos a la backup.
Pero bueno, excelente tutorial para evitar cometer error.
 

~Lukhi

El tipo que a veces comenta en tu post.
Bien, muy buenos consejos pero no entiendo si no ocupamos el comando dynamic simplemente colocamos el offset donde queramos que éste nuestro scrip o tenemos que remplazarlo por otro diferente.
 

eing

Miembro de honor
Miembro de honor
Respuesta: Re: GBA | Otros | Pautas para trabajar en un hack y no bugearlo.

Bien, muy buenos consejos pero no entiendo si no ocupamos el comando dynamic simplemente colocamos el offset donde queramos que éste nuestro scrip o tenemos que remplazarlo por otro diferente.
Si tu usas dynamic, y una dirección a partir de donde pones los scripts, y te aseguras de que no hay nada debajo, no habría ningún problema.

Es decir, si pones por ejemplo los scripts en el 0x800000, y los gráficos en el 0x900000, pues posiblemente que tarde o temprano los scripts, vayan a parar al rango de bytes de los gráficos.

Así que si quieres usar dynamic, lo mejor es poner el rango de scripts, lo más abajo del rom que puedas, asegurándote de que no hay nada que tu vayas a colocar ahí debajo.
 

Satan-Sama

Ultimate Lucky Student
Respuesta: Re: GBA | Otros | Pautas para trabajar en un hack y no bugearlo.

Si tu usas dynamic, y una dirección a partir de donde pones los scripts, y te aseguras de que no hay nada debajo, no habría ningún problema.

Es decir, si pones por ejemplo los scripts en el 0x800000, y los gráficos en el 0x900000, pues posiblemente que tarde o temprano los scripts, vayan a parar al rango de bytes de los gráficos.

Así que si quieres usar dynamic, lo mejor es poner el rango de scripts, lo más abajo del rom que puedas, asegurándote de que no hay nada que tu vayas a colocar ahí debajo.
oh vaya debo decir que no me sabia esto, ya que en todos los tutoriales siempre lo ponen con #dynamic 0x800000 yo igual lo hacia, pero ahora quiero preguntar algo solo para que me quede 100% claro y no andarla cagand* por suposiciones, lo que dices es que a la hora de hacer un script renta mas poner el #dynamic 0x una posición abajo de la rom
¿O hay alguna forma de no usar el #dynamic?

Perdon si no me explico bien, o no lo cogi a la primera, pero prefiero preguntar y que me quede 100% claro a luego hacer una trastada monumental en la rom.
 

Katherine

Omnipresente
Miembro de honor
Respuesta: Re: GBA | Otros | Pautas para trabajar en un hack y no bugearlo.

oh vaya debo decir que no me sabia esto, ya que en todos los tutoriales siempre lo ponen con #dynamic 0x800000 yo igual lo hacia, pero ahora quiero preguntar algo solo para que me quede 100% claro y no andarla cagand* por suposiciones, lo que dices es que a la hora de hacer un script renta mas poner el #dynamic 0x una posición abajo de la rom
¿O hay alguna forma de no usar el #dynamic?

Perdon si no me explico bien, o no lo cogi a la primera, pero prefiero preguntar y que me quede 100% claro a luego hacer una trastada monumental en la rom.
Sí, puedes no usar dynamic. De hecho el dynamic no es más que la operación exclusiva que realiza la propia herramienta buscando espacio suficiente para insertar el script que has escrito a partir de la dirección del dynamic. De todas formas, evitar su uso no suele ser muy cómodo. Basta con poner la dirección en lugar de un alias al puntero, es decir:

Código:
#org 0x800000
[...]
Esto compilaría un script en la dirección 0x800000.

Pero claro, a la hora de compilar así un script debes tener cuidado de que vaya a caber en el lugar donde está destinado sin que sobreescriba nada más. Puedes saber lo que ocupa un script viendo los bytes que ocupa el uso de cada comando (en la ayuda de comandos del XSE sale). Aunque también puedes compilar el script en otra ROM para saber cuánto ocupa en total sin tener que realizar tú mismo la suma si se trata de algo muy largo. Después te bastaría con buscar un lugar con suficiente espacio con el FSF.

¡Nos vemos! Miau revoir~.
 

eing

Miembro de honor
Miembro de honor
Respuesta: Re: GBA | Otros | Pautas para trabajar en un hack y no bugearlo.

Sí, puedes no usar dynamic. De hecho el dynamic no es más que la operación exclusiva que realiza la propia herramienta buscando espacio suficiente para insertar el script que has escrito a partir de la dirección del dynamic. De todas formas, evitar su uso no suele ser muy cómodo. Basta con poner la dirección en lugar de un alias al puntero, es decir:

Código:
#org 0x800000
[...]
Esto compilaría un script en la dirección 0x800000.

Pero claro, a la hora de compilar así un script debes tener cuidado de que vaya a caber en el lugar donde está destinado sin que sobreescriba nada más. Puedes saber lo que ocupa un script viendo los bytes que ocupa el uso de cada comando (en la ayuda de comandos del XSE sale). Aunque también puedes compilar el script en otra ROM para saber cuánto ocupa en total sin tener que realizar tú mismo la suma si se trata de algo muy largo. Después te bastaría con buscar un lugar con suficiente espacio con el FSF.

¡Nos vemos! Miau revoir~.
Lo que dice Aaron es cierto @Satan-Sama.

Puedes usar el dynamic, o no como tu quieras.
Si al fin y al cabo lo que hace es buscarte un espacio vacío en el rango que tu le asignas.
Usando el dynamic, te aseguras de que el XSE nunca te sobrescriba partes del rom diferente de "FF".

Si pones en vez de 0x800000, pones 0x900000 te compilará a partir de esa dirección.

Por último cabe añadir, que el único pero, del dynamic, es que cuando tu compilas con él, si te quedas sin espacio, te volverá a compilar el script en otra zona, sin haber borrado el que modificaste.

Por eso es mejor, hacerlo todo manual, y asegurándote que tienes escrito 6 dígitos xD.

Que no es lo mismo 0x6F3A10 que 6F310 ..
 

Satan-Sama

Ultimate Lucky Student
Respuesta: Re: GBA | Otros | Pautas para trabajar en un hack y no bugearlo.

Lo que dice Aaron es cierto @Satan-Sama.

Puedes usar el dynamic, o no como tu quieras.
Si al fin y al cabo lo que hace es buscarte un espacio vacío en el rango que tu le asignas.
Usando el dynamic, te aseguras de que el XSE nunca te sobrescriba partes del rom diferente de "FF".

Si pones en vez de 0x800000, pones 0x900000 te compilará a partir de esa dirección.

Por último cabe añadir, que el único pero, del dynamic, es que cuando tu compilas con él, si te quedas sin espacio, te volverá a compilar el script en otra zona, sin haber borrado el que modificaste.

Por eso es mejor, hacerlo todo manual, y asegurándote que tienes escrito 6 dígitos xD.

Que no es lo mismo 0x6F3A10 que 6F310 ..
ya veo entonces probare comenzar a hacer mis script de esta forma y me ahorro cualquier futuro problema, y ah bueno si sabia que esto pasaba con a-map de que te podia copilar mal y causar problemas, mas no sabia que con xse tambien podia pasar, igualmente gracias por la explicación a ambos me sera de ayuda haber aprendido algo nuevo.
 
Arriba