GenIV to GenVII save manager.
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Add bank backup message Dec 14, 2018
build New picoC script Dec 12, 2018
include Bank conversion! Yay! Dec 12, 2018
source Switch to using std::ios::ate Dec 16, 2018
.gitignore Add scripts to romfs and browse them properly Oct 11, 2018
.gitmodules Add PKSM-Scripts as a submodule Oct 11, 2018
LICENSE 4.0.0 Dec 31, 2016
Makefile Fix compiling instructions Nov 17, 2018 Update Nov 17, 2018



PKSM is in the process of being rewritten to a different language. The repo won't be actively updated for the time being and pull requests may get ignored. If anyone wishes to help with the rewrite they may join the Discord server and provide proof of coding experience(pokemon and homebrew related would be highly appreciated).


Multipurpose and portable save manager for Generations IV to VII, programmed in C.

  • Supports original cartridges and digital copies of games from DPPt to USUM
  • Allows on-the-fly modifications to all of your data
  • Allows internal and resizable offline storage to store your Pokémon
  • Capable of running custom scripts to allow injection of arbitrary data into your saves
  • Interfaces with multiple ad-hoc programs running on your computer, web browser or smartphone
  • Capable of scanning QR codes to inject both .pkx files or event wondercards
  • Contains an offline wondercard database to get events from old distributions

I do not support or condone cheating at the expense of others. Do not use significantly edited Pokémon in battle or in trades with those who are unaware edited Pokémon are in use.



This software works on CFW and *hax/Rosalina-based Homebrew Launchers. An internet connection may be required at the first launch.

Entrypoint Instructions
CFW Install the PKSM.cia file provided in the release page with your favourite installer. You can now launch the application from the Home Menu
Rosalina HBL Move PKSM.3dsx from the rosalina folder in the file. You can now launch PKSM from a Rosalina-based Homebrew Launcher
*hax HBL Move PKSM.3dsx and PKSM.xml from the standard folder in the file. You can now launch PKSM from a *hax-based Homebrew Launcher

Initial launch will require your system to be connected to the internet. This is needed to download the additional assets required for the application to launch. If your system is not connected to the internet, you will get a Failed to receive a status code error.

You need internet access to download the additional assets. If you're unable to download them through the application, download and extract the additionalassets folder in the .zip file to your SD card, at /3ds/PKSM/. The final result should be a folder filled with assets, located at /3ds/PKSM/additionalassets/.

DS cartridges (*hax)

To let PKSM load your DS save correctly, you need to select a target title that has DS save access when selecting PKSM from the homebrew launcher.

A title satisfying those specifics is, for example, Poké Transporter.

Storage changes from 5.0.0+

If you're coming from a PKSM version < 5.0.0, you'll notice your bank.bin file isn't recognized anymore. That's because the working path changed from 5.0.0 onwards, so you'll need to manually move your bank.bin file to the new location, from /3ds/data/PKSM/bank/ to /3ds/PKSM/bank.

Applications compatible with PKSM

  • serveLegality: PC tool to check and fix a pkmn's legality. (Development on hold)
  • PKHeX: Generates .pk7, .pk6, .wc7, .wc6 QR codes scannable from PKSM. Runs on PC.
  • MysteryGiftBot: Generates .wc7 QR codes scannable from PKSM. Runs on Twitter.
  • servepkx: multiplatform tool to send .pk7, .pk6, .wc7full, .wc6full, .wc7, .wc6 files to PKSM. Requires a web browser or JRE.
  • phbank2pksm: tool to convert a PHBank bank file to a PKSM storage file. Requires a web browser.
  • PKSMScript: python tool to compile .pksm scripts.

Working paths

  • Additional assets are located at /3ds/PKSM/additionalassets/
  • Automatic save backups are located at /3ds/PKSM/backup/[GAME_DATE]/main
  • Extra storage backups are located at /3ds/PKSM/bank/bank_[DATE].bak


Before submitting an issue, have a look through the issues page, because your question may have already been answered in the past.

Please only submit consistent issues (submitting your environment and which version of PKSM you're running), without asking for the moon: I'm working for free here. Duplicate issues will be closed without any reply.

I'll not reply to issues related to versions of PKSM different from the latest stable release currently available.

You can get real-time support by joining PKSM's discord server.



PKSM has the following dependencies:

  • The latest version of ctrulib, citro3d, citro2d, 3ds-curl and 3dstool, bannertool and makerom. (All of these except for bannertool, makerom and 3dstool should be installed from the devKitPro pacman repository. ctrulib, citro3d and citro2d should be installed with 3ds-dev and then selecting yes on the entire group instead of installing the packages directly).
  • The latest version of python 3.x and the GitPython library.

To compile, clone the repository with all submodules (git clone --recursive if initially cloning, git submodule init and git submodule update if running from an existing clone) and run make all.


  • dsoldier for the gorgeous graphic work
  • Naxann and Anty-Lemon for their contributions to the project
  • Smealum for ctrulib
  • Kaphotics and SciresM for PKHeX and memecrypto
  • J-K-D for direct save import/export
  • Astronautlevel for QR codes support
  • Slownic and zaksabeast for servepkx
  • Slashcash for PCHex++
  • TuxSH for TWLSaveTool
  • for most of the wondercards
  • Simona for being my best supporter
  • all the people contributing to the scripts
  • all the countless translators who helped with the multilanguage feature
  • everyone who helped during the development process
  • all the supporters

If you appreciate my work, I appreciate a coffee :)


This file is part of PKSM

Copyright (C) 2016/2017 Bernardo Giordano

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see See LICENSE for information.