An enhanced Pokemon battle game for the Flipper Zero, featuring authentic Pokemon data integrated from the pokeyellow disassembly project.
- 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
- 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
- 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
- Flipper Zero SDK with ufbt or fbt
- Python 3 (for data extraction)
# Using the build script (recommended)
./build.sh
# Or using make
make all
# Or directly with ufbt
ufbt build
# Install to connected Flipper Zero
ufbt install
# Or launch directly
ufbt launch
- 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
- Up/Down - Navigate moves
- OK - Select move
- Back - Return to menu
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
pokemon_yellow_data.c
- Extracted Pokemon data from pokeyellowmoves_data_manual.c
- Authentic move databasesprites/
- Pokemon sprite files in XBM format
application.fam
- Flipper Zero app configurationMakefile
- Build automation with ufbt/fbt supportbuild.sh
- Simple build scriptFLIPPER_BUILD_GUIDE.md
- Detailed build instructions
pokemon.c/h
- Original Pokemon systembattle.c/h
- Original battle systemmenu.c/h
- Original menu systemselect_screen.c/h
- Original selection interface
- RAM: ~10-15KB total usage
- Flash: ~50KB for full Pokemon data
- Stack: 4KB for enhanced features
- Battle calculations: O(1) per turn
- Type effectiveness: Pre-calculated lookup table
- Sprite rendering: Optimized for 128x64 display
pokeyellow/*.asm โ Python extractors โ C data arrays โ Flipper Zero structs
- Edit
pokemon_data_extractor.py
to include more Pokemon - Run
python3 pokemon_data_extractor.py
- Rebuild the application
- Damage formulas: Edit
enhanced_pokemon_calculate_damage()
- Type effectiveness: Modify
type_chart[][]
array - Status effects: Update
enhanced_pokemon_can_move()
- Battle screen: Modify
enhanced_battle_draw_callback()
- Main menu: Edit
pokemon_main_enhanced.c
- Add new screens: Follow existing screen patterns
- โ 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
- 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
- Complete Gen 1 Roster
- Turn-based Combat
- Selection Screen
- Multiple Moves
- 128x64 Monochrome display optimization
- Fork the repository
- Create a feature branch
- Make your changes
- Test on actual Flipper Zero hardware
- Submit a pull request
This project integrates data from:
- pokeyellow disassembly - pret team
- Original showdown game - HermeticCode
- Enhanced integration - Community contribution
- 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
- pret team - pokeyellow disassembly project
- HermeticCode - Original showdown foundation
- Flipper Zero community - SDK and development tools
# Clean and rebuild
ufbt clean
ufbt build
# Check logs
ufbt cli
# Then type: log
- Reduce team size if needed
- Check for memory leaks in custom code
- 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
- Some sprite references temporarily disabled during integration
- Original battle system coexists with enhanced system
- Memory usage could be further optimized
- Re-enable all Pokemon sprites
- Add sound effects
- Improve UI animations
- Add more status effects
- Full world map integration
- Persistent save system
- Multiplayer via IR/SubGhz/NFC
- Pokemon trading system
- Achievement system
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! ๐ฎโก