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 » 05 Abr 2015, 17:50

Quest escribió:por si finalmente se considerara como un addon apto para todo el mundo (yo pensaba que no, pero parece que lo tenias presente como opcion en el ultimo programa de retro entre amigos), en tal caso la opcion de eleccion de core en bios es un imperativo.

Ambas cosas pueden coexistir: el que sea un addon para todo el mundo y que no se necesite tener un core que soporte T80 y Z80 a la vez. Recuerda que en la Spartan 6 se puede elegir con qué core arrancar (es multiboot).

De todas formas, el addon del Z80 no lo he pensado para el público "mainstream", sino para aquellos que van a usar el ZX-Uno para seguir cacharreando por su cuenta, implementando quizás otros micros. Para aquellos que sólo quieran usarlo como un Spectrum, que supongo serán la mayoría, no les hará falta. Incluso con los fallos que tiene el T80, es más que usable. Para los primeros, es de suponer que ellos mismos sabrán cómo manejar el Z80 real.

Recuerdo, por enésima vez, que es un Z80 trabajando bajo unos parámetros fuera de los oficiales, por lo que nunca se sabe hasta qué punto el funcionamiento es estable. Todo parece indicar que sí, que funciona, pero para mi ese addon sólo es un medio para alcanzar un fin: depurar el funcionamiento del T80. Si lo conseguimos, no hará falta, salvo que alguien quiera, eso, usarlo como coprocesador, o para hacer cualquier tipo de virguería.

Además, si hay un addon que tiene más sentido distribuir, al menos para que la "experiencia Spectrum" sea completa, es el addon de bus trasero. Y te digo más: hay otro addon en camino, que aún está en fase de diseño, pero del cual tengo comprados casi todos los componentes para hacer pruebas :)

Con todo y con eso, ya te digo: si conseguimos hacer funcionar el multiboot, y funciona como uno espera que funciona, podremos tener varios cores: uno sin nada, otro con el Z80 real, otro con el adaptador de bus de expansión, otro con..... etc.
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 » 05 Abr 2015, 18:04

Antonio, antes de que se me olvide...

Estuve probando el otro día los últimos cambios del firmware que subiste al repositorio. Veo solucionadas algunas de las cosillas que comentamos, gracias :) pero quizá la más importante que es el update machine, no termina de ir bien...

Probé a actualizar machine varias veces. Las dos primeras resultaron en un brick del zx-uno. Ni siquiera arrancaba (led fijo y sin señal al monitor). Siempre con Cargandoleches, claro, que son 4 minutitos (frente a la media hora de la carga normal :)). Nunca dio error de CRC al cargar los bloques ni nada raro. Al tercer intento conseguí que arrancara, pero la mayoría de las ROMs daban error CRC y no arrancaban o arrancaban con fallos. En posteriores intentos no mejoró la cosa. También observé como aleatoriamente se producían fallos como los de otras veces en las cadenas de texto, tras actualizar machine, que hacían que al intentar cargar una nueva ROM via tap o esxdos o firmware, el texto en la ventanita emergente fuera incorrecto.

No se si estos problemas serán del firmware en sí que no está del todo pulido o tiene algo que ver con mi zx-uno, pero por si acaso que nadie que no tenga cable Xilinx use de momento el método de Upgrade machine para actualizar el core.

Otra cosilla, bueno, más bien una petición... aunque probablemente me mandes al cuerno con tanta opción de "upgrade" :D , y es si se podría añadir un "upgrade core", es decir, sólo lo que sería el de la FPGA, sin que lleve todas las roms, etc, es decir, sin que sea toda la spi completa. Esto por un lado haría que no se me machacaran todas las roms que tengo metidas y ordenadas en el zx-uno con las del machine y además acortaría bastante el proceso de carga. No es que sea algo esencial, pero si no es difícil de implementar, estaría bien. El core de la FPGA, ocupa siempre lo mismo, verdad?

mcleod_ideafix escribió:Además, si hay un addon que tiene más sentido distribuir, al menos para que la "experiencia Spectrum" sea completa, es el addon de bus trasero. Y te digo más: hay otro addon en camino, que aún está en fase de diseño, pero del cual tengo comprados casi todos los componentes para hacer pruebas :)

Con todo y con eso, ya te digo: si conseguimos hacer funcionar el multiboot, y funciona como uno espera que funciona, podremos tener varios cores: uno sin nada, otro con el Z80 real, otro con el adaptador de bus de expansión, otro con..... etc.


:D :D Y que lo digas... el de bus trasero va a ser lo más. Y con el otro "misterioso" que comentas, ya nos has puesto los dientes largos...

Respecto a lo del multiboot y el z80 real, tienes razón, pensado así tiene mucho más sentido.

Por cierto, qué opinas del tema de implementar los timings del +2A/+3? es factible?

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

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

Mensajepor antoniovillena » 05 Abr 2015, 18:14

Quest escribió:Antonio, antes de que se me olvide...

Estuve probando el otro día los últimos cambios del firmware que subiste al repositorio. Veo solucionadas algunas de las cosillas que comentamos, gracias :) pero quizá la más importante que es el update machine, no termina de ir bien...

Probé a actualizar machine varias veces. Las dos primeras resultaron en un brick del zx-uno. Ni siquiera arrancaba (led fijo y sin señal al monitor). Siempre con Cargandoleches, claro, que son 4 minutitos (frente a la media hora de la carga normal :)). Nunca dio error de CRC al cargar los bloques ni nada raro. Al tercer intento conseguí que arrancara, pero la mayoría de las ROMs daban error CRC y no arrancaban o arrancaban con fallos. En posteriores intentos no mejoró la cosa. También observé como aleatoriamente se producían fallos como los de otras veces en las cadenas de texto, tras actualizar machine, que hacían que al intentar cargar una nueva ROM via tap o esxdos o firmware, el texto en la ventanita emergente fuera incorrecto.

No se si estos problemas serán del firmware en sí que no está del todo pulido o tiene algo que ver con mi zx-uno, pero por si acaso que nadie que no tenga cable Xilinx use de momento el método de Upgrade machine para actualizar el core.

Otra cosilla, bueno, más bien una petición... aunque probablemente me mandes al cuerno con tanta opción de "upgrade" :D , y es si se podría añadir un "upgrade core", es decir, sólo lo que sería el de la FPGA, sin que lleve todas las roms, etc, es decir, sin que sea toda la spi completa. Esto por un lado haría que no se me machacaran todas las roms que tengo metidas y ordenadas en el zx-uno con las del machine y además acortaría bastante el proceso de carga. No es que sea algo esencial, pero si no es difícil de implementar, estaría bien. El core de la FPGA, ocupa siempre lo mismo, verdad?


A mí me funcionó bien, pero sin CargandoLeches. Esta noche puedo hacer una prueba. Con update machine no se cargan todas las ROMs, sólo el bitstream, el firmware y la tabla de entradas de las ROMs por defecto. No puedo reducir más el archivo de lo que está.

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 » 05 Abr 2015, 18:28

antoniovillena escribió:A mí me funcionó bien, pero sin CargandoLeches. Esta noche puedo hacer una prueba. Con update machine no se cargan todas las ROMs, sólo el bitstream, el firmware y la tabla de entradas de las ROMs por defecto. No puedo reducir más el archivo de lo que está.


Gracias por la explicación.

No obstante, no termino de entenderlo del todo... entonces por qué se carga la tabla de entradas de las ROMs si no se cargan las ROMs? En cuanto no coincida la tabla con las que tienes realmente metidas, tenemos un problema (que probablemente es lo que me ocurrió a mí, que me daba error CRC en casi todas. Pero es que además luego no arrancaban).

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 » 05 Abr 2015, 18:53

Quest escribió:Por cierto, qué opinas del tema de implementar los timings del +2A/+3? es factible?

Están implementados los del 128K. ¿Qué programas necesitan expresamente los timmings de un +2A / +3? Ten en cuenta que estos modelos usan la señal WAIT para sincronizar el procesador con la ULA, y esa señal, justamente, no la tienes disponible en el addon del Z80 (no había suficientes pines :( )
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

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

Mensajepor antoniovillena » 05 Abr 2015, 23:01

Quest escribió:Gracias por la explicación.

No obstante, no termino de entenderlo del todo... entonces por qué se carga la tabla de entradas de las ROMs si no se cargan las ROMs? En cuanto no coincida la tabla con las que tienes realmente metidas, tenemos un problema (que probablemente es lo que me ocurrió a mí, que me daba error CRC en casi todas. Pero es que además luego no arrancaban).


Pues sí, es lo que te ocurrió. Tengo que evitar que se sobreescriba dicha tabla, pero de momento nos podemos apañar con lo que hay. El problema es que para dicha programación no puedo depurar bajo emulador, ya que esa paginación es única del ZX-Uno.

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 » 05 Abr 2015, 23:12

antoniovillena escribió:Pues sí, es lo que te ocurrió. Tengo que evitar que se sobreescriba dicha tabla, pero de momento nos podemos apañar con lo que hay. El problema es que para dicha programación no puedo depurar bajo emulador, ya que esa paginación es única del ZX-Uno.


Ok, entiendo. Nos vamos apañando así hasta que puedas echarle un ojo en el zx-uno :) Es sobre todo de cara al usuario final.

Con respecto a los bricks y las corrupciones, no sé que pudo pasar. Puede que tenga algo que ver con el control de errores en la carga con CargandoLeches? igual lo dejo mañana por la mañana cargando varias veces con carga de velocidad estándar para ver si se reproduce el mismo problema en algún intento o no e ir descartando....

mcleod_ideafix escribió:Están implementados los del 128K. ¿Qué programas necesitan expresamente los timmings de un +2A / +3? Ten en cuenta que estos modelos usan la señal WAIT para sincronizar el procesador con la ULA, y esa señal, justamente, no la tienes disponible en el addon del Z80 (no había suficientes pines :( )


Bueno, de forma exclusiva puede que no haya nada o casi nada (porque la mayoría de cosas como demos tienen versiones separadas para 128k/+2 y +2A/+3 así que con elegir el primero ya vale), y visto así quizá no haga falta implementarlos, y como hay muchas otras cosas prioritarias pues quizá realmente no haga falta. Sólo poniéndonos un poco "sibaritas" con la exactitud de las máquinas, pues en ejemplos como la versión para +2A de Nyan Cat, se puede ver cómo no funciona el efecto del borde correctamente con los timings de 128k, mientras que la versión 128K de dicha intro no da ese problema (con el Z80 real, claro, ya que con T80 no va bien ninguno).

De hecho pensándolo bien serían mucho más interesantes incluso los timings (o bien diferencias hardware) del Pentagon (aqui hablo sin saber, no se bien qué diferencias hay ni si son 100% conocidas, aparte de lo ya sabido de la no contención de la memoria, etc), ya que hay muchísima scene rusa, demos a porrillo, bastante material (sobre todo en TRD) que están pensados para dicha máquina. Muchas cosas funcionan medianamente bien en el zx-uno, y otras no tanto. No obstante, imagino que esto sería bastante más complicado de lo que parece. Lo único que he encontrado al respecto relacionado con FPGA es ya antiguo, sobre el v6z80p (http://www.retroleum.co.uk/electronics-articles/v6z80p/) en el "emulador cycle-perfect" de Alessandro Dorigatti’s que dice tener una emulación perfecta de timings de spectrum 48/128 y Pentagon (http://wiki.retroleum.co.uk/wiki/view/A ... m+Emulator)

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

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

Mensajepor antoniovillena » 06 Abr 2015, 00:20

Quest escribió:Ok, entiendo. Nos vamos apañando así hasta que puedas echarle un ojo en el zx-uno :) Es sobre todo de cara al usuario final.

Con respecto a los bricks y las corrupciones, no sé que pudo pasar. Puede que tenga algo que ver con el control de errores en la carga con CargandoLeches? igual lo dejo mañana por la mañana cargando varias veces con carga de velocidad estándar para ver si se reproduce el mismo problema en algún intento o no e ir descartando....


En teoría los bricks y las corrupciones se deben a ROMs incorrectas. Hay 2 filtros de comprobación: el checksum del TAP (tanto en carga estándar como en CargandoLeches) que es de 8 bits y el CRC que es de 16 bits. Es muy pero que muy improbable que un error de cinta pase los dos filtros, y por razones obvias el bitstream se va guardando poco a poco en RAM y se escribe en SPI Flash de golpe una vez se acaba la carga. Si quieres comprobarlo puedes dumpear la SPI flash a través del cable USB Xilinx con el iMPact y luego compararlo con el bistream supuestamente enviado. Si no sabes cómo compararlo pásame ambos archivos (el dumpeo y el machine.bin) y yo te digo si coinciden o no.

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 » 06 Abr 2015, 01:05

Quest escribió:Bueno, de forma exclusiva puede que no haya nada o casi nada (porque la mayoría de cosas como demos tienen versiones separadas para 128k/+2 y +2A/+3 así que con elegir el primero ya vale), y visto así quizá no haga falta implementarlos, y como hay muchas otras cosas prioritarias pues quizá realmente no haga falta. Sólo poniéndonos un poco "sibaritas" con la exactitud de las máquinas, pues en ejemplos como la versión para +2A de Nyan Cat, se puede ver cómo no funciona el efecto del borde correctamente con los timings de 128k, mientras que la versión 128K de dicha intro no da ese problema (con el Z80 real, claro, ya que con T80 no va bien ninguno).

Ahora mismo no lo recuerdo, pero creo que el Nyan Cat va con el T80 si se ponen los timmings de 128K, pero curiosamente la versión que va es la escrita para el +2A. De todas formas, vaya o no vaya sé que es por causa del T80, así que de momento no puedo hacer nada, hasta que no arreglemos eso.

Quest escribió:De hecho pensándolo bien serían mucho más interesantes incluso los timings (o bien diferencias hardware) del Pentagon (aqui hablo sin saber, no se bien qué diferencias hay ni si son 100% conocidas, aparte de lo ya sabido de la no contención de la memoria, etc), ya que hay muchísima scene rusa, demos a porrillo, bastante material (sobre todo en TRD) que están pensados para dicha máquina. Muchas cosas funcionan medianamente bien en el zx-uno, y otras no tanto.

Los timmings del Pentagon, que los conozco, tienen cosas del 48K y cosas del 128K. Del 48K tienen el que una línea de pantalla dura 224T estados de reloj, pero en lugar de 312 líneas por campo, tienen 320, así que la duración total de un frame se parece mucho en ciclos de reloj a lo que dura un frame en el 128K.
Esto significa que, hasta que implemente eso (que sí tengo intención de hacerlo), puedes probar a poner las demos en modo 128K, sin contención. Así tendrás más probabilidades de que te funcionen.

Quest escribió:en el "emulador cycle-perfect" de Alessandro Dorigatti’s que dice tener una emulación perfecta de timings de spectrum 48/128 y Pentagon (http://wiki.retroleum.co.uk/wiki/view/A ... m+Emulator)

Sï, ya he visto que el core de Alessandro está en esa máquina y en otras, pero el joío pasa de dejar el fuente a disposición de los demás, con lo que no sé hasta qué punto es cycle perfect o no. Desde luego si lo es, y usa el T80, o se ha currado una versión de la ULA que corrige las deficiencias de timmings del T80 o, más probablemente, ha arreglado cosas del T80, y no las ha compartido.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
benkenobi
Commodore 128
Commodore 128
Mensajes: 100
Registrado: 22 Nov 2014, 18:58
Gracias dadas: 1 vez
Gracias recibidas: 13 veces

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

Mensajepor benkenobi » 06 Abr 2015, 08:20

antoniovillena escribió:Para los 3 ZX-Uno que faltan por enviar (stratotrasto, Ben-kenobi y jrodriguezv), os pongo al día. El vendedor es bastante cabroncete y se ha esperado al día antes de que se acabe la disputa para hacer un envío. El número de seguimiento es el mismo RF010216514CN, así que algo llegará. El paquete parece ser que ha llegado a España y en una semana o así me llegará. Pueden pasar 2 cosas: que esté todo bien (no vengan las 3 FPGAs dentro) o que no. Si lo segundo vuelvo a pedir las FPGAs y a esperar otro mes. Si todo está bien, os lo envío. Siento el retraso. Lo que me ha pasado con este vendedor no es normal.




Tranquilo! Estas cosas lamentablente aveces pasan , gracias por tus esfuerzos!


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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