name tbd
flowchart TD
SD[(SD Card\nFAT32)]
subgraph Core0 ["Core 0 -- Bootloader + Game"]
Menu["Menu\n- Lists .bin files from SD\n- Selects & launches game"]
Upload["USB Upload Mode\n- Mounts SD as USB drive\n- Copy .bin files from PC"]
HAL["HAL\n- drawPixel(), drawText(), drawChar()\n- readInput()\n- sdRead(), sdWrite()\n- getTime()"]
Game["Game Binary\n- Loaded into RAM @ 0x20010000\n- Owns its own loop\n- Calls HAL only"]
end
subgraph Core1 ["Core 1 -- Watchdog"]
Overlay["Watchdog Loop\n- Monitors A+B+UP\n- Reboots console via watchdog"]
end
subgraph Hardware ["Peripherals"]
OLED["OLED Display\n(mutex-guarded, 128x64)"]
BTN["Buttons\n(A, B, D-Pad)"]
end
SD -->|"Read .bin files"| Menu
Menu -->|"memcpy to 0x20010000\njump to entry"| Game
Upload -->|"USB MSC"| SD
Overlay -->|"watchdog_reboot()\non A+B+UP"| Core0
Game -->|"calls"| HAL
HAL -->|"drawPixel()"| OLED
HAL -->|"readInput()"| BTN
bootloader/- Core bootloader firmware for the RP2040. Handles menu, game loading, USB upload mode, and the HAL. You don't need to touch this unless you want to.game/- Template game project structure and example game firmware. This is the base template for developing new games.pcb/- Hardware design files including the KiCad PCB schematic, layout, footprints library, and production files (BOM, positions, netlist).test-games/- Test games and development utilities for validation and demonstration purposes.
- Everything is incredibly rudimentary and you shouldn't expect us to respond to issues. We welcome contributions though, so if you want to add features or fix bugs, fork the repo and send a PR.
- Add your game to the discussions tab! We would love to see what you make with this!
- You can tag @frogspyder on the Cover Discord server if you want to chat about anything related to this project and/or drop by in the Discord thread.