Dual-Core Microcontroller Drives RETRO-CIAA Retro Gaming Console

The console is designed around an NXP LPC4337 microcontroller and can stream 16-bit/32 kHz music and video using data stored on an SD card.

Cabe Atwell
4 years agoGaming

There are plenty of projects that make use of SBCs and MCUs for retro gaming, but very few of them feature zero graphics support for implementing a software-based, double-buffered, integer-scaled frame buffer over a high-definition video signal. Santiago Geronimo’s RETRO-CIAA retro gaming console is one of those that doesn’t feature native video support, but with some clever programming, he was able to play Wolfenstein 3D.

The RETRO-CIAA (Spanish acronym for Argentine Industrial Open Computer) is based on the Edu-CIAA development board, which is outfitted with an NXP LPC4337 microcontroller and packs an Arm Cortex-M4 core and a Cortex-M0 core. The board also includes 136 kB of RAM and 1 Mb of Flash that I used by both cores, but it doesn’t have native onboard video capable of driving retro video games. To get around that problem, Geronimo assigned the Cortex-M0 to act as a software video adapter that outputs video via GPIO. The Cortex-M4 is used to update the frame buffer by plotting individual pixels or groups in the form of lines, rectangles, text, and bitmap tiles.

Because of the limited SRAM, the RETRO-CIAA could only output video at a resolution of 256 x 144, making gaming a challenging prospect. The software-based video adapter overcomes that limitation by using on-the-fly integer scaling to generate a resolution of 1280 x 720, which preserves the sharp edges and video quality of retro games such as Wolfenstein.

Geronimo has uploaded a detailed walkthrough of the RETRO-CIAA gaming console on his project page for those who would like to recreate his build.

Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles