Proposición de gráfica externa para ZX Spectrum

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor mcleod_ideafix » 01 Feb 2014, 11:48

Y.... digo yo... Si ya tenemos la ULAplus, que además está emulada en Specemu, ¿por qué no hacer un Misco Jones para la ULAplus, con soporte de hicolor? (atributos de 8x1). Sería una versión que no solamente se podría disfrutar fisicamente en RM2014, sino que además podría usarse en el ZX-Uno, y para los que no tienen ninguna de estas cosas, usarse en Specemu.

Y además ya está hecha :D No tengo que ponerme a hacer otra cosa. La salida de video de ULAplus ya tiene la información WSS embebida para que se vea correctamente en cualquier tele :)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor radastan » 01 Feb 2014, 12:23

Creo que esto y la ULAplus son cosas radicalmente distintas. Y la ventaja es tener un color por pixel, nada trivial.

De todas formas no deja de ser un experimento, si no te apetece o es mucho curro lo olvidamos.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor mcleod_ideafix » 01 Feb 2014, 13:58

Ok. Para este experimento... ¿podrías proporcionarme una pantalla, a modo de "moco", para poner en la VRAM para ir haciendo pruebas? Me basta con un fichero PNG, BMP o GIF, de la resolución que se va a usar (256x128), y que el fichero contenga la paleta que pretendes usar (16 colores). The he puesto PNG, BMP o GIF porque estos tres formatos admiten imágenes paletizadas. Recuerda que cada entrada de la paleta tiene 3 bits de verde, 3 de rojo y 2 de azul. Como en los ficheros trabajas con 8 bits de color por cada color primario, escoge tus colores de la siguiente forma:

Componente de color original (3 bits, usado en verde y rojo)
C2 C1 C0
Componente de color usado en la paleta BMP, PNG o GIF (8 bits)
C2 C1 C0 C2 C1 C0 C2 C1

Para el azul (2 bits)
C1 C0
Haz esto otro para elegir tu componente:
C1 C0 C1 C0 C1 C0 C1 C0

De esta forma, lo que se obtenga en pantalla será igual que lo que tú has diseñado.

-- Actualizado 01 Feb 2014, 14:11 --

¡Ah! Y un sprite de 16x16, con la misma paleta que uses en el moco, pero teniendo en cuenta que en este sprite, el color de índice 0 significa "transparente".
Gracias :)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor radastan » 01 Feb 2014, 14:31

Oido cocina, te lo preparo para el Lunes, tanto en 256x128 como 128x96
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
commodoro
Amiga 1200
Amiga 1200
Mensajes: 1280
Registrado: 17 Abr 2010, 17:32

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor commodoro » 02 Feb 2014, 13:14

Y por que no añadir un 256x192 sin colour clash es decir 4:3
Y un 192x XXX o aproximado para 16:9 , tambien sin colour clash.

Es decir el spectrum de siempre pero sin el puñetero colour clash. Asi los nuevos juegos serian lo que tendria que haber sido el speccy.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor mcleod_ideafix » 02 Feb 2014, 14:12

commodoro escribió:Y por que no añadir un 256x192 sin colour clash es decir 4:3
Y un 192x XXX o aproximado para 16:9 , tambien sin colour clash.

Es decir el spectrum de siempre pero sin el puñetero colour clash. Asi los nuevos juegos serian lo que tendria que haber sido el speccy.


Porque no te quedaría memoria para los juegos :D

256x192 sin colour clash significa usar al menos 2 bits por color para tener "algo" de color (4 colores, por ejemplo)

256x192x2=12288 bytes: asumible, pero 4 colores

8 colores serían 3 bits. Lo malo de esto es que como el Z80 no se maneja muy bien con trozos de bits, un modo a 3 bits de color empaquetado resultaría muy lento para implementar juegos.
Así que habría que usar al menos 4 bits de color, para tener 16 colores por pixel. Eso está estupendo pero...

256x192x4/8 = 24576, que es > 16384. No podría implementarse de forma interna en un Spectrum físico por esta limitación, y aunque sí se podría implementar como interfaz externo, 24576 bytes de VRAM significa que te quedan solamente otros 24576 para el código, datos y pila. Habida cuenta de que ahora los gráficos y sprites pesarían más precisamente porque se necesitan 4 bits para definir un pixel en lugar de 1, probablemente habría que decidir entre tener decorados y gráficos vistosos, pero un gameplay reducido (matamarcianos, comecocos, cosas así), o bien ser parco con los gráficos para tener más espacio para sprites y lógica del juego (con lo que no estaríamos aprovechando las nuevas posibilidades de color)

256x128x4/8 = 16384, que no es un mal compromiso: tienes una resolución aceptable, te quedan 32768 bytes para el resto del juego, y en un momento dado podría implementarse dentro de una ULA en un Spectrum físico, ya que no se pasa de 16K

Por supuesto hablo de un Spectrum 48K. Un Spectrum 128K no tiene tantas limitaciones en este sentido, y de hecho existen clones rusos de Spectrum con 16 colores por pixel sin colour clash, usando 4 bitplanes (dos en la página 5, y otros dos en la página 7). El Sam Coupé de hecho implementa un modo idéntico, para tener 16 colores por pixel sin colour clash. Lo malo de la forma en la que lo hacen el Sam y los clones rusos es que los bitplanes requieren más tiempo de CPU para dibujar sprites, por lo que no puedes poner tantos en pantalla como quisieras, si quieres evitar parpadeo.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
na_th_an
Amiga 1200
Amiga 1200
Mensajes: 1273
Registrado: 10 Oct 2012, 11:17
Sistema Favorito: (Otro)
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Sega Master System
Gracias dadas: 18 veces
Gracias recibidas: 15 veces

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor na_th_an » 02 Feb 2014, 17:20

Sin contar con que los ZX Evo (y probablemente ATM Turbo, no lo puedo asegurar), que son los que implementan los modos de un color por pixel en 16 colores, funcionan a 14Mhz para poder mover algo. Hay que mover cuatro veces más datos que en un Spectrum normal, por lo que la CPU va cuatro veces más rápida.

Avatar de Usuario
commodoro
Amiga 1200
Amiga 1200
Mensajes: 1280
Registrado: 17 Abr 2010, 17:32

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor commodoro » 02 Feb 2014, 17:57

Gracias Mcleod.

¿Y la posiblidad de construir esta tarjeta para un 128 añadiendole un procesador que se encargue de gestionar los graficos?,
¿Es viable esto?

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor mcleod_ideafix » 03 Feb 2014, 01:26

commodoro escribió:Gracias Mcleod.

¿Y la posiblidad de construir esta tarjeta para un 128 añadiendole un procesador que se encargue de gestionar los graficos?,
¿Es viable esto?


Viable técnicamente es. Otra cosa es que encuentres a alguien que quiera hacerla :D

Si toda la preocupación para gestionar gráficos es poder mover sprites por la pantalla, simplemente añade a tu tarjeta la capacidad de sprites hardware. Mucho más sencillo que integrar todo un procesador, con su memoria de trabajo, para que funcione independientemente de la CPU principal (y los juegos serían más complicados de hacer).

Ahora bien, si te hace mucha ilusión eso, espera a la ULAplus para +2A/+3, que probablemente tenga algo como lo que pides.

Eso sí, no esperes de pie ;)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Proposición de gráfica externa para ZX Spectrum

Mensajepor radastan » 03 Feb 2014, 11:40

mcleod_ideafix escribió:Como en los ficheros trabajas con 8 bits de color por cada color primario, escoge tus colores de la siguiente forma


Vale, te paso una paleta que creo es bastante completa y tiene 16 colores, es la del Zx Spectrum pero con algunos colores cambiados:

paleta_experimento.png
paleta_experimento.png (301 Bytes) Visto 6236 veces


Pasa esa paleta a una que sea real, es decir la equivalente a la que saldría en implementación, y te paso un moco sobre ella. Soy consciente que algunos colores van a cambiar ligeramente, pero el de color carne y el marrón son los que me gustaría más que fuesen lo más parecidos a dichos colores.

Aquí los tiles usando esa paleta:

work.png
work.png (1.24 KiB) Visto 6220 veces


Y los sprites:

sprites.png
sprites.png (1.42 KiB) Visto 6215 veces


Un moco con los tiles sería:

test.png
test.png (3.25 KiB) Visto 6215 veces


Evidentemente se puede hacer mucho mejor, entre otras cosas quitar ese fondo negro, pero para un test rápido te vale.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 17 invitados