ESP32 Game Console
Game Console on the ESP32 without extra components!
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.
B/W Video
The first step was to generate video that was accepted by all kinds of TVs this was done respecting the PAL and NTCS specs
https://github.com/bitluni/ESP32CompositeVideo
https://youtu.be/5t1_XNc3vNw
Game Controller
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.
https://github.com/bitluni/ArduinoGameController
https://youtu.be/Qpt14gJVpTk
Audio Support
As third step an audio system was developed to mix and play music and sound on the second dac
https://github.com/bitluni/AudioVideoExample
https://youtu.be/MOoKQnWF4OY
Tetris Clone
At this point as proof of concept a Tetris clone was implemented with SpaceX rocket endscreens
https://github.com/bitluni/TetrisSpaceX
COLOR
the latest addition is the color suport!
A demo project showing video and audio can be found here:
https://github.com/bitluni/DawnOfAV/tree/master/DawnOfAV
and here is a recording of the code running
https://youtu.be/Xhiw5Utw6dE
Have fun!
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.
B/W Video
The first step was to generate video that was accepted by all kinds of TVs this was done respecting the PAL and NTCS specs
https://github.com/bitluni/ESP32CompositeVideo
https://youtu.be/5t1_XNc3vNw
Game Controller
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.
https://github.com/bitluni/ArduinoGameController
https://youtu.be/Qpt14gJVpTk
Audio Support
As third step an audio system was developed to mix and play music and sound on the second dac
https://github.com/bitluni/AudioVideoExample
https://youtu.be/MOoKQnWF4OY
Tetris Clone
At this point as proof of concept a Tetris clone was implemented with SpaceX rocket endscreens
https://github.com/bitluni/TetrisSpaceX
COLOR
the latest addition is the color suport!
A demo project showing video and audio can be found here:
https://github.com/bitluni/DawnOfAV/tree/master/DawnOfAV
and here is a recording of the code running
https://youtu.be/Xhiw5Utw6dE
Have fun!
Updates from the author