ZXUnoPS2 en arduino, fuentes y binario.

Proyectos ajenos al equipo oficial pero desarrollados o promovidos por la comunidad, relacionados con el ZX-UNO / Projects outside the official team but developed or promoted by the community, related to the ZX-UNO
Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: RE: Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por spark2k06 » 17 Sep 2017, 16:44

jaildesigner escribió:
spark2k06 escribió:En cuanto tenga un rato para esperar la carga lo pruebo y te digo. Me interesa tener todos los puntos controlados y dejarlo fino fino ;-). Una pregunta, con un teclado convencional imagino que ya lo habrás probado y va bien, verdad?
No tengo el GO+ a mano, pero usando un ZX-Uno estandar, con teclado PS2 y el core de CPC, funciona bien ... pero usando el SPACE en lugar de la M. No se porque no he podido redefinir el teclado. Con el gomas estoy seguro de usar la M, más que nada porque el SPACE está en la esquina.

Con SPACE y teclado PS2 en un ZXUNO normal he podido disparar caminando en las cuatro diagonales y alternar entre ellas sin problema. Si acaso luego vuelvo a probar a ver si puedo redefinir el teclado, que igual le he dado a jugar y luego ya no sale la opción.
Lo he probado con el core de CPC, finalmente es SPACE en lugar de M y parece que no se puede redefinir. Si que es cierto que manteniendo pulsado Q y SPACE, la transición de O a P y viceversa puede ser algo problemática si se hace muy rápido (pero en ningún caso me ha sucedido que tenga que soltar la Q), pero si se transita algo mas despacio (es decir, se suelta la P o la O y se deja un margen, de no se, medio segundo y luego se pasa a la otra tecla) el funcionamiento es correcto... estos problemas creo que pueden estar relacionados realmente con la matriz de la membrana, y que en un spectrum real también sucedería.

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: RE: Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por spark2k06 » 18 Sep 2017, 06:52

spark2k06 escribió:Lo he probado con el core de CPC, finalmente es SPACE en lugar de M y parece que no se puede redefinir. Si que es cierto que manteniendo pulsado Q y SPACE, la transición de O a P y viceversa puede ser algo problemática si se hace muy rápido (pero en ningún caso me ha sucedido que tenga que soltar la Q), pero si se transita algo mas despacio (es decir, se suelta la P o la O y se deja un margen, de no se, medio segundo y luego se pasa a la otra tecla) el funcionamiento es correcto... estos problemas creo que pueden estar relacionados realmente con la matriz de la membrana, y que en un spectrum real también sucedería.
He revisado mas en profundidad el problema con el gryzor y he encontrado el motivo exacto. Por lo visto, al mantener pulsado Q y SPACE, provoca que al tener también pulsados O + P al mismo tiempo haga ghosting con las teclas W y SYMBOL, que el juego ignora pero ésta última es especialmente conflictiva con cores distintos al de spectrum, porque es en el código de arduino desde donde se debe gestionar su comportamiento, y eso es lo que sucedía, que bajo este escenario no estaba correctamente gestionado. Lo he revisado para contemplar esta situación y adjunto un nuevo fichero para que lo probéis, @jaildesigner, si puedes flashea éste y me dices que tal va ahora, porque ya no es necesario que sueltes previamente (ni medio segundo antes ni nada) la P o la O para pasar de una a otra tecla.

Por cierto, la gestión realizada no sólo es para contemplar éste ghosting en concreto, si no para cualquiera que se pueda producir en los que estén implicados CAPS o SYMBOL en cualquier core distinto al de spectrum, porque como digo en éste último nunca ha habido problemas.
Adjuntos
zxunops2_beta2.zip
(8.7 KiB) Descargado 262 veces

Avatar de Usuario
jaildesigner
Mensajes: 158
Registrado: 19 Sep 2016, 08:09

Re: RE: Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por jaildesigner » 18 Sep 2017, 13:37

spark2k06 escribió:He revisado mas en profundidad el problema con el gryzor y he encontrado el motivo exacto. Por lo visto, al mantener pulsado Q y SPACE, provoca que al tener también pulsados O + P al mismo tiempo haga ghosting con las teclas W y SYMBOL, que el juego ignora pero ésta última es especialmente conflictiva con cores distintos al de spectrum, porque es en el código de arduino desde donde se debe gestionar su comportamiento, y eso es lo que sucedía, que bajo este escenario no estaba correctamente gestionado. Lo he revisado para contemplar esta situación y adjunto un nuevo fichero para que lo probéis, @jaildesigner, si puedes flashea éste y me dices que tal va ahora, porque ya no es necesario que sueltes previamente (ni medio segundo antes ni nada) la P o la O para pasar de una a otra tecla.

Por cierto, la gestión realizada no sólo es para contemplar éste ghosting en concreto, si no para cualquiera que se pueda producir en los que estén implicados CAPS o SYMBOL en cualquier core distinto al de spectrum, porque como digo en éste último nunca ha habido problemas.
Qué máquina!! que bien que así poco a poco vamos cazando todos los conflictos, por escondidos que estén. Me sabe mal pero de momento no tengo capacidad para flashear el Arduino. A ver si me hago con el cable (que no cuesta tanto) y puedo seguir ayudando de la única forma que conozco que es haciendo pruebas y jugando.

Muchas gracias!

Avatar de Usuario
mapache
Mensajes: 272
Registrado: 15 Dic 2016, 22:24

Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por mapache » 18 Sep 2017, 14:17

@jaildesigner ¿es un cable USB a microUSB como el que se usa para flashear el TZXDuino? si es así te mando uno sin coste por correo ordinario.

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: RE: Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por spark2k06 » 18 Sep 2017, 14:27

mapache escribió:@jaildesigner ¿es un cable USB a microUSB como el que se usa para flashear el TZXDuino? si es así te mando uno sin coste por correo ordinario.
No. Este es el adaptador que se necesita concretamente para los ZXUno Go+, que es el que tiene jaildesigner:

https://m.ebay.es/itm/201520561251

Yo lo estoy programando directamente en un arduino con cable USB a microUSB como comentas, porque lo he metido en una carcasa vacía de teclado de 48k.

Enviado desde mi Thor mediante Tapatalk

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: RE: Re: RE: Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por spark2k06 » 18 Sep 2017, 14:42

jaildesigner escribió:Qué máquina!! que bien que así poco a poco vamos cazando todos los conflictos, por escondidos que estén. Me sabe mal pero de momento no tengo capacidad para flashear el Arduino. A ver si me hago con el cable (que no cuesta tanto) y puedo seguir ayudando de la única forma que conozco que es haciendo pruebas y jugando.

Muchas gracias!
Gracias!

Neuro quería un teclado de gomas perfecto para el core de spectrum, y ahí está que esa parte no la he tenido que tocar para nada desde el principio. [emoji2]

Mi objetivo es que sea, si no perfecto, casi para el resto de cores, que la gestión de CAPS, pero sobre todo SYMBOL tiene su miga. Vuestra ayuda para encontrar gamusinos es muy necesaria, así que gracias a ti también por ello.

Cuando lo probemos bien, y añada un par de cosas mas que estoy afinando ya os diré y publicaré los cambios en mi github, y entonces daré por terminada mi misión, pero aun así corregiré cualquier cosa que vaya saliendo [emoji28]



Enviado desde mi Thor mediante Tapatalk

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por spark2k06 » 27 Sep 2017, 10:21

Tras varias pruebas por fin puedo dar por finalizada esta primera release de versión multicore alternativa mejorada, con las siguientes caracteristicas:

Imagen

El tema del Gryzor y otros juegos que hagan uso de OPQA-SPC de cores distintos al de ZXSpectrum queda resuelto gracias al antighosting para CAPS y SYMBOL que he incorporado. Asímismo, ya no deberían producirse ningún tipo de repetición de teclas, si esto sucede debería ser totalmente circunstancial y ajeno al propio firmware. No obstante, si se producen y encontráis la causa efecto relacionada con el firmware, lo revisaría sin problemas. Dicho lo cual, el principal inconveniente respecto a la versión multicore original quedaría por tanto resuelto.

La próxima mejora que llevaré a cabo en la siguiente y última release, será la compatibilidad con membranas de teclados +2A. Eso sí, para ello será necesario el uso de un atmega 644 o similiar, puesto que se necesitan mas entradas I/O.

Adjunto ZIP con varios ficheros. Los que dispongan de un ZXGO+, deben flashear el fichero "zxunops2-26092017-go.hex", el resto de ficheros son versiones alternativas para los atmega 168 y 328, con los switches NMI y VGA sin gestionar, porque solo son necesarios para el ZXGO+. Hay cuatro versiones para el 168 y otras cuatro para el 328, simplemente son distintas configuraciones de los pines de las fajas del teclado, para que se puedan adaptar facilmente a la configuracion que se haya llevado a cabo en el proyecto hardware del mismo:

zxunops2-DDMMAAAA-XXX-01 -> Mismo pineado que el Go+
zxunops2-DDMMAAAA-XXX-02 -> Faja de 8 pines en orden inverso al del Go+
zxunops2-DDMMAAAA-XXX-03 -> Faja de 5 pines en orden inverso al del Go+
zxunops2-DDMMAAAA-XXX-04 -> Fajas de 5 y 8 pines en orden inverso a las del Go+

Fuentes y binarios actualizados también en mi repositorio de github:

https://github.com/spark2k06/zxuno/tree/master/zxunops2

Por último, no quiero terminar sin antes agradecer de nuevo al resto de miembros de la comunidad que han hecho posible que podamos utilizar un teclado original de spectrum en nuestros ZXUno. @Quest por su trabajo inicial con el protocolo PS/2, @neuro_999 por el suyo propio con buena parte de la lógica de este proyecto e implementación inicial del resto de modos distintos al de ZXSpectrum, @ManuFerHi por su trabajo con el ZXGo+ y las pruebas con mi versión multicore alternativa, @antoniovillena por ayudar al resto de miembros de la comunidad con sus proyectos de hardware relacionados con éste, @Uto por la FAQ que se ha currado para el ZXGo+.
Adjuntos
zxunops2.zip
(77.39 KiB) Descargado 245 veces
Última edición por spark2k06 el 27 Sep 2017, 10:21, editado 2 veces en total.

Avatar de Usuario
neuro_999
Mensajes: 692
Registrado: 06 Oct 2015, 10:14

Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por neuro_999 » 27 Sep 2017, 14:07

Genial. :) a ver si vuelvo de vacatas y tengo un ratin para probarlo en el go+.
Enhorabuenaaaa.

Enviado desde mi ONE A2003 mediante Tapatalk

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: RE: Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por spark2k06 » 27 Sep 2017, 14:50

neuro_999 escribió:Genial. :) a ver si vuelvo de vacatas y tengo un ratin para probarlo en el go+.
Enhorabuenaaaa.

Enviado desde mi ONE A2003 mediante Tapatalk
Estupendo, disfruta de tus vacaciones y ya nos contarás tus primeras impresiones ;-)

Enviado desde mi Thor mediante Tapatalk

Avatar de Usuario
spark2k06
Mensajes: 1188
Registrado: 12 Feb 2016, 13:58

Re: ZXUnoPS2 en arduino, fuentes y binario.

Mensaje por spark2k06 » 16 Oct 2017, 09:24

Tras varios dias de trabajo y pruebas os presento mi versión definitiva:

-> Compatibilidad con teclados +2A/+3. (Atmega 644)

-> OPQA mapeado en cursores para el modo PC.

A partir de ahora solo haré modificaciones para corregir bugs, aunque está bastante probado. Por otro lado, elimino las versiones con configuración de pines alternativas y dejo las siguientes:

-> zxunops2-DDMMAAAA-go: Configuración de pines del ZXGo+, así como sus botones físicos adicionales de NMI y VGA-SWITCH.
-> zxunops2-DDMMAAAA-328: Igual que zxunops2-DDMMAAAA-go pero sin gestión de su botones físicos adicionales.
-> zxunops2-DDMMAAAA-168: Igual que zxunops2-DDMMAAAA-328 pero compilado para la versión 168 de atmega.
-> zxunops2-DDMMAAAA-644: Configuración de pines del addon de adaptador de fajas 11/13 para +2A/+3 de Antonio basado en atmega 644, y sin gestión de botones físicos del ZXGo+.

La versión de atmega 644 de @antoniovillena también permite conectarle fajas de 5/8 aunque sus conectores sean de 11/13, y funcionará igualmente bien. Vídeo de demostración de un teclado +2A con pegatinas de @Hark0, y mostrando el funcionamiento de la nueva característica de mapeo OPQA en cursores para el modo PC:

phpBB [media]


Por último, quería detallar la nueva característica de mapeo de OPQA en cursores, especialmente útil para teclados de gomas. Muchos juegos de PC están basados en cursores y sin ésta característica son injugables en este tipo de teclados. Éste es mi primer video que subo a Youtube en el que explico el funcionamiento de algo, está sin preparar ni editar así que ya me podéis disculpar si algo no se entiende bien, os lo explico en este mismo hilo si es necesario:

phpBB [media]


Como véis, utilizo un PC real con puerto PS/2 y MSDOS bajo DosBox... es un Fujitsu que adquirí gracias a este hilo de zonadepruebas, y con la tarjeta sd preparada por @Uto... muy barato y una solución perfecta para trastear con MSDOS, la potencia bajo emulación podría equipararse a un 486 con Sound Blaster:

http://www.zonadepruebas.com/viewtopic.php?t=6795

El teclado es correctamente detectado por la BIOS durante el arranque tal como se puede apreciar en el vídeo.

Adjunto binarios. En mi reposotorio de github, están los últimos fuentes y en el fichero de configuración config.h se pueden modificar de forma sencilla la configuración de pines para utilizarlo en proyectos derivados basados en éste.
Adjuntos
zxunops2.zip
(37.2 KiB) Descargado 233 veces

Responder