La placa avanzo mucho estos ultimos dias.
No me decidia sobre si poner uno o dos botones, y uno o dos leds, asi que puse 2 y 2, y como ya estaban todos los componentes necesarios en la placa, aproveche para ordenar un poco los cables y cortar los alambres del cristal.
Ahora la placa quedo asi.
Cuando empece a probar la placa con volantes, que no tienen ajuste de centro, tuve que implementar una forma de hacer que el centro del joystick de PC fuera una variable, para poder ajustarla con algun boton de la placa. Esto requirio reformar el codigo para que todo fuera variable, tanto las coordenadas X e Y del centro, como el rango de la zona muerta (la zona central que se toma como neutra, sin movimiento). Despues de eso, le agregue una funcion al boton 2 de la placa para que copiara los valores actuales de los ejes a la variable de centro, de esta manera, dejando el joystick/volante en el centro, se podia presionar ese boton y quedaba ajustado.
El tema fue que como no habia mucha informacion sobre el mouse, tuve que ir experimentando, y lo mismo con los paddles, por lo que quedo un codigo hecho a prueba y error. Cuando quise probar el ajuste del centrado del joystick, resulto que en algunos modos andaba y en otros tenia algun eje invertido.
Asi que no me quedo otra que volver al papel, ver como se contaban las coordenadas en cada modo, y rehacer el codigo de forma correcta, usando coordenadas universales para todos, de esa manera el centrado funciono perfectamente.
Despues hice varias pruebas en la C128, para ver si andaba en una maquina distinta, y todo anduvo perfecto.
Y llegamos a la actualidad, el ultimo modo que faltaba esta andando, el modo de emulacion de joystick atari.
Hice varias pruebas y ajustes hasta que quedo bien, y la prueba definitiva era el giana sisters. Al principio tenia un retardo en la reaccion, algo que con paddle y mouse no se notaba pero si se notaba en juegos de joystick como el giana. Pero despues de varias correcciones la placa paso la prueba exitosamente.
Como el joystick de PC tiene dos botones, puse por ahora el segundo boton como la direccion arriba, para los que quieren saltar en juegos como el giana sisters usando el boton, pero lo mas probable es que lo use mas adelante como autodisparo.
Por ultimo, dejo un par de fotos comparando las dos placas, la analogica original y la digital actual.
Estuve probando la placa en la Amiga 4000 y anda perfectamente emulando joystick atari.
Los otros modos son exclusivos de C64/C128.
Estuve mirando el manual tecnico de la TS2068, y deberia funcionar, pero hay que conectar un pin distinto en el puerto de joystick, ya que la masa esta en el 9, pero salvo eso es igual en lo que respecta a joystick digital.
En MSX hay muchas señales que estan en otro pin o son distintas, se puede cablear de otra manera pero no estoy seguro de que funcione.
En Atari 8 bits supongo que tendria que funcionar, por lo menos en modo joystick atari.
La placa por ahora esta usando un solo boton y un led, el boton 1 cada vez que se presiona brevemente pasa al siguiente modo de funcionamiento, que pueden ser:
Modo 1: Joystick atari
Modo 2: Mouse 1351
Modo 3: Paddles 1 y 2 (uno por cada eje del joystick)
Modo 4: Volante (esto es como un paddle pero con valores relativos), para la C64 es un paddle pero es mas comodo para usar con volantes.
Cuando la placa arranca parpadea el led tantas veces como sea el modo actual, como arranca en modo atari, parpadea 1 vez. Cuando se presiona el boton parpadea la cantidad de veces indicando el nuevo modo.
Si se presiona el boton durante mas de 2 segundos, al soltarlo el led parpadea rapidamente por 1 segundo, indicando que se configuro el nuevo centro del joystick.
Asi como esta es muy facil de usar, se conecta la placa, se cambia de modo, y se ajusta el centro.
Durante el desarrollo fui haciendo algunos videos de prueba que varios ya vieron, para el que quiere ver como funciona, en este video hice una prueba con la C128 y la placa en modo paddle, jugando al lemans en modo paddle, no a la version de joystick. En este caso estoy usando un volante de moto para PC.
El video lo subi temporalmente, supongo que tendria que subirlo a youtube mas adelante, pero por ahora esta en mi web para el que lo quiera ver, son 34MB.
Probando distintos juegos en modo atari descubri que habia un par de bugs que hacian que no anduviera en el puerto 2 o que arrancara mal en cualquiera de los puertos, pero ahora ya esta corregido.
Prueba exitosa en la Amiga 4000 con el juego Transplant y la placa en modo atari.