logo elektroda
logo elektroda
X
logo elektroda

ZxSpectrum emulator on ESP32 "ESPectrum"

MikeC  Cool? (+36)
📢 Listen (AI):
Workstation with a monitor, keyboard, and connected ZX Spectrum emulator. .
Hello everyone, I present a great emulator for Zx Spectrum family computers (48K, 128K, +2, pentagon, ZX81). This is an emulator that works on boards using the Espressif ESP32 SoC.
Currently it can be used with Lilygo's TTGo VGA32 board, Antonio Villena's ESPectrum board and Olimex's ESP32-SBC-FabGL board, or of course you can make it yourself according to schematics e.g.: VGA32 V1.4.
All you need to do is connect a VGA monitor or CRT TV (special VGA-RGB cable required), a PS/2 keyboard, prepare the SD card and connect the power supply.

Key features:

* ZX Spectrum 48K, 128K and Pentagon 128K emulation with 100% cycle accuracy (no PSRAM required).

* State-of-the-art Z80 emulation (by José Luis Sánchez).

* Choice of Sinclair 48K, Sinclair 128K and +2 English and Spanish ROMs.

* Possibility to use one custom 48K and one 128K ROM with easy flashing procedure from SD card.

* ZX81+ IF2 (ROM courtesy of Paul Farrow) with file loading from SD card.

* VGA 6 bpp output in three modes: VGA standard (60 and 70 Hz), VGA 50 Hz and CRT 15 kHz 50 Hz

* Supports 16:9 or 4:3 aspect ratio (in 360x200 or 320x240 modes)

* Emulated multicolour attribute effects (Bifrost*2, Nirvana and Nirvana+ engines)

* Emulated graphic effects (Aquaplane, The Sentinel, Overscan demo)

* AY-3-8912 sound emulation

* Dual PS/2 keyboard support: two PS/2 devices can be connected simultaneously.

* PS/2 joystick emulation (Cursor, Sinclair, Kempston and Fuller)

* Support for two real joysticks (up to 8 buttons) using the ESPjoy adapter or standalone DB9 to PS/2 converter.

* Emulation of audio and tape deck input.

* Complete OSD menu in two languages: English and Spanish.

I made my emulator based on a TTGO VGA32 V1.4 board bought on ali for about £54 including shipping. Initially I wanted to do it myself, but the chronic lack of time and the low price outweighed this decision.
All I had to do was program the ESP with software from the github repository (https://github.com/EremusOne/ZX-ESPectrum-IDF) using flash_download_tool_3.9.2 with settings as in the pictures below.

ESP32 Flash Download Tool v3.9.6 with a highlighted ZX Spectrum file path.
.

Screenshot of the ESP32 Flash Download Tool V3.9.6 software.
.

As far as my eye is concerned the emulator is really very good, compared to a normal Zx Spectrum I don't see any differences in performance, I haven't encountered any demo or game that had problems on this emulator.



.




options available from the emulator:

ZX Spectrum emulator screen with the main menu on a monitor.
.

Some pictures of the view of the ESP32 V1.4 board , the operation of the emulator and its simplicity:

TTGO VGA32 V1.4 board with an SD card.
.

. Diagram of TTGO VGA32 V1.4 board with VGA outputs and PS/2 ports.


TTGO VGA32 V1.4 board with connected VGA and PS/2 cables.
.

Monitor with connected ZX Spectrum emulator and PS/2 keyboard on a desk.
.

Television display with ESpectrum emulator running.
.

And the schematics of the VGA32 V1.4 board:

Electrical schematic of the VGA32 V1.4 board for ZX Spectrum emulator.
.

Electrical schematic of the TTGO VGA32 V1.4 board showing component connections for PS/2, VGA, and SD card.
.

Circuit diagram of VGA32 V1.4 board.
.

ESPectrum Design and Documentation:

Website
https://zxespectrum.speccy.org

Patreon
https://www.patreon.com/ESPectrum

Github repositories
https://github.com/EremusOne/ZX-ESPectrum-IDF

Youtube channel
https://www.youtube.com/@ZXESPectrum

Twitter
https://twitter.com/ZX_ESPectrum

Hardware:

Lilygo FabGL VGA32
https://www.lilygo.cc/products/fabgl-vga32?_pos=1&_sid=b28e8cac0&_ss=r

ESPectrum project - Antonio Villena
https://antoniovillena.es/store/product/espectrum/

ESP32-SBC-FabGL de Olimex
https://www.olimex.com/Products/Retro-Computers/ESP32-SBC-FabGL/open-source-hardware

Drivers:

Drivers chip USB-Series CH340
https://www.wch-ic.com/downloads/CH341SER_ZIP.html

Other:

ESPjoy project - Antonio Villena , firmware David Carrión (conversion of DB9 joystick to USB or PS/2)
https://antoniovillena.com/product/espjoy/

ESPjoy firmware - David Carrión
https://github.com/dacarsoft/DB9_2_Keyboard

8bitdo Retro Receiver for Sega Genesis & Mega Drive
https://www.8bitdo.com/retro-receiver-genesis-mega-drive/

3D models - Lilygo
https://www.thingiverse.com/search?q=Ttgo+vga32&page=1&type=things&sort=relevant

Lilygo FabGL VGA32 project
https://github.com/LilyGO/FabGL/blob/master/Schematic/vga32_v1.4.pdf


I recommend a really nice project.
Regards MikeC.

About Author
MikeC wrote 1383 posts with rating 910 , helped 200 times. Been with us since 2002 year.

Comments

gulson 02 Jun 2024 21:20

Great! Thanks for sharing the solution! I sometimes play using ZxSpectrum, Atari and Amiga emulators. Nostalgia of the 90s when I was a teenager. If you email me a packet and phone number I'll send a... [Read more]

LechU 03 Jun 2024 07:55

Unfortunately, this link is no longer active :( And the project - especially version 1.2 - is really very interesting.... [Read more]

MikeC 03 Jun 2024 09:37

. I have added the ESPjoy manual for download , the software on github is active .... [Read more]

gulson 19 Jun 2024 20:55

Hi, Is this yours or is someone cloning you? https://esp32zx.substack.com/p/announcing-the-esp32-zx-spectrum [Read more]

MikeC 20 Jun 2024 22:45

There are at least several implementations of the zx spectrum emulator on esp32 , I have tested two and the one presented ( according to the Spanish project) seems the best . As far as I know there is... [Read more]

DIORADIO 21 Jun 2024 17:37

This discussion reminds me of the times when we produced Ewa, Alina. There were also disputes, because part of the production was still tube radio receivers, and part of it was already producing transistors... [Read more]

gulson 21 Jun 2024 18:45

Competition among teams where there is no need for collaboration is quite important. It's nice that more projects are being developed on ESP32. [Read more]

VSS 22 Jun 2024 13:28

I don't know if this question doesn't break the rules but I'll ask: Where do you get ROMs of programs and games for this emulator? What format and extension must the file have? [Read more]

gulson 22 Jun 2024 15:05

A lot can be found on archive.org There are archives of old books, magazines, music and just games and programmes. [Read more]

MikeC 22 Jun 2024 19:46

. Have a look at for example: https://zxart.ee/ , the emulator supports the extensions TAP , TZX , TRD , SCL .... [Read more]

VSS 24 Jun 2024 10:31

. And how to fire TZX? because when I load it to the card, the emulator doesn't see it :( [Read more]

MikeC 24 Jun 2024 21:38

. Load the file into the virtual tape recorder via F5 then e.g. tape loader with 128 and F6 start uploading ... [Read more]

smithdaryn 24 Jul 2024 21:14

I am a bit confused on joystick options, types and interfaces. Is the ESPJoy the only option at the moment? Still waiting for my hardware so no testing thus far. Thank you [Read more]

%}