marce escribió:Z80user escribió:Marce: Podrias hacer que el editor grafico generase ficheros con resolucion de pantalla completa, es decir 256*384 (el doble de resolucion vertical)
La formula para obtener las pantallas en screen$ seria tomar las lineas pares para una y las impares para la segunda pantalla.
Con los atributos no me he enterado muy bien como estan, pero creo que en formato crudo segun se direcciona, con las mismas restricciones que el screen$ estaria bien.
Como era de suponer, los rusos se nos han adelantado con el sistema que dices. El editor se llama multiArtist y te lo puedes bajar de aquí:
http://speccy-live.untergrund.net/?p=1993 El propio co-autor me ha aclarado como se cargan las pantallas en el Spectrum aquí:
http://zx.pk.ru/showthread.php?t=13150
no es el sistema al que me referia esactamente, y es usable a medias, tendria que descartar el 75% de la informacion generada apartir de 2 pantallas, para obtener lo que querria.
Era usar las dos pantallas de que disponen los modelos de 128K para intercambiar la pantalla, pero en modo de aumento de resolucion, no para superponer colores, dado que el barrido de la pantalla no es siempre identido, hay un numero de lineas que en los televisores se refrescan de una o utra forma, segun el tipo, y era diseñar algo, parecido que retocase los 768 bytes, tal cual hacen, pero con la restriccion de solo 3 colores por cada 8*8, mas que nada para poder pintar un par de lineas diagonales y que en el centro de la pantalla no cambien de color. pero con el color del papel identico, o ampliado, pero como daria lugar a un mayor parpadeo, bastante molento supongo, no hacerlo tan bruscamente (teniendo que poner el tipico mensaje para los epilepticos)
La idea es esa, poner una rejilla de 8x8 superpuesta a otra de 8x8, para dar lugar a una de 8x16, en la que se mantengan las restricciones de color-crash del spectrum, y que en un programa de dibujo estubiesen intercaladas dichas lineas. y pensando en 16 colores, no en los que pueden implementar los rusos con el programa ese.
La razon principal es que si hay algo asi, se pueden diseñar pantallas que tengan el susodicho parpadeo, pero que puedan tener hasta 3 colores, (explicacion al final) en cada bloque, y asi poder dibujar un juego con amarillo, rojo y fondo negro. o poder pintar estrellas juntas blancas y grises con fondo negro en el cielo, con un consumo minimo por parte de la CPU, solo indicar el cambio de pantalla, en cada interupcion.
3 colores a elegir, 1 papel y 2 tintas, o 2 papeles y 1 tinta, el multicolor como en los rusos no, porque seria el color del papel como base de un bloque de 8x8.
Otro ejemplo de uso seria, que Phantomas, pudiese caminar sobre hierva verde, sin que la hierva se colorease de blanco, o Phantomas de verde, o que un fantasma pudiese atravesar una pared, sin colorear
Una utilidad para esto, es que una vez pintado el fondo, la pantalla y demas, no nos tenemso que preocupar de dañar zonas de la pantalla, nos ahorramos dibujar con mascara en algunos casos, aunque esto tiene el problema de que el pintar se joden objetos entre si, pero si hay una rutina de deteccion de choques, nos podemos basar en ella para detectar si estamos invadiendo algun objeto, usando una zona de 768 bytes, para determinar si podemos pintar con la rutina que implementa la mascara, o podemos usar la rutina sin mascaras, que sera relativamente mas rapida.
En caso de que 2 Sprites esten en la misma zona, si no esta invadida la parte que puperpone al resto (la pantalla de fondo), comprobar si se puede usar la otra pantalla, para pintar al personaje. Con lo que evitamos el Color-Crash, y podemos pintar con 3 colores en un mismo bloque, sin un consumo escesivo de CPU.
Por termino medio la rutina siempre o casi siempre pintaria en la pantalla algo sin mascara, en caso de que existiese suelo, si abria que hacerlo desaparecer con una mascara, pero en caso contrario, ayuda bastante, poder elegir entre 2 rutinas, y que normalmente le toque a la rutina mas rapida hacer el trabajo
Si vas a tirar Hardware, primero pregunta si alguien lo puede recuperar.
No abandones un ordenador en un vertedero, donalo a alguien.