¿Más de dos colores por bloque en screen 2?

Страница 1/2
| 2

By assembler

Champion (404)

Аватар пользователя assembler

21-10-2010, 20:31

Lo más seguro que sea una tontería, pero desde chiquinino me lo he planteado.

¿Habría alguna forma de, en screen 2, "crear" un modo de pantalla que con una resolución menor (según mis cálculos 105*78) permitiera mostrar cada pixel de un color cacharreando con el VDP?

El VDP es capaz de escribir más de dos colores en un mismo bloque de 8x1 (usando sprites), pero al contar solo con 16KB, la única distribucion posible manteniendo la resolución de 256*192 es la de dos colores por bloque.

Si se pudiera conseguir, sería solo para mostrar imágenes estáticas y sin sprites.

¿Es una tontería demasiado tonta como para plantearselo?

Для того, чтобы оставить комментарий, необходимо регистрация или !login

By anonymous

incognito ergo sum (116)

Аватар пользователя anonymous

22-10-2010, 08:54

No.

No hay ninguna forma de superar la limitación de 2 colores por bloque de 8x1 salvo usando sprites y ahí entran las limitaciones adicionales de los sprites. Usando tiles tenemos 2 colores por bloque de 8x1. Añadiendo sprites tendríamos hasta 4 colores más. Total 6 colores en ESE bloque de 8x1, pero no podríamos usar más sprites en esa línea, con lo que el resto de la línea se limitaría a 2 colores por bloque.

By pitpan

Prophet (3145)

Аватар пользователя pitpan

24-10-2010, 20:43

Efectivamente, no se puede romper esa limitación de 2 colores por cada 8x1 píxeles. En cualquier caso, me encantaría que me explicaras cómo llegaste al resultado de calcular incluso una nueva definición en la que se pudiera hacer algo así.

Además de la técnica de sprites que te ha comentado Sap, hay otra forma para simular que hay más de dos colores, pero no es muy cómoda para la vista y consiste en entrelazar dos imágenes: en un fotograma muestras unos colores y en el siguiente, otros, consiguiendo así algo parecido a 4 colores en cada bloque de 8x1 píxeles, pero serán colores "mezclados" y, además, habrá un importante parpadeo de imágenes. Puedes ver este tipo de efectos en demos de JoyRex & Dvik o de Lieves!Tuore y semejantes. O incluso en juegos, como el Sudoku de Dvik y Joyrex en MSXdev.

Lo mejor es tener en cuenta la limitación desde el momento cero y diseñar los gráficos y el juego de forma que saquen el máximo de partido a las capacidades gráficas del ordenador.

By assembler

Champion (404)

Аватар пользователя assembler

24-10-2010, 23:30

Calculandolo ahora, creo que estaría mal esa resolución.

La idea sería pintar dos puntos por byte (16 colores cada punto), aprovechando la VRAM disponible, 200x150 pixeles serían 30.000 puntos, como cada dos puntos es un byte, esa pantalla ocuparía 15.000 bytes.

La única forma con la que entiendo que se podría hacer algo así es si se pudiera modificar el funcionamiento del VDP tocando los registros, algo así como se hacía (hace?) con el MODO X en PC, que conseguía un modo gráfico más decente que el modo de 320x200 con 256 colores, aunque era un poco más complejo trabajar con él.

De todas formas no creo que sea posible. Supongo que lo único que se le puede decir al VDP es QUÉ hacer, no COMO hacerlo.

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

25-10-2010, 10:18

Quote:
Efectivamente, no se puede romper esa limitación de 2 colores por cada 8x1 píxeles. En cualquier caso, me encantaría que me explicaras cómo llegaste al resultado de calcular incluso una nueva definición en la que se pudiera hacer algo así.

Además de la técnica de sprites que te ha comentado Sap, hay otra forma para simular que hay más de dos colores, pero no es muy cómoda para la vista y consiste en entrelazar dos imágenes: en un fotograma muestras unos colores y en el siguiente, otros, consiguiendo así algo parecido a 4 colores

(el resultado serian 3 colores)

en cada bloque de 8x1 píxeles, pero serán colores "mezclados" y, además, habrá un importante parpadeo de imágenes. Puedes ver este tipo de efectos en demos de JoyRex & Dvik o de Lieves!Tuore y semejantes. O incluso en juegos, como el Sudoku de Dvik y Joyrex en MSXdev.

Descarga el juego Menace de la msxdev 2009, veras como usa entrelazado todo el tiempo para poner mas colores en un msx1, yo cuando hice los graficos descubri que era mejor conbinar colores mas parecidos, para que no parpadee demasiado, por ejemplo, si mezclamos el rojo oscuro con el rojo medio obtenemos un rojo que no parpadea mucho, si en cambio intercambiamos este rojo oscuro con un blanco, pues nos parpadeara bastante, aun asi, fijate porque con un sprite y 2 frames, obtenemos 2 colores en un sprite. Con 2 sprites obtenemos 4 colores porque mezclamos con el fondo tambien.

Aqui un ejemplo, las imagenes que he usado para la intro y final de Menace (spoiler spoiler) sin usar sprites en ellas.

img245.imageshack.us/img245/6110/mezcladetodo3x.png
By tonigalvez at 2010-10-25

Fijate como hay color marron, mezclando rojo con verde.

Tambien para que parpadee poco usa mezcla de tramas, un frame son los pares y otro los alternativos, o tambien puedes entrelazar con lineas, para que la zona que cambie sea siempre pequeña, nunca intercambies zonas grandes de color plano puesto que parpadeara mas y sera mas molesto.

El programa que he usado es el Promotion, de PC, que es como el DeLuxe Paint del Amiga, hago 2 fotogramas de animacion, pero la pantalla en el segundo fotograma y comienzo a modificar, luego dandole al numero 2 se anima y puedo ver como queda entrelazado.

Espero haberte ayudado con este ejemplo.

By assembler

Champion (404)

Аватар пользователя assembler

25-10-2010, 21:34

La verdad es que queda muy bien. Un poco de fliqueo, pero para mi opinión, compensa, al menos para las presentaciones.
Lo he probado en un emulador. ¿En un ordenador con una TV de tubo se nota menos el parpadeo?
Para dibujarlo como lo haces, ¿usas dos sets completos de caracteres o uno solo y usas mitad y mitad para cada "frame"?
¿Y a la hora de activar cada uno?

Espero no estar preguntando mucho, no se si es un secreto de familia Big smile

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

26-10-2010, 15:02

Hola de nuevo Assembler, voy a ver si te lo explico bien,

El programa que uso es el Promotion de PC, con el hago un grafico con paleta de msx1 y respetando las limitaciones de color que tiene Screen2, activando la rejilla, luego le doy a un boton que sirve para añadir otro fotograma, en el segundo fotograma realizo los cambios para que al animarlo con la tecla numero 2, podamos ver como entrelaza, aunque no se ve tan bien como en un msx de verdad nos ayuda, el caso es que si no tienes un programa que te permita animacion te costara mucho mas hacer un grafico en entrelazado, el programa es este:

img42.imageshack.us/img42/9431/promotion.png
By tonigalvez at 2010-10-26

Aqui te puedo enseñar como mezclo los colores por franjas, la gama de colores se dispara hasta tener mas de 100 colores en un MSX1:

img169.imageshack.us/img169/582/sc2int01.png
By tonigalvez at 2010-10-26
+
img547.imageshack.us/img547/5854/sc2int02.png
By tonigalvez at 2010-10-26
resultando
img5.imageshack.us/img5/6964/sc2mix.png
By tonigalvez at 2010-10-26

img841.imageshack.us/img841/996/ending2frames.png
By tonigalvez at 2010-10-26
Resultando
img830.imageshack.us/img830/2981/endindblueversionmixed.png
By tonigalvez at 2010-10-26

img713.imageshack.us/img713/5206/logo01h.png
By tonigalvez at 2010-10-26
+
img841.imageshack.us/img841/269/logo02o.png
By tonigalvez at 2010-10-26
Resultando
img408.imageshack.us/img408/2245/logomix.png
By tonigalvez at 2010-10-26

img688.imageshack.us/img688/2724/intro03.png
By tonigalvez at 2010-10-26
Resultando
img245.imageshack.us/img245/6110/mezcladetodo3x.png
By tonigalvez at 2010-10-25

Todo usando solo la paleta de MSX1, como ves usando entrelazado obtenemos 3 colores por cada linea de 8x1, ademas de mas gama de colores, mientras la zona que cambia sea pequeña, no hay tanto parpadeo como en la demo que hay por ahi con graficos entrelazados, porque la demo tiene grandes zonas de color plano que cambian, eso hace que sea mucho mas molesto. Podemos intercambiar los colores entre lineas horizontales o tramas.

Uso un set de 256x64, que como el msx tiene 3 grupos, pues uso solo el primero, en 256x64 meto dos pantallas de 128x64, una al lado de la otra, una vez acabado el grafico hay que pasarlo por el BMP2MSX y sacar el fichero de sc2, que es el que el programador necesita.

Usa siempre solores de gama similar, nunca un color blanco con un color azul oscuro, porque se notara mas el parpadeo.

Aqui os pongo los Sprites del Menace, que usan entrelazado para sacar mas colores, y hasta se puede hacer efecto de semitransparencia(lo solian usar mucho en la Sega Megadrive)
img24.imageshack.us/img24/6510/spritesf.png
By tonigalvez at 2010-10-26

Bueno, pues despues de esto, espero puedas aprobechar esto y hacer unas bonitas pantallas.

Si quiere preguntarme algo mas, no tendre problema en explicarte.

Te mando saludos.

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

26-10-2010, 23:02

Otra cosa que hice fue coger pantallas de screen5 y convertirlas a la paleta que da la mezcla de colores, la verdad que no quedan mal, salvando que luego habria que retocarlas por las limitaciones, no quedan nada mal.

By anonymous

incognito ergo sum (116)

Аватар пользователя anonymous

27-10-2010, 00:20

Esa técnica puede dar resultados sorprendentes, pero a mí el parpadeo me hace bastante daño a la vista Eek! Eek!

No obstante me gustaría hacer un experimento con esta técnica, pero en MSX2. ¿Te animas paulbrk?

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

27-10-2010, 01:27

Lo voy a hacer, dame tiempo Hannibal

By Paulbrk

Hero (611)

Аватар пользователя Paulbrk

31-10-2010, 20:05

Hola, mientras hago algun grafico, os comento lo que me ha ido rondando por la cabeza.

En msx2, tenemos una paleta de 512 colores de la cual escogemos los 16 colores que vamos a usar, no?

Si pudieramos hacer una pantalla de al menos 128x64 de alto, pero cambiando la paleta de 16 colores por cada linea horizontalmente, ademas del entrelazado obtenemos muchas mas posibilidades de color, si multiplicamos 512x512 colores, obtenemos una gama de 262.144 colores, lo que no se si el VDP del msx2 da para cambiar la paleta de cada linea aunque sea en una zona de un cuarto de pantalla o menos.

Otra cosa que se puede provar es a hacer dos pantallas de screen 8 y entrelazarlas, a ver como quedaria, en este caso es mas facil, porque no hay que cambiar la paleta por cada linea, el numero de colores que podemos obtener tambien es importante, 256x256= 65.536 colores.

Es mas facil entrelazar dos imagenes de 16 colores o dos imagenes de 256, sin mas complicaciones. Otra cosa seria desarrollar un conversor para la tecnica del entrelazado con el cambio de paleta.

Mas adelante tendreis ejemplos.

Страница 1/2
| 2