Homebrew [HELP] Inject retroarch save to snes VC game

toto9992

Well-Known Member
OP
Member
Joined
Sep 12, 2009
Messages
164
Trophies
0
Age
28
Location
France
XP
245
Country
France
Hi everyone !

Is there a way to "inject" a .srm save file that I got from playing with retroarch CATsnes in the VC version of the game ?

When I dump the save with JKSV from the VC game, I get 3 files : *.cfg, *.vea, *.ves.

Any idea ?

I tried to rename the save I got from JKSV and use them with an Snes emulator, but it doesn't work, so I guess we're screwed.
 

MelonGx

Well-Known Member
Member
Joined
Jan 8, 2009
Messages
1,650
Trophies
1
XP
905
Country
China
Same problem here.
*.VES has the most similar size as *.SRM.
But when I try to replace *.VES with *.SRM by renaming, it still displays my uninjected game progress.
Maybe the save is stored inside the *VEA?
 
Last edited by MelonGx,
  • Like
Reactions: Xiphiidae

AriusPrime

Member
Newcomer
Joined
Mar 31, 2016
Messages
5
Trophies
0
XP
85
Country
United States
I’ve tried to get my .srm file of A Link to the Past file to work with the 3DS's Virtual Console and no luck, here are my attempts.
  • Renaming .srm save file to .ves
  • Hex editing (.ves definatly contains the save because it is most similar to the .srm file.)
  • Renaming .zst file to .vew (save states)
 
Last edited by AriusPrime,

Xiphiidae

Member
Joined
Sep 13, 2009
Messages
2,107
Trophies
1
XP
1,674
Country
Australia
Same problem here.
*.VES has the most similar size as *.SRM.
But when I try to replace *.VES with *.SRM by renaming, it still displays my uninjected game progress.
Maybe the save is stored inside the *VEA?
I've tried doing this with Super Metroid and Earthbound (though from SNES9X, not retroarch), with the same results as you.

This is definitely something that warrants some research.
 
  • Like
Reactions: MelonGx

ThomasRobertWade

Well-Known Member
Member
Joined
Oct 13, 2012
Messages
172
Trophies
0
XP
174
I've done some testing using iHex, and I have discovered that the .ves file is the save file, but it has 48 extra bytes at the beginning. I copied everything but the first 48 bytes onto a blank file and saved it as a .srm, and I was able to use my 3DS VC save on an emulator. I tried doing the same thing, but the opposite way around (copying all the data from a .srm onto the .ves, leaving the first 48 bytes) and I put it back onto my New 3DS. It still wouldn't load the uninjected save. I tried a few things with the copy of the uninjected one I made, and I discovered that if the emulator I was using loaded the game from its automatic suspension point, it wouldn't load the save, and the file that you tried to load with gets automatically rewritten with the old file's data. I believe that the problem with the 3DS loading the saves is that it is loading from a suspension point, and that is overwriting the save with the one in the suspension point's memory. I also believe that the memory of the suspension point is kept in the .vea file, due to the size it has.
I hope this can help anyone with a better knowledge than me to be able to improve upon what I have done.


EDIT: I have been searching through the .vea file and I have found some data that exactly matches a save file. I tried using my own savedata and copied it in, like I did with the .ves, but it hasn't worked yet. However, I think I might be onto something.
 
Last edited by ThomasRobertWade, , Reason: New information to add to the topic, and I didn't want to break the rules by double posting.

ThomasRobertWade

Well-Known Member
Member
Joined
Oct 13, 2012
Messages
172
Trophies
0
XP
174
It's possible that those first 48 bytes contain checksum information or the secure value.

Still, good work, hopefully something will come of it.
I'm pretty sure that it's to do with the emulator loading stuff at an automatic suspension point, because I had the same issue with Snes9x originally on my Macbook. It's probably something in the .vea file, because there is so much in there. I'm not really sure myself. This is the first I've really done any Hex editing without following some sort of tutorial, and it was more for curiosity than anything else. I'm glad I was of some use.
 

Stremon

Well-Known Member
Member
Joined
Sep 30, 2014
Messages
212
Trophies
0
Age
40
Location
Nerima, Tokyo
Website
jbbongrand.blogspot.fr
XP
837
Country
France
After some testing, I realize that when I copy my save data into the *.vea and *.ves files, the VC emulator reset both the save and save state, making them blank.
I also tried to fill those 3 files with random hexadecimal data, and it does the same, just resetting the game and the data...
I guess the emulator has some kind of checksum at startup to avoid crash in case of data corruption...
 

hippy dave

BBMB
Member
Joined
Apr 30, 2012
Messages
9,143
Trophies
2
XP
20,164
Country
United Kingdom
Yeah I couldn't get save injection working. My only other idea was to try to inject it into ram with ntr, but I don't think I got going with it.
 

SG6000

Well-Known Member
Member
Joined
Nov 2, 2015
Messages
391
Trophies
0
XP
1,300
Country
United Kingdom
I tried to solve this issue as well - and tried everything suggested without any luck.

I think the moral of the story is simply not to play any lengthy / involved games on Snes VC if you think you might want to transfer your save file to another emulator or platform.

SNES VC is like a gilded, low-volume, maximum security prison for your save files. And your saves are stuck in there for life.
 

Stremon

Well-Known Member
Member
Joined
Sep 30, 2014
Messages
212
Trophies
0
Age
40
Location
Nerima, Tokyo
Website
jbbongrand.blogspot.fr
XP
837
Country
France
I tried to solve this issue as well - and tried everything suggested without any luck.

I think the moral of the story is simply not to play any lengthy / involved games on Snes VC if you think you might want to transfer your save file to another emulator or platform.

SNES VC is like a gilded, low-volume, maximum security prison for your save files. And your saves are stuck in there for life.
To be fair you can actually start a game on the VC then export the save to an emulator, but sadly not the other way around :(
It's annoying since you can actually do it quite easily on the GB/GBC VC games, but the file system is totally different...
 

SG6000

Well-Known Member
Member
Joined
Nov 2, 2015
Messages
391
Trophies
0
XP
1,300
Country
United Kingdom
Oh you can? That's good to know. My attempts to export failed, and my more serious and time consuming attempts to import failed as well.

I've also run into some general and compatibility issues that aren't present in Catsfc (graphic glitches mainly but some sound ones too) with playing games I know well on the Snes VC, so all of that coupled with the low audio output has pretty much cooled things with this particular official emulator.
 

Stremon

Well-Known Member
Member
Joined
Sep 30, 2014
Messages
212
Trophies
0
Age
40
Location
Nerima, Tokyo
Website
jbbongrand.blogspot.fr
XP
837
Country
France
Oh you can? That's good to know. My attempts to export failed, and my more serious and time consuming attempts to import failed as well.

I've also run into some general and compatibility issues that aren't present in Catsfc (graphic glitches mainly but some sound ones too) with playing games I know well on the Snes VC, so all of that coupled with the low audio output has pretty much cooled things with this particular official emulator.
yep, watch here: ;)
https://gbatemp.net/threads/how-to-extract-snes-virtual-console-saves-from-3ds-to-pc.433063/

Same thing for me, I was just trying to make it work for the button layout and the low input latency, but I am about to give up and go back to emulate it on my Android game device :P
 
Last edited by Stremon,
General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: Hope they made lots of spaget