Commodore 64 > Desarrollo

Musk64: Pi1541 y Tapuino en 1 solo dispositivo

<< < (2/8) > >>

Dashiad:
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:
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:
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.

--- Fin de la cita ---
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:
Y da la Rpi para todo lo otro más esto?

Dashiad:
He estado estos días dándole vueltas a cómo integrar el puerto de cartucho.
Hay 2 problemas a resolver, en principio:

- El número de pines. Ni la raspi , ni ESP32 tienen suficientes pines como para conectar directamente al puerto.La Teensy si tiene, pero prácticamente no quedaría para otra cosa. Las alternativas serían usar shift registers o multiplexadores de I/O. Hay que tener en cuenta que los accesos al bus de datos/direcciones, hay que resolverlos en medio ciclo de reloj, o sea, a 2 Mhz, lo que deja 500 nanosegundos para proceso.. Esto descarta los shift registers. Los multiplexadores de I/O, o añaden muchos componentes, (multiplexores 2 a 1) o son lentos (multiplexores 4 a 2, 8 a 3..)

- Interfaz a 5V. Raspi, ESP32 y Teensy, no soportan 5V en sus pines. Así que hay que usar conversores de nivel. Y para el número de pines que tiene el puerto de cartucho, eso son *muchos* conversores de nivel. Se podría hacer con voltage dividers, pero al parecer a altas frecuencias añaden problemas.
En teoría, sería posible usar multiplexores 2 a 1, que a la vez soportaran 5V..Pero, de nuevo, son muchos componentes.

Hay algo que resuelve ambas cosas, y es usar un stm32, que es lo que lleva la kung fu flash (reemplazando el uso de fpga que hace EasyFlash 3), que tiene pines para aburrir (placas basadas en el STM32H743VIT6 , tienen más de 80 pines, y cuesta 16 euros). Esto tiene la ventaja de que simplemente, habría que portar el código de la kung fu flash. Y la desventaja de que esos procesadores funcionan a un máximo de 480Mhz, y, al menos con la teensy, esa velocidad no sería suficiente para emular la diskettera.

Eso lleva a un tercer problema: no bastaría con emular cada cosa "por separado", sino "a la vez".La diskettera y el datasette podrían ser excluyentes (o funciona una cosa, o funciona otra), pero no, por ejemplo, la diskettera y el cartucho. Y en esto, sí que las FPGA aún ofrecen ventajas sobre los microprocesadores. Ninguno de los anteriores es capaz de emularlo todo a la vez. Ahora mismo, la Teensy 4.1 me deja entre 240 y 180ns libres por ciclo. Siendo muy optimista con las optimizaciones que podría hacer, llegaría a 350-290ns libres por ciclo, que dudo que diera para mucho (teniendo en cuenta que tendría que multiplexar pins, etc,etc).
En definitiva, es necesario tener una combinación de micros/placas para hacerlo todo.Por lo que veo, la mejor combinación sería una raspberry pi zero w, sobre todo la versión 2 que ha salido hace unos días, ya que tiene 4 cores (el mismo procesador que la raspi 3), y el stm32.
Así que, por ahora, esperar a que me llegue el stm32, ver si puedo meter el código de kung-fu flash tal cual, y luego adaptarlo.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa