Bought TTGO 1.4 from e-bay (~£7.00), followed the instructions here (carefully), and all worked perfectly. Thank You. (I don't speak Spanish, but the video is well edited and everything you need to know is in the video.... use the English subtitles!). There are some nice 3D printable cases for the TTGO 1.4 board on Thingyverse, to finish it off. To quote Claudio, "Fabuloso, gracias. funciona de maravilla." Also, loving the IBM Model M keyboard, I don't use anything else.
@Davidprograma3 жыл бұрын
I'm glad you did it, it's a very convenient all-in-one board, great for emulating a speccy! All my videos have english and spanish subtitles, manually adjusted. I hope you used them.
@cristianherrera2031 Жыл бұрын
Muchas gracias!!! Vi los videos hace unos meses y compré un esp32 y ttgo vga32. Ya lo tengo funcionando. Tus instrucciones son muy claras. Quedé sorprendido de la potencia que tienen estos microcontroladores. Hace casi 30 años que no programaba y siempre me intrigaron. Este fue el incentivo para investigar y aprender a programarlos. Estoy alucinado con todo lo que se puede hacer. Tengo un nuevo hobby! Muchas gracias por compartir tu trabajo.
@Davidprograma Жыл бұрын
Hola! Me alegro mucho de haberte animado a investigar y cacharrear. Es muy divertido y gratificante ;-) El testigo del desarrollo lo ha cogido otro programador. Todavía tiene el desarrollo en fase beta. Más adelante, cuando él lo tenga más maduro, planeo hacer un vídeo. Pero si mientras tanto tienes curiosidad, le puedes echar un vistazo en retrowiki.es/viewtopic.php?f=118&t=200039114
@sharksdiy-projetos5881 Жыл бұрын
ola david programa , fantastico , instalei no meu esp32 ttgo , funciona perfeitamente parabens pelo projeto 😄
@retrocenturyxxi29233 жыл бұрын
IMPRESIONANTE !!! Sólo le falta un cajita y de lujo. Enhorabuena por el video
@Kaneoya763 жыл бұрын
Una maravilla , todo muy bien explicado, me suscribo 👍👍👍
@Y0Claudio4 жыл бұрын
Fabuloso, gracias. funciona de maravilla.
@noserastu4 жыл бұрын
Genial, eres un crack
@Davidprograma4 жыл бұрын
muchas gracias!
@duroweek4 жыл бұрын
Muy bueno David. Me ha gustado
@Davidprograma4 жыл бұрын
Gracias! :-)
@scriptguru8 Жыл бұрын
Thanks for this video! Conveniently, .z80 files work the same as .sna: just put them into the same sna folder and they'll be available from the same menu as .sna files
@alonsosanchezburgos72872 жыл бұрын
Muy buen trabajo, gracias, aunque no puedo disfrutarlo porque soy otro de los que acaba de recibir la plaquita la semana pasada y solo obtengo la pantalla negra, por lo que he leído aquí (que no me entero de casi nada), mas bien me da que pensar que los chinos nos han jodio algo, continuare leyendo aquí cada día, por si apareciera alguna solución. Muchas gracias David.
@Davidprograma2 жыл бұрын
Hola, siento que no te funcione. Yo también empiezo a pensar que el fabricante ha cambiado algo en la placa, yo tengo varias compradas entre 2020 y 2021 y sin problemas. Voy a tratar de conseguir una placa actual y ver si averiguo algo. Un saludo.
@Davidprograma Жыл бұрын
Hola, he podido probar con una placa de las nuevas, cortesía de Luis Miguel Serra, y tengo novedades. He descubierto que con el código actual, con las nuevas placas, no funciona el modo 4:3 320x240 (que es el modo por defecto). Pero el modo 16:9 360x200 funciona perfectamente. Tengo que investigarlo un poco más, pero hay una solución parcial: Editar el fichero boot.cfg y sustituir el asp169:false por asp169:true Si usas memoria interna, hay que modificar el fichero en el directorio data y hacer Upload FileSystem Image. Si usas tarjeta de memoria, hay que modificar el fichero en la tarjeta de memoria y ya. Evidentemente no debes cambiar el aspect ratio a 4:3 porque reseteará y no verás nada. Pero con este cambio, al menos puedes tener el emu funcionando en un monitor 16:9.
@alonsosanchezburgos7287 Жыл бұрын
Muchisimas gracia por tu esfuerzo en buscarnos la solución, en cuanto pueda probarlo te informo de si he sido capaz de hacerlo funcionar. Muchas gracias
@alonsosanchezburgos7287 Жыл бұрын
nada, creo que no me entero de nada o los archivos están cambiados en github, te explico: env:lolin32 no me sale en ningún sitio, solo env:pico32 En platformio.ini no me sale la opción para indicar el puerto com, que corresponda, me sale esto: [env:pico32] platform = espressif32 board = pico32 framework = arduino board_build.mcu = esp32 board_build.f_cpu = 240000000L board_build.f_flash = 40000000L upload_protocol = esptool monitor_speed = 115200 board_build.partitions = noota_3g.csv ;board_build.partitions = huge_app.csv build_flags = -w -DBOARD_HAS_PSRAM -mfix-esp32-psram-cache-issue y por ultimo edito el archivo boot.cfg y esto es lo que sale: arch:48K romset:SINCLAIR ram:Snake.sna slog:true no veo la opción para cambiar asp169:false por asp169:true. otra cosa que he observado es que en la televisión en vez de decir "sin señal", me pone "parámetros inválidos" no es igual lo que sale en tu video que lo que se descomprime del archivo ZX-ESPectrum-Wiimote-lilygo-ttgo-vga32.zip que me he descargado, por ejemplo en este ultimo hay una carpeta que se llama LIB y en el tuyo hay dos archivos mas platformio.ini, uno .linux y otro .osx. Seguramente en la pagina de github expliquen algo, pero como todo esta en ingles, no soy capaz de encontrar nada. Disculpa mi pesadez, ☹
@Davidprograma Жыл бұрын
Hola, el proyecto va evolucionando, pero el vídeo se queda como estaba cuando se hizo. Como resultado, muchas cosas ya no coinciden con lo que se ve en el vídeo. Desde hace dos años he añadido un montón de funcionalidades, mejoras y correcciones. He cambiado el URL del proyecto a github.com/dcrespo3d/ZX-ESPectrum-Wiimote, prueba con esa versión. Si el monitor te dice "parámetros inválidos", probablemente no sea capaz de visualizar la señal, pero seguramente sí que hay señal. En este caso quizás debieras probar con otro monitor. Ten en cuenta que este es un proyecto casero para cacharrear, nada garantiza que vaya a funcionar en todos los casos.
@SusanAmberBruce2 жыл бұрын
Hello David, I got my TTGO VGA 1.4 for £14.80, so exciting, I hooked it up and started running the VIC20 basic program counting to 1 million, it's up to 297345 so far :-)
@Davidprograma2 жыл бұрын
Hello Susan, I'm glad you got your TTGO. It's a great device which requires a bit of twiddling, but as you can see, the results are worth it! Enjoy!
@arantxagallegosomoza68203 жыл бұрын
David,eres un crack ;)
@Davidprograma3 жыл бұрын
Gracias, Arantxa!
@nicolaemuntean37422 жыл бұрын
Congratulations for your work but especially for sharing everything with us. Good health
@Davidprograma2 жыл бұрын
Thank you Nicolae, I'm happy if you enjoyed it. Regards!
@taraskyrychuk43404 жыл бұрын
Planifique una versión compatible con Arduino IDE ?
@stormbytes19704 жыл бұрын
Enhorabuena David, yo estoy esperando que me llegue la placa, entre tanto habia montado tu anterior emulador en una placa ESP32 DEV KIT V1, de momento a falta de conseguir un teclado ps/2 no he conseguido que funcione el wiimote , tengo dos , uno original y un clon chino , y ninguno lo detecta , por mas que que miro no se porque es , y me gustaria por lo menos jugar con el mando hasta conseguir un teclado
@Davidprograma4 жыл бұрын
Supongo que tu DevkitV1 traerá antena integrada... he tenido algunas placas sin antena y sólo detectaban el mando si estaba a pocos centímetros del chip. Yo trataría de probar únicamente la conexión al Wiimote para descartar que sea problema de la placa, en su día la probé con el IDE de Arduino con la librería ESP32Wiimote y una demo básica (incluida) que saca por el monitor serie los códigos de los botones que pulsas. Esa librería también está en github.com/bigw00d/Arduino-ESP32Wiimote
@stormbytes19704 жыл бұрын
@@Davidprograma creo q es problema de los mandos, he probado esa librería en concreto por separado y tampoco lo detecta, al hacer debug parece que los mandos envían una signatura distinta ya que según he leído son más modernos y creo q la libreria es para modelos más antiguos, así q de momento estoy atascado
@Davidprograma4 жыл бұрын
Sólo te puedo decir que intentes modificar la librería y tratar de comunicar con los mandos nuevos, puedes montarte un proyecto de prueba con PlatformIO que es bastante sencillo, incluyendo los fuentes de la librería y el ejemplo con su setup() y su loop(). No sabía que hubiera más de un modelo de mando de la Wii (el mando básico, no los extras que se conectan al conector de expansión), yo debo tener el modelo inicial.
@stormbytes19704 жыл бұрын
@@Davidprograma Gracias David, voy a intentar modificar la librería a ver si colocando la signatura de estos mandos el protocolo fuera igual.
@stormbytes19704 жыл бұрын
Definitivamente , solo son compatibles los mandos antiguos, aquellos que tienen su signatura como RVL-CNT-01, y son anteriores a 2011 aprox., la siguiente generación con signatura RVL-CNT-01-TR (el caso de los míos) al parecer tienen un firmware diferente(fuente: github.com/wiiuse/wiiuse) :( :( :(
@1billthekid2 жыл бұрын
Second question.... I see no /z80 subfolder in the /data folder; since you say you updated support for z80 files, can i create a folder and transfer files there, or should i copy .z80 files to the /sna subfolder?
@Davidprograma2 жыл бұрын
You're right, copy .z80 to /sna
@isaias40163 жыл бұрын
He descubierto hoy este video y el canal y me has convencido para pillarme un aparto de estos.
@Davidprograma3 жыл бұрын
Me alegro :-) pero que sepas que NO me llevo comisión :-P
@isaias40163 жыл бұрын
@@Davidprograma una preguntita, es posible la carga de roms desde la microsd?.Saludos.
@Davidprograma3 жыл бұрын
Hola Isaías, no es posible con el firmware actual (el software que corre en la ESP32). El fw actual carga ficheros en formato .SNA desde la flash interna, aunque en teoría se podría modificar para que leyera desde una tarjeta SD.
@Davidprograma3 жыл бұрын
Hola Isaías, he modificado el firmware en el repo de GitHub y ya se pueden cargar juegos desde tarjeta microSD (eso sí, o memoria interna o microSD, no ambas a la vez). Tienes que copiar todo el directorio /data a la raíz de la SD, y poner los juegos en .SNA en el /sna de la SD. Está explicado en el README.md, pero por si acaso: hay que comentar en hardware.h el #define USE_INT_FLASH y descomentar el #define USE_SD_CARD.
@isaias40163 жыл бұрын
@@Davidprograma muchisimas gracias!! Bueno una pena que no desde las dos pero en una micro sd desde luego se pueden meter muchos mas juegos. Deseando que me llegue la plaquita para cacharrear. Y gracias de nuevo.
@Mitrasto2211 ай бұрын
0:09 ese video del emulador donde esta?
@Davidprograma11 ай бұрын
Veo que lo has encontrado ;-)
@MrSofteam Жыл бұрын
Hola David! I tried to recompile the package for Lilygo TTgo VGA with a new Visual Studio Code/Platformio instalallation and it didn't show any picture on the screen, the serial monitor kept looping the reboot. I researched the other variants and in one of the comments I found out that with the latest Platformio versions, the local storage is not compiled and sent to the device, unless I run a separate command to do so. Even after the separate storage compiling, the ROM selection doesn't work, it shows 0.rom, 1.rom, 2,from, etc and gives an error on selection (no 128K or 48K menu items with their option). Is it possible to fix this and have the correct ROM menu selection function properly and the storage compiled and uploaded in a single pass? Muchas gracias!!
@joaquingayoneАй бұрын
Hola David! No se si leerás este mensaje, pero por las dudas te escribo. Esta barbaro el video, super claro. Pero tengo un problema. Si le doy energia a la placa y la conecto a un monitor antes de instalarle nada, aparece la pantalla por defecto con controles de volumen, pero cuando la conecto a la PC para instalarle desde Visual Studio, no me la reconoce, no me asigna COM. Tampoco la veo cuando la conecto por usb en la pantalla de Administracion de Dispositivos... que puede ser? Mil gracias!
@DavidprogramaАй бұрын
Hola, tiene pinta de que no te está reconociendo el puerto serie para comunicar con la lilygo. - Podría ser que el cable que utilizas no tenga conectados los pines de datos o que esté mal. Prueba con otro(s) cable(s). - Por lo general windows reconoce y autoinstala el driver del dispositivo usb-a-serie, pero a veces no lo consigue. Tienes un driver para la lilygo en www.wch-ic.com/downloads/CH341SER_EXE.html Por otro lado, el proyecto que sale en el vídeo está obsoleto y abandonado. ESPectrum sigue su camino en su propio repositorio: github.com/EremusOne/ESPectrum Ha habido grandísimos avances en el proyecto desde la versión que sale en este vídeo, merece la pena probarlo (soporta Pentagon y modelos TK de microdigital) ;-) Ahora incluso puedes flashear desde tu navegador web (tiene que ser Chrome o Edge): zxespectrum.speccy.org/flash/ Por otro lado, tenemos canal en Telegram, con bastante actividad: t.me/ZXESPectrum
@DrWhoRetiredWithMel2 жыл бұрын
Tengo varios programas particulares en cinta de casete. ¿Cómo hago para ejecutarlos en el emulador? Puedo pasarlos a formato .WAP y otros, pero no a .TAP pues uso Audacity. Gracias por una contestación.
@Davidprograma2 жыл бұрын
Hola, la verdad es que tiene que haber formas mejores de hacerlo. Y si conoces una forma, pues ya no buscas otras. Con un Spectrum y un DivMMC, cargo una cinta, y cuando está el programa cargado, pulso el botón NMI, y con la tecla S salvo un snapshot en la tarjeta de memoria. A mí me ha servido para preservar algunos programas que hice en su época. Si alguien que conozca una forma mejor (o más directa) lee esto, que lo cuente, por favor.
@DrWhoRetiredWithMel2 жыл бұрын
@@Davidprograma Estoy muy fuera de juego del ZX Spectrum pues hace más de 20 años que se me rompió, pero quería rescatar unos programas que hice yo (no juegos ni cosas de esas). No sé que es un DivMMC, no tengo el ordenador, solo veo que este aparato se compra y se pone en una pantalla con un ordenador y se conecta. Si me lo puedes explicar mejor, te lo agradecería, pues hay emuladores, pero no puedo grabar directamente las cintas de una cadena de música salvo en formatos música (.WAV, etc) y si pongo formato especial .TAP, parece que no lo graba, no me deja. Si con este sistema se pueden grabar directamente archivos que cargas desde un casete o equipo de música, entonces sí lo compro. He estado buscando información y es muy liosa sobre los emuladores. He descargado alguno pero no encuentro la forma. Gracias y saludos.
@DrWhoRetiredWithMel2 жыл бұрын
@@Davidprograma A lo mejor esto solo vale para programas comerciales de una lista y se cargan sin necesitad de casete. Lo mío son programas propios de contabilidad y gestión de empresa que hice. Era solo para ver cómo los hice. Y necesitan cargarse con cinta de casete. Gracias.
@Davidprograma2 жыл бұрын
Busca un emulador que te permita cargar de cinta de cassette. Haberlos haylos. El ESPectrum no, pero hay muchos otros. Como no es algo que yo haya necesitado hacer, no se decirte ninguno que lo haga.
@DrWhoRetiredWithMel2 жыл бұрын
@@Davidprograma OK, gracias
@noutram10003 жыл бұрын
Algo Excellant!
@estebhano2 жыл бұрын
En el modo emulador de Zx Spectrum BASIC ¿Puedes guardar los programas que escribas, en la misma tarjera SD, para recuperarlos más tarde, o se borran una vez apagues la placa? Gracias.
@Davidprograma2 жыл бұрын
Sólo se puede guardar un snapshot permanente con F4, y cargarlo con F5. No hay soporte para grabar en .TAP que es lo que serviría para grabar con SAVE y cargar con LOAD.
@estebhano2 жыл бұрын
@@Davidprograma Gracias David, por lo pronto creo que seguiré explorando otras opciones entonces. Ahora mismo he hecho algunas pruebas con la Raspberry Pi Zero y el Retropie. Simulando el Amstrad, he tenido el mismo problema de salvado, aunque el retroarch me permite guardar un estado concreto de la máquina (que puede ser similar a lo que comentas) y seguir trabajando más tarde en el mismo programa, pero no lo puedo sacar de ahí y exportarlo si quiero luego ejecutarlo en otra máquina. No obstante echaré un vistazo al GitHub, y quién sabe, igual me pido una plaquita de esas. Muchas gracias.
@Davidprograma2 жыл бұрын
Si lo que quieres es un sistema pequeño para programar en BASIC de máquinas antiguas, quizás lo más conveniente fuera un Raspberry Pi con algún linux ligero y emuladores específicos. Por ejemplo FUSE (spectrum) está muy bien y tiene muchas opciones, soporte de TAP, snapshots, etc. Para otros sistemas, emulador específico.
@asilvestrado2 жыл бұрын
Si permite un snap siempre puedes leerlo con otros emuladores o con algún dispositivo en spectrum.
@PaulYoung99s2 жыл бұрын
Brilliant, but it would be great to have a joystick for many games. Any thoughts on this?
@Davidprograma2 жыл бұрын
There is already support for the Wiimote controller. Any other controller protocol should require a specific development/integration. Depending on the protocol, it could be done, or not (there are just a few unused input pins on the device). Personally, I'm not interested in adding more control methods (with keyboard & wiimote I have all I need), but the source code is there for anyone to contribute and extend it.
@videosgcgabriel3 жыл бұрын
Hola buenas, primero de todo gracias por el tutorial. He seguido las indicaciones, pero no consigo que me funcione el PlatformIO IDE. Al incorporar la carpeta con el contenido del emulador que he bajado desde Github, me aparecen dos mensajes de error 1. "Error: TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string...." y 2. "Error: Could not start PIO Home server: Error: timeout at c:\Users\gabri\.vscode\extensions\platformio.platformio-ide-2.3.3 ode_modules\platformio-node-helpers\dist\index.js:1:5946...". Por otro lado, en la barra de estado de Visual Studio aparece un proceso que no termina nunca: "PlatformIO: Rebuilding Intellisense Index". Un saludo y gracias de nuevo.
@Davidprograma3 жыл бұрын
Tiene pinta de error de PlatformIO, no es la primera vez que me lo reportan, seguramente haya que actualizar algo de PIO o de VSCode.
@videosgcgabriel3 жыл бұрын
@@Davidprograma Muchas gracias por responder. A ver si alguien se ha encontrado con el mismo problema y ha encontrado la solución. Mirando en la web, hay reportadas incidencias de este tipo desde 2018... :-(
@Davidprograma3 жыл бұрын
Es una cosa que me molesta del software moderno: La actualización automática y obligatoria. Cuando tengo montado un entorno de desarrollo estable y operativo, quiero que funcione siempre, no que venga una actualización mala y me rompa todo (como parece ser el caso). Renuncio encantado a las funcionalidades nuevas y asumo los riesgos de seguridad. Pero a veces no es posible. Un saludo.
@LasRozasDeMadrid3 жыл бұрын
Va más rápido que el Spectrum original, se nota en la música del Manic Miner ¿Se puede cambiar la velocidad?
@Davidprograma3 жыл бұрын
Sí, de hecho ya está cambiada en en código que hay colgado en el repositorio de GitHub. El emulador del que partí no manejaba correctamente la memoria contenida (contended memory). Cuando la CPU y la ULA acceden a la zona baja de memoria (la memoria gráfica) la ULA, que genera la señal de vídeo, tiene prioridad; así que congela la señal de reloj del Z80, introduciendo ciclos de espera. El Manic Miner utiliza varios buffers off-screen donde va dibujando, y cuando ha terminado copia los buffers a la pantalla (gracias a eso la pantalla no parpadea nada). La copia se realiza mediante la instrucción assembler LDIR, y es una instrucción muy afectada por los ciclos de espera. He parcheado la emulación de la instrucción LDIR en el código del ZX-ESPectrum-Wiimote y aunque no es perfecta al 100%, por lo menos el ManicMiner parece que va a la velocidad adecuada. Eso sí, en el vídeo se ve la versión sin parchear.
@bubumarcianito56822 жыл бұрын
@@Davidprograma Justo iba a preguntar esto. El Manic Miner va como si no hubiera un mañana... Para mí es fundamental que la emulación sea tan perfecta que uno no pueda saber si está ejecutándose en una máquina original o en una emulación/clon. Y de momento parece que esto es así... Espero que con el tiempo vaya mejorándose el emulador.
@igorfarbizu47672 жыл бұрын
Me encanta tu proyecto. Lo que no consigo hacerlo funcionar. Sigo todos los pasos y parece que se ha garbado. Luego lo conecto al monitor y nada, no parece recibir ninguna señal. He probado la placa ttgo vga 1.4 con los ejemplos de FabGL y sin problemas, lo que me hace descartar un problema con la placa. No sé por dónde tirar.
@Davidprograma2 жыл бұрын
Hola, siento que no te funcione. Por tu comentario y el de otros usuarios empiezo a pensar que el fabricante ha cambiado algo en la placa, las que yo tengo compradas entre 2020 y 2021 funcionan perfectamente sin tocar nada de código. Voy a tratar de conseguir una placa actual a ver si consigo reproducir el problema y busco una solución. Un saludo.
@igorfarbizu47672 жыл бұрын
@@Davidprograma Muchas gracias David.
@Davidprograma Жыл бұрын
Tengo novedades. He descubierto que con el código actual, con las nuevas placas, no funciona el modo 4:3 320x240 (que es el modo por defecto). Pero el modo 16:9 360x200 funciona perfectamente. Tengo que investigarlo un poco más, pero hay una solución parcial: Editar el fichero boot.cfg y sustituir el asp169:false por asp169:true Si usas memoria interna, hay que modificar el fichero en el directorio data y hacer Upload FileSystem Image. Si usas tarjeta de memoria, hay que modificar el fichero en la tarjeta de memoria y ya. Evidentemente no debes cambiar el aspect ratio a 4:3 porque reseteará y no verás nada. Pero con este cambio, al menos puedes tener el emu funcionando en un monitor 16:9.
@igorfarbizu4767 Жыл бұрын
@@Davidprograma Gracias, lo probaré.
@antoniocabezafabret5737 ай бұрын
Quería preguntar si es un emulador tipo Rasberry o bien tipo FPGA, es decir que sea emulación más perfecta.
@Davidprograma7 ай бұрын
Es un emulador software (no FPGA), pero es baremetal (va sin sistema operativo). El arranque es casi instantáneo, la latencia es muy baja y la emulación es perfecta. Hay cores de FPGA poco pulidos que difieren bastante de la máquina real, y emuladores software bien acabados que son casi idénticos a la máquina real.
@Federico.Lyonnet2 жыл бұрын
Hola David. Muchas gracias por el video y el código. Ya lo tengo andando con un teclado ps2 y me gustaría conectarlo a un teclado ZX tradicional (gomas). Sabés dónde puedo investigar el asunto? Muchas gracias.
@Davidprograma2 жыл бұрын
Hola, tendrías que hacer un montaje similar al que propongo en mi vídeo kzbin.info/www/bejne/Z5XahqV5atSiesk con 8 pines para una cinta de teclado, y 5 pines para la otra. El problema es conseguir liberar tantos pines en la placa lilygo, creo que no se pueden conseguir los 13 pines. Hice un montaje precario hace tiempo, utilizando no la lilygo, sino un DevKit v4, que es un chip con 38 pines. El código lo tiene previsto con el #define ZX_KEYB_PRESENT. Pero hace mucho que no pruebo esa parte del código y seguramente no estén libres los pines y haya que modificar código para reasignarlo.
@alfredodorado2821 Жыл бұрын
y como es lo del raton si el spectrum no tenia....
@juanfranciscovera25244 жыл бұрын
Estupendo vídeo y muy bien explicado todo. He estado haciendo alguna prueba pero no he conseguido seleccionar, en el modo 128k, la rom, no puedo bajar el cursor y seleccionar, por ejemplo 128 BASIC, se queda en Tape Loader. Me puedes indicar si hay alguna combinación de teclas para ello. Muchas gracias por todo y enhorabuena por tu trabajo.
@Davidprograma4 жыл бұрын
Mayúsculas+6 flecha abajo, Mayúsculas+7 flecha arriba (y Mays+5 izquierda, Mays+8 derecha). El Spectrum 48K no tenía teclas propias de flecha de cursor, ésta era laforma de acceder a las flechas, y más tarde el 128 añadió teclas específicas de cursor, pero internamente la propia membrana de teclado (mediante una capa de membrana más) producía las combinaciones M+5, M+6, M+7, M+8. Algunos emuladores (éste no) mapean las flechas del teclado a M+5, M+6, M+7, M+8, pero no es trivial, hay que tener cuidado de no dejar teclas atascadas si se pulsa una flecha y 5/6/7/8.
@juanfranciscovera25244 жыл бұрын
@@Davidprograma Muchísimas gracias por la pronta y detallada respuesta.
@1billthekid2 жыл бұрын
Thanks for the video, this is great stuff! Have you any idea how to erase/reflash the internal memory if things go wrong?
@Davidprograma2 жыл бұрын
Just flash again, I have flashed hundreds of times during development.
@1billthekid2 жыл бұрын
@@Davidprograma Thanks! Tried it a few times, and all is ok. ;-)
@marcosgrima22373 жыл бұрын
Hay algo parecido para emular amstrad cpc 464 o 6128? Estoy buscando algo asi hace mucho tiempo.....O por ejemplo algun sistema para arrancar un rasberry pi en sistema basic como el del amstrad ?
@Davidprograma3 жыл бұрын
Hay un proyecto para emular Amstrad CPC en ESP32, consulta este foro: retrowiki.es/viewtopic.php?f=86&t=200036016
@alkizx23644 жыл бұрын
hola David, gracias a tu video, me he pillado la plaquita y va genial. Quería preguntarte si sabes si hay en algún lado del código donde poder configurar la orientación horizontal y vertical de la pantalla, ya que me sale muy desplazada a la derecha en el monitor, y aúnque la configuro manualmente en el monitor, sigue quedando un poco desplazada hacia la derecha, igualmente me sale un poco alta y la parte superior se me sale de la pantalla. Igual con suerte hay algún lado donde poder configurar eso. Gracias y un saludo.
@Davidprograma4 жыл бұрын
Hola Jesús, yo también he tenido algún problema similar con algún monitor y lo he podido solucionar con los ajustes del menú, pero supongo que en tu monitor no se podrá llegar más lejos de lo que has llegado. El código no lleva ningún parámetro para configurar lo que dices, pero le he echado un vistazo rápido y creo que puede arreglarse de la siguiente manera: - En el fichero ZX-ESPectrum.ino, en la función "void videoTask(...)" declara una variable "int xdisp = -16;", puede estar al principio de la función, entre la llave de apertura "{" y la primera declaración "unsigned int ff...". - En esa función aparecen 5 llamadas a la función "vga.dotFast(...)", haz un buscar y reemplazar y substituye las 5 apariciones de la cadena "vga.dotFast(" por la cadena "vga.dotFast(xdisp+" Con esto podrás mover la pantalla hacia la izquierda, con un tope en xdisp = -32. Para el vertical estás un poco más limitado, ¿no puedes probar primero a estrechar en vertical? Si no, puedes hacer esto: - Primero declara una variable "int ydisp = 8;" - Luego substituye la línea "if (vga_lin < 3 || vga_lin > 194) {" por "if (vga_lin < ydisp || vga_lin > ydisp+191) {" - Y la línea "byte_offset = (vga_lin - 3) * 32 + ff;" por "byte_offset = (vga_lin - ydisp) * 32 + ff;". El 8 es el valor máximo para ydisp, si lo pones más grande o bien perderás pixels de la parte de abajo o bien la aplicación hará un crash y reiniciará la ESP en bucle, no se lo que hará porque no lo he podido probar.
@isaias40163 жыл бұрын
Que maravilla con la ultima actualizacion. Ya queda poco para tenerlo perfecto.
@Davidprograma3 жыл бұрын
Gracias. La perfección es difícil de alcanzar, pero poco a poco empieza a ser un emulador digno.
@joelfleishman56674 жыл бұрын
Hola David, vengo del canal EMS. Una pregunta, está plaquita permite un Spectrum 128k?. Saludos
@rampamac4 жыл бұрын
permite hasta +3 (aunque no esta implementada la disquetera)
@Davidprograma4 жыл бұрын
Hola Joel, te confirmo que la esta plaquita permite Spectrum 128k. Saludos!
@Davidprograma4 жыл бұрын
Hola Ramón, tu respuesta me dió que pensar, teniendo en cuenta que partí de tu repositorio para mi proyecto :-) Resulta que en la documentación de la TTGo VGA32 v1.4 no menciona por ningún sitio la PSRAM, así que supuse que no tenía y seguí adelante. Pero tras leer tu comentario investigué y ví que la v1.1 sí que dice que tiene PSRAM... así que probé mi v1.4 y tiene 4MB así que soporta modos de 128K sin problemas.
@joelfleishman56674 жыл бұрын
@@Davidprograma genial, me pillaré una plaquita de estás. Enhorabuena por tu canal y gracias por contribuir a que el Specy siga dando guerra.
@mickpr3 жыл бұрын
Is it possible to implement keyboard beyond of 40 ZX Spectrum keys ? For example - Backspace on the PS2 keyboard in the emulated computer could invoked the sequence of keys SHIFT-0, or with the "apostrophe key - pressing the SymbolShift key and P key? What about the keys that require switching to specified mode (e.g. E mode and then push SC/SS + another key combination)? Could you help with any suggestion with that? How to get it?
@Davidprograma3 жыл бұрын
Hello, and thanks for your interest. Actual PS/2 keystrokes modify an array of 40 key status booleans* in the emulator code (true for pressed, false for not pressed), and that array is read whenever a IN instruction is issued from emulated Z80 to port 0xFE. You mention two cases: simple combination, and composite combination. The first one should be easy: detecting backspace key press, and then setting both internal key status "0" and "shift" to true, then setting both to false when detecting key release. The second one is harder, as it depends on mode sequencing implemented in Spectrum ROM Basic, and so, key states should be sequenced. For example, for assigning key "F8" to command "INK", we could set, when pressing F8, keys status "SS" and "CS" to true; set them to false when releasing F8, and then sequence the following events: wait 40 ms, set "SS" and "X" to true, wait 80 ms, set "SS" and "X" to false. The timings are orientative and would depend on actual testing, and a queue should be implemented for issuing delayed events. *They are arranged as 8 bytes, using 5 bits for each byte, like the spectrum ports. See function ESPectrum::processKeyboard().
@mickpr3 жыл бұрын
@@Davidprograma Your emulator is very good, I am fascinated by its possibilities and development stage. For the day I am trying to dig through the code. Of course, I found this table and I also think that an appropriate queue of sent keys will help there. Since we are using a PS2 keyboard, it would be a sin not to use such the rest of keys. This would facilitate writing programs on such a spectrum - especially with the use of ROMs, which do not send entire tokens, but single keys (such as gw03.rom). The "kempston" implementation is great. It would be good to do a hard or soft reset after pressing Ctrl-Alt-Del or for example F12. I will try to "figure it out", and I will share any code, of course. Thanks for your tips. :)
@Davidprograma3 жыл бұрын
@Michał Przybył I hope you are looking at one of the latest versions... Recently I did some heavy refactoring, hoping to make the code easier to understand, and structuring the different components into different files. At least, try to use version from 27 march (or directly, latest commit from yesterday, with better snapshot support). Good luck with your work, hope to hear from you soon! :)
@baltasarq2 жыл бұрын
Me gustaría hacer el montaje y meterlo en un teclado antiguo, pero no es PS/2, es el PC gordo viejo con un convertidor PS/2 de la última vez que lo usé. Pero para soldar al teclado necesito conocer el esquema para él. ¿Sabrías dónde encontrar ese esquema?
@Davidprograma2 жыл бұрын
Supongo que te refieres al conector AT, un DIN de 5 pines a 180º. Te dejo este enlace donde se ve la equivalencia entre AT y PS/2. Un saludo. www.kbdbabel.org/conn/kbd_connector_ps2.png
@MrSofteam3 жыл бұрын
Hello! Great accomplishment, congratulations! What chip is your board based on? The CP2104 or the CH9102F?? Gracias!
@Davidprograma3 жыл бұрын
Hello, when I purchased the TTGo there was no choice available, and my board has no such markings. Having read the specs, I would go for the CP2104. Cheers!
@MrSofteam3 жыл бұрын
I got the board, I uploaded the image as per the instructions, and it works. The only modes that don't run are Plus3 and Plus3E-they give only a black paper and stop there. Is there any fix, or am I doing something wrong? Thank you.
@Davidprograma3 жыл бұрын
Hello, unfortunately those modes are untested, and maybe unimplemented. I forked Rampa's repo, refactorized the code heavily and added some features, but I was satisfied with the 48k and 128k modes working. Games may be loaded only through snapshot (not even .tap is implemented), so the natural advantage of +3 modes, which is to have disk, is unimplemented. So I didn't really care a lot about those modes. Maybe another programmer could implement those, the repo is there in github for anybody to make it better. Regards!
@MrSofteam3 жыл бұрын
David, I understand, thank you again! Regards!
@chriscollins3717 Жыл бұрын
Good video but a little bit confused as to the location where the github files are unzipped to. Can anyone help please?
@oscarmoreno26033 жыл бұрын
Hola serie posible implementar otros tipos de archivos como los z80 o los tap o tzx que son mas compatibles. Ya que sna no me funciona practicamente ninguno en 128k. Un saludo!!!
@Davidprograma3 жыл бұрын
Es posible, pero lleva bastante trabajo y como estas cosas las hago en mi tiempo libre, puede que tarde bastante en añadir funcionalidades...
@oscarmoreno26033 жыл бұрын
@@Davidprograma ok esperaremos impacientes!! Buen trabajo!!
@Miki-ud4rp3 жыл бұрын
Muchas gracias, no conocía esta placa. Me he suscrito al momento a tu canal. Un pregunta: si se quieren meter más juegos, ¿ qué habría que generar otra imagen con los juegos nuevos y volver a flasear la memoria?
@Davidprograma3 жыл бұрын
Gracias por tu apoyo :-) Si usas la memoria interna, sí, hay que flashearla entera aunque sólo sea para meter un sólo juego nuevo. Pero ahora con el nuevo firmware que preparé, también tienes la opción de utilizar una tarjeta SD, y copiarle los juegos a tu aire.
@Miki-ud4rp3 жыл бұрын
@@Davidprograma Gracias por respuesta, pero la placa mostrada en el video tiene sitio para tarjeta SD?
@Davidprograma3 жыл бұрын
@@Miki-ud4rp Sí, tiene una ranura. Si te fijas en el minuto 1 exacto, entre mi dedo índice y la inscripción 20-4-28 hay una ranura para microSD.
@marditohroedore3 жыл бұрын
Hola David, me ha gustado tanto el video, que me he comprado el Lilygo, pero tengo un problema; el Visual Code no me reconoce el aparato una vez conectado por USB. He mirado desde el administrador de dispositivos de windows y si que se ve (no lo reconoce, pero se ve), con lo que no puedo subir el código. Leyendo los comentarios, he visto que un problema parecido se solucion instalando una versión anterior a la actual, pero tampoco ha funcionado...Alguna sugerencia?
@Davidprograma3 жыл бұрын
Hola, ahora mismo yo estoy con VSCode 1.55, PlatformIO Core 5.1.1 y Home 3.3.4, no se si con otras versiones tendrá algún problema. Tengo un PC en el que PlatformIO no me reconoce automáticamente el puerto de la Lilygo, esto es lo que yo hago: - Con la Lilygo desenchufada, voy a VSCode, a la pestaña devices de PlatformIO (también en menú lateral Quick Access -> PIO Home -> Devices), le doy al botón refresh y veo qué puertos me salen. Cierro la pestaña PIO Home, enchufo la lilygo y vuelvo a abrir PIO Home -> Devices, con lo cual ahora me aparece un puerto COMx nuevo. Ese puerto lo pongo en el fichero platformio.ini, como una línea upload_port = COMx justo antes de la línea upload_protocol = esptool Prueba a ver si así...
@marditohroedore3 жыл бұрын
@@Davidprograma bueno, pues he probado y nada. Sigue sin aparecer el puerto donde conecto la Lilygo. Voy a probar con otro pc a ver si asi...Muchas gracias por la ayuda y por todo, te ire contando
@Davidprograma3 жыл бұрын
@Tato Man La placa funciona? Viene con una app de demo, es una de las demos de FabGL; si conectas VGA y la alimentas tiene que sacar imagen. En el administrador de dispositivos te aparece como puerto COM, o como otra cosa? Si es un COM, puedes probar a ponerlo en el platform.ini a ver. Si es otra cosa, puede que falte un driver USB a puerto serie. No recuerdo haber instalado driver explícitamente para la lilygo. A mí me aparece como Silicon Labs CP210x USB to UART Bridge (COM4) en el administrador de dispositivos. Proveedor: Silicon Laboratories Inc Fecha: 19/09/2016 Versión: 6.7.4.261 Firmante: Microsoft
@marditohroedore3 жыл бұрын
@@Davidprograma Hola, he conseguido que vea la tarjeta. Efectivamente faltaban los drivers y he instalado los de Silicon Labs. El problema ahora es que en PlatformIO no me aparece la aparece la opción env:lolin32, y comparando con la captura de video que compartes, si tengo una que no aparece en tu video que es pico32. Y otra pregunta, como cargo las roms desde la tarjeta microsd? Muchas gracias de nuevo
@Davidprograma3 жыл бұрын
@Tato Man usa env:pico32, es la buena, cuando hice el vídeo creía que la buena era lolin32, pero en el repo tengo la pico32. Para cargar snapshots desde la microSD, tienes que copiar el contenido del directorio data (persist, rom, sna, boot.cfg) a la raíz de la microSD. Copia el contenido, no el directorio, boot.cfg tiene que estar en la raíz. También copia snapshots .sna o .z80 a la carpeta sna, que es desde donde se leen.
@YansterMors2 жыл бұрын
Buenas. No me da señal de video. Está la luz azul parpadeando constantemente. ¿Alguna solución?
@Davidprograma2 жыл бұрын
Habría que echarle un vistazo a la información de depuración que envía por el puerto serie. Se puede acceder a ella con el comando Monitor de PlatformIO.
@YansterMors2 жыл бұрын
@@Davidprograma No hay manera. Con arduino ide puedo cargar ejemplos pero con esto no me sale. Abro visual studio. Abro carpeta. En platofrm io en pico32 platform upload image y luego en default general upload y se queda en negro
@Davidprograma2 жыл бұрын
¿Qué dice la salida del comando general->monitor?
@Bullisbullis192 жыл бұрын
Acabo de recibir mi placa y me ocurre exactamente lo mismo. He probado también el Tiny ZX Spectrum que según su aurtor está basado en éste y ocurre exactamente igual. La ventaja del Tiny es que también viene el código de arduino, lo que descarta por completo que sea el Visual estudio el culpable, ya que el Tiny lo he compilado con Arduino ID. Antes de que alguien sugiera que mi placa no funciona, aclaro que si lo hace, porque he probado varios de los ejemplos de FabGL "Space invaders entre otros" y todos funcionan a la primera sin modificar nada. Mi conclusión es que esta placa es incompatible con éste emu. Quizá nos han tangado los chinos suprimiendo memoria, o vete a saber el qué, que por alguna razón usan los emus de Spectrum y los ejemplos de FabGL no. A ver si hay suerte y alguien más listo que yo encuentra la solución. Por mi parte voy a probar el emulador de Spectrum que me queda "Rampa, creo" y si funciona, editaré esto hoy. EDITO: El rampa tampoco funciona. Yo no creo que no saque video, pienso que ni siquiera funciona en nuestra placa. Como última prueba he vuelto a instalar el de David y lo he ejecutado como "Upload and monitor" tal y como ha recomendado David y efectivamente aparecen algunos errores pero no en programación, sino en ejecución y se queda en "Setting resolution at 320 x240". Para no ensuciar aún más el hilo de lo que lo he hecho, he subido un archivo a mi server con todo el meollo por si David o cualquiera que que le interese, quiere echarle un vistazo. El enlace es emuladores-retro.mermelado.com.es/spectrum/Log.txt
@Davidprograma2 жыл бұрын
Un amigo ha tenido un problema similar con el código y me ha dado una pista que todavía no he podido probar. Se trata de _eliminar_ la opción -mfix-esp32-psram-cache-issue del fichero platformio.ini (hacia el final). Y después upload and monitor como de costumbre. ¿Lo podéis probar y decirme si lo arregla? Gracias
@jorgeabad30083 жыл бұрын
Gran video, funciona super. DUDA NO CONSIGO PONER JUEGOS DESDE LA SD.GRACIAS
@Davidprograma3 жыл бұрын
Primero, tienes que cambiar las líneas en hardconfig.h de #define USE_INT_FLASH 1 //#define USE_SD_CARD 1 a //#define USE_INT_FLASH 1 #define USE_SD_CARD 1 Segundo, tienes que copiar el contenido del directorio data (persist, rom, sna, boot.cfg) a la raíz de la microSD. Copia el contenido, no el directorio, boot.cfg tiene que estar en la raíz. También copia snapshots .sna o .z80 a la carpeta sna, que es desde donde se leen.
@jorgeabad30082 жыл бұрын
Gracias por tu atención y rapidez he estado de vacaciones, me funciona la SD. Pero no consigo cargar rooms ni z80, no guardandolas con fuse ni na
@kunanam3 жыл бұрын
Estoy probando el emulador y es una pasada, ¿ como convertís los ficheros a .sna? he probado con Fuse pero hay algunos juegos que me dan errores en el emulador.
@Davidprograma3 жыл бұрын
A mi me dan error todos al guardar como SNA (dice que se perdieron algunos datos), pero luego funcionan ;-)
@kunanam3 жыл бұрын
@@Davidprograma probaré con otra versión de fuse a ver si tengo más suerte :)
@philippesteelant1896 Жыл бұрын
Hello , is it possible to save a basic program to a micro sd card that is inserted in the V1.4 unit ?
@Davidprograma Жыл бұрын
Not yet, but it's planned. There is a new, more mature version of the emulator. Please take a look at zxespectrum.speccy.org/descargas/
@TitoRico3 жыл бұрын
Hola, antes de nada decirte q tienes unos vídeos magníficos, gracias por el aporte. Quería preguntarte, a la hora de comprar la placa aparecen dos modelos (ch9102 y cp2104), cual recomiendas ? Gracias un un saludo.
@Davidprograma3 жыл бұрын
Hola, por la tabla que aparece un poco más abajo en la página, yo diría que el CP2104, que pone que soporta windows y mac, y la mejor velocidad de lectura/escritura (12Mbps), y además es es el más barato. De todas formas, cuando yo compré el mío, no había esta distinción, y no tengo muy claro cual de ellos tengo, no viene rotulado en la placa. Es el problema con algunos fabricantes chinos, que no sabes muy bien qué estás comprando. Algunos meses después de hacer el vídeo encontré un vendedor en ali que era más barato (~8€) y compré un par de placas 1.4, pero he consultado mis pedidos y ahora es más caro (~19€) así que no te dejo enlace. Asco de escasez global de semiconductores. Gracias por tus comentarios, un saludo.
@bymarcao2 жыл бұрын
es posible poner otros micros como el. ¿Amstrad CPC, C64, Vic20 y otros?
@Davidprograma2 жыл бұрын
Sí, es posible, pero no con mi emulador. Consulta en Retrowiki el excelente trabajo de Ackerman, que ha portado emuladores para todos esos ordenadores, te dejo enlace: retrowiki.es/viewtopic.php?f=86&t=200036016
@bymarcao2 жыл бұрын
@@Davidprograma La placa carecía de una salida de joystick
@Davidprograma2 жыл бұрын
No, no tiene entrada de Joystick. Lo que tiene son pines GPIO (entrada/salida de propósito general), por lo que uno puede programárse una entrada para algun protocolo sencillo de joystick modificando el código, y poniendo un conector adecuado.
@Miki-ud4rp3 жыл бұрын
Otra pregunta David: ¿es posible hacer esto con un Amstrad CPC?
@Davidprograma3 жыл бұрын
Conozco a un programador llamado Ackerman que ha desarrollado un emulador de Amstrad CPC para ESP32, aquí lo tienes: github.com/rpsubc8/ESP32TinyCPC Tienes más información en este foro: retrowiki.es/viewtopic.php?f=86&t=200036016
@llusocu2 жыл бұрын
Hola. Cuando arranca es instantaneo o esta unos segundos cargando el emulador?
@Davidprograma2 жыл бұрын
Hola, es prácticamente instantáneo. Tardará unos tres segundos...
@kunanam3 жыл бұрын
Hay forma de cargar programas de 128k ?, los SNA solo pueden ser de 48k ,no? por eso me daban errores en el emulador, un saludo !!
@Davidprograma3 жыл бұрын
Los SNA también pueden ser de 128K, pero el formato no es demasiado estándar, al contrario que el SNA de 48K. Puedes probar desde FUSE a ponerlo en modo 128, cargar un TZX de 128, guardar un SNA y tratar de cargarlo desde el emulador. La verdad es que el modo 128 no lo tengo muy probado... la rutina de carga aparentemente soporta SNA de 128, pero la rutina de guardar que escribí sólo guarda SNA de 48.
@kunanam3 жыл бұрын
@@Davidprograma Muchas gracias David, este finde hago más pruebas !!! es una chulada
@isaias40163 жыл бұрын
@@kunanam yo en 128k no me carga casi ningun sna de 128. Nose si con otro tipo de formato irian mejor. Pero al menos podemos disfrutar de gran parte del catalogo.
@ManuelFernandezAlvarez3 жыл бұрын
Muchas gracias por el video, al final me compré el "cacharrito", seguí tu pasos y ya lo tengo todo listo. ¿Alguien sabe si se puede cargar .tzx o algún otro formato?¿O transformar de manera masiva .tzx a .sna? De nuevo, gracias por el excelente trabajo David.
@isaias40163 жыл бұрын
@@ManuelFernandezAlvarez de momento solo soporta el formato sna. Y tendras que pasarlo uno a uno con el fuse u otro emulador. Recuerda hacerlo en modo 48k o te fallaran la mayoria. Un saludo.
@SolverTwins3 жыл бұрын
Primero felicitarte por el trabajo, funciona de lujo y para los que como yo empezamos en el mundo de la informática con este cacharro es un entretenimiento muy divertido ponerlo en marcha, a parte de que ya le meteré un poco de mano al código y te iré comentando ideas a ver que te parecen, preguntarte una cosilla, le he soldado directamente un altavoz (zumbador de tablet china), a la placa para que suene y la verdad es que suena casi tan mal como un spectrum, pero quiero subir el volumen, ¿me puedes decir como hacerlo?.
@Davidprograma3 жыл бұрын
Hola José Luis, me alegra mucho que estés disfrutando del cacharreo con esta placa, yo también he pasado buenos ratos y mi intención con el vídeo era que otros pudieran hacer lo mismo y conocer placa y emulador. En cuanto al código, he tratado de estructurarlo y hacerlo fácil de entender y modificar, a pesar de que la emulación no es perfecta al 100%. Con respecto al altavoz, te recomiendo que hagas un amplificador sencillo con un transistor NPN, al estilo del propio spectrum, que conectaba el pin 28 de la ULA (el pin GPIO 25 en nuestro caso) a la base del transistor (a través de un diodo que seguramente aquí no hace falta), el colector a +5V, y el emisor a un pin del altavoz, y el otro pin del altavoz a masa. Consulta los esquemas del spectrum, te valen los issues 3 a 5, el altavoz está en la parte superior izquierda del esquema, haz click en uno de los schematics: spectrumforeveryone.com/technical/zx-spectrum-pcb-schematics-layout/
@SolverTwins3 жыл бұрын
@@Davidprograma Muchas gracias le echare un ojo y preparo algún invento, la verdad es que ahora suena, como sonaba el Spectrum (bajito), pero por darle un poco mas de vidilla, lo otro que he visto como idea, es que en vez de leer la carpeta de archivos Z80 y SNA, preparar un define algo como #define SPECTRUM_DATABASE y leer un fichero de texto con los nombres de los juegos y los ficheros, de forma que se pueda leer el nombre completo del juego, he visto que el sistema de archivos no permite meter nombres largos, y como idea de poder, meter una base de datos básica, que tenga esa información, de lo que me dio de tiempo a mirar ayer cambiando un par de funciones del modulo fileutils lo tendríamos hecho, si me da tiempo me pongo a ello. Un saludote.
@rics9073 жыл бұрын
Buen video, ¿Aparte de spectrum se puede emular una NES o alguna consola retro?
@Davidprograma3 жыл бұрын
Sí, se pueden emular otros sistemas. Hay más gente desarrollando otros emuladores, te dejo este hilo de un foro retrowiki.es/viewtopic.php?f=86&t=200036016 y el canal de Ackerman que ha trabajado en desarrollar otros emuladores para ESP32 kzbin.info/door/piZacfBa9OzYQf37hgficgvideos
@rics9073 жыл бұрын
@@Davidprograma muchas gracias!!!
@cristian_rojas_0013 жыл бұрын
Exelente !!! ,Existe una versión del software para otro computador? Atari, Commodore? saludos?
@Davidprograma3 жыл бұрын
Existen muchos otros emuladores de otros ordenadores para Raspberry Pi, pero no son bare-metal, funcionan sobre un sistema operativo Linux. Pruebe a buscar RetroPie o Batocera. Un saludo.
@cristian_rojas_0013 жыл бұрын
@@Davidprograma Muchas Gracias, es genial tu canal, voy a implementar el emulador, saludos.
@Davidprograma3 жыл бұрын
Mis disculpas, respondí pensando que tu comentario estaba en otro de mis vídeos que va sobre Raspberry Pi. Para ESP32 hay otros emuladores, Ackerman está desarrollando varios de ellos, para C64, Amstrad CPC, Vic20 y otros. Te dejo un enlace a un foro donde podrás encontrar referencias a otros firmwares para emular otros sistemas. Un saludo. retrowiki.es/viewtopic.php?f=86&t=200036016
@Mitrasto227 ай бұрын
y sabes si existe algo asi par amstrad?
@Davidprograma7 ай бұрын
Existe una prueba de concepto de emu de Amstrad CPC para ESP32, hecha por Ackerman: github.com/rpsubc8/ESP32TinyCPC Próximamente el proyecto ESPectrum comenzará el desarrollo de un emulador de CPC para ESP32, pero tardará meses.
@dopierrexzx69563 жыл бұрын
Hola David, funciona muy bien con un teclado PS/2 y un Wiimote. Muchas gracias por este maravilloso proyecto!Noto que ahora tiene la opción de usar el teclado original del ZX Spectrum, me gustaría hacer un modelo similar al de StormBytes1970. Una precunta.. cómo se selecciona el menú sin F1 en el teclado original? (disculpas, mi español no es bueno, podemos escribir inglés si lo prefieres) Gracias!
@Davidprograma3 жыл бұрын
Hi, the key combination for the menu is CAPS_SHIFT+SYMBOL_SHIFT+ENTER. It's checked in function detectZXKeyCombinationForMenu in Ports.cpp. You should use the appropiate ESP32 pins defined as AD8-AD15 and DB0-DB4. Note some GPIO pins (34,35,36,39) are input only and you should use them for DB0-DB4, as set in hardpins.h. Your spanish is not that bad, I wouldn't have noticed if you hadn't said ;-)
@oscarperal83753 жыл бұрын
hay algo con salida HDMI ???
@grantasca3 жыл бұрын
kzbin.info/www/bejne/Z5XahqV5atSiesk
@MatteoPascolini Жыл бұрын
Can this emulate other computers of the era?
@Davidprograma Жыл бұрын
No, just the speccy. However, there are other emulator projects for the ESP32.
@Dejotaerre2 жыл бұрын
¿Esto es OTRO Spectrum emulado por software en vez de un hardware reimplementado con FPGAs? ¿que sentido tiene gastar un duro siquiera si se puede hacer exactamente lo mismo con PC relativamente viejo incluyendo una Raspberry PI 3 o 4?
@Davidprograma2 жыл бұрын
Tiene todo el sentido, exactamente el mismo que tiene hacer correr Doom en una cámara de fotos o en una impresora: porque se puede, y por todo lo que se aprende en el camino. El ESP32 es un microcontrolador, al contrario que un PC o un Raspberry Pi no lleva sistema operativo, sino un programa único ya que está pensado para ir embebido en otros sistemas (yo lo conocí trabajando en un cargador para coches eléctricos que lo lleva). Por no tener, no tiene ni salida de vídeo ni de audio dedicadas (aunque se pueden implementar por software/bit banging). Tampoco tiene entrada de teclado, también se implementa por bit banging. Tiene un procesador a 240Mhz y muy poca memoria, nominalmente 520kb, en la práctica mucho menos debido a la segmentación interna del ejecutable. Y con todo, es una máquina interesantísima para aprender cómo funciona un emulador, al no haber sistema operativo y tener que hacerlo todo uno mismo al correr en una máquina desnuda, se entiende mejor todo lo que está pasando, no hay capas por debajo que hagan cosas que no se llega a entender. Empecé a cacharrear con el ESP32 como una placa suelta pinchada en una placa de desarrollo conectándole cables (eso sí que fue barato). Después conocí la lilygo, que era lo mismo, pero ya venía con conectores montados, y me pareció más conveniente para personas que prefieren no lidiar con cables, pines, resistencias, soldaduras... Pero sigue teniendo su nivel de dificultad (y por tanto su nivel de satisfacción al hacerlo funcionar).
@beforth2 жыл бұрын
Por ~15 euros y subiendo...
@asilvestrado2 жыл бұрын
En mi caso vino con space invaders.
@Davidprograma2 жыл бұрын
Aparentemente el fabricante entrega la placa flasheada con una de las demos de FabGL: www.fabglib.org/ En mi caso, audio output demo. En el tuyo, space invaders ;-)
@asilvestrado2 жыл бұрын
@@Davidprograma es la versión 1.4, te doy las gracias porque tu video fué el que me animó a meterme en este berenjenal, pero la versión que me bajé de tu repositorio pone otro archivo de configuración y otro modelo, lo conseguí grabar pero no me funcionó, daba errores de rom del spectrum al resetear, llegaba a cargar algún juego pero no iba bien, al final le instalé una modificación de tu proyecto que de momento me inicia bien. En tu ejemplo imagino que tienes varias tarjetas o dispositivos pero con uno sólo el paso de definir el puerto se hace automático, es un poco confuso pero una vez que entiendes la dinámica debería de funcionar pero con la ansiedad de tener un engendro funcionando pues no estoy para buscar errores. ¿ Puede tener algo que ver con no tener una SD enchufada ?, he visto en tu documentación algo de la sd, también puede ser que tenga algo "raro" o diferente en mi ordenador y no me entere, con el entorno de arduino no he tenido mucho éxito. Lo tendré que mirar con calma. Espero que te sirva de algo lo que te he puesto.
@Davidprograma2 жыл бұрын
Hola Pablo. Con la guía del vídeo debería funcionar, salvo que ya no hace falta indicar el puerto COM ya que lo reconoce automáticamente (en la última versión del repo el fichero platform.ini ya no indica el puerto COM). Hay dos formas de utilizar el emulador: con ficheros en la flash interna (USE_INT_FLASH) o con ficheros en SD (USE_SD_CARD). El código del emulador hay que grabarlo en los dos casos (opción de menú "Upload"), y si se usa la flash interna, también "Upload Filesystem Image". Si se usa la SD, hay que copiar el contenido del directorio /data a la raiz de la tarjeta (de modo que /rom esté en la raíz). Si te falla puedes lanzar la opción "Upload and Monitor" y ver en la consola serie de qué error se queja. Otra cosa, tienes que estar en la rama lilygo_ttgo_vga32 del repo. La rama master tiene configurados los pines para otro cacharro.
@asilvestrado2 жыл бұрын
@@Davidprograma Volveré al repositorio por si me bajé el que no era, pasé por varios estados de susto, en un primer intento no arrancaba, luego me cargó un juego, después no reconocía las roms pero cargaba algún juego y daba error, entre medias no encontraba las opciones de upload que había encontrado antes, muy divertido. Gracias por responder y el proyecto, en una semanas te cuento, hice todo un poco apurado y esta vez me lo voy a tomar con más calma, tengo mono de 1982 Sinclair Research Ltd, se que tú me entiendes, yo me metí en la informática por un 16k.
@asilvestrado2 жыл бұрын
Buenas noticias, descargué otra vez el programa, modifiqué la configuración para SD, borré la memoria, subí la estructura, subí el código y copié unos juegos a la SD, de momento me funciona bien, me falló el spy hunter pero el resto me fue bien, probé de distintos tamaños, 16,48 y 128. Me extrañaba lo del PICO, respecto al del vídeo.
@Bullisbullis192 жыл бұрын
Hola de nuevo David: Si lees más abajo verás que he intervenido en una conversación sobre que no hay imagen y que he pegado un enlace con un log mío ya que tengo el mismo problema. Pero escribo ahora directamente en el hilo, porque acabo de confirmar lo que se insinua por otro usuario más abajo y que tu aclaras que no hay que bajar el del master y es que cualquiera de los dos son para la placa pico32 y en tu video pone claramente lolin32. No tengo ni idea de si ese puede ser el fallo, pero desde luego algo está mal. Te agradeceré me aclares esto y si es un problema de enlace incorrecto, pongas un link al correcto. Tambíen te agradeceré que le eches un vistazo a mi log, a ver que te parece. Muchas gracias y perdona las molestias. EDITO: Eliminada la linea que me has dicho y el resultado es el mismo, pantalla negra :(
@Davidprograma2 жыл бұрын
Un amigo ha tenido un problema similar con el código y me ha dado una pista que todavía no he podido probar. Se trata de _eliminar_ la opción -mfix-esp32-psram-cache-issue del fichero platformio.ini (hacia el final). Y después upload and monitor como de costumbre. ¿Lo podéis probar y decirme si lo arregla? Gracias
@Davidprograma2 жыл бұрын
He visto tu log y he encontrado algo raro... E (254) I2S: i2s_calculate_clock(1176): DAC clock calculate failed A mí no me pasa en mi placa. No estoy seguro de los detalles, pero el DAC creo se utiliza para generar señal de vídeo (en principio es un convertidor A/D de audio, pero llega a frecuencias tan altas que sirve para generar vídeo a resoluciones VGA). Creo que puede tener que ver, podría ser que hubieran cambiado algo en la placa, no sería la primera vez.
@Davidprograma2 жыл бұрын
En cuanto al nombre de la placa, ten en cuenta que estos proyectos van evolucionando, mejorando y corrigiendo errores. Cuando hice el vídeo el proyecto era todavía bastante parecido al emulador de Rampa, después lo modifiqué bastante y ahora es totalmente distinto (lo reestructuré y reescribí casi por completo). El nombre de placa lolin32 es la placa de desarrollo que usó Rampa, yo no lo toqué al principio porque me funcionaba, pero después ví que pico32 era más cercana a la TTGo, aunque ya no recuerdo exactamente en qué. Todas esas placas llevan ESP32 y son muy parecidas.
@Bullisbullis192 жыл бұрын
@@Davidprograma También me llamó la atención ese error. Pero pensaba que estaría relacionado con la emulación de audio. Por internet encontré algo de info sobre esto, rreferente a que da el fallo a partir de una versión, pero no entendí bien el asunto. Es posible que el problema esté en las versiones actuales de alguna parte de software y no de la placa. Quizá desactualizando cosas, pero qué?. También hay algún problemilla más en ese log. En fin, ahora estoy trabajando. Intentaré hacer hoy esa prueba que me has comentado, a ver que está pasando y comentaré resultados. Todavía no he votado al vendedor de la placa, estoy esperando a confirmar que funciona bien :)
@Bullisbullis192 жыл бұрын
@@Davidprograma Te lo repito aquí, poque igual no lo ves más abajo. Decía que mi gozo en un pozo, que he eliminado la linea y sigue igual :(
@_Jumbo_3 жыл бұрын
👍😊
@8088argentina2 жыл бұрын
perfect
@yuyulapqper7680 Жыл бұрын
top
@AlexanderAbramovNN4 жыл бұрын
Отличный девайс
@Davidprograma4 жыл бұрын
Спасибо
@razerov4 жыл бұрын
@@Davidprograma Pentagon-128 может сэмулировать?
@Davidprograma4 жыл бұрын
не с этой прошивкой, но я думаю девайс могло бы эмулировать Пентагон 128 с соответствующей прошивкой.
@rampamac4 жыл бұрын
Hola, me ha encantado el vídeo, soy uno de los desarrolladores del soft. Felicidades!
@Davidprograma4 жыл бұрын
Hola Ramón, encantado de saludarte. Soy el que os ha estado haciendo pull requests al repo este verano, aunque hasta ahora sólo había hablado con Jorge. Échale un vistazo a otro vídeo de este canal, "Emulador de Spectrum para ESP32 + teclado PS/2", donde consigo embutir una DevKit ESP32 WRover con cables y conectores dentro de un teclado PS/2 mini; en la Lilygo viene todo hecho :-)
@Bullisbullis192 жыл бұрын
Hola David: Enhorabuena por el trabajo, que me parece espléndido. Quería preguntarte sobre una duda que me surge con el ID de Arduino, ya que en el primer video pareces sugerir que puede usarse, pero en este video parece que por narices hay que usar visual studio, que nunca se ha llevado bien conmigo y estoy más hecho al IDE de arduino. Podrías aclararme este punto y de ser posible hacerse, unas pequeñas instrucciones? Muchas gracias. Edito: También quisiera saber si has probado a usarlo con adaptador hdmi, a ver que tal va. Aprovecho para pasar un link que en lugar de 15,24€, vale 15,90€, pero que los portes son gratis, frente a los exagerados 8,39€ del de tu enlace. Parece exactamente el mismo, así que te ruego revises el link y si lo consideras oportuno, pues actualices tu enlace. es.aliexpress.com/item/1005003908378632.html?spm=a2g0o.detail.1000014.4.2ac764a280KUuv&gps-id=pcDetailBottomMoreOtherSeller&scm=1007.40050.281175.0&scm_id=1007.40050.281175.0&scm-url=1007.40050.281175.0&pvid=3e5b0257-0954-479e-ac6f-6aa29858c79e&_t=gps-id:pcDetailBottomMoreOtherSeller,scm-url:1007.40050.281175.0,pvid:3e5b0257-0954-479e-ac6f-6aa29858c79e,tpp_buckets:668%232846%238115%232000&pdp_ext_f=%7B%22sku_id%22%3A%2212000027440535278%22%2C%22sceneId%22%3A%2230050%22%7D&pdp_npi=2%40dis%21EUR%2121.48%2115.9%21%21%21%21%21%40211b43e416691615572946311eb433%2112000027440535278%21rec
@Davidprograma2 жыл бұрын
Hola Luis Miguel, siento no poder ayudarte con el IDE de Arduino, lo he utilizado muy poco y no lo conozco lo suficiente para dar consejos. El desarrollo se hizo sobre VSCode y seguramente necesitaría una adaptación para el IDE de Arduino y no soy el adecuado para hacerla. Sobre los conversores vga a hdmi, tengo uno barato de 4€ (igual ahora son más caros) y a mí me va bastante bien. En cuanto al enlace, ya ves cómo ha subido todo y es normal que con el tiempo que ha pasado desde que hice el vídeo ya esté desactualizado (al menos, en cuanto a precio). Prefiero dejar el enlace a la tienda oficial lilygo, otros vendedores aparecen y desaparecen continuamente (sobre todo los que tienen pocas ventas). He puesto una nota en la descripción recomendando buscar otros vendedores.
@Bullisbullis192 жыл бұрын
@@Davidprograma Muchas gracias David. He pedido el del enlace que te puse y ya veremos como va. Instalaré el VSCode y a ver si me aclaro :) Al igual que tú, lo que me pasa es que me acostumbro a algo y luego cambiar se me hace muy cuesta arriba. En cuanto a tu emulador, creo después de dar unos cuantos click que me lleva a otro que no se llama ESPectrum y pone que es el mismo con algunas mejoras. No tengo claro si es el correcto, pero creo que sí, pero con el WIImote implementado. Si me aclaro con el VSCCode, me gustaría experimentar con otros mandos, como los de PS3 o PS4, que sé que hay librerías. A mi lo que me gusta es palpar, porque eso de grabar el trabajo de otro tal cual y sin tocarle cosas, no me gusta y además no se aprende nada. Lo dicho, muchas gracias por todo y un fuerte abrazo. Pd: Lo olvidaba, crees que será muy complicado implemanetar carga real de cinta? No sirve para mucho, pero me gustaría :)