Problema con paletas de 8 bits y flag b_translucent

Started by TYCO, November 21, 2008, 08:32:41 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

TYCO

Eso jeje que yo no puedo abrir la consola en 8Bits y el PacMan carga mal la paleta estando en 8bits y no puedo usar la consola para trace a donde o que produce el error XD, estoy con el say() de mala manera.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

Quote from: TYCO on November 21, 2008, 08:32:41 AM
Eso jeje que yo no puedo abrir la consola en 8Bits y el PacMan carga mal la paleta estando en 8bits y no puedo usar la consola para trace a donde o que produce el error XD, estoy con el say() de mala manera.

no te habras confundido de hilo?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

Hombre este no sería el hilo para decirlo, pero contestaba a un comentario tuyo:

Quote from: SplinterGU on November 21, 2008, 12:24:22 AM
pero muy a futuro... primero hay que completar y testear bien el modelo actual, y lanzar la release, luego se veran cosas nuevas...

Ya sé de donde viene el problema, no es la paleta, es cosa del XPUT con flags 4 al poner un gráfico de fondo de 8Bits estando con set_mode(8Bits). Voy a probar en otras versiones de Fénix haber como lo hace y vuelvo a comentar resultados, quizás sea un bug, quien sabe.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

TYCO

[code language="bennu"]Program pruebas;

GLOBAL
    int map_fondo;
BEGIN
    set_mode(640,480,8);

    map_fondo=load_map("pacman.map");
    load_pal("pacman.map");

    xput(0,map_fondo,320,240,0,100,4,0);

    WHILE (NOT (key(_esc)))
        Frame;
    End
End[/code]

En Fénix 0.84a y 0.89d se ve correctamente (un flags=4)
En Fénix 0.92a (última oficial), 0.93 preview9 y Bennu WIP-2 se ve mal, no hace el flags=4, sale todo pintado como de NARANJA???
En Bennu WIP-15c2 no se muestra en pantalla el gráfico, sale todo negro.

Dejo las imágenes de cuando se ve bien y mal:

BIEN:



MAL:

Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

maldicion, todavia no puedo probar, pero intentaste con los ejemplos de paleta en el post de avances? o en el sitio de descarga?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

En Fénix 0.92a (última oficial) también sucede el error y no había nada de aplicar paletas a cada proceso, si hago un PUT_SCREEN lo pone bien, igual que si hago un XPUT con flags=0, pero cuando pones flags=4, ahí sale ese color naranja.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

no de paletas a procesos, pero si de paletas... y con esto, cada mapa 8 bits tiene su propia paleta, pero puede que necesites cargar la paleta antes que el grafico. Aunque con solo cargar el grafico, este ya tendria su paleta... pero bueno, me estoy olvidando que estamos hablando de video en 8 bits...

proba hacer el set_mode en 16 y todo lo demas igual. a ver que pasa... yo apenas pueda pruebo, pero no tengo entorno todavia armado... y tampoco tiempo...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

Cambiando el set_mode(640,480,8) por set_mode(640,480,16), en Bennu WIP-15c2 se muestra el XPUT y también se hace correctamente el flags=4, así que solo lo hace mal estando en 8Bits.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

entonces el tema de la paleta no es, pero... al puede que al cargar primero el mapa antes que la paleta, el mapa tome la paleta del sistema... puede ser por algun error o algun otro motivo que ahora no veo claramente, tengo que revisar el codigo, pero ahora no puedo hacerlo... proba primero leer la paleta y luego el mapa... y si esto no funciona, tambien proba leer la paleta antes del set_mode.. es ridiculo esto ultimo pero bueno, a ver si asi nos damos cuenta por donde viene el problema y si es un problema realmente.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

[code language="bennu"]Program pruebas;

GLOBAL
    int map_fondo;
BEGIN
    set_mode(640,480,8);
Frame;
    map_fondo=load_map("pacman.map");
    load_pal("pacman.map");
Frame;

    xput(0,map_fondo,320,240,0,100,4,0);

    WHILE (NOT (key(_esc)))
        Frame;
    End
End[/code]

Metiendo esos Frames consigo ver en pantalla el XPUT estando en 8Bits. Aunque parece mostrarlo bien, no es así, porque una barra del centro sale como GRIS y debería ser tirando a ROSA. He probado a poner el load_pal de antes de cargar el mapa, después, no poner load_pal, ponerlo antes de los set_mode y nada todo negro.



Solo he conseguido verlo todo NARANJA con esto:

[code language="bennu"]Program pruebas;

GLOBAL
    int map_fondo;
BEGIN
    set_mode(640,480,8);
Frame;
    set_mode(640,480,16);
Frame;
    set_mode(640,480,8);

    map_fondo=load_map("pacman.map");
    load_pal("pacman.map");

    xput(0,map_fondo,320,240,0,100,4,0);

    WHILE (NOT (key(_esc)))
        Frame;
    End
End[/code]

Imagino será porque usa la paleta del sistema. ya que si ponía "load_pal("pacman.map");" antes de los set_mode, sale bien exceptuando esa BARRA GRIS.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

caramba, creo que ya se cual es tu problema, el flag = 4 es translucent...

B_HMIRROR       0x0001

B_VMIRROR       0x0002

B_TRANSLUCENT   0x0004

B_ALPHA         0x0008

B_ABLEND        0x0010

B_SBLEND        0x0020

B_NOCOLORKEY    0x0080

deberias usar B_NOCOLORKEY...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#11
mas alla de todo esto, queda un poco desprolijo tener que hacer set_mode + frame... pero aun asi, no se si realmente es un bug en la busqueda de colores cercanos o en el armado de la tabla de transparencias o que no hay colores transparentes adecuados en la paleta o depende del grafico target (en este caso el fondo del escritorio) y su paleta (paleta del sistema)

Por que no probas hacer un put_screen?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

Un put_screen sale bien, sin hacer la transparencia (flags=4).

El problema es que en versiones anteriores (ej: fenix 0.89d) el efecto era correcto, y ahora mismo en Bennu ni si quiera se muestra en pantalla, para verlo tienes que hacer esos FRAMES depués de los "set_mode"... y aún así no respeta los colores bien. Todo esto en 8Bits, repito que en 16Bits no hay ningún problema con XPUT y flags=4.

Cuando tengas todo el sistema armado... pruebas el paquete que puse como adjunto y lo veras rápidamente, puedo esperar un par de días.

Por otro lado:
    set_mode(640,480,16);
    map_fondo=load_map("pacman.map");
    alpha=100;
    xput(0,map_fondo,320,240,0,100,8,0);

    WHILE (NOT (key(_esc)))
        Frame;
    End

Este código debería hacer el XPUT con el valor de alpha o no??? (flags=8; //alpha) resultado: No muestra nada, da igual el valor de alpha (y está en 16Bits el set_mode). Si cambio el set_mode a 8Bits, no veo nada en pantalla 1 o 2 segundos (cosa extraña), pasados esos segundos muestra la imagen con la BARRA en BLANCO, vaya lío hay aquí.
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)

SplinterGU

#13
que en fenix se viera no significa que fenix estuviese haciendo bien las cosas, asi que eso de "pero en fenix se veia" no siempre es señal de que ese funcionamiento sea correcto. Ejemplo de esto es los a/sblend+translucent, los angulos en los graficos, y otras cosas mas.
claro, en 16 bits tenes 65k de colores, en 8 bits solo 256...
Pero por otro lado, no descarto que pueda haber algun problema con el calculo de deteccion del color transparente adecuado... hay que pensar lo siguiente, en 8 bits las transparencias se calculan en base al rgb de la paleta, calculando los valores de rgb que corresponderian a la transparencia de ese color e intentar buscar luego el color mas cercano a esos valores dentro de los datos de paleta cargado, y entonces ahi se dibuja el pixel mas cercano al ideal, y si no hay uno muy cercano, el mas cercano puede ser cualquier cosa.

tambien es cierto que en la version que tienen Uds. faltan algunos flags setear para que se actualice instantaneamente los fondos y algunas cosas de paletas pueden no actualizarse, yo estuve trabajando en estas cosas, espero no haber perdido esos cambios, creo que no los perdi, pero bueno...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

TYCO

Buenas, refloto un poco el tema porque no sé como quedó este tema (si solucionado o no). Vi que salió nueva wip24 y he vuelto a probar, el paquete que subí en su día (está más arriba). En esta wip24 sale negro, no se ve el XPUT con flags=4 (traslucido) en pantalla ¿Por qué motivo?
Programador, Escritor/Guionista y Deportista.

Todo Modo Gráfico tiene por detrás una Línea de Comandos.

SnowCraft Remake (100%)
Rally Mortal (87%)