Skip to content

HermeticCode/showdown-current

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Pokemon Yellow+ for Flipper Zero

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

  1. Navigate to Apps โ†’ Games โ†’ Pokemon Yellow+ on your Flipper Zero
  2. 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 point
  • pokemon_enhanced.h/c - Enhanced Pokemon system with authentic data
  • pokemon_integration.h/c - Game state management and integration layer
  • enhanced_battle_screen.h/c - Turn-based battle interface

Data Files

  • pokemon_yellow_data.c - Extracted Pokemon data from pokeyellow
  • moves_data_manual.c - Authentic move database
  • sprites/ - Pokemon sprite files in XBM format

Build System

  • application.fam - Flipper Zero app configuration
  • Makefile - Build automation with ufbt/fbt support
  • build.sh - Simple build script
  • FLIPPER_BUILD_GUIDE.md - Detailed build instructions

Legacy Files (Original Showdown)

  • pokemon.c/h - Original Pokemon system
  • battle.c/h - Original battle system
  • menu.c/h - Original menu system
  • select_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

  1. Edit pokemon_data_extractor.py to include more Pokemon
  2. Run python3 pokemon_data_extractor.py
  3. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test on actual Flipper Zero hardware
  5. 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! ๐ŸŽฎโšก

About

Revised repo to reflect changes from deprecated repo

Resources

Stars

Watchers

Forks

Packages

No packages published