PKHeX is a comprehensive Pokémon save file editor and legality checker for Windows. It supports the entire main series of Pokémon games from Generation 1 through Generation 9, including recent titles like Pokémon Scarlet/Violet and Pokémon Legends: Z-A. The application allows users to view, edit, and manage Pokémon data, items, and save file structures with a high degree of accuracy derived from extensive reverse engineering of game mechanics. The codebase is structured as a core library (`PKHeX.Core`) with a Windows Forms GUI (`PKHeX.WinForms`). The core library is a masterclass in data-driven design and reverse engineering, featuring a sophisticated legality verification engine, encounter matching algorithms, RNG seed correlation, and move learning verification. It employs clean architectural patterns such as the Verifier pattern, SaveBlock accessor pattern, and extensive use of interfaces for cross-generation polymorphism. While the domain logic is tightly coupled to Pokémon game mechanics, the architectural patterns (Verifier, Encounter Generator, SaveBlock, LearnSource) are highly reusable templates for any project requiring complex, versioned data validation. The codebase demonstrates exceptional craftsmanship in handling binary data, implementing RNG algorithms, and managing localization across 10+ languages. The primary caveat is the use of a custom C# transpiler dialect, which introduces a dependency on a non-standard toolchain, and the massive scale of hardcoded game data required by the domain.
This repository is a complete, annotated disassembly of the original Game Boy Pokémon Red and Blue games. It faithfully reproduces the exact ROM images (verified by SHA1 hashes) using the RGBDS assembler toolchain. The codebase is organized into modular subsystems: engine (battle, overworld, events, items, menus), data (maps, Pokémon stats, moves, items, trainers, wild encounters), audio (music and SFX with a macro-based composition language), graphics (sprites, tilesets, fonts), and scripts (map-specific event scripts). It includes custom C tools for graphics optimization, compression, and Virtual Console patch generation. The architecture is a monolithic ROM image with bank switching, using a predef dispatch system for cross-bank calls. Key entry points include the game start routine in home/start.asm and the VBlank handler in home/vblank.asm. This is a high-quality reverse engineering project with extensive comments, consistent coding patterns, and a robust build system, making it an invaluable resource for ROM hacking, retro game development, and studying Game Boy internals.
Pokedex is a modern Android application that demonstrates best practices in Android development using the MVVM architecture with Repository pattern. The app fetches and displays Pokémon data from the PokeAPI, featuring offline-first capabilities through Room database caching, pagination for efficient data loading, and smooth transition animations between list and detail views. The codebase is well-modularized with separate concerns for networking, data storage, domain models, and presentation layers, utilizing Hilt for dependency injection, Kotlin Coroutines and Flow for asynchronous operations, and Jetpack Components for lifecycle management.
pret/pokeruby is a reverse-engineering project that reconstructs the complete source code of Pokémon Ruby and Sapphire (Game Boy Advance) in C and ARM assembly. The build system compiles the entire game into byte-identical .gba ROMs, verified by pinned SHA1 checksums across a matrix of variants: Ruby/Sapphire, revisions 0/1/2, German localization, debug builds, and a modern-toolchain mode. The repository is the actual working source of the game engine, not documentation: it contains the battle system (turn logic, AI, animations via sprite templates and affine transforms), overworld/field state machines (weather, poison, cut, evolving, day care), Pokémon storage and save/load serialization, contest/link multiplayer subsystems, and the m4a sound driver, all written directly against GBA hardware registers and ARM7TDMI constraints. The architecture is a monolithic single-binary ROM rather than a service or library. Entry points are AgbMain() and the CB2_* main-loop callback system; game systems are orchestrated by a 16-slot task scheduler and a sprite/OAM manager. The build is driven by a sophisticated Makefile that feeds custom C++ asset pipelines — gbagfx (PNG↔GBA tile conversion, Huffman compression), preproc (charmap string embedding, INCBIN expansion), scaninc (include/incbin dependency resolution), mid2agb and wav2agb (MIDI/WAV to m4a data), mapjson/jsonproc (map JSON to assembly) — which generate C arrays and assembly that the hand-written sources consume. Data flows are: raw asset → tool → generated C/asm table → compile/link → .gba ROM → SHA1 comparison against the retail cartridge dump. Because this is a decompilation, the code carries inherent artifacts: sub_* function names, NONMATCHING stubs with NAKED asm fallbacks, unused/unreferenced data, and known UB comments. However, the project is professionally maintained with CI, organized headers, careful localization branching, and a clean separation between game code and build tooling. The tools/ directory is the most reusable asset — each utility is standalone and portable to any GBA homebrew or decomp effort — followed by small hardware-abstraction layers like include/gba/macro.h and src/trig.c.
Showdex is a browser extension for Pokémon Showdown that provides a real-time damage calculator (Calcdex) and supplementary tools directly within the battle interface. It integrates deeply with Showdown's client, patching internal classes (Battle, Side, Room) to synchronize all Pokémon, field conditions, and player actions as they occur. The architecture follows a dual-host pattern (legacy Backbone and modern Preact clients) with abstract bootstrappers, React/Redux for UI state, and RTK Query for fetching Pokémon presets from Smogon APIs. It also includes a standalone calculator (Honkdex), a note-taking tool (Notedex), a settings dashboard (Hellodex), and a debug panel (Devdex). The codebase demonstrates strong engineering with well-structured utility modules, custom hooks, drag-and-drop layout components, internationalization (English/French), and a complex hydration/dehydration system for data persistence. While primarily an application, it incorporates significant data processing for Pokémon battle mechanics (stat calculations, legacy DV conversion, preset matching).
Entralinked is a Java-based application that emulates Nintendo's Pokémon Global Link services for Pokémon Black/White and sequels. It functions as a standalone local server suite, providing DNS, GameSpy, and HTTP services to enable Nintendo DS/3DS consoles to access online features without save file modification. The architecture combines network servers (DNS on port 53, GameSpy on 29900, HTTP on 80/443), a Swing-based GUI for configuration, and a web dashboard for managing in-game Pokémon Dream World data. Key features include user/account management, DLC distribution, and save data synchronization via the PGL protocol. The project demonstrates solid engineering with reusable utility modules, clear separation of concerns, and active maintenance, though it relies on legacy protocols and contains some technical debt.
Pokemon-Terminal is a CLI tool that sets Pokemon images as terminal backgrounds or desktop wallpapers. It supports multiple terminal emulators (iTerm2, ConEmu, Terminology, Tilix, Windows Terminal, Kitty) and desktop environments (macOS, GNOME, sway, feh, swww, Windows) via a clean adapter pattern with runtime discovery. The system parses user-supplied filters (name, region, type, brightness) from a database of 719 Pokemon plus custom extras, then applies the selected image to the terminal or wallpaper. It also features a slideshow mode using multiprocessing and platform-specific named events for IPC. While the codebase has some rough edges (global mutable state in filters, a hacky unittest.mock.patch in production for POSIX named event detection), the overall architecture is well-modularized and demonstrates solid use of abstraction and reflection. The repo is actively maintained with recent commits and a large community (4.8k stars).
This repository is a curated collection of markdown code snippets for badges that can be used in README files. It serves as a reference for developers to quickly copy badge markdown for various services (PyPI, GitHub, etc.). The repository contains no executable code, no tests, and no build system. It is purely documentation. The last commit is dated in the future, suggesting the repository may be abandoned or the date is erroneous. The content is comprehensive but static. There are no software components to reuse; the value lies in the curated list of badge examples.