Small, fast Pokémon save file parsing C library
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


license Travis-CI Build AppVeyor Build

The goal of PKSav is to be a small, fast, and portable library for interacting with and manipulating Pokémon save files. It is written in pure C with no external dependencies, which allows it to be deployed on a wide variety of platforms, from PC's to smartphones to handheld consoles.

It is not meant to be a plug-and-play solution to save editing but rather the internal workings of a larger library that provides users with a more convenient interface. Being written in C, it can easily be wrapped in a larger C/C++/Objective-C library or be called as native functions in languages such as C# or Java.

Currently, only American save files are supported, as save files from different regions are often laid out differently, usually to accomodate strings having different lengths between regions.


Using Travis and AppVeyor, every push to this repository is automatically tested under the following configurations:

  • Compile, unit test:
    • Ubuntu 14.04 (x64)
      • GCC: 4.8.4, 5.4.1, 6.2.0, 7.2.0
      • Clang: 3.9.0, 4.0.1, 5.0.0
    • Windows Server 2012 R2 (x86, x64)
      • MSVC 2015 (x86, x64)
    • Windows Server 2016 (x86, x64)
      • MSVC 2017 (x86, x64)

All source files are analyzed with CppCheck.

Unit tests use the Unity framework.

Component Status

  • Generation I: complete
  • Generation II: complete
  • Game Boy Advance: complete
  • Generation IV: in progress
  • Generation V: in progress
  • Generation VI: in progress
  • Generation VII: in progress

README last updated: 2018/03/25