Need help with editing saves format for a .cia

TheGalaxyWings

Member
Newcomer
Joined
Oct 25, 2024
Messages
8
Reaction score
1
Trophies
0
Age
20
XP
31
Country
France
I found a 6 year old thread about this exact same problem but the methods don't work for me

"The problem here is that you're loading a 64kb save into a rom that is programmed to use 128kb saves. This can be fixed, but it'll be easier just to swap to using 128kb saves. GBA VC games used to have a max of 64kb, but we've since found ways to use 128KB, so we'll want to get a new .cia that uses 128kb saves, and convert your 64kb save file.

[link to NSUI, can't post because I'm lv1] It's fairly easy to use, select your French .gba rom file, and fill in the information, ensuring that 128kb saves are selected. It should create a new .cia file that you can install.

Now you need to convert your 64kb save to inject into the new .cia game. I've already properly converted your save file, but the way I did for future reference was to hexedit the rom to support 64kb saves, load it into an emulator, and change the emulators save type mid-game, before saving twice ingame and exporting the save file. Replacing all values in the rom between the sequences D0888D8342 and 2410491068 with 00 makes it support 64kb saves. You won't need to do that if the save files I've linked work."

I tried using NSUI, but it wouldn't load my rom, or any for that matter, the "project" button is even greyed out
 
Last edited by TheGalaxyWings,
Hey, got around to responding to this, the previous post for context is here.

Firstly, the Project tab being greyed out in NSUI: I think that's just because you don't currently have a project open. In NSUI, you just need to go File -> New -> Game Boy Advance to start making your CIA. (A project is just the in-progress form you fill in with the details).

Secondly, just to be sure, are you certain the problem is related to 64KB saves? I'm surprised that still crops up six years later, but if you've got an outdated setup and have confirmed the save file is 64KB then I guess it's still possible. If this save is from a physical cartridge it's a bootleg.

When it comes to hexediting your game ROM, use something like HxD. There should be an option to find those strings in the ROM, Search tab-> Find. Use that to take you to D0 88 8D 83 42, then select the next four bytes until 2410491068 and replace them with zeroes.

Or, alternatively, just search for the sequence 42 F5 D1 00 and replace that with zeroes. I don't know why I explained it in such a convoluted way before. Maybe it's different in some languages, but either way, it's those four bytes between those other sequences.

1730149740672.png
-->
1730149827915.png



Make a copy of your unedited game beforehand, this edited version is just to load your existing 64kb save with. Then once it's loaded, (I think) you make a savestate, load that in the unmodified game, and save twice which should then use the proper 128kb save format.

It should be fairly straightforward but if you're unfamiliar with this or my instructions are out of date, DM me a link to your save here or elsewhere and I can try and figure it out again.
 

Attachments

  • 1730149374435.png
    1730149374435.png
    54.2 KB · Views: 35
  • 1730149401748.png
    1730149401748.png
    48.1 KB · Views: 47
  • 1730149645604.png
    1730149645604.png
    6.7 KB · Views: 36
  • 1730149803446.png
    1730149803446.png
    3.9 KB · Views: 40
Last edited by Sir Tortoise,
I'm actually not sure, I just assumed the problem was 64kb saves since it had the exact same symptoms (it was even a french rom, too). How do I make sure ?
 
I'm actually not sure, I just assumed the problem was 64kb saves since it had the exact same symptoms (it was even a french rom, too). How do I make sure ?
Simplest way is to dump your save file and see how large the file is. If you're currently playing on 3DS via Virtual Console, you'll need to use something like GBAVCSM. If you're on emulator, most will have an option to export the .sav somewhere, usually in a File menu. If you're on a physical cartridge, this shouldn't be a problem unless it's a bootleg, but the easiest way is with a original DS/Lite and a flashcart.
 
Ah, so that is definitely the issue then. Must be a very old VC cia. The above method should fix it then, give it a try but if you run into difficulties feel free to send the save to me to convert.
 
thank you so much for this, this feels surreal
Post automatically merged:

Ah, so that is definitely the issue then. Must be a very old VC cia. The above method should fix it then, give it a try but if you run into difficulties feel free to send the save to me to convert.
Where can I load the cia to do the savestate manip ? I think it crashes citra
 
Last edited by TheGalaxyWings,
Ah, so that is definitely the issue then. Must be a very old VC cia. The above method should fix it then, give it a try but if you run into difficulties feel free to send the save to me to convert.
the site is merging my replies are you getting the notifications
 
thank you so much for this, this feels surreal
Post automatically merged:


Where can I load the cia to do the savestate manip ? I think it crashes citra
Ah, you can't use savestates on the 3DS virtual console. That requires an emulator, something like mGBA on the PC.
 
Hi, I'm back at this a year later, my problem is that I have no idea how to load the virtual console .cia file into a gba emulator, or to edit the file to make it possible
 
I have no idea how to load the virtual console .cia file into a gba emulator
You don't. A .cia file is used to install a game to the the Home menu of your 3DS. If you want to play the game on a GBA emulator, you need the ROM. (You can probably extract a ROM from a .cia file if you really want to, but it's probably easier just to re-download the ROM.)

Or are you asking how to get the save data off your 3DS?
 
If I remember right from past messages:

1) You've dumped the save file from your 3DS VC game, which is 64kb in size. The goal now is to convert that save file to the proper 128kb format.
You can forget about any .CIA files or the 3DS until you've converted the file.

2) You need to load that save into a copy of the game that is modified to handle 64kb saves. That's the hex editing steps shown above, you acquire a raw copy of the game (a .GBA file) and make those edits so it can load the save.

3) Using an emulator on your PC (because we need savestates), load that modified copy and then import the save. It should all work fine. Save a few times and reload to make sure.

4) Now that you've loaded the 64kb save, use the emulator to export a save-state. This will let you transfer that currently running game as it was loaded from the 64kb save.

5) Take the save-state and load it into an emulator running the unmodified copy of the game. Now you have a game designed to handle 128kb saves, but it's successfully running the savestate from your 64kb save.

6) Save in the unmodified copy of the game, which will properly output a 128kb save. Then do whatever you want with it, such as loading it into a properly made 3DS cia to play it there.

This is an ancient janky method full of weird terminology, I know it works but there is surely a better method. If you want feel free to just send me the save and I'll convert it.
 

Site & Scene News

Popular threads in this forum