No$GBA to VBA

.SAV File Format Converter

Technical Information

How This Program Works
No$Gba saves .sav files at an incorrect file size for every other program for two reasons.

1) No$gba first adds a header to the .sav file which makes the sav file corrupt in other programs.

2) It then compresses the file down and makes it smaller.

The converter program works as follows: (I will also give you instructions on how it works, I am a terrible software coder anyways, and show you how to do this without using the conversion utility if you wanted)

Step 1

Were going to be messing with the .SAV file. Its usually saved in the

C:\Program Files\no$gba\battery

directory. When I am changing the .SAV files, I load up no$gba and load the game and load up the .SAV file. Then instead of using a .SAV file, I use a snapshot which can be done in the drop-down menu inside no$gba. This allows me to move the .SAV file around without worrying too much.
Step 2
This seems like a given, but its always worth doing. Add a new directory/folder called "backup" or something simular. ie:

          C:\Program Files\no$gba\battery\backup

And move the .SAV file into that directory. The reason for this is that sometimes no$gba wont do what we need to if the .SAV file already exists.

(Technical Info::: No$Gba reads that the .SAV file in use is already a compressed no$gba only version, and will continue to resave it as that type, even when we tell it not to as long as that .SAV file is there. Not important to know why, but trust me, moving the file is a good idea.)

Step 3

In the no$gba directory should be a file called no$gba.ini. You can open this file with notepad no problem. In it there is a line that reads

          SAV/SNA File Format == Compressed

The program I made has a button that reads "convert no$gba.ini" or something to that effect. All it does is change that line in the no$gba.ini to:

          SAV/SNA File Format == Uncompressed

You can do that manually with notepad if you need to, or just use the converter to do it.
Step 4
Okay, now keep in mind no$gba doesn't automatically re-save the files. This means we will need to load up a snapshot (recommended) or the .SAV file (not recommended). And then save it again as a .SAV file by saving your game again inside the game. We now have an uncompressed .SAV file, but it still has a 76 character header attached to the .SAV file. I noticed this by using a hex-editor.
This header is what stops VBA from loading the .SAV file. Go figure.

Step 5

A do-it yourself person can use a hex-editor, and simply delete out those 76 characters. All this program does here is read the first 76 characters in the .SAV file.

If the 76 characters contains the header. looks something like:

          |NocashGbaBackupMediaSavDataFile|
          | b                            |
          |Õ                       SRAM | 

Is copy the .SAV file to a new one, skipping the first 76 characters. This creates a .SAV file without the header! And a message will come up saying Conversion Complete or something like that.

If the first 76 characters do not contain the header, the converter knows the .SAV file is not a no$gba .SAV file. It then needs to re-attach the header to make it compatible with no$gba. Ironically, the .SAV file from VBA should load into no%gba without this conversion. But it was a feature added for completion. In this case the program takes your .SAV file and attaches the header called

          header.inf

Located in the no$gba_to_vba converter directory to your .SAV file. It then says something like Visual Boy Advance version detected, .SAV file automatically converted to No$GBA.
kermed [at] gmail [dot] com 
				    

GBA - Utils

Home
Download
Technical Info
FAQ
Instructions
Forum