Attribute clash en Spectrum

¿Tienes problemas con tu equipo?, preguntanos.

Moderador: Fundadores

Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

Re: RE: Re: RE: Re: Attribute clash en Spectrum

Mensaje por Tromponauta »

Quili escribió:Me quedo anonadado, con lo que habláis, por esta conversación quiero entender que se podría llegar a fabricar un dispositivo para corregir el attribute clash.
Hoy en día sigue siendo carísimo fabricar una ULA por eso todas las nuevas implementaciones se hacen en chips tipo FPGA, soluciones ya las hay como hemos comentado, modo radastaniano en el ZX-UNO y el del ZX Spectrum Next que dispone de la que seguramente sea la mejor de todas, básicamente consiste en superponer a la pantalla clásica del Spectrum otra con manejo de sprites por hardware y color en alta resolución, esto en hardware "Real" se traduciría en una Super ULA con su propia memoria RAM, etc. Lo bueno de las FPGA es que son un banco de pruebas excelente de desarrollo y quien sabe, lo mismo en pocos años es barato enviar esa especificación diseñada con FPGA y fabricar chips "reales", lo pongo todo entre comillas por que no quiero volver a avivar el anterior debate.
Enviado desde mi ZX-Spectrum :D
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

Re: RE: Re: Attribute clash en Spectrum

Mensaje por Tromponauta »

carmeloco escribió:Yo creo que todo lo contrario. La cosa apunta a que todo se fabrique con chips FPGA. Trabajo con proyectores de cine digital, y tanto el proyector como el procesador de sonido, llevan FPGA's dentro. Es la forma más fácil de hacer las actualizaciones de firmware.
Estoy de acuerdo, aquí viene el debate versatilidad FPGA frente a "Purismo Hardware" porque ¿que sentido tiene un hardware inamovible? Con el ZX-UNO y con el ZX Spectrum Next podemos disponer de nuevas funcionalidades o implementaciones a coste 0 simplemente actualizando el core. Quizás el único sentido de poder fabricar chips específicos a un precio razonable es disponer de repuestos, el caso de la ULA es bastante significativo y el objetivo es mantener en funcionamiento nuestros equipos de toda la vida y como mucho incorporar pequeñas mejoras como ULA+
Enviado desde mi ZX-Spectrum :D
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9971
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 122 times
Contactar:

Re: RE: Re: Attribute clash en Spectrum

Mensaje por flopping »

Tromponauta escribió:
carmeloco escribió:Yo creo que todo lo contrario. La cosa apunta a que todo se fabrique con chips FPGA. Trabajo con proyectores de cine digital, y tanto el proyector como el procesador de sonido, llevan FPGA's dentro. Es la forma más fácil de hacer las actualizaciones de firmware.
Estoy de acuerdo, aquí viene el debate versatilidad FPGA frente a "Purismo Hardware" porque ¿que sentido tiene un hardware inamovible? Con el ZX-UNO y con el ZX Spectrum Next podemos disponer de nuevas funcionalidades o implementaciones a coste 0 simplemente actualizando el core. Quizás el único sentido de poder fabricar chips específicos a un precio razonable es disponer de repuestos, el caso de la ULA es bastante significativo y el objetivo es mantener en funcionamiento nuestros equipos de toda la vida y como mucho incorporar pequeñas mejoras como ULA+
En efecto, no tiene mucho sentido fabricar chips tipo ULA o ASIC, etc....ya que si ya tenemos el chip implementado en FPGA, ¿que ganamos haciendolo fijo?, ademas no creo que a corto ni largo plazo sea rentable hacer chips, ya que para eso se deberian de vender unos cuantos miles y no creo que vaya a ser el caso y para tener repuestos, basta con programar varios chips y ya tienes los repuestos, el unico problema, que ya he comentado varias veces, es que los chips programables se quedan obsoletos y los van sustituyendo por versiones con mas capacidad, diferentes tipos de programacion, etc...el unico problema es que hay que transcribir y transferir esos comandos o instrucciones de un tipo de chip a otro, a veces es complicado y otras algo mas facil, pero bueno, por lo menos se va consiguiendo implementar maquinas antiguas en chips modernos, que no es poco.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

Re: RE: Re: RE: Re: Attribute clash en Spectrum

Mensaje por Tromponauta »

flopping escribió:No creo que a corto ni largo plazo sea rentable hacer chips, ya que para eso se deberian de vender unos cuantos miles y no creo que vaya a ser el caso y para tener repuestos, basta con programar varios chips y ya tienes los repuestos.
Estoy en general bastante deacuerdo con todo lo que se ha dicho, y es muy posible que esto ultimo que has dicho flopping sea así. Solo una matización y es que en el caso de que la tecnología de fabricación avanzase tanto como para poder fabricar chips específicos a bajo coste sin la necesidad de fabricar millones de unidades para hacerlo rentable si creo que habría demanda, yo desde luego preferiría pinchar en el zócalo de la ULA de un Spectrum un chip de toda la vida que alguno de los enjendros que he visto por ahí que además no resultan nada baratos. Eso si, hoy por hoy no hay solución mejor.
Enviado desde mi ZX-Spectrum :D
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9971
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 122 times
Contactar:

Re: RE: Re: RE: Re: Attribute clash en Spectrum

Mensaje por flopping »

Tromponauta escribió:
flopping escribió:No creo que a corto ni largo plazo sea rentable hacer chips, ya que para eso se deberian de vender unos cuantos miles y no creo que vaya a ser el caso y para tener repuestos, basta con programar varios chips y ya tienes los repuestos.
Estoy en general bastante deacuerdo con todo lo que se ha dicho, y es muy posible que esto ultimo que has dicho flopping sea así. Solo una matización y es que en el caso de que la tecnología de fabricación avanzase tanto como para poder fabricar chips específicos a bajo coste sin la necesidad de fabricar millones de unidades para hacerlo rentable si creo que habría demanda, yo desde luego preferiría pinchar en el zócalo de la ULA de un Spectrum un chip de toda la vida que alguno de los enjendros que he visto por ahí que además no resultan nada baratos. Eso si, hoy por hoy no hay solución mejor.
Una cosa es lo que a todos nos gustaria y todos deseamos y otra muy distinta es la cruda realidad. :~( :~( :~( :~(
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Avatar de Usuario
Tromponauta
Aspirante a demonio
Aspirante a demonio
Mensajes: 448
Registrado: 20 Sep 2016, 01:14
Ubicación: Moratalaz
Contactar:

Re: RE: Re: RE: Re: RE: Re: Attribute clash en Spectrum

Mensaje por Tromponauta »

flopping escribió: Una cosa es lo que a todos nos gustaria y todos deseamos y otra muy distinta es la cruda realidad. :~( :~( :~( :~(
Totalmente cierto :-)
Enviado desde mi ZX-Spectrum :D
Avatar de Usuario
dandare
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3718
Registrado: 09 Feb 2016, 15:09
Ubicación: I Register
Been thanked: 6 times

Re: Attribute clash en Spectrum

Mensaje por dandare »

Hola,
Le he estado dando una vuelta a eso de eliminar el atributte-clash por hardware y, la verdad, no lo veo nada claro. Quiero decir para que "automágicamente" lo corrija en los juegos antiguos.

Partiendo de la base que comenta Wilco, tenemos que trastear el interior del spectrum y/o hacer una tarjeta externa.
Esto es debido a que los colores se guardan en 0x300 bytes dentro del segmento de memoria 0x4000-0x7FFF, la RAM baja, que va conectada directamente a la ULA, que es el chip encargado de generar el video.

Imaginemos que podemos hacer esto, aunque adelantó que no es nada evidente. ¿Y ahora qué? De alguna manera tendríamos que devolver el color deseado para cada punto a la ULA, pero ¿Cuál es este color?

Usemos como ejemplo el 3 weeks in paradise en el modo sprite manda (hay también un modo en ese juego de "fondo manda" para colores)

Imagen

¿Cómo sé que tengo que dejar la planta del fondo de color magenta?
Para eso, a medida que el personaje entra en la planta, tendría que guardar un mapa previo de los atributos, un shadow. En cada modificación de pixel, ya con los nuevos atributos, tendría que decidir, pixel a pixel, si ya estaba antes o no y elegir el color entre los colores actuales y los shadow...
Pero, aún hay más. Cuando Wally pasa de la planta y la deja atras, por la espalda también tiene que ponerse morada la planta, y eso sí que son pixels nuevos también.

Como veis esto es un lío de cuidado y, además, estamos hablando de un juego en particular, por lo que las decisiones que tomemos no necesariamente serán las adecuadas para otros juegos, en los que los programadores habrán usado el paper/ink de forma diferente para hacer sus gráficos.

Por tanto, me atrevo a decir que cualquier intento de arreglar esto para SW existente acabará en fracaso, no sin una etapa previa de dolor y sufrimiento.

La posible solución a esta característica del spectrum pasa por determinados motores SW como el nirvana, o tarjetas gráficas adicionales como los sprites Hw del ZX-NeXT. En ambos casos, el juego tiene que estar preparado para usar estas funciones.
Imagen
Imagen
Avatar de Usuario
elfoscuro
Demonio segundo orden
Demonio segundo orden
Mensajes: 1825
Registrado: 01 Abr 2013, 22:00
Been thanked: 25 times

Re: Attribute clash en Spectrum

Mensaje por elfoscuro »

Yo pienso lo mismo... Si el juego no se reprograma, no aprovechará nada.

Porque si, por ejemplo, hicíeramos transparente el fondo (tipo sprite), el sistema fallaría en juego con personajes pintados usando el fondo. Aunque el interface que se creara tuviera RAM adicional (obligado si quieres píxeles independietes) el juego tendría que "saberlo", y peor... el Z80 debería poder manejarlo.

Imagino que podría con pantallas estáticas, pero no con el scroll... o tendríamos scroll de tortugas, a 4 fps. Si ya hay algunos juegos que con scroll monocromo no pasan de 10-15 fps, si tiene que manejar cada pixel por separado... no quiero ni pensarlo.

El color clash es consecuencia directa de la falta de RAM, pero también del procesador. C64 tenía un procesador sólo para eso, por lo que sólo adolecía de memoria (por eso los píxeles ladrillo). Spectrum no tenía nada, y CPC estaba pensado para trabajar, más incluso que Spectrum. El tema de los gráficos bonitos no era una prioridad.

Eso si... sabiendo esto, se pueden crear juegos nuevos muy potentes. Pero los viejos... Incluso aquel Spec256 que hubo, usaba "máscaras", trampas, para poder poner los juegos en 256 colores. Una máscara por juego.

Un saludo.
Fin de impresión
Avatar de Usuario
wilco2009 !Sinclair 1
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 8152
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 101 times

Re: Attribute clash en Spectrum

Mensaje por wilco2009 »

dandare escribió:Hola,
Le he estado dando una vuelta a eso de eliminar el atributte-clash por hardware y, la verdad, no lo veo nada claro. Quiero decir para que "automágicamente" lo corrija en los juegos antiguos.

Partiendo de la base que comenta Wilco, tenemos que trastear el interior del spectrum y/o hacer una tarjeta externa.
Esto es debido a que los colores se guardan en 0x300 bytes dentro del segmento de memoria 0x4000-0x7FFF, la RAM baja, que va conectada directamente a la ULA, que es el chip encargado de generar el video.

Imaginemos que podemos hacer esto, aunque adelantó que no es nada evidente. ¿Y ahora qué? De alguna manera tendríamos que devolver el color deseado para cada punto a la ULA, pero ¿Cuál es este color?

Usemos como ejemplo el 3 weeks in paradise en el modo sprite manda (hay también un modo en ese juego de "fondo manda" para colores)

Imagen

¿Cómo sé que tengo que dejar la planta del fondo de color magenta?
Para eso, a medida que el personaje entra en la planta, tendría que guardar un mapa previo de los atributos, un shadow. En cada modificación de pixel, ya con los nuevos atributos, tendría que decidir, pixel a pixel, si ya estaba antes o no y elegir el color entre los colores actuales y los shadow...
Pero, aún hay más. Cuando Wally pasa de la planta y la deja atras, por la espalda también tiene que ponerse morada la planta, y eso sí que son pixels nuevos también.

Como veis esto es un lío de cuidado y, además, estamos hablando de un juego en particular, por lo que las decisiones que tomemos no necesariamente serán las adecuadas para otros juegos, en los que los programadores habrán usado el paper/ink de forma diferente para hacer sus gráficos.

Por tanto, me atrevo a decir que cualquier intento de arreglar esto para SW existente acabará en fracaso, no sin una etapa previa de dolor y sufrimiento.

La posible solución a esta característica del spectrum pasa por determinados motores SW como el nirvana, o tarjetas gráficas adicionales como los sprites Hw del ZX-NeXT. En ambos casos, el juego tiene que estar preparado para usar estas funciones.
Ah no, yo hablaba de nuevo soft, no de arreglar el viejo. Eso seria virtualmente imposible, creo yo. A no ser que modifiques cada programa, claro.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.
Avatar de Usuario
flopping
Fundador
Fundador
Mensajes: 9971
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Been thanked: 122 times
Contactar:

Re: Attribute clash en Spectrum

Mensaje por flopping »

Como ya comente casi al principio de este hilo, ya hubo un intento de hacer un apaño por hardware, aqui lo podeis ver, tal como indica el creador en algunos juegos va mejor que en otros, incluso en el mismo juego, depende de la situacion va mejor o peor, asi que como bien estais comentando, es bastante dificil si no "imposible" eliminar el colour clash en los juegos antiguos sin reescribirlos o usar "tecnicas nuevas". :~( :~( :~(
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide.
(C) 1982-2024, 42 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Mi juego, que puedes descargar desde aqui
Responder

Volver a “Consultas”