Registrarse

[ASM] FR | Expansión BG e imágenes de entrada

hacanoca

Héroe de WaH
Hola a todos.

Este tutorial es un complemento al realizado por Gooby/Ruki/Gold, el cual se encuentra en este link https://whackahack.com/foro/t-29409/fr-asm-expansion-personalizacion-fondos-batalla.

En ese tutorial nos indicaron como aplicar el parche para la expansión y personalización de los fondos de batalla, y como usarlo dentro del juego.

También nos dejaron la rutina no compilada para quienes quisiéramos insertar la rutina en otro sitio (ya que viene por defecto en el offset F00000, muy usado por el parche de paletas dinámicas).

Este tutorial busca enseñar como aplicar esta rutina sin aplicar el parche, es para todos aquellos a quienes el ASM nos cuesta mucho.

Antes que nada, quiero dar mis agradecimientos y el crédito a @CompuMax, ya que fue él quien me ayudó a insertar la rutina acorde a mis necesidades, y quien me enseñó y ayudó con todo el tema de las paletas de las imágenes de entrada.

Pues bien, la rutina compilada es la siguiente:
06 4D 20 B4 02 B4 06 49 08 47 00 29 00 D0 08 1C 02 BC 04 4D 84 00 24 18 28 47 00 00 WW WW WW ZZ XX XX XX ZZ 71 F2 00 08 FF FF FF FF FF FF FF FF 06 4D 20 B4 02 B4 06 49 08 47 00 29 00 D0 08 1C 02 BC 04 4D 84 00 24 18 28 47 00 00 WW WW WW ZZ YY YY YY ZZ BD F2 00 08 FF FF FF FF FF FF FF FF 05 B4 05 48 00 F0 06 F8 00 88 01 1C 05 BC C0 46 FF F7 CB FF 01 4A 10 47 E8 40 00 00 55 E4 06 08 05 B4 05 48 00 F0 06 F8 00 88 01 1C 05 BC C0 46 FF F7 D3 FF 01 4A 10 47 E8 40 00 00 55 E4 06 08

Bien, se podría decir que la rutina en sí está compuesta de 4 subrutinas, de la siguiente forma:
Subrutina 1: En color Azul
Subrutina 2: En color Púrpura
Subrutina 3: En color Rojo
Subrutina 4: En color Verde

Adicionalmente, se resalta en negrilla la variable compilada con la cual se hará funcionar la rutina. En esta rutina compilada que les traigo está por defecto la variable 40E8 (compilada E8 40); pero pueden cambiarla a la variable de su elección.

Ahora, hay varios punteros importantes en esta rutina que he señalado con letras:
  • WW WW WW ZZ: Es el puntero compilado de donde insertaremos nuestra tabla de BackGrounds (La estructura de esta tabla la pueden encontrar en el tutorial de Gooby). Indico ZZ porque dependiendo de si insertamos la tabla en un puntero más allá de FFFFFF (en roms expandidas) ZZ equivale a 09; de lo contrario equivale a 08.

  • XX XX XX ZZ: Es el puntero compilado de donde se inserta la (subrutina 3 +1). Indico ZZ porque dependiendo de si insertamos la tabla en un puntero más allá de FFFFFF (en roms expandidas) ZZ equivale a 09; de lo contrario equivale a 08.

  • YY YY YY ZZ: Es el puntero compilado de donde se inserta la (subrutina 4 +1). Indico ZZ porque dependiendo de si insertamos la tabla en un puntero más allá de FFFFFF (en roms expandidas) ZZ equivale a 09; de lo contrario equivale a 08.

En mi caso, inserté la Tabla de BG en el pointer 1C48500.
Y la rutina la inserté en el pointer 13C3790.
Por lo tanto, la rutina me queda de la siguiente forma:


Tras insertar la rutina se deben hacer los siguientes cambios:
  • En el pointer F26E: Se debe cambiar de 84 00 24 18 a 28 47 20 BC
  • En el pointer F2A0: Se debe cambiar de 34 EE 24 08 a el pointer de la (Subrutina1 +1), en mi caso 91 37 3C 09
  • En el pointer F2BA: Se debe cambiar de 84 00 24 18 a 28 47 20 BC
  • En el pointer F2E0: Se debe cambiar de 34 EE 24 08 a el pointer de la (Subrutina2 +1), en mi caso C1 37 3C 09
  • En los ponters F320, FD5C, FD88 : Se debe cambiar de 34 EE 24 08 a el pointer de la tabla de BG, en mi caso 00 85 C4 09

Y listo, tras hacer esto tienen su rutina completamente insertada.
Ya el resto es adecuar la tabla de BG a su gusto y jugar con la variable que seleccionaron para el proceso (en mi caso 40E8) tal cual como enseña Gooby en su tutorial.

Sin embargo este tutorial tiene una parte 2...

Como bien menciona Gooby en su tutorial, la tabla de los BG está realizada de tal forma que cada BG tiene 5 punteros:
Puntero 1: Tileset del BG
Puntero 2: RAW del BG
Puntero 3: Tileset de la imagen de entrada
Puntero 4: RAW de la imagen de entrada
Puntero 5: Paleta

Pues bien, resulta que yo inserté la rutina, todo bien...
Y añadí un BG a la tabla, para asignarlo a un mapa de bosque.
Como imagen de entrada le puse la misma asignada al BG1 (Hierba alta), y este fue el resultado:


¿Qué pasó?
¿Dónde se modifica el color de la imagen de entrada, si ese pointer no está en ninguna de las posiciones de nuestra tabla de BG?
Pues resulta que, la paleta del BG controla tantos los colores del BG como de la imagen de entrada, y resulta que no es una paleta de 16 colores, sino hasta de 48: Slots 2 y 3 para BG; y slot 4 para imagen de entrada.


Como ven, es el slot 4 el que rige los colores de la imagen de entrada.

El método que voy a explicar sirve para usar correctamente las imágenes de entrada que vienen por defecto en el juego, o para modificarle sus colores a voluntad. Para poder aplicarlo con imágenes nuevas que deban ser insertadas desde cero en la Rom, desconozco si dicha imagen debe estar indexada a 16 colores o indexada a 256; pero sería cuestión de probar y ensayar (Me inclino por la opción de 16 colores).

Ahora, qué se requiere para corregir esto:
  • Tener extraída y coloreada a gusto la imagen de entrada a utilizar, se debe utilizar los mismas posiciones de colores que usa la imagen original.
    En mi caso utilizo la imagen de entrada del BG1, la de la hierba alta:

    Es importante que la imagen tenga el mismo color "transparente" que el BG.
  • NSE 2.0 o similar (para insertar la paleta)
  • HxD o similar

En CMP, debes copiar la paleta de colores de la imagen de entrada, en el 3 "renglón" de la paleta del BG:


Luego, guardas la imagen como un bmp de 256 colores

En NSE 2.0 abrimos nuestra Rom.
A continuación abrimos nuestra imagen a 256 colores.
Y le damos a insertar paleta comprimida al Rom


El programa nos dirá la cantidad de bytes necesarios.
En mi caso yo la insertaré en el pointer 13C38A0

En HxD, vamos a nuestra tabla de BG, allí vamos al BG en cuestión y en la casilla de la paleta colocamos el pointer permutado del sitio donde insertamos la paleta, en mi caso coloco: A0 38 3C 09


En la imagen se señala en amarillo todos los pointers asociados al BG que se está modificando, y en azul el pointer específico de la paleta.

Tras este procedimiento, la imagen de entrada debería verse con los colores adecuados.


PD: Sé que los colores no corresponden con los de las imágenes pasadas.
Lo que pasa es que el resultado no me generaba buen contraste, entonces los volví a cambiar.

También están los créditos para Karatekid552 por la rutina ASM y el método para aplicarla.
Él agradece a la vez a: Driver, Jambo51, Darthatron, Mat, Tajaros, Narutoactor y Drfuji.

Espero haber sido claro y que les sea de ayuda.
Nos vemos.
 
Última edición:

Naren Jr.

Puto amo
Usuario de Platino
Respuesta: FR-ASM-Expansión BG e imágenes de entrada

¿Ni un solo comentario?

he decir que es una rutina que AMO, con todo mi corazón, te ofrece una facilidad con todo, ademas te gestiona los battlebackground a tu gusto, con colores como gustes, es lo mejor que se han inventado.

Creo que una vez @Samu tenia algo referente a esto, de no ser así no importa.

Muchas gracias por compartirnos esto!
 

Omega

For endless fight
Miembro del equipo
Moderador/a
Respuesta: FR-ASM-Expansión BG e imágenes de entrada

Esto es una maravilla :lovelon:
Ya en su momento tuve que usar el tuto de Ruki y vaya trabajo me costó insertar el sistema, por supuesto hice unos ajustes a mi proyecto y nuevamente había que realizar el proceso, pero gracias a ti y a Compumax no he tardado mucho en insertarlo otra vez (Lo tenía pendiente, pero por lo mismo lo aplazaba siempre xD) :boogie:

Saludos!!!
 

CompuMax

Discord: CompuMax#0425
Miembro insignia
Respuesta: FR-ASM-Expansión BG e imágenes de entrada

Aunque ya había visto el tutorial hace rato, creo que no lo detallé a fondo hasta ahora.
Así que voy a tratar de complementar un poco la información que nos ha traído hacanoca respecto a las imágenes de entrada.

- Si se inserta una nueva imagen de entrada, ésta debe estar indexada a 4bpp (16 colores) y el color de fondo no necesariamente debe ser el mismo color "transparente" que el BG, sino el primer color de la paleta, como siempre.

- A la hora de armar el mapa (raw) se debe asignar el número de paleta a usar en dicha imagen, en este caso la quinta paleta o paleta número 4.

Ya con esto más lo que les ha explicado hacanoca pueden insertar una imagen de entrada desde cero sin ningún problema.
 

Tohru

Baneado
Ostia esto era exactamente lo que necesitava muchas gracias Hacanoca me resolviste un problema que me estaba rompiendo la cabeza :3
Pdt: Agradeciendole al de arriba .
 

Eaas

Profesional de WaH
Esto ya lo conocia y estaba documentado en Pokemon Hacking creo, pero es bueno que este aqui. Buen tuto
 

X_TERRA

Usuario mítico
El tuto es muy sencillo pero a mi no me ha salido, en mi caso no he repunteado la tabla de BG porque voy a usar los 20 que trae FIRE RED por default, hice la prueba con todo y script pero no funcionó.

No creo que tenga algo que ver que esté usando CFRU ¿Verdad?
 
Arriba