User Tag List

Página 1 de 3 123 ÚltimoÚltimo
Resultados 1 al 15 de 31

Tema: [BennuGD] Cambiando colores a los gráficos con paleta de 8 bits

  1. #1

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,441
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    329
    Agradecer Thanks Received 
    1,183
    Thanked in
    Agradecido 586 veces en [ARG:2 UNDEFINED] posts

    [BennuGD] Cambiando colores a los gráficos con paleta de 8 bits

    @panreyes

    @SplinterGU

    @Drumpi

    @GameMaster

    @tognin


    Saludos compañer@s forer@s,

    Sucede que me ha dado por continuar trabajando en el juego de carreras con pseudo 3D, Masteries-Runners, pues llevaba tiempo sin tocarlo y me estoy decidiendo a terminarlo...

    Y dadas las perrerías que se me ocurren, pues a veces las paso un poquito canutas para lograr lo que pretendo.

    Entrando en acción:

    -El juego ( https://www.youtube.com/watch?v=Sjz_zElwVCI ) emplea paleta de color de 8 bits, y los gráficos emplean esa misma paleta.

    -Ahora: quiero poder cambiar el color de las líneas laterales, de dos tonos verdes a dos tonos grises para tramos en ciudad, dos tonos marrones para tramos de montaña así como cambiar los colores de los coches... la idea no es cambiar la paleta entera, sino los índices de las paletas de cada fichero de gráficos, de forma que utilizando siempre la misma paleta de 8 bits, un fichero de gráficos .fpg cuyo índice 23 apuntaba al color 23 de la paleta general de 8 bits, haciendo que ahora dicho índice número 23 apunte al color 60 de la paleta general y así, el color índice 23 de los gráficos contenidos en ese fichero .fpg cambiarían a marrón... he estado probando estas cosas al cacharrear en lenguaje C en un Atari STE (en un PC también serviría) y he logrado mostrar 24 colores en pantalla, además de haber estado estudiando el juego Lotus en versión para dicho ordenador y he detectado que hace cosas así con la asignación de colores para cada uno de los gráficos, así que también quiero hacer cosas así con este juego que me traigo entre manos .


    ¿La pregunta que os hago es si esto puede hacerse utilizando BennuGD? , y si no puede hacerse directamente, tal vez se pudiera con un "workaround" cambiando la paleta de color de un fichero .fpg (pal_map_assign ¿?) ahora mismo no sabría decir... de ahí la solicitud de ayuda.

    Gracias anticipadas,
    Última edición por masteries; 03/07/2016 a las 22:05

  2. #2

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,630
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    188
    Agradecer Thanks Received 
    2,626
    Thanked in
    Agradecido 1,639 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Me quiere sonar que había una funcion en div para cambiar un color de la paleta, pero no la recuerdo.
    Me suena otra que era roll_palette pero no creo que te sirva.
    Aunque el mayor problema es que no emtienfo bien tu explicación. Se lo que quieres pero no llego a ver como lo haces funcionar, asi que no se me ocurre como ayudarte.

  3. #3

    Fecha de ingreso
    May 2008
    Ubicación
    A tu lado, en tus sueños
    Mensajes
    22,309
    Mencionado
    145 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    319
    Agradecer Thanks Received 
    552
    Thanked in
    Agradecido 424 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    porque no posteas en el foro de bennugd ? no necesitarias llamar a nadie, los expertos ya verian tu hilo

    en modo 8 bits puedes cambiar los colores en tiempo real, creo que ahora incluso el juego rulando a 16bits de color se pueden cargar fpg's en modo 8 bits para hacerle efectos de forma independiente

  4. #4

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,630
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    188
    Agradecer Thanks Received 
    2,626
    Thanked in
    Agradecido 1,639 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Pero la cosa es saber como funcionan esas lineas ¿cada una es un proceso con su gráfico? ¿Son gráficos dibujados con funciones draw? La solucion cambia en función de como está programado.
    Google stadia es un fracaso, google stadia funciona mal, google admite su fracaso con stadia la latencia es el problema intrinseco de stadia, el público abandona google stadia, stadia mal.

  5. #5

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,441
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    329
    Agradecer Thanks Received 
    1,183
    Thanked in
    Agradecido 586 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por GameMaster Ver mensaje
    porque no posteas en el foro de bennugd ? no necesitarias llamar a nadie, los expertos ya verian tu hilo
    No hagas como que no te gusta que te llamen

    En realidad no se trata de cambiar la paleta de 8 bits, si no de cambiar a donde apuntan los índices de las paletas de algunos gráficos; para poder cambiar sus colores sin cambiar la paleta.
    Imagina que tienes un proceso (un personaje vestido de rojo) que tiene asociado un fichero .fpg, que contiene los gráficos que utiliza.

    Ahora necesitas que ese mismo personaje aparezca de azul, sabes los índices de los 4 o 5 tonos rojos que utiliza y a qué entrada de la paleta apuntan, lo que necesitas es hacer que sus índices apunten a otras entradas que se corresponden con tonos azules. De esta forma cambias los colores del personaje, sin cambiar la paleta que utilizas, dado que si cambias la paleta das al traste con todo el colorido.

    Por lo que me he estado documentando, todo esto es muy común tanto en los tiempos de las paletas de 8 bits, como en máquinas que no llegaban a tantos colores. Siendo una técnica habitual en esos juegos escritos en C y ensamblador; pero en este caso toca Bennu, y no un Bennu demasiado moderno, ya que mi máquina objetivo es PlayStation 2 y hay tantos cambios en el port de Bennu que tengo entre manos... que es imposible hablar de portar un Bennu nuevo.

    Creo que ha quedado más claro, de todas formas probaré con pal_map_assign a ver que sale.
    Última edición por masteries; 04/07/2016 a las 00:46

  6. #6

    Fecha de ingreso
    Jan 2016
    Ubicación
    Cádiz
    Mensajes
    3,308
    Mencionado
    36 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    1,528
    Agradecer Thanks Received 
    710
    Thanked in
    Agradecido 467 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    jo, no merezco ni ser mencionado... TT_TT

    -----Actualizado-----

    Por cierto, que habia una forma de cambiar los colores, como tu dices el
    pal_map_assign
    ese de los cohones que nunca terminé de saber como...

    aunque yo optaria por cambiar el numero de grafico, tienes hasta mil en un solo fpg

  7. #7

    Fecha de ingreso
    Dec 2004
    Mensajes
    28,630
    Mencionado
    199 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    188
    Agradecer Thanks Received 
    2,626
    Thanked in
    Agradecido 1,639 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    11
    Entiendo que no te vale con duplicar los gráficos en otros colores e ir cambiando según te venga bien ¿no?
    Google stadia es un fracaso, google stadia funciona mal, google admite su fracaso con stadia la latencia es el problema intrinseco de stadia, el público abandona google stadia, stadia mal.

  8. #8

    Fecha de ingreso
    Jul 2009
    Mensajes
    8,737
    Mencionado
    64 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    937
    Agradecer Thanks Received 
    571
    Thanked in
    Agradecido 345 veces en [ARG:2 UNDEFINED] posts
    muy bien no se entiende lo que planteas, pero lo que entiendo es que dices cambiar el valor del pixel (el valor del pixel es el indice en la paleta), por otro indice en runtime. eso es mucho mas pesado que cambiar el valor de la paleta. pero si cambiar ese valor de la paleta te arruina los colores de otras zonas del grafico o de otros graficos, lo que debes hacer es tus graficos a consciencia.

    que quiero decir con esto?

    con esto quiero decir, que deberias optimizar tus graficos para que usen X cantidad de colores de la paleta, reservandote Y colores para poder manipularlos, por ejemplo, opimizas los graficos a 240 colores, de esta forma te reservas 15 colores para jugar, agarras por ejemplo el color/indice 251 (el primero reservado) pintas con ese color la zona del grafico que quieres vaya variando y le asignas al indice 251 de la paleta lo que quieras tenga en cada momento, con lo que no perjudicas ningun grafico ni ningun otro color y esto seria optimo.

    si te referias a otra cosa, pues no te entendi.

    -----Actualizado-----

    por otro lado, me gusta mucho el runner masteries corriendo en ps2, felicitaciones!
    ...

  9. #9

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,441
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    329
    Agradecer Thanks Received 
    1,183
    Thanked in
    Agradecido 586 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por SplinterGU Ver mensaje
    muy bien no se entiende lo que planteas, pero lo que entiendo es que dices cambiar el valor del pixel (el valor del pixel es el indice en la paleta), por otro indice en runtime. eso es mucho mas pesado que cambiar el valor de la paleta. pero si cambiar ese valor de la paleta te arruina los colores de otras zonas del grafico o de otros graficos, lo que debes hacer es tus graficos a consciencia.

    que quiero decir con esto?

    con esto quiero decir, que deberias optimizar tus graficos para que usen X cantidad de colores de la paleta, reservandote Y colores para poder manipularlos, por ejemplo, opimizas los graficos a 240 colores, de esta forma te reservas 15 colores para jugar, agarras por ejemplo el color/indice 251 (el primero reservado) pintas con ese color la zona del grafico que quieres vaya variando y le asignas al indice 251 de la paleta lo que quieras tenga en cada momento, con lo que no perjudicas ningun grafico ni ningun otro color y esto seria optimo.

    si te referias a otra cosa, pues no te entendi.
    @SplinterGU

    Si, esa es una de las cosas en las que estaba pensando... para cambiar los colores de los coches y de las líneas laterales de la carretera tendré que hacer esto. Pero sigue sin permitirme cambiar los colores de unos gráficos y de otros no (pertenecientes al mismo set gráfico), al final en estos casos me toca tirar de lo "viejo" y consumir un par de megabytes más de RAM.

    Por cierto, dado que te interesa, el vídeo que he puesto es muy viejo; ahora el port de PS2 emplea un mezclador de audio en Tiempo-Real, ejecutado en una IRQ a 50/60 Hz donde se mezcla 1/50 o 1/60 de segundo de audio.

  10. #10

    Fecha de ingreso
    Jun 2004
    Ubicación
    en babia
    Mensajes
    2,522
    Mencionado
    31 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    248
    Agradecer Thanks Received 
    412
    Thanked in
    Agradecido 233 veces en [ARG:2 UNDEFINED] posts
    Yo te doy animos para conseguirlo porque no he tocado Bennu en mi vida ni tengo ni idea de como ayudarte. Has invocado al djinn equivocado

    slaudos

  11. #11

    Fecha de ingreso
    May 2008
    Ubicación
    A tu lado, en tus sueños
    Mensajes
    22,309
    Mencionado
    145 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    319
    Agradecer Thanks Received 
    552
    Thanked in
    Agradecido 424 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3

  12. #12

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,441
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    329
    Agradecer Thanks Received 
    1,183
    Thanked in
    Agradecido 586 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por GameMaster Ver mensaje
    @GameMaster , ¡como te superas cada día!

  13. #13

    Fecha de ingreso
    Aug 2003
    Ubicación
    Madrid (Getafe)
    Mensajes
    13,901
    Mencionado
    48 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    5
    Agradecer Thanks Received 
    221
    Thanked in
    Agradecido 164 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    2
    lo que pide masteries es algo bastante "habitual" ....
    tener el mismo sprite en diferentes colores sin tener que duplicar el sprite.

    solo se me ocurre que cargues 2 veces el sprite y cambies los pixeles justo despues de la carga.

    como se hace en bennugd, ni idea, pero apuesto a que existen funciones de manipulacion de pixels de un sprite.

    Aiken

  14. El siguiente usuario agradece a Aiken este mensaje:

    masteries (04/07/2016)

  15. #14

    Fecha de ingreso
    May 2008
    Ubicación
    A tu lado, en tus sueños
    Mensajes
    22,309
    Mencionado
    145 Post(s)
    Tagged
    1 Tema(s)
    Agradecer Thanks Given 
    319
    Agradecer Thanks Received 
    552
    Thanked in
    Agradecido 424 veces en [ARG:2 UNDEFINED] posts
    Entradas de blog
    3
    donde tenias tu pagina de descargas para ps2 @masteries

  16. #15

    Fecha de ingreso
    Oct 2007
    Ubicación
    Madrid
    Mensajes
    3,441
    Mencionado
    112 Post(s)
    Tagged
    0 Tema(s)
    Agradecer Thanks Given 
    329
    Agradecer Thanks Received 
    1,183
    Thanked in
    Agradecido 586 veces en [ARG:2 UNDEFINED] posts
    Cita Iniciado por Aiken Ver mensaje
    lo que pide masteries es algo bastante "habitual" ....
    tener el mismo sprite en diferentes colores sin tener que duplicar el sprite.

    solo se me ocurre que cargues 2 veces el sprite y cambies los pixeles justo despues de la carga.

    como se hace en bennugd, ni idea, pero apuesto a que existen funciones de manipulacion de pixels de un sprite.

    Aiken
    @Aiken

    Tú sí que has sabido sintetizar la idea, yo sólo he explicado lo que pretendía hacer a nivel "programa"; esa es la idea, no consumir memoria 2 o más veces pero tener 2 o más gráficos con diferentes colores, estando ya los colores disponibles en la paleta cargada.

Página 1 de 3 123 ÚltimoÚltimo

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •