Freeplaytech Forum
Restoring Saved Data from an Emulator - Printable Version

+- Freeplaytech Forum (https://forum.freeplaytech.com)
+-- Forum: Neo Geo Pocket (https://forum.freeplaytech.com/forumdisplay.php?fid=1)
+--- Forum: Flash Masta/Linkmasta (https://forum.freeplaytech.com/forumdisplay.php?fid=6)
+--- Thread: Restoring Saved Data from an Emulator (/showthread.php?tid=73)



Restoring Saved Data from an Emulator - Senk - 09-03-2012

So, on the Linkmasta page, it mentions that one of the features is to restore backed-up data of your games, or backed-up data from an emulator.

Is the emulator backup actually an option? I was comparing the hex breakdown between my backed up data from Card Fighters Clash (Capcom) created from using the Linkmasta and the saved data (not the save state) from NeoPop and the content is fairly different.


RE: Restoring Saved Data from an Emulator - Flavor - 09-04-2012

I haven't touched this for a while, but my recollection is that they use the same format, but they way they use the format is a bit different. This may not be clear/intuitive, but I think that you can take a savegame file (not a savestate) from NeoPop or RACE! and use it on the Linkmasta to write to a cart.

If you're testing this on a flash cart (like the Flash Masta), I'd recommend backing up the entire cart first.

If you're testing this on an official game cart, I'd recommend backing up the savegame (or entire cart) first.

Please report back your findings, but I designed this feature to work the way I stated it. I'd be surprised if it didn't.

I can't say that I recall testing going the other way (from Linkmasta to NeoPop/RACE).

By the way, I had a bit of a hand in helping design some of the savegame functionality in NeoPop, and then I used that as a basis to design it in RACE!.


RE: Restoring Saved Data from an Emulator - Morden - 09-04-2012

(09-03-2012, 02:36 PM)Senk Wrote: So, on the Linkmasta page, it mentions that one of the features is to restore backed-up data of your games, or backed-up data from an emulator.

Is the emulator backup actually an option? I was comparing the hex breakdown between my backed up data from Card Fighters Clash (Capcom) created from using the Linkmasta and the saved data (not the save state) from NeoPop and the content is fairly different.

This depends almost entirely on the game itself. Some games will let you upload a save file from an emulator, some won't. I used save data extracted from game cartridges with an emulator and I did successfully re-upload those onto the cartridge. Neo Poke-Kun was the one I had virtually no problems with, but Faselei! wasn't as cooperative.

The most important question is: are you planning on uploading emulator created save states onto an original cartridge or onto the flash cartridge?


RE: Restoring Saved Data from an Emulator - Senk - 09-04-2012

Hm... well, with Card Fighers Clash, the NGF backup from the official cart was 65KB in size. The size of a save (not save state) using NeoPop varied between 5KB and 7KB.

Loading the 65KB NGF save file using NeoPop worked fine. However, when NeoPop saved data, it replaced the previous NGF file with the much smaller version. I was hoping it would just edit the larger save file, but that seems like a no-go.

I was able to transfer the save from the NeoPop by replacing the contents in the 65KB file with the NeoPop save in the location that matched up. Transferring worked, but I did receive an error about an incorrect save header using the GUI tool. Still, the save worked fine.

Looking back, I really should have documented my struggle a little more with screenshots and the like. I guess I could always reproduce the steps I took. The old save and entire cartridge were backed up when I started this, and I've got duplicates of this game; so, I'm not that worried.


RE: Restoring Saved Data from an Emulator - Morden - 09-04-2012

The size difference depends on how the Flashmasta software handles save dumping. It will dump the whole contents of unprotected [writable] sectors from the cartridge, while the emulator will only write what's relevant, with no size padding to match that of a cartridge.


RE: Restoring Saved Data from an Emulator - Senk - 09-04-2012

(09-04-2012, 06:25 AM)Morden Wrote: The size difference depends on how the Flashmasta software handles save dumping. It will dump the whole contents of unprotected [writable] sectors from the cartridge, while the emulator will only write what's relevant, with no size padding to match that of a cartridge.

That's what I assumed was happening. That's actually the reason behind why I posted this topic, since I was confused if the Linkmasta software could actually know where to write a fragment of a save file from an emulator. I think I've gotten my answer, so thanks Flavor and Morden. Smile


RE: Restoring Saved Data from an Emulator - Flavor - 09-05-2012

A little bit more on this topic for anyone else that cares to delve into NGP savegame files. Some of this may be obvious or covered already, but here's a quick rundown.

The NGP uses flash memory for both the game and the savegame. On an official game, some sectors are marked as either protected or unprotected. The savegame data must go in an unprotected sector, but that doesn't mean that all of the unprotected sectors hold valid savegame info. Plus, the savegame info may be tiny, but there's no way to reserve anything smaller than a sector. Some sectors, however, are smaller than others.

When reading a cartridge, there is no good way to know what has changed from the time the cartridge was new. The only way the Linkmasta has to know what sector is savegame is to save all of the unprotected sectors.

An emulator is different, though. It can keep track (while emulating the game) of which sectors are being written to. These can be written to a file. In fact, it can even keep track at a sub-sector level. It could just save each byte that was written without any regard for sector sizes.

The NeoPop savegame format has some headers that essentially lay out where (in the cart) this data starts and how long it is. That's followed by the data. This can occur several times (like if the game saved to a few different places).

So, NeoPop (or RACE!) will save smaller chunks of data. If a game wrote to a single sector 3 times, it may save 3 small chunks of data. If the Linkmasta saved this same game, it would write 1 chunk of the entire sector (and probably other whole sectors that were also unprotected).

In the emulator, think of the savegame file as a DIFF or a PATCH. You start with the ROM file. Then, you add the savegame "diff" on top of that. This results in the game with the savegame.