ROM Hack [Release] Metroid Samus Returns Save Editor

BtEtta

Well-Known Member
Member
Joined
Apr 9, 2016
Messages
147
Trophies
0
XP
718
Country
ehhhhhhh . . . sorry I am just really bored right now. Also I will check out everything that you shared with me. About the play time, it wasn't really play time, I mean it was but its just text nothing more. Idk how play time is stored for this game, I thought it would be just like any other game aka convert time to milliseconds and there is your value as a int 32 but I guess its not.
Nope it's a float too.

Shortly after where you had the plain text pointless time you'll see the bytes 1D 48 4F 69 66 (oh the same pattern again :) ) following that is the time in seconds stored as a 32-bit float.
top_0000.png
 

rog9001

Well-Known Member
OP
Member
Joined
Aug 13, 2016
Messages
119
Trophies
0
XP
469
Country
Japan
Nope it's a float too.

Shortly after where you had the plain text pointless time you'll see the bytes 1D 48 4F 69 66 (oh the same pattern again :) ) following that is the time in seconds stored as a 32-bit float.
top_0000.png
Well damn xD

guess I didn't look hard enough. I do better with loaded data then static data.

Gonna probably try closing/deleting this thread.

--------------------- MERGED ---------------------------

also just to tell you, that ID list isn't foolproof because I tried find the id for super missiles and found 2 of em.
 
Last edited by rog9001,
  • Like
Reactions: ShadowOne333

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,182
Trophies
2
XP
33,644
Country
Mexico
Nope it's a float too.

Shortly after where you had the plain text pointless time you'll see the bytes 1D 48 4F 69 66 (oh the same pattern again :) ) following that is the time in seconds stored as a 32-bit float.
top_0000.png
Please please let changing time return to the editor :D
 

rog9001

Well-Known Member
OP
Member
Joined
Aug 13, 2016
Messages
119
Trophies
0
XP
469
Country
Japan
Please please let changing time return to the editor :D

Did you read my reply? I am thinking of closing this thread and that's it. This is really time consuming and I really don't fancy having 20 windows open on my computer cuz I lose track of whats what and sometimes just ask myself the simple question "wtf was I doing?" (when I am asking this I just see my 5 instances of calculator and 3 instances of HxD).
 
Last edited by rog9001,

ShadowOne333

QVID PRO QVO
Editorial Team
Joined
Jan 17, 2013
Messages
12,182
Trophies
2
XP
33,644
Country
Mexico
Did you read my reply? I am thinking of closing this thread and that's it. This is really time consuming and I really don't fancy having 20 windows open on my computer cuz I lose track of whats what and sometimes just ask myself the simple question "wtf was I doing?" (when I am asking this I just see my 5 instances of calculator and 3 instances of HxD).
That's a shame.
But I can understand that.

Do you have the source available?
I might want to give it a try to add some stuff on my own, I just hope my coding skills are up to it :P
 

JoostinOnline

Certified Crash Test Dummy
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
Did you read my reply? I am thinking of closing this thread and that's it. This is really time consuming and I really don't fancy having 20 windows open on my computer cuz I lose track of whats what and sometimes just ask myself the simple question "wtf was I doing?" (when I am asking this I just see my 5 instances of calculator and 3 instances of HxD).
Then mark the project as cancelled, but leave the thread open. You can unsubscribe from it if you want. Just give people a place to discuss it with each other.

Edit: Also consider releasing the source. Your work could live on. :)
 

ChuckFinley

Member
Newcomer
Joined
Sep 18, 2017
Messages
7
Trophies
0
Age
32
XP
51
Country
United States
Nope it's a float too.

Shortly after where you had the plain text pointless time you'll see the bytes 1D 48 4F 69 66 (oh the same pattern again :) ) following that is the time in seconds stored as a 32-bit float.
top_0000.png
How would one go about making that change? I've got my common open in HxD and have found the bytes you mentioned, but the string after that doesn't appear to have the value. For me, 08:19:00 should become 29940, but performing a 4-byte search doesn't find any results. I'm about as green to this stuff as green gets... how many steps am I missing?
 
  • Like
Reactions: ShadowOne333

BtEtta

Well-Known Member
Member
Joined
Apr 9, 2016
Messages
147
Trophies
0
XP
718
Country
How would one go about making that change? I've got my common open in HxD and have found the bytes you mentioned, but the string after that doesn't appear to have the value. For me, 08:19:00 should become 29940, but performing a 4-byte search doesn't find any results. I'm about as green to this stuff as green gets... how many steps am I missing?
It's bacause it's stored as a IEEE-754 floating point number. These will look different from normal integers and are not so easily read.

To give an example, before I edited my time for the screenshot the value in my file for the relevant four bytes was 0x44C66E47.
So let's find out what that translates to.
  • First, the 3DS stores things in little-endian format (if we were to talk decimal numbers writing one-hundred and twenty three in big-endian would be 123, in little-endian we'd write 321) because that's the format its CPU expects. So first we need to reverse the bytes so we have 0x476EC644
  • Now we can google for a 32-bit float converter and this site will do the trick.
  • Enter the reversed bytes into the hexadecimal representation box and hit enter.
  • This gives me 61126.266 seconds, or a little under 17 hours. Which matches what my game shows. If at this step you don't get what you're expecting you're reading the wrong bytes or following the steps above wrong.
  • Maybe I want to edit things so I'm in place to see the middle ending (finishing between 4-8 hours) so we calculate what 4 hours is in seconds (4*60*60) and get 14400
  • Putting that into the decimal representation box and hitting enter gives me a value of 0x46610000 — but remember this value would be big-endian
  • So we reverse it to get 0x00006146, therefore you'd need to make those four bytes read 00 00 61 46
  • Save your changes and reinject your save using your preferred method.
 

ChuckFinley

Member
Newcomer
Joined
Sep 18, 2017
Messages
7
Trophies
0
Age
32
XP
51
Country
United States
It's bacause it's stored as a IEEE-754 floating point number. These will look different from normal integers and are not so easily read.

To give an example, before I edited my time for the screenshot the value in my file for the relevant four bytes was 0x44C66E47.
So let's find out what that translates to.
  • First, the 3DS stores things in little-endian format (if we were to talk decimal numbers writing one-hundred and twenty three in big-endian would be 123, in little-endian we'd write 321) because that's the format its CPU expects. So first we need to reverse the bytes so we have 0x476EC644
  • Now we can google for a 32-bit float converter and this site will do the trick.
  • Enter the reversed bytes into the hexadecimal representation box and hit enter.
  • This gives me 61126.266 seconds, or a little under 17 hours. Which matches what my game shows. If at this step you don't get what you're expecting you're reading the wrong bytes or following the steps above wrong.
  • Maybe I want to edit things so I'm in place to see the middle ending (finishing between 4-8 hours) so we calculate what 4 hours is in seconds (4*60*60) and get 14400
  • Putting that into the decimal representation box and hitting enter gives me a value of 0x46610000 — but remember this value would be big-endian
  • So we reverse it to get 0x00006146, therefore you'd need to make those four bytes read 00 00 61 46
  • Save your changes and reinject your save using your preferred method.
I could have chewed on this problem for months and never would have thought of "maybe the code is backwards". Thank you very much for this big/little endian information. My time has modified with no trouble at all.
 

BtEtta

Well-Known Member
Member
Joined
Apr 9, 2016
Messages
147
Trophies
0
XP
718
Country
I can take a look into that. I've got a pretty good handle on the overall format of the save files now. (Fun fact, all three files use the same basic format, you can break them all down into their individual chunks of data without even knowing what each chunk stores.)
 
  • Like
Reactions: Raylight

rog9001

Well-Known Member
OP
Member
Joined
Aug 13, 2016
Messages
119
Trophies
0
XP
469
Country
Japan
Awesome, thanks.
Changed the playtime just fine.
Only thing missing is unlocking the different galleries.

I can take a look into that. I've got a pretty good handle on the overall format of the save files now. (Fun fact, all three files use the same basic format, you can break them all down into their individual chunks of data without even knowing what each chunk stores.)

I don't think that what [Truth] is asking for, is initially in the file. For example, the little Metroid which you get halfway or so in the game, is essentially a data block (with support blocks) which is only written into the save file after getting it. I think the gallery stuff (concept art & sound test) act the same way. Dunno, might be wrong. Also, injecting data into the save file renders it unusable sins the game cant read it, so if you were to want the small Metroid (and if I am correct, the concept art & sound test) at the start of the game, you would need to rewrite the entire save file and add all the data blocks which support the data block containing the info bout the little Metroid and also add the little Metroid block as well.

--------------------- MERGED ---------------------------

Lastly, I don't understand why you would even need the gallery stuff if you can find the soundtracks and the concept art on the internet
 

JoostinOnline

Certified Crash Test Dummy
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
Lastly, I don't understand why you would even need the gallery stuff if you can find the soundtracks and the concept art on the internet
It makes way more sense than wanting to cheat. ;)

Lots of people, myself included, want to get finish every part of the game. It's especially common with Metroid games. There is something satisfying about 100 percent-ing a game. Nintendo screwed us over with Samus Returns by saying if we wanted to unlock everything then we needed to pay extra money. The gallery and Fusion Mode are literally the ONLY reason I want this.
 
  • Like
Reactions: Raylight

rog9001

Well-Known Member
OP
Member
Joined
Aug 13, 2016
Messages
119
Trophies
0
XP
469
Country
Japan
It makes way more sense than wanting to cheat. ;)

Lots of people, myself included, want to get finish every part of the game. It's especially common with Metroid games. There is something satisfying about 100 percent-ing a game. Nintendo screwed us over with Samus Returns by saying if we wanted to unlock everything then we needed to pay extra money. The gallery and Fusion Mode are literally the ONLY reason I want this.

I get what you are on bout but i dont think i will be able to do much unless someone gives me a save with concept art and sound test unlocked so i can see what has changed or what has been added.
 

JoostinOnline

Certified Crash Test Dummy
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States

rog9001

Well-Known Member
OP
Member
Joined
Aug 13, 2016
Messages
119
Trophies
0
XP
469
Country
Japan
  • Like
Reactions: ShadowOne333

JoostinOnline

Certified Crash Test Dummy
Member
Joined
Apr 2, 2011
Messages
11,005
Trophies
1
Location
The Twilight Zone
Website
www.hacksden.com
XP
4,339
Country
United States
As I suspected, it's a data block which gets added to the file after scanning the amiibo. I would gladly add a "unlock galleries" button to my save editor but first I will need to figure out what changes in the file and what doesn't so I can have a stable aob to scan and then act accordingly.
The other two saves don't have the galleries/sound unlocked. Does that help?
 

rog9001

Well-Known Member
OP
Member
Joined
Aug 13, 2016
Messages
119
Trophies
0
XP
469
Country
Japan
@JoostinOnline do you by any chance know how the features work? As in, if you scan the amiibo for concept art and sound test does it get unlocked instantly or do you need to finish the game + to scanning?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: Gonna love it when the next update blocks them