Jump to content

[GEN 5] Generation 5 save tool - entralink, medals, join avenue and others not in pokegen


Recommended Posts

Posted (edited)

CURRENT VERSION: BUILD 2021316_17468

I think this is finally ready for release. Download is attached to the post.

Download: https://github.com/suloku/BW_tool/releases
Source: https://github.com/suloku/BW_tool

EDIT: I forgot to mention, that sprites shown in join avenue editor are probably wrong. I made a spritesheed in order from this one (http://www.spriters-resource.com/fullview/48049/) as it is supposed to be in the correct order but most likely I messed up something .

Here's the full sprite sheet I use in the tool, feel free to re-sort it so all sprites are in correct order (from left to right and up to down, 256 sprites are used, the remaining ones don't really need to be sorted, but they are just a few).

A screenshot of entralink forest editor: http://puu.sh/ptrUi/93686b3fa6.png

Changelog:

16 march 2021 17:45 (BUILD 2021316_17468)
* Added Prop case editor for BW and B2W2 (thanks to bulbapedia for listing them in order and hosting the sprites)
* Fixed crash when changing flags in Memory Link
* Grotto table images are now embedded (no need for grotto tables folder and files)

13 march 2021 22:45 (BUILD 2021313_224710)
* Memory Link:
Props are now imported from BW savegame
Added button to unlock all props

13 march 2021 21:00 (BUILD 2021313_21124)
* Dream Radar: Fixed item logic. Works propperly now. Amount limit is 255.
* Memory Link:
Now fully trainer name/id/sid (also when importing from BW) which fixes prop case event showing the wrong name. (Thanks Black Shark from almost 4 years ago).
Added starter pokémon editing and importing from BW savefile.
* Block dumper:
Added info for what BW blocks are.
Enabled decrypting for BW block 38
* Grotto editor: no longer crashes if grotto tables are missing

23 march 2017 23:55 (BUILD 2017323_23574)
* Medals: added some hex views for research purposes
* 3DS link editor (Dream Radar) fully working and hopefully bug-free

21 june 2016 16:00 (BUILD 2016620_103138)
* PGL Banette was fixed to male instead of female

20 june 2016 16:00 (BUILD 2016619_15156)

* Fixed bug in entralink forest (crash when selecting pokemon over pachirisu in pleasant forest)
* Actually set trainer data and correctly handle badge flags
* Memory Link editor: can edit trainer name, TID and SID. Can export/import the memory link block. Can import Name, TID, SID and hall of fame from BW1 savegame. The flags are mostly unknown for now. Note: encryption seed is randomized when no data is present in BW2 savefile or importing from BW1.

19 june 2016
* First release
 
Quote

@:::::::::::::::::::::::::::::::::::::::::::::::@
|                                               |
| Pokémon Generation 5 Save tool by suloku '16  |
|                                               |
@:::::::::::::::::::::::::::::::::::::::::::::::@

Source code is available here: https://github.com/suloku/BW_tool

This is a multipurpose savegame editor for generation 5 games.

Current features:
_________________

For BW and BW2:

* Entralink forest editor (*see exanded note)
* Trainer information and badges editor (also rival name for BW2)
* Block dumper/injector (also decripts/recripts the known encrypted blocks such as entralink forest data block)
* Checksum verifier/corrector

Only for BW2:

* Hidden grotto and swarm editor
* Join Avenue editor (also can import/export visitors)**
* Key system editor (allows to unlock any keys and change the game configuration)
* Medal editor: still in a very basic stage, but allows to unlock any medal (to unlock a medal, set it to any date).
* Memory Link editor: can edit trainer name, TID and SID. Can export/import the memory link block. Can import Name, TID, SID and hall of fame from BW1 savegame. The flags are mostly unknown for now.
* 3DS Link editor: this allows to edit the 3DS link data, which was only ever used by Pokémon Dream radar. This has a "legal mode" (default), on which you can only insert pokémon and items available in Dream Radar and a "All mode" on which you can insert any pokémon or item. The main purpose is to allow the retreival of Dream Radar exclusive pokémon (like weather trio terrian formes) without the actual need to use Dream Radar. You can also clear the catched flags so you may transfer the legendary pokémon again to your savefile.

**4 visitor files are included in the file


*About entralink forest editor:

Two kind of files can be used: phl files, which are AREA files and are compatible with pockestock and pikaedit; and efdd files, which is basically the decrypted forest block, so it contains all areas and forest settings. The package includes a legitimate efdd file from Black 1 containing several Dream World Pokémon and the PGL Arceus; and also a legitimate efdd file from White 2 with a couple event pokemon and 9 dream world Pokémon.

The most interesting feature is the "Dream World Simulator", which are some handy buttons with the Dream World areas that allow injecting to the forest a pokémon from Dream World. The pokémon are restricted to what the dream world offered and only that. Each pokémon allows to select the move slot A, B or C*** and gender when aplicable (remember that in gen 5 only females can produce hidden ability eggs).

Similar to "Dream World Simulator" there's a PGL Promotions button, that allows to inject the PGL distributed pokémon as they were distributed. Please note that some of these pokémon were only obtainable on some languages, so receiving it in another language game renders it ilegal. The languages the pokémon could be received on are shown on screen for convenience. Also, these pokémon had fixed gender and moves.

Just to clarify: any pokémon injected using the Dream World or PGL buttons will be absolutely the same as if received from the online service (except out of region PGL pokémon, as there is no region filter in the editor).


*** Dream World moves
A: the pokémon learns via level up
B: pokemon learns trough breeding
😄 dream world exclusive move or breeding move (depends on the pokemon)


Possible future features:
_________________

* Finish medal editor and trainer records: these features need research, since some medals are tied to in-game records. The goal is to make the editing as legit as possible, at the very least for the online exclusive medals that are not obtainable anymore and those almost impossible to obtain medals (30 people funfest mission, etc.).
* Memory link injecting/editing for BW2, and maybe importing some data from a BW1 savegame to memory link.


Note: there's a trainer records button, which is a possible future feature, and I haven't locked it for release.
Note 2: savegame can be loaded via drag and drop.


Thanks to:
__________

Many people that I'm probably missing out now, but those who shall not be missed are BlackShark for many research and information and kaphotics for reference on pkhex source code and research at project pokemon forums.

This tool replaces the following ones:

- Grotto and swarm tool: https://projectpokemon.org/forums/showthread.php?48248-Black-amp-White-2-Grotto-amp-Swarm-tool-0-1

- Entralink forest tool: https://projectpokemon.org/forums/showthread.php?47484-Pok%E9mon-Black-amp-White-Entralink-Forest-tool-0-1-gt-dream-pokemon-wondercard-like!-(Arceus-event-included)

All Join Avenue information thanks to this thread: https://projectpokemon.org/forums/showthread.php?26490-Join-Avenue-Customization-amp-Editing

Edited by suloku
New version
  • Like 1
Posted

Great work! But I found two errors.

1. In the Pleasant Forest species list I can only select the Pokemon up to Pachirisu. Buneary and everything after it will crash the programm.

2. It seems like you are allowing .dsv file only for opening but not for saving. The 122 bytes footer will be removed removed.

Posted (edited)

1.- I'll check tomorrow, probably a silly bug

2.- That is intended for now, as I haven't looked at how to detect the filetype selected by the user when saving. I use drastic as ds emulator, which doesn't require dsv files to have the footer.

Thanks for the feedback.

EDIT:

1.- Yes, silly bug, fixed

2.- Implemented dsv saving with the footer

Also, turns out I forgot to call the save method for trainer information, so no modifications to the savefile were made. Also, I was saving the wrong blocks due to copy/paste when writing the code. I've also disabled the "Block # checksum updated messages" when saving as it was anoying in trainer information (editable trainer info is stored in 5 different blocks).

I'll commit changes and update the file later.

EDIT 2: tool updated, see changelog.

Edited by suloku
Posted

21 june 2016 16:00 (BUILD 2016620_103138)

* PGL Banette was fixed to male instead of female

I decided to make a new post about this update because the bug affected the legality of PGL Banette, as the pokemon was distributed as female only and the tool was injecting a male one.

Also, since I'm making a new post, tool was updated yesterday with bugfixes and a basic memory link editor.

  • 2 weeks later...
Posted

Just wondering... can you add PWT, musical and Pokédex skin data? Those were all in Pikaedit and since it's no longer available for download it'd be good if they're in this.

Posted

You are right, and neither musical or pwt (I really thought it did).

You could use pockestock (, but I'm gonna add simple import/export options of PWT, Musical, Cgear and pokédex. I'll have to research BW1 offsets for cgear and pokedex skins (I'll just use pockestock to locate them :P)

EDIT: seems like all dlc has some extra data that has to be written to the save to the "mirror" section, but I don't know how that data is generated. I guess the forums hold that information (maybe), so I can't add anything wihout knowing where that is comming from.

Posted
BTW, I find the Flag system odd for the Medals. What does each one do?

I don't know. Research needs to be done there.

Setting a date is all it's needed to receive a medal (that's what the action replay code does).

Each medal has 4 bytes, 3 are used for the date, 1 is unknown and the data is different for different medals. This byte is always 0x0X, so I assumed it is used for 4 flags, but I don't know what it is used for.

Posted
I don't know. Research needs to be done there.

Setting a date is all it's needed to receive a medal (that's what the action replay code does).

Each medal has 4 bytes, 3 are used for the date, 1 is unknown and the data is different for different medals. This byte is always 0x0X, so I assumed it is used for 4 flags, but I don't know what it is used for.

Most of my medals only have flag 3 and I tried to hack some in that I can't get (Passersby, Spin Trade, Minigames ect...) but it doesn't seem to work.

Posted

I think Flags 2 and 4 may mean you have the hint medal.

BTW, you can't just get all Trading/Minigame ect... Medals right away and you have to keep on saving the game and importing save data, which allows you to get more related Medals.

Edit: Some Medals you can't set dates for, even if you have all other Medals relating to it.

Posted
I think Flags 2 and 4 may mean you have the hint medal.

BTW, you can't just get all Trading/Minigame ect... Medals right away and you have to keep on saving the game and importing save data, which allows you to get more related Medals.

Edit: Some Medals you can't set dates for, even if you have all other Medals relating to it.

I've just re-checked the medal format as in this thread: https://projectpokemon.org/forums/showthread.php?44038-How-to-modify-the-date-of-medals

4 bytes:

1 byte: unused

1 byte: flags

2 bytes: date

In my savefile and in one with 232 medals, the first byte is always 0, so it is most likely not used.

About flag byte: Seems only the first 4 bits (bit 0, 1, 2 and 3) are used, never seen the top bits used on any medal on my savefile or the 232 medal one.

But I've seen the other 4 flags used. The only medal where I've seen bit 0 (flag 1) used is in the Pokerus Discoverer medal, a medal I don't have. It also has flag 2 set. Flags 1 and 2 are also set on the unreceived "Good Souvenir Getter", Tycoon of Souvenirs, Avenue of Fame,

The "give all medals" AR code sets flags 3 and 4 and medal date.

Flag 3 is what tells the game "give this medal" making the medal guy appear, according to this post: https://projectpokemon.org/forums/showthread.php?32170-Regarding-the-Medal-Box-and-AR-codes-to-modify-it&p=172242&viewfull=1#post172242.

So flag 4 should be what gets set once you collect the medal, and the date is set.

Also, here's kaphotics medal AR code for reference (sets all medal's flag 3 except for those awarded by the game when certain # of medals are obtained): https://projectpokemon.org/forums/showthread.php?24541-B2-W2-AR-Codes/page33&p=164781#post164781

Also, I've noticed my code is buggy, so don't trust the flags that you see, as that might explain inconsistencies.

Posted
I've just re-checked the medal format as in this thread: https://projectpokemon.org/forums/showthread.php?44038-How-to-modify-the-date-of-medals

4 bytes:

1 byte: unused

1 byte: flags

2 bytes: date

In my savefile and in one with 232 medals, the first byte is always 0, so it is most likely not used.

About flag byte: Seems only the first 4 bits (bit 0, 1, 2 and 3) are used, never seen the top bits used on any medal on my savefile or the 232 medal one.

But I've seen the other 4 flags used. The only medal where I've seen bit 0 (flag 1) used is in the Pokerus Discoverer medal, a medal I don't have. It also has flag 2 set. Flags 1 and 2 are also set on the unreceived "Good Souvenir Getter", Tycoon of Souvenirs, Avenue of Fame,

The "give all medals" AR code sets flags 3 and 4 and medal date.

Flag 3 is what tells the game "give this medal" making the medal guy appear, according to this post: https://projectpokemon.org/forums/showthread.php?32170-Regarding-the-Medal-Box-and-AR-codes-to-modify-it&p=172242&viewfull=1#post172242.

So flag 4 should be what gets set once you collect the medal, and the date is set.

Also, here's kaphotics medal AR code for reference (sets all medal's flag 3 except for those awarded by the game when certain # of medals are obtained): https://projectpokemon.org/forums/showthread.php?24541-B2-W2-AR-Codes/page33&p=164781#post164781

Also, I've noticed my code is buggy, so don't trust the flags that you see, as that might explain inconsistencies.

OK, that makes sense. Though, I still can't set dates for certain medals and in turn I can't set them to Flag 4.

Posted

These are the Medals I've been trying to get:

Adventure Medals:

The First Passerby////

30 Passersby////

100 Passersby//// (Says I got it 0/0/2000)

Heavy Traffic////

Battle Medals:

Link Battle Amateur////

Link Battle Pioneer////

Link Battle Expert

Born to Battle////

Cruise Connoisseur////

Entertainment Medals:

Beginning Trader////

Occasional Trader////

Frequent Trader////

Great Trade-Up

Opposite Trader////

Talented Cast Member////

Rising Star////

Big Star

Superstar

Musical Star////

Trendsetter////

10 Followers////

First Friend////

Extensive Friendship

Broad Friendship

Global Connection

Spin Trade Whiz////

Feeling Master////

Ace of Hearts////

Shop Builder////

Shop Constructor////

Extreme Developer

Minigame Fan////

Minigame Buff////

Minigame Expert

Best Minigamer

Balloon Rookie////

Balloon Technician////

Balloon Expert

Balloon Conqueror

10 People Funfest////

30 People Funfest

Good Night////

Participant LV 1////

Participant LV 2

//// means I've managed to get it, while the ones with that I can't manage to get at all.

  • 4 weeks later...
Posted
Exactly what can we do with Memory Link at this point? If we Export the block from BW1 and then import it to BW2 will we unlock everything?

BW 1 does not have a memory link block. Official memory link reads data from a BW1 save to generate the memory link block.

My tool has my own memory link block with everything unlocked already (all memories, all props in prop case, all diplomas and trophies). You can read data from a BW save and change it in the memory block. That data is Trainer information and hall of fame.

So essentially, you get everything unlocked with the BW1 save file information you desire, but I use a complete memory file as a base for building the memory.

You can also not import data from a BW1 savefile and use the embedded one directly (you will se my trainer name and hall of fame, but I think hall of fame isn't actually used in the game even though it gets transfered).

Posted

Besides trainer ID and hall of fame, do the Memory Link unlocked parts of the game differ much depending on how one played through BW1 or does Memory Link merely activate flags like check boxes, (thus being literally the same result for everyone) ?

I guess one could import the Memory Link data you provided with the tool, and then used the import BW1 save function to replace the trainer & hall of fame bits with their own. I've done it this way, we'll see how it turns out. :cool:

Posted

For what is known about memory link, there should be no difference. If dream world was still active that would be a different story probably, but since it's down the playing experience should be the same as if doing it with cartridges and a completed bw1 savefile of your own.

Posted
For what is known about memory link, there should be no difference. If dream world was still active that would be a different story probably, but since it's down the playing experience should be the same as if doing it with cartridges and a completed bw1 savefile of your own.

You know this is something folks could work on, a Dream World replacement. A replacement server for Nintendo Wifi already exists, (even specifically for Pokemon), we merely need software to replicate Dream World. As for the networking side of things, I would first focus on making it work with things like DesMuMe that don't necessarily rely on the propriety of the real Nintendo Wifi. The networking code can be tweaked later to work with real DS systems.

  • 2 weeks later...
Posted

Could you also add a way to check what each trainer uses? I can't find anything that lists all trainers with their correct teams.

  • 2 months later...
Posted
For what is known about memory link, there should be no difference. If dream world was still active that would be a different story probably, but since it's down the playing experience should be the same as if doing it with cartridges and a completed bw1 savefile of your own.

I have a few questions:

1) For the Dream World Simulator, what does it exactly mean if it says 'B/W Only' in red? I'm currently playing a Black 2 save.

2) What is the purpose of 'Trainer Records'? It has 2 drop-down menus with no description or anything.

3) Are you still researching medals or lost interest? What flags should I check for certain medals? :XD:

Thanks for this great tool Suloku. You really help me complete this game 100% and experience every minute detail of this game!

Posted

1) For the Dream World Simulator, what does it exactly mean if it says 'B/W Only' in red? I'm currently playing a Black 2 save.

Some dream world pokemon were exclusive to BW1 and some to BW2, if your save is a BW2 one you can't use the simulator to put those BW1 pokemon since the purpose is to reproduce what was available trough dream world (and dream world events) for each game (and region for events).

For any non legit pokemon you can still manually edit forest slots. For example, Arceus was never available as dream world pokemon in BW2.

2) What is the purpose of 'Trainer Records'? It has 2 drop-down menus with no description or anything.

Unfinished feature. I documented more offsets but didn't implement them. These records are tied to medal research, since some medals are awarded depending on those records (i.e. hatch # eggs medal). I noticed erasing the whole medal block would re-earn many medals, and those were all tied to records, so seems like the game checks those when entering apokemon center, and awards you the medal if you have a high enough values. Other medals are given when meeting a certain game condition, some of them being one-time only.

3) Are you still researching medals or lost interest? What flags should I check for certain medals? :XD:

Pretty much explained it above. Not dropped or lost interes, but propper impmementation needs research I don't have the time right now, I haven't written a single line of code (for anything) for months.

Of course the best would be to reverse engineer hiw medals work, but that's out of my league. My priority regarding medals (and tied records they may have) is to cover the medals that are no longer obtainable or are nearly impossible to get, like 30 people funfest. I'd like to have a simple button that edits those medals into the savegame in the most legit way possible, and for that fully understanding the data stored in the mesal block and tied records are needed.

I hope all this text makes sense.

Posted
Some dream world pokemon were exclusive to BW1 and some to BW2, if your save is a BW2 one you can't use the simulator to put those BW1 pokemon since the purpose is to reproduce what was available trough dream world (and dream world events) for each game (and region for events).

For any non legit pokemon you can still manually edit forest slots. For example, Arceus was never available as dream world pokemon in BW2.

Unfinished feature. I documented more offsets but didn't implement them. These records are tied to medal research, since some medals are awarded depending on those records (i.e. hatch # eggs medal). I noticed erasing the whole medal block would re-earn many medals, and those were all tied to records, so seems like the game checks those when entering apokemon center, and awards you the medal if you have a high enough values. Other medals are given when meeting a certain game condition, some of them being one-time only.

Pretty much explained it above. Not dropped or lost interes, but propper impmementation needs research I don't have the time right now, I haven't written a single line of code (for anything) for months.

Of course the best would be to reverse engineer hiw medals work, but that's out of my league. My priority regarding medals (and tied records they may have) is to cover the medals that are no longer obtainable or are nearly impossible to get, like 30 people funfest. I'd like to have a simple button that edits those medals into the savegame in the most legit way possible, and for that fully understanding the data stored in the mesal block and tied records are needed.

I hope all this text makes sense.

Yes.... Some of these medals are just astronomically insane... wth? I mean what were the creators of this game thinking???

  • 3 months later...
Posted

The program has been updated with 3DS Link support (Dream Radar). This can be used to obtain all Dream Radar exclusive pokémon without actually using Dream Radar, which is good news for emulator users. Also, this covers another feature that was Pockestock only until now and surpases it, as the flags for each legendary pokémon can be wiped out so they can be trasnfered multiple times (even on real hardware).
https://github.com/suloku/BW_tool/releases


3DS Link editor: this allows to edit the 3DS link data, which was only ever used by Pokémon Dream radar. This has a "legal mode" (default), on which you can only insert pokémon and items available in Dream Radar and a "All mode" on which you can insert any pokémon or item. The main purpose is to allow the retreival of Dream Radar exclusive pokémon (like weather trio terrian formes) without the actual need to use Dream Radar. You can also clear the catched flags so you may transfer the legendary pokémon again to your savefile.

You may read the research thread here if interested:

 

  • Like 3

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