[FR] Expandir los OW con el JPAN's Engine

Avisos


Like Tree24Gracias
Respuesta
 
Herramientas Desplegado
  #1  
07/12/2018
Predeterminado [FR] Expandir los OW con el JPAN's Engine
Hoy les traigo un tutorial de algo que me planteé desde que empecé mi hack y que no había logrado hacer funcionar... ¡hasta ahora!

Expandir los OW usando el Fire Red Hack Engine de JPAN. Para los que desconocen que hace este hack, les digo que esto nos permite expandir la tabla de OW a tablas de tablas de OW. Teniendo como resultado que podamos usar 256 tablas de 256 OW cada una para un total de más de 65.000 OW.

El problema con este sistema es que si se instala aplicando simple sentido común, no va a funcionar y hasta puede llegar a dañar nuestra rom. De ahí que haya hecho este tutorial, así que empecemos.

Para ello vamos a usar dicha aplicación, que la pueden descargar en el siguiente enlace:

Pokemon Fire Red Hacked v1.1

Una vez descargado, descomprimir abrir la carpeta Hack Applier, luego abrir la carpeta Hack tool y finalmente abrir el programa Hacked routine applier.


Darle al botón Open ROM, buscar la rom al que le insertarán el hack y le darle a Abrir o simplemente doble clic.

ANTES DE CONTINUAR

Ir a la carpeta donde está la aplicación y a abrir el archivo llamado FSDump.txt.

Se verá algo como esto:

Código:
Address 0X0871A23C has 6184388 bytes free (0X5E5DC4)
Address 0X08EB0B20 has 1373408 bytes free (0X14F4E0)


By Size
Small
Medium
High
Address 0X08EB0B20 has 1373408 bytes free (0X14F4E0)
Address 0X0871A23C has 6184388 bytes free (0X5E5DC4)
Lo que se ve aquí no es más que los offsets donde el programa encontró espacios libres y la cantidad de bytes disponibles. Esto es una genialidad, ya que le podemos dar muchos usos sin tener que usar la herramienta más que para eso, saber donde tenemos espacio libre y cuanto tenemos disponible. En este caso se puede ver que una rom limpia Fire Red USA v1.0 posee unos 7.2MB de espacio libre, es decir, 45% de espacio libre (y aún así lo primero que hacen es expandir la rom).

Estas direcciones de espacio libre son las que tendrá en cuenta la aplicación al insertar los cambios que realiza, generalmente rutinas. Pero una cosa que no tuvo en cuenta el creador de la aplicación u olvidó implementar, es que las rutinas no se pueden insertar en cualquier offset, sino en offsets alineados, ya saben, esos que terminan en 0, 4, 8 o C. Por lo tanto si abrimos una rom que ya haya sido modificada, debemos prestar mucha atención a este log y garantizar que todos los offsets libres estén alineados. Para ello basta con rellenar con 00 los bytes siguientes a partir de los offsets encontrados por el programa, hasta que el siguiente offset libre sea uno alineado. Ejemplo:

Supongamos que nuestro archivo FSDump.txt nos muestra algo como esto:

Código:
Address 0X0871A241 has 6184384 bytes free (0X5E5DC0)
Address 0X08EB0B2E has 1373395 bytes free (0X14F4D2)


By Size
Small
Medium
High
Address 0X08EB0B2E has 1373394 bytes free (0X14F4D2)
Address 0X0871A241 has 6184384 bytes free (0X5E5DC0)
Como pueden ver ni 0X0871A241 ni 0X08EB0B2E son offsets alineados, entonces abrimos la rom con un editor hexadecimal, vamos a esos offsets y rellenamos con 00 hasta que el siguiente offset libre termine con 0, 4, 8 o C. En nuestro ejemplo debemos agregar 00 00 00 a partir de 0X0871A241 para que el siguiente offset libre sea 0X0871A244 y 00 00 a partir de 0X08EB0B2E para que el siguiente offset libre sea 0X08EB0B30.

Ahora ya se puede abrir de nuevo la rom y continuar...


Darle al botón Apply OverWorld Hacks


En la ventana que se abra preguntará el tamaño de la tabla de OW, ingresar 256 y presionar OK


Nota: De no ingresar 256 el sistema no funcionará y deberán hacer cambios en un editor hexadecimal para cambiar un byte a FF, como se ha indicado en este mensaje. ¿Y qué creen? es ese 256 que fuesen puesto.

En la siguiente ventana se nos preguntará que variable se utilizará para el cambio de OW del primer héroe. Esta función nos permitirá que el player pueda cambiar de OW simplemente seteando unas simples variables con el valor del OW deseado. Se puede colocar una variable con el 0x delante si se utilizará dicha función o dejar en 0 si no se utilizará.


En este ejemplo se eligió hacer uso del cambio de OW del player y se seleccionó la variable 0x4090.

Luego preguntará ¿cuántos OW dinámicos se van a insertar? hasta ahora no he probado esa función, pero asumo que es algo parecido al cambio de OW del player. Por ahora puede se dejar en 0.


Se presiona OK y aparecerá la siguiente ventana:


Indicando que los Hacks de OW han sido aplicados exitosamente.

Si se presiona el botón Get changed data la aplicación mostrará la información de los cambios que ha realizado.


Aquí podemos ver la siguiente información:

Código:
Se utilizaron las variables 0x4090 a 0x4096 para el hack de cambio de héroe;
Se utilizaron las variables 0x0 a 0xFFFFFFFF para el hack de OW Dinámicos;
La nueva tabla de overworld está ubicada en 0x71A3C0 con espacio para 256 tablas, 
ya asignadas (verificar los punteros). La tabla original de OW está presente en la posición 0;
Se presiona el botón Aceptar y ya se puede guardar la rom presionando el botón Save ROM.

Ahora se descarga la última versión del OWM en la siguiente dirección:

OWM - OverWorld Manager

Se ejecuta la aplicación y se abre la rom con la opción Open and Analyze .... Una vez termine de analizar la rom, detectará que está aplicado el hack de JPAN y permitirá agregar nuevas tablas.


Como ven en el ejemplo se ha agregado una nueva tabla y se ha insertado un nuevo OW tipo 1 (16x32) de 9 frames. Ahora se guardan los cambios.

Se abre la rom con Advance Map y en Eventos añadir algún evento de persona, seleccionar en Picture no: el número de entrada del OW en la nueva tabla (en nuestro caso 0) y debajo de la casilla Movement, en Unknown colocar 01 para indicar que se está trabajando con la segunda tabla, 02 para la tercera y para trabajar con la original dejar en 00, en nuestro ejemplo la dejamos en 01. Se guarda y ya se puede probar la rom.

Así se verá en A-Map:


Y así en el juego:


Ya con esto hemos expandido las tablas de OW y la hemos hecho funcionar.

Ahora vamos a configurar el cambio de OW del héroe.

Si se está usando el cambio de OW del héroe, como se ha aplicado en el tutorial, se debe insertar un script lo antes posible con los siguientes cambios:
Código:
	Si es chico:
	setvar 0x4090 0x0
	setvar 0x4091 0x1
	setvar 0x4092 0x2
	setvar 0x4093 0x3
	setvar 0x4094 0x4
	setvar 0x4095 0x5
	setvar 0x4096 0x6

	Si es chica:
	setvar 0x4090 0x7
	setvar 0x4091 0x8
	setvar 0x4092 0x9
	setvar 0x4093 0xA
	setvar 0x4094 0xB
	setvar 0x4095 0xC
	setvar 0x4096 0xD
Para ello se recomienda hacer uso del comando checkgender.

Donde 0x4090 es la variable que seleccionamos al insertar el hack y las otras variables las 6 siguientes.

Recomendaciones:

- Para una mejor implementación de las paletas se recomienda aplicar el sistema de Paletas Dinámicas de Overworld (Dynamic Overworld Palettes) de Navenatox. Aunque algunos usuarios han reportado algunos fallos con este sistema, por lo tanto se debe usar con cuidado.

- A pesar de que JPAN expandió las tablas de OW, olvidó expandir las tablas de las paletas o su cantidad máxima. Y a pesar de que en su manual de instrucción dice que se pueden usar más de 256 paletas moviendo la tabla a un lugar con más espacio, agregar más paletas y finalizar la tabla con 00000000 FF110000, esto no es posible por 2 razones:

1.- FF110000 corresponde al ID de paleta 11FF que es el ID de la paleta FF o 256, por lo tanto, en lo que el código encuentre dicha paleta no seguirá buscando en la tabla pues asumirá que es el final de la tabla, independientemente del puntero que tenga asociado dicho ID.

2.- El código nativo del juego aplica un filtro de 8 bits para identificar el ID de la paleta, por lo que su valor está entre 0x00 y 0xFF. Haciendo nuevamente imposible cargar más de 256 paletas.

Por lo que se recomienda usar con cuidado la cantidad máxima de paletas a insertar en la rom.

Ya con esto finaliza este tutorial. Espero les haya agradado y que le saquen mucho provecho.

Saludos!
Gracias: Derlo, muramasa, Jon. y 10 más.


Última edición por CompuMax; 07/12/2018 a las 16:34
  #2  
07/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
Soy el primero. Y sin duda tratare de hacerlo. Pero mi ROM ya tiene los overwold expandidos..
Siempre desee un tutp de como usar esta herramienta y alfin alguien se atreve gracias amigo
POKEMON VERSIÓN MEW
BETA 0.1
  #3  
07/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
Sencillo e ilustrativo, ¡si señor!
Siempre que intentaba esto no me salía del todo bien, y siempre que lo intentaba lo hacía directamente con el OverWorld Manager y pensaba que eso ya era todo.
Pero ahora, esto ya es otra cosa...
¡Muy bueno la verdad!
Discord: DrakoVinyl #3790
  #4  
07/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
¡Así que te decidiste a realizar el tutorial!
¡Genial!
Todo se entiende muy bien, y hasta explica el por qué no funcionan ciertas cosas como lo de las paletas.
Gracias por explicarnos como usar esta maravillosa herramienta para nuestros hacks.
Creo que la usaré en mi hack =)...
¡Muy bueno el tutorial!
Gracias: CompuMax
  #5  
07/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
Como siempre dándonos cátedra de rom hacking, grande @CompuMax, esto le servirá a mucha gente, yo ya había visto la herramienta pero no la usaba por que pensaba que buggeaba es mas varios usuarios de aquí decían lo mismo, pero por lo que vemos solamente es necesario conocerla para poder sacarle el máximo potencial.
Gracias: CompuMax y ~Zane~
  #6  
07/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
¿Hasta 65.000 OW?

¿Aquí no juegan con mi sentimientos?

Gracias por esforzarte para traernos esto, y por tomarte el tiempo de hacer el Tutorial.

Te lo agradezco
  #7  
07/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
Dicho por KERBEROS Ver mensaje
Soy el primero. Y sin duda tratare de hacerlo. Pero mi ROM ya tiene los overwold expandidos..
Siempre desee un tutp de como usar esta herramienta y alfin alguien se atreve gracias amigo
No importa si ya tienes los OW expandidos, siempre y cuando no hayas expandido las tablas de las tablas de OW (que hasta donde sé sólo lo ha hecho JPAN). El sistema detecta tus OW y los deja intacto. Solo debes tener en cuenta las consideraciones explicadas para que no te dañe la rom.

Dicho por NéXo Ver mensaje
¿Hasta 65.000 OW?

¿Aquí no juegan con mi sentimientos?

Gracias por esforzarte para traernos esto, y por tomarte el tiempo de hacer el Tutorial.

Te lo agradezco
65.520 para ser más exacto!



Dicho por Versekr Dark Ver mensaje
Como siempre dándonos cátedra de rom hacking, grande @CompuMax, esto le servirá a mucha gente, yo ya había visto la herramienta pero no la usaba por que pensaba que buggeaba es mas varios usuarios de aquí decían lo mismo, pero por lo que vemos solamente es necesario conocerla para poder sacarle el máximo potencial.
Bueno bro, como mencioné a mi tampoco me funcionaba si la usaba aplicando la lógica. A eso me refiero con, por ejemplo:

- Elegir solo 2 tablas
- No settear las variables del player a penas inicia el juego

Al parecer se le escapó unas ciertas consideraciones al hacer las rutinas o al insertarlas con la herramienta y no fue hasta que hacanoca me pidió algo de ayuda con esos sistemas que me dediqué a hacerlos funcionar. Así que agradezcan también a él.


  #8  
08/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
Excelente tutorial, ya me lo habías comentado por interno, realmente es un detalle muy impresionante a tener en cuenta.

Gracias por haberlo realizado brosito, lo terminaré de aplicar mas tarde en mi hack, un abrazo!
Gracias: CompuMax


ORGULLOSO DE NACHO, UN EXCELENTE TRABAJO Y AFORTUNADAMENTE PUEDO DECIR QUE TIENE MI GRANO DE ARENA!


¡GRACIAS A TODOS!


  #9  
09/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
Perdon pero por algun motivo se me cierra la app de owm antes de terminar el proceso , sera por el win10?
POKEMON VERSIÓN MEW
BETA 0.1
  #10  
09/12/2018
Predeterminado Respuesta: [FR] Expandir los OW con el JPAN's Engine
Dicho por KERBEROS Ver mensaje
Perdon pero por algun motivo se me cierra la app de owm antes de terminar el proceso , sera por el win10?
Hiciste todos los pasos descritos?, pasa solo con tu rom modificada?, probaste con una rom virgen?

Si pasa sólo con tu rom, puede que sea algunos otros cambios que le hayas hecho. Si pasa con un rom virgen definitivamente puede que sea tu OS. En cualquier caso yo solo posteé el tutorial de como expandir los OW con el Engine de JPAN, no puedo darte asesoría técnica del OWM. Para ello tendrías que contactar con Kimonas.


Respuesta

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 05:37.

© Whack a Hack! 2019