Introduction
I've gotten back into playing Mega Man Battle Network recently. I realised really quickly that I am going to need to use the online functionality to 100% all of the games. So I bought the game twice for two Steam accounts. But... then I don't really feel like playing through all of the games twice. Surely there's a better way, right?
If you try to use another person's save, it will fail because the Steam ID is embedded inside the save file. Thankfully, it's really easy to just... inject your own Steam ID. And I wanted to provide a quick little tool that will do the hard work for you. We'll make this blog post simple so you can get to playing. Scroll down to the bottom to use the web app and get to injecting a Steam ID of your choice!
This blog post was inspired by a few sources on the web. Notably some Steam guides. Yes, I saw them. And I got the offset information from them. Shoutout to wchill for the following:
I simply wanted to provide a solution that doesn't involve a hex editor or installing Python. Just making your life easier.
Save formats in a nutshell
Each of the EXE games in the collection have their own independent save files. These are located at the following locations:
- Volume 1:
C:\Program Files (x86)\Steam\userdata\{Steam ID}\1798010\remote - Volume 2:
C:\Program Files (x86)\Steam\userdata\{Steam ID}\1798020\remote
They are .bin files. Every game has your SteamID3 stored
somewhere in them. They are at the following addresses:
- EXE 1:
0x00BC - EXE 2:
0x0104 - EXE 3:
0x00E0 -
EXE 4:
0x????, this one varies.-
For Red Sun, find the string
Exe4and add 12 to the offset. -
For Blue Moon, find the hex sequence
34 42 00 00 34 52and add 16 to the offset. If this sequence occurs multiple times, pick the last one in the file.
-
For Red Sun, find the string
- EXE 5:
0x1FC0 - EXE 6:
0x1960
Battle Network 4 through 6 saves are "encrypted" by
XOR'ing all
bytes with a seemingly random value. This is very easy to decrypt. Just
XOR all bytes by the second byte in the file since (in cases I've seen)
it's always 00 when decrypted.
Web App: Steam ID Injector
This webpage has the web app embedded. Simply choose a save file to open, specify the game it is, and give your SteamID3. It will give you a patched save file.
| Save File | Game | SteamID3 |
|---|---|---|
I like to think my tool is self-explanatory. Hope it helps! If you don't
know how to get your SteamID3, simply chuck your Steam ID into
this page and take the final numerical
part. Paste it into the box above (e.g. mine is
[U:1:62095071]. So I paste 62095071 into the box
above). Lastly, a save must already exist to be overwritten. So if you
downloaded someone's EXE3 save, start an EXE3 run, save the game, and then
replace the save with someone else's.
Conclusion
It's a little fitting for a game about electronics and the Internet for me to write up a little tool to make my life just a little bit easier. I hope you find it useful. Just so you know, my only testing source for these files is my second Steam account. I have not tested it on any other profiles or anything. The best bet is the people of the Internet, so let me know how it goes. But be sure to back up your current save just in case something happens.
I am a little worried about EXE4 and how it performs in "field testing".
For some reason, my Blue Moon saves didn't have the Exe4
string in them. So I had to find an alternate way to get the Steam ID. If
it breaks, email me with your save and I'll try to fix the tool. I tested
this on all games with exception to EXE2's hard mode. Enjoy.