Registrarse

FR | Nuevas paletas para los overworlds

Estado
Cerrado para nuevas respuestas.

Fran Agustín

Si el sol besa tus ojos, ni cuenta te das.
Miembro insignia
Buenas, este tutorial es una traducción al español, desde el idioma inglés, que hice porque vi que lo pedían en el tema de petición de tutoriales.

---------------------------------------------------------------------------------------------------------------------

Herramientas necesarias para el tutorial

- Rom de Pokemon Fire Red (Dos; uno solo parcheado).
- Pokemon Fire Red Hacked Engine.
- Editor Hexadecimal. Para este tutorial se usará el Translhextion.
- Free Space Finder.
- Overworld Editor.
- Nameless Sprite Editor.
- Lunar IPS.
- Estos últimas herramientas pueden encontrarlas en la sección de "Herramientas" de la web.


Primer paso – Aplicando el parche: Hacked Engine
No voy a explicar esto, por el simple motivo de que ya hay un tutorial muy fácil de entender, que puedes ver en la wiki, justo aquí.

Segundo paso – Entendiendo la data

Como JPAN sostiene en su guía, el pointer de una paleta está formado de la siguiente manera:

PPPPPPPP nn110000
P = Pointer de la paleta
n = Número de la paleta
Por ejemplo, si quisiéramos poner un pointer a una paleta que se encuentre en el 0x800000, cuyo número es el 32, quedaría así: 00008008 20110000
Cuando trabajamos con punteros, debemos dividir el offset en tres bloques de dos números cada uno y ordenarlos de la siguiente manera: 80 00 00 --> 00 00 80 08
20 es 32 en hexadecimal, así que asegúrate de convertir tu número decimal a hexadecimal. Pueden usar la calculadora de Windows, eso sí, en modo programador, la calculadora del XSE, o la que gusten.

Paso 3 – Encontrando el espacio libre

En el rom parcheado, la tabla de las paletas se encuentra en el offset 0x1A2400, lo que significa que tienen lugar para 256 pointers, así que, en teoría, eso debería bastar. Iba a hacer un chiste, pero era muy malo, así que mejor lo dejamos para otro día

Cada paleta usa 64 bytes, entonces, si insertan más de una paleta, simplemente multiplican la cantidad de paletas a insertar por 64. Ese resultado será la cantidad de bytes que necesitarán.

Ejemplo dijo:
64 x 12 = 768
Nota: En el ejemplo, “12” es la cantidad de paletas a insertar.
Entonces, para insertar 12 paletas, son necesarios 768 bytes, pero, por una cuestión de facilidad y simplicidad, en este tutorial se mostrará el procedimiento con una sola paleta.
El offset usado será el 0x800000




Paso 4 – Editando las paletas

Lo primero es abrir el rom virgen con el NSE (Nameless Sprite Editor), buscar cuál paleta quieren cambiar, y editarla a su gusto.



En la imagen pueden ver cómo se editó la paleta del mini del protagonista.
Una vez que terminen, podemos empezar con… ¡La edición hexadecimal!
Tomen nota del offset de la paleta, en este caso es “$H35B968”, o bien “0xH35B968”

Paso 5 – Editando el rom de forma hexadecimal

Abrimos nuestro rom modificado en un editor hexadecimal, y vamos directamente al offset 0x1A2400 (así es, el de la tabla de las paletas).



Ahora vamos al final de la tabla e insertamos nuestro puntero (el que buscamos con el Free Space Finder), justo antes del “00000000 FF110000”, así como se ve en la imagen. Recuerden que, si lo borran, deben escribirlo de nuevo, ya que si la tabla NO termina con eso, NO va a funcionar.



Guardamos el rom, pero no cerramos el editor.

Bien, abrimos el rom no modificado, vamos al offset de la paleta, y copiamos 64 bytes.
Volvemos al rom modificado, saltamos al 0x800000 y pegamos.


Guardamos de nuevo.

Paso 6 – Editando los sprites

Primero, vemos cuál es el offset del sprite en el NSE, y lo anotamos, o lo recordamos. En este caso es el “0x3A3C64”.

Vamos a ese address en el rom modificado. El número de la paleta es el tercer byte, así que lo reemplazamos por el número de la paleta (en hexadecimal). En el tutorial se usa el 20, hexadecimal para 32, paleta elegida al inicio.



Guardamos.

Abrimos el archivo “sprites.ini” del Overworld Editor; buscamos donde dice “English Fire Red” y cambiamos el pointer de “SpritePaletteHeader” por el “1A2400”.

Guardamos.

Después abrimos nuestro rom en el Overworld Editor y vamos al sprite que queremos cambiar, en este caso el del protagonista. Como podemos ver, ahora el número de la paleta es el 32.
Editamos el sprite a nuestro gusto.




Paso 7 – Arreglando un glitch

Para que este tutorial funcione, deben entrar al editor hexadecimal y reemplazar los siguientes valores:

Desde el “0x5E5E0”, ponen “70 88 09 07 09 0f 00 29 01 d0 05 e0”.
Después, en el “0x5e5f8”, ponen “03 e0”.

Otro problema surge del efecto de la niebla, ya que el palette slot 0x1, del 0x6 al 0x9 y el 0xb, están “reservados” por ese efecto.
Así que, si no van a usarlos en su hack-rom y necesitan las paletas extra, pueden usarlas luego de desactivar el efecto.

En el offset 0x5f680, ponen 22 e0 (para los palette slots del 0x6 al 0x9 y para el 0xb).
En el 0x5f60c ponen 20 e0 (para el palette slot 0x1, el mist slot del player)
Ahora debería funcionar bien, si siguieron todos los pasos correctamente.


Aquí una muestra del resultado final.




Créditos
-Quickster, de PokéCommunity, por el tutorial original (incluidas las imágenes).

-Los creadores de las herramientas utilizadas.

-Quienquiera que creó la imagen que estoy usando de background.

 
Última edición:

H.B.P

Emperador Kaktiácero
Miembro de honor
Respuesta: [FireRed] Insertando nuevas paletas para los overworlds

Verás, este es un buen tutorial, pero le veo varios problemas. El primero es que no es un tutorial universal, sólo funciona para Pokemon Fire Red, y a su vez, para aquellos rom a los que se les aplique el parche correspondiente. En segundo lugar, recomiendo no utilizar el parche de JPAN, he llegado a probarlo y todo lo referente al sistema de scripts de nivel te dará problemas (creo recordar que se repetirán los scripts de nivel que programes en varios mapas).

En fin, te dejo un +Gracias.
 

Sayer301!

UnityLord!
Miembro de honor
Respuesta: [FireRed] Insertando nuevas paletas para los overworlds

Yi-yi-yi-yiah!
Me encanta, muchas gracias por la traducción man :)
Como dice sir kaktus lo del parche es una movida bastante curiosa, pero como me dijo Javi4315, puedo probar a insertar solo las rutinas de paletas y overworlds en vez de el parche entero.
¿Y que pierdo por probar?

Lord Қaktusツ;210330 dijo:
he llegado a probarlo y todo lo referente al sistema de scripts de nivel te dará problemas (creo recordar que se repetirán los scripts de nivel que programes en varios mapas).
Sinceramente esto me pasa constantemente en mi ROM y no está parcheada, pero tiene facil solución, así que no le veo problemas al tuto.



Funcione o no para mi has ganado Repu+1.
 

PabloGTD

WiiU developer
Respuesta: [FireRed] Insertando nuevas paletas para los overworlds

Te quiero tío. Esto esto es justo lo que estaba buscando.

Larga vida al Caudillo a Franco1
 

Gold

Porrero a tiempo parcial
Miembro insignia
Respuesta: FR | Gráficos | Insertando nuevas paletas para los overworlds

En su momento ví como inútil este tutorial, debido a que usando el método tal cual lo explica Franco sobreescribe las paletas en la RAM, pero ahora sí es de utilidad, esto gracias al sistema de paletas dinámico de Navenatox. Yo no recomiendo usar el parche de JPAN, mejor es usar sola el Hacktool de JPAN y aplicar el sistema de expansión de minis a mano, así tendremos acceso a 0xFFFF (65536 minis en 255 tablas de 255 minis), y con la herramienta Overworld Manager de Kimonas podremos editar esos nuevos minis tan fácil que no tendremos que tocar un editor hexadecimal en el proceso.

En resúmen, gran tutorial, en su momento poco útil, pero ahora lo es c:
 

hacanoca

Héroe de WaH
Respuesta: [FireRed] Insertando nuevas paletas para los overworlds

Hola
Una duda, en el hack tool de JPAN, ¿cómo expando la tabla de paletas?
es que apliqué el de los OW, pero la tabla de paletas me siguió quedando en el pointer
H3A5158, que es el original del juego (si no estoy mal).
Otra inquietud:
Al aplicar el hack tool de JPAN de OW, me creó (creo) una nueva dirección de tabla de minisprites.
¿Cómo hago para Advance Maps reconozca este nuevo sistema?, en el que si no estoy mal ahora hay una tabla que contiene tablas de OW. Es que creé un nuevo mini, digamos que el 153 (en Overworld editor) y en el Advance Map me aparece ese mini, pero a la hora de jugar, me aparece un mini diferente. Por lo tanto creo que el Advance Map y el juego están leyendo tablas de minis diferentes.
Gracias
 
Última edición:
Estado
Cerrado para nuevas respuestas.
Arriba