Seis colores por carácter. ¡ CONSEGUIDO !

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Seis colores por carácter. ¡ CONSEGUIDO !

Notapor Rafa el Mar Ene 13, 2009 9:35 pm

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.
RANDOMIZE USR 0
Avatar de Usuario
Rafa
Jack The Nipper
 
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

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

Notapor marce el Mar Ene 13, 2009 9:55 pm

Genial! Se puede ver, aunque sean esos 2x2 caracteres?
Avatar de Usuario
marce
Herbert
 
Mensajes: 79
Registrado: Lun Jun 11, 2007 8:05 pm
Ubicación: Mallorca

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

Notapor sromero el Mar Ene 13, 2009 10:07 pm

Imagen

X-D
NoP / Compiler
Avatar de Usuario
sromero
Nonamed
 
Mensajes: 1221
Registrado: Mar Abr 17, 2007 12:35 pm
Ubicación: Valencia

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

Notapor Rafa el Mar Ene 13, 2009 10:14 pm

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.
RANDOMIZE USR 0
Avatar de Usuario
Rafa
Jack The Nipper
 
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

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

Notapor Rafa el Mar Ene 13, 2009 10:18 pm

NO! Que lo he escrito mal! Es así

t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t1t1p2p2t1t1p2p2 t3t3p4p4t3t3p4p4
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8
t5t5p6p6t5t5p6p6 t7t7p8p8t7t7p8p8
RANDOMIZE USR 0
Avatar de Usuario
Rafa
Jack The Nipper
 
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

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

Notapor Rafa el Vie Ene 16, 2009 7:08 pm

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.
RANDOMIZE USR 0
Avatar de Usuario
Rafa
Jack The Nipper
 
Mensajes: 181
Registrado: Lun May 07, 2007 11:59 am

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

Notapor Gandulf el Vie Ene 16, 2009 7:44 pm

?¿

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).
Un saludo,

Gandulf
Gandulf
Nonamed
 
Mensajes: 1067
Registrado: Lun May 07, 2007 10:06 pm

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

Notapor mcleod_ideafix el Vie Ene 16, 2009 8:15 pm

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 ;)
Web: ZX Projects | Twitter: @zxprojects
Avatar de Usuario
mcleod_ideafix
Johnny Jones
 
Mensajes: 3962
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera

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

Notapor Gandulf el Sab Ene 17, 2009 6:26 am

Pues queda chulo. Baila un poco, al menos en el emulador, pero es un buen ejemplo!
Un saludo,

Gandulf
Gandulf
Nonamed
 
Mensajes: 1067
Registrado: Lun May 07, 2007 10:06 pm

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

Notapor radastan el Sab Ene 17, 2009 11:31 am

La pega es que en videojuegos es poco práctico, ya que se come muchos recursos.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Avatar de Usuario
radastan
Phantomas
 
Mensajes: 2117
Registrado: Lun May 07, 2007 5:34 pm

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

Notapor mcleod_ideafix el Dom Ene 18, 2009 4:29 am

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... :)
Web: ZX Projects | Twitter: @zxprojects
Avatar de Usuario
mcleod_ideafix
Johnny Jones
 
Mensajes: 3962
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera

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

Notapor radastan el Dom Ene 18, 2009 11:17 am

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.
_________________________________________
Hay otras páginas.... pero no son Bytemaniacos
http://www.bytemaniacos.com
Orgullo de 8 bits
_________________________________________
Avatar de Usuario
radastan
Phantomas
 
Mensajes: 2117
Registrado: Lun May 07, 2007 5:34 pm

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

Notapor na_th_an el Dom Ene 18, 2009 1:57 pm

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?
Avatar de Usuario
na_th_an
Nonamed
 
Mensajes: 1889
Registrado: Lun May 07, 2007 10:16 am
Ubicación: Andalucía

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

Notapor WYZ el Dom Ene 18, 2009 4:35 pm

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
Ultima edición por WYZ el Dom Ene 18, 2009 6:09 pm, editado 2 veces en total
Avatar de Usuario
WYZ
rst 0
 
Mensajes: 20
Registrado: Jue Sep 13, 2007 8:41 pm

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

Notapor marce el Dom Ene 18, 2009 4:41 pm

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.
Avatar de Usuario
marce
Herbert
 
Mensajes: 79
Registrado: Lun Jun 11, 2007 8:05 pm
Ubicación: Mallorca

Siguiente

Volver a Programación y nuevos desarrollos

¿Quién está conectado?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 1 invitado