Página 1 de 9

Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Mar Ene 13, 2009 8:35 pm
por Rafa
Hola. Mirando la rutina de color en alta resolución publicada en Microhobby y viendo las limitaciones de esa rutina, porque los colores a emplear no eran de libre elección, trasteando he conseguido la impresión simultánea de hasta 6 colores distintos en un mismo carácter.

De momento sólo lo he conseguido en 2X2 caracteres, por lo que os pondré los dientes largos hasta que esté mejorada al máximo, con el máximo posible de filas/columnas, y que sobre tiempo para hacer otras cosas.

La manera que he usado es dividir el carácter en cuadrículas 4X4. Después mezclo primero dos colores(tinta y papel) con otros dos distintos. El ojo humano hace el resto. Con esto se consiguen 4 colores más 2 debido al brillo, total 6 colores SIMULTÁNEAMENTE.

Es un viejo objetivo, una espinita clavada en mi corazoncito spectrumero.

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Mar Ene 13, 2009 8:55 pm
por marce
Genial! Se puede ver, aunque sean esos 2x2 caracteres?

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Mar Ene 13, 2009 9:07 pm
por sromero
Imagen

X-D

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Mar Ene 13, 2009 9:14 pm
por Rafa
Paciencia!!! Hay que probarlo en un Speccy normal.

Marce en la rutina de Microhobby no merecía la pena hacer nada, porque los colores a usar tenían que ser los mismos en cada mitad de la pantalla, y sólo eran 4 (incluidos flash y brillo) Lo bueno de esa rutina eran las 28 columnas que se conseguían.

El método sí me ha servido: pokear los atributos PUSHeando en el archivo de atributos. RAPIDÍSIMO.

El metodo que he seguido es éste:

t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4
t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4
t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4
t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4
t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4
t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4
t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4
t1t1t1t1p2p2p2p2 t3t3t3t3p4p4p4p4

t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8
t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8
t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8
t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8
t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8
t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8
t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8
t5t5t5t5p6p6p6p6 t7t7t7t7p8p8p8p8

Y a eso hay que sumarle que cada cuadrícula de 4X4 puede tener activado el brillo o no. Un color con brillo es diferente que el mismo color sin brillo.

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Mar Ene 13, 2009 9:18 pm
por Rafa
NO! Que lo he escrito mal! Es así

t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Vie Ene 16, 2009 6:08 pm
por Rafa
Es que no tengo tiempo, pero para muestra un botón, aunque en Basic, que es lentísimo para esto. En Basic consigo tres colores en un mismo carácter. Tal que así

5 PRINT AT 0,0;"M"
10 POKE 22528,15: POKE 22528,121: POKE 22528,15:POKE 22528,121: GOTO 10

Si tenéis paciencia se ve. Además no sé por qué, si pulsais y soltáis una tecla se muestran los tres colores más rápidamente.

El procedimiento es el mismo para más caracteres y más colores, en C/M, pero como es mucho más rapido, el efecto es aún mayor. Y si ponéis un gráfico predefinido en la línea 5 en lugar de la M, se ve aún más.

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Vie Ene 16, 2009 6:44 pm
por Gandulf
?¿

Eso que pones en Basic es pokear el mismo atributo con tres valores diferentes, lo cual sin sincronizar con el barrido vertical ni control de sincronismo no hace nada.

Si te refieres a que la técnica del multicolor es meter el mismo atributo de color varias veces en el mismo sitio, pues sí, esa es la técnica, lo complejo es sincronizar con el barrido de forma que siempre coincidan en el mismo sitio los cambios de color, y que en un caracter podamos ver varios colores diferentes. Esto puede ser basante sencillo o realmente complejo en función del tamaño de la zona o si quieres mover los colores (más que complejo, coger la calculadora y hacer un estudio intesivo de tiempos).

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Vie Ene 16, 2009 7:15 pm
por mcleod_ideafix
Ahh! He estado probando cosas por el estilo. He llegado a esto:
Imagen

Es decir, los 15 colores disponibles en el Spectrum, todos en un mismo carácter. El carácter que hay en (0,0) es uno de los gráficos predefinidos, concretamente, el de la tecla 5 (mitad izquierda paper, mitad derecha tinta)
Con un zoom se ve mejor... :)
Imagen

El programilla, para quien quiera verlo en un Spectrum real o emulado (48K), se puede descargar desde aquí.

Aunque ahora que lo pienso... tampoco es que tenga mucho mérito... con el modo de atributos de 8x1 que hay publicado por ahí se puede conseguir esto mismo ;)

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Sab Ene 17, 2009 5:26 am
por Gandulf
Pues queda chulo. Baila un poco, al menos en el emulador, pero es un buen ejemplo!

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Sab Ene 17, 2009 10:31 am
por radastan
La pega es que en videojuegos es poco práctico, ya que se come muchos recursos.

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Dom Ene 18, 2009 3:29 am
por mcleod_ideafix
Ya te digo si come recursos! Lo que daría por la interrupción de retrazo horizontal del SAM! (esa máquina nunca dejará de sorprenderme).
Bueno, a todo esto. Esto es a lo más que puedo llegar. No tengo imaginación para adivinar cómo optimizarlo más de lo que ya lo está.

Imagen
Es un área de 14 columnas, que ocupa el centro de la pantalla, y se extiende de la primera a la última línea. Es decir, un área de atributos de 14*192 posiciones. Dado que cada posición de atributo contiene tinta y papel, tenemos (y es lo que se ve en el dibujo) el equivalente a un área de 28*192 píxeles con color en alta resolución. En esta demo, los colores son aleatorios, sacados de las primeras posiciones de la ROM.

Se puede tener más tiempo para el usuario a costa de reducir la altura de este bloque.

He intentado convertir alguna foto con el BMP2SCR, pero no encuentro ningún modo en el que los atributos sean de tipo 8x1, así que, bueno, he optado por usar otro método, con el que parto de una imagen de 28x192 píxeles. Se pueden dibujar cosas mucho más detalladas (quien sepa hacerlo, claro), pero bueno, allá va mi aportación a esto de los colores en alta resolución:

Imagen

Y el programa que lo genera (sólo para ZX 48K). No es perfecto (de vez en cuando temblequea el atributo de arriba a la derecha), pero la verdad es que yo también quería sacarme esa espinita de ver si podía hacer algo como aquella rutina de color en alta resolución que me dejó clavado en la silla después de teclearla con el CUCM y ver con mis propios ojos lo que hasta entonces para mi era imposible... :)

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Dom Ene 18, 2009 10:17 am
por radastan
Hombre, del todo inútil no es... se puede hacer un menú de opciones en el que el logo del juego tenga más resolución de color, un Game Over más molón, los mensajes entre nivel, etc. Cosas fijas, que estén en sitios concretos y sin movimiento. Son detallitos, pero se agradecen.

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Dom Ene 18, 2009 12:57 pm
por na_th_an
mcleod_ideafix escribió:He intentado convertir alguna foto con el BMP2SCR, pero no encuentro ningún modo en el que los atributos sean de tipo 8x1, así que, bueno, he optado por usar otro método, con el que parto de una imagen de 28x192 píxeles. Se pueden dibujar cosas mucho más detalladas (quien sepa hacerlo, claro), pero bueno, allá va mi aportación a esto de los colores en alta resolución:

Imagen

Y el programa que lo genera (sólo para ZX 48K). No es perfecto (de vez en cuando temblequea el atributo de arriba a la derecha), pero la verdad es que yo también quería sacarme esa espinita de ver si podía hacer algo como aquella rutina de color en alta resolución que me dejó clavado en la silla después de teclearla con el CUCM y ver con mis propios ojos lo que hasta entonces para mi era imposible... :)


¿Con "Más detallado" te refieres a que se puede usar cualquier bitmap en la zona de bitmap (no sólo 00001111)? Si es así, podrías usar algún programa de diseño para MSX1. ¿Qué formato tienen los datos en memoria?

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Dom Ene 18, 2009 3:35 pm
por WYZ
Alucinante!

Como dice Nath, lo mas fácil sería un conversor MSX (BMP2MSX por ejemplo), y habría que hacer una tabla de conversión de colores, tomando como base una bmp de 28x192 ampliado (*4 en X). Nada complicado.

Se me ocurre también una vuelta de tuerca mas. Combinar dos imágenes para simular otra paleta de colores mas amplia. (No se si le llamáis gigascreen ?)

Supongo que se podría alcanzar mejor detalle gráfico si en vez de llenar la tabla grafica $4000-$5800 con el dato $0f e le pusiera una máscara al estilo MSX.

Tiene muchas posibilidades esto... ;D

Re: Seis colores por carácter. ¡ CONSEGUIDO !

Publicado: Dom Ene 18, 2009 3:41 pm
por marce
Alucinante, mcleod_ideafix!!!!

Lo de editar la zona bitmap con un programa de MSX1 es una buena idea en principio, porque el modo de pantalla se parece, pero no creo que el formato tenga mucho que ver.

No creo que sea muy dificil hacer un editor. Nadie se anima? No sé si mi hermano podría hacer uno en Java si le decís como es el formato.

Tengo un montón de ganas de ver como quedaría una pantalla a "alta resolución" de verdad y no en bloques de 8x1.