Gibbed was kind enough to make a rather detailed save editor for Mass Effect 2. As usual, though, he didn't bother to add Xbox 360 support. A quick edit and now it does work on the 360. You have to extract your individual xbsav files from your careers for this to work. Maybe I'll add career support later, but for now this is just a quick fix. Have fun. You can get the source here since I believe Gibbed GPL'd his programs. Download Gibbed's ME2 Editor (X360).zip (Not reuploading, get Pordis Shepard's version.) EDIT2: An improved version of the editor can be found here. Thank Pordis Shepard for the improvements.
Whenever i open a save i get "See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.InvalidOperationException: somehow I doubt there is a >1MB string to be read at Gibbed.MassEffect2.FileFormats.StreamHelpers.ReadStringUnreal(Stream stream) at Gibbed.MassEffect2.FileFormats.UnrealStream.Serialize(String& value) at Gibbed.MassEffect2.FileFormats.SaveFile.Serialize(IUnrealStream stream) at Gibbed.MassEffect2.FileFormats.SaveFile.Load(Stream input) at Gibbed.MassEffect2.SaveEdit.Editor.LoadSaveFromStream(Stream stream) at Gibbed.MassEffect2.SaveEdit.Editor.OnOpen(Object sender, EventArgs e) at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e) at System.Windows.Forms.ToolStripButton.OnClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e) at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e) at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met) at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ToolStrip.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Loaded Assemblies ************** mscorlib Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.3603 (GDR.050727-3600) CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll ---------------------------------------- Gibbed.MassEffect2.SaveEdit Assembly Version: 1.0.0.24 Win32 Version: 1.0.0.24 CodeBase: file:///C:/Users/Kalvin/Desktop/Mass%20Effect%202/Gibbed.MassEffect2.SaveEdit.exe ---------------------------------------- System.Windows.Forms Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- Gibbed.MassEffect2.FileFormats Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Users/Kalvin/Desktop/Mass%20Effect%202/Gibbed.MassEffect2.FileFormats.DLL ---------------------------------------- Accessibility Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll ---------------------------------------- System.Xml Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.3074 (QFE.050727-3000) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- Gibbed.Helpers Assembly Version: 1.0.0.0 Win32 Version: 1.0.0.0 CodeBase: file:///C:/Users/Kalvin/Desktop/Mass%20Effect%202/Gibbed.Helpers.DLL ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box."
Not sure on that one, it's been working great on my end. Only thing to note is that you still need to use the Checksum tool on the save after you've saved it.
I haven't used the Checksum tool on my saves that I use in the Editor. So far they all work. I think the editor fixes the checksum.
Would you mind uploading a copy of a 360 ME2 save somewhere so I can take a look? I don't have a problem with adding support, I don't really play games on the 360 so console support is usually never something I think about. I'm not sure what's required for accessing save content on the 360 either, are they encrypted? If so, I'm guessing editing save content requires a modded 360?
Correct you are, sorry I misspoke on that. That was another save I had done additional editing to in a hex editor and didn't checksum that came up corrupt. The editor does checksum. Gibbed: This is an awesome tool. I attached a 360 save for you to look at. This is the entire container file, so Le Fluffie or a similar program would be needed to extract the .xbsav file that you edit. And no, you don't need a modded 360 for these to work. Are there any updates planned for this tool? So far the only thing I still need to do manually is unlimited ammo on the weapons.
I'm adding the contents of GodOfWine's save to this post. I wouldn't bother with GodOfWine's save (no offense) since your editor doesn't need to deal with CON files (the standard container format on the 360). The only apparent difference is the endian. Just as an FYI, you don't need a modded 360 nor are the contents encrypted. The only thing is the Xbox 360 container, which comes in 3 formats (CON, LIVE, and PIRS). If you wanted to add support to reading the container directly, you'd probably want to add rehashing/resigning of the containers after editing, which would be a major hassle for you.
Thanks, I figure as much as the endian being the only difference, I just want to make sure there's no other differences. I read a few posts on this forum indicating people were editing their saves already and making them valid again with rehashing -- that indicates that the CRC in the save files is either not present or unused on the 360 version (I have not looked at the save you posted yet). Since I don't want to go hunting for this information myself, would you mind pointing me to information about how to do this CON stuff that I could go over? If I add support, I'd like to be able to point people who want to edit their 360 saves in the right direction.
For some detailed, though slightly inaccurate info on the format, check here. As long as your editor can read xbsav files, you simply need to tell Xbox 360 users to extract/replace the xbsav files from their ME2 careers using programs such as Le Fluffie or Modio. They can drag'n'drop their careers into either program, extract the save they wish to edit, use your app, inject it back into the career file, and click the button for rehashing/resigning. If you are interested in adding CON support without much hassle, DJ Shepherd created a class for CON creating/editing. EDIT: Oh, and the checksum is still present in the 360 version.
Not interested in adding CON/etc support if there are well established tools already to do that, just wanted to know how things were done. Thanks for the help XanderChaos, I've already rigged in proper big endian support.
Thanks for popping in here and offering to add big endian support. Let me know when the next revision is out and I'll make sure to swap out the unofficial version in the first post.
No offense taken. I didn't think to run it through first and break the files out. Wanted to help however I could. Good work to both of you on this EDIT: Just wanted to note that after fooling with this tool more I found that you can alter weapon ammo, add weapons, powers and so on (Look in raw data)...so this tool is amazing
It doesn't add the weapon to your inventory, it just replaces that weapon with whatever weapon you want, you also have to edit your Loadout in the RAW Data also for it to work (otherwise the game will equip the weapon that is supposed to be equipped. IE. If you want to swap the Heavy Pistol with the Hand Cannon you will need to change the Weapon (Collection) from: SFXWeapon_HeavyPistol to SFXWeapon_HandCannon as well as change your Loadout from: SFXGameContent_Inventory.SFXWeapon_HeavyPistol to SFXGameContent_Inventory.SFXWeapon_HandCannon
you got that error because u didnt read the instructions and extract your .xbsav files. if you open save in modio then click on the tab that says file content you will see your .xbsav files. these are the file you need to open witht he mod tool
that JIT error I'm actually getting that JIT error at every step. If I change a value or when trying to open up a .xbsav . Seems like a great tool, just won't work with me.