Metropolis Posted August 8, 2016 Posted August 8, 2016 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. 2
JHorbach Posted August 8, 2016 Posted August 8, 2016 (edited) 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 August 8, 2016 by JHorbach
Metropolis Posted August 8, 2016 Author Posted August 8, 2016 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.
Destinyy Posted August 8, 2016 Posted August 8, 2016 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?
Metropolis Posted August 8, 2016 Author Posted August 8, 2016 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?)
Destinyy Posted August 8, 2016 Posted August 8, 2016 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?
Metropolis Posted August 8, 2016 Author Posted August 8, 2016 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
JHorbach Posted August 8, 2016 Posted August 8, 2016 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.
Destinyy Posted August 8, 2016 Posted August 8, 2016 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 Thank You Very much! I'm so sorry for your application.
Metropolis Posted August 9, 2016 Author Posted August 9, 2016 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. 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
Metropolis Posted August 9, 2016 Author Posted August 9, 2016 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.
JHorbach Posted August 9, 2016 Posted August 9, 2016 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! ... When I load your .pk3 file in PKHeX then save it, the saved file is the same as the original .pkm from PKHeX.
Kaphotics Posted August 9, 2016 Posted August 9, 2016 missing the checksum https://github.com/kwsch/PKHeX/blob/master/PKM/PK3.cs#L57
Metropolis Posted August 9, 2016 Author Posted August 9, 2016 (edited) missing the checksumhttps://github.com/kwsch/PKHeX/blob/master/PKM/PK3.cs#L57 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 August 16, 2016 by Metropolis
Metropolis Posted August 16, 2016 Author Posted August 16, 2016 Updated with support for conversion between adjacent generations. All fields should convert easily, but in this first implementation a few will need setting manually. Support for item, location and ability mapping will arrive in an update soon.
JHorbach Posted August 16, 2016 Posted August 16, 2016 (edited) 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 August 16, 2016 by JHorbach
Metropolis Posted August 21, 2016 Author Posted August 21, 2016 HP IV is known about I'll add that to the list along with location codes etc. Gen 3 to gen 2 bulbasaur I'll take a look tonight and sort out.
Metropolis Posted August 23, 2016 Author Posted August 23, 2016 The Gen 3 to gen 2 species bug is fixed now, try it. :-)
bokepall Posted September 19, 2016 Posted September 19, 2016 Error: File length must be 56 or 67 bytes But this same save works with your old offline editor?
Metropolis Posted September 19, 2016 Author Posted September 19, 2016 Only data files for an individual Pokemon are supported, not entire saves (yet).
bokepall Posted September 19, 2016 Posted September 19, 2016 Only data files for an individual Pokemon are supported, not entire saves (yet). Oh, I thought you made a new online version of your old converter. Keep up the good work!
Metropolis Posted December 18, 2016 Author Posted December 18, 2016 I've updated this online tool to support Pokemon Sun and Moon PK7 files. Feedback appreciated as always, consider this untested! 3
Araraura Posted January 2, 2017 Posted January 2, 2017 i'm trying to upload a pk1 file, but it tells me that the file needs to be either 56 or 67 bytes, but mine is 69 (oh my) bytes, and i know its working.
guisadop Posted February 2, 2017 Posted February 2, 2017 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 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. 1
Metropolis Posted February 6, 2017 Author Posted February 6, 2017 Interesting I'll take a look, yeh. 1
Recommended Posts