Pokemon Yellow+ for Flipper Zero
June 25, 2025 ยท View on GitHub
An enhanced Pokemon battle game for the Flipper Zero, featuring authentic Pokemon data integrated from the pokeyellow disassembly project.
๐ฎ Features
Authentic Pokemon Experience
- 151 Original Pokemon with accurate base stats from Pokemon Yellow
- Authentic Type System with proper effectiveness calculations
- Turn-based Battles with speed-based move order
- Status Conditions - Sleep, poison, burn, freeze, paralysis
- Individual Values (IVs) for stat variation between Pokemon
- PP System - Moves have limited uses like the original games
Enhanced Gameplay
- Team Management - Build and manage teams of up to 6 Pokemon
- Wild Battles - Encounter random Pokemon in the wild
- Trainer Battles - Fight against trainer Pokemon
- Critical Hits and STAB bonuses (Same Type Attack Bonus)
- Authentic Damage Calculations matching original Game Boy formulas
Technical Features
- Memory Optimized - Efficient use of Flipper Zero's 256KB RAM
- Battery Friendly - Low CPU usage for extended play
- Modular Design - Easy to extend and customize
- Proper Error Handling - Robust memory management
๐๏ธ Building
Prerequisites
- Flipper Zero SDK with ufbt or fbt
- Python 3 (for data extraction)
Quick Build
# Using the build script (recommended)
./build.sh
# Or using make
make all
# Or directly with ufbt
ufbt build
Installation
# Install to connected Flipper Zero
ufbt install
# Or launch directly
ufbt launch
๐ฏ How to Play
- Navigate to Apps โ Games โ Pokemon Yellow+ on your Flipper Zero
- Select from the main menu:
- Wild Battle - Fight random Pokemon
- Trainer Battle - Fight trainer Pokemon
- View Team - See your Pokemon team
- Heal Team - Restore HP and PP
- Pokedex - Browse available Pokemon
Battle Controls
- Up/Down - Navigate moves
- OK - Select move
- Back - Return to menu
๐ Project Structure
Core Files
pokemon_main_enhanced.c- Main application entry pointpokemon_enhanced.h/c- Enhanced Pokemon system with authentic datapokemon_integration.h/c- Game state management and integration layerenhanced_battle_screen.h/c- Turn-based battle interface
Data Files
pokemon_yellow_data.c- Extracted Pokemon data from pokeyellowmoves_data_manual.c- Authentic move databasesprites/- Pokemon sprite files in XBM format
Build System
application.fam- Flipper Zero app configurationMakefile- Build automation with ufbt/fbt supportbuild.sh- Simple build scriptFLIPPER_BUILD_GUIDE.md- Detailed build instructions
Legacy Files (Original Showdown)
pokemon.c/h- Original Pokemon systembattle.c/h- Original battle systemmenu.c/h- Original menu systemselect_screen.c/h- Original selection interface
๐ง Technical Details
Memory Usage
- RAM: ~10-15KB total usage
- Flash: ~50KB for full Pokemon data
- Stack: 4KB for enhanced features
Performance
- Battle calculations: O(1) per turn
- Type effectiveness: Pre-calculated lookup table
- Sprite rendering: Optimized for 128x64 display
Architecture
pokeyellow/*.asm โ Python extractors โ C data arrays โ Flipper Zero structs
๐จ Customization
Adding New Pokemon
- Edit
pokemon_data_extractor.pyto include more Pokemon - Run
python3 pokemon_data_extractor.py - Rebuild the application
Modifying Battle Mechanics
- Damage formulas: Edit
enhanced_pokemon_calculate_damage() - Type effectiveness: Modify
type_chart[][]array - Status effects: Update
enhanced_pokemon_can_move()
UI Customization
- Battle screen: Modify
enhanced_battle_draw_callback() - Main menu: Edit
pokemon_main_enhanced.c - Add new screens: Follow existing screen patterns
๐ Integration Stats
- โ 151 Pokemon with authentic stats
- โ 50+ Moves with accurate data
- โ 18x18 Type Chart for effectiveness
- โ Memory Efficient - <15KB RAM usage
- โ Build Success - Compiles to 18KB FAP
- โ Flipper Compatible - Follows SDK patterns
๐ What's New in Pokemon Yellow+
Major Enhancements from Original Showdown
- Authentic Pokemon Data - Real stats from Pokemon Yellow disassembly
- Enhanced Battle System - Type effectiveness, status conditions, critical hits
- Team Management - Multiple Pokemon teams instead of single battles
- Memory Optimization - Better performance on Flipper Zero
- Modular Architecture - Easier to extend and customize
- Comprehensive Documentation - Build guides and integration docs
Original Showdown Features (Still Available)
- Complete Gen 1 Roster
- Turn-based Combat
- Selection Screen
- Multiple Moves
- 128x64 Monochrome display optimization
๐ค Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test on actual Flipper Zero hardware
- Submit a pull request
๐ License
This project integrates data from:
- pokeyellow disassembly - pret team
- Original showdown game - HermeticCode
- Enhanced integration - Community contribution
๐ Credits & Acknowledgements
Original Showdown Credits (HermeticCode)
- Nintendo/Game Freak - Original Pokemon designs
- Rogue Master/Malik - Community support
- Flipper Zero Team - Amazing hardware platform
- Esteban Fuentealba/Kris Bahnsen - Inspiration and foundation
- Talking Sasquatch - Educational content
- Derek Jamison - Technical tutorials
- The Flipper community - Documentation and support
Pokemon Yellow+ Integration Credits
- pret team - pokeyellow disassembly project
- HermeticCode - Original showdown foundation
- Flipper Zero community - SDK and development tools
๐ Troubleshooting
Build Issues
# Clean and rebuild
ufbt clean
ufbt build
Runtime Issues
# Check logs
ufbt cli
# Then type: log
Memory Issues
- Reduce team size if needed
- Check for memory leaks in custom code
๐ Future Plans
- More Pokemon sprites integration
- Sound effects from pokeyellow audio data
- World map system
- Persistent save system
- Online battle capabilities via IR/SubGhz
- Pokemon Center functionality
- Multiplayer battles using Flipper Zero's native capabilities
๐ Known Issues
- Some sprite references temporarily disabled during integration
- Original battle system coexists with enhanced system
- Memory usage could be further optimized
๐ฏ Roadmap
Short Term
- Re-enable all Pokemon sprites
- Add sound effects
- Improve UI animations
- Add more status effects
Long Term
- Full world map integration
- Persistent save system
- Multiplayer via IR/SubGhz/NFC
- Pokemon trading system
- Achievement system
Disclaimer
This is a fan-made project for educational purposes. Pokemon is a trademark of Nintendo/Game Freak. This project is not affiliated with or endorsed by Nintendo.
Enjoy authentic Pokemon battles on your Flipper Zero! ๐ฎโก