Jump to content

Gen 1, 2, 3, 4, 5, 6, 7 PKX Editor + Converter website


Metropolis

Recommended Posts

Convert a Pokemon all the way from Red -> Gold -> Ruby -> Diamond -> Black -> X -> Sun and back without downloading any software!

Here's the first version of a project I've been working on in Javascript - a full PKX editor for generations 1 through to 7.

Any Pokemon file (.PKX) exported from a save editor can be opened inside the browser, edited online then downloaded without any need for downloading or installing software.

Support for conversion between different generations is supported both ways, but in its early stages.

Abilities and held items will need manually correcting, but almost all fields are mapped automatically.

Free and nothing to download, edits Pokemon directly inside the web browser, should work on smartphones too.

Please report any bugs so I can improve the tool. Currently only supports individual Pokemon, not save games.

Any ideas or contributions for snazzing it up much appreciated.

Known bugs:

  • PK4 editing is broken
  • PK5 editing is broken
  • PK6 Memory intensity does not display correctly
  • PK6 Ability Number does not display correctly
  • Cross-generation conversion does not map all fields exactly

Upcoming features:

  • Nicer interface
  • Easy copy/pasting Pokemon by HTML link with base 64 encoded String
  • Improved conversion, looking up items and locations

 

edit: Hello all, a mod here. If the link is temporarily down, you may wanna try this instead:

Made by same dev, can also convert files, will require input/work on user's end.

 

edit again: It looks like the link has been taken over by a third party. I'll leave the tool for the other app for now. If @Metropolis comes back to give a new link, I'll have the thread unlocked.

  • Like 2
Link to comment
Share on other sites

Very good man, I can't wait to use the conversion!

I have a bug to report, When I loaded a Legit Bulbasaur starter of fire red, then download, and open with PKHeX(Editing the same Fire Red save), the Bulbasaur is nicknamed checked, but I didn't nicknamed him.

Edited by JHorbach
Link to comment
Share on other sites

Thanks. In gen 3 there is no flag indicating nickname like in later games, so I don't know what PKHex uses to decide if it's nicknamed or not, may be incorrect or may be that the terminator bytes need sorting out. For anyone interested the source code is /pk3/pk3IO.js and pk3Charset.js have the string operations that affect the nickname.

Link to comment
Share on other sites

Thanks. In gen 3 there is no flag indicating nickname like in later games, so I don't know what PKHex uses to decide if it's nicknamed or not, may be incorrect or may be that the terminator bytes need sorting out. For anyone interested the source code is /pk3/pk3IO.js and pk3Charset.js have the string operations that affect the nickname.

PKHeX compares The nickname in capital letters and Species name.

Anyway, Can I know why Google has blocked The upgrades of your app?

Link to comment
Share on other sites

Policy Issue: Your app was rejected for violating the Dangerous products policy and the Developer Distribution Agreement.

We don't allow content that harms, interferes with the operation of, or accesses in an unauthorized manner, networks, servers, application programming interfaces (APIs), or other infrastructure.

Google sees injecting Pokemon as hacking, expect other save editors or injectors to be removed similarly. Very disappointing news, there's nothing criminal or harmful about editing your own save data.

You're welcome to the source code to build the APK (and see that it does nothing of that sort!)

I'd rather invest efforts in a free browser based editor that runs on phones, computers with open sourced code to easily sort out bugs. Are there any others out there (to save me re inventing the wheel?)

Link to comment
Share on other sites

Google sees injecting Pokemon as hacking, expect other save editors or injectors to be removed similarly. Very disappointing news, there's nothing criminal or harmful about editing your own save data.

You're welcome to the source code to build the APK (and see that it does nothing of that sort!)

What a bad news. I'm developing an Android app about Pokémon hacking (save editor, ecc..)... What can I do?

Link to comment
Share on other sites

Either release independently through sharing the git repository or offer the APK for download. I'd work with the assumption Google will remove it rather than risk disappointment but don't be discouraged!

It's frustrating because Google have kept the app itself up by reject any update I've tried however trivial, which is bizarre.

It's worth noting that a central feature was the QR injection - perhaps an editor that only affects files already on the phone wouldn't be seen as 'hacking'. When I tried to release an update that removed the QR feature to comply it was still rejected however :(

Link to comment
Share on other sites

Either release independently through sharing the git repository or offer the APK for download. I'd work with the assumption Google will remove it rather than risk disappointment but don't be discouraged!

It's frustrating because Google have kept the app itself up by reject any update I've tried however trivial, which is bizarre.

It's worth noting that a central feature was the QR injection - perhaps an editor that only affects files already on the phone wouldn't be seen as 'hacking'. When I tried to release an update that removed the QR feature to comply it was still rejected however :(

Great! I wish that Google won't block my app :P Thank You Very much!

I'm so sorry for your application.

Link to comment
Share on other sites

Here is a image of the problem I talked, seems that the OT name is messed too. I tried with A-save, and it's had the same character "?" in both OT and Pkm name.

Sem_t_tulo.png

That's an easy fix - I'll reply when that's done.

Other likely bugs are in block rotation for gen 4 and 5, any feedback for that would be great.

Testing takes a lot longer than developing a tool you see :D

Link to comment
Share on other sites

Fix is live on the website for the ? in the nickname. The name bytes are now written with zeros after the terminator byte 255.

JHorbach could you try the Bulbasaur again to confirm the nickname is correct when opened in PKHex?

I've fixed the gen 4 nickname writing too. Gen 5 and 6 should be OK as is.

Gen 1 and 2 write terminator bytes 255 255 255 at the end, which is what I've seen in-game.

Thanks for the feedback.

Link to comment
Share on other sites

Fix is live on the website for the ? in the nickname. The name bytes are now written with zeros after the terminator byte 255.

JHorbach could you try the Bulbasaur again to confirm the nickname is correct when opened in PKHex?

I've fixed the gen 4 nickname writing too. Gen 5 and 6 should be OK as is.

Gen 1 and 2 write terminator bytes 255 255 255 at the end, which is what I've seen in-game.

Thanks for the feedback.

The Bulbasaur is 100% ok! Nice work Metropolis.

Edit: I don't know anything about this, if it's a problem or not, but when I load the files in a Hex Editor to compare, there are something different as you can see in this image!

Sem_t_tulo.png

... When I load your .pk3 file in PKHeX then save it, the saved file is the same as the original .pkm from PKHeX.

Link to comment
Share on other sites

I've fixed the checksum is now for all generations now, thanks.

The other known bug is the negative PID value and encryption constant - Javascript doesn't manage 32-bit unsigned easily as the leading bit is the sign bit.

The value should still be correct, but not in a nice format on screen.

In Java I used unsigned long to hold unsigned 32-bit (as that's 64-bit signed), not as easy in JS.

Memory Intensity (value 7) and Ability Number (value 4) differed from porybox when I opened the example Porygon from that, so need to tweak those.

Do you know which values those fields can have?

Again, the value will be correct but not displayed right on screen.

PK6 editing worked correctly otherwise, but PK4 and PK5 still needs work.

Thanks

Edited by Metropolis
Link to comment
Share on other sites

Cool! I'm at work now, when I get home will test it! Good work man!

I have some bugs to report

- When I transfer my mew from Gen 1 games, to Gen 3 to HP IV becomes 0, Mew's held item is invalid in Gen 2 too.

- When I transfer my Gen 3 Bulbasaur to Gen 2 and 1, it species is invalid... But I can change it manually.

Edited by JHorbach
Link to comment
Share on other sites

  • 4 weeks later...
  • 2 weeks later...
  • 5 weeks later...

This is all I was waiting for. Thank you so much, Metropolis.

 

Now to convert all my gen 5 pokémon back from gen 6 :P 

 

Hey, not sure if you're still supporting this, but I've had a minor problem when transfering gen 6 > gen 5. All the stats, items etc transferred OK, and in PKHex everything was fine, but my game glitched when I inspected the mons I had transferred, so I decided to check using PokeGen and it seems nicknames and OT names aren't being correctly transferred. Seemingly, there should be a 0xFFFF string after the name has ended, but it comes out of the editor with a 0x0000 instead, so these names are invalid in-game (usually appearing as ????????????). PKHex didn't show this, but Pokegen did. After I edited the 0x0000 strings out, they worked just fine.

  • Like 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...