RELEASE SMOSE - Super Mario Odyssey Save Editor

Discussion in 'Switch - ROM Hacking, Saves, Translations & Tools' started by ladygugu, Jun 5, 2018.

?
  1. Yes!

  2. No -.-

Results are only viewable after voting.
  1. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
    Backup your save file before using this editor!
    Use at your own Risk! | Bugs may occur!
    Proceed with caution it can delete nodes and the savegame is then broken.

    [​IMG]
    - Input Format: Ingame 12 Coins -> Value = 12. If you input 0012 the operation will FAIL!!
    Images

    How-to use

    Edit Items
    YOU NEED Version 1.2.0 of the game Ballonhunt update (or latest update) to get the unreleased Costumes otherwise the game WILL crash
    1. Add it to your Inventory (ItemCap, ItemCloth)
    2. or edit current wearing Costumes (not in inventory) (CurrentCapName, CurrentClothName)

    • Warning: Spoilers inside!

    • Warning: Spoilers inside!

    • Name : Value (String)
      IsCollected : True/False
      Music List

    • Int32
      Current coin amount

    • String
      Capture List of Things you can get Control of like a Frog:
      Warning: Spoilers inside!

    • String
      Hint Photos
      Warning: Spoilers inside!

    • String
      Souvenirs to Collect for the Odyssey
      Warning: Spoilers inside!

    • String
      Stickers to Collect for the Odyssey
      Warning: Spoilers inside!

    • True/False (bool)
      IsGet : True
      I think these are the Regional Coins, Purple Coins in a Kingdom, but untestet

    • Collected Shines
      HintStatus : 0 (Hint used to find the Shine or not)
      IsGet : True (collected or not)

    • JumpingRopeBestCount
      Int32
      Record for the Jumping Rope in New Donk City

      VolleyballBestCount
      Int32
      Record for the Volleyball minigame in Seaside Kingdom

      PlayerJumpCount
      Int32
      How often you Jumped

      PlayerThrowCapCount
      Int32
      How often you throwed cappy

      RaceLoseCountLv1 / RaceLoseCountLv2
      Int32
      Races lost on Beginner and Expert Races

      TotalCoinNum
      Int32
      Total amount of Coins collect through the Game

    Changelog

    Credits

    Bugs
     

    Attached Files:

    Last edited by ladygugu, Sep 10, 2018
  2. SomeGamer

    SomeGamer GBAtemp Guru

    Member
    12
    Dec 19, 2014
    Antarctica
    I like minimalism.
     
    Xkillerxxsantaxx and Thetoto like this.
  3. GizmoTheGreen

    GizmoTheGreen GBAtemp Advanced Fan

    Member
    5
    Oct 8, 2009
    sorry, didn't work. read 0 coins, I set it to 9999 and loaded the save, was still at 5060 or something that I had before. not sure what it changed if anything but at least it didn't noticeably screw up my save. I got a backup anyways.
     
  4. Kyuuketsuki

    Kyuuketsuki GBAtemp Regular

    Member
    1
    Jun 1, 2018
    United Kingdom
    Seinan Eikoku
    Unfortunately, it didn't work...

    I loaded Checkpoint and made two backups of my save, one to later restore and the other to test.

    Warning: Spoilers inside!

    With the saves now backed up on my mSD, I loaded SMOSE v0.1.exe and loaded my save, which I changed the value to 9999 because it's a good number to test.

    mSD back in the Switch, with the edited save and restored with Checkpoint.

    Warning: Spoilers inside!

    Powered off and then back on (because I cannot play Mario Odyssey with CFW).

    Coins are the same as when I last played.

    Warning: Spoilers inside!
     
  5. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
    - How big is your save File in bytes?
    Mh don't know if the Region matters, only tested on PAL version

    - Maybe send me your save files, I investigate

    - Try saveing in another saveslot, load this slot save again, so its not the Running.... one and try this save.
    File1 = Running
    Save in File 2, Load File 2
    From 2 Save File 1 and use File 1 with editor

    File3,4,5 Modified
     
    Last edited by ladygugu, Jun 5, 2018
  6. Type_O_Dev

    Type_O_Dev GBAtemp Advanced Fan

    Member
    6
    Dec 12, 2017
    United States
    Do you have source I would he interested in seeing how you handled checksum
     
  7. Type_O_Dev

    Type_O_Dev GBAtemp Advanced Fan

    Member
    6
    Dec 12, 2017
    United States
    Not working

    I can set value and when I reload the save it shows value set.
    This leads me to believe the offset written to is not correct.
     
  8. Kyuuketsuki

    Kyuuketsuki GBAtemp Regular

    Member
    1
    Jun 1, 2018
    United Kingdom
    Seinan Eikoku
  9. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
  10. Kyuuketsuki

    Kyuuketsuki GBAtemp Regular

    Member
    1
    Jun 1, 2018
    United Kingdom
    Seinan Eikoku
    Originally and after trying to edit my save, 2061 coins. B-)
     
  11. SG911

    SG911 GBAtemp Regular

    Member
    3
    Dec 20, 2017
    United States
    Bronx, NY
    With the newer sdfiles & what not. I'm assuming the restart portion isn't needed anymore?
     
  12. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
    Try it out. If you have a saved backup of your savegame. Can't say if it must be done or not with the newer files

    Edit:
    With newer SDFiles no restart needed
     
    Last edited by ladygugu, Jun 19, 2018
  13. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
    Maybe (tomorrow) I release a new Version that now WORKS :D 95% rewritten and minor changes in UI. Im debugging and want to make this as fool proof as possible.

    The only thing you must know to use the editor is to know your current Coins.
    More features are Planned but no ETA. (Soon™️)


    v0.2 Released
    Happy Nintendo E3 2018 Press Conference :D
     
    Last edited by ladygugu, Jun 12, 2018
    Xkillerxxsantaxx, GayRPG and SG911 like this.
  14. shockme17

    shockme17 Newbie

    Newcomer
    1
    Dec 14, 2003
    United States
    is 9999 the max? or is it possible to put in more?
     
  15. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
    Its max
     
    Xkillerxxsantaxx likes this.
  16. exelix11

    exelix11 GBAtemp Advanced Fan

    Member
    5
    Feb 25, 2015
    Italy
    C:\users\exelix11\
    My tag sense was blinking so i got here.
    Firstly, running a save editor as administrator sounds fishy so i decompiled it to see what is it doing under the hood, hope you don't mind it but i don't want anything with my name on it doing something harmful, anyway you should keep everything in memory and avoid writing to the disk.
    Secondly, Are you sure that it works correctly ? I can't check on my switch but by taking a quick look at the savefile posted by Kyuuketsuki the first 4 bytes of File1.bin are the CRC32 hash of the rest of the file, i don't see any crc calculation in your code so either the game doesn't actually check the checksum or i skipped it in your code.
    Also i see that you took the byml code from the 3d land level editor, i fear that it will corrupt the save when converting back to byml as the new node types are not implemented such as 0xD5 that is supposed to be 8 bytes long while the editor reads and will write just 4 bytes, it could work if you happen to keep everything in its place when reassembling the save but it might also mess up the save.
    Check the byml code i just committed in the odyssey editor repo, that has the new types implemented for reading, now i don't have time to get saving working as well maybe after next week.
    I should be studying for my finals, I swear with this i'm done with procrastination
     
  17. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
    The reason why it needs (or dont need) administrator rights is because it writes the files to the tmp directory. So C:\ without admin rights noting can be written. So you are correct maybe its better to store in Memory and dont write anything to disk.
    For me it works, but I didnt test if it breaks other things, softlocking the game or deleting moons you got or some other random things.
    The thing is the Code is really messy and i don't really know how to store all in Memory :D.
    No Checksum checks where made (think the game ignores it?).
    It strips the first 16bytes from the savefile, converts it edits the coind amount, converts it back and adds the first 16bytes and the missing bytes to get original file size back 0x20000C.

    exelix11 I saw your commit and when you implemented saving I will look into this and replace the 3d land level editor code with the new one. And a rewrite is needed again. Becuase to messy code. No more wrting, all in memory
     
    Last edited by ladygugu, Jun 14, 2018
  18. SomeGamer

    SomeGamer GBAtemp Guru

    Member
    12
    Dec 19, 2014
    Antarctica
    If you want to write to file do it in the same dir as the program. It's a safe bet that isn't going to need admin privileges.
     
  19. exelix11

    exelix11 GBAtemp Advanced Fan

    Member
    5
    Feb 25, 2015
    Italy
    C:\users\exelix11\
    ^ This or the temp folder that's supposed to be writable for anyone, iirc there is a function to get its path in .net

    anyway the only things that seem affected by the long values are the timestamps for the "achievements" so no big deal, still it's worth fixing to keep the save as close as possible to the original, when I'm done with my exams I'll get back on working on the odyssey editor and finish the byml saving
     
  20. ladygugu
    OP

    ladygugu Advanced Member

    Newcomer
    3
    May 12, 2015
    France
    I see you have added the saving methods.
    Now I ran into a Problem. When I use your OdysseyEditor and Open a Byml it displays everything ok, then I right click and save as and it saves correctly. But when I Import a json file (Import from Json Beta) and then save as.. it errors. And its not proberly saved. Opening and saving works but saving from imported json does not. @exelix11

    Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: ''System.Array' does not contain a definition for 'Count'' (ByamlFile.cs Line 603 and 641)
     
Loading...