1
Desarrollo / Musk64: Pi1541 y Tapuino en 1 solo dispositivo
« en: Octubre 17, 2021, 17:04:27 »
Después de muuuucha pelea, finalmente he conseguido portar Tapuino y Pi1541 para que funcionen en una misma plataforma (Teensy 4.1:https://www.pjrc.com/store/teensy41.html)
Elegí la Teensy porque da mucho rendimiento (800 Mhz) a un precio ajustado ($26 + envio), en un tamaño inferior a un arduino o una raspi, con un interfaz de programación tipo Arduino, y suficientes pines/dispositivos (SPI,I2C,etc,etc)
Portar tapuino (al menos, la versión antigua) es bastante trivial, el problema ha sido portar pi1541.. En ambos casos, había que eliminar todo el código de interfaz de usuario, y el código dependiente de plataforma...y luego adaptarlo a lo que la Teensy 4.1 puede hacer.
Éste ha sido el principal problema, ya que emular la 1541 significa que hay que emular lo que las VIAs leen del cabezal de la diskettera, y este proceso funciona a 16Mz, y, con el código original, la Teensy no cumplía el timing requerido...Por algún motivo, la pi1541 utiliza floats para mantener unos contadores que realmente podrían utilizar enteros, y con este cambio se ganan los ciclos necesarios para hacerlo funcionar.
El siguiente paso a probar, es usar un ESP32 para dar conexion wifi a la Teensy. El test inicial es descargar un d64 de la red, guardarlo en la sd, y montarlo en la diskettera. Esto abriria la puerta a tener un feed de novedades de juegos, demos, etc, descargarlos y ejecutarlos directamente desde el c64.
Además, el ESP32 también da bluetooth, como ya usa rik en su unijoysticle, por lo que también se podría integrar el soporte de mandos bluetooth dentro de la misma plataforma.
Otra de las cosas que es posible hacer con la pareja ESP32-teensy, son actualizaciones automáticas, ya que sería posible flashear la Teensy desde el ESP32 (aunque no sé si sería necesario almacenamiento adicional para hacer esto).
Por otro lado, dar soporte básico a crts no debería ser complicado...habría que ver si sería posible portar código de Kung fu flash / EasyFlash y meterlo también en la misma plataforma..
En definitiva, la idea es tener 1 solo dispositivo, que haga cuantas más cosas mejor, y, suponiendo que seguirán saliendo placas cada vez más potentes, que migrar de una placa a otra no signifique reescribir proyectos completos, pero, sobre todo, añadir formas fáciles de acceder a las nuevas producciones y ejecutarlas en el hardware real sin tener que mover tarjetas SD de un lado a otro.
Ya iré dejando por aquí los avances que haya..
Elegí la Teensy porque da mucho rendimiento (800 Mhz) a un precio ajustado ($26 + envio), en un tamaño inferior a un arduino o una raspi, con un interfaz de programación tipo Arduino, y suficientes pines/dispositivos (SPI,I2C,etc,etc)
Portar tapuino (al menos, la versión antigua) es bastante trivial, el problema ha sido portar pi1541.. En ambos casos, había que eliminar todo el código de interfaz de usuario, y el código dependiente de plataforma...y luego adaptarlo a lo que la Teensy 4.1 puede hacer.
Éste ha sido el principal problema, ya que emular la 1541 significa que hay que emular lo que las VIAs leen del cabezal de la diskettera, y este proceso funciona a 16Mz, y, con el código original, la Teensy no cumplía el timing requerido...Por algún motivo, la pi1541 utiliza floats para mantener unos contadores que realmente podrían utilizar enteros, y con este cambio se ganan los ciclos necesarios para hacerlo funcionar.
El siguiente paso a probar, es usar un ESP32 para dar conexion wifi a la Teensy. El test inicial es descargar un d64 de la red, guardarlo en la sd, y montarlo en la diskettera. Esto abriria la puerta a tener un feed de novedades de juegos, demos, etc, descargarlos y ejecutarlos directamente desde el c64.
Además, el ESP32 también da bluetooth, como ya usa rik en su unijoysticle, por lo que también se podría integrar el soporte de mandos bluetooth dentro de la misma plataforma.
Otra de las cosas que es posible hacer con la pareja ESP32-teensy, son actualizaciones automáticas, ya que sería posible flashear la Teensy desde el ESP32 (aunque no sé si sería necesario almacenamiento adicional para hacer esto).
Por otro lado, dar soporte básico a crts no debería ser complicado...habría que ver si sería posible portar código de Kung fu flash / EasyFlash y meterlo también en la misma plataforma..
En definitiva, la idea es tener 1 solo dispositivo, que haga cuantas más cosas mejor, y, suponiendo que seguirán saliendo placas cada vez más potentes, que migrar de una placa a otra no signifique reescribir proyectos completos, pero, sobre todo, añadir formas fáciles de acceder a las nuevas producciones y ejecutarlas en el hardware real sin tener que mover tarjetas SD de un lado a otro.
Ya iré dejando por aquí los avances que haya..