PKSM: a Gen I to Gen VIII save manager that runs on hacked 3DS and does its own legality checking
Gen I to GenVIII save manager.
At a glance
- What is it?
- A C++ save editor for Nintendo's Pokemon games, running as homebrew on CFW or a Rosalina-based launcher. The interesting part is not the editing, it is that PKSM hosts its own GPSS-style legality server rather than depending on a public one.
- Who is it for?
- PKSM is the right tool when your saves are on a 3DS and you want editing, wondercards and offline storage on the handheld itself, and the wrong tool the moment your library lives on Switch, where the same search terms turn up no equivalent from this project. It is GPL-3.0, version 10.4.1 released on 2026-09-07, and the last push was on 2026-09-08, so it is being worked on.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 28 days ago.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 28, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A save editor that runs on the console, not beside it
PKSM describes itself as a multipurpose and portable Pokemon save manager and editor for generations I to VIII, written in C++. The word portable here means it runs on the device that owns the saves, not that it runs everywhere.
That single design decision explains most of what follows in this article. The software runs under custom firmware or on a Rosalina-based Homebrew Launcher, which means it needs a 3DS that has been modified to run unsigned homebrew. It supports original cartridges and digital copies from FrLgRSE through SwSh, and it modifies data on the fly rather than requiring saves to be moved to a PC first.
The capability list is broader than a hex editor. Alongside modification of save data, PKSM offers internal and resizable offline storage for holding your own Pokemon, custom script execution for injecting arbitrary data, QR scanning that imports both .pkx files and event wondercards, an offline wondercard database for old event distributions, and automatic verification and legalization of data.
The repository layout backs that up: a 3ds/ directory holding the application, common/ for shared code, tools/, tests/, docs/, assets/, an external/ directory for dependencies, and a core entry that appears to be a submodule given the .gitmodules file. The primary language recorded for the repository is C++, and the licence is GPL-3.0.
Installing means picking a .cia or a .3dsx, and going online once
There is no package manager here. Installation is downloading one of two files from the release page and putting it somewhere the 3DS can execute it from, with the choice depending on how the console is set up.
For CFW, the README says to install the PKSM.cia file from the release page with a favourite installer, after which the application launches from the Home Menu. For a Rosalina-based Homebrew Launcher, you copy the PKSM.3dsx file onto the SD card and launch PKSM through the Homebrew Menu.
One requirement is worth flagging before anything else. The initial launch requires an internet connection, because the application downloads additional assets needed to launch. The README is blunt about the failure case: if the system is not connected to the internet, PKSM will close.
git clone --recursive https://github.com/FlagBrew/PKSM.gitThe working path list shows what the application does with your SD card, which is the kind of detail that saves a panic later. Additional assets live at /3ds/PKSM/assets, automatic save backups at /3ds/PKSM/backups, extra storage data at /3ds/PKSM/banks, .pkx and .wcx dumps at /3ds/PKSM/dumps, custom scripts at /3ds/PKSM/scripts, and custom background songs at /3ds/PKSM/songs.
The backups directory deserves attention. Automatic save backups are a stated feature of the application rather than something you configure, and for a tool that rewrites save files in place on a handheld, that is the difference between a mistake and a lost afternoon.
Legality checks depend on a server you are expected to host
The legality story is the most distinctive thing about PKSM and the part most worth understanding before installing. The README states that PKSM is capable of automatic verification and legalization of all your data, and immediately qualifies it: an internet connection and local hosting are required, and you must run your own local-gpss or use one hosted by someone else in the future.
That is a meaningfully different arrangement from a tool that bundles a legality checker. There is no embedded database of what is legal. Instead PKSM ships a client, and the legality determination happens on a GPSS instance. The README credits Archit Date for CoreConsole and PKHeX AutoLegalityMod, and separately credits Allen for the GPSS work spanning 2019 to 2025, which places the hosted legality protocol in the same family as PKHeX's tooling.
The practical implication is that a fresh PKSM install has no opinion about legality until you have pointed it at a GPSS instance. If you skip that step, the features described as verification and legalization simply are not there.
The README also states its own position on how the tool should be used, in bold: the project does not support or condone cheating at the expense of others, and asks that significantly edited Pokemon not be used in battle or trades with people unaware that edited Pokemon are in use. That is a request rather than a technical control, and it is worth reading as the project's own view of where its value lies, which is in preparing saves rather than in defeating online play.
Where PKSM and PKHeX divide the work
The README lists applications compatible with PKSM, and that list answers the comparison question better than any claim of superiority would.
PKHeX is listed as generating .pk7, .pk6, .wc7 and .wc6 QR codes that PKSM can scan, and it runs on a PC. MysteryGiftBot is listed as generating .wc7 QR codes scannable from PKSM, and it runs on Twitter. PKSM-Scripts is a separate toolkit for developing and compiling .pksm and .c scripts, and Local GPSS is described as a local hostable version of GPSS with AutoLegality functionality.
So the division is one of platform and direction of data flow. PKHeX lives on a PC and hands data to the console through QR codes. PKSM lives on the console and receives it. The file extensions tell the same story: .pk7, .pk6, .wc7 and .wc6 are generated elsewhere and scanned in.
That comparison only holds within the 3DS ecosystem. On Nintendo Switch there is no PKSM equivalent listed here, and the search terms people use for Switch saves return nothing from this project, which is the clearest boundary around what it can do.
The offline database is a small detail that still matters: PKSM carries an offline wondercard database so event distributions from old periods can be recovered without going online for them. That is the feature that makes it more than a QR receiver.
Custom scripts extend the editor into a programming environment
PKSM can run custom scripts, and the README credits SpiredMoth, trainboy2019 and the scripters for making the separate PKSM-Scripts repository good. Scripts live at /3ds/PKSM/scripts on the SD card, and custom background songs live alongside them at /3ds/PKSM/songs.
The capability this unlocks is described plainly: the ability to inject arbitrary data into your saves. That is a scripting surface rather than a fixed feature set, and it is where a lot of the community's work has accumulated outside the main repository.
Internal and resizable offline storage is the other structural feature worth naming. Banks at /3ds/PKSM/banks hold extra storage data, which is a way of carrying more Pokemon than a given game's own save format allows. It is a managed region of the save rather than an unbounded one, which is the constraint that makes it safe to edit in the first place.
Together these three, scripts, banks and QR transfer, are what separate PKSM from a save viewer. A viewer shows you what is there. PKSM lets you add to it, from the console, without a PC in the loop.
Building from source needs a devkitPro toolchain and pinned versions
The build documentation is specific enough to be useful, which is unusual and welcome for a homebrew project. PKSM depends on libctru, citro3d, citro2d, 3ds-curl, 3ds-pkg-config, 3ds-bzip2, 3ds-mpg123, 3dstools, tex3ds and the devkitARM toolchain, all of which the README says should be installed from devKitPro pacman.
The tested versions are given as a table, which tells you how tightly pinned this stack is in practice: devkitARM r68.1 with devkitarm-gcc 16.1.0-1 and devkitarm-rules 1.6.0-4, libctru 2.7.0-1, citro3d 1.7.1-2, citro2d 1.7.0-1, 3ds-curl 8.4.0-1, 3ds-pkg-config 0.28-5, 3ds-bzip2 1.0.8-1, 3ds-mpg123 1.31.3-3, 3dstools 1.3.1-3, tex3ds 2.3.0-4, rsync tested at 3.2.7 and system pkg-config at 1.8.1.
make allThere are more prerequisites beyond the console toolchain. Producing a .cia build needs 3dstool, bannertool and makerom. Documentation generation needs Python 3.x with GitPython, and separately node.js, pandoc, wkhtmltopdf and github-wikito-converter for the HTML docs. The Makefile reflects this structure with separate targets: a debug build, a release target that depends on both the 3DS build and docs, and no-deps, no-scripts and no-gifts variants that strip optional content out of the build.
Clone recursively, because the repository uses submodules, then run make all. The default branch is master rather than main, which is worth noting if you are scripting against it.
For maintenance, release 10.4.1 published on 2026-09-07 and the last push was on 2026-09-08. The release notes for that version describe save format checksums now reporting their validity so broken files are caught before loading instead of half-loading, plus transfer fixes for handling trainer data and form data between generations 7 and 8. That is the shape of the work: save format compatibility, maintained continuously as new games ship.
Editorial conclusion
PKSM is the right tool when your saves are on a 3DS and you want editing, wondercards and offline storage on the handheld itself, and the wrong tool the moment your library lives on Switch, where the same search terms turn up no equivalent from this project. It is GPL-3.0, version 10.4.1 released on 2026-09-07, and the last push was on 2026-09-08, so it is being worked on. Two things to settle before you rely on it: legality checks require either your own local-gpss instance or a third-party host, and the first launch needs an internet connection or the application closes. Download PKSM.cia for CFW or PKSM.3dsx for a Rosalina-based launcher, and treat the GPSS setup as part of installation rather than an optional extra.
Frequently asked questions
Does PKSm make Pokémon illegal?
PKSM can modify save data and inject arbitrary values, so it can produce data that a game would not consider legal. The project states it does not support or condone cheating at the expense of others, and asks that significantly edited Pokémon not be used in battle or trades with people unaware that edits are in use. Its own legality check exists to help you avoid that case rather than to enable it.
Is PKSm or PKHEX better?
They run in different places and work together rather than competing. The README lists PKHeX as a PC application that generates .pk7, .pk6, .wc7 and .wc6 QR codes which PKSM scans on the console, so the typical workflow is PKHeX for authoring and PKSM for applying. PKSM's own advantage is that it edits on the handheld, adds offline storage, runs scripts, and carries an offline wondercard database.
Can PKSm check legality?
Yes, but not on its own. The README says automatic verification and legalization requires an internet connection and local hosting, and that you need to run your own local-gpss instance or use one hosted by someone else. Until PKSM is pointed at a GPSS instance the legality features have nothing to consult.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/flagbrew-pksm)