Jump to content

Pokemon Bank Celebi, and other Pokemon Link Injection! (using pkhex)


theSLAYER

Recommended Posts

I backup my ramsav, and then I put the hex datas from the three johto starters (copy paste at the indicated offset), my ramsav.bin turn into 515Ko (512Ko before injection), in game when I inject that, I can't do nothing, an error occured and the console is turn off then on.

I have to save in game even with this problem or not ?

If I used Pkhex, it doesn't work anymore with the ramsav.

Edit : My bad, I've used Ctrl + F instead of Ctrl + B

Link to comment
Share on other sites

  • 3 weeks later...
This is the offset for people who use ramsav.bin I tested and it works!

ramsav.bin offset Pokemon Link Injection XY 0x1CF9F

ramsav.bin offset Pokemon Link Injection ORAS 0x1E05B

Enjoy!

Does it means that i can use ram2sav method to inject pokebank celebi to my games?

EDIT: I have successfully inject pokebank celebi to my X. Thank you

Edited by FireFrame
Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...

i have no idea what goin on with this i have noclue is there a youtube on how to do all this

i have got HDX and pkhex justno idea how to do the pokebank pokemon

EDIT: kind done it got my son to do it lol

but can i inject the johto starters and celebi at same time or have to do them on own?

Edited by crazyrazor
Link to comment
Share on other sites

  • 2 weeks later...

Offset for XY with save_manager/svdt (2.1 *hax exploit) is 0x1FFFF

I'll check oras later or tomorrow, can't do right now.

I have learned a little C#, so I may code a windows app to inject the files.

Also, I may add option to inject pokemiles or battle points trough pokemon link, just for fun.

UPDATE: ORAS offset: 0x20FFF

UPDATE2: to successfully inject pokemon link data using this method, checksum 30 from savefile has to be updated --> load save with pkhex, then export .sav and pkhex will fix the checksum for you.

UPDATE 3: I finally got the time to look more into how the pokemon link data works, need to propperly document it.

UPDATE 4: pokemon link map will be on wiki shortly.

UPDATE 5: Here's the wiki page http://projectpokemon.org/wiki/6th_Generation_Pokemon_Link_Map#Savegame_Offsets

Also, here's the info I gathered (essentially the same as wiki page, but I'm leaving it here too)

Assuming this mimics the pokemon data in wondercard (all known values match)

0x00-0x01 	TID
0x02-0x03	SID
0x04		OT Game ID (00 game received in)
0x05-0x07	Unknown/Unused (0x000000)
0x08-0x0B	Encryption constant Unset = 00000000
0x0C		Primary Ribbons
0x0D		Secondary Ribbons
0x0E		Pokeball
0x0F		Unknown
0x10-0x11	held item
0x12-0x13	Move ID #1
0x14-0x15	Move ID #2
0x16-0x17	Move ID #3
0x18-0x19	Move ID #4
0x1A-0x1B	PokéDex Number
0x1C		Form No.
0x0D		Language (00 game received in)
0x0E-0x37	Pokemon nickname. Null terminator for last two bytes. If no 

nickname, all 00
0x38		Nature FF - Unset
0x39		Pokemon Gender 00 - Male 01 - Female 02 - Genderless 03 - Random
0x3A		Pokémon Ability (mirar de wondercard valores)
0x3B		PID toogle
0x3C-0x3D	Egg Met Location (ignored if egg flag is 00, gets overwritten 

with pokemon link location)
0x3E-0x3F	Met at Location --> gets overwritten with pokemon link location
0x40		Met level
0x41-0x46	Contest stats Last byte is Sheen
0x47-0x4C	IVs (FFs for unset, FE for priority)
0x4D		OT Gender (00 male, 01 female, 03 recipient's)
0x4E-0x67	OT Name. Null terminator for last two bytes. If no OT, all 00
0x68		Current Level
0x69		Egg flag
0x6A-0x6B	Unknown/Unused
0x6C-0x6F	PID (used if PID toogle is 00)
0x70-0x71	Relearn Move 1
0x72-0x73	Relearn Move 2
0x74-0x75	Relearn Move 3
0x76-0x77	Relearn Move 4
0x78		OT Memory Intensity
0x79		OT Memory Line
0x7A-0x7B	OT Memory TextVar
0x7C		OT Memory Feeling
0x7D-0x9F	Unknown/Unused/Reserved


Pokemon Link data map

note: the statement that pokemon data is 160 bytes long is made due to this data 

being the same as in wondercard data, which is 160 bytes long from TID to end of 

file.

0x00 		Pokemon link flag (00 disabled, 80 enabled)
0x01-0x6C	App name that exported the link data.
0x6D-0x6E	NULL terminator??

0x6F-0x94	UNKNOWN/UNUSED

0x95-0x98	Unknown/Unused (00000000)
0x99-0x9C	Unknown2* (Glalie/Steelix 0x0001 0x0001, celebi and johto 

starters 0x0000 0x0000)
0x9D-0x13C	Pokemon slot 1 (160 bytes)

0x13D-0x140	Unknown/Unused (00000000)
0x141-0x144	Unknown2* (Glalie/Steelix 0x0001 0x0001, celebi and johto 

starters 0x0000 0x0000)
0x145-0x1E4	Pokemon slot 2 (160 bytes)

0x1E5-0x1E8	Unknown/Unused (00000000)
0x1E9-0x1EC	Unknown2* (Glalie/Steelix 0x0001 0x0001, celebi and johto 

starters 0x0000 0x0000)
0x1ED-0x28C	Pokemon slot 3 (160 bytes)

0x28D-0x290	Unknown/Unused (00000000)
0x291-0x294	Unknown2* (Glalie/Steelix 0x0001 0x0001, celebi and johto 

starters 0x0000 0x0000)
0x295-0x334	Pokemon slot 4 (160 bytes)

0x335-0x338	Unknown/Unused (00000000)
0x339-0x33C	Unknown2* (Glalie/Steelix 0x0001 0x0001, celebi and johto 

starters 0x0000 0x0000)
0x33D-0x3DC	Pokemon slot 5 (160 bytes)

0x3DD-0x3E0	Unknown/Unused (00000000)
0x3E1-0x3E4	Unknown2* (Glalie/Steelix 0x0001 0x0001, celebi and johto 

starters 0x0000 0x0000)
0x3E5-0x484	Pokemon slot 6 (160 bytes)

0x485-0x488	Unknown/Unused (00000000)

0x489-0x48A	Item 1
0x48B-0x48C	Item 1 quantity
0x48D-0x48E	Item 2
0x48F-0x490	Item 2 quantity
0x491-0x492	Item 3
0x493-0x494	Item 3 quantity
0x495-0x496	Item 4
0x497-0x498	Item 4 quantity
0x499-0x49A	Item 5
0x49B-0x49C	Item 5 quantity
0x49D-0x49E	Item 6
0x49F-0x4A0	Item 6 quantity

0x4A1-0x4A2	Battle points (pokemon links caps it to 9999 even if set to 

0xFFFF)
0x4A3-0x4A4	PokéMiles (Max 0xFFFF)


0x4A5-0xA44	Unknown/Unused (All 0x00)

0xA45-0xA46	CRC-16/CCITT checksum for 0x01-0xA44 data

Notes:
If pokemon species is not valid (i.e 0x0000), no pokemon will be generated.
If item is not valid, it won't be obtained.

* Unknown2: seems to somehow control how many pokemon slots will be imported 

from pokemon link, but can't figure out how this works.
Pokemon ORAS Demo seems to use it to only allow 1 pokemon to be read from 

pokemon link data; bank Celebi and bank Johto starters use placeholder data with 

0x0000 pokédex number (thus making that data not being imported). Having all 

data set to 00 works too, and these values don't seem to have any impact in the 

generated pokémon.

Also, I think I know where the flags for Glalie/Steelix might be, gotta run a couple of tests, but I think the "transfer flags" (wiki page name) is what makes glalie only able to be received once.

EDIT: @theSLAYER finally made the tool http://projectpokemon.org/forums/showthread.php?47509-XY-ORAS-Pok%E9mon-Link-tool-0-1&p=209127#post209127

Edited by suloku
Link to comment
Share on other sites

  • 5 months later...

Ok. Well I see now that someone did post one but I'll post mine too because when I check they don't match. The differing bits may be just junk data. My dump comes from Omega Ruby and I had just unlocked Pokemon Link on it.

I tested mine with my copy of Pokemon X and it injected successfully. Pokemon Link saw the data and imported it properly. :)

Link to comment
Share on other sites

Ok. Well I see now that someone did post one but I'll post mine too because when I check they don't match. The differing bits may be just junk data. My dump comes from Omega Ruby and I had just unlocked Pokemon Link on it.

I tested mine with my copy of Pokemon X and it injected successfully. Pokemon Link saw the data and imported it properly. :)

It's great, cause the more the copies, the better

___

I'm wondering if it is possible to dump the data from Pokebank using NTR.

(ram dumping), before we even send it to our Pokemon games.

Link to comment
Share on other sites

Legendary Golems extracted from my alpha sapphire game.

[ATTACH]12945[/ATTACH]

Xside: Your file is from spanish Pokemon Bank, while shinji257's is from an english pokemon bank (and is exactly the same as the one uploaded by BlackShark yesterday).

The only difference (aside from the name of the pokemon bank being in spanish) is that your file (Xside) also has 15 pokémiles.

The differing bits may be just junk data.

I mapped the pokemon link structure long ago, the difference are pokémiles, as I said above. I plan to eventually create an editor/viewer for this pokemon link files.

Link to comment
Share on other sites

  • 2 weeks later...

Some files:

- HA Regi Trio (ESP).bin --> Same as Xside's, but without the 15 pokémiles. Maybe you'd prefer this one for the event compilation file.

- JohtoStarters (ESP).bin --> Only difference with other languages is the pokémon bank string language when receiving the gift.

- ORAS Glalie (ESP)(M).bin --> Extra notes below

About Glalie/Steelix: I first assumed the glalie from the demo was always the same, but I've compared my file with the one contributed in this thread and I've noticed that there are many differences derived from the pokemon being randomly generated in the demo. For what I've seen, each generated glalie/steelix will differ in:

- TID/SID (even though OT name will be Orlando each demo savegame generates a TID and SID)

- Nickname (if modified)

- Origin language (thus my uploaded glalie file is spanish, the one previously here is english).

- Nature

- Gender

- Ability

- IVs

- PID

- (encryption constant)

I wonder if anyone would be interested in a modified glalie/steelix bin file that would randomly generate those values when received. The only fixed values would be TID/SID and nickname, the other values generated by the demo could be generated when receiving from pokemon link.

It's not like the demo can't be accessed by everybody though, they could just download, play it and get their unique glalie.

ps: I've also updated my dump/injection tool to include all the files.

Link to comment
Share on other sites

Using suloku's tool, I managed to dump my Pokemon Link data providing another copy of the Regi Trio event since you said you could use as many as possible. I unfortunately do not know for certain if they are on it or how I can tell if they are. If you have a way to help me know what is contained in my Pokemon Link data, that would be greatly appreciated. I would love to see a tool created (or at least a feature in an existing one) in the future where you can analyze your Pokemon link data to see what is in it (i.e. what will be obtained, such as how much bp/miles or event pokemon included in the data, perhaps even as far as the exact specifics on the pokemon data like mentioned above).

Pokebank Event: HA Regi Trio

Link to comment
Share on other sites

I would love to see a tool created (or at least a feature in an existing one) in the future where you can analyze your Pokemon link data to see what is in it

I've wanted to code such an app for a while. At first I didn't have the skills to do it, now I think I do, but unfortunately I don't have the time for it (my current c# and windows form knowldege might require a lot of debugging until the tool is actually useful).

The information needed to code it is available to everybody though.

Link to comment
Share on other sites

I've wanted to code such an app for a while. At first I didn't have the skills to do it, now I think I do, but unfortunately I don't have the time for it (my current c# and windows form knowldege might require a lot of debugging until the tool is actually useful).

The information needed to code it is available to everybody though.

If you want I can create a sort of link editor :)

Link to comment
Share on other sites

If you want I can create a sort of link editor :)

Be my guest: https://projectpokemon.org/wiki/6th_Generation_Pokemon_Link_Map

The pokemon slot structure is mostly the same as the one in wondercards, so my idea was to copy the layout of wceditor with a slot selector (and a list of what is in each slot) and add the items, pokemiles and battle point fields.

Ps: [MENTION=27612]Conri[/MENTION] the file you uploaded is the same as the onr already contributed (same checksum)

Link to comment
Share on other sites

That's good to know. I was worried that my save data did not contain the Pokemon Link data that contained the events. it is my first time using svdt on my 9.2 old 3ds xl. I just found out today that ram2sav no longer works as the websites do not show up without any errors. I was reading the thread for ram2sav and found out someone recommended savemanager or svdt, but I did not know the difference so I went with svdt. While I was aware of people able to do load their pokemon link data from their saves extracted from svdt, I still had my doubts whether or not it would work for me.

Link to comment
Share on other sites

That's good to know. I was worried that my save data did not contain the Pokemon Link data that contained the events. it is my first time using svdt on my 9.2 old 3ds xl. I just found out today that ram2sav no longer works as the websites do not show up without any errors. I was reading the thread for ram2sav and found out someone recommended savemanager or svdt, but I did not know the difference so I went with svdt. While I was aware of people able to do load their pokemon link data from their saves extracted from svdt, I still had my doubts whether or not it would work for me.

ram2sav is a really bad way of exporting savefile, since it is not a 1:1 copy of the savefile, in fact it misses a lot of data. It was useful for pokemon extraction/injection, but not for save editing purposes imho.

svdt is the way to go in userland, and now the problem with 9.6+ encryption has been bypassed. If you can install CIA files, use jksavemanager. Also, I recommend you to setup a 10.7 emunand and never use your 9.2 sysnand.

Link to comment
Share on other sites

ram2sav is a really bad way of exporting savefile, since it is not a 1:1 copy of the savefile, in fact it misses a lot of data. It was useful for pokemon extraction/injection, but not for save editing purposes imho.

svdt is the way to go in userland, and now the problem with 9.6+ encryption has been bypassed. If you can install CIA files, use jksavemanager. Also, I recommend you to setup a 10.7 emunand and never use your 9.2 sysnand.

What are the benefits to upgrading it? And how can i do so safely? I would like some way to back up the update in case I accidentally update it

Sent from my SM-G920T using Tapatalk

Link to comment
Share on other sites

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...