Joy2PS2 en ZXUno. Sugerencias, ideas, feedbacks, etc...

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

Joy2PS2 en ZXUno. Sugerencias, ideas, feedbacks, etc...

Mensaje por spark2k06 » 16 Jun 2017, 17:51

En este hilo se recopilarán y debatirán todas las sugerencias, pruebas, ideas y demás relacionadas con la interfaz Joy2PS2 :nespad: utilizado en el ZXUno, con el fin de priorizarlas y llevarlas a cabo en beneficio de todos los usuarios de éste.
Última edición por spark2k06 el 16 Jun 2017, 17:51, editado 5 veces en total.

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

Re: Joy2PS2 en ZXUno. Sugerencias y feedback.

Mensaje por spark2k06 » 20 Jun 2017, 06:21

Estoy investigando cómo se lleva a cabo la inicialización de teclado en un puerto PS/2 de un PC real, con el fin de simularlo desde Joy2PS2. Como no dispongo de osciloscopio ni analizador lógico, he realizado un programa para el mismo arduino de Joy2PS2. Aprovechando que éste dispone de doble puerto PS/2 puenteado, la idea es utilizarlo como sniffer pasivo de comunicaciones en ambos sentidos Keyboard -> Host y Host -> Keyboard y conectar un teclado real en uno de los puertos y el otro al PC real para volcar los resultados via conexión serie del propio arduino. Los eventos de teclado (Keyboard -> Host) parece que los capturo correctamente la mayoría de veces, sin embargo no estoy muy convencido del resultado que me devuelven los de Host, y creo que es debido a algún error en la codificación del programa:

Secuencia de arranque del PC
Imagen

Si alguien con conocimientos y que también pueda estar interesado (como @neuro_999) quiere revisarlo y me sugiere alguna idea sería estupendo. Lo he dejado compartido en mi cuenta de github:

https://github.com/spark2k06/zxuno/tree ... s2/sniffer

El código está basado parte en el código de UART2PS2 de Quest y parte en otro proyecto de github de 4 años de antiguedad denominado PS2Emu. El enlace a los mismos lo tenéis en el archivo LICENSE.MD

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

Re: Joy2PS2 en ZXUno. Sugerencias y feedback.

Mensaje por neuro_999 » 20 Jun 2017, 15:17

Yo creo q en esa comunicación hay codigos de raton mezclados​. Mañana a ver si tengo un rato e intento traducir esa conversacion. :)

Enviado desde mi ONE A2003 mediante Tapatalk

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

Re: RE: Re: Joy2PS2 en ZXUno. Sugerencias y feedback.

Mensaje por spark2k06 » 20 Jun 2017, 15:23

neuro_999 escribió:Yo creo q en esa comunicación hay codigos de raton mezclados​. Mañana a ver si tengo un rato e intento traducir esa conversacion. :)

Enviado desde mi ONE A2003 mediante Tapatalk
De ratón? Curioso, si solo tengo el teclado conectado, y las lineas PS2 del ratón no se tocan para nada. Cuando tengas la interfaz tu mismo podrás hacer pruebas. Entender esta comunicación es el primer paso para adaptarlo al core de XT, incluída su inicialización, luego hay que codificar el set 1 de scancodes.

Enviado desde mi Thor mediante Tapatalk
Última edición por spark2k06 el 23 Jun 2017, 11:52, editado 1 vez en total.

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

Re: Joy2PS2 en ZXUno. Sugerencias y feedback.

Mensaje por neuro_999 » 20 Jun 2017, 15:56

A ver si me llega el spliter mañana, que hoy no me lo han entregado y hago pruebas, que lo de usarlo de sniffer mola un huevo. :)

Enviado desde mi ONE A2003 mediante Tapatalk

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

Re: RE: Re: Joy2PS2 en ZXUno. Sugerencias y feedback.

Mensaje por spark2k06 » 20 Jun 2017, 15:59

neuro_999 escribió:A ver si me llega el spliter mañana, que hoy no me lo han entregado y hago pruebas, que lo de usarlo de sniffer mola un huevo. :)

Enviado desde mi ONE A2003 mediante Tapatalk
Ok. Ya me contarás ;-)

Enviado desde mi Thor mediante Tapatalk

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

Re: Joy2PS2 en ZXUno. Sugerencias, ideas, feedbacks, etc...

Mensaje por spark2k06 » 21 Jun 2017, 06:32

Esto marcha... inicialización de teclado desde Joy2PS2 (sin teclaso físico) en el core de PC/XT completada, JOY2PS2 DETECTADO!!! :mrgreen:

Imagen

Ahora mismo al pulsar cualquier tecla sale doble y sin sentido, esto es porque aún me falta por implementar el SET 1 de scancodes tras la inicialización para que sea totalmente compatible.

Seguimos...

Edito: He ido deduciendo los códigos que envía el host durante la inicialización utilizando el LED de arduino a modo de debug, lo ideal sería utilizar el sniffer anteriormente comentado, pero queda claro que los códigos procedentes del host no los está representando bien, la lectura pasiva de éstos se me complica, pero un sniffer vendría muy bien para depurar.

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

Re: Joy2PS2 en ZXUno. Sugerencias, ideas, feedbacks, etc...

Mensaje por neuro_999 » 21 Jun 2017, 08:56

Yo por lo que enviaste del sniffer supongo que para que funcione el teclado solo habra que que contestar con FA (ack) al F5 (parar teclado) luego cuando pide el test con FF mandarle un FA AA (ack y test correcto). Cuando pide el F2 (keyboard id) mandar FA 55 (ack y tipo de teclado). Otro ack para el FB (que significa que no espera codigos de soltar tecla) y otro ack para el f6 (poner parametros x defecto) . Igual hasta otro ack para el ED de poner los leds del teclado. :) aunqie si ya lo has hecho funcionar ya lo sabras.
Lo de las teclas doblea fijo que es por los codigos f0 de soltar las teclas. Envia solo las pulsaciones a ver si ya no van dobles. :)
Enhorabuena por ese avance. Ya no hay core que se te resista.

Enviado desde mi ONE A2003 mediante Tapatalk

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

Re: RE: Re: Joy2PS2 en ZXUno. Sugerencias, ideas, feedbacks, etc...

Mensaje por spark2k06 » 21 Jun 2017, 09:11

neuro_999 escribió:Yo por lo que enviaste del sniffer supongo que para que funcione el teclado solo habra que que contestar con FA (ack) al F5 (parar teclado) luego cuando pide el test con FF mandarle un FA AA (ack y test correcto). Cuando pide el F2 (keyboard id) mandar FA 55 (ack y tipo de teclado). Otro ack para el FB (que significa que no espera codigos de soltar tecla) y otro ack para el f6 (poner parametros x defecto) . Igual hasta otro ack para el ED de poner los leds del teclado. :) aunqie si ya lo has hecho funcionar ya lo sabras.
Si, lo he hecho funcionar en el core de PC/XT y en un PC real. El tema del sniffer es que no me puedo fiar, ya digo que la captura de códigos del host no me puedo fiar tal como tengo el código de interpretación pasiva de los mismos desde arduino. Por ejemplo el host tendría que devolver un F4 indicando teclado habilitado y seguro que estoy mostrando otro código que nada tiene que ver, porque la lectura activa (joy2ps2 haciendo de CLK) si es correcta, y se habilita, por eso me funciona.
neuro_999 escribió: Lo de las teclas doblea fijo que es por los codigos f0 de soltar las teclas. Envia solo las pulsaciones a ver si ya no van dobles. :)
Enhorabuena por ese avance. Ya no hay core que se te resista.

Enviado desde mi ONE A2003 mediante Tapatalk
Si, las teclas dobles es por eso, directamente voy a reconocer que es el SET 1 y voy a cambiar de códigos según sea necesario uno u otro, así funcionara sin problemas.

Gracias, hay que conseguir compatibilidad 100%!!! :-)

Enviado desde mi Thor mediante Tapatalk

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

Re: Joy2PS2 en ZXUno. Sugerencias, ideas, feedbacks, etc...

Mensaje por spark2k06 » 25 Jun 2017, 08:30

Que bueno, esto no me lo esperaba. Gracias a la inicialización de teclado ahora también funciona el conversor PS/2 a USB que tenía por aquí:

Imagen

He probado a jugar online desde el portátil a Alleycat con el gamepad (que por defecto usa cursores) y de maravilla :-)

https://classicreload.com/alley-cat.html

Edito: A ver si saco un hueco y lo pruebo con ZEsarUX...

Edito 2: Eso significa también, que debería ser compatible incluso con Mist también a través del conversor, a ver si alguien que tenga uno puede probarlo (@brunosilva ;-))

Responder