Registrarse

GBA | [En proceso] Efecto iluminación/sombra en los tiles

Zik

Usuario Habitual
Que tal gente, iré al punto de este tema. A que me refiero con eso de iluminación o sombra, pues me refiero a esto:

Iluminación:

Esto es lo que se puede lograr con imaginación...
Y, unos cuantos wbtos. :awesome:

Sombra:

Esta imagen esta editada pero si se puede lograr el efecto, lo que pasa es que me dio flojera hacerlo. :yao:

Bueno como se logra esto. Primero en el mapa(ya sea un bosque, templos bajo el agua, ect.) de su hack en el visual boy van a la opción de Map Viewer o visor de mapas si lo tienen en español (Tools/Herramientas ► Map Viewer/ Visor de mapas). No veo la necesidad de poner imágenes porque no es un tutorial pero bueno, sigamos con esto.

De la ventana del Visor de mapas la parte que nos interesa es la que dice Fondo/Background. Verán que hay cuatro opciones BG0, BG1, BG2, BG3. Al darle clic a los alvéolos verán que nos muestran varias partes del mapa, ¿porque?, eso es lo que explicare a continuación.

El rom, al cargar un mapa o la mayoría de los gráficos lo divide en 4 capas.
Cada capa tiene un nivel superior a la otra y este es el orden de las capas y que es lo que vienen cargando cada una.

-----------------------------------------------------
BG0: Esta es la capa superior de todas, en ella se cargan los texbox
-----------------------------------------------------
BG1: A qui se cargan los tiles que están por encima de los overworlds, son aquellos tiles que en el A-MAP pones del lado derecho y les das a guardar sin ponerle ningún efecto.
-----------------------------------------------------
[OBJ]
-----------------------------------------------------
BG2: A qui cargan los tiles que están por debajo de los overworlds y de los tiles que están en el BG1, son los que pones del lado izquierdo en el A-MAP y le das guardar sin ningún efecto y los que suelen ir acompañados de los del lado derecho que son los que cargan el BG1 para formar por ejemplo la parte superior de un árbol, que cuando observan el overworld pasa por debajo del árbol pero por encima del suelo.
-----------------------------------------------------
BG3: Se han preguntado que hace la opción "Block is covered by Hero" para que ya no puedas pasar por debajo los tiles. Se los explicare con simples palabras, esta capa sirve cuando activas esta opción para los tiles en el
A-MAP(que se encuentra en Fondo-Byte), lo que hace es que los tiles que deberían cargar en el BG1(los que se ponen del lado derecho) carguen en el BG2 y lo que que deberían cargar en el BG2(los que se ponen del lado izquierdo) carguen en esta la BG3.
-----------------------------------------------------

El [OBJ] son los overworlds.


Bueno, como se logra este efecto, pues el método que yo use fue el siguiente:

Me asegure que en la BG3 no hubieran mas que los tiles que iban a servir como iluminación(imagen donde esta latias). Y depues con estos wbtos:
-----------------------------------------------------
writebytetooffset 0x41 0x400000E |
writebytetooffset 0x1E 0x400000F |

Estos hacen que la capa BG3 tenga prioridad como la BG0 osea que este por encima de de las demás, sin afectar a la BG0.
-----------------------------------------------------
writebytetooffset 0x3F 0x4000048 |
writebytetooffset 0x1F 0x4000049 |

Estos hacen que se active el efecto especial de capas
-----------------------------------------------------
writebytetooffset 0x48 0x4000050 |
writebytetooffset 0x1E 0x4000051 |

Estos hacen que la BG3 sea la capa que se combinara con las demás para hacer el efecto
-----------------------------------------------------
writebytetooffset 0x8 0x4000052 |
writebytetooffset 0xE 0x4000053 |

Estos controlan la intensidad de como se vera, en este caso como la imagen de iluminación.
-----------------------------------------------------

Así es como lo eh logrado, pero si ya lo logre porque lo publico en el tema de investigación. Lo que pasa es necesito ayuda para que alguien pueda hacer que este efecto sea permanente, ya que como ocupo wbtos, ya saben lo que ocurre cuando refrescamos, se pierde el efecto.

La solución podría ser ASM, pero ese no es mi campo, pero creo que los poco ASM Hacker del foro ya no esta, así que espero que alguien me ayude.

Espero y alguien conteste una posible solución a esto.
Si se lograra este efecto seria algo nuevo para los hacks, bueno eso fue todo.
 

Pacodelopio

Entrenador Pkmn
Respuesta: Efecto Iluminación/Sombra

¿Y si usas un script de nivel para que sea permanente? Hace poco tambien tenia una duda con wbto y jo7a me dijo que si lo pones de script de nivel y luego con una flag o asin lo activas y desactivas cuando quieres.
 

Andrea

Leyenda de WaH
Re: Efecto Iluminación/Sombra

well it's possible to do but only in part :/
if you load a tileset of light in BG0 when player moves the tile follow player, not remain in the same position...
if you look BG1,2,3 are updated every time we step, BG0 no...
there would be a way but it would be very difficult and complicated:
-make a routine asm always active depending on the value of a variable the routine will be active or not
-if the variable has the value set in the routine load the tile of light in BG0 else do nothing
-when load tile in BG0 control in offset of key press 4000130 the direction of player
if it goes down then ec...
if it goes up then ec...
 

Jo7a

Kiero mi nick amarillo D:
Respuesta: Efecto Iluminación/Sombra

Si lo que quieres es hacer que los wbto se ejecuten siempre, aunque refresques, tan solo tienes que incluirlos en un script y ponerlo como script de nivel. Haces uno de tipo 07 y otro de tipo 04, los dos con el mismo offset del script, y al de tipo 04 le asignas una flag que NO kieras desactivar nunca.

La verdad está interesante este tema, me llama la atención hacer ese efecto ya que queda genial. Lo único, deberías especificar pra qué base es. Por lo que veo es para ruby, no sé si también servirá en fr.

Te animo a seguir investigando ;P
 

Zik

Usuario Habitual
Respuesta: Efecto Iluminación/Sombra

La verdad está interesante este tema, me llama la atención hacer ese efecto ya que queda genial. Lo único, deberías especificar pra qué base es. Por lo que veo es para ruby, no sé si también servirá en fr.

Te animo a seguir investigando ;P
Creeme sigo investigando , probare lo del script de nivel a ver que sucede.

Y la verdad sirve para cualquier rom.
 

Invert

why so serious?
Espiando el perfil de Eing me encontre con este tema.
No entiendo muy bien la parte de la explicacion, podrias decir cuales son los bytes + la direcciones que hacen el efecto semi-transparente a los tiles?
 

eing

Miembro de honor
Miembro de honor
Espiando el perfil de Eing me encontre con este tema.
No entiendo muy bien la parte de la explicacion, podrias decir cuales son los bytes + la direcciones que hacen el efecto semi-transparente a los tiles?

Eso es cosa del I/O.
Lo que él hace es dejar la capa 3 (bg3) libre de tiles, y cargar ahi los que quiere que esten arriba del todo, por debajo de la bg0. (Es decir seria como un bg1)
Una vez hecho eso, mediante el i/o tambien le da el efecto en capas de semitransparencia. (Tal y como hacemos con el tbox, pero esta vez en la bg3).

Por ultimo las direcciones son las del wbto.
De hecho ya le comente la idea no es nada mala, pero habria de asegurarse de no cargar ningun grafico en la bg3, para no fastidiar nada. (Ya que le dara continuamente prioridad).
 

Invert

why so serious?
Eso es cosa del I/O.
Lo que él hace es dejar la capa 3 (bg3) libre de tiles, y cargar ahi los que quiere que esten arriba del todo, por debajo de la bg0. (Es decir seria como un bg1)
Una vez hecho eso, mediante el i/o tambien le da el efecto en capas de semitransparencia. (Tal y como hacemos con el tbox, pero esta vez en la bg3).

Por ultimo las direcciones son las del wbto.
De hecho ya le comente la idea no es nada mala, pero habria de asegurarse de no cargar ningun grafico en la bg3, para no fastidiar nada. (Ya que le dara continuamente prioridad).
Bien, todo lo que acabas de decir ya lo dijo Zik xD
Lo que no entendí muy bien es cuales son los bytes que hacen los BG semitransparentes... pero ya lo averigüé.
Igual mira, Para personas como yo que usan muchos tiles, y supongo que muchos tambien lo harán, es casi imposible no tener tiles en el BG3, es cierto que se podría hacer en algunos lugares, pero lo genial sería hacerlo donde se nos de la gana.
Mi idea es usar sprites semitransparentes y ponerlos en los lugares donde queramos.
El problema es mostrar los sprites en el mapa y no en la pantalla, no sé si me entiendes.
 

eing

Miembro de honor
Miembro de honor
Bien, todo lo que acabas de decir ya lo dijo Zik xD
Lo que no entendí muy bien es cuales son los bytes que hacen los BG semitransparentes... pero ya lo averigüé.
Igual mira, Para personas como yo que usan muchos tiles, y supongo que muchos tambien lo harán, es casi imposible no tener tiles en el BG3, es cierto que se podría hacer en algunos lugares, pero lo genial sería hacerlo donde se nos de la gana.
Mi idea es usar sprites semitransparentes y ponerlos en los lugares donde queramos.
El problema es mostrar los sprites en el mapa y no en la pantalla, no sé si me entiendes.
Si usas objetos semitransparentes no lograras ese efecto D:
Btw, yo estoy perezoso pero que tal si miras el clima fog? Osea niebla y ver como funciona. Donde carga en que capa y demas hehe

Lo haria yo pero creo que estoy retirado xD
 

InmortalKaktus

Ludiloco
Si usas objetos semitransparentes no lograras ese efecto D:
Btw, yo estoy perezoso pero que tal si miras el clima fog? Osea niebla y ver como funciona. Donde carga en que capa y demas hehe

Lo haria yo pero creo que estoy retirado xD
Como hace tiempo que no hago ni el huevo, yo mismo lo investigaré, iré actualizando conforme encuentre cosas.

Edit: Antes de empezar con ello he recordado que el tile se superpone cuando el byte asignado es para que el prota pueda tapar dicho bloque. Es decir, que se necesitaría cambiar la propiedad que asigna que cuando el bloque está inferior al prota, la niebla pase desapercibida, que para ser franco, ni idea de donde esta, quizás no se pueda cambiar esto ya que esta característica puede estar compartida por cualquier otra cosa, es por ello mi inseguridad, aun que por ejemplo, el clima "Cloudy" hace que todo se vea mucho más oscuro, con esto solo necesitaríamos añadir/lograr cargar un background de la dimensión del mapa, el cual fuera fijo, aún así, lo veo muy complicado para hacer mediante WBTO, fijo que se tendría que tirar de ASM, al menos si no queremos comernos el tarro.
 
Última edición:
Arriba