https://github.com/kurtjd/CHIPnGo Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Copilot + Packages + Security + Code review + Issues + Discussions + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Skills + GitHub Sponsors + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} kurtjd / CHIPnGo Public * Notifications * Fork 0 * Star 19 A custom-built CHIP-8 hand-held gaming console powered by a STM32 microcontroller. License MIT license 19 stars 0 forks Star Notifications * Code * Issues 0 * Pull requests 0 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights kurtjd/CHIPnGo This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 1 branch 0 tags Code Latest commit @kurtjd kurtjd Update README ... e582dce Jul 16, 2022 Update README e582dce Git stats * 60 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time PCB Add PCB files Jul 17, 2022 docs Add basic font and splash screen May 14, 2022 images Add PCB image Jul 3, 2022 include Add platformio.ini Jul 16, 2022 src Add platformio.ini Jul 16, 2022 tools Autoformat Jun 6, 2022 .gitignore Add platformio.ini Jul 16, 2022 LICENSE Add license Apr 11, 2022 README.md Update README Jul 17, 2022 platformio.ini Add platformio.ini Jul 16, 2022 View code CHIPnGo Build Guide Development Blog Features ToDo Limitations README.md CHIPnGo Current Status [current_st] Recently I've taken a serious interest in embedded development, so I decided for my first project I would attempt to port my CHIP-8 emulator to a STM32 microcontroller in order to eventually build a CHIP-8 hand-held gaming console. Since this is being done as a learning experience, I also decided I would do this bare-metal with no libraries and write all drivers from scratch. While this is proving to be slow and extremely frustrating at times, it has also been very insightful and I've already learned a ton in such a short time. See it in action! Build Guide If you are interested in building your own CHIPnGo, check out this guide. Development Blog If you are interested in reading about my development of the project, some challenges I faced, and the bone-headed design decisions I made along the way due to my inexperience, check out my dev blog. Features * Fully supports all CHIP-8 and S-CHIP ROMs * LCD graphical display * Four directional buttons and two action buttons * Piezo buzzer for simple tone generation * SD card reader for quick loading of any CHIP-8 ROM * Battery power * Desktop application to manage ROMs on an SD card (aka game cartridge) ToDo * Improve startup menu for user to select ROM via SD card (make a bit more pretty) * Improve startup splash screen (want something cool and animated) * Iron out minor firmware bugs Limitations Although my original emulator also has full support for XO-CHIP roms, I decided to focus on just CHIP-8 and S-CHIP for now for several reasons: * XO-CHIP ROMs expect up to 64kb of memory, as opposed to 4kb expected by original CHIP-8 ROMs. * XO-CHIP supports up to three colors, which would mean needing to move beyond a simple monochrome display. * XO-CHIP supports variable frequencies/tones whereas CHIP-8 ROMs can only produce a single frequency, which makes handling sound simple. CHIP-8 supports 16 keys for input, however for design purposes, the console only has 6 buttons. However, most games only use a few buttons so this isn't too much of an issue. About A custom-built CHIP-8 hand-held gaming console powered by a STM32 microcontroller. Topics emulator microcontroller gaming chip-8 video-game stm32 bluepill game-console Resources Readme License MIT license Stars 19 stars Watchers 1 watching Forks 0 forks Languages * C 80.9% * Python 19.1% Footer (c) 2022 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.