ZX-Uno prototipo 2: seguimos dándole caña

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: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 16 May 2015, 18:35

Quest escribió:- No se si ya es conocido (supongo que si, pero yo no lo había visto), pero en la demo del HAM8x1, con los timings de 128 salge algún glitch en las imágenes (esto ocurre también con el core Z80 externo, así que es independiente de la CPU entiendo). Con los timings de 48k se ve bien. Muestra del glitch (ver líneas horizontales que no deberían estar):

El visor que escribió Andrew Owen sólo funciona con los timmings del 48K. No te funcionará con otros timmings, así que sí, es normal que te pase eso.

Quest escribió:de rebote me he encontrado con que una demo que siempre trato de cargar en el ZXUNO (porque me gusta bastante) y nunca consigo que funcione bien

Sobre Paralactica, debes tener en cuenta que es una demo para Pentagon, no para ZX Spectrum Sinclair. Esta demo necesita timmings de Pentagon (que tiene un tiempo de frame similar a un 128K, pero un tiempo de linea igual al de un 48K) y la memoria no contenida. Lo más cercano a eso es usar .zxunocfg -t128 -cn
No sé cómo habrán hecho la conversión a TAP. Yo la cargo desde imagen TRD en DivMMC, y con esos parámetros la puedo ver hasta el final, si bien con glitches en la pantalla, pero debido a eso, a que es una demo para Pentagon y sus timmings (aún) no están soportados en ZX-Uno.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 16 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Quest » 16 May 2015, 18:43

mcleod_ideafix escribió:El visor que escribió Andrew Owen sólo funciona con los timmings del 48K. No te funcionará con otros timmings, así que sí, es normal que te pase eso.


Pues ahí está la explicación, que yo desconocía :D gracias!

mcleod_ideafix escribió:Sobre Paralactica, debes tener en cuenta que es una demo para Pentagon, no para ZX Spectrum Sinclair. Esta demo necesita timmings de Pentagon (que tiene un tiempo de frame similar a un 128K, pero un tiempo de linea igual al de un 48K) y la memoria no contenida. Lo más cercano a eso es usar .zxunocfg -t128 -cn
No sé cómo habrán hecho la conversión a TAP. Yo la cargo desde imagen TRD en DivMMC, y con esos parámetros la puedo ver hasta el final, si bien con glitches en la pantalla, pero debido a eso, a que es una demo para Pentagon y sus timmings (aún) no están soportados en ZX-Uno.


Esto ya lo sabía, pero no me refiero a eso. La original TRD si que carga bien aunque con los consabidos glitches debido a lo del Pentagon. Pero la versión TAP que sacaron (llamada "paralactika_128_plus2.tap") si la cargas por EAR, y con timings de 128 normales va perfectamente, sin ningún glitch gráfico, perfecta hasta el final. El tema es que ese TAP no hay manera de que funcione con DivMMC. Supongo que algo en esa conversión concretamente es incompatible. De hecho, acabo de probar en mi 128 con el DivIDE enchufado y pasa lo mismo, tanto con FatWare como con ESXDOS. Habrá que esperar al posible soporte Pentagon o bien cargarla por EAR. Con carga turbo sólo es 1 minuto 15 segs aproximadamente :)

Por cierto, he vuelto a pasar el test del borde de Mejías y con el core nuevo va perfectamente :)

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: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 16 May 2015, 19:17

Quest escribió:Esto ya lo sabía, pero no me refiero a eso. La original TRD si que carga bien aunque con los consabidos glitches debido a lo del Pentagon. Pero la versión TAP que sacaron (llamada "paralactika_128_plus2.tap") si la cargas por EAR, y con timings de 128 normales va perfectamente, sin ningún glitch gráfico, perfecta hasta el final.

Anda! Pues eso sí que no lo sabía yo. Voy a probarla a ver si saco en claro algo...
EDITO: vale, ya sé lo que le pasa :D Ahora os cuento, que la pruebe.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Mejias3D
Commodore 128
Commodore 128
Mensajes: 97
Registrado: 07 Dic 2014, 20:05
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Videopac
Primera consola: Videopac
Ubicación: Palma de Mallorca
Contactar:

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Mejias3D » 16 May 2015, 19:20

mcleod_ideafix escribió:Me he llevado gran parte de la noche descifrando la descripción VHDL del T80. Ya sabeis, la versión softcore del procesador Z80 que tiene el ZX-Uno.

[...]

Hoy me ha dado por hacer alguna prueba más, y he visto que por ejemplo, la instrucción OUTI/OUTD/OUTIR/OUTD funcionan como deben (pese a mis también sospechas) peeeero INI/INIR/IND/INDR no lo hacen. Al arreglar este grupo de instrucciones he comprendido, más o menos, cómo funciona la máquina de estados del T80, y ya me he emocionado buscando más fallos.

La generación de IM 2 en principio parece que fallaba pero no, la han corregido (y se nota que hay código comentado). Entonces es cuando me he atrevido con IORQ y creo que lo he conseguido :)


Por muy duro o complejo que sea el problema nunca te desanimas ante nada. Eres increible. Muchas gracias :)

Quest escribió:Por cierto, he vuelto a pasar el test del borde de Mejías y con el core nuevo va perfectamente :)


Gracias por comprobarlo. Al final ese pequeño test ha servido para algo :roll:
El mundo cambia con tu ejemplo no con tu opinión (Paulo Coelho)
El premio es el placer de descubrir (Richard Feynman)

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: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 16 May 2015, 19:43

Bueno, pues comprobado y corregido. Lo que le pasa a Paralactika es lo mismo, pero al revés. En el cargador BASIC (si lo cargas con MERGE "" seguro que te das cuenta en seguida de lo que quiero decir) lo que está pasando es que para cambiar de página simplemente pokean 23388 con el valor adecuado con la esperanza de que la rutina de interrupción de la ROM actualizará ella solita el valor en el puerto 7FFDh. Como esto no ocurre en la ROM de 48K, ese POKE que hacen no surte ningún efecto y lo que está pasando es que todos los bloques se cargan en el mismo sitio.

De hecho la forma en la que la hacen podría dar problemas, si entre que hacen el POKE y que se ejecuta el LOAD no hay ninguna interrupción. En ese caso, la página no se cambia. Deberían haber puesto un PAUSE 1 después del POKE para asegurarse de que al menos se ejecuta una vez la rutina de interrupción.

Para solucionar este problema con la ROM de 48K, hay que replicar tanto el POKE como el OUT. En un 128K con la ROM de 128K esto no debería resultar perjudicial ya que lo que hace es un OUT con el mismo valor que ya tiene. De paso nos aseguramos de que la página se cambia incluso aunque no ocurriera una interrupción entre el POKE y el LOAD.

He reescrito el cargador de BASIC teniendo en cuenta esto y con él he hecho una nueva versión del TAP de Paralactika. Lo teneis en el repositorio, en la sección software/demos . Está el Paralactika original y el corregido.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 16 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Quest » 16 May 2015, 20:33

mcleod_ideafix escribió:Bueno, pues comprobado y corregido. Lo que le pasa a Paralactika es lo mismo, pero al revés.
...
He reescrito el cargador de BASIC teniendo en cuenta esto y con él he hecho una nueva versión del TAP de Paralactika. Lo teneis en el repositorio


¡Si señor! :D

La acabo de probar, con el fix va como la seda. Perfecta hasta el final. Qué gustazo verla en el ZXUNO con carga instantánea...
y además con el fix podré cargarla en el spectrum real con el divIDE al fin.

¡Gracias!

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: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor mcleod_ideafix » 16 May 2015, 21:18

De nada!

He añadido una demo que originalmente sólo había encontrado en formato SCL: "I am the Seed". Tocando el cargador y ayudándome del ZX BlockEditor he podido pasarla a un TAP y carga sin problemas. Es una demo con un concepto y una estética que no se ve todos los días en producciones para el Spectrum. Espero que os guste.

La reseña original en Pouet es ésta:
http://www.pouet.net/prod.php?which=18687

En el repositorio, en software/demos está la versión TAP: SEED_F.TAP. No parece que requiera más allá de un 128K normal y corriente. Esta es de las demos que precisamente se supone que están pensadas para usar el modo estéreo ABC en el AY, así que cuando tengamos eso resuelto, volveré a mencionarla seguramente :)

Ah! No os impacienteis al principio. Después de cargar se lleva unos 10-15 segundos sin hacer nada hasta que empieza de verdad. En la carga original no aparece nada, sólo una pantalla en negro. Yo he añadido un "Please wait..." por lo menos para que no dé la sensación de que se ha bloqueado la máquina o algo.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Haplo
MSX Turbo R
MSX Turbo R
Mensajes: 278
Registrado: 14 Abr 2014, 22:24
Sistema Favorito: PC
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Nintendo NES/Clónica
Ubicación: Ciudad Real
Gracias dadas: 33 veces
Gracias recibidas: 5 veces

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Haplo » 16 May 2015, 22:20

Las piezas van encajando! El feedback es un arma poderosa...

Madre mía y eso que no tienes tiempo McLeod! Ya me gustaría que me cundiera tanto como a tí :oops:

Avatar de Usuario
Mejias3D
Commodore 128
Commodore 128
Mensajes: 97
Registrado: 07 Dic 2014, 20:05
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Videopac
Primera consola: Videopac
Ubicación: Palma de Mallorca
Contactar:

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor Mejias3D » 16 May 2015, 22:49

Nueva (y última) actualización de mi carcasa Spectrum Style

Imagen

Ya está disponible para descarga la versión definitiva de esta carcasa para ZX-Uno en Thingiverse aquí

En esta entrada y en esta otra podéis encontrar instrucciones de montaje e información adicional.

La novedad de esta última versión es que incluye una tapa de protección para el conector JTAG. Como ya comentaba en esta otra entrada. Se trata de una pequeña capucha que aloja en su interior un conector de pines hembra, que evita que se puedan tocar accidentalmente algunos de los pines de este conector.

Imagen

También incluye otra novedad, se trata de que ahora dispone de un "agujero ciego" en el lugar que corresponde a la futura salida del conector de expansión, que, como de momento, no está disponible el add-on interfaz de bus compatible Spectrum, lo mejor es que esté tapado. Esa pieza es muy fácil de romper y de retirar de la carcasa simplemente usando un destornillador para hacer palanca.

Imagen

El archivo con las pegatinas, que corresponden al etiquetado de los conectores, las podéis descargar de aquí haciendo click en el enlace "v4 - Formato PDF / Coreldraw X6 (para plotter de corte)". En esta otra entrada de Hark0 podéis ver una foto de como quedan las pegatinas en vinilo adhesivo.

Lo próximo que tengo en desarrollo es esta otra carcasa que será contenedora de la PCB + los add-ons que están por llegar, y que además tendrá teclado funcional!
Última edición por Mejias3D el 17 May 2015, 18:37, editado 2 veces en total.
El mundo cambia con tu ejemplo no con tu opinión (Paulo Coelho)
El premio es el placer de descubrir (Richard Feynman)

Avatar de Usuario
yombo
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 190
Registrado: 01 Ago 2014, 22:52
Sistema Favorito: Spectrum +2
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: TV Games/Pong Clone
Primera consola: TV Games/Pong Clone

Re: ZX-Uno prototipo 2: seguimos dándole caña

Mensajepor yombo » 16 May 2015, 22:52

Enhorabuena mcleod!


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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