Because why just draw names when you can do it on a 90s handheld?
Every year I over-engineer our family's Secret Santa allocation. This year I'd already built Secret Santa Draw Arcade, but with my recent interest in Game Boy development (building PHPBoy) I got a little carried away and ended up making a second one. I thought it would be interesting to explore building a basic GBC ROM.
Tech Stack: C, GBDK-2020
- GBDK-2020 - Game Boy Development Kit
- GNU Make
- A Game Boy Color emulator (e.g., BGB, SameBoy, Emulicious) or real hardware with a flash cart
- Support for up to 20 participants
- Name entry with on-screen keyboard
- Exclusion rules (e.g., prevent couples from drawing each other)
- Animated draw sequence with festive effects
- Individual reveal mode - each person sees only their assignment
- Christmas-themed visuals with snow particles
- Sound effects and Jingle Bells background music
# Set your GBDK path (or export GBDK_HOME)
export GBDK_HOME=~/gbdk
# Build the ROM
make
# Clean build artifacts
make cleanThe compiled ROM will be output to build/secret_santa.gbc. Run it in your favourite GBC emulator (BGB, SameBoy, Emulicious) or on real hardware with a flash cart.
![]() |
![]() |
![]() |
| 1. Press START to begin | 2. Add participants | 3. Enter names with on-screen keyboard |
![]() |
![]() |
![]() |
| 4. Set exclusions (optional) | 5. Each person reveals their assignment | 6. Merry Christmas! |
This is part of my annual tradition of over-engineering Secret Santa:
- 2020 - Clojure Secret Santa
- 2021 - Pico Secret Santa
- 2022 - Step Function Secret Santa
- 2023 - Secret Santa PWA
- 2024 - Secret Santa Draw
- 2025 - Secret Santa Draw Arcade | Secret Santa Draw GBC ⭐
MIT






