fced599119
HGSS tracks each box if it is changed, to skip writing it on in-game save. PKHeX (and other editors) weren't updating these bitflags, so when empty boxes had Pokémon added and saved once in-game, the save file would corrupt as it was copying the checksum but not the box's data. Saving twice in-game will cause the checksums to get updated even without the flags being set. I don't think we understand it fully, but this hacky workaround of noting all boxes as "changed" will cause the first-save to properly copy all contents of the boxes to the new primary save section. Rather than tracking which boxes we are reading/writing slots for, or fixing/comparing against a backup -- we need to account for API usage where people might write directly into the save (pcdata.bin/boxdata.bin too). Best to play it safe and let the game fix it. Most wouldn't have noticed this issue as the box they're modifying is usually their most-recently-changed in-game box. Closes #4368 |
||
---|---|---|
.github | ||
PKHeX.Core | ||
PKHeX.Drawing | ||
PKHeX.Drawing.Misc | ||
PKHeX.Drawing.PokeSprite | ||
PKHeX.WinForms | ||
Tests/PKHeX.Core.Tests | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
Directory.Build.props | ||
icon.png | ||
LICENSE | ||
PKHeX.sln | ||
README.md |
PKHeX
Pokémon core series save editor, programmed in C#.
Supports the following files:
- Save files ("main", *.sav, *.dsv, *.dat, *.gci, *.bin)
- GameCube Memory Card files (*.raw, *.bin) containing GC Pokémon savegames.
- Individual Pokémon entity files (.pk*, *.ck3, *.xk3, *.pb7, *.sk2, *.bk4, *.rk4)
- Mystery Gift files (*.pgt, *.pcd, *.pgf, .wc*) including conversion to .pk*
- Importing GO Park entities (*.gp1) including conversion to .pb7
- Importing teams from Decrypted 3DS Battle Videos
- Transferring from one generation to another, converting formats along the way.
Data is displayed in a view which can be edited and saved. The interface can be translated with resource/external text files so that different languages can be supported.
Pokémon Showdown sets and QR codes can be imported/exported to assist in sharing.
PKHeX expects save files that are not encrypted with console-specific keys. Use a savedata manager to import and export savedata from the console (Checkpoint, save_manager, JKSM, or SaveDataFiler).
We do not support or condone cheating at the expense of others. Do not use significantly hacked Pokémon in battle or in trades with those who are unaware hacked Pokémon are in use.
Screenshots
Building
PKHeX is a Windows Forms application which requires .NET 8.0.
The executable can be built with any compiler that supports C# 12.
Build Configurations
Use the Debug or Release build configurations when building. There isn't any platform specific code to worry about!
Dependencies
PKHeX's QR code generation code is taken from QRCoder, which is licensed under the MIT license.
PKHeX's shiny sprite collection is taken from pokesprite, which is licensed under the MIT license.
PKHeX's Pokémon Legends: Arceus sprite collection is taken from the National Pokédex - Icon Dex project and its abundance of collaborators and contributors.
IDE
PKHeX can be opened with IDEs such as Visual Studio by opening the .sln or .csproj file.