Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TOTK: Feature request: Add pins to map #183

Open
tiehu opened this issue May 16, 2023 · 54 comments
Open

TOTK: Feature request: Add pins to map #183

tiehu opened this issue May 16, 2023 · 54 comments

Comments

@tiehu
Copy link

tiehu commented May 16, 2023

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
Copy link

Upvoting this ngl

@marcrobledo
Copy link
Owner

marcrobledo commented May 16, 2023

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
Copy link

Upvoting!

@Foxbound256
Copy link

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

@marcrobledo marcrobledo changed the title TOTK: Feature request: Completionism cheat TOTK: Feature request: Add pins to map May 21, 2023
@marcrobledo marcrobledo pinned this issue May 21, 2023
@Shideravan
Copy link
Contributor

Upvoting too!

@Shideravan
Copy link
Contributor

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
Copy link
Owner

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
Copy link
Owner

marcrobledo commented May 23, 2023

...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
Copy link

KrisCris commented May 23, 2023

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
Copy link
Owner

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
Copy link
Owner

marcrobledo commented May 23, 2023

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
Copy link
Contributor

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
Copy link
Owner

Added pin to map for shrines and lightroots!

@Foxbound256
Copy link

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

@marcrobledo
Copy link
Owner

@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
Copy link

@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
Copy link
Contributor

Shideravan commented May 31, 2023

@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
Copy link

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
Copy link
Owner

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
Copy link

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
Copy link
Owner

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

@KrisCris
Copy link

KrisCris commented Jun 1, 2023

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
Copy link
Owner

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.

@MonfGeiger
Copy link

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
Copy link

MagnesG commented Jun 4, 2023

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

@Shideravan
Copy link
Contributor

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
Copy link

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
Copy link
Owner

Added bosses locations.

@marcrobledo
Copy link
Owner

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

@JonJaded
Copy link

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
Copy link
Contributor

Shideravan commented Jun 10, 2023

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
Copy link

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
Copy link
Contributor

Shideravan commented Jun 11, 2023

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
Copy link
Contributor

Shideravan commented Jun 11, 2023

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
Copy link

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
Copy link
Contributor

Shideravan commented Jun 13, 2023

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
Copy link
Contributor

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
Copy link
Contributor

CeruleanSky commented Jun 21, 2023

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
Copy link
Contributor

Shideravan commented Jun 22, 2023

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
Copy link
Owner

  • Added old maps, skyview towers and chasms
  • Fixed caves and bubbuls once and for all
  • Changed strayed koroks so the pins point now to the strayed korok (and not the destination)

@marcrobledo
Copy link
Owner

  • Added locations!

@marcrobledo
Copy link
Owner

  • Added Sage's Will and Addison' signs

@marcrobledo
Copy link
Owner

  • 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?

@Asia81
Copy link

Asia81 commented Jul 17, 2023

  • 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
Copy link

inspectah88 commented Jul 19, 2023

  • 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?

  • Zonai Device Dispenser
  • Ancient Tablets
  • Dragon Tears
    from the top of my head.

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?

@tiehu
Copy link
Author

tiehu commented Jul 19, 2023

In the course of my testing, a question arose:
Even if the old map is set to found, its chests still appear in the world, and you need to open one of them to make all of the old map's treasure point appear on the in-game map.

@Asia81
Copy link

Asia81 commented Jul 19, 2023

  • 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?

* Zonai Device Dispenser

* Ancient Tablets

* Dragon Tears
  from the top of my head.

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?

"Locations" meant the text that appear on the map when you discover a place (like temple of time)

@JonJaded
Copy link

Also Chests with Armor inside?

yes this is one I'd love. Especially for the caves that have those special clothing chests in them.

Side quest/side adventure locations would also be great as well.

@inspectah88
Copy link

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

Did you ever look into adding pins for quest locations?
The Zelda Dungeon map has them:
https://www.zeldadungeon.net/tears-of-the-kingdom-interactive-map/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests