In this article, we will discuss how to emulate a Commodore VIC-20 on an ESP32 board, specifically the Ttgo ESP32BGA, which is priced at around $16. The ESP32 is a microcontroller that offers an Arduino-like platform with faster processing, more memory, and Wi-Fi and Bluetooth capabilities. This particular board stands out due to its ability to connect to a monitor, keyboard, and mouse, as well as supporting additional features such as an SD card and sound.
To begin, connect a VGA monitor, a mouse, and a keyboard (PS2 style) to the ESP32. With these peripherals connected, plug in the board using a standard micro USB cable. Upon booting up, the board will display the VIC-20, and within a few moments, a basic VIC-20 emulator will run.
The emulator provides access to both the keyboard and mouse, and it comes pre-loaded with a curated list of free games. Additionally, you have the option to reboot the board and access the BASIC programming language. The F12 key allows you to exit the emulator and return to the menu, and you can choose to use either the joystick or the mouse as a cursor. Moreover, the ESP32 can connect to the internet, enabling you to download additional games by inputting the game’s URL.
The board also allows browsing the file system and accessing downloaded games. A list of around 70-71 games is available, and there are always more games that can be downloaded and added to the collection. For example, Frogger is one of the games that can be booted up on the VIC-20 emulator. By using the menu key, you can select Frogger from the list, and the game will start. The game can be played with the keyboard, and even though the display may appear slightly washed out on some screens, it offers an authentic VIC-20 gaming experience.
To install the necessary library for this project, you will need to have the ESP32 development module selected in the Arduino IDE. The library required is called Fab GL by Fabrizio D Vittorio, and it can be found in the Manage Libraries section. Make sure to install version 1.0.5. Once the library is installed, go to the examples section and navigate to the Fab GL library. Select the VIC-20 example, and a new sketch will open. Scroll through the sketch and ensure that the partition scheme is set to “Huge App” in the Tools menu. Finally, click upload, and the emulator will be ready to use as demonstrated in the video.
The Ttgo ESP32BGA board offers a remarkable set of features, albeit with fewer GPIO pins than some other Arduino boards. However, the available pins are utilized for keyboard, mouse, SD card, and VGA functionalities, making it a versatile choice. It is recommended to explore the sketch and make any necessary adjustments to suit individual preferences. The board is relatively inexpensive compared to other options, and the link provided in the video’s description supports the channel and its future projects.
Overall, the Ttgo ESP32BGA presents an exciting opportunity to explore the world of emulation on a low-cost microcontroller board. The VIC-20 emulator is just one of the many possibilities this board offers, and it can serve as a starting point for further experimentation and projects. The board’s ease of use and affordability make it an excellent choice for both beginners and experienced makers alike.
Key Points:
- The Ttgo ESP32BGA board allows emulation of a Commodore VIC-20 on an ESP32 platform.
- The board supports VGA, keyboard, mouse, SD card, and sound functionalities.
- The VIC-20 emulator provides access to a curated list of free games.
- The board can connect to the internet for downloading additional games.
- Specific games, like Frogger, can be selected and played on the emulator.
- Install the Fab GL library by Fabrizio D Vittorio for using the VIC-20 example.
- Explore the sketch and adjust the partition scheme if required.
- The Ttgo ESP32BGA board is affordable and offers a range of features.
- It is recommended to support the channel by using the link provided in the video’s description.
- The board presents various possibilities beyond the VIC-20 emulator for future projects and experimentation.