Can I transfer my save file from a different emulator to My Boy?
I have an emulator on my phone (Redmi), and I was playing Pokemon Fire Red. However, I now want to transfer my progress over to the 'My Boy!' emulator.
Is this possible? As far as I can tell, the other emulator does not use the same save file format as My Boy!. Is there any way to make this work?
Solution 1:
The short answer is that what you're trying to do is not very likely to work at all, no matter how hard you try.
After further research however, there is one thing you can try.
What can you try with MyBoy?
With the MyBoy emulator, save files are stored in the same folder as the ROM itself, and under the same name. For example, if you have a ROM named PokemonFireRed.gba
, your save file must be named PokemonFireRed.sav
.
NOTE: This is NOT guaranteed to work with save files from every emulator when coming to MyBoy.
Why won't it work for every emulator?
The problem is that when applications are developed, their developers choose how to serialize data for later deserialization (save/load) in their application. While I may use binary serialization in my application, you may choose to simply create a text file to store JSON
data in.
What happens, is when you try to load a file in an application, it has a pre-defined algorithm that tells it how to interpret the data within it. If the file you're trying to load wasn't created in a way that enables that algorithm to interpret it, then it will fail to load.
Let's visualize why this is a problem with a simple example.
Let's say I've told you that when you save data you need to count from 1
to 10
, and to load your data, you count from 10
to 1
. You can think of this as your predefined set of instructions for saving and loading data. When I tell you to save your data, you count from 1
to 10
:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
When I tell you to load your data, you count from 10
to 1
.
10, 9, 8, 7, 6, 5, 4, 3, 2, 1
Now, let's say my set of instructions for saving and loading data is to count from 50
to 100
and from 100
to 50
respectively, while only counting even numbers. You can see that when I load your data, I'm not counting the same way you are:
50, 52, 54, 56, 58, 60, ...
100, 98, 96, 94, 92, 90, ...
With that in mind, your data isn't written out the same way as mine, therefore I cannot possibly load your data with my algorithm.
Hope this helps!