› Foros › Retro y descatalogado › Consolas clásicas
kusfo79 escribió:Señor Ventura escribió:P.D: En snes las tiles con menos colores, ocupan menos espacio.
Si? pero eso es un modo diferente? con diferente numero de colores a la vez?
icecaap escribió:kusfo79 escribió:Acaban de colgar un video de otra de las participantes en el SMSPowerCompo2017...otra demo de "Bad Apple", pero en todo color en una master!!
Bad Apple a todo color en Master!
Una pasada pero ya os aviso que no funciona en el everdrive, demasiado tamaño la rom.
kusfo79 escribió:Vuelvo a preguntar, pero...seguro que esto se puede hacer en 1BPP en algunos tiles, y en otros no? se pueden mezclar modos??
aki7 escribió:Pero este tema ¿no es para comentar las novedades que se producen en la scene retro? O se puede offtopiquear a saco y hablar de áspectos técnicos o de cualquier otra cosa que no tengan que ver con centrarse en comentar las novedades que nos trae la scene retro?
kusfo79 escribió:Vale, me contesto a mi mismo. No, no se pueden mezclar diferentes profundidades de Tile (no me cuadraba con todas las demás consolas que conozco). Supongo que si que se puede llegar a hacer usando una interrupción horizontal, partiendo la pantalla entre modos (algún juego de MSX lo he visto con este truco)
Por lo que he visto por internet, el 99% de los juegos usan el modo 4bpp por tile en la Super Nes, con lo que los tiles ocupan también 32 bytes cada uno. (Y el otro modo usado suele ser el modo 3 de 128/256 colores para imagenes estáticas).
Calculinho escribió:icecaap escribió:kusfo79 escribió:Acaban de colgar un video de otra de las participantes en el SMSPowerCompo2017...otra demo de "Bad Apple", pero en todo color en una master!!
Bad Apple a todo color en Master!
Una pasada pero ya os aviso que no funciona en el everdrive, demasiado tamaño la rom.
En el everdrive de MD usando su retrocompatibilidad debería funcionar. Pesa 4.5Mb y si no me equivoco acepta roms hasta 6Mb, después pruebo.
magno escribió:kusfo79 escribió:Vale, me contesto a mi mismo. No, no se pueden mezclar diferentes profundidades de Tile (no me cuadraba con todas las demás consolas que conozco). Supongo que si que se puede llegar a hacer usando una interrupción horizontal, partiendo la pantalla entre modos (algún juego de MSX lo he visto con este truco)
Por lo que he visto por internet, el 99% de los juegos usan el modo 4bpp por tile en la Super Nes, con lo que los tiles ocupan también 32 bytes cada uno. (Y el otro modo usado suele ser el modo 3 de 128/256 colores para imagenes estáticas).
Sí, sí se pueden mezclar, por supuesto, cada profundidad de color en un BG distinto. Aquí puedes verlo: SuperFamicom Wiki
El 99,99% de juegos de RPG utilizan modo 1, y del resto, pues según necesidades, no hay una norma genérica, aunque los más habituales son el modo 1,2,3 y 4.
Y @Aki7 tiene razón, no hagamos offtopic.
kusfo79 escribió:
Ahí pone que no se pueden mezclar, otra cosa es que algunos modos asignan una profundidad determinada a todo un plano, y otra a otro de los planos, pero ya está...
magno escribió:Creo que lo pone bien claro en la wiki y que lo he explicado bien claro: se pueden mezclar profundidades de color ENTRE PLANOS BG: un plano de 4 colores, otro de 16, otro de 2... Si por mezclar te refieres a una tile de un color y la siguiente de otro, pues sí, se puede si ambas tiles pertenecen a distintos planos, y no se puede si pertenecen al mismo.
magno escribió:kusfo79 escribió:
Ahí pone que no se pueden mezclar, otra cosa es que algunos modos asignan una profundidad determinada a todo un plano, y otra a otro de los planos, pero ya está...
Creo que lo pone bien claro en la wiki y que lo he explicado bien claro: se pueden mezclar profundidades de color ENTRE PLANOS BG: un plano de 4 colores, otro de 16, otro de 2... Si por mezclar te refieres a una tile de un color y la siguiente de otro, pues sí, se puede si ambas tiles pertenecen a distintos planos, y no se puede si pertenecen al mismo.
kusfo79 escribió:Mi primera pregunta era si se podían mezclar diferentes profundidades en un mismo plano, que ya suponía y comprobado que no. Lo preguntaba por que de lo que decía @Señor_Ventura se entendía eso (lo de que muchos de los tiles eran solo dos colores, pero no todos). De todas formas, he mirado como va el Another World en SNES y funciona de la misma manera que en mega. Está usando un solo plano como un framebuffer donde va dibujando todo (BG1).
Sobre lo que comentas, hay 8(+1) modos en la Super Nintendo, y no se pueden mezclar, ya que los defines en el registro $2105 de la PPU para toda la pantalla. Lo que ocurre es que varios de los modos tienen diferentes profundidades de color dependiendo del plano. Como has comentado, el modo 1 era muy usado, y te permitía tener dos planos de 16 colores por tile (32 bytes por tile), y el tercer plano con 4 colores por tile (16 bytes por tile). No permite mezclarlo a voluntad ni nada parecido.
Estaría bien si un moderador, como @salvor70, pudiera crear un hilo con esta discusión, es offtopic pero es interesante.
Señor Ventura escribió:Lo que quiere decir es que tu puedes poner tiles de 1BPP incluso en un plano de 256 colores, pero ya no podrás usar otros tiles con otra profundidad de color en ese mismo plano.
Piensa que si los tiles estuviesen obligados de forma rigida a tener la profundidad de color que indique el plano del modo en el que trabajes, no existirían los tiles a 1BPP, porque no hay planos a esa profundidad de color.
kusfo79 escribió:Mi primera pregunta era si se podían mezclar diferentes profundidades en un mismo plano, que ya suponía y comprobado que no. Lo preguntaba por que de lo que decía @Señor_Ventura se entendía eso (lo de que muchos de los tiles eran solo dos colores, pero no todos). De todas formas, he mirado como va el Another World en SNES y funciona de la misma manera que en mega. Está usando un solo plano como un framebuffer donde va dibujando todo (BG1).
kusfo79 escribió:En realidad, y como creo que ya comenté un día que preguntabas algo parecido, en estas consolas el número de colores, sobretodo a la hora de subir a la VRAM, da igual. Los tiles ocupan siempre lo mismo. Si que puedes ahorrar en cierta manera si tienes los tiles comprimidos en la rom y los descomprimes en RAM...
Señor Ventura escribió:P.D: En snes las tiles con menos colores, ocupan menos espacio.
kusfo79 escribió:Sobre lo que comentas, hay 8(+1) modos en la Super Nintendo, y no se pueden mezclar, ya que los defines en el registro $2105 de la PPU para toda la pantalla. Lo que ocurre es que varios de los modos tienen diferentes profundidades de color dependiendo del plano. Como has comentado, el modo 1 era muy usado, y te permitía tener dos planos de 16 colores por tile (32 bytes por tile), y el tercer plano con 4 colores por tile (16 bytes por tile). No permite mezclarlo a voluntad ni nada parecido.
Señor Ventura escribió:Una pregunta tonta, y por mi parte no offtopiqueo mas, ¿con los sprites puedes mezclar unas tiles con una profundidad específica, a continuación de otros sprites con sus tiles a otra profundidad?, o las tiles de los sprites siempre ocupan 32 bytes.
Señor Ventura escribió:Editado: Cuando cambias la prioridad de un tile de un plano, ¿estás limitado a cambiarlo de capa?, o también puedes cambiarlo de posición al cambiar su prioridad.
Señor Ventura escribió:Por ejemplo, un tile que está en el background 4 en la esquina superior izquierda, pasarlo al background 1, 2, o 3 pero en el centro. Esto sería cojonudo para tener un plano reservado a modo de "buffer", ya que como quedaría tapado por los demás planos, no se vería semejante amalgama de tiles ^^
Señor Ventura escribió:kusfo79 escribió:Mi primera pregunta era si se podían mezclar diferentes profundidades en un mismo plano, que ya suponía y comprobado que no. Lo preguntaba por que de lo que decía @Señor_Ventura se entendía eso (lo de que muchos de los tiles eran solo dos colores, pero no todos). De todas formas, he mirado como va el Another World en SNES y funciona de la misma manera que en mega. Está usando un solo plano como un framebuffer donde va dibujando todo (BG1).
Sobre lo que comentas, hay 8(+1) modos en la Super Nintendo, y no se pueden mezclar, ya que los defines en el registro $2105 de la PPU para toda la pantalla. Lo que ocurre es que varios de los modos tienen diferentes profundidades de color dependiendo del plano. Como has comentado, el modo 1 era muy usado, y te permitía tener dos planos de 16 colores por tile (32 bytes por tile), y el tercer plano con 4 colores por tile (16 bytes por tile). No permite mezclarlo a voluntad ni nada parecido.
Estaría bien si un moderador, como @salvor70, pudiera crear un hilo con esta discusión, es offtopic pero es interesante.
Lo que quiere decir es que tu puedes poner tiles de 1BPP incluso en un plano de 256 colores, pero ya no podrás usar otros tiles con otra profundidad de color en ese mismo plano.
Piensa que si los tiles estuviesen obligados de forma rigida a tener la profundidad de color que indique el plano del modo en el que trabajes, no existirían los tiles a 1BPP, porque no hay planos a esa profundidad de color.
Lo genial sería poder mezclarlos, pero al menos hay una solución factible para obtener buenos resuktados mezclando. Mi duda está en si un tile al que cambias de prioridad, se le puede cambiar también de lugar al "cambiarlo de plano" (nótense las comillas).
magno escribió:Que va, no es así en absoluto. Si tú pones una tile 1BPP en un plano de 256 colores, te toca rellenar el resto de bits por píxel (los 7) de color 0 para que sean transparente.
La PPU de SNES sólo maneja tiles de 4 colores (2BPP), 16 colores (4BPP) y 256 colores(8BPP), y estos se pueden distribuir libremente dentro de cada BG según la tabla que linké más arriba.
Pero tú puedes usar tiles de 1BPP si quieres, pero luego en VRAM han de aparecer como 2BPP, 4BPP o 8BPP.
Algo muy típico que se suele hacer es trabajar con tiles de 1BPP en ROM o RAM y luego pasarlas a VRAM a tiles 2BPP dejando sin utilizar los otros 2 colores.
Lo que no se puede hacer nunca es mezclar en un BG son tiles de diferente profundidad de color: una vez está configurado la profundidad de color en un BG a través del modo, las tiles siempre ocupan lo mismo en VRAM.
magno escribió:Eso no es necesario. Creo que no entiendes bien cómo se crea la pantalla en estas consolas... Las tiles las tienes almacenadas en una zona de VRAM y luego las colocas como quieras en pantalla gracias al tilemap. Así, si tienes una tile en BG4 en la esquqina superior izquierda de pantalla, tienes las tiles físicamente por ejemplo en la dirección $0E78 de VRAM, y tú colocas esa tile en el centro de la pantalla siemplemente cambiando 1 byte, el que está en la posición central de pantalla en el tilemap.
El tilemap es como una rejilla, es como si dividieras la pantalla en 32x32 bloques de 8x8 píxeles cada uno; cada rejilla es una dirección de VRAM, donde se almacena una palabra de 16 bits.
Si quieres poner una tile en la esquina superior izquierda, tienes que escribir la dirección de VRAM (más exactamente, el TileNumber, que es una porción de la dirección de VRAM de x bits) en la posición 0 de la rejilla. Si quieres dibujar en el centro de pantalla esa misma tile, tendrás que escribir en la posición 32x16+16 de esa rejilla la misma dirección de VRAM que escribiste para dibujar la tile en la esquina superior izquierda. Es decir, la tile está en VRAM 1 vez, y en el tilemap aparece 1 vez por cada posición donde aparezca en pantalla.
Por eso no tienes necesidad de un tile buffer.
kusfo79 escribió:Después de mirar bastante la wiki (que al fin y al cabo, de la Super no he programado nada), he de decir que creo que lo que comentas no es cierto. El modo que tenga ese plano determina cuantos bytes ocupa cada tile en la VRAM. Por ejemplo, en el modo 1, los planos de 16 colores cogen 4 bytes por linea del tile, lo que hace que ocupen 32 bytes. Esos 32 bytes los tienes que setear en la VRAM sea como sea, aunque los tiles solo contengan dos colores. En los planos de 4 colores, necesitas 16 bytes para definir un tile, y tampoco te los puedes ahorrar de ninguna de las maneras. En los planos de 256 colores, usas un byte por pixel, como en el modo 13h VGA del msdos, con lo que cada tile ocupa 64 bytes. Luego existe el modo direct color, donde cada pixel está representado por un byte, y defines el color como BBGGGRRR (blue, green, red).
kusfo79 escribió:Otra cosa es que para hacer determinadas cosas, como por ejemplo guardar algo como la demo de Bad Apple, tu codifiques dicha información en la ROM comprimida, donde la podrías guardar por ejemplo en dos colores, y luego tu la descomprimas en la RAM. Esto tiene la desventaja de que necesitas tiempo de proceso para descomprimir, y al final, igualmente, tienes que enviar a la VRAM la misma cantidad de bytes.
kusfo79 escribió:En todo caso, la solución que parece que usaron en el "Another World" es simplemente dibujarlo todo en el BG1 a 16 colores, usando la VRAM como un framebufer.