Registrarse

FR | Parado | Minis transparentes

Cheve_X

MoonLover~
Miembro de honor
Bueno, en un video, hace un tiempo, me encontré con un scripts de un "fantasma" de un Eevee (No pude volver a dar con el susodicho video) el cual era transparente, tal cual una Textbox.

Ahora bien, usando el BLDMOD, COLEV, COLEY y WININ (resumiendo, el I/O) uno puede lograr minis transparentes, pero en realidad toda la data de la parte de "OBJ" es puesta en éste modo:




Como ví que de ésta manera me sería imposible hacer que solo el OBJ que yo quiera sea transparente, fuí a GBATEK, para ver si habría algo que me ayudase...


Link a la Data original: GBATEK - GBA/NDS Technical Info

GBATEK dijo:
Atributos de los OBJ
Existen 128 entradas en el OAM para cada OBJ, del OBJ0 al OBJ127. Cada entrada consiste de 6Bytes (3 atributos de 16bits). Los atributos del OBJ0 se encuentran en 07000000, para OBJ1, al 07000008, OBJ2 a 07000010 y así.

Como puedes ver, hay espacios en blanco en 07000006, 0700000E, 07000016, etc. - Estos valores de 16bit son usados para Rotar/Escalar los OBJ (Como se describe en el proximo capitulo) - Ellos no están directamente realacionados con los separados OBJ

Atributo de OBJ 0 (R/W) (R/W = Read/Writable) (Leíble / Escribible)


Bit Expl.
0-7 Coordenada-Y (0-255)
8 Flag de Rotacion/Scaling (0=Off, 1=On)
Cuando se usa la Rotacion/Scaling (Attribute 0, bit 8 set):
9 Double-Size Flag (0=Normal, 1=Double)
When Rotation/Scaling not used (Attribute 0, bit 8 cleared):
9 OBJ Disable (0=Normal, 1=Not displayed)
10-11 OBJ Mode (0=Normal, 1=Semi-Transparente, 2=OBJ Window, 3=Prohibited)
12 OBJ Mosaic (0=Off, 1=On)
13 Colors/Palettes (0=16/16, 1=256/1)
14-15 OBJ Shape (0=Square,1=Horizontal,2=Vertical,3=Prohibited)

Atención: Un OBJ demasiado grande (de 128px verticales, por ejemplo, un obj de 64px de Doble tamañlo de area) ubicado en Y>128 será tratado como Y>-128, el OBJ entonces es mostrado en partes fuera de la pantalla en el TOP del display, y no se muestra en la parte más baja


OBJ Attribute 1 (R/W)

Bit Expl.
0-8 X-Coordinate (0-511)
When Rotation/Scaling used (Attribute 0, bit 8 set):
9-13 Rotation/Scaling Parameter Selection (0-31)
(Selects one of the 32 Rotation/Scaling Parameters that
can be defined in OAM, for details read next chapter.)
When Rotation/Scaling not used (Attribute 0, bit 8 cleared):
9-11 Not used
12 Horizontal Flip (0=Normal, 1=Mirrored)
13 Vertical Flip (0=Normal, 1=Mirrored)
14-15 OBJ Size (0..3, depends on OBJ Shape, see Attr 0)
Size Square Horizontal Vertical
0 8x8 16x8 8x16
1 16x16 32x8 8x32
2 32x32 32x16 16x32
3 64x64 64x32 32x64

OBJ Attribute 2 (R/W)
Bit Expl.
0-9 Character Name (0-1023=Tile Number)
10-11 Priority relative to BG (0-3; 0=Highest)
12-15 Palette Number (0-15) (Not used in 256 color/1 palette mode)
Luego voy a estar tranduciendo ésto.

Bueno, entonces, ahí dice que con a primer parte de 16bits, en el bit 10-11 puedo cambiar el modo de los OBJ a semitransparente... Intenté hacerlo con un WBTO, pero la data en la Ram se carga una y otra vez, y no me permite hacer nada...

Los datos de los OBJ como dice GBATEK empiezan en 0x07000000
 
Última edición:

Helix Boo

Emperador Kaktiácero
Miembro de honor
Respuesta: [Investigación][En Progreso] Minis Específicos Transparentes

El NSE te permitía acceder a la paleta en cuestión, es concretamente la del reflejo del agua, puedes probar a ver.
 

Synchrony

Baneado
Respuesta: [Investigación][En Progreso] Minis Específicos Transparentes

Intenté hacerlo con un WBTO, pero la data en la Ram se carga una y otra vez, y no me permite hacer nada...
¿Con eso te refieres a que si pones el WBTO no pasa nada porque se refresa de inmediato o se refresca después que el mini hace un cambio de frame?
Interesante tema, por cierto.
 

Cheve_X

MoonLover~
Miembro de honor
Respuesta: [Investigación][En Progreso] Minis Específicos Transparentes

Bueno, les cuento como saber donde está la data de cada mini en la RAM... La del protagonista está en 0x07000000, y son estos 6bytes:



Cada par de Bytes, corresponde a una de los atributos de objetos.

Asi tenemos que el primer byte vale:

8038 (HEX)

Que sería

1000000000111000 (BIN)

Es decir...

1 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0
F E D C B A 9 8 7 6 5 4 3 2 1 0

Éstos son, los bits que manejamos con la tabla de arriba...

Atributo de OBJ 0 (R/W) (R/W = Read/Writable) (Leíble / Escribible)


Bit Expl.
0-7 Coordenada-Y (0-255)
8 Flag de Rotacion/Scaling (0=Off, 1=On)
Cuando se usa la Rotacion/Scaling (Attribute 0, bit 8 set):
9 Double-Size Flag (0=Normal, 1=Double)
When Rotation/Scaling not used (Attribute 0, bit 8 cleared):
9 OBJ Disable (0=Normal, 1=Not displayed)
10-11 OBJ Mode (0=Normal, 1=Semi-Transparente, 2=OBJ Window, 3=Prohibited)
12 OBJ Mosaic (0=Off, 1=On)
13 Colors/Palettes (0=16/16, 1=256/1)
14-15 OBJ Shape (0=Square,1=Horizontal,2=Vertical,3=Prohibited)

Entonces lo que hago es poner un 1 en A (A=10) con lo que pongo valor 1 en el bit 10-11, quedando el numero así:


1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0
F E D C B A 9 8 7 6 5 4 3 2 1 0

1000010000111000 (BIN)

8438 (HEX)

entonces lo que yo intento es hacer un WBTO al 0x07000000 con el valor 0x84, cuando el script lo carga, vuelve a su valor original (0x80)

Eso es a lo que me refiero @NoMore Rancor
 
Respuesta: [Investigación][En Progreso] Minis Específicos Transparentes

Hello, I have done this research a long time ago.
I added you on skype to explain how to do, after can update the first post.
 

Cheve_X

MoonLover~
Miembro de honor
El bueno de @Nacho me preguntó exactamente como había logrado dejar toda la capa de OBJ con semitransparencia, creo que a alguien más también le puede ser útil así que lo pongo acá, ya que está relacionado y es el primer lugar donde buscarían algo asi:

Aquí ta:

Primero fuí al I/O y en WININ habilité los FX en en WIN0 marcando el bit 5 en 1 (Sería como hacer un wbto 0x04000048 0x1F3F

Segundo voy al WINOUT y también habilito los FX del OBJ (Bit 12 )

Tercero vas a BLNDMODE y marcas el bit 4 para decirle que el OBJ tendrá prioridad sobre el efecto, el 6 para cargar el efecto de semitransparencia (01) el 8 el 9 el 10 y el 11 para decirle que todo eso va a ser visto a través de los OBJ (El 8 puede ir o no)

Cuarto en COLEV (o BLDALPHA según tu emulador), con los parámetros del 0 al 4 controlas el brillo de los obj (0 es negro y todo en 1 es demasiado brilloso), y con los parámetros de 8 a 12 la cantidad de transparencia
personalmente marco el 2, 4, 8 y 11 pero va a gusto
 

Nacho

Nadando hasta la otra orilla
El bueno de @Nacho me preguntó exactamente como había logrado dejar toda la capa de OBJ con semitransparencia, creo que a alguien más también le puede ser útil así que lo pongo acá, ya que está relacionado y es el primer lugar donde buscarían algo asi:

Aquí ta:

Primero fuí al I/O y en WININ habilité los FX en en WIN0 marcando el bit 5 en 1 (Sería como hacer un wbto 0x04000048 0x1F3F

Segundo voy al WINOUT y también habilito los FX del OBJ (Bit 12 )

Tercero vas a BLNDMODE y marcas el bit 4 para decirle que el OBJ tendrá prioridad sobre el efecto, el 6 para cargar el efecto de semitransparencia (01) el 8 el 9 el 10 y el 11 para decirle que todo eso va a ser visto a través de los OBJ (El 8 puede ir o no)

Cuarto en COLEV (o BLDALPHA según tu emulador), con los parámetros del 0 al 4 controlas el brillo de los obj (0 es negro y todo en 1 es demasiado brilloso), y con los parámetros de 8 a 12 la cantidad de transparencia
personalmente marco el 2, 4, 8 y 11 pero va a gusto
Vale bro gracias. Aun no lo he podido testear. Bajo tu experiencia crees que se pueda aplicar a un bg? Pq he visto cajas de texto semitransparentes con wbto también. Me llama la atención algún tile. O la pantalla negra que nos sale antes de hacer flash.
 

Cheve_X

MoonLover~
Miembro de honor
Si, seguramente sea similar.
Las Textbox son el Bg0, y si no mal recuerdo en el modo que usa Pkmn todas son iguales (Tienen las mismas propiedades)
 

DrakoVinyl

Profesional de WaH
Vale bro gracias. Aun no lo he podido testear. Bajo tu experiencia crees que se pueda aplicar a un bg? Pq he visto cajas de texto semitransparentes con wbto también. Me llama la atención algún tile. O la pantalla negra que nos sale antes de hacer flash.
Si, seguramente sea similar.
Las Textbox son el Bg0, y si no mal recuerdo en el modo que usa Pkmn todas son iguales (Tienen las mismas propiedades)
Al aplicarle semitransparencia a un tile, hay un problema; los tiles se montan en los BGs. Cuando se aplica el efecto de semitransparencia a una textbox, cabe aclarar que estamos afectando al BG en su totalidad.
Siguiendo este razonamiento lógico, puedo decir que si quieres aplicar semitransparencia a un tile, estarás afectando la transparencia de todos aquellos tiles que compartan el mismo BG. Lo que planteas se puede hacer y hasta puede que logres algo bonito, pero hay que hilar muy fino.
Si alguien quiere saber como lograr ese efecto en tiles, os dejo este enlace:
 

Nacho

Nadando hasta la otra orilla
Al aplicarle semitransparencia a un tile, hay un problema; los tiles se montan en los BGs. Cuando se aplica el efecto de semitransparencia a una textbox, cabe aclarar que estamos afectando al BG en su totalidad.
Siguiendo este razonamiento lógico, puedo decir que si quieres aplicar semitransparencia a un tile, estarás afectando la transparencia de todos aquellos tiles que compartan el mismo BG. Lo que planteas se puede hacer y hasta puede que logres algo bonito, pero hay que hilar muy fino.
Si alguien quiere saber como lograr ese efecto en tiles, os dejo este enlace:
yo siempre hilo fino!, gracias por el interés sub! revisaré lo que dije ojalá te puedas conectar a discord cabrón
 
Arriba