WiZaRD
Puntuación de reacción
76

Mensajes de perfil Última actividad Publicaciones Acerca

  • Olvide preguntar, Varios pokemon pudieron darle con Tackle a tu Gastly o solo en el GYM???
    Quizas cambio el sistema de niveles dinamicos solo para el primer GYM, para que se mas facil de vencer.

    Revisare los bugs que reportas a ver que pasa.
    hi, como no me gusta responder en los post a menos que se trate de una actu, te respondo aqui, si es posible añadir la edicion de las evos en mi herramienta, solo que primero tendria que corregir una que otra cosa y despues añadir esa opcion...

    ...veo que estas aprendiendo ASM, podria ayudarte pero no soy buen "maestro", por lo que podria confundirte y seria contraproducente

    Tengo algo de documentacion pero es algo avanzada para alguien que no tiene conocimiento o apenas se esta introduciendo en esto, si de todas formas la quieres con gusto puedo propórcionartela

    saludos y nos wacheamos
    JAJA! No creo que lo entiendas, menos por que los comentarios estan en ingles, pero de poco a poco sabras que se trata, solo se paciente. Yo tarde unos dos meses en aprender a leer ASM.
    En fin, la cosa es que tenemos esto:

    ld hl, da2b ; hl = da2b
    ld bc, 0030 ; bc = 0030
    add hl, bc ; hl = da2b + 0030 = da5b

    El siguiente paso para ampliar nuestra rutina es el siguiente:

    ld hl, d9fb ; hl = da2b - 0030 = d9fb
    ld bc, 0030 ; bc = 0030
    ld d, 6 ; d = 6 (max. 6 Pokemon en equipo)

    .siguientePokemon
    add hl, bc ; hl <-- hl + 30
    dec d
    jr nz, .siguientePokemon

    Intenta descubrir a ver cual puede ser el proposito de esa instruccion jr nz, y que se consigue con esta nueva rutina. Si quieres puedes echar un vistazo al apartado de instrucciones de salto de mi guia para orientarte. Tarea para mañana :D
    no, estamos hablando de cosas aparte.

    Lo primero que hicimos fue crear esa tabla con los items. Mas adelante la utilizaremos.

    Ahora lo que estamos haciendo es empezar con el codigo asm propiamente dicho; lo primero de todo es hacer una rutina que sea capaz de apuntar a las direcciones ram de los items de los 6 pokemon, eso es lo que estamos empezando a hacer ahora
    Esta es la version mas actualizada, es la que estoy trabajando antes de la siguiente actu.

    https://www.dropbox.com/s/pnxovovj0e8gz6z/1PKMGOLD%20Base%20-XY-RAINBOW-Beta%200.3.4.gbc?dl=0

    Si decides probar esa version sera aun mas dificil, pero me gustaria ver tu opinion de uno o dos GYMS si es posible, pero aclaro que aun no esta terminada.

    Por cierto, esta es la rutina de Pickup mas cercana a la que podrias usar en tu hack.

    https://www.dropbox.com/s/za4josga9nyhcew/Pickup%20Ability%20%28Improved%29.txt?dl=0
    Pues para eso solo se usan dos tablas, las cuales en unas horas publico los offsets para que los puedas modificar.

    Se te ocurren mas cambios para hacerle a los efectos de los climas?
    0x30 es la distancia entre la direccion de memoria del item del pokemon n y la direccion de memoria del item del pokemon n+1. Por ejemplo, el item del pokemon en la position 1 del equipo se encuentra en la direccion DA2B, mientras que el item del pokemon en la posicion 2 del equipo se encuentra en la direccion DA5B. Como ves, DA2B + 0030 = DA5B. De la misma forma, DA5B + 0030 = DA8B, etc.

    Esto quiere decir que simplemente sumando de 30 en 30 (en hex) podemos avanzar a la direccion del item del siguiente pokemon de forma sencilla.
    Ya hablaremos de herramientas mas tarde, lo ultimo de todo, cuando ya tengamos nuestro codigo finalizado y listo para escribirlo en la rom.

    Intenta averiguar de donde sale n * 0x30 tu solo, dale un par de vueltas (mira los seis numeros justo arriba de esa linea)...
    Como ves, cada vez que hacemos add hl, bc consegimos que hl apunte a la direccion del item del siguiente pokemon.

    Por ahora vamos a intentar asimilar esto y luego te dejare trabajar un poco mas a ti.
    Como hay 6 posibles pokemon en el team, eso quiere decir que habra 6 direcciones de memoria ram que contengan los datos del item de cada uno de los pokemon (1 direccion por cada pokemon). En concreto, en pokemon gold/silver, las seis direcciones son, en hexadecimal (de 1er pokemon a 6to pokemon):

    DA2B
    DA5B
    DA8B
    DABB
    DAEB
    DB1B

    Dicho de otro modo: 0xDA2B + n * 0x30, donde n es un valor entre 0 (1er pokemon) y 5 (6to pokemon).

    Lo primero de todo, vamos a utilizar el registro hl para apuntar a la direccion DA2B. Esta será nuestra primera instruccion:
    ld hl, da2b ; hl = da2b

    ¿Y ahora bien, como podemos sumar 0x0030 a 0xda2b de forma rápida? De esta forma:
    ld bc, 0030 ; bc = 0030
    add hl, bc ; hl = da2b + 0030 = da5b

    Y si hacemos otra vez add hl, bc entonces tendremos:
    hl = da5b + 0030 = da8b
    si, empezarias con 10 05 (pokeball, 05), pero despues sigues con 15 06, ya que 15 es igual a las probabilidades de pokeball+trade stone. Despues, 20 08 (20 = 10+15), despues 30 09 (30 = 10+20), despues 50 12 (50 = 30+20)... me entiendes ahora?

    Evidentemente hay que tener en cuenta que esas probabilidades que tienes ahí estan en decimal, es decir, por ejemplo, 10 sería en realidad 0a, y 20 sería 14.

    Bien, dicho esto nos metemos en asm! Lo siguiente que vamos a hacer es localizar y apuntar a las direcciones de memoria (RAM) que corresponden a los pokemon de tu equipo. Evidentemente, si no empezasemos por aqui no podriamos dar ningun item a ningun pokemon, por que no sabriamos en donde "escribir" ese item.

    mi siguiente mensaje enseguida
    Pues lo primero me parece que las probabilidades no suman 256... en concreto creo que suman 555. Para poder interpretar esta tabla de forma simple y eficiente con asm, es necesario que las probabilidades sumen 256. En cuanto arregles eso tendriamos la tabla lista para implementarla, y lo hariamos de la siguiente forma:

    05 Poke Ball 20 ---> 05 20
    06 -Trade Stone 05 ---> 06 05
    08 Moon Stone 05 ---> 08 05
    09 Antidote 20 ---> 09 20
    0e Full Restore 10 ---> 0E 10
    ----->
    20 05 25 06 30 08 50 09 60 0E ... (es decir la probabilidad actual mas la suma de las anteriores, y a su lado el hex number del item que toque; aunque ahora parece extraño y sin mucho sentido, verás al final como a la hora de leer de esta tabla con asm, este formato nos dara el resultado mas sencillo). En cualquier caso, primero debes ajustar esos valores de probs. para que sumen 256 (o FF hex)

    la tabla la podemos implementar (escribir en el rom) al final, cuando tengamos hecho todo el resto del codigo
    Si entiendo pero deberias darme un ejemplo de lo que TU quieres hacer jaja

    Ejemplo:
    Durante Tormenta de Arena los ataques de tierra suben de poder.
    Durante tormenta de Arena, Chorro Arena nunca falla.
    etc.
    El asm no es tan facil de enseñar, o mas bien, no es tan facil de comprender aunque en esencia es muy sencillo ya que todo va enfocado a comparar valores. De cualquier forma si algun dia me animo a abrir una escuela de ASM GBC no sera pronto.

    La funcion que ocaciona que Sunny suba el power de los Fire Attacks yo no la he modificado aun, pero pareciera que tienes telepatia conmigo por que justo hoy en la noche voy a modificar esa rutina para hacer que Solarbeam baje su ATK con Hail, asi que te puedo pasar los offsets entre hoy y mañana.

    Que es lo que quieres hacer?
    no te preocupes del donde, eso se vera luego. Primero vamos a hacer nuestras rutinas y luego veremos como y donde las implementamos para que se ajusten a lo que nosotros queremos (en este caso, para que nuestras rutinas sean llamadas solo cuando acaba una batalla).

    simplemente haz la tabla que tu vayas a querer, sea lo larga que sea, por eso no hay problema.
    Cuando dije que era facil, me referia simplemente a que era facil comparado con otras muchas cosas que se pueden hacer mediante asm, pero no que sea cosa de minutos para alguien que esta aprendiendo. El siguiente paso tras crear esa tabla seria pasarlo a hex, luego ya nos encargaremos del resto. Si quieres pasarlo ya a hex directamente, tambien es otra opcion, pero puede ser una buena idea tenerlo de forma clara con los nombres de los items y las probabilidades en decimal tambien.

    El objetivo principal de esto no es que implementes pickup, sino que aprendas mientras lo haces (no me pediste una escuela o clases de asm? que mejor forma de aprender que cuando tienes la motivacion de implementar algo a tu gusto al mismo tiempo). Dale tiempo al tiempo.
    no tengo skype, si de verdad lo quieres podemos hablar en irc, pero dado que esto se supone que va a ser un yo comento/doy ideas, tu haces durante algunos dias, creo que no va a ser necesario un chat en tiempo real.
  • Cargando…
  • Cargando…
  • Cargando…
Arriba