Emulación bajo ESP32

Avatar de Usuario
ron
Mensajes: 19089
Registrado: 28 Oct 2010 14:20
Ubicación: retrocrypta
Agradecido : 2130 veces
Agradecimiento recibido: 1908 veces

Re: Emulación bajo ESP32

Mensajepor ron » 12 Sep 2020 19:01

Último mensaje de la página anterior:

Gracias Jaime por documentar todo esto.

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

Re: Emulación bajo ESP32

Mensajepor ackerman » 15 Sep 2020 17:49

ron escribió:Gracias Jaime por documentar todo esto.

No hay de que. Para eso estamos.

Estoy convencido, que a la larga, saldrá algo interesante de aquí, sobre todo si colabora la gente. -drinks

En un par de días, que tardaré en limpiar código y pruebas chapuceras, publicaré un repositorio con el emulata de Gameboy.
He dejado una cache de hasta 8 bancos para el bank switch, que para muchos juegos, va muy bien, es decir, ya se puede jugar en tiempo real. -thumbup
Con esto, yo creo, que ya está bastante bien, y por ahora lo dejaré aparcado y seguiré con otros. Como dije desde el origen, no persigo la excelencia de la emulación, sólo la portabilidad.

Ya he empezado a portar la ATARI 2600 (le tengo mucha tirria), no es que me guste, pero creo que va a ser la más fácil de cargar ROMs directamente de internet por WIFI.

Me molaría pasar al CPC 464, pero primero hay que andar para luego correr.

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

Re: Emulación bajo ESP32

Mensajepor ackerman » 16 Sep 2020 20:56

Imagen

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

Ya he dejado en el repositorio una versión funcional con 2 juegos homebrew sin problema de licencias:
  • Retroid
  • Last Crow

https://github.com/rpsubc8/esp32gameboy

Se necesita:
  • Arduino IDE 1.8.11
  • TTGO VGA32 ESP32
  • Ponéis en preferencias: https://dl.espressif.com/dl/package_esp32_index.json
  • ESP32 espressif Systems 1.0.4
  • Libreria fabgl 0.9.0
  • Libreria Bitluini ESP32lib 0.3.3

En el fichero gbConfig.h se puede elegir:
  • fabgl con sonido, vga, teclado y 4 bancos de cache
  • vga32 sin sonido, vga, teclado y 8 bancos de cache

Los juegos se cargan pulsando el número 0 o 1.
  • F1 reinicia emulador.
  • F2 reinicia el ESP32.
  • F3 modo rapido de dibujo en rojo
  • F4 en gris
  • F5 Silencia el sonido
  • F6 Reproduce el sonido

Subiré más adelante una versión para windows, pero esa va a ir tal cual, porque es la que uso para hacer todas las pruebas, así que no va a ser funcional para un usuario final, sino para un desarrollador.
Y queda todo liberado bajo licencia WTFPL, para que se haga lo que brote.
Yo no voy a portar todo los emuladores de la lista, de hecho de atari sólo haré la 2600. Por eso va a ser importante que sea todo libre y colabore la gente.

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

Re: Emulación bajo ESP32

Mensajepor ackerman » 17 Sep 2020 16:38

Para facilitar la vida al usuario, he dejado los binarios compilados para poder subir sin falta de compilar.
Es decir, el usuario, necesita tener las esptools, que ya vienen incluidas con el IDE de Arduino, pero no necesita tener que bajar el código, instalar librerias y dar a compilar.

https://github.com/rpsubc8/esp32gameboy/raw/master/arduino/hex/hex.zip

Están las 4 opciones para usar fabgl y vga32, así como usar mucha RAM o poca.

Código: Seleccionar todo

f:\Users\AppData\Local\Arduino15\packages\esp32\tools\esptool_py\2.6.1/esptool.exe --chip esp32 --port COM44 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 f:\Users\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4/tools/partitions/boot_app0.bin 0x1000 f:\Users\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4/tools/sdk/bin/bootloader_qio_80m.bin 0x10000 v:\Temp\arduino_build_211050/gameboy.ino.bin 0x8000 v:\Temp\arduino_build_211050/gameboy.ino.partitions.bin


Se sustituye los directorios y archivos por donde los dejéis, y cambiais el puerto COM y velocidad por la vuestra.
He dejado la compilación superfácil, es decir, que no se necesita en la partición ni OTA ni Huge APP, ya que lo he dejado en menos de 1 MB (las 2 ROMS homebrew son de 256 KB cada una).

Si queréis añadir alguna ROM, hasta que no suba la utilidad que estoy haciendo, podéis tirar de esta:

http://tomeko.net/online_tools/file_to_hex.php?lang=en

Iré dejando más cosas para facilitar las tareas a aquellas personas que no siendo desarrolladores, deseen introducirse en dicha placa de la manera más fácil posible.

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

Re: Emulación bajo ESP32

Mensajepor ackerman » 18 Sep 2020 17:54

Ya está la tool para usuario que convierte hasta 10 roms metidas en un directorio a archivos .h con la estructura que pueda compilar. Esta tool (rom2h.exe) está compilada para consola Windows, pero está el código para que se compile en otra plataforma. De esta forma, ya podemos hacer nuestro propio preparado de emulador con las roms que queramos.
No se puede exceder del tamaño de la FLASH, que aunque es de 4 MB, con lo que ocupa el emulador, nos dejará para 3.5 MB. Si metemos muchas, hay que poner HugeApp al compilar.
Nos mete también el título recortado hasta 8 caracteres. Procurad no usar caracteres raros.

https://github.com/rpsubc8/esp32gameboy/tree/master/arduino/tools

Metemos los .gb en el directorio rom

Código: Seleccionar todo

 rom2h rom


Se generarán:

Código: Seleccionar todo

 gbrom.h
 gbRom0.h
 ..
 gbRom9.h


Y luego copiamos los .h al proyecto de arduino (hay que sobreescribir) y compilamos.

Avatar de Usuario
zx81
Mensajes: 333
Registrado: 23 Feb 2013 21:31
Agradecido : 26 veces
Agradecimiento recibido: 91 veces

Re: Emulación bajo ESP32

Mensajepor zx81 » 19 Sep 2020 10:29

Tanto pinchar con lo que estás haciendo que al final me he hecho con una plaquita de estas. Me ha venido una v1.4, no sé qué diferencias hay entre ellas.

Ahora, a ver si saco un rato y le doy leña al mono, que ando consumido por el Quartus....
Cuando utilizo una palabra, esa palabra significa, exactamente, lo que yo quiero que signifique. Ni más, ni menos.
Humpty Dumpty

Empieza a jugar sin tener que compilar: Emulador JSpeccy
ZX Spectrum bare-metal para Raspberry PI ZXBaremulator

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

Re: Emulación bajo ESP32

Mensajepor ackerman » 19 Sep 2020 11:06

zx81 escribió:Tanto pinchar con lo que estás haciendo que al final me he hecho con una plaquita de estas. Me ha venido una v1.4, no sé qué diferencias hay entre ellas.

-grin -grin Te engañé, has caido en una estafa ponzi. -grin Es broma, me alegra mucho, que hayas pasado a esta plataforma. Fijo que más gente hace lo mismo en cuanto vea lo que se puede hacer, por el precio y por ser GNU. Además, también se puede uno construir todo y sólo pillar el chip.
En principio, si no se me escapa algo, la diferencia de la 1.4 y 1.2 es que tiene el slot para la tarjeta TF, que es como llaman los chinos a las micro SD.
En el repositorio añadieron hace unas semanas el soporte para acceder a la SD.
https://github.com/fdivitto/FabGL

Ya verás como lo pasas pipa, además tu dominas y ya verás como de esta sale un pedazo de emulador. ¿Qué máquina tienes en mente?

Avatar de Usuario
zx81
Mensajes: 333
Registrado: 23 Feb 2013 21:31
Agradecido : 26 veces
Agradecimiento recibido: 91 veces

Re: Emulación bajo ESP32

Mensajepor zx81 » 19 Sep 2020 12:06

ackerman escribió:
zx81 escribió:Tanto pinchar con lo que estás haciendo que al final me he hecho con una plaquita de estas. Me ha venido una v1.4, no sé qué diferencias hay entre ellas.

-grin -grin Te engañé, has caido en una estafa ponzi. -grin Es broma, me alegra mucho, que hayas pasado a esta plataforma. Fijo que más gente hace lo mismo en cuanto vea lo que se puede hacer, por el precio y por ser GNU. Además, también se puede uno construir todo y sólo pillar el chip.
En principio, si no se me escapa algo, la diferencia de la 1.4 y 1.2 es que tiene el slot para la tarjeta TF, que es como llaman los chinos a las micro SD.
En el repositorio añadieron hace unas semanas el soporte para acceder a la SD.
https://github.com/fdivitto/FabGL

Ya verás como lo pasas pipa, además tu dominas y ya verás como de esta sale un pedazo de emulador. ¿Qué máquina tienes en mente?


De momento, probar a ver cómo va el nano y cómo se maneja. Tengo por aquí una ESP32 que compré allá por mayo y aún ni la he encendido. Y acabo de comprar otra... buf!. El lector de microSD es tan pequeño que no me había dado cuenta ni de que estaba.

Tengo instalado el IDE de Arduino por la Teensy 4.0, de modo que supongo que me servirá para trastear.

Un emulador que estaría bien tener para esa placa es el ZX81. Hay pocos emuladores de esa máquina y necesita pocos recursos para implementarla, aunque sospecho que es puñetera de programar, tiene tan pocos recursos que a veces eso complica la vida más que facilitarla.

Emulador de Spectrum no voy a hacer porque rampa ya hizo uno, lo probaré a ver y si se pudiera mejorar en algo (lo dudo) pues ya veríamos.

De todas formas, ando también trasteando con la Chameleon 96 y el Quartus muy duramente y me está absorbiendo por completo. O conseguimos que el día tenga 72h o no sé qué voy a hacer. -laughing
Cuando utilizo una palabra, esa palabra significa, exactamente, lo que yo quiero que signifique. Ni más, ni menos.
Humpty Dumpty

Empieza a jugar sin tener que compilar: Emulador JSpeccy
ZX Spectrum bare-metal para Raspberry PI ZXBaremulator


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