Jump to content

Recommended Posts

Posted (edited)

Hi everyone,

I've been working on a Pokemon save file editor particularly for ROM hacks, but it supports all the vanilla gen 3 Pokemon games at the moment. I plan on adding more. It also supports Unbound. And I plan to add more ROM hacks once I finish playing Unbound and add tests for the library.

You can find the source code and some examples on usage on the Git repository:

https://codeberg.org/ramenu/pkedit

It's written in C++ but has bindings for Python which makes it very very simple and a lot more different than typical save file editors. Basically, you can easily read and write compatible save files with very few lines of Python code. So, for example, say you're trying to hunt for Pokemon with good IVs, you can make a Python script, open up a terminal on UNIX in a split screen and use the watch command on UNIX to instantly check the Pokemon's stats (or whatever the alternative on Windows is) rather than manually opening the save in a GUI and such. This is just one example and you can do a lot more with it, of course.

An example of this in Python:

import pkedit

sav = pkedit.Save.load('Pokemon Unbound.sav')
pkmn = sav.trainer.party()[2]

print(f'HP IV: {pkmn.hp_iv()}')
print(f'Attack IV: {pkmn.attack_iv()}')
print(f'Defense IV: {pkmn.defense_iv()}')
# ...

 

If you're less interested in the scripting/programming stuff, there is also a GUI I wrote in QT so it is cross-platform and works on Windows, MacOS, Linux, and probably other *Nix operating systems. It's a little buggy but it works well enough, the bugs usually come up when you open another save file:

https://codeberg.org/ramenu/pkedit-qt

No downloads available atm. But if you're knowledgable enough you should be able to build and compile it yourself. Again, I hope to expand the documentation later on and provide binaries if people request it. I plan on writing a 3DS homebrew app as well. Here are a few screenshots:

26517.thumb.png.61bd7db55ef4b65ca0afbd1b723a5169.png

 

28740.thumb.png.58d0a9a2b97351275594887b9a2b7812.png29787.thumb.png.46f30109079f4ba23b09423b15872d0e.png

24578.thumb.png.4a5c9f8fb16b178fc1121b998d038a0f.png

14105.thumb.png.15754667ad0d09b139fc5a736e194b7e.png

17158.thumb.png.c5206b5ac586a8a13c3082b2a7b47d74.png

24389.thumb.png.6a7b8a9b340c25d1053d558d27cd5b0c.png

 

You can edit the greyed out boxes by enabling the 'Allow Potentially Illegal Modifications' in the options menu. It's disabled by default.

Current Limitations

You cannot inject events, transfer Pokemon between different Games, or view Pokemon in your box. I plan to add viewing box Pokemon at some point as well though. But PKHeX and PKSM work well enough for these purposes for most users.

If you have any ROM hacks you want me to add feel free to ask. Though NDS rom hacks are going to be dismissed for now as I don't even have any abstractions setup in place, let alone the regular gen 4 games as of right now.

 

 

 

Edited by ramenu
Add GUI screenshots
  • 1 month later...
  • 2 weeks later...
Posted
On 6/21/2025 at 9:53 AM, SinhJoySpirit said:

Does it work for Radical Red?

Radical Red seems to use the Complete FireRed Upgrade engine, which Unbound also uses, so maybe? It should be able to recognize all Gen 1-8 pokemon and moves in the editor. Some item names will be incorrect though. And unless Radical Red uses the same sector signatures as Unbound then the editor will be unable to load the save at all. But that's trivial to fix. I'll add proper support for it later on but for now I want to focus on tidying up the code, providing binaries, fixing bugs, etc.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...