pkDex is a comprehensive Pokémon encyclopedia (Pokédex) application that allows users to browse and view detailed information about Pokémon from various regions across different generations of the Pokémon games.
Built using the Borealis UI framework, pkDex provides a clean, intuitive interface for exploring Pokémon data.
This application is provided for educational and informational purposes only.
It is provided "as is" without any warranties or guarantees of any kind.
The developers are not responsible for any issues that may arise from using this application.
-
Multi-Region Support: Browse Pokémon from different regions:
- Kanto (Gen 1 - Let's Go Pikachu & Eevee)
- Sinnoh (Gen 4 - Brilliant Diamond & Shining Pearl)
- Sinnoh Arceus (Legends: Arceus)
- Galar (Gen 8 - Sword & Shield + Isle of Armor & Crown Tundra DLC)
- Paldea (Gen 9 - Scarlet & Violet + The Teal Mask & The Indigo Disk DLC)
- Kalos (Legends: Z-A + Mega-Dimension DLC)
-
Detailed Pokémon Information:
- National and Regional Pokédex numbers
- Shiny Lock status
- Pokémon types
- Evolution information
- Game version exclusivity
- In-game locations
- Images of both standard and shiny forms
- Packaged low resolution images, with dynamic loading high resolution if available on the SD card
-
Pokémon Tracker:
- Track caught Pokémon by marking them as caught on the list
- Caught Pokémon are highlighted in the list with icons for easy identification
- Toggle caught status by pressing the
Ybutton on the list entry - Can track Regular, Shiny, Alpha & Shiny Alpha separately (if available in selected game)
- Ability to reset caught status for all Pokémon from the
settingsmenu - Ability to reset caught status for specific Region from the
settingsmenu - Caught status is saved in a
pkDex.tracker.{REGION}.inifile in the/switch/pkDexdirectory (1 file per region)
-
User-Friendly Interface:
- Organized by regions with section headers
- Efficient list navigation with recycling views
- Detailed view for each Pokémon
- Dark theme support
-
Settings / QoL:
- Update check on startup (to ensure you have the latest version -Enable by default-)
- Disable automatic update check on startup (for those who prefer not to check for updates)
- Download updates directly from the application (must use the included Updater to apply updates)
- If the updater application is not present, it will prompt you to download it from the
settingsmenu when trying to launch it. - Can hide the bottom status bar
- Download & Extract the High Resolution images pack directly from the application from the
settingsmenu (requires an internet connection)
-
Cross-Platform Compatibility:
- Nintendo Switch (primary target)
- Launch the application on your device.
- Navigate through the tabs to select a Pokémon region.
- Browse the list of Pokémon, organized by their regional Pokédex numbers.
- Select a Pokémon to view detailed information, including:
- Images (standard and shiny forms)
- National Pokédex number
- Regional Pokédex number
- Shiny Lock status
- Type information
- Evolution details
- Location information
- Version exclusivity
- Press the
Ybutton to open a Pokémon tracker menu to mark or unmark a Pokémon as caught. - Marking a Pokémon as caught will create a
pkDex.tracker.{REGION}.inifile in the/switch/pkDexdirectory.
Unmarking a Pokémon will set the corresponding line inpkDex.tracker.{REGION}.inifile accordingly. - Use the settings menu to enable or disable automatic new version checks & check for available updates manually.
- Use the settings menu to download updates directly from the application (requires the
pkDexUpdaterapplication to be present to use update file). - Use the included updater application (
pkDexUpdater.nro) to apply the downloaded update file. - Use the settings menu to Download & Extract the High Resolution images pack directly from the application (requires an internet connection).
To update the application, you can use the included updater application (pkDexUpdater.nro):
- Ensure your Nintendo Switch is connected to the internet.
- Go to the settings menu and check for updates.
If an update is available, the application will prompt you to download it.
If you want to update automatically :
- Click the
Launch Updaterbutton in the settings menu of the main application. - If you don't have the Updater, you will be prompted to download it directly from the application settings.
- The updater will apply the downloaded update file to the main application, ensuring you have the latest features and bug fixes.
If you prefer to update manually:
- Download the latest version from the releases page.
The application includes a settings menu that allows users to:
- Enable or disable automatic update checks on startup
- Check for updates manually
- Download updates directly from the application
- Download the updater application if it is not present
- Reset caught Pokémon status
- Hide the bottom status bar
- Change language for UI & data (if available)
- Download & Extract the High Resolution images pack directly from the application (requires an internet connection)
Enabling automatic update checks will prompt the application to check for the latest version on startup, ensuring you always have the most up-to-date information.
You can download updates at any time from the settings menu (Check for updates button).
pkDex supports multiple languages using JSON translation files loaded at runtime.
- UI strings in XML use i18n references like
@i18n/pkdex/.... - Translation files are located in
resources/i18n/<locale>/*.json. - The default English strings are in
resources/i18n/en-US/pkdex.json. - To add a new language, create
resources/i18n/<your-locale>/pkdex.jsonwith the same keys.
Overriding data from XML files:
- Game data (for example, Pokémon names, types, evolution text, locations, etc.) are read from the XML files in
resources/data/<region>.xml. - You can override any of these texts per locale by adding entries under
data/<region>/<id>/<field>in your locale JSON.- Example (French):
data/kanto/001/name: Bulbizarredata/kanto/001/type: Plante / Poison- Fields supported:
name,type,evolution,locations,exclusiveVersion.
- Example (French):
- If an override key is missing, the app will fall back to the original text in the XML.
Locales follow Borealis conventions with a fallback to en-US as the default.
Changing the settings will generate a config.ini file in the /config/pkDex directory, which will be used to store user preferences.
- CMake 3.10 or higher
- A C++17 compatible compiler
- Platform-specific development tools:
- For Switch: devkitPro with Switch development tools
- For PS4/PSV: Appropriate SDK (for PlayStation platforms)
- For Desktop: Standard development tools for your platform
- Borealis UI framework (included as a submodule)
- SDL2 (for some platforms - included as a submodule)
- Platform-specific libraries (handled by the build system)
-
Clone the repository with submodules:
git clone --recursive https://github.com/Insektaure/pkDex.git cd pkDex -
If you didn't clone with
--recursive, initialize the submodules:git submodule update --init --recursive
-
Make sure you have devkitPro latest version installed with Switch development tools and jq (for json minification at build).
-
Build the application:
make build-switch
-
The output will be a
.nrofile in thebuild_switchfolder that can be run on a Nintendo Switch with custom firmware.
If you want to speed up the build process, you can use edit the Makefile and replace
make -C build_switch pkDex.nro -j2with
make -C build_switch pkDex.nro -j$(nproc)-
Make sure you have devkitPro installed with Switch development tools.
-
Build the updater application:
make build-updater
-
The output will be a
.nrofile in thebuild_switch/pkDexUpdaterfolder that can be run on a Nintendo Switch with custom firmware.
if you want to speed up the build process, you can use edit the Makefile and replace
make -C build_switch pkDexUpdater.nro -j2with
make -C build_switch pkDexUpdater.nro -j$(nproc)To build both the main application and the updater in one command, you can use:
make build-all-
app/: Application source codeinclude/: Header filessrc/: Implementation filesactivity/: Application activitiesdata/: Data loading and managementtab/: UI tabs for different sectionsview/: UI views for displaying content
-
pkDexUpdater/: Update checker applicationsrc/: Implementation files for the updaterressources/: Resources for the updater applicationimg/: Images for the updater UI
-
resources/: Application resourcesdata/: Pokémon data filesi18n/: Internationalization filesimg/: Images including Pokémon sprites and iconsxml/: UI layout definitions
-
library/: External librariesborealis/: Borealis UI framework
-
screenshots/: Screenshots of the application for documentation purposes
For static images, see the screenshots folder.
- Borealis UI Framework: A hardware-accelerated UI library for Nintendo Switch homebrew, developed by natinusala and contributors. GitHub Repository
- Pokémon Data: All Pokémon names, images, and data are property of Nintendo, Game Freak, and The Pokémon Company.
- Development: pkDex is developed by Insektaure.
- Datasets: Pokémon data sourced from various community resources and official game data (serebii.net / pokemondb.net / bulbapedia.bulbagarden.net).
- Switchbrew for their research and libnx which makes it possible to create homebrew
- ReSwitched for their research, Atmosphere, and libstratosphere which is invaluable for Switch homebrew
- @Dev9212 for helping on the German translation
This project is licensed under the GNU General Public License v2.0 - see the LICENSE file for details.
This application is not affiliated with, endorsed by, or related to Nintendo, Game Freak, or The Pokémon Company. Pokémon and Pokémon character names are trademarks of Nintendo. This application is intended for educational and informational purposes only.

