Skip to content
SpiredMoth edited this page Feb 14, 2023 · 26 revisions

What games are supported?

As of v9.2.0 the following games are supported

  • Gen 3
    • Pokémon Ruby, Sapphire
    • Pokémon FireRed, LeafGreen
    • Pokémon Emerald
  • Gen 4
    • Pokémon Diamond, Pearl
    • Pokémon Platinum
    • Pokémon HeartGold, SoulSilver
  • Gen 5
    • Pokémon Black, White
    • Pokémon Black 2, White 2
  • Gen 6
    • Pokémon X, Y
    • Pokémon Omega Ruby, Alpha Sapphire
  • Gen 7
    • Pokémon Sun, Moon
    • Pokémon Ultra Sun, Ultra Moon
    • Pokémon Let's Go Pikachu, Let's Go Eevee
  • Gen 8
    • Pokémon Sword, Shield (v1.2 only)
      • supported DLC: Isle of Armor

Gen 3 games work either through emulators (via Extra Saves) or through VC injects (via custom Title IDs).

LGPE saves can be accessed by bridging PKSM on 3DS to Checkpoint on Switch. SWSH saves can be accessed through the same bridging function, but the latest version of Checkpoint (v3.7.4 as of writing) needs an update to be able to send the saves.

Why does PKSM require CFW? Can't you make a version that works on *hax?

PKSM has a requirement of custom firmware (CFW) for a few reasons:

  • On *hax, you can only access the save archive of the game you inject into, which makes extended-memory games screwy on o3DSes. It also makes the whole pretty title screen impossible to use.
  • The 3dsx has to be smaller than the .code of the game you're running the Homebrew Launcher for, which is a tall order for a ~10MB application like PKSM
  • We have no desire to maintain separate codebases for CFW and non-CFW versions of PKSM.

Are flash carts supported?

No, and they will never be supported. This is due to programming restrictions, not lack of effort.

Can I use PKSM on my TWiLight Menu saves?

Yes, see the extra saves section of Settings for how to set it up.

I'm attempting to use a save that was used in an emulator at some point, and it won't load. What do I do?

There is likely an extra 122 bytes at the end of your file. You can check this by right clicking it on a computer, and checking the size (it should be 524,288 bytes). Back the file up, then delete the last 122 bytes using a hex editor.

Does PKSM work with romhacks?

PKSM is only designed to work with the official, unmodified games. If the romhack does not alter the standard save format then PKSM might work with saves from it. We will not be adding support for any romhacks.

Can I transfer mons from PKSM directly to Bank or Home?

No. This would require direct interaction with Nintendo's servers, which would doubtlessly end in a Cease & Desist against PKSM (and possibly all of FlagBrew's other projects), which would then lead to the death of PKSM.

Will you add support for the Virtual Console games?

As of v9.0.0 PKSM supports GBA VC injects.

There are currently no plans to support the Generation 1 and 2 Virtual Console games, but PKSM is an open-source project and you are more than welcome to work on their implementation yourself and submit a pull request.

To give a little more detail on why there are no plans to add this, it has to due with the backwards compatibility, the data structure for Pokemon (such as the stats) had a major overhaul going from Generation 2 to 3 (hence why you could never officially trade between these games). It would involve writing a heavy amount of code that our main developer just doesn't have time for as of 2020.

My Pokémon isn't legal. What do I do?

With an active internet connection you can use PKSM's legality checker to see what's wrong. Go to the Edit Pokémon screen, then go to the Misc screen. Click on the wireless icon. Congrats, you've accessed the legality checker.

Please note: The legality checker requires a network connection. It cannot be handled on-3ds as it would destroy the 3ds.

If your 3DS lacks an active internet connection, use another resource (like Serebii or an in-game pokedex) to manually double-check that the moves, level, met location, etc. of your Pokémon are legal.

Why doesn't scanning this QR work?

It depends on the type of QR you're trying to scan:

  • GPSS: QRs from the GPSS (or the #gpss-logs channel of FlagBrew's Discord server) have to be scanned in the GPSS section of PKSM. This can be accessed by opening Storage, then selecting the wifi button on the bottom screen, then pressing X.
  • PKX/PB7: Usually coming from PKHeX, these QR codes must be of the same generation as the currently loaded save. This scanner is accessed by opening Editor, then pressing L + R. Please note: PK7 files are very finicky due to their size, and as such may need multiple tries.
  • Wonder Card: These are scanned by opening Events, then pressing L + R.

Why doesn't ServePKX work? How can I send pokemon to PKSM from my PC now?

ServePKX has been deprecated as of PKSM v6. There are three ways you can send pokemon to PKSM from PC now.

  1. (Recommended) Upload the pokemon to the GPSS using either through our Discord bot's .gpsspost command (should only be used in #bot-channel), or through architdate's Auto Legality Plugin for PKHeX.
  2. Create a QR code from the pkx file using PKHeX. Then, scan the QR code by opening Editor and pressing L + R.
  3. Place the pkx files you want to add at /3ds/PKSM/inject/ and run the universal injector.c script.

An event is missing from the database. Can you add it?

First off, PKSM's Event section does not currently support Generation 3, LGPE, or SWSH.

If you're asking about another event, it is most likely already in the collection that is the source of our database. If you find the event there but not in PKSM, please report it so we can update our bundling script.

How do I use Generation 3 wondercards?

Generation 3 events do not exist as wondercards, outside of the unsupported (fake) WC3 format. There are two different methods for accessing Generation 3 events, depending on what they require.

  1. For any events that directly give you a pokemon, you will want to use the universal injector.c script by putting the .pk3 file, found from EventsGallery, at /3ds/PKSM/inject/ and then running the script.
  2. For events that give you an item so you can get a pokemon (ex the Old Sea Map), you'll want to use the beta scripts pinned in the #pksm-scripts-general channel of our Discord server. This can be done by putting the script at /3ds/PKSM/scripts/universal/, then running it in PKSM.

All the sprites in PKSM have been changed. What went wrong?

Nothing has gone wrong. I repeat -- THIS IS NOT A BUG! This is entirely expected under the right circumstances, and given the right amount of time this will go away on its own. If you're impatient, the cause is really simple and you can change something to return things to normal.

We've had various reactions to this once users have learned the cause:

  • some facepalm, mostly because they're disappointed in themselves for not seeing it sooner
  • some are relieved that it's not a bug
  • some just wanting things to go back to normal so they can return to using PKSM the way they're used to
  • some are indifferent
  • some have even appreciated it as clever

How do I add custom music?

Place your custom music tracks in MP3 format in /3ds/PKSM/songs. Relatively small file sizes are recommended, as are sampling frequency of 44100Hz and a bitrate of 96kbps.

These are recommendations, not constraints; you can generally toss whatever you want in MP3 format in there and PKSM will do fairly well.

What backup folder corresponds to which game?

For DS and 3DS games (Generations 4 through 7), this table summarizes which backup folder for both PKSM and Checkpoint is for which game.

Game PKSM Checkpoint
Diamond ADAX ADAX POKEMON D
Pearl APAX APAX POKEMON P
Platinum CPUX CPUX POKEMON PL
HeartGold IPKX IPKX POKEMON HG
SoulSilver IPGX IPGX POKEMON SS
Black IRBX IRBX POKEMON B
White IRAX IRAX POKEMON W
Black 2 IREX IREX POKEMON B2
White 2 IRDX IRDX POKEMON W2
X 0x0055D 0x0055D Pokémon X
Y 0x0055E 0x0055E Pokémon Y
Omega Ruby 0x011C4 0x011C4 Pokémon Omega Ruby
Alpha Sapphire 0x011C5 0x011C5 Pokémon Alpha Sapphire
Sun 0x01648 0x01648 Pokémon Sun
Moon 0x0175E 0x0175E Pokémon Moon
Ultra Sun 0x01B50 0x01B50 Pokémon Ultra Sun
Ultra Moon 0x01B51 0x01B51 Pokémon Ultra Moon

where X for DS games (Diamond/Pearl through Black 2/White 2) is one of E, S, K, J, I, D, F, or O.

For backups of saves sent through the bridge function (i.e. from Switch Checkpoint to 3DS PKSM), you'll find the backups in /3ds/PKSM/backups/bridge.

For titles configured through the Title IDs option in Settings, it is based on the title ID you configured for the game. This is better explained with an example:

Let's say for "FireRed" you've configured the ID 0xABCDEFGHIJKLMNOP. To get the backup folder name

  1. remove the last 2 digits
    • in our example, this is OP, which would leave us with 0xABCDEFGHIJKLMN
  2. take the last 5 digits
    • our example would leave us with JKLMN
  3. add 0x in front of those 5 digits
    • our example gives us with 0xJKLMN

And that's it! So our backup folder for "FireRed" with the title ID 0xABCDEFGHIJKLMNOP will be 0xJKLMN.

If you set up any Generation 3 save files as Extra Saves without configuring a Title ID, the backups will be in a particular folder based on the game

Game PKSM
Ruby 0x00001
Sapphire 0x00002
Emerald 0x00003
FireRed 0x00004
LeafGreen 0x00005
Clone this wiki locally