Tiny ESP32 Emudore C64

ackerman
Mensajes: 387
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecido : 179 veces
Agradecimiento recibido: 383 veces

Tiny ESP32 Emudore C64

Mensajepor ackerman » 23 Abr 2023 12:53

Creo esta entrada, no sólo para el port del C64 Emudore, que actualmente estoy portando, sino como guía de uso (recomendación, no obligación) de cosas a tener en cuenta a la hora de portar emulatas a plataformas de bajos recursos, como es el caso del ESP32. No se pretende la comparación de emulatas, en temas como que es lo mejor o lo peor, sino para que sirva como ayuda al desarrollo.

Los emuladores son escogidos al azar, no tienen importancia para el tema que se va a tratar.
Las mediciones, no son precisas, ya que no hace falta medir a máxima precisión, ya que con una mirada rápida a los números, ya se ve el alcance.

Si probamos el emulador Vice ver 3.2 rev 34843M de 32 bits en Windows, que está muy bien, con las opciones básicas del emulador C64 y con una resolución de 640x480, nos da un consumo de 37 MB de RAM.
vicever3-2rev34843M.gif
vicever3-2rev34843M.gif (2.29 KiB) Visto 882 veces

Si probamos el emulador DSP ver 0.21f de 32 bits en Windows (desarrollador Español Leniad), que está muy bien, disponiendo de código fuente para Lazarus (Pascal), nos da un consumo de 100 MB de RAM.
dspv0-21f.gif
dspv0-21f.gif (2.22 KiB) Visto 882 veces

Ahora probamos con el código del Emudore de Mario Ballano (está muy bien), el cual estoy portando, para ESP32. El código original, no dispone de emulación SID ni salida de audio, así que se lo he añadido, por lo que consume aún más RAM que el original. Estaba preparado para SDL2, de manera, que llega a consumir 32 MB de RAM en Windows con 640x480:
winemudoresdl2.gif
winemudoresdl2.gif (2.36 KiB) Visto 882 veces

Aplicando podados, convirtiendo todo a C, así como a SDL1, me queda con 640x480 y con sonido, en 3.6 MB de RAM:
winemudoresdl1.gif
winemudoresdl1.gif (2.4 KiB) Visto 882 veces


Se puede ver, como la versión final del emudore respecto a la original de SDL2, consume 8 veces menos de RAM, así como 10 veces menos respecto al Vice y 27 veces respecto a DSP. Y lo más importante, es que aún se puede seguir podando más.

Se ha escogido sólo un recurso básico como es la RAM, y se puede ver la mejora, eliminando cosas como librerías, funciones, orientación a objetos, cambio en tipo de datos, eliminación de código de tipo Dali y Da Vinci , etc...
La mayoría de las máquinas a emular, tienen 16 colores (4 bits), así que con trabajar con 8 bits de SDL y paleta, ya nos ahorramos recursos, frente a texturas de SDL2 o uso de canal alpha en SDL1, que serían entre 3 y 4 veces más el consumo de RAM.

Código: Seleccionar todo

 256 colores - 1 byte    - 8 bits
 RGB         - 3 bytes   - 24 bits
 ARGB        - 4 bytes   - 32 bits

 640x480x4  = 153600  bytes
 640x480x8  = 307200  bytes
 640x480x24 = 921600  bytes
 640x480x32 = 1228800 bytes


Con esto queda claro que en el desarrollo actual de emulatas se estan desperdiciando recursos, que eso, no quiere decir que este mal, dado que en PC se dispone de ellos.
En algunos emulatas, he llegado a ver el uso de diccionarios con librerías adicionales, como STL para el conteo de estados de CPU, que con un simple array, ya sirve.

Todo esto, hay que intentar reducirlo en dispositivos como el ESP32.

ackerman
Mensajes: 387
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecido : 179 veces
Agradecimiento recibido: 383 veces

Re: Tiny ESP32 Emudore C64

Mensajepor ackerman » 23 May 2023 19:08

Ya está la parte más pesada realizada, que es la de preparar el proyecto, reducir el consumo de RAM y que funcione sin PSRAM.
Se ha simplificado bastante, quitado los objetos y cambiado cierta funcionalidad (switch bank) para mejorar el consumo de CPU.
Queda mucho por pulir, dado que la parte de volcado de video original es muy pesada aún, pero es funcional y sirve para pruebas (23 fps en 400x300)

https://github.com/rpsubc8/ESP32TinyEmudore

En principio, ya hay una versión de test en ESP32, que no es lo mismo que algo eficiente y final.

Avatar de Usuario
Jinks
Mensajes: 2501
Registrado: 09 Oct 2013 16:47
Agradecido : 285 veces
Agradecimiento recibido: 395 veces
Contactar:

Re: Tiny ESP32 Emudore C64

Mensajepor Jinks » 24 May 2023 09:58

ackerman escribió:Con esto queda claro que en el desarrollo actual de emulatas se estan desperdiciando recursos, que eso, no quiere decir que este mal, dado que en PC se dispone de ellos.


Estoy seguro que no quieres entrar en todo lo que no sea emuladores, pero yo iría mucho más allá:
Con esto queda claro que en el desarrollo actual de emulatas se estan desperdiciando recursos, que eso, no quiere decir que este mal, dado que en PC se dispone de ellos.

ackerman
Mensajes: 387
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecido : 179 veces
Agradecimiento recibido: 383 veces

Re: Tiny ESP32 Emudore C64

Mensajepor ackerman » 25 May 2023 17:41

Jinks escribió:Estoy seguro que no quieres entrar en todo lo que no sea emuladores, pero yo iría mucho más allá

Si, no te preocupes, estoy de acuerdo contigo.
Yo di con retrowiki hace un par de años por uno de sus mejores hilos (pura crema), de Desencantado con el Software:

https://www.retrowiki.es/viewtopic.php?f=83&t=200034233

Ahí se trata el problema del fatware. Es un problema que sigue estando ahí con el paso de los años, por lo que el hilo va a envejecer muy bien.

Es cierto, que en el ámbito profesional, dado el fenómeno del cuenco arrocismo, la teoría del látigo y el tiene que estar para ayer, pues no queda otra que empatizar con este tipo de desarrollo, dado que la vida ya es bastante dura de por sí.

Tampoco podría dar una fecha exacta de cuando se fue forjando estas técnicas de desarrollo dentro de la ingeniera del software, pero digamos que si podría concretar cuando se dio el pistoletazo de barra libre (el vale todo), que serían los principios de los 90 con el 386, la memoria virtual y el recolector de basura. No es algo que se pueda asociar directamente a una compañía, a un grupo o a una persona individual, sino que fue algo de fácil adopción masiva, a lo que no se puso freno.

Avatar de Usuario
masteries
Mensajes: 1710
Registrado: 30 May 2018 11:33
Ubicación: Espaciando
Agradecido : 309 veces
Agradecimiento recibido: 1191 veces

Re: Tiny ESP32 Emudore C64

Mensajepor masteries » 25 May 2023 23:27

ackerman escribió:
Jinks escribió:Estoy seguro que no quieres entrar en todo lo que no sea emuladores, pero yo iría mucho más allá

Si, no te preocupes, estoy de acuerdo contigo.
Yo di con retrowiki hace un par de años por uno de sus mejores hilos (pura crema), de Desencantado con el Software:

https://www.retrowiki.es/viewtopic.php?f=83&t=200034233

Ahí se trata el problema del fatware. Es un problema que sigue estando ahí con el paso de los años, por lo que el hilo va a envejecer muy bien.

Es cierto, que en el ámbito profesional, dado el fenómeno del cuenco arrocismo, la teoría del látigo y el tiene que estar para ayer, pues no queda otra que empatizar con este tipo de desarrollo, dado que la vida ya es bastante dura de por sí.

Tampoco podría dar una fecha exacta de cuando se fue forjando estas técnicas de desarrollo dentro de la ingeniera del software, pero digamos que si podría concretar cuando se dio el pistoletazo de barra libre (el vale todo), que serían los principios de los 90 con el 386, la memoria virtual y el recolector de basura. No es algo que se pueda asociar directamente a una compañía, a un grupo o a una persona individual, sino que fue algo de fácil adopción masiva, a lo que no se puso freno.


Es que Ackerman, se encuentra muy poquita gente acostumbrada a programar para sistemas embebidos (microcontroladores o DSP), o con serias restricciones de Tiempo-Real hoy día; que son los sistemas actuales más parecidos a los micro ordenadores, o a las consolas de 8 / 16 bits; no en lo que respecta a la capacidad de cómputo, pero sí en tamaño del programa y RAM disponibles.

Lo más común es encontrarte con programadores que sólo usan Python, o programan para la web, o servicios en la nube... ahí el uso de recursos es infinito, como si no hubiera límite.

Por cierto, felicidades por el ejercicio de optimización de estos emuladores y portarlos al ESP32,
¡enhorabuena!
La maestría interior...

Vendo trapdoor 512KB A500: viewtopic.php?f=71&t=200034052
De 1MB A500+: viewtopic.php?f=71&t=200034115

Metal Slug Atari STE: www.youtube.com/watch?v=FMrdjrrtxWo

mvalder
Mensajes: 59
Registrado: 21 May 2023 02:04
Agradecido : 38 veces
Agradecimiento recibido: 19 veces

Re: Tiny ESP32 Emudore C64

Mensajepor mvalder » 26 May 2023 00:31

Enhorabuena y muchas gracias por los emuladores, ackerman.

Yo soy novato con el VGA32. He querido probar el emu de Commodore, porque os interesará saber cómo va en distintas máquinas. Desgraciadamente, no me funciona el teclado y me quedo en la pantalla del basic. la tecla F1 no me abre el menú ni ninguna otra parece hacer nada. No sé si habrá que hacer algo especial.

Sí me funciona perfectamente el Tiny Fairchild. Ahí van fotos:
ESP32Commodore.jpeg
(167.14 KiB) No descargado aún

ESP32Fairchild.jpeg
(78.91 KiB) No descargado aún


Por si sirve de ayuda, mi ESP32 es la TTGO VGA32 v1.4 de DollaTek, comprada en Amazon:
https://www.amazon.es/dp/B081JNFFQV

Enhorabuena y gracias de nuevo por el trabajo.

mvalder
Mensajes: 59
Registrado: 21 May 2023 02:04
Agradecido : 38 veces
Agradecimiento recibido: 19 veces

Re: Tiny ESP32 Emudore C64

Mensajepor mvalder » 26 May 2023 02:04

mvalder escribió:Por si sirve de ayuda, mi ESP32 es la TTGO VGA32 v1.4 de DollaTek, comprada en Amazon:
https://www.amazon.es/dp/B081JNFFQV

Enhorabuena y gracias de nuevo por el trabajo.


He corrido el programa para ver la versión del chip que puso ackerman aquí. Sale, cada vez que se reinicia:


ELF file SHA256: b1625f38d79d74aa

Rebooting...
REG_READ(EFUSE_BLK0_RDATA3_REG) 1010101010110000
EFUSE_RD_CHIP_VER_RESERVE_S 1001
EFUSE_RD_CHIP_VER_RESERVE_V 11111111

Chip Revision (official version): 1
Chip Revision from shift Opration 1
E (11433) task_wdt: Task watchdog got triggered. The following tasks did not reset the watchdog in time:
E (11433) task_wdt: - IDLE (CPU 0)
E (11433) task_wdt: Tasks currently running:
E (11433) task_wdt: CPU 0: loopTask
E (11433) task_wdt: CPU 1: IDLE
E (11433) task_wdt: Aborting.

abort() was called at PC 0x400d87d1 on core 0


Backtrace: 0x4008352d:0x3ffbe9dc |<-CORRUPTED


Como digo, soy novato absoluto con el ESP32. No sé si habré puesto las opciones correctas en el IDE de Arduino.

Espero que sirva para algo. Muchas gracias.

ackerman
Mensajes: 387
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecido : 179 veces
Agradecimiento recibido: 383 veces

Re: Tiny ESP32 Emudore C64

Mensajepor ackerman » 26 May 2023 18:50

mvalder escribió:la tecla F1 no me abre el menú ni ninguna otra parece hacer nada. No sé si habrá que hacer algo especial.

Bienvenido al ESP32 y muchas gracias por las pruebas. -drinks -drinks
El port del emudore, como está para pruebas, sólo he dejado soporte y código para usar desde teclado remoto, o sea, desde el monitor de VStudio o desde el putty configurado a 115200 baudios. Para sacar el OSD se hace pulsando el F2, ya que si pulsamos F1 saca la ayuda de VStudio.
Seleccionamos el PRG desde OSD, y escribimos RUN desde el BASIC para ejecutarlo.
El manejo de teclado remoto no se parece en nada al físico PS/2, por lo que su manejo parecerá algo artificial, pero es útil para pruebas, sobre todo para no tener el teclado al lado.

El emudore no tenía implementado el SID de sonido, por lo que le he añadido un proceso básico por código, pero en esta versión de pruebas, por ahora no saca sonido por ningún GPIO.
Y el video es vga 400x300, no he blindado todos los casos internos que trabajan a 403x284, por lo que se puede salir 4 bytes en el acceso a memoria de scanlines, provocando un reset.

El programilla que hice para detectar el chip era de andar por casa, lo importante es lo que te saca en el Setup:
Chip Revision (official version): 1
Chip Revision from shift Opration 1

Lo que le ocurre es que al quedar el loop sin nada, el manejador de tarea lo considera una entrada en barrena de bucle infinito (while(1)), y salta el perro guardian a morder para resetear.
Solución más simple, ponerle una simple espera:

Código: Seleccionar todo

void loop()
{
 delay(1000);
}


Así mismo, aunque el loop es un hilo, también es recomendable a futuro, romper los bucles en un loop si se usa el framework de Arduino, es decir, nunca dejar esto:

Código: Seleccionar todo

void loop()
{
 while (1)
 {
  hacer_mis_cositas();
 }
}

Romper el while(1):

Código: Seleccionar todo

void loop()
{
 while(do_loop)
 {
  hacer_mis_cositas();
  tiempo= milis() - tiempo_prev;
  do_loop = (tiempo< tiempo_maximo) ? 1: 0;
 }
}


De esta forma si en un futuro ESPRESSIF, ARDUINO, etc... añaden algo interno en el proceso final al terminar el loop, siempre se terminará procesando. Si no lo rompemos, jamás se ejecutará. Esto ya ocurrió con MCU inferiores, sobre todo con procesos de la UART (polling buffers) con revisiones que ponían una cosa y en otra la quitaban.
El nombre de loop no es casual, dado que es un bucle dentro de un hilo.

mvalder
Mensajes: 59
Registrado: 21 May 2023 02:04
Agradecido : 38 veces
Agradecimiento recibido: 19 veces

Re: Tiny ESP32 Emudore C64

Mensajepor mvalder » 27 May 2023 00:01

ackerman escribió:El port del emudore, como está para pruebas, sólo he dejado soporte y código para usar desde teclado remoto, o sea, desde el monitor de VStudio o desde el putty configurado a 115200 baudios. Para sacar el OSD se hace pulsando el F2, ya que si pulsamos F1 saca la ayuda de VStudio.
Seleccionamos el PRG desde OSD, y escribimos RUN desde el BASIC para ejecutarlo.

¡Muchas gracias por las explicaciones, ackerman!

He hecho un primer intento con el putty y puedo escribir en el BASIC, aunque la tecla F2 lo que produce es un carácter 2. En el terminal, me imagino que lo que va apareciendo es lo previsto:

Código: Seleccionar todo

FPS 23
FPS 23
FPS 23
FPS 23
FPS 23
FPS 23
FPS 24


Seguiré haciendo pruebas en otro equipo.

ackerman escribió:Lo que le ocurre es que al quedar el loop sin nada, el manejador de tarea lo considera una entrada en barrena de bucle infinito (while(1)), y salta el perro guardian a morder para resetear.
Solución más simple, ponerle una simple espera:

Muy útiles las aclaraciones sobre el IDE de Arduino. Efectivamente, poniendo el delay deja de resetearse la placa y se queda la impresión de lo que se ejecuta en el setup(). Tendré en cuenta tus recomendaciones para mis chapucillas.

Muchas gracias por tu trabajo y enhorabuena.

ackerman
Mensajes: 387
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecido : 179 veces
Agradecimiento recibido: 383 veces

Re: Tiny ESP32 Emudore C64

Mensajepor ackerman » 27 May 2023 09:09

mvalder escribió:He hecho un primer intento con el putty y puedo escribir en el BASIC, aunque la tecla F2 lo que produce es un carácter 2.

Se me había olvidado poner en la documentación la otra tecla para sacar el menú OSD, que es con el tabulador (TAB). Desde el putty, con el TAB sale el OSD y desde el monitor VStudio con el TAB o el F2.

Lo de los fps, son los frames por segundo y demás trazas que van saliendo.

mvalder
Mensajes: 59
Registrado: 21 May 2023 02:04
Agradecido : 38 veces
Agradecimiento recibido: 19 veces

Re: Tiny ESP32 Emudore C64

Mensajepor mvalder » 27 May 2023 12:34

Muchas gracias, ackerman.

Vaya por delante que no soy el probador más apropiado para Commodore, porque no lo he usado nunca. Precisamente cargué el emulador para ver cómo iba, ja, ja, ja.

Lo que hace la placa, probando con putty:

    fields1996: Carga el programa, con unas líneas horizontales en la presentación. Cuando llegas a "1: Jugar / 2: Instrucciones", pulses la opción que pulses vuelve al Basic.
    monopole: Se puede jugar bien.
    onstellthefuhrer: Se queda en la pantalla de carga.
    bmp1: Se queda en la pantalla de carga
    ilkkesirmarmot: Se queda en la pantalla de carga.
    multi: Se queda en la pantalla de carga.
    thesatelliteman: Se queda en la pantalla de carga.
    eyesofthestorm: Se queda en la pantalla de carga.
    lostworld: Se queda en la pantalla de carga.
    pacmanatari: Parece que se puede jugar, aunque a 20, 21 FPS. No consigo dar con las teclas para mover el pacman, ja, ja, ja.

Cada programa lo he probado reseteando la placa con el botón físico. Veo que no se corta la comunicación con el putty, que da estos mensajes:

Código: Seleccionar todo

HEAP BEGIN 310680
Inicio C64 ESP32
Constructor C64
SID jj_SID_Init
FIN SID jj_SID_Init
MEMORY_constructor Memory call setup_memory_banks
Set 0 all RAM and ROM (not set)
CIA1_constructor
CIA2_constructor
Vic_constructor
cols 403 rows 284
init_keyboard
IO_constructor
CPU_reset
PreparaPaleta
Antes de video
Fast Tiny Bitluni
vsync_inv_bit:0x00 hsync_inv_bit:0x00
Sync bits:0x00
Antes de video
END SETUP 168520
Reset global emulator
Constructor C64
SID jj_SID_Init
FIN SID jj_SID_Init
MEMORY_constructor Memory call setup_memory_banks
Set 0 all RAM and ROM (not set)
CIA1_constructor
CIA2_constructor
Vic_constructor
cols 403 rows 284
init_keyboard
IO_constructor
CPU_reset
FPS 35
FPS 39


Por otra parte:
    Cuando digo "Se queda en la pantalla de carga" me refiero a que no pasa de la imagen inicial. En algunos casos es evidente que no la carga completa, porque se ven líneas inconexas.

    Hay unas líneas horizontales que aparecen aleatoriamente en la pantalla sin ocupar todo el ancho. Más evidentes con los juegos que en la pantalla de Basic. En la captura de pantalla, sobre "2- Oriental Ave":
    vlcsnap-2023-05-27-12h26m25s796.png
    vlcsnap-2023-05-27-12h26m25s796.png (192.1 KiB) Visto 243 veces


    Debo decir que la pantalla que tengo conectada solo me ha dejado ejecutar el Tiny ZX Spectrum en la versión precompilada LKF320x200x70hzfabglFixDouble, por si esto influye. Es un Benq GW2480 y sus modos de pantalla están aquí.

Me alegra poder contribuir algo al desarrollo del emulador, aunque sea como probador lego. Muchas gracias y saludos.

ackerman
Mensajes: 387
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecido : 179 veces
Agradecimiento recibido: 383 veces

Re: Tiny ESP32 Emudore C64

Mensajepor ackerman » 28 May 2023 08:22

mvalder escribió:
Cada programa lo he probado reseteando la placa con el botón físico.

Muchas gracias por las pruebas. -drinks Tienes un truco, ya que en el menú del OSD existe la opción de Reset, donde el Soft es de reinicio del emulador y el hard es el del ESP32.
La carga de PRG lo he dejado parecido a un C64 real, por lo que lo normal, antes de cargar cualquier PRG, suele ser reiniciar el emulador C64 para dejarlo limpio. Más adelante, dejaré una opción en el OSD para si queremos modo AUTO para que nos haga el emulador el propio reset software y nos escriba RUN en el BASIC.

Esta versión de prueba está pensada sobre todo para pruebas de los modos de video, aún queda mucho para juegos. La versión anterior del port basada en el Toy C64, erá aun más simple, ya que ni disponía de modos gráficos.
Es un primer acercamiento a la reducción de recursos, que en este caso es memoria y espacio.

Los programas onstellthefuhrer, ilkkesirmarmot, thesatelliteman ,eyesofthestorm y lostworld son PRG gráficos del C64, es decir, programas para mostrar gráficos de la demoscene, no son pantallas de carga y luego viene el juego.
El multi y el bitmap son pruebas de multimode que realicé haciendo un gráfico desde el PrgStudio y lo mismo, sólo muestran gráficos.

Satellite man:
theSatelliteman.gif
theSatelliteman.gif (10.95 KiB) Visto 197 veces

https://csdb.dk/release/?id=179547


onstellthefuhrer:
onstellthefuhrer.gif
onstellthefuhrer.gif (8.88 KiB) Visto 197 veces

https://csdb.dk/release/?id=109186

lostworld:
lostworld.gif
lostworld.gif (11.88 KiB) Visto 197 veces

https://csdb.dk/release/?id=193440

El fields1996 lo metí para probar los modos gráficos con sprites y el sonido. El juego, no sólo falla en el emulador, sino que en el propio emudore de PC x86 también se queda en la carga del juego, por lo que requerirá meterse más a fondo cuando esté lo principal terminado.

El pacmanatari aunque hice una implementación parcial del joystick, no añadí el intercambio del puerto 2 por el 1, que es lo que necesita el juego, que se puede ver en otros emuladores si se prueba. Lo mismo, el joystick lo dejo para el final.
Los fps, cuando termine de modificar el volcado de video, aumentaran, hay que ir poco a poco. Por ahora está todo en 1 core, y la idea es optimizar lo máximo para un core, dando luego la posibilidad de usar 2 cores o hacer un skip. Actualmente, existe una opción en el OSD que permite saltarse la espera de CPU para aumentar fps.

Quedan muchas cosas por hacer, ya que por ejemplo, el modo carácter está desplazado un par de pixels a la derecha, que ocurría en el emulador original.

mvalder escribió:
Hay unas líneas horizontales que aparecen aleatoriamente en la pantalla sin ocupar todo el ancho. Más evidentes con los juegos que en la pantalla de Basic. En la captura de pantalla, sobre "2- Oriental Ave":

Es un efecto que le da un toque retro. -grin Es muy fácil de explicar, el emudore original usa doble buffer, de manera que en cada scanline para borde borra toda la línea, después le aplica cada modo de video, ya sea carácter o bitmap, y le vuelve a borrar la línea, para por último aplicar los colores de caracteres o bitmaps. Al eliminar el doble buffer, ese borrado con el color de fondo es lo que hace que aparezca la línea aleatoria, estilo linea de retrazo. El primer borrado de bordes ya lo eliminé, por lo que en BASIC sólo se notaría para el segundo de caracteres, mientras que en modo bitmaps se nota más. Es muy fácil de eliminar, pero lo dejo para subir todas las modificaciones de video que estoy realizando.

mvalder escribió:
Debo decir que la pantalla que tengo conectada solo me ha dejado ejecutar el Tiny ZX Spectrum en la versión precompilada LKF320x200x70hzfabglFixDouble, por si esto influye

Tienes la herramienta de andar por casa testvga para pruebas:
https://retrowiki.es/viewtopic.php?f=118&t=200039347

Las versiones precompiladas y el código fuente puede que están desincronizadas en el tiempo, voy subiendo sobre la marcha, por lo que para lo último, suele ser mejor recompilar. Los emuladores que corrigen ciertos modos de video en ciertas placas, por ahora juraría que sólo he dejado el del spectrum y zx81. El resto, habría que modificar el código de forma parecida.

mvalder
Mensajes: 59
Registrado: 21 May 2023 02:04
Agradecido : 38 veces
Agradecimiento recibido: 19 veces

Re: Tiny ESP32 Emudore C64

Mensajepor mvalder » 28 May 2023 15:43

¡Muchas gracias por las explicaciones, ackerman! Empezaba a pensar que mi placa tenía algo mal, je, je.

ackerman escribió:en el menú del OSD existe la opción de Reset, donde el Soft es de reinicio del emulador y el hard es el del ESP32 Más adelante, dejaré una opción en el OSD para si queremos modo AUTO para que nos haga el emulador el propio reset software y nos escriba RUN en el BASIC.

Gracias, lo había visto, pero soy un poco bruto y preferí hacerlo a lo bestia. Es muy interesante esa posible opción de que haga RESET y RUN automáticamente.

ackerman escribió:Los programas onstellthefuhrer, ilkkesirmarmot, thesatelliteman ,eyesofthestorm y lostworld son PRG gráficos del C64

TE confirmo que me aparecen los mismos gráficos que muestras y en el de ilkkesirmarmot veo el gráfico que está en el github.
Imagen

Gracias también por la aclaración del fileds1996 joystick y el pacmanatari.

[Las líneas horizontales...]
ackerman escribió:Es un efecto que le da un toque retro. -grin- (...)
ES muy fácil de eliminar, pero lo dejo para subir todas las modificaciones de video que estoy realizando

Sí, el efecto retro es total, je, je.

Parece entonces que mi placa VGA32 se comporta correctamente respecto al Emudore C64.

ackerman escribió:Tienes la herramienta de andar por casa testvga para pruebas:
https://retrowiki.es/viewtopic.php?f=118&t=200039347

Probaré los modos de vídeo en distintas pantallas a ver qué soporta cada una.

Muchas gracias de nuevo por el trabajo, ackerman, y ya queda menos. Cuando salga algún avance más en RW, si lo veo, haré más pruebas.


Volver a “TTGO vga32 v1.2”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado