RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Software para o relacionado con el core ZX Spectrum / Software for or related to the ZX Spectrum core
Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por mcleod_ideafix » 21 Dic 2017, 20:09

Antes de comenzar la explicación, pido disculpas de antemano por no dar también una versión en inglés. En estos momentos no tengo cabeza para hacer una traducción, así que de momento, lo explico en español. Espero que Google haga un trabajo decente para el resto de idiomas.

Uto ya tiene actualizada la FAQ (yo aun no he actualizado la Wiki) con el nuevo registro (bueno, lleva ya meses en EXP25) RADASPALBANK. Esto viene de hace tiempo, que se pidió o sugirió esta característica.
http://uto.speccy.org/zxunofaq.html#7085 (español)
http://uto.speccy.org/zxunofaq_en.html#7045 (english)

En el repositorio, en \software\modo_radastan\multiple_palettes he dejado dos programas que ilustran cómo se puede usar este registro para cambiar rapidamente de paleta.

240col.asm muestra una cuadrícula de 16x16 cuadros en la zona de paper, cada uno de un color. En realidad, las 16 filas de cuadros contienen los mismos valores para sus píxeles, ya que en modo radastaniano un pixel sólo puede tomar valores del 0 al 15. Si no cambiáramos la paleta, veríamos 16 columnas de cuadros verticales, cada uno de un color.

Se usa RADASPALBANK para ir cambiando de paleta rapidamente (un cambio cada 12 lineas ráster ULA, o cada 6 lineas radastanianas), y así tener tiempo de sobra (6 lineas radastanianas = 12 lineas de ULA, a 224 estados por linea ULA = 2688 T-estados) para actualizar un banco de la paleta ULAplus mientras se usa otro. Como tenemos 4 bancos, siempre voy 3 bancos por delante actualizando. La demo no muestra en realidad 256 colores, sino 240.

Cada 12 lineas ráster una interrupción cambia el rango de entradas que usa el modo radastaniano. Para que los cambios en la paleta no afecten al borde, hago que la primera entrada de la paleta sea siempre el color negro. Por eso el número de colores que se muestran no son 256 sino 240, y como ese color es el primero de la paleta, afecta al primer cuadro de cada fila, así que el borde izquierdo se verá un poco más grueso que el derecho.

He comentado el código fuente lo mejor que he podido (en español), así que espero que el mecanismo quede un poco más claro leyéndolo. Cualquier duda, en este mismo hilo (en cualquiera de los idiomas para los cuales hay traducción automática en el foro).

Como comparación, he dejado también un programa equivalente (240feo.asm), que hace lo mismo pero suponiendo que RADASPALBANK no existiera. Aquí, en cada interrupción ráster se debe cambiar el contenido de la única paleta de 16 colores disponible. Podeis ver que en este último caso, a la velocidad estándar de 3.5 MHz sencillamente no hay tiempo (en lugar de tener 2688 estados para actualizar la paleta tenemos poco menos de 96), y el cambio de paleta ocurre demasiado tarde. Hay que poner la máquina a 28 MHz para que el efecto sea equivalente al del primer programa, que funciona perfectamente a 3.5 MHz.

PD: seguramente alguno de nuestos amigos rusos es capaz de mejorar el segundo programa para que funcione igual de bien que el primero, a 3.5 MHz.

Para salir de cualquiera de ambos programas, pulsar SPACE.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Radastan
Mensajes: 389
Registrado: 05 Oct 2015, 14:39

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por Radastan » 22 Dic 2017, 10:47

Yo esto lo veo útil pero para ciertas cosas:
- Marcador y marco de juego con paleta distinta (enriquece el conjunto)
- Juegos con "cielo" que pueda ser más rico en color

Usarlo para toda la pantalla de juego lo veo meterse en camisa de once varas.

Avatar de Usuario
Haplo
Mensajes: 368
Registrado: 05 Oct 2015, 13:51
Ubicación: Ciudad Real

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por Haplo » 22 Dic 2017, 15:40

Interesante la nueva característica, lo veré despacito :)

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por Uto » 22 Dic 2017, 16:20

Tened en cuenta una cosa a la hora de usarlo: es una funcionalidad del core EXP25, que no toda la gente tiene instalado.

Por supuesto podéis comprobar si el usuario tiene instalado el core adecuado sacando el COREID y diciendole que tiene que actualizar si no lo tiene.

Eso se puede hacer fácil en el cargador BASIC del juego, usando el código que he enlazado arriba y luego comparando la parte que tiene la fecha en el coreID con la fecha del último EXP25 por ejemplo, 04022017.

Ojo, no es que desincentive el uso de esta funcionalidad, al contrario, pero no pensemos que todos los zxuneros actualizan core a diario :-D

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por mcleod_ideafix » 22 Dic 2017, 17:05

Uto escribió:Ojo, no es que desincentive el uso de esta funcionalidad, al contrario, pero no pensemos que todos los zxuneros actualizan core a diario :-D
Entirendo que si la característica es bienvenida por los desarrolladores, y éstos hacen juegos, demos, o lo que sea, que la necesiten, serán ellos los que ayuden a empujar a la masa de usuarios a que se actualicen al EXP25 ;)

Hay otras características, además de ésta, que aún no están documentadas, y que pueden servir a otros usuarios. Espero poder documentarlas en las próximas semanas. Estos últimos meses (vamos, desde que comenzó el curso) han sido un no parar.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
desUBIKado
Mensajes: 1002
Registrado: 05 Ago 2016, 22:33

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por desUBIKado » 22 Dic 2017, 18:11

mcleod_ideafix escribió:Entirendo que si la característica es bienvenida por los desarrolladores, y éstos hacen juegos, demos, o lo que sea, que la necesiten, serán ellos los que ayuden a empujar a la masa de usuarios a que se actualicen al EXP25 ;)

Hay otras características, además de ésta, que aún no están documentadas, y que pueden servir a otros usuarios. Espero poder documentarlas en las próximas semanas. Estos últimos meses (vamos, desde que comenzó el curso) han sido un no parar.
En la pasada RetroZaragoza los Mojon Twins se pasaron por el stand del ZX-Uno y estuvieron muy interesados en el modo Radastaniano. Hark0 (Jordi Bayó) les hizo una demo de su juego "Return's to Holy Tower". Las palabras textuales de Na Than Assh Antti fueron: "Con esto hay que hacer algo", y sacó fotos a diversas pantallas del juego.

El caso es que comentaron que los que implementan nuevo "retro-hardware" no preguntan primero a los desarrolladores que es lo que necesitan o que característica les parecería más útil implementar. Se saca algo nuevo y se dice: "aquí lo tenéis y podéis usarlo".

Sería magnífico que si hay desarrolladores, sobre todo los que ya tiene un currículum en desarrollos homebrew, que quisiesen hacer cosas nuevas explotando nuevas o futuras características del core de Spectrum de ZX-Uno (o de otros cores si se expanden sus prestaciones), pudiesen compartir sus opiniones, necesidades, avances, etc, en un nuevo o nuevos sub-foros para "Desarrolladores" dentro de los foros del ZX-Uno.

Por último, agradecerte enormemente mcleod_ideafix la creación de estas nuevas funcionalidades del core de Spectrum, y que espero que sean aprovechadas por gente que quiera llevar al Spectrum "al infinito y más allá".

Avatar de Usuario
Uto
Mensajes: 1394
Registrado: 17 Dic 2015, 16:39

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por Uto » 22 Dic 2017, 18:18

desUBIKado escribió: El caso es que comentaron que los que implementan nuevo "retro-hardware" no preguntan primero a los desarrolladores que es lo que necesitan o que característica les parecería más útil implementar. Se saca algo nuevo y se dice: "aquí lo tenéis y podéis usarlo".

Sería magnífico que si hay desarrolladores, sobre todo los que ya tiene un currículum en desarrollos homebrew, que quisiesen hacer cosas nuevas explotando nuevas o futuras características del core de Spectrum de ZX-Uno (o de otros cores si se expanden sus prestaciones), pudiesen compartir sus opiniones, necesidades, avances, etc, en un nuevo o nuevos sub-foros para "Desarrolladores" dentro de los foros del ZX-Uno.
En realidad mcleod_ideafix preguntó una vez, no recuerdo si en el foro on el grupo de FB de ZX-Uno, pero aparte de una idea demasiado loca mía y poco más no obtuvo respuesta. Ciertamente, tampoco puedes esperar que todos los desarrolladores estén todo el rato mirando todos los foros por si acaso, ni que que los creadores de hardware se paseen por todos los foros preguntando, así que todo queda en un problema de comunicación.

Avatar de Usuario
desUBIKado
Mensajes: 1002
Registrado: 05 Ago 2016, 22:33

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por desUBIKado » 22 Dic 2017, 18:34

Sí, puede ser un problema de llegar la información a los posibles interesados. Para eso creo que un buen altavoz es twitter. El equipo del ZX-Uno tiene su cuenta @ZXUno, y normalmente los desarrolladores homebrew y los que nos gusta el mundo retro tenemos cuenta en twitter y seguimos aquello o a quien nos gusta, y a base de re-twittear llega la información a mucha más gente que por Facebook o en los foros, que tienen también un uso importante, pero diferente.

Edito: Noto que estoy secuestrando un poco el hilo, así que no comento nada más. Sorry.

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por mcleod_ideafix » 22 Dic 2017, 19:34

desUBIKado escribió:En la pasada RetroZaragoza los Mojon Twins se pasaron por el stand del ZX-Uno y estuvieron muy interesados en el modo Radastaniano. Hark0 (Jordi Bayó) les hizo una demo de su juego "Return's to Holy Tower". Las palabras textuales de Na Than Assh Antti fueron: "Con esto hay que hacer algo", y sacó fotos a diversas pantallas del juego.

El caso es que comentaron que los que implementan nuevo "retro-hardware" no preguntan primero a los desarrolladores que es lo que necesitan o que característica les parecería más útil implementar. Se saca algo nuevo y se dice: "aquí lo tenéis y podéis usarlo".
Como dice Uto, de hecho sí que pregunté a los desarrolladores, y en concreto a los Mojon Twins, que esperaban encontrar en el hardware. Antes de preguntar a nadie, la idea que yo tenía era que quisieran alguna "ayudita" tal como una CPU más rápida, para tener más ciclos donde poder mover cosas, o bien acelerar algunos cálculos típicos tales como espejar un byte, o calcular la posición de memoria dadas unas coordenadas en alta resolución. Cosas que no ocupan demasiado hardware y que no quitan la "magia" (a mi entender) que tiene el Spectrum, en donde todo se hace vía CPU y cuenta por tanto mucho la pericia del programador.

Mi sorpesa vino cuando las respuestas que me dieron fueron del tipo:
- Sprites por hardware
- Modo de pantalla basado en tiles
- Scroll por hardware

Y en general, lo que me pedían era acercarme mucho a cómo se hacen las cosas en consolas como la NES o la Master System. Tengo que decir que la respuesta me decepcionó un poco, porque.... la verdad..... si quieres hacer las cosas de esa manera, para eso desarrolla para NES o para SMS. Soy reacio a meter features gordas tales como sprites o tiles, que le quiten al usuario la posibilidad de estrujar la CPU. No quiero caer en lo que ya es el Next, que algunos devs con solera, como Gasman, han rechazado de plano por alejarse de lo que es el Spectrum. Según Gasman, una plataforma como el Next no le motiva para nada hacer juegos porque no ve el reto en ella. Hay demasiada "ayuda" por parte del hardware. No vale decir "bueno, pues ignora que existen esas ayudas" porque de hecho... están ahí, y un desarrollo hecho para Next que no use esas ayudas, aunque esté muy currado, no quedará tan impresionante como el mismo desarrollo hecho para ZX-UNO, ya que el que lo vea en Next dirá que no tiene mérito mover X sprites ahí porque los mueve el hardware, etc. No sé si me explico.... mirad por ejemplo esta demo:

phpBB [media]


Si esto fuera una demo de Amiga o PC, no le daríamos mayor importancia, pero si es un Spectrum o..... un ZX81! pues la cosa cambia.

Por esa misma razón, alguna otra característica del core de Spectrum, como la DMA, no están documentadas entre otras cosas porque no sé si son convenientes o no para lo que es un Spectrum. Claro que eso de "cuándo deja un clon de ser un Spectrum" es y ha sido siempre un tema de encendido debate. ¿Cuántas cosas le puedes añadir a un Spectrum sin que deje de serlo? En su momento entendimos que el modo radastaniano no alejaba al ZX-UNO de su esencia spectrumera (aunque hay quien no está de acuerdo con eso) y a tal efecto, lo incluimos.

Por otra parte, el modo radastaniano surgió por una idea precisamente de un desarrollador, Radastan (que curiosamente aún no ha sacado nada para este modo, tsk tsk tsk) que lo concibió con para que fuera rápido crear y mover sprites por software en ella, y que ocupase no más que lo que ocupa una pantalla normal de Spectrum (de hecho el modo radastaniano ocupa un poco menos que una pantalla normal de Spectrum).
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
Hark0
Mensajes: 683
Registrado: 27 Sep 2015, 00:31
Ubicación: Cornellà de Llobregat - BCN
Contactar:

Re: RADASPALBANK : demo para mostrar más de 16 colores en modo Radastan

Mensaje por Hark0 » 22 Dic 2017, 19:59

desUBIKado escribió:En la pasada RetroZaragoza los Mojon Twins se pasaron por el stand del ZX-Uno y estuvieron muy interesados en el modo Radastaniano. Hark0 (Jordi Bayó) les hizo una demo de su juego "Return's to Holy Tower". Las palabras textuales de Na Than Assh Antti fueron: "Con esto hay que hacer algo", y sacó fotos a diversas pantallas del juego.

El caso es que comentaron que los que implementan nuevo "retro-hardware" no preguntan primero a los desarrolladores que es lo que necesitan o que característica les parecería más útil implementar. Se saca algo nuevo y se dice: "aquí lo tenéis y podéis usarlo".
Efectivamente, estaba presenta claro... y toda la razón... ojalá los Mojon tengan un hueco en su agenda y hagan alguna cosilla Radastan, ya vistelo que les comenté; "es un modo muy agradecido de usar, vosotros esto os lo comeis en un cero coma".
Sería magnífico que si hay desarrolladores, sobre todo los que ya tiene un currículum en desarrollos homebrew, que quisiesen hacer cosas nuevas explotando nuevas o futuras características del core de Spectrum de ZX-Uno (o de otros cores si se expanden sus prestaciones), pudiesen compartir sus opiniones, necesidades, avances, etc, en un nuevo o nuevos sub-foros para "Desarrolladores" dentro de los foros del ZX-Uno.
Tengo la intención de darle un empujón al Modo Radastan, en el momento que saque el juego.

Además con las nuevas herramientas de Radastan, va a ser aún más fácil... yo me lo he tenido que currar a pelo, ahora ya hay algunas utilidades de gráficos. (Las herramientas que yo me hice son simples programas C de consola que realizan conversiones etc). Lo incluiré todo en mi paquete cuando publique.

mcleod_ideafix escribió: Mi sorpesa vino cuando las respuestas que me dieron fueron del tipo:
- Sprites por hardware
- Modo de pantalla basado en tiles
- Scroll por hardware
Porque si tienes todo eso (pienso que por ello lo dijeron, no lo se)... por ejemplo un sprite y/o fondo que la máquina ya se encarga de refrescar a su ritmo.... te olvidas de eso... y te centras en otras cosas del desarrollo. Supongo van por ahi los tiros.

Te aseguro que cuando vieron el Holy Tower... moviendose con el turbo tardaron poco en sacar la cámara. :P


Añado esta nueva feature a la listita de cosas por probar :mrgreen: :gracias!:
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

Responder