A Sinclair ZX spectrum 48K, 128K, +2A, +3, Pentagon 128, Microdigital TK90X and TK95 emulator running on the Espressif ESP32 SoC
See the code
This is an emulator of the Sinclair ZX Spectrum computer running on Espressif ESP32 SoC powered boards.
Currently, it can be used with many different boards being Lilygo's TTGo VGA32 board one of the best starting choices for his wonderful cost-features ratio. There are also some more boards out there that can run ESPectrum out-of-the-box like the ESP32-SBC-FabGL board from Olimex.
Just connect a VGA monitor or CRT TV (with special VGA-RGB cable needed), a PS/2 keyboard, prepare a SD Card as needed and power via microUSB.
This project is based on David Crespo excellent work on ZX-ESPectrum-Wiimote which is a fork of the ZX-ESPectrum project by Rampa and Queru which was inspired by Pete's Todd PaseVGA project.
The easiest method is using our online web flasher
You can flash also the binaries directly to the board. Check the releases section for bin files and detailed instructions
Quick start from PlatformIO:
Windows, GNU/Linux and MacOS/X. This version has been developed using PlatformIO.
PlatformIO > Project Tasks > Build , then
PlatformIO > Project Tasks > Upload.
Run these tasks (Upload also does a Build) whenever you make any change in the code.
The SD card should be formatted in FAT16 / FAT32.
Just that: then put your .sna, .z80, .p, .tap, .trd and .scl whenever you like and create and use folders as you need.
There's also no need to sort files using external utilities: the emulator creates and updates indexes to sort files in folders by itself.
Press CAPS SHIFT + SYMBOL SHIFT and:
Three custom ROMs can be installed: one for the 48K architecture, another for the 128K architecture and another one for TK90X.
The "Update firmware" option is now changed to the "Update" menu with four options: firmware, custom ROM 48K, custom ROM 128K and custom ROM TK90X.
You can put the ROM files (.rom extension) anywhere and select it with the browser.
For the 48K and TK90X architectures, the ROM file size must be 16384 bytes.
For the 128K architecture, it can be either 16kb or 32kb. If it's 16kb, the second bank of the custom ROM will be flashed with the second bank of the standard Sinclair 128K ROM.
It is important to note that for custom ROMs, fast loading of taps can be used, but the loading should be started manually, considering the possibility that the "traps" of the ROM loading routine might not work depending on the flashed ROM. For example, with Rodolfo Guerra's ROMs, both loading and recording traps using the SAVE command work perfectly.
Finally, keep in mind that when updating the firmware, you will need to re-flash the custom ROMs afterward, so I recommend leaving ROM files you wish to use on the SD card.
Pin assignment in hardpins.h is set to match the boards we've tested emulator in, use it as-is, or change it to your own preference.
C
81.2%
C++
17.9%
A Sinclair ZX spectrum 48K, 128K, +2A, +3, Pentagon 128, Microdigital TK90X and TK95 emulator running on the Espressif ESP32 SoC
See the code
This is an emulator of the Sinclair ZX Spectrum computer running on Espressif ESP32 SoC powered boards.
Currently, it can be used with many different boards being Lilygo's TTGo VGA32 board one of the best starting choices for his wonderful cost-features ratio. There are also some more boards out there that can run ESPectrum out-of-the-box like the ESP32-SBC-FabGL board from Olimex.
Just connect a VGA monitor or CRT TV (with special VGA-RGB cable needed), a PS/2 keyboard, prepare a SD Card as needed and power via microUSB.
This project is based on David Crespo excellent work on ZX-ESPectrum-Wiimote which is a fork of the ZX-ESPectrum project by Rampa and Queru which was inspired by Pete's Todd PaseVGA project.
The easiest method is using our online web flasher
You can flash also the binaries directly to the board. Check the releases section for bin files and detailed instructions
Quick start from PlatformIO:
Windows, GNU/Linux and MacOS/X. This version has been developed using PlatformIO.
PlatformIO > Project Tasks > Build , then
PlatformIO > Project Tasks > Upload.
Run these tasks (Upload also does a Build) whenever you make any change in the code.
The SD card should be formatted in FAT16 / FAT32.
Just that: then put your .sna, .z80, .p, .tap, .trd and .scl whenever you like and create and use folders as you need.
There's also no need to sort files using external utilities: the emulator creates and updates indexes to sort files in folders by itself.
Press CAPS SHIFT + SYMBOL SHIFT and:
Three custom ROMs can be installed: one for the 48K architecture, another for the 128K architecture and another one for TK90X.
The "Update firmware" option is now changed to the "Update" menu with four options: firmware, custom ROM 48K, custom ROM 128K and custom ROM TK90X.
You can put the ROM files (.rom extension) anywhere and select it with the browser.
For the 48K and TK90X architectures, the ROM file size must be 16384 bytes.
For the 128K architecture, it can be either 16kb or 32kb. If it's 16kb, the second bank of the custom ROM will be flashed with the second bank of the standard Sinclair 128K ROM.
It is important to note that for custom ROMs, fast loading of taps can be used, but the loading should be started manually, considering the possibility that the "traps" of the ROM loading routine might not work depending on the flashed ROM. For example, with Rodolfo Guerra's ROMs, both loading and recording traps using the SAVE command work perfectly.
Finally, keep in mind that when updating the firmware, you will need to re-flash the custom ROMs afterward, so I recommend leaving ROM files you wish to use on the SD card.
Pin assignment in hardpins.h is set to match the boards we've tested emulator in, use it as-is, or change it to your own preference.
C
81.2%
C++
17.9%