This project shows that the internal peripherals of the ESP32 are enough to implement a complete game console. One of the internal DACs are tweaked to run at 13.33 MSamples and the second is hacked to output audio at a much lower rate.
The video is calculated on the first core while the complete game logic and audio handling is done on the second. This way almost all ressources are utilized to master the high data rates.
The code is implemented in the Arduino IDE with ESP32 support.
The first step was to generate video that was accepted by all kinds of TVs this was done respecting the PAL and NTCS specs
To be able to have interaction NES/SNES controller support was added. THis way old school game controllers can be used to play the games on the system.
As third step an audio system was developed to mix and play music and sound on the second dac
At this point as proof of concept a Tetris clone was implemented with SpaceX rocket endscreens
the latest addition is the color suport!
A demo project showing video and audio can be found here:
and here is a recording of the code running
- Labs project
ESP32 Game Console
March 31, 2018 , Latest update: April 24, 2018
Read the full post