Mostrando entradas con la etiqueta HRG. Mostrar todas las entradas
Mostrando entradas con la etiqueta HRG. Mostrar todas las entradas

jueves, 28 de junio de 2018

Gráficos HIRES en el Sinclair ZX81 - Parte 3

Última entrega de esta serie de videos en los que repaso los diferentes sistemas de "alta resolución" del Sinclair ZX81. En esta tercera parte se revisan los diferentes sistemas de UDG.



domingo, 17 de junio de 2018

Gráficos HIRES en el Sinclair ZX81 - Parte 2

Se publica la Parte 2 en la que se hablan de los gráficos HI-RES propiamente dichos, incluyendo aquellas tarjetas de expansión que permitían tener esto gráficos.


domingo, 3 de junio de 2018

Gráficos HIRES en el Sinclair ZX81 - Parte 1

Comienzo una serie de videos en mi canal de YouTube referentes a los gráficos de "Alta Resolución" o HIRES en el Sinclair ZX81. En la serie, trato de explicar qué son y cuántos tipos hay de algoritmos para generar estos gráficos y caracteres. 

Muestro fotos y ejemplos de los diferentes juegos y demos. Y siempre que sea posible, corriendo en un ZX81 real, es decir, no es emulador. Cuando me vea obligado a ejecutar algún programa en emulador, se informará en el video.

La Parte 1 cubre los "Pseudo HIRES", en donde hay variedad de juegos y demos.



sábado, 25 de noviembre de 2017

Demos HIRES para ZX81

Si bien no son recientes, he descubierto en este hilo del foro ZX80/ZX81 dos demos de HIRES para el ZX81. Uno de ellos es de Bodo Wenzel y otro del usuario del foro zsolt.

La rutina programada por Bodo Wenzel consigue resoluciones de 320 x 240 píxeles y requiere un ZX81 con al menos 16Kb de RAM.

"Testbild" es una carta de ajuste que además puede moverse en las cuatro direcciones mediante las teclas de cursor. Bodo Wenzel además tiene otros programas demo usando HIRES: 25 aniversario, puzzle2, rezurrection y maxdemo.


Con unos resultados parecidos a los obtenidos en la rutina de Bodo Wenzel y en resolución 320 x 240, el usuario zsolt ha programado "FullHD81" y "FullHDzeddy".




También se pueden desplazar con SHIFT+tecla de cursor, y con SHIFT+9 se obtiene la imagen en video inverso.


martes, 17 de mayo de 2016

Modo Pseudo HI-RES en el ZX81

La pantalla estándar del ZX81 tiene 24 filas de 32 caracteres cada una. Cada caracter es una cuadrícula de 8 x 8 pixeles, y ocupa 1 byte. Sin embargo, el usuario no puede seleccionar estos pixeles de manera aislada, solamente los caracteres predefinidos.


El ZX81 está limitado por hardware y solo puede soportar 128 códigos de caracteres, frente a los 256 que presentaría un modo “True HIRES”, resultante de todas las combinaciones que darían 8 bits. Por contra, el ZX81 utiliza los bits 0 a 5 para formar los códigos de 64 caracteres (0 a 63), más el CHR$ 118. El bit 7 es utilizado para indicar los inversos de todos estos (128 a 191). El valor del bit 6 es utilizado por la ULA durante el volcado en pantalla del archivo de display, y por lo tanto no participa de la codificación del juego de caracteres.



El bloque de la memoria de vídeo almacena como máximo 32 x 24 bytes (768 bytes + 25 bytes en instrucciones HALT = 793 bytes). A partir de ahí, el modo en el que el ZX81 codifica la memoria de vídeo es ligeramente diferente si tenemos más de 3,25 kB o menos de RAM.

El modo Pseudo HI-RES trabaja como el modo texto, pero la altura del caracter está limitada a una sola línea por lo que se obtiene una resolución de 8 x 1 pixeles en vez de los 8 x 8 pixeles. La resolución de la pantalla pasa de 256 x 192 puntos a 32 x 192 caracteres “planos”. Cada línea termina mediante un opcode RET (C9h), por lo que esta resolución ocupa un espacio en memoria de 6336 bytes (6,2 kB), obtenidos de la multiplicación de 33 (32 columnas + HALT) por 192 líneas. Por este motivo, es necesario disponer de una ampliación de 16 kB para poder disfrutar de este modo.







Este modo obtiene una resolución en base a redefinir los caracteres cambiando la tabla de caracteres a algún lugar de la ROM, por lo que no posee todas las 256 posibles combinaciones que componen un byte. En su lugar, busca en la ROM una zona con el contenido lo más aleatorio posible que le permita la mayor cantidad de combinaciones posibles. El valor del registro I dictamina en qué lugar de la ROM está la combinación que se va usar. El resultado es similar al “True” HIRES, excepto en algunas combinaciones que no puede dibujar. La denominación de “pseudo” es debido a que menos del 50% de las 256 combinaciones requeridas para el True HI-RES están disponibles en este modo, como apunta Wild Rigter en su artículo “The ZX81 Video Display System”. Esta limitación puede provocar que en algún caso pudiera haber algún pixel en una ubicación no deseada, al tener que utilizar un byte con una combinación de bits lo más cercana a la requerida por el software.

En el artículo de Paul Farrow “Flicker-Free Display Mechanism”, se sugiere que el origen de este modo fue en el código Amazing Active Display desarrollado por Ron Bissell en 1981 (Macronics) para el Sinclair ZX80. Este código podía adquirirse para poder ser usado por otros programadores. Una variante de este código fue sugerida por el Dr. Ian Logan en el artículo Auto-Display-Changing (Sync magazine, Volume 1, Number 3, May/Jun 1981), y también incluido en el libro The ZX80 Companion (Linsac).




Programa HI-RES de Macronics


Antes de su cierre en 1985, Software Farm (Julian Chappell) produjo varios juegos que usaban esta técnica: Forty Niner (1982), Rocket-Man (1984) y Z-Xtricator (1984). Si bien la técnica estaba más depurada y permitía un modo de pantalla más grande. Un algoritmo muy parecido al de Software Farm lo usó la compañía Lothlorien en 1983 en su juego Micro Mouse goes de-bugging.




Micro Mouse goes de-bugging (Lothlorien)



Z-Xtricator (Software Farm)




Rocket-Man (Software Farm)



En 1985, Steven McDonald programó Rock Crush, un referente de esta técnica basado en el juego Boulder Dash. De este juego hay versiones posteriores, incluso disponible para iPad (2011). Más información en este artículo. La rutina de este programa intercepta la presentación del video mediante una interrupción modo 2. Es el único programa identificado que realiza esta operación.

En 2003, Ales Martinik portó una versión del popular Manic Miner del ZX Spectrum al ZX81 usando una técnica de pseudo HI-RES. Para más detalles sobre esta adaptación consultar este artículo.
Programa Manic Miner (Ales Martinik)


En la web de Andreas Gustafsson se puede descargar una excelente demo que muestra las capacidades del ZX81 en este modo de video. El software There Are No Limits, publicado en 2009 está disponible en diversos formatos.



Software There Are No Limits (Andres Gustafson)


Brian Lewis publicó las versiones para ZX81 en modo Pseudo HI-RES de Invaders (2013) y Pac-Man (2014). Si bien en su web apunta a que los juegos son HI-RES, lo cierto es que los requerimientos que necesitan es solo una ampliación de 16 kB, sin necesidad de ninguna modificación. Esta modificación es necesaria para los “True” HI-RES.




Programa Pac-Man (Brian Lewis)



Programa Invaders (Brian Lewis)


En este año 2016, se cumplen 35 años del lanzamiento del ZX81. Paul Farrow ha publicado un programa de demostración (Celebration) y un juego (Against The Elements) –en perspectiva isométrica- basados en una variante del algoritmo que permite en el mismo programa usar minúsculas y mayúscula, el uso de pixeles y scroll horizontal. Todo ello en un formato ancho de pantalla.




Celebration (Paul Farrow)



Against The Elements (Paul Farrow)