Metropolis
Member-
Posts
201 -
Joined
-
Last visited
Content Type
Profiles
Pokédex
Portal
Technical Documentation
Pages
Tutorials
Forums
Events
Downloads
Gallery
Blogs
Everything posted by Metropolis
-
FRLG/Emerald Mystery Gift injector To respect the wishes of the users here working hard to acquire legit wonder cards, I have dropped custom wonder card editing (inc the checksum) from the tool. Two 128K save files are required - the first is a SAV in which the wonder card, wonder news and mystery gift script are to be injected. The second is another save file that contains the mystery card/news/gift to be copied across. There are at least two valid saves attached to earlier posts on this thread. This has been tested on a FireRed save (copying over a legit German AuroraTicket from LeafGreen) and an Emerald save (copying over a legit English AuroraTicket from Emerald). In both cases the Wonder Card appeared correctly, the ticket could be received from the Green man in The Pokemon Center and functioned correctly allowing Birth Island access. The tool can also be used as a quick way to correct section checksums corrupted by hex editing - simply load the file in then download and the existing save is preserved but with the checksums corrected.
- 1284 replies
-
Gen 1 2 3 Pokemon Editor and Converter for Windows + Mac OS X
Metropolis replied to Metropolis's topic in Saves - Tools
If anyone wants to edit the source code to introduce new features like sorting, they're welcome to. I can put in bug fixes but don't have the time to do any more work on this tool now. There's better editors out there now and I think online-based tools are a better option than having to download an executable program. -
Here's my implementation of Morfeo's algorithm in Javascript: Can't get a matching checksum for the mystery gift data yet, so either the seed, tabs or code is wrong: var tabs = [0x0000, 0x0001, 0x0fcf, 0xe017, 0x3001, 0x0f00, 0xb019, 0x302d, 0x0001, 0xc017, 0xfdb0, 0x1bf0, 0x6770, 0x51f0, 0x19f0, 0x01f0, 0xbbf0, 0x9037, 0xfe30, 0x0f00, 0x6e00, 0x0200, 0x5700, 0x5b40, 0x6130, 0x640f, 0x7800, 0xe0ce, 0x101d, 0xf012, 0x1001, 0xee00, 0xe029, 0xeeee, 0x0001, 0x0eb0, 0x16e0, 0xee30, 0x1677, 0xee00, 0x20b0, 0x2f40, 0x170e, 0xc017, 0x201b, 0x301a, 0xfdd0, 0x4bb0, 0x1cf0, 0x19f0, 0x0170, 0xf330, 0xe0f0, 0x20d0, 0xff30, 0x0b50, 0xdff0, 0xe2b0, 0xc010, 0xc310, 0xdb00, 0x7810, 0x02ef, 0x30eb, 0x0009, 0x0012, 0x0e10, 0xa2d0, 0x8810, 0x23f0, 0xb800, 0x00d0, 0x0000, 0xdddd, 0xd0dd, 0x2cdd, 0xddc0, 0x16dd, 0x0016, 0x1001, 0x00dd, 0x770d, 0xa018, 0x202b, 0x0001, 0x0dc0, 0x3020, 0x1b30, 0x1afb, 0xc031, 0xc01c, 0xf019, 0xd1c6, 0x2117, 0x0f50, 0x0621, 0xffff, 0x010c, 0x2003, 0x0020, 0xc117, 0x3107, 0x3101, 0x0003, 0x2113, 0xff00, 0xfc31, 0x1311, 0xa950, 0xf390, 0x0b70, 0xfb00, 0xe700, 0xd0fe, 0x0002, 0xe00f, 0x1012, 0x90ac, 0x10d6, 0xf0bc, 0x2001, 0xcc0b, 0x00c0, 0xcccc, 0xc013, 0xc010, 0x1330, 0x011f, 0x0000, 0x0cf0, 0x1720, 0x17d0, 0x33f0, 0x1980, 0x64ff, 0xf01b, 0xf13b, 0xc13b, 0x4006, 0xf137, 0x2137, 0x412f, 0x1119, 0xff10, 0x0640, 0x0ad1, 0x3731, 0x1760, 0xfa00, 0x0721, 0x2301, 0x0cfd, 0x1006, 0x0010, 0x01ed, 0x101c, 0x512f, 0xc1fc, 0xc021, 0x1fde, 0x00bd, 0x700f, 0xc021, 0x2f11, 0x3210, 0x1560, 0x18cc, 0x33cc, 0x0c90, 0x0fb0, 0x01b0, 0xbbf0, 0x1300, 0x1322, 0xbbbb, 0x1001, 0x00bb, 0x0bb0, 0x17b0, 0xef50, 0x17d0, 0x3230, 0x17bb, 0xb02f, 0xf01e, 0xf019, 0x6462, 0xfff1, 0x6310, 0x1111, 0x5c41, 0x4611, 0x3b12, 0x8c41, 0x3f41, 0x3bfc, 0x1129, 0x412d, 0xb006, 0xf253, 0x5253, 0x1127, 0x00cc, 0x7f0c, 0x312e, 0x0241, 0x0004, 0x1007, 0x5123, 0x8253, 0x20ba, 0xff91, 0x0021, 0x1b01, 0x0400, 0x0200, 0xd340, 0x1c90, 0x0ff0, 0xff40, 0xaaf0, 0x1200, 0xaa00, 0xa0aa, 0xaa8f, 0x0001, 0x0aaa, 0xaa80, 0x1500, 0x1340, 0x1600, 0x20bf, 0xa02f, 0xa030, 0x1720, 0x1af0, 0x4c40, 0x1af0, 0x19e6, 0xc7ff, 0xb167, 0x400a, 0xf2c7, 0x52c3, 0x42c7, 0x4178, 0xf183, 0x6183, 0xff11, 0x6df1, 0x7fb2, 0xb342, 0xaf71, 0x7b60, 0x06f1, 0x7771]; var mysteryChecksum = function (bytes) { var seed = 0x8530; var i, current, tabIndex, tabValue, reverseTab; for (i = 0; i < bytes.length; i += 1) { current = bytes; tabIndex = (current ^ seed) & 0xFF; tabValue = tabs[tabIndex]; reverseTab = ((tabValue & 0xff) << 8) + (tabValue >> 8); seed = reverseTab ^ (seed >> 16); } seed = (~seed) & 0xffff; return seed; }; var bytes = [123, 45, 6]; var checksum = mysteryChecksum(bytes); console.log('Calculated mystery checksum:'); console.log(checksum & 0xff); console.log(checksum >> 8);
- 1284 replies
-
Awesome work, this is great to see!
-
Here's the tool: Mystery Gift Editor Tested on an Emerald and Leaf Green save, it correctly identified and checksummed all the save sections. Opening a file then downloading it is an easy way to fix broken checksums on a section level. Still no progress with the mystery gift specific checksum. The region read/written from is as suggested by BlackShark. Source code can be found here and using Chrome Debugger on the site to see the sources.
- 1284 replies
-
ATTN Gen III (FRLG) Save Editor developers - Joyful Game Corner
Metropolis replied to Aladore's topic in Saves - Research
Do you have the offsets for Emerald? -
I have a full time job, a social life and other commitments! These games have been out over a decade now, is three weeks such a wait?! The routine for identifying the save indices, jumping to the correct offsets and checksumming different data lengths is tricky to code too.
- 1284 replies
-
Ah-ha this post is what I needed - section 4 means the block-shuffling algorithm must be implemented. I've coded this in Java before so can implement the same section detection in Javascript then update the online tool I posted earlier to calculate the offsets in the same way. Expect a working version in the next few weeks.
- 1284 replies
-
Even after correcting the checksums on those saves I get heavy corruption in the party Pokemon - I think you messed up inserting the data in those. I'll try the different offsets suggested by BlackShark.
- 1284 replies
-
The offsets in the first post for the mystery gift section don't add up properly - take a look at it to see what I mean.
- 1284 replies
-
Attach a file with the data injected but invalid checksum and I'll have a shot at fixing it. I don't know whether the problem is with the checksum or the data I'm trying to inject.
- 1284 replies
-
Not having any luck with FRLG or Emerald even after running the edited file through a save editor to correct the checksum independently. Going to look though the documentation in more detail and keep trying to get a working solution, removed the link for now until I have something confirmed working.
- 1284 replies
-
I'm checking it on a FRLG and emerald save now.
- 1284 replies
-
I don't know what the four header bytes are supposed to be either, hence why they're manually editable. I'm going to look through example SAV files to see what headers they have there and check that the offsets/checksum is coded properly. It's fair to assume that using 0 for the four bytes won't work though.
- 1284 replies
-
ATTN Gen III (FRLG) Save Editor developers - Joyful Game Corner
Metropolis replied to Aladore's topic in Saves - Research
Yes that's it, I think I must have disabled it for FRLG but can get it working again with these new offsets. -
Removed tool for now until I have a working solution, watch this space!
- 1284 replies
-
ATTN Gen III (FRLG) Save Editor developers - Joyful Game Corner
Metropolis replied to Aladore's topic in Saves - Research
My save editor supports this, see the source code for the offsets used: https://bitbucket.org/alexbramham/pokemon-api/src/51be21930c08bce0a78b037597ea0ac4d3e08915/gen3-api/src/main/java/pkxdelta/api/gen3/io/FireOffsets.java?at=master&fileviewer=file-view-default https://bitbucket.org/alexbramham/pokemon-api/src/51be21930c08bce0a78b037597ea0ac4d3e08915/gen3-api/src/main/java/pkxdelta/api/gen3/io/EmeraldOffsets.java?at=master&fileviewer=file-view-default -
Gen 1, 2, 3, 4, 5, 6, 7 PKX Editor + Converter website
Metropolis replied to Metropolis's topic in Saves - Tools
The Gen 3 to gen 2 species bug is fixed now, try it. :-) -
I'm sceptical that trading to red or blue changes catch rate - could you demonstrate this? Wild dragonair and wild kadabra have a special catch rate in yellow to anticipate gold and silver held items also, as do the stadium Pokemon. The 'GSC not out' claim is incorrect. I don't know if removing the light ball would cause Pikachu to no longer follow the trainer - I would assume not actually - checking species and trainer ID is sufficient for that and certainly non-Pikachu don't follow you hence its not catch rate and trainer ID alone.
-
Some work has been done to extract other 'niche' formulae from the game such as that used to calculate the size of a Heracross or Barboach when talking to an NPC. Or the safari bait/rock formulae in generation 1 for example have also been discovered. It would be interesting to see if there is a different algorithm used, however I would guess that subsequent calls would be made to the standard one until a matching letter unown was found. One way without looking at the recompiled code would be to check the PID and IVs of a freshly caught unown against the frames nearby of other Pokemon whose method is known.
-
Gen 1, 2, 3, 4, 5, 6, 7 PKX Editor + Converter website
Metropolis replied to Metropolis's topic in Saves - Tools
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. -
University Magikarp with Dragon Rage is also worthy of mention. Together with Flying Pikachu and the two Pay Day fan club Pokemon these are the Japanese-only event moves.
-
Gen 1, 2, 3, 4, 5, 6, 7 PKX Editor + Converter website
Metropolis replied to Metropolis's topic in Saves - Tools
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. -
Gen 1 2 3 Pokemon Editor and Converter for Windows + Mac OS X
Metropolis replied to Metropolis's topic in Saves - Tools
No, every Mac OS app has a Preferences tab (or at least I haven't worked out how to stop it). All the options are under the other menu items. -
Gen 1 2 3 Pokemon Editor and Converter for Windows + Mac OS X
Metropolis replied to Metropolis's topic in Saves - Tools
Right-click then Copy or select copy from the menu on any editing screen. When you go to paste the text will appear. Validate does a range of checks such as legal held item, experience so that the level is 100 or less, PP not exceeding maximum. Values that could never appear naturally are considered invalid.