marcrobledo / savegame-editors

A compilation of console savegame editors made with HTML5 technologies.
https://www.marcrobledo.com/savegame-editors/
Other
1.09k stars 227 forks source link

TOTK: Feature request: Add pins to map #183

Open tiehu opened 1 year ago

tiehu commented 1 year ago

Expected feature: The TOTK savegame editor can modify koroks seeds, visited locations, and defeated bosses in the game, and mark them as finished or mark locations on the in-game map, as is done in the BOTW savegame editor.

Sorry to bother you, but these features are great for saving time (especially the koroks seeds, of which there are so many). I would appreciate it if you could include these features in the editor.

PS: I've noticed that someone has already mentioned the related request in #164, but you said that a new issue should be created for the request.

metalsolid commented 1 year ago

Upvoting this ngl

marcrobledo commented 1 year ago

Marking these in map is the only feature I'm interested myself. So I will work on that for sure at some point. However, I'm playing and enjoying the game so it might take months until I can get some time to work on this.

...unless someone does the RE dirty work before and dumps the savegame hash table and korok locations. Then I should be able to port this feature from BOTW editor easily.

LiangNiang commented 1 year ago

Upvoting!

Foxbound256 commented 1 year ago

Someone has finished all koroks there's 1000. Anyway they could help with the korok thing here?

Shideravan commented 1 year ago

Upvoting too!

Shideravan commented 1 year ago

Also, there's more places that should be pinned now, such as caves, wells, lightroots, crystallized charges, bubbul gem, schematics, old maps, etc Wow this game has too much collectables lol

marcrobledo commented 1 year ago

Already starting to work on this ;-) Though don't expect an update on this anytime soon, still need to do a little bit more of research.

marcrobledo commented 1 year ago

...unless someone does the RE dirty work before and dumps the savegame hash table and korok locations. Then I should be able to port this feature from BOTW editor easily.

I noticed someone posted the hashes here, so the unlocking all koroks feature in BotW editor is also possible?

That's a zoom meet link. If it was really posted there, I can't read the older messages :-/

KrisCris commented 1 year ago

That's a zoom meet link. If it was really posted there, I can't read the older messages :-/

Oh no, please ignore that link, this is the correct one for the hashes: https://gbatemp.net/threads/zelda-tears-of-the-kingdom-152-shirne-120-tree-800-korok-save.633097/#post-10164724

marcrobledo commented 1 year ago

That's a zoom meet link. If it was really posted there, I can't read the older messages :-/

Oh no, please ignore that link, this is the correct one for the hashes: https://gbatemp.net/threads/zelda-tears-of-the-kingdom-152-shirne-120-tree-800-korok-save.633097/#post-10164724

Please remove that one if possible😂

Unfortunately, that's the hashed keys, what we need to make everything easier is the original key values. For example, in BOTW: MainField_Npc_HiddenKorokGround_3195731426 was 5205D39D The hash function was a simple crc32 using 0xedb88320 as the polynomial (which is indeed one of the most common used). So crc32('MainField_Npc_HiddenKorokGround_3195731426')==0x5205D39D. TOTK might use another polynomial (can't confirm yet).

And another thing... That list was probably extracted from GameData/GameDataList.Product.100.byml, which, from my little research, has all hashed keys (but sadly not the original keys :-( ). But that file includes probably everything in the savegame mixed up. That list from zestiva is probably mixing some korok values with others, as its length is 883 (it should be 800+100=900). So we cannot confirm it's correct nor complete. Setting all those values to 1 may lead to undesired changes in the savegame.

And anyway... Even if it was correct, that would only allow us to get the korok seeds instantly. What are we looking for is to add pins to the map so we can obtain korok seeds legitly.

I've got the coordinates already (which, in this case, it's exactly 900!), what I am missing now is the relationship between the coordinates and their boolean values in the hash table.

marcrobledo commented 1 year ago

Got some news! Latest commit (48d6adc) has a very simple pin to map functionality. Since we still don't have a relationship between the coordinates and the boolean flags, it will add all korok pins to map (independent of what Koroks you've found already) for now. This will change in a future but, for now, it already does the trick and will help a lot to start looking for those little guys!

CeruleanSky commented 1 year ago

Well hopefully somebody will tie things together, the most I've found is a little more info in the Banc\MainField*_Static.bcett.byml.zs files

For example J-4_Static.bcett.byml.zs has a location to release korok and this Hash/Placement ID is found in GameData/GameDataList.Product.100.byml:

Gyaml: Obj_LiftRockWhite_Korok_A_01
  Hash: !ul 6493604924579908631
  Phive:
    Placement: {ID: !ul 6493604924579908631}
  Rotate: [-0.0423994437, -0.0430219844, 0.0889328942]
  SRTHash: !u 0xcaf763f0
  Translate: [4165.50342, 455.113281, -63.2921638]
- Dynamic: {KorokLeftPlant: 0, KorokMask: 0, KorokRightPlant: 0, KorokSkinColor: 4}

Then right after that in the file there is this entry where the korok appears on the map after freed:

  Gyaml: Npc_HiddenKorokGround
  Hash: !ul 9839157124751407426
  IsPhysicsStable: true
  Phive:
    Placement: {ID: !ul 9839157124751407426}
  Rotate: [-1.56632353e-07, -0.0466161035, 2.38677899e-07]
  SRTHash: !u 0xaa5f45b6
  Translate: [4165.51123, 455.016449, -63.288044]

The above placement value is what appears in Banc\MainField\HiddenKorok\MainField.hiddenkorok.byml.zs

marcrobledo commented 1 year ago

Added pin to map for shrines and lightroots!

Foxbound256 commented 1 year ago

I just finished getting all koroks in the game. If it helps with anything let me know what you would need.

marcrobledo commented 1 year ago

@Karlos007 I've seen by coincidence you've filtered the valid korok seed flags. Amazing job. Do you mind if we use them in the editor?

Karlos007 commented 1 year ago

@Karlos007 I've seen by coincidence you've filtered the valid korok seed flags. Amazing job. Do you mind if we use them in the editor?

Yeah you can use them, It took some time but I wanted to discover the 83 invalid flags https://github.com/Karlos007/TotK-Mods/blob/main/TotK-Research.txt I put them at the begining of the file 100 carried 800 discovered and also the rest that do nothing.

Shideravan commented 1 year ago

@Karlos007 I've seen by coincidence you've filtered the valid korok seed flags. Amazing job. Do you mind if we use them in the editor?

Yeah you can use them, It took some time but I wanted to discover the 83 invalid flags https://github.com/Karlos007/TotK-Mods/blob/main/TotK-Research.txt I put them at the begining of the file 100 carried 800 discovered and also the rest that do nothing.

Wow Does this reasearch make possible to pin wells and autobuild schematics in the future too?

Also, in current version of the totk editor, doesn't seem possible to mark only the missing Koroks, just 3 sets of 300 of them. Is this a technical limitation or may be possible in future to set just the missing ones? Thank you for this awesome work!

KrisCris commented 1 year ago

Added pin to map for shrines and lightroots!

It would be awesome if it also adds Light of Blessing to player's inventory when the shrines are cleared.

marcrobledo commented 1 year ago

Added pin to map missing koroks!!!

Added pin to map for shrines and lightroots!

It would be awesome if it also adds Light of Blessing to player's inventory when the shrines are cleared.

That will come, but please give me some time 😅

Foxbound256 commented 1 year ago

Added pin to map for shrines and lightroots!

It would be awesome if it also adds Light of Blessing to player's inventory when the shrines are cleared.

You can also use the editor to add light of blessings to your key items

marcrobledo commented 1 year ago

Made it so it adds automatically korok seeds and light of blessing after setting korok and shrines to complete.

KrisCris commented 1 year ago

image

It seems right now Koroks x2 Pins are based on the destination locations, however, I think using the starting locations would be better, if it's possible ; )

marcrobledo commented 1 year ago

It seems right now Koroks x2 Pins are based on the destination locations, however, I think using the starting locations would be better, if it's possible ; )

I got the coordinates from the game files (which are indeed the seed icon that appears when you find a korok), so that's why they appear there.

In order to show the starting position icons, someone should compile the real starting coordinates manually and sort them correctly matching the game order. That sounds like a time consuming task.

marcrobledo commented 1 year ago

Added Yiga Schematics completionism features (both pin to map and unlock).

Next: semibosses locations.

KrisCris commented 1 year ago

In order to show the starting position icons, someone should compile the real starting coordinates manually and sort them correctly matching the game order. That sounds like a time consuming task.

Yeah sounds like a huge amount of work... I thought there would be a way to dump their spawn points from the game lol

marcrobledo commented 1 year ago

In order to show the starting position icons, someone should compile the real starting coordinates manually and sort them correctly matching the game order. That sounds like a time consuming task.

Yeah sounds like a huge amount of work... I thought there would be a way to dump their spawn points from the game lol

Of course, they are definitively in the game files. But I'm pretty sure they are scattered and not sorted like the icon coordinates.

KrisCris commented 1 year ago

In order to show the starting position icons, someone should compile the real starting coordinates manually and sort them correctly matching the game order. That sounds like a time consuming task.

Yeah sounds like a huge amount of work... I thought there would be a way to dump their spawn points from the game lol

Of course, they are definitively in the game files. But I'm pretty sure they are scattered and not sorted like the icon coordinates.

That makes sense! Btw can I request a feature: adding a limited amount of pins to the map, say 50 or 100 pins?

tiehu commented 1 year ago

It's good to see that the Koroks related features have been completed. I wondered if the same could be done for caves (and bubbulfrogs) and wells.

MonfGeiger commented 1 year ago

It's good to see that the Koroks related features have been completed. I wondered if the same could be done for caves (and bubbulfrogs) and wells.

i'd definitely like the frog pin function as well (also need to close out the request i created just now)

MagnesG commented 1 year ago

Pins for undefeated mini-bosses would also be appreciated, as medals are also here in this game.

Shideravan commented 1 year ago

It's good to see that the Koroks related features have been completed. I wondered if the same could be done for caves (and bubbulfrogs) and wells.

The game marks in the map the wells you'd visited, then probably it can be done the same way as the korok seeds (getting these mark locations)

jedinjapan commented 1 year ago

It may not be possible since the locations do not seem to be stored in the map coordinates, but a similar feature to pin sages wills would be great.

marcrobledo commented 1 year ago

Added bosses locations.

marcrobledo commented 1 year ago

Added caves, wells and bubbuls. Caves/bubbuls coordinates might be wrong though :-/ It could be great if anyone here can test it.

JonJaded commented 1 year ago

Added caves, wells and bubbuls. Caves/bubbuls coordinates might be wrong though :-/ It could be great if anyone here can test it.

I'll test it tonight. :)

Shideravan commented 1 year ago

Is there already a list with the location of all the chests? (well that's something I've always wanted in BotW editor too lol)

jedinjapan commented 1 year ago

They don't have the coordinates saved in the game unfortunately, but sites online have helpfully listed the exact in-game coordinates of the locations for Sage's Wills. https://game8.co/games/Zelda-Tears-of-the-Kingdom/archives/412269

Every single ambient treasure chest though... that would be a lot. I don't think there are enough pins. 300+ chests almost certainly exist.

Shideravan commented 1 year ago

They don't have the coordinates saved in the game unfortunately, but sites online have helpfully listed the exact in-game coordinates of the locations for Sage's Wills. https://game8.co/games/Zelda-Tears-of-the-Kingdom/archives/412269

Every single ambient treasure chest though... that would be a lot. I don't think there are enough pins. 300+ chests almost certainly exist.

Online sites do have the location of all the chests (all the fixed ones) https://www.zeldadungeon.net/tears-of-the-kingdom-interactive-map/

We also don't need to tag them all at once, so it's okay to have more than 300. Koroks even have 900. The secret is to tag only what isn't caught until you complete the pins. Then the user plays the game, takes several of them and uses again the editor to mark new ones. Works wonderfully for keeping track of koroks.

Shideravan commented 1 year ago

The biggest advantage of the implementation, in fact, involves being able to pin these chests and filter the ones you have already taken by the save editor.

When I refer to list, I mean a list of coordinates/locations in memory. Like what is being done at: https://github.com/Karlos007/TotK-Mods/blob/main/TotK-Research.txt Which has several things, including things that haven't been implemented yet (at least for now), but which doesn't have exactly the locations of the chests (at least for now too).

I'm sure that at least a list of coodinates exists, as many websites show all the chests in interactive maps.

jedinjapan commented 1 year ago

They don't have the coordinates saved in the game unfortunately, but sites online have helpfully listed the exact in-game coordinates of the locations for Sage's Wills. https://game8.co/games/Zelda-Tears-of-the-Kingdom/archives/412269 Every single ambient treasure chest though... that would be a lot. I don't think there are enough pins. 300+ chests almost certainly exist.

Online sites do have the location of all the chests (all the fixed ones) https://www.zeldadungeon.net/tears-of-the-kingdom-interactive-map/

We also don't need to tag them all at once, so it's okay to have more than 300. Koroks even have 900. The secret is to tag only what isn't caught until you complete the pins. Then the user plays the game, takes several of them and uses again the editor to mark new ones. Works wonderfully for keeping track of Koroks.

True. As you stated, there are plenty of sites listing the raw coordinates of the chest locations and items like the Sage's Wills. So there's a good chance if it is possible to convert those into the same format the in-game map uses, those could then be mappable to the in-game map as well.

Honestly incredible we've come so far in just a few weeks since release. Incredible work.

I think Sage's Will's might remain as a feature to be implemented this way. As well as any specific armor set locations if the editor wants to go that far.

Shideravan commented 1 year ago

Sage's Will locations (coordinates):

  1. -4470 2171 1254
  2. -3075 2152 0649
  3. -3781 1573 1238
  4. -3457 -0263 1940
  5. -2297 -0412 0895
  6. -4448 -2732 1420
  7. -1959 -1813 1141
  8. -0954 -1736 1007
  9. -0333 -2591 0895
  10. 0968 -3306 0847
  11. 1309 -3210 0460
  12. 2552 -3601 0895
  13. 4653 -3829 1066
  14. 1934 -1065 0962
  15. 1764 2267 0828
  16. 3811 1582 1145
  17. 1781 0982 1227
  18. 3379 0633 1291
  19. 2911 0525 0930
  20. 2993 -0252 0895
Shideravan commented 1 year ago

Hudson Signs:

-0758, 0238, 0018 0181, 0269, 0027 -0681, -0863, 0041 -0875, -1467, 0021 -1440, -1065, 0038 -0149, -2119, 0018 0669, 0006, 0005 0620, 0374, 0009 -0267, 0381, 0021 -0334, 1344, 0009 -1783, 0657, 0149 -2504, 0188, 0145 -2700, 0772, 0308 -1451, 1177, 0140 -1603, -0491, 0114 -1013, 2023, 0115 0824, -2327, 0120 0254, -3456, 0077 -0205, -3486, 0024 0105, -2673, -0014 0923, -0996, 0036 0389, -1276, 0014 2101, -1260, 0132 1594, -3470, 0060 1488, -0988, 0153 1970, -1897, 0023 2626, -2595, 0153 3358, -3493, 0037 2214, -3367, 0029 3141, -2139, 0063 -3321, 0505, 0170 -3134, 1223, 0218 -3558, 1548, 0137 -2676, -0426, 0009 -3381, -0218, 0068 -1870, 2323, 0237 -2209, 2928, 0390 -1609, 3338, 0243 -3255, 2570, 0447 -4113, 2757, 0025 -3613, 2186, 0144 2930, 0706, 0353 3208, 0129, 0136 3973, -0295, 0031 4294, 0578, 0275 2372, -0679, 0123 3228, -0656, 0000 4334, -0571, 0059 1710, 0094, 0047 3145, -1819, 0069 2674, -1723, 0040 4102, -1142, 0318 4651, -2337, 0055 -2396, -2159, 0268 -2088, -1951, 0139 -1799, -2616, 0159 -4106, -1388, 0454 -2757, -2261, 0033 -1075, -3350, 0156 -1607, -2247, -0016 -3439, -3122, 0055 -2964, -3793, 0030 1021, 3109, 0274 1980, 2654, 0458 1572, 2162, 0340 2267, 2315, 0520 2819, 3551, 0238 2573, 1101, 0136 1344, 0800, 0021 2094, 0215, 0016 1309, 1222, 0115 -1074, 2798, 0180 -0457, 3041, 0108 0492, 2938, 0177 2795, 2654, 0669 3872, 2474, 0053 4234, 2647, 0118 4086, 1872, 0097 3162, 1626, 0203 3421, 3524, 0209 4451, 3074, 0216

CeruleanSky commented 1 year ago

If you go to https://objmap-totk.zeldamods.org/ , click magnifying glass and search for "Sage's Will" you'll get a list of 20 chests.
By looking at network traffic you can see the url for the json format is "https://radar-totk.zeldamods.org/objs/Totk/?q=%22Sage%27s+Will%22&withMapNames=false&limit=2000" it has the positions and hash_id. I did find these hash_ids in the save file with a hex editor but there is probably more to it than just knowing them as all the hashes I've seen in the javascript files for the save editor they seem to be 8 bytes long, so they are probably converted some how or something else.

I copied it out though just in case it help, but it is probably better just to parse the json yourself into the format you need.

0xec4e0f5470bf9966 [1764.17, 933.06, -2266.85]
0xe5b43e117bc9ab49 [967.9, 952.26, 3306.12]
0x7bd64ac25cb9db77 [1309.22, 564.73, 3209.53]
0x6a008bda6563a12d [3379.45, 1395.97, -633.13]
0xf780f78786f1d2a0 [-4470.41, 1359.11, -2170.81]
0xac4e4eaf6407fa20 [-4447.59, 1525.34, 2732.09]
0x9592e71ee6dcfee7 [4652.54, 1171.18, 3829.07]
0x89191f3dcfc6077d [3810.99, 1250.06, -1581.71]
0xc66bccf9067079d5 [-954.14, 1111.9, 1735.55]
0x8cfa12597ab18f52 [1781.15, 1331.58, -981.56]
0xc6755fd547b2220c [-1959.23, 1245.79, 1813.13]
0x2a3350a404da8513 [2552.26, 1000.13, 3601.44]
0x6882417160977dca [-2297.41, 1000.13, 411.74]
0x1b11c0de5ee0af53 [-332.64, 1000.13, 2591.48]
0xd5313194bf5cdd08 [1933.78, 1066.83, 1064.56]
0x1812d5dd4ef8e713 [-3075.43, 753.51, -2151.92]
0xd23ea2eeae3538c4 [-3781.09, 1343.48, -1572.89]
0x750a5d848b97c180 [2910.59, 1035.44, -525]
0x1b8bf90dba5bd03d [2993.42, 1000.13, 251.78]
0xb201aaf76eaeb3d2 [-3456.83, 2044.56, 263.47]

By the way made that database using this github https://github.com/zeldamods/radar-totk/

Could be used for the other stuff as well like Hudson Signs.

Shideravan commented 1 year ago

If you go to https://objmap-totk.zeldamods.org/ , click magnifying glass and search for "Sage's Will" you'll get a list of 20 chests. By looking at network traffic you can see the url for the json format is "https://radar-totk.zeldamods.org/objs/Totk/?q=%22Sage%27s+Will%22&withMapNames=false&limit=2000" it has the positions and hash_id. I did find these hash_ids in the save file with a hex editor but there is probably more to it than just knowing them as all the hashes I've seen in the javascript files for the save editor they seem to be 8 bytes long, so they are probably converted some how or something else.

I copied it out though just in case it help, but it is probably better just to parse the json yourself into the format you need.

0xec4e0f5470bf9966 [1764.17, 933.06, -2266.85]
0xe5b43e117bc9ab49 [967.9, 952.26, 3306.12]
0x7bd64ac25cb9db77 [1309.22, 564.73, 3209.53]
0x6a008bda6563a12d [3379.45, 1395.97, -633.13]
0xf780f78786f1d2a0 [-4470.41, 1359.11, -2170.81]
0xac4e4eaf6407fa20 [-4447.59, 1525.34, 2732.09]
0x9592e71ee6dcfee7 [4652.54, 1171.18, 3829.07]
0x89191f3dcfc6077d [3810.99, 1250.06, -1581.71]
0xc66bccf9067079d5 [-954.14, 1111.9, 1735.55]
0x8cfa12597ab18f52 [1781.15, 1331.58, -981.56]
0xc6755fd547b2220c [-1959.23, 1245.79, 1813.13]
0x2a3350a404da8513 [2552.26, 1000.13, 3601.44]
0x6882417160977dca [-2297.41, 1000.13, 411.74]
0x1b11c0de5ee0af53 [-332.64, 1000.13, 2591.48]
0xd5313194bf5cdd08 [1933.78, 1066.83, 1064.56]
0x1812d5dd4ef8e713 [-3075.43, 753.51, -2151.92]
0xd23ea2eeae3538c4 [-3781.09, 1343.48, -1572.89]
0x750a5d848b97c180 [2910.59, 1035.44, -525]
0x1b8bf90dba5bd03d [2993.42, 1000.13, 251.78]
0xb201aaf76eaeb3d2 [-3456.83, 2044.56, 263.47]

By the way made that database using this github https://github.com/zeldamods/radar-totk/

Could be used for the other stuff as well like Hudson Signs.

I've changed my PR to implement Sage's Wish locations to use these converted coordinates. But I have no clue about how to convert these memory locations for a 8-byte standard.

marcrobledo commented 1 year ago
marcrobledo commented 1 year ago
marcrobledo commented 1 year ago
marcrobledo commented 1 year ago

At this point, I think everything has been done in this feature. Is it missing anything?

Asia81 commented 1 year ago
  • Flower Trail/Land on Target/Goal Ring (Race) koroks are now pinned at their starting position (instead of target)

At this point, I think everything has been done in this feature. Is it missing anything?

Adding unlocking all recipes (with all alternative recipes for each ones) would be nice also

inspectah88 commented 1 year ago
  • Flower Trail/Land on Target/Goal Ring (Race) koroks are now pinned at their starting position (instead of target)

At this point, I think everything has been done in this feature. Is it missing anything?

Don´t know if it´s possible, but quest giver locations would be nice.

Also Chests with Armor inside?

  • Added locations!

Does it mean icon locations like Crystal Refinery or Lookout Landing or written map locations like Temple of Time?