Skip to content

stevenchadburrow/AcolyteHandPICd32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Acolyte Hand PIC'd 32 Retraux Computer and Video Game Console

Background

Why build a "computer"? Why build a "video game console"?

I had been programming video games for about 20 years before all of this. It started in high school on Borland Turbo C++ in the computer lab, and then in college on a Ubuntu Linux computer with g++ and OpenGL. Most of my early attempts are not even worth mentioning though I tried different genres such as FPS and RTS. After graduate school and getting a job at the local college as a math teacher, I began trying to make a non-violent video game, namely a Harvest Moon clone. It seems that Stardew Valley beat me to it! After many attempts on many different platforms, including Linux/OpenGL/C++, HTML/Javascript, and Android/Java, I have declared them all as 'demos', though I learned a lot from that time. Meanwhile, I began programming 'arcade' video games for our annual Math Appreciation Day events, to have on display and allow students to play during the event. A few are listed here.

In Fall 2021, after starting research on a water-based calculator, I thought to myself, "Wouldn't electricity be so much easier?" After stumbling upon Garth Wilson's 6502 Primer, I emailed him and he invited me to join the 6502.org Forum. I began researching and prototyping (aka breadboarding) with basic logic chips, and learning how to create schematics. While learning more about digital electronics, I found The 8-Bit Guy, Adrian's Digital Basement, and Ben Eater on Youtube.

Inspired by The 8-Bit Guy's "Dream Computer", and after many initial attempts (aka failures) and a couple of awesome successes, I eventually produced the original Acolyte Computer using a W65C02 processor. I had great help from Garth Wilson and the guys on the 6502.org Forum as I worked through many prototypes to get to that point. I was able to display this and other projects at the Math Appreciation Day events playing video games such as Space Invaders, Tetris, and Rogue.

From there, the project grew to the New Acolyte coupled with an XC9572XL CPLD, then the Acolyte '816 using a W65C816 processor coupled with a PIC16F886 microcontroller as a bootloader. Wanting to continue pursuing PIC microcontrollers, I created the original Acolyte Hand PIC'd using the PIC18F47J13 microcontroller, then the Acolyte Hand PIC'd 24 using the PIC24EP512GP204 microcontroller finally without a coupled CPLD. During Summer 2024, I programmed a 2-player Pokemon demo using Tuxemon art assets, pushing that PIC24 to the limit.

This project, the Acolyte Hand PIC'd 32, is supposed to show the culmination of my knowledge in PCB design and microcontroller programming over the past 3 years. The intention is to create a standardized development platform for many new video games that will be displayed during the Math Appreciation Day events.

Microcontroller

PIC32MZ2048EFH144 running at 200 MHz
Internal memory of 512KB of RAM and 2MB of Flash ROM

Video

VGA 800x600 max resolution (720x512 typical resolution) at 72 Hz with 256 colors or 65K colors

Audio

Dual 8-bit audio channels

HID

2x Sega Genesis controller ports
Dual PS/2 port for keyboard and mouse through splitter
USB port for keyboard, mouse, or Xbox-360 controller

File System

Elm-Chan's FatFS Generic FAT Filesystem Module using SPI Micro SD Card adapter
(use command 'sudo mkfs.vfat /dev/sdX' to format SDcard)

UART

FT232RL USB-to-UART adapter
(use command 'sudo picocom /dev/ttyUSB0' for default 9600 baud connection)

Custom Applications

Tetra - Tetris clone recopied from my previous PIC-related projects
Scratchpad - Proof-of-concept 'text editor' without save/load features
AV Demo - Audio/Video playback of modified video files with a resolution 240x192 at 15 FPS with 65K colors and dual 8-bit audio

Gameboy Emulator

Mahyar Koshkouei's Peanut-GB (with MiniGB-APU) Gameboy Emulator
Added support for GBC default color palettes, custom palettes, game file save/load, and screen size and refresh rate adjustments
Tested with many games, including: Tetris, Dr. Mario, Balloon Kid, Zelda: Link's Awakening, Tobu Tobu Girl, Pokemon Red, and Pokemon Kanto Expansion Pak

Links

https://www.aidanmocke.com/ for a bunch of PIC32MZ projects (without Harmony), including USB.
http://elm-chan.org/ for a bunch of projects, including MMC (aka SDcard) and FatFs.
https://github.com/deltabeard/ for a bunch of projects, including Peanut-GB and MiniGB-APU projects.

Look Ma, no bodges! (showing Version 2 board)

3D printed case fits perfectly! (showing Version 1 board)

Main menu format with splash screen.

Gotta love some 2-player Tetris!

It can now play any Gameboy game!

Audio/Video playback running at 65K colors and dual 8-bit audio.
        

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages