Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Dashiad

Páginas: 1 2 3 [4] 5 6 ... 11
46
Desarrollo / Re:Pi1541 y Tapuino en 1 solo dispositivo
« en: Noviembre 12, 2021, 01:29:53 »
Así, resumido, sería algo del tipo:
Quiero incluir soporte de cartucho, lo que requiere muchos pines.
Un cacharro con tantos pines como necesita el cartucho, no es fácil de encontrar (en formato "plaquita"ya hecha, y barata...Si quieres diseñar tú la placa, soldarlo, etc...si..pero por ahora eso sí que es un lío para mí..).
El que encontré, es de la misma familia que el que usa kung fu flash...Y parece que es como 5 veces más rápido (en total),  sólo costando unos 16 euros. Asi que el código debería ser fácil de portar, y va sobrado de velocidad.

Los numeritos los pongo como referencia, porque con tanta placa, parece que son todas iguales...
- un arduino uno tiene "7" de velocidad.
- un STM32H750VB tiene "2424" (346 veces más rápido)

Por lo que he visto, emular la 1541 con el código de la pi1541, requiere una velocidad de unos "2500".
Y emular el cartucho, parece que requiere una velocidad de "470", más o menos.

47
Desarrollo / Re:Pi1541 y Tapuino en 1 solo dispositivo
« en: Noviembre 12, 2021, 00:25:52 »
Pequeño update, ahora que ya tengo la Pi zero 2 w, y la STM32H750VB ..
Por un lado, tengo más o menos claro que el interfaz de usuario es mejor que esté en el móvil, que añadirle una pantalla al conjunto.Esto abre muchas posibilidades interesantes.
La conexión podría hacerse por bluetooth, con la Pi zero. El problema es que en bare metal, no hay mucho desarrollado para soporte de bluetooth, por cuestiones legales.Otra posibilidad es hacerlo vía wifi, un pelín más engorroso a la hora de configurar, (hay que  especificar ssid, password, ip estática), pero mucho más flexible en la comunicación en sí.
Me ha dejado bastante sorprendido el STM32H750VB ... La placa en la que viene (16 euros), tiene 88 pines!! (más grande que la pi zero, más pequeña que la pi 3). La kung fu-flash se basa en el STM32F405GTR, que funciona a 168Mhz, con 1.25 DMIPS/MHz...Mientras la familia H750VB funciona a 480Mhz, con 2.14 DMIPS/Mhz ..
O sea, que no es que el 750 sea casi 3 veces más rápido que un micro que ya es capaz de emular el cartucho.. sino que ejecuta más operaciones por Mhz.
De hecho, el 750 tiene un coremark de 2424 Mhz, ligeramente superior incluso que el de la Teensy 4.1 (2313)..
Como referencia, un Arduino Uno tiene un coremark de 7 (!), un ESP32 (usado, por ejemplo, en el modem para el C64), 351 ... El BCM2837 (raspberry pi 3, raspberry pi zero 2 w), 15363 (4 cores, a 1.2 Mhz)
Asi que parece que el stm32h750 más que se sobra para el cartucho, y yo diría que sería capaz de emular la diskettera (pero no creo que las 2 cosas a la vez, ni dar wifi...)

Por otro lado, la pi zero 2 w, tiene el mismo procesador que la raspi 3 (con la mitad de tamaño y precio), pero con una velocidad de reloj ligeramente inferior. Asi que quise probar si la pi1541 funciona con esta nueva placa.
Hice el test, y, sí, funcionar...funciona. O sea, arranca...Pero no le da para comunicarse bien con el C64.
La pi1541 tiene soporte para la pi zero original, que lleva un procesador distinto, y para la que se hicieron optimizaciones que, si se activan tambien para el procesador de la pi3/pi zero 2, hacen que sí que funcione pi1541 decentemente. Estas optimizaciones son las mismas que hice para portarlo a la teensy 4.1, básicamente, evitar aritmética no entera (floats, doubles)


48
Preservación / Re:Manuales de usuario y guía de referencia
« en: Noviembre 11, 2021, 00:12:20 »
Muy bueno!! Descargado!

49
Desarrollo / Re:Pi1541 y Tapuino en 1 solo dispositivo
« en: Noviembre 03, 2021, 16:18:35 »
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.


50
General / Re:Guía de hardware nuevo para C64
« en: Octubre 25, 2021, 14:54:23 »
Ahh...Si, es el mismo autor, con dos proyectos diferentes..
Y me gustaría un BMC64...si tuviera todos los puertos originales..Entiendo que no tiene sentido como usuario (para que quieres un cartucho, si lo puedes cargar todo desde la raspi?) , pero para cacharrerar, sobre todo con cosas como los cartuchos, donde cualquier fallito de soldadura puede ventilarse el C64, tener una placa con una raspi y el VICE estaría bastante interesante..

51
General / Re:Guía de hardware nuevo para C64
« en: Octubre 25, 2021, 14:02:49 »
Pero lo que no entiendo es porqué está junto con BMC64...¿? si BMC64 ya es todo un emulador en si mismo... no sé, algo se me escapa! :P
Donde aparece el BMC64?
Yo lo que veo es que lo está pinchando a una placa de éstas modernas, llena de cacharros que reemplazan los chips originales (creo que he visto el ARMSID, y cosas de esas)


52
General / Re:Guía de hardware nuevo para C64
« en: Octubre 25, 2021, 11:50:50 »
Por lo que dice el titulo, y por donde está conectado, parece un reemplazo del chip de video.
Y..cuando he visitado la página del proyecto, efectivamente, es eso:
http://accentual.com/vicii-kawari/
Citar
VIC-II Kawari is my hardware replacement project for the VIC-II (Video Interface Chip II) found in Commodore 64 home computers. In addition to being compatible with the original VIC-II 6567/6569 chips, some extra features will also be available.
Me parece exageradamente grande para eso.
Aprovecho, y posteo aqui un link al Sidekick64, que me parece un proyecto que promete mucho:
https://github.com/frntc/Sidekick64

53
Desarrollo / Re:Pi1541 y Tapuino en 1 solo dispositivo
« 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.

54
Desarrollo / Re:Pi1541 y Tapuino en 1 solo dispositivo
« 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.

55
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..

56
Si estás en Madrid y quieres que le eche un ojo a la 1541 (aunque sólo he reparado Commodore 64, no disketteras), contáctame, y la miro por cacharrear(<-- no espero pago ni nada de eso)
Si te da DEVICE NOT PRESENT es que no hay ninguna actividad en el puerto serie. El ordenador pone a tierra la línea ATN, y el dispositivo no responde poniendo a tierra la linea DATA. O no está funcionando en absoluto, o una de las VIAs está mal, o...

57
General / Re:Cosas interesantes
« en: Junio 07, 2021, 19:57:45 »

58
General / Re:Jugando con el multipaint
« en: Febrero 12, 2021, 18:24:33 »
Un descarte, y uno casi terminado.

59
General / Re:Jugando con el multipaint
« en: Enero 04, 2021, 19:23:32 »
Mark VI..Probando degradados a ver si me entero de cómo van..todavía mucho que investigar (yo de color no entiendo mucho..y menos en el c64)..Siguen siendo dibujos hechos directamente en el multipaint, sin esbozo previo en papel, pero al menos hay algo de evolución.

60
General / Jugando con el multipaint
« en: Diciembre 27, 2020, 13:40:37 »
Este par de días de vacaciones me ha dado por ponerme con el multipaint, y hacer mis primeros pixel "art".. Aqui os dejo mi primer y mi tercer intento (el segundo aún está sin terminar).
Por ahora todo muy básico, sin conocer bien cómo combinar correctamente la paleta..Es por eso que lo primero que hice intenta buscar colores medio naturales...y no es como funciona el c64 :-P ..
En la segunda imagen empiezo a buscar algo que funcione mejor con la paleta.

Lo malo es que es (otra) cosa que engancha... :-P

Páginas: 1 2 3 [4] 5 6 ... 11