# [Release] Pokemon Emerald Srm & Sav conversion Tools



## 8BitWonder (Aug 5, 2017)

Heyo tempers!
I worked on these couple of tools when I noticed that I couldn't use .srm saves produced by retroarch's vba_next with pkhex. I figured that if they helped me out, maybe they can help some of you out to a degree as well.

Between the two jar tools here, one converts .sav into .srm (SavToSrm.jar).
While the other (SrmToSav.jar) converts .srm into .sav.

As of this time of writing, I've only tested the tools on Pokemon Emerald US, I'm not sure if it works with any other region or whether it works with Fire Red/Leaf Green or Sapphire/Ruby. Though I'm willing to make it compatible with the other games if there is enough interest.

The project is open source, and anyone can feel free to look at or modify the source code from my github.

Source: https://github.com/16BitWonder/Pokemon-Emerald-Save-Converter

The README.txt in the release explains how its directory should be setup, as well as how to use it, hope this helps!

Release: https://github.com/16BitWonder/Pokemon-Emerald-Save-Converter/releases

If anyone has any issues, problems, or questions using these tools, please let me know and I'll see if I can address it.



Spoiler: Why I even bothered to make this tool



The only real reason I had for making this tool was so I could use my psvita emerald save in pkhex without it throwing a hissy fit about an unknown size. So besides this and maybe moving from one emulator to another, there probably aren't many good reasons to need these tools. But hey, at least they're here if someone needs them. ¯\_(ツ)_/¯


----------



## Optimistic_pessimist (Jun 20, 2018)

I know this is old, but I was hoping you could help me out. I'm wanting to convert my .srm to .sav so I can edit it in pkhex just like you and I'm having a hard time finding anything thats working. I downloaded your converters, but I don't know how to run them. In the read me it says that they should be .jar files, but they're not. They are .java files and my computer won't do anything with them. It just opens it so I can see the script. Any help would be very much appreciated.


----------



## 8BitWonder (Jun 20, 2018)

Optimistic_pessimist said:


> I know this is old, but I was hoping you could help me out. I'm wanting to convert my .srm to .sav so I can edit it in pkhex just like you and I'm having a hard time finding anything thats working. I downloaded your converters, but I don't know how to run them. In the read me it says that they should be .jar files, but they're not. They are .java files and my computer won't do anything with them. It just opens it so I can see the script. Any help would be very much appreciated.


Are you sure you selected the .zip download, and not the source download on the release page?

The .jars do appear to be in the .zip.
https://github.com/16BitWonder/Poke...wnload/v1.0/Emerald_Save_Conversion_Tools.zip


----------



## Optimistic_pessimist (Jun 23, 2018)

I just saw this today, my emails from gbatemp must be going to my junk folder. I downloaded the zip that you linked, but when I tried to open up the .jar is gave me an error '*The Java JAR file “SrmToSav.jar” could not be launched.' *It also said to check the console for error messages, but I didn't see any related to java and I checked to make sure that I had logging enabled in the java preferences. I'm on a MacBook pro running high sierra 10.13.5 with the latest version of java. I renamed my .srm to Pokemon Emerald.srm and put it in the srmtosav folder like the instructions said.

Here is my .srm file, if you want to see if you have any success converting it.

http:/ / www . mediafire . com/file/6ofobw0quagfi7p/Pokemon%20Emerald.srm

(I had to put spaces because it wouldn't let me post a link since I'm a new member.)


----------



## 8BitWonder (Jun 23, 2018)

Optimistic_pessimist said:


> I just saw this today, my emails from gbatemp must be going to my junk folder. I downloaded the zip that you linked, but when I tried to open up the .jar is gave me an error '*The Java JAR file “SrmToSav.jar” could not be launched.' *It also said to check the console for error messages, but I didn't see any related to java and I checked to make sure that I had logging enabled in the java preferences. I'm on a MacBook pro running high sierra 10.13.5 with the latest version of java. I renamed my .srm to Pokemon Emerald.srm and put it in the srmtosav folder like the instructions said.
> 
> Here is my .srm file, if you want to see if you have any success converting it.
> 
> ...


Very odd, I'm not sure why it isn't working on your end. It was built with Java 8 but should include all the necessary components to be standalone. I don't have any OS X devices to test/debug it on unfortunately, but I can at least convert it for you and tell you how to do it manually:



Spoiler: Manual Conversion (aka trimming/inflating)



When converting from srm to sav, your srm should start off as 136kb, or 21FFF bytes in a hex editor.
To convert it to sav you need to trim off the FF bytes from offset 20000 to the end of the file, so that the last offset is 1FFFF. In other words you need to trim your 136kb srm file down to exactly 128kb and rename it to sav, then it will work.

When converting from sav to srm you simply add back the FF bytes starting at offset 20000 and ending at offset 21FFF. Now your 128kb sav should be 136kb, and you can rename it to srm and use it.

https://imgur.com/a/nwKZeGt








Here's your srm converted into a sav:


----------



## Optimistic_pessimist (Jun 24, 2018)

Thank you! This will help a lot!


----------



## TSJLives (Oct 4, 2019)

Hey guys, first post... sorry for resurrecting an ancient thread. I had a suspicious feeling that this is no longer an issue and there is an easier alternative method to achieve this by now, but I was unable to locate one.

I was looking for a way to convert the Fire Red SRM generated by RetroArch on my switch to the SAV format so that I could use PKHEX. I tried the 8BitWonder's original code on a whim, and it worked converting from SRM to SAV. Though, for some reason I could not get it to convert from SAV to SRM. I'm not a java developer, but I decided to give it the ol' college try, and I made some edits to the source with IntelliJ. I thought I'd share the working revision to help any others with a similar issue and get some feedback (the revision and source should be attached to this post). Read the README.txt for a bit of info, and I don't mind answering questions.

Notable changes:

Converts all 3rd Gen Pokemon games (Tested and confirmed)

Finds the first File based on File Type instead of name

Generally simplified the source (but its not commented, because I'm lazy)
Also, Thank you for the base code 8BitWonder. I'm pretty sure I would have just given up without the initial know-how.


----------

