The core save editing code for PKSM. This library is warning-free, with one exception: PKSM-Core will trigger Wpsabi. However, as PKSM-Core does not provide binary releases, this warning is not relevant to it. In nearly all cases, PKSM-Core is also exception-free. The only time an exception may be thrown is if something interesting happens in Generation 8 decryption. If such an exception is thrown and you are certain that the save file in question is valid, please immediately open an issue.
Usage in another project:
Necessary include directories: - memecrypto - include
Necessary source directories: - memecrypto - source and all its subdirectories
- A few defines must be provided. This may be done by either having a file in your include path named
PKSMCORE_CONFIG.h, or with your compiler’s command line options. If using the command line options, an additional define,
_PKSMCORE_CONFIGURED, is required to indicate that you do not wish to read
Required defines: - _PKSMCORE_LANG_FOLDER: the folder from which languages are loaded at runtime
- _PKSMCORE_GETLINE_FUNC: the name of your stdio.h getline function (on certain platforms, it may be named something different, such as
__getline). Defaults to
- _PKSMCORE_DISABLE_THREAD_SAFETY: If defined,
thread_local is removed from the random number generator and atomics are removed from the i18n initialization
- _PKSMCORE_EXTRA_LANGUAGES: If defined, this must be a comma-separated list of language names. They will be added to the Language enum in order of appearance in the list with values starting at
u8(Language::CHT) + 1, and will work properly with all i18n functions. If a given file for a language does not exist, it will use the English version. If there is no English version, it will likely fail gracefully, but I’d suggest staying away from that situation.
Credits: - @BernardoGiordano for the original PKSM editing code - @Admiral-Fish and @piepie62 for helping to rewrite that original code into C++ - @kwsch for PKHeX, from which most code is translated into C++ - @SciresM for a huge amount of Pokémon format research and memecrypto - @Epicpkmn11 for convincing me to make this a separate repository and most generation 3 stuff