Autor Tema: Pi1541 y Tapuino en 1 solo dispositivo  (Leído 163 veces)

Dashiad

  • Commodoremaníaco
  • ****
  • Mensajes: 111
  • SYS 0
    • Ver Perfil
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..
« última modificación: Octubre 17, 2021, 17:13:06 por Dashiad »

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 11420
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #1 en: Octubre 18, 2021, 03:48:23 »
Súper interesante Dashiad, seguiremos los avances con interés!

No sé que tan complicado sea luego poner en marcha esto por cuenta de la gente, pero toda nueva alternativa es genial!

javierglez

  • Commodore Master
  • *****
  • Mensajes: 296
  • terminator not seen
    • Ver Perfil
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #2 en: Octubre 18, 2021, 12:17:58 »
Yo creo que si sustituye a Tapuino y a pi1541 ya está bien, porque ocuparía los mismos ports que un sd2iec pero con total compatibilidad.

Integrar el crt, creo que complicaría mucho el diseño, y el cartucho de easyflash es compacto y está bien estéticamente. Además esa combinación ya existe, es la Ultimate1541.

Y  tampoco veo estético tener un aparato con cables a todos los conectores. Especialmente para el joystick. Si fueran dongles sería otra cosa. Si tiene que haber otro cable preferiría que fuese para el port de usuario (el modem) que queda por detrás iguamente.

De hecho a mí lo que me gustaría sería un aparato que sustituyese al modem y a la unidad de disco. El datassette me da igual. 

Gabi64

  • Commodorero
  • **
  • Mensajes: 28
  • SYS 0
    • Ver Perfil
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #3 en: Octubre 18, 2021, 16:42:32 »
Que crack!!
Con kungfu flash aún mejor!
Yo abogo por hacer "el anillo único" y reunirlos a todos (los dispositivos)!!!

PacoBlog64

  • Commodore Master
  • *****
  • Mensajes: 247
  • INC $D020
    • Ver Perfil
    • PacoBlog64
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #4 en: Octubre 18, 2021, 17:05:22 »
Me parece una excelente noticia, espero que logres unificar las 3 cargas (cinta, disco y cartucho) en un solo dispositivo de bajo coste, yo ya me empiezo a cansar de andar trasteando con Tapuino, Pi1541, EF3 y KFF para cargar juegos  ;D Aunque funcionan muy bien, eso es cierto.
Commodoriano desde mis tiernos 7 añitos. ¿Quién necesita más de 1MHz, 64KB de RAM, 16 colores y 3 canales de sonido?

Dashiad

  • Commodoremaníaco
  • ****
  • Mensajes: 111
  • SYS 0
    • Ver Perfil
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #5 en: Octubre 19, 2021, 17:04:37 »
Otro proyecto de multi-device: https://github.com/idolpx/meatloaf
Al basarse en ESP32, creo que no va a poder ir mucho más allá (emula modem + IEC básico, no tengo claro si llega a una SD2IEC).
Permite tener un servidor web en algún lado, y cargar programas a través de LOAD "HTTP://....."..
Sobre el resto de los asuntos:
- Aún estoy muy muy lejos del punto donde la estética es el problema a resolver. En cualquier caso, no tendría por qué tener cables aparte de la alimentación (posiblemente, joysticks, si se añadiera soporte).

- La Ultimate ya está para muchas cosas. Existe SD2IEC, Pi1541 y otros proyectos, por motivos de precio y disponibilidad.
- Por otro lado, cuando salió la Ultimate, simplemente, no había otra forma de hacer lo que hace la Ultimate.Una FPGA era la única cosa, en ese factor de forma, capaz de dar esa funcionalidad. Pero a medida que salen microprocesadores más potentes, esto supongo que irá cambiando (sólo hay que ver todo el uso que se le da a la raspberry pi en el mundo Amiga). Un teléfono de 100 euros tiene un procesador que va más que sobrado para hacer lo que antes requería una FPGA. A medida que esos procesadores llegan a placas "de usuario", a precios muy muy bajos, lo lógico es que las vayan sustituyendo, al menos en el mundo de la  emulación de ordenadores de 8 bits.
Hay dos ventajas adicionales: primero, que no es necesario conocer VHDL o Verilog para crear dispositivos.Esa ventaja es lo que ha permitido el éxito de Arduino.No hace falta ser un ingeniero electrónico para hacer cosas.
La segunda, es la gigantesca cantidad de código open source que existe, y que es mucho más fácil de portar. Lo *ideal* sería portar directamente el código de VICE a un dispositivo pensado para funcionar con un C64 real. Si no me equivoco, la Ultimate no es open source, y, aunque lo fuera, de nuevo, ese código es territorio que requiere una cierta especialización.

Ese punto de "especializacion" es importante: la raspi no estaba pensada para cosas como replicar la disketera del C64, o un coprocesador de un Amiga. Tenía un procesador capaz de hacerlo, claro, pero eso requiere que se le programe en "bare metal", sin ningún tipo de operativo...Y para que eso funcione, tiene que haber librerías y documentación sobre cómo utilizar todos esos dispositivos (usbs, hdmi, wifi, memorias, SD...)..Documentar y crear APIs lo hacen muy bien placas como ESP32, Teensy, Arduino, etc , porque están pensadas para eso (usarse en "bare metal"), y la pi, no.
Como prueba, el código portado a Teensy 4.1 de la pi1541 tiene la mitad de ficheros. Y es porque sirven para cosas de bajo nivel de la Pi, cosa que los frameworks tipo "arduino" ya incluyen, no necesitas añadirlos a tu proyecto, saber para qué sirven, etc,etc.
Pero estaba claro que, con la potencia que da una pi, merecía la pena meterse en toda esa complejidad, en ese momento.

En resumen, procesar las señales que genera un ordenador de 8 bits (al menos), ya no es territorio exclusivo de las FPGA..Los procesadores necesarios ya están ahí, muchas veces falta simplemente una API simple.

javierglez

  • Commodore Master
  • *****
  • Mensajes: 296
  • terminator not seen
    • Ver Perfil
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #6 en: Octubre 19, 2021, 23:48:46 »
No se, yo te hablo como usuario, de Arduino estoy pez.

Mi comentario iba en la línea de que creo que la mayoría de la gente estaría encantada con un trasto que reúna tapuino+1541 y además no requiera una RPi. Y para fastloader/cartuchos ya estaría Easyflash que se complementa perfectamente. Y por tanto no necesitarías añadir mucha cosa más. Pero es solo una opinion claro.

Yo no tengo PI1541 pero en términos de compatibilidad todo el mundo habla bien, o al menos nadie habla mal, o sea que me imagino que va bien.

La Ultimate 1541 con el tema este del sector de semiconductores parece ser que no cree que pueda reanudar la producción y está estudiando rediseños.


Dashiad

  • Commodoremaníaco
  • ****
  • Mensajes: 111
  • SYS 0
    • Ver Perfil
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #7 en: Octubre 22, 2021, 00:48:31 »
Emulación de cartucho (y muchas otras cosas) con Raspberry Pi:
https://github.com/frntc/Sidekick64

Citar
- C64 kernal replacement,
 -GeoRAM/NeoRAM-compatible memory expansion,
 -freezer cartridges
 -Function ROMs on a C128, or
 -multiple SIDs and Sound Expander/FM emulation (up to 8 SIDs, e.g. to play The Tuneful 8)
 -simplified Datel and Sequential MIDI interface with built-in SoundFont-synthesizer (slightly modified
 version of TinySoundFont)
 -TED-sound and Digiblaster emulation for C16/+4 (to have all sound devices on one output)

But many more things are imaginable, e.g. 80 column cards with HDMI video output, custom accelerators/coprocessors etc.
Hablando con el autor, voy a portar el código de la pi1541 para que funcione con Circle, el framework de desarrollo para Pi en baremetal que usa Sidekick, y así poder integrarlo en su proyecto.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 11420
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Pi1541 y Tapuino en 1 solo dispositivo
« Respuesta #8 en: Octubre 25, 2021, 13:47:28 »
Y da la Rpi para todo lo otro más esto?