Posibilidades de boton "turbo" en zx uno

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 444
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 26 veces

Posibilidades de boton "turbo" en zx uno

Mensajepor Uto » 08 Sep 2015, 10:10

Lo mismo ya se ha hablado, y lo mismo es complicado a estas alturas, pero me pregunto si es factible un botón turbo que permita aumentar la velocidad a un 300% (por ejemplo).

Parece algo absurdo para jugar, pero es por ejemplo muy útil para aventuras conversacionales, o mismamente para programar.

Si en HW no fuera posible, lo mismo podría hacerse por software (con un OUT o algo así)
http://www.ngpaws.com
Twitter: @uto_dev

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: Posibilidades de boton

Mensajepor Quest » 08 Sep 2015, 10:14

Si no recuerdo mal, esto ya está pensado y es factible. Aunque te responderá mejor mcleod_ideafix. La FPGA permite cambiar frecuencias on-the-fly.

Seguramente si finalmente se implementa, se hará mediante configuración BIOS o mejor aún mediante combinaciones de teclas especiales en el teclado.

En otro orden de cosas, no se si lo más adecuado es estar abriendo hilos para cada cosilla que se os ocurra ¿no sería mejor que hubiera un solo hilo donde centralizar todas las dudas o ideas que surjan a los posibles usuarios?

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: 53 veces
Contactar:

Re: Posibilidades de boton

Mensajepor mcleod_ideafix » 08 Sep 2015, 10:53

Tecnicamente es factible, e incluso está contemplado en la especificación Chloe280SE. Andrew tiene los detalles sobre qué puertos son y cómo actúan.
El problema, con la v2, es que la memoria es un solo banco, y hay que multiplexarla. Esto hace que los accesos no sean tan rápidos como deberían, limitando la frecuencia del reloj. Con la v3, y memorias de 10ns, espero poder, al menos, poner al Z80 a 7MHz (200%), y quizás, con suerte, al 400% (14MHz).

De poder hacerse, se implementaría mediante un puerto de E/S. Con el soporte de NMI especial de Antonio, podría conmutarse entre el modo turbo y el normal pulsando una tecla.

En los "entrenamientos" (por llamarlo de alguna forma) del core del Spectrum, pude ponerlo a 7MHz sin problemas aparentes. He aquí un par de videos de demostración:

Parte 1: cambiando la frecuencia de reloj en el código fuente de la descripción de la ULA. Cargando software desde EAR acelerando x2 la velocidad de reproducción


Parte 2. Manic Miner a 7MHz usando control de velocidad con botón turbo:
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 444
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 26 veces

Re: Posibilidades de boton

Mensajepor Uto » 08 Sep 2015, 21:22

Quest escribió:Si no recuerdo mal, esto ya está pensado y es factible. Aunque te responderá mejor mcleod_ideafix. La FPGA permite cambiar frecuencias on-the-fly.

Seguramente si finalmente se implementa, se hará mediante configuración BIOS o mejor aún mediante combinaciones de teclas especiales en el teclado.

Esta ultima opción sería genial, quizá si se pudiera hacer que por ejemlo AvPg/RePg aumenten la velocidad sería una gran idea. Creo que 200% o 300% es más que suficiente, la cuestión es ver en que punto aumentar la velocidad hace el teclado inmaaaaaaannnnnnneeeeejjjjjaaaaaabbbbllllleeeee ;-)

Quest escribió:En otro orden de cosas, no se si lo más adecuado es estar abriendo hilos para cada cosilla que se os ocurra ¿no sería mejor que hubiera un solo hilo donde centralizar todas las dudas o ideas que surjan a los posibles usuarios?

Hmmm... ¿pondrías todas las dudas del Spectrum 48k en el mismo hilo? Creo que el ZX-Uno ya es para muchos un nuevo modelo de Spectrum, y tiene categoría para poder hacer preguntas "normales" sobre él, cada una con su hilo, como hacemos con los demás. Las preguntas separadas son más fáciles de encontrar, y además evitan que se creen hilos ultra-largos donde aparte de que la navegación es incómoda, se mezcla de todo: preguntas, comentarios, cosas de la caja, cosas de los teclados, que si en China, que si en Japón, seguido de 5 o 6 mensajes de los "maestros" que a los demás nos dejan KO (porque no entendemos nada salvo que parece que mola mucho todo lo que decís). En ese momento en el que dejamos de prestar atención al hilo para salvaguardar las pocas neuronas que nos quedan :lol:

En cualquier caso esa es mi opinión, y claro, todos tenemos una :-)

-- Actualizado 08 Sep 2015, 21:29 --

mcleod_ideafix escribió:Tecnicamente es factible, e incluso está contemplado en la especificación Chloe280SE. Andrew tiene los detalles sobre qué puertos son y cómo actúan.
El problema, con la v2, es que la memoria es un solo banco, y hay que multiplexarla. Esto hace que los accesos no sean tan rápidos como deberían, limitando la frecuencia del reloj. Con la v3, y memorias de 10ns, espero poder, al menos, poner al Z80 a 7MHz (200%), y quizás, con suerte, al 400% (14MHz).


Suena bien, y creo que 200% es suficiente, aunque 400% sería genial, especialmente para las dos cosas que había comentado (programar y aventuras).
http://www.ngpaws.com
Twitter: @uto_dev

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: 53 veces
Contactar:

Re: Posibilidades de boton

Mensajepor mcleod_ideafix » 08 Sep 2015, 22:50

Uto escribió:Esta ultima opción sería genial, quizá si se pudiera hacer que por ejemlo AvPg/RePg aumenten la velocidad sería una gran idea. Creo que 200% o 300% es más que suficiente, la cuestión es ver en que punto aumentar la velocidad hace el teclado inmaaaaaaannnnnnneeeeejjjjjaaaaaabbbbllllleeeee ;-)

Si el teclado se sigue manejando en la rutina de interrupciones, la velocidad de la CPU no influye: puede seguir usándose sin repeticiones exageradas. Un ejemplo: con Spectaculator, ve a Tools/Options, pestaña Hardware, y allí cambia la velocidad de la CPU al máximo (no es lo mismo que aumentar la velocidad del emulador usando Control/Speed: eso lo aumenta todo, no sólo la CPU) y verás que aun estándo al máximo de velocidad, es posible teclear perfectamente en él.
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: Posibilidades de boton

Mensajepor Quest » 08 Sep 2015, 23:39

Uto escribió: [..] que si en China, que si en Japón, seguido de 5 o 6 mensajes de los "maestros" que a los demás nos dejan KO (porque no entendemos nada salvo que parece que mola mucho todo lo que decís). En ese momento en el que dejamos de prestar atención al hilo para salvaguardar las pocas neuronas que nos quedan :lol:


Por eso me parece que abriste, con muy buen criterio, por cierto, el hilo de "ZX-UNO for humans :-)", donde muy acertadamente todos preguntan esperando una respuesta sencilla y asequible. Creo que está funcionando bastante bien. Los hilos que hasta ahora se estaban usando para el ZX-UNO eran de caracter técnico, prototipos, pruebas, etc. Es lógico que su contenido sea el que es.

Uto escribió:Hmmm... ¿pondrías todas las dudas del Spectrum 48k en el mismo hilo? Creo que el ZX-Uno ya es para muchos un nuevo modelo de Spectrum, y tiene categoría para poder hacer preguntas "normales" sobre él, cada una con su hilo, como hacemos con los demás.


Ahora, si sumamos el quote anterior con este, te invito a que hagas una reflexión. Si con tan buen criterio hiciste el hilo "ZX-UNO for humans :-)", donde en tu primer mensaje aparece esto:


Uto escribió:Ahora mis dudas:

- ¿Qué Spectrum emula? ¿Un 48k? ¿un 128k? ¿un clon estilo el 128k pero con más bancos? ¿Algo más avanzado?
- ¿Que salida de video tiene? ¿RGB/video compuesto o VGA? ¿o ambos? ¿hdmi?
- El teclado PS/2 ¿verdad?
- ¿Emula alguna cosa adicional?
- ¿Puede acceder a la tarjeta SD a modo disco con los comandos del +3DOS?
- ¿Tiene algun modo "dumb" tipo ZXVega? (Lista de juegos, seleccionar, jugar)
- ¿Alguna conexión de joystick norma Atari?
- ¿puede hacer snapshots?
- ¿Se va a poner en kickstarter/verkami o similar? Si es así ¿será montada o como kit?


Lo cual suma 17 preguntas (que me parece muy bien, así el que entre encontrará la solución centralizada), dime en qué se diferencian de la que hubiera sido la 18ª (y te transcribo textualmente, sólo añadiendo unas interrogantes):

"¿es factible un botón turbo que permita aumentar la velocidad a un 300% (por ejemplo)?"


¿Por qué las otras no merecen su hilo propio y esta sí? :)

Y por supuesto, toda opinión es respetable, sólo que me ha chocado un poco tu argumento, siendo que a su vez, curiosamente, no lo veo aplicado.

Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 444
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 26 veces

Re: Posibilidades de boton

Mensajepor Uto » 09 Sep 2015, 09:33

mcleod_ideafix escribió:
Uto escribió:Esta ultima opción sería genial, quizá si se pudiera hacer que por ejemlo AvPg/RePg aumenten la velocidad sería una gran idea. Creo que 200% o 300% es más que suficiente, la cuestión es ver en que punto aumentar la velocidad hace el teclado inmaaaaaaannnnnnneeeeejjjjjaaaaaabbbbllllleeeee ;-)

Si el teclado se sigue manejando en la rutina de interrupciones, la velocidad de la CPU no influye: puede seguir usándose sin repeticiones exageradas. Un ejemplo: con Spectaculator, ve a Tools/Options, pestaña Hardware, y allí cambia la velocidad de la CPU al máximo (no es lo mismo que aumentar la velocidad del emulador usando Control/Speed: eso lo aumenta todo, no sólo la CPU) y verás que aun estándo al máximo de velocidad, es posible teclear perfectamente en él.

Ah vaya, pues tienes razón. En ese caso realmente el aumento de velocidad no sirve a la tarea de programación, y para las conversacionales, solo ayudará a aquellas con gráficos vectoriales que tardaban en pintarse. Bueno, menos da una piedra, y algunas otra utilidades tendrá.

-- Actualizado 09 Sep 2015, 09:41 --

Quest escribió:¿Por qué las otras no merecen su hilo propio y esta sí? :)

No eran 17 preguntas, era una sola pregunta "¿Que demonios es el ZX-Uno?" con 17 apartados ;-)
http://www.ngpaws.com
Twitter: @uto_dev

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: 53 veces
Contactar:

Re: Posibilidades de boton

Mensajepor mcleod_ideafix » 09 Sep 2015, 13:18

Uto escribió:Ah vaya, pues tienes razón. En ese caso realmente el aumento de velocidad no sirve a la tarea de programación, y para las conversacionales, solo ayudará a aquellas con gráficos vectoriales que tardaban en pintarse. Bueno, menos da una piedra, y algunas otra utilidades tendrá.

Sí que sirve a la programación. Vamos: que se acelera todo EXCEPTO aquellas tareas que estén sincronizadas con el barrido de pantalla. Si un juego tiene un bucle de control tal que en medio de él hay una instrucción HALT, pues da igual que la CPU vaya a 3.5MHz o a 100MHz, que tendrá que esperarse hasta el siguiente retrazo. Juegos que tengan temporizaciones basadas en bucles de tiempo de CPU, irán más rápido.

En el caso de las conversacionales, no es sólo el repintado lo que se acelera: se acelera todo el parseo de la frase, la elaboración de la respuesta, el pintado de la respuesta en pantalla, y si hay que hacer scroll, pues también eso. Vamos, que la "programación" se acelera por el mismo factor que multipliques la frecuencia.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Uto
MSX Turbo R
MSX Turbo R
Mensajes: 444
Registrado: 28 Abr 2014, 15:50
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: TV Games/Pong Clone
Gracias dadas: 5 veces
Gracias recibidas: 26 veces

Re: Posibilidades de boton

Mensajepor Uto » 09 Sep 2015, 18:21

mcleod_ideafix escribió:Sí que sirve a la programación. Vamos: que se acelera todo EXCEPTO aquellas tareas que estén sincronizadas con el barrido de pantalla. Si un juego tiene un bucle de control tal que en medio de él hay una instrucción HALT, pues da igual que la CPU vaya a 3.5MHz o a 100MHz, que tendrá que esperarse hasta el siguiente retrazo. Juegos que tengan temporizaciones basadas en bucles de tiempo de CPU, irán más rápido.

En el caso de las conversacionales, no es sólo el repintado lo que se acelera: se acelera todo el parseo de la frase, la elaboración de la respuesta, el pintado de la respuesta en pantalla, y si hay que hacer scroll, pues también eso. Vamos, que la "programación" se acelera por el mismo factor que multipliques la frecuencia.

Sí sí, entiendo, solo que ninguna de esas cosas son aparentemente lentas en una conversacional de Spectrum, y por tanto acelerarlo no va a producir una mejora que el ojo humano aprecie :-)

En la programación quizá sí esté bien que al hacer un LIST o un Caps+1 se haga más rápido, pero la principal pega de siempre, que teclees "MARCIANO" y escriba "MARIANO" porque tecleaste demasiado rápido, seguirá pasando.

En cualquier caso, me parece fantástico que se puede duplicar la velocidad de la CPU, o cuatriplicar, ya se le sacarán usos ;-)
http://www.ngpaws.com
Twitter: @uto_dev

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: 53 veces
Contactar:

Re: Posibilidades de boton

Mensajepor mcleod_ideafix » 09 Sep 2015, 18:32

Uto escribió:pero la principal pega de siempre, que teclees "MARCIANO" y escriba "MARIANO" porque tecleaste demasiado rápido, seguirá pasando.

Eso ocurre en el Spectrum, no porque teclees demasiado rápido, sino por la forma en la que el Spectrum maneja las pulsaciones de dos teclas a la vez. Cuando tecleas rápido, es normal que pulses una tecla cuando aún estás empezando a soltar la anterior. Un teclado de PC simplemente envía el scancode de la nueva tecla. En el Spectrum, con la rutina de la ROM, si se detectan dos teclas pulsadas, no se envía nada. De ahí que se "pierdan" pulsaciones. La otra cosa es que el Spectrum no tiene buffer de teclado, por lo que aunque la lectura sea por interrupciones, no se aprovecha la multitarea que dan estas interrupciones y sólo se guarda la última tecla pulsada, no las N últimas teclas pulsadas.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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