Emulación bajo ESP32

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 10 Nov 2020 18:20

Último mensaje de la página anterior:

Para que os sea más cómodo el desarrollo, os dejo la paleta de colores para modo RGB 8 colores:
8colores.png
8colores.png (210 Bytes) Visto 676 veces

Va de 0 (izquierda negro) a 7 (derecha blanco)
Y la de RRGGBB 64 colores:
64Colores.png
64Colores.png (260 Bytes) Visto 676 veces

Va de 0 (izquierda negro) a 63 (derecha blanco)

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 11 Nov 2020 20:07

Ya he terminado una versión de test que funciona sin PSRAM en la TTGO VGA32 y con todas las modificaciones:

https://github.com/rpsubc8/ESP32TinyZXSpectrum

Imagen

He convertido el proyecto también a Arduino, para que lo compiléis con Visual Studio o con el IDE de Arduino.
Las cintas, por ahora sólo carga nativamente los programas de BASIC.
En un par de dias subiré la tool para convertir binarios a HEX al estilo del que hice para el emulador de la gameboy.
Lo que vaya modificando, lo iré metiendo en este repositorio.

dragonet80
Mensajes: 422
Registrado: 28 Nov 2017 12:36
Agradecido : 207 veces
Agradecimiento recibido: 161 veces

Re: Emulación bajo ESP32

Mensajepor dragonet80 » 12 Nov 2020 23:05

ackerman escribió: [*]Emulador NES, ATARI y SMS: https://github.com/rossumur/esp_8_bit/tree/master/src Usa salida PAL y NTSC, y está pensado para micros superiores y doble núcleo. Se requiere bypass de VGA, teclado y optimización de memoria.
[*]NES: Al igual que el anterior, está basado en Nofrendo https://github.com/espressif/esp32-nesemu Como casi todos los emuladores de NES para ESP32, sólo deja roms de 32 KB.Pensada para pantalla portátil LCD.

Mira, hoy me he encontrado con ésto:
https://www.instructables.com/Arduino-NES/
Mirando un poco por encima he visto que lleva el mapper 10, que el esp-8bit no lleva (son un par de juegos que lo soportan):
https://github.com/moononournation/ardu ... rc/mappers
No se si tendrá alguna mejora mas.

Por si te sirve de algo.

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 13 Nov 2020 17:59

Muchas gracias dragonet80. Como se suele decir, pues pa la saca -thumbup . Lo meto en la primera hoja del hilo.

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 14 Nov 2020 15:59

Tengo muchos frentes abiertos, pero sigo haciendo pruebas y mejoras del emulata de gameboy para la ttgo vga32.
He añadido modos de 4 colores con la salida de vga de 8 colores, y aunque no es muy agradable visualmente, es muy rápido.
Imagen

https://www.youtube.com/watch?v=F00ctuDlUbs&ab_channel=ackerman

Lo estoy dejando con varias opciones de compilación para elegir paleta azul, roja o la rara.

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 15 Nov 2020 13:25

Pues estamos de enhorabuena.
Ya tengo portado el emulador de CPC 464 con lo principal para que funcione en la TTGO VGA32.

Imagen

https://www.youtube.com/watch?v=_3QWmjH6noc&ab_channel=ackerman

Aún me quedan muchas cosas, pero va por buen camino.
Tengo más frentes abiertos, con más máquinas portadas, pero claro, como primero soy yo, -grin -grin -grin , pues voy a portar lo que más me gusta,y muchas opciones las dejaré sin hacer, porque por ejemplo, no busco ni emulación exacta ni pirateria (todos los sistemas de protección). Por eso, con el código que vaya liberando, ya vais vosotros haciendo lo que necesiteis.

Avatar de Usuario
Ben-kenobi
Mensajes: 523
Registrado: 01 May 2014 23:06
Agradecido : 8 veces
Agradecimiento recibido: 27 veces

Re: Emulación bajo ESP32

Mensajepor Ben-kenobi » 16 Nov 2020 16:06

ackerman escribió:Pues estamos de enhorabuena.
Ya tengo portado el emulador de CPC 464 con lo principal para que funcione en la TTGO VGA32.

Imagen

https://www.youtube.com/watch?v=_3QWmjH6noc&ab_channel=ackerman

Aún me quedan muchas cosas, pero va por buen camino.
Tengo más frentes abiertos, con más máquinas portadas, pero claro, como primero soy yo, -grin -grin -grin , pues voy a portar lo que más me gusta,y muchas opciones las dejaré sin hacer, porque por ejemplo, no busco ni emulación exacta ni pirateria (todos los sistemas de protección). Por eso, con el código que vaya liberando, ya vais vosotros haciendo lo que necesiteis.


-shock ¡ INCREIBLE !

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 19 Nov 2020 15:43

Muchas gracias a tod@s. He tenido suerte.
Hoy estamos ante un momento histórico:
Imagen

https://www.youtube.com/watch?v=9r09JuCpVJM&ab_channel=ackerman

En el video, está una prueba en la placa real TTGO VGA32 sin PSRAM. Aunque se puede ver como arranca el 464, 664 y el 6128, por ahora prefiero ser cauto, y prefiero centrarme sólo en el 464. Vale más apuntar bajo, que no disparar a todo lo que se menea y acabar en accidente. -grin -grin
Los colores raros, son porque estoy a pruebas en 8 colores.
No os podéis imaginar lo difícil que es el desarrollo, dado que estoy usando un sólo núcleo y sólo SRAM. Los que desarrollan para FPGA's, saben la dificultad de la limitación de usar sólo SRAM, pues en el ESP32, se multiplica por 256 el grado de destreza. Podria decirse que este proyecto es Titánico, pero a la larga, estoy seguro que marcará un antes y un después.
Para que os hagáis una idea, he reducido 1 MB de tablas precalculadas a sólo 64KB. El CPC es muy grandon, comparado con el Spectrum, pero que guapo es,se merece, todo el sacrificio. -thumbup -thumbup

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 21 Nov 2020 16:23

Ya tengo una versión para salida 8 colores y para 64 colores. No es exacta a la paleta del CPC 464, pero es lo más parecido.
Imagen

https://www.youtube.com/watch?v=l5APB84iWsE&ab_channel=ackerman

En el video se puede ver en funcionamiento en la placa real TTGO VGA32, como ejecuta el juego SOKOBAN. No es la velocidad final, estoy en pruebas que blindan el código, dado que el original tenía muchos gazapos (he corregido), que en PC y Nintendo DS, aguantaba el tipo. Estoy portando múltiples emuladores, alguno basado en el CrocoDS, por lo que es el doble trabajo, portar de DS a PC y PC a TTGO. El de DS como reducía la resolución de video, no me ha gustado como ha quedado, y estoy con el CPCEM.
Lo que es bastante cutre, es empezar por emuladores de PC actuales, porque aunque intentan ser fieles a la emulación, son muy lentos en ejecución y altos en consumo de recursos, lo que se traduce, en que al final hay que rehacer casi al 100% el código entero, y más que ayudar, entorpecen.

La memoria, tal y como he dejado escritos en la primera hoja, tenemos el problema de la fragmentación y el espacio máximo libre, es decir, que jamás podremos usar los 520 KB de RAM, es más, jamás podremos usar 128 KB libres lineales. Si usamos las sdk originales del ESP32, tenemos 3 tipos de SRAM, numeradas del 0 al 2. Como se está usando PLATFORMIO y Arduino IDE, no se dispone de este acceso a la SRAM de 3 tipos, sino que se encapsula en la IRAM (static) y la RAM dinámica(malloc). Por tanto, para conseguir 128 KB, por ejemplo, se podría usar el truco de 64 KB de IRAM y 64 KB de malloc. Aunque también se puede usar 4 bloques de 16 KB con malloc para ir seguros. La IRAM como máximo es de 96 KB, así que necesitamos controlar al 100% todas las variables que usamos. Por eso no tiene sentido usar un emulador sin despiezar hasta el último byte de consumo de RAM. Tenemos que saber absolutamente toda la RAM que estamos usando, además de reducir el consumo a lo mínimo.

Lo que pretendo con este hilo, tal y como comentaba desde el principio, es tener, una hemeroteca, donde cualquiera pueda participar y acceder sin falta de tener que pedir ayuda o permiso para usar las cosas, como suele ocurrir en otros proyectos. Es decir, pretendo que desaparezca la figura del gestionador, pero debe seguir un orden y autogestionarse, para que no acabe siendo un cajón de sastre o un basurero, en donde, se meta cualquier tipo de información, que al final sólo añade ruido. Por ejemplo, se puede usar un ARM Cortex o un Propeller de Parallax, pero entonces, pertenecería a otra clase de proyecto.

Avatar de Usuario
Alki
Mensajes: 53
Registrado: 23 Nov 2016 10:05
Agradecido : 3 veces
Agradecimiento recibido: 8 veces

Re: Emulación bajo ESP32

Mensajepor Alki » 21 Nov 2020 17:35

impresionante lo tuyo...

por cierto, no tienes lo de amstrad puesto en el repo no?

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 21 Nov 2020 18:02

Alki escribió:impresionante lo tuyo...
por cierto, no tienes lo de amstrad puesto en el repo no?

Muchas gracias.

cpc8colores.gif
cpc8colores.gif (9.9 KiB) Visto 176 veces


Aún no lo tengo el repositorio, porque estoy en fase de construcción, pero tranqui, que lo subiré pronto, como hice con el de gameboy y el ZX Spectrum. Primero subiré una versión de test, y luego ya subiré la versión más estable. Las versiones de Test estan pensadas para sólo probar con lo que viene.
Lo hago así, porque si subiera por ejemplo lo que tengo ahora y lo ejecutarais por error con salida de 8 colores en lugar de 64, directamente os arrancáis los ojos (se vería como la imagen que pongo). -rofl -rofl Aunque es cambiar un par de opciones o líneas de código, al final se quiere algo cómodo y rápido, y como se vea mal, va a dar mala sensación.

Y respecto a los otros emuladores, el de ZX Spectrum dejé la versión de test para que se pruebe que realmente funciona en placas sin PSRAM, pero aún falta que le meta la herramienta que convierta ROMs, SNA y TAPES a .H y que el OSD permita hacer scroll de ficheros. Es una tontería, pero aún no lo he metido. También voy a añadir la opción de emular y cargar DSK's al ZX Spectrum.

Todas estas opciones permitirán el dia de mañana que cualquiera pueda hacerse un custom emulator, y así si no quiere por ejemplo cintas, pues quita la opción, y si por ejemplo quiere un dispositivo raro, pues lo añada.

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 23 Nov 2020 14:08

Como una imagen vale más que mil palabras:

Imagen

https://www.youtube.com/watch?v=LAS3A6X4WJo&ab_channel=ackerman

Ya estoy en los últimos coletazos, y en nada saldrá una versión pública.
Como se puede ver en este video, ya he mejorado la velocidad, y va de lujo. Da la sensación de estar en un CPC real, sobre todo jugando al Prince of Persia.

Aclaro, que le he dado mil vueltas, pero los DSK's, vais a necesitar la tool que estoy haciendo para transformar a .H, porque la opción más óptima ha sido dejar toda la estructura de sectores, tracks y los datos RAW en si mismos del disco en Flash, y consumir 0 bytes de RAM. Si dejara todo el DSK tal cual, consumiría mucha RAM, y estoy como el QEMM. -grin -grin

Por ahora va a quedar una pantalla virtual de 400x300 pixels, que con zoom y unzoom gestiona los modos 160x200, 320x200 y 640x200. Pero estoy con un sistema alternativo que cambia a un modo de video parecido al específico, para optimizar aún más velocidades.
El sonido, lo gestiono, pero aún no saca nada físico, lo dejo para el final, pero pondré un modo dirty sound como siempre, que aunque no es lo más preciso, es lo más rápido para tirar millas, y para bajo consumo de CPU.

Este emulador de CPC da más vidilla que el Spectrum, porque va a dejar múltiples configuraciones de configuraciones.

ackerman
Mensajes: 128
Registrado: 05 Feb 2019 21:32
Ubicación: Asturias
Agradecimiento recibido: 75 veces

Re: Emulación bajo ESP32

Mensajepor ackerman » 25 Nov 2020 13:04

Al final, aunque no quería pararme mucho en el modo 128 KB, pues pasa lo de siempre, se termina uno metiéndose.

Imagen

https://www.youtube.com/watch?v=PWx-kQQ3cqU&ab_channel=ackerman

Es un modo no muy rápido pero de bajo consumo que permite ejecutar la demo de batman group. Voy ver si puedo reducir el consumo de ram para incluirlo o no.


Volver a “Emulaciones software, FPGA y otras soluciones”

¿Quién está conectado?

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