Homebrew Retro Console Runs On PIC32

[Chad Burrow] decided to take on a noble task—building a “retro” style computer and video game console. Only, this one is built using somewhat modern hardware—relying on the grunt of the PIC32MZ2048EFH144 to get the job done. Meet the Acolyte Hand PIC’d 32.

It’s name might be a mouthful, but that chip can pull off some great feats! With a clock speed of 200 MHz, it’s not  short on processing power, though RAM and flash storage are somewhat limited at just 512 KB and 2MB respectively. [Chad] was able to leverage those constraints to get a VGA output working at a resolutions up to 800 x 600, with up to 65,000 colors—though 256 colors is more practical due to memory concerns. The Acolyte Hand also rocks two 8-bit audio channels. It has a pair of Genesis-compatible controller ports as well as PS/2 and USB for keyboards and mice, along with more modern Xbox 360 controllers.

[Chad] cooked up some software to put it through its paces, too. It’s got a Tetris clone on board, and can also run Game Boy games at full speed via the Peanut-GB emulator. That provides for a pretty rich game library, though [Chad] notes he plans to develop more native video games for his system to demo at his local college. Design files are on Github for the curious.

This project is a great example of just how powerful modern microcontrollers have become. Once upon a time, just driving a simple black-and-white graphical LCD might have taken some real effort, but today, there are pixels and clock cycles to spare in projects like these. Truly a wonderous world we live in!

9 thoughts on “Homebrew Retro Console Runs On PIC32

  1. Very well done, the sample games look promising! 😃👍

    That being said, I can’t help but have to mention to the laymen here that newer tech isn’t automatically “superior” to an 8/16-Bit game console from 80s or 90s.

    The Super NES and Genesis had features such as parallax scrolling, tiles and independent graphics layers that even hot-rod PCs or Macs in the 90s didn’t have.

    These independent layers and the tiles are not to be underestimated, because they allowed for lots of animation on screen with little CPU usage.

    Things like water effects or moving clouds are popular examples, maybe.

    1. yeah i think that’s the way this truly isn’t retro at all. back then, the capabilities of the graphics chip defined the games that were possible. sometimes, looking back, that seems like a limitation…but it’s also the basis. the games were designed around what’s possible on the chip. use a different chip with much greater general capabilities and no specialized capabilities…it’s a totally different environment and, according to the rules of pre-PC videogame development, you would write totally different games for it.

  2. LOL, SRAM & Flash “somewhat limited” at 512k and 2MB !?
    For an MCU (as in “Micro-controller”, you know), that’s about as phat as it gets.

    “Limited” only when compared to full-blown SBCs, but that’s apples vs oranges ofc

    1. Well, I have worked on projects where that amount was not enough. 4MB of flash was filled up with just pure code, actual data was stored in an additional 512k flash (still within the mcu, just different than the code flash). Big project, about 1 million lines of code. You would be surprised how big some things can get (especially generated stuff from simulink).

      1. Then don’t use Simulink, it’s known for being slow, bloated and useful only to pass university courses on MATLAB.

        A skilled coder can implement algorithm in C or even assembly and it will run circles around bloated MATLAB code.

    1. PIC32M is MIPS, and PIC32C is ARM. i loved the PIC12 – PIC16 sort of microcontrollers, really think they are special, especially the ‘F’ flash variants. really the apex of 8-bit microcontrollers. just a wonderfully useful set of peripherals, while still just being an extraordinarily simple chip and mostly available in 0.1″ DIP.

      but i honestly don’t see the point of the PIC32…for one, stm32 got there first so that was the environment i learned. and for the other, rp2040 really blows all of that out of the water for the casual developer. imo.

      but i’m sure there must be demand for the spectrum of features and sizes that pic32 makes possible. it’s just not unique in the way that the PIC12 was. kind of makes me wonder if i’ll ever have a project that pushes me towards PIC12 again, after i’ve gotten used to stm32/rp2040 capabilities

      1. PIC32C is just a family of Atmel SAM that got rebranded during the acquisition. This caused a lot of discord in the company and confusion for customers, so they brought back the SAM branding.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.