Registrarse

[JPAN] Solución de algunos Bugs de JPAN

hacanoca

Usuario de Oro
Hola a todos.

Este tema es sobre la base y la herramienta Hack Tool creada por JPAN, por lo tanto trabaja sobre FR.

A lo largo del desarrollo de mi hack, he utilizado algunas de las funciones brindadas por JPAN, y me he topado con algunos bugs. Compumax me facilitó un post en el que logré encontrar solución a algunos de estos bugs; cosa que fue de muuuuuucha ayuda en su momento ❤

En los últimos meses he encontrado a otros usuarios con las mismas inquietudes por estos bugs, y les he ayudado proporcionándoles el post que brindaba la solución. Sin embargo, hace poco detecté que el post ya no está disponible, parece estar caído :(

Me parece grave que esta información se pierda, y por tanto quiero dejarla plasmada aquí en WaH en un pequeño tutorial.

Los bugs que voy a tratar son:

1. Daño total en el sistema de surf :hmm:
Este bug se presenta cuando insertas con la herramienta el sistema de cambio de mini. Si utilizas el parche completo de JPAN este problema no ocurre.

Bien, para empezar dejo aquí el post donde planteé la duda y donde finalmente se mostró la solución; pero dado que el volumen de post de dudas es tan alto, considero más apropiado tener la solución en este tutorial.

Luego de insertar la rutina (con el hack tool de JPAN), se debe ir al pointer 0x5F2D0 en un editor hexadecimal.
Allí, te aparecerá un puntero compilado, debes de seguirlo.
En mi caso tengo el 2DD1E5



Así que voy a esa dirección
Allí debes avanzar 15 casillas, y editar ese byte por "FF".
El byte que se debe cambiar es el que está luego de "29 18 D0"
De tal forma que quede: "29 18 D0 FF"



Por último, debe asegurarse que al inicio del juego, todas las variables que vayan a ser usadas para aplicar el sistema queden seteadas en el valor del mini correspondiente; por ejemplo, si al aplicar el sistema usaste las variables por defecto (0x4054), tendrías que hacer el siguiente seteo:

Si el prota es el chico
setvar 0x4054 0x0
setvar 0x4055 0x1
setvar 0x4056 0x2
setvar 0x4057 0x3
setvar 0x4058 0x4
setvar 0x4059 0x5
setvar 0x405A 0x6

Si el prota es la chica
setvar 0x4054 0x7
setvar 0x4055 0x8
setvar 0x4056 0x9
setvar 0x4057 0xA
setvar 0x4058 0xB
setvar 0x4059 0xC
setvar 0x405A 0xD


Así que, se recomienda asignar estos valores a esas variables en un script temprano del juego.

En caso de que hayas utilizado el Hack Tool JPAN para expandir el número de tablas de OW, también tendrás problemas para utilizar las tablas que no son la inicial, pero si aplicas esta solución, te debería dejar las nuevas tablas totalmente funcionales.:boogie:

2. Bug con el cambio de BackSprite
Según el link caído, este problema se presenta tanto si aplicas este sistema con el hack tool como si aplicas todo el parche completo de JPAN. Existe un tutorial que extrajo esta rutina y te permite aplicarla manualmente en HEX, pero como reporté en ese tema, aún aplicando este método el bug persiste.

Es un bug de paletas, el error básico es que al tener activado el sistema, el sprite del trainer rival saldrá con la paleta del sprite del backsprite al cual cambiaste. O en ciertas condiciones, en vez de ocurrir este error, sucederá un error de paletas que hará que las HP bars tengan un color erróneo; y también, el nuevo backsprite que estés usando tomará la paleta del backsprite original cuando estés lanzando la pokéball.
Un ejemplo de esta segunda alternativa de Bug se puede ver en el minuto 18:30 de este video. (aprovecho para hacer spam de series de mi hack :cool: )

Bien, pues la solución que se debe aplicar es la siguiente:
Tras aplicar el sistema, debes abrir la rom en un editor hexadecimal y buscar la siguiente secuencia de bytes:
"43 01 C0 00 C0 18 E4 00 0C 19 04 19 23 68 00 2B 0C D0 60 68 0A 49 10 22 0B DF C0 24 09 19 0B DF 08 49 0B DF 09 19"
Esta secuencia es un fragmento de la rutina del sistema, por lo que su posición varía según los punteros que hayas utilizado.
Luego en los dos siguientes bytes debes poner "C0 46"
Es decir, si tienes: ..........DF 09 19 XX XX; debes cambiar los bytes "XX XX" por "C0 46"; de tal forma que te quede: ........ DF 09 19 C0 46.
Y listo, esa es toda la solución reportada.
Sin embargo, aún tras aplicar esta solución, vas a quedar con un bug; y es que, tras activar el sistema, la paleta del nuevo back sprite será la del back sprite original mientras lanzas la pokéball. Pero la ventaja es que ya nunca te afectará la paleta del sprite trainer del rival (a mi parecer lo más grave).

La única forma que conozco para manejar este bug remanente es hacer que la paleta del nuevo backsprite sea la misma que la del backsprite original (que creo que es lo que hace Jo7a en el Black Dark).

Bueno, eso es todo por ahora.

Antes de finalizar, dejo por aquí el post original, por si se restaura...o si es que siempre ha estado bien sino que tal vez yo sea un incompetente incapaz de acceder; o sea únicamente para miembros de PHO...
¡No lo sé!
Sólo sé que a mí ya no me abre ese post. o_O
Lo dejo porque traía aún más soluciones para otros bugs, sólo que nunca llegué a necesitarlas.

Por último, agradecer a KarateKid552, quien es el autor del post original, y a Compumax que me facilitó dicho link.
 
Última edición:

scalior72

Nico Nico nii
Existe forma de hacer que aplicar el jpan no me borre los script viejos de los centros pokemon y los puntos de cura para que cuando se debiliten todos los pokemones del equipo el prota no aparesca en el mapa 0.0 ? xD
 

HelyGP

¡Soy Scripter intermedio en GBA!
En mi hack puse ya la rutina JPAN y se soluciono el error de el bug de Surf! Gracias
Aunque en mi hack se usa surf a través de un script de gatillo pero cuando se entra en una batalla el juego se pega ¿Cual sera ese error?

PD: Sin el JPAN nunca me dio ese error y ninguna de esas variables las e usado, espero tu respuesta, gracias, y desearia que pudieras ayudarme en solucionar ese error.
 

HelyGP

¡Soy Scripter intermedio en GBA!
Al final lo de la solución de compumax no me sirvió (lo de cuando se entra a la batalla y se pega el juego) desearía que me ayudaran con eso, pero si no encuentran una solución gracias de todas maneras
 

Nacho

Nadando hasta la otra orilla
He testeado este tutorial y no me soluciona el problema de surf (en una rom virgen) , raro al contrario genera muchos más bugs.
 

hacanoca

Usuario de Oro
Bueno, he visto que a varios no les ha funcionado lo del SURF, lo cual me pareció bastante extraño.
Decidí volver a probarlo, para ver si me había saltado algún paso o algo.
Hice dos pruebas:
-La primera prueba la hice tal cual como recordaba haberla hecho en mi hack: En una rom limpia, inserté la rutina de JPAN para los OW con el Hack Tool de JPAN. Dado que en mi hack quería tener muchos minis, inserté dos tablas de OW. Para la variable del cambio de mini asigné la 0x4054 (como sugiere JPAN), y los OW dinámicos puse 0. Posteriormente desarrollé el procedimiento que describí en el tutorial. Luego hice algunos scripts para testear, y todo me funcionó perfectamente.
-Luego caí en cuenta que probablemente la mayoría no requiera tantos minis, y que probablemente usen sólo una tabla. Así que realicé nuevamente todo el procedimiento en la rom limpia, sólo que esta vez sólo cree una tabla de OW. Luego al realizar la prueba, me di cuenta de que no funciona, sucede lo que reporta @HelyGP, logras hacer Surf pero al hacer un combate acuático o entrar en algún menú mientras estás en el agua, el juego se crashea.

Desconozco cuál sea la razón, pero parece que para que funcione, debes de expandir la cantidad de tablas de minis: Al aplicar la rutina de JPAN debes poner más de una Tabla. No hice más pruebas, pero asumo que el único valor con el que no funciona es con una (1) Tabla, yo trabajo con dos tablas, y hasta ahora no me he topado con más bugs asociados a esta rutina (salvo de los ya descritos por Jo7a en su tuto de cambio de mini).

Esta es la respuesta que les puedo dar por ahora, si gustan, prueben a poner al menos dos tablas de OW y me comentan el resultado. Si les funciona, agregaré ese detalle al cuerpo principal del tutorial.
 
Arriba