phst-randomizer / ph-randomizer

Randomizer for The Legend of Zelda: Phantom Hourglass
GNU General Public License v3.0
27 stars 0 forks source link

New setting: Add dig spot visuals to "hidden" dig spots #374

Open mike8699 opened 11 months ago

mike8699 commented 11 months ago

An optional randomizer setting that adds a visual cue on the spots to dig that aren't obvious (like on Maze Island)

NQNStudios commented 7 months ago

This sounds like it might be a good first issue. I'm guessing it would take the form of a base ROM patch. Are the level maps in the game, despite rendering as 3D, represented as tile maps where you would just change the tiles at the right coordinates to be the funky "dig here" tile? Is there tooling for inspecting the tile maps in the rom and generating patches?

I'm re-playing the game vanilla to remember everything I forgot since the only time I played it was right when the game came out. So far I've encountered one secret dig spot, which is the intersection of the stone tablets on Molida Island. Can someone with more knowledge make a checklist of all such spots?

NQNStudios commented 7 months ago

also on the island with the hideaway dig spot, it looks like there must be another hidden dig spot that lets you drop down for this chest:

unnamed

But I haven't found it yet.

NQNStudios commented 7 months ago

Well the closest I've come so far to figuring out how maps are represented is this:

https://kuribo64.net/board/thread.php?pid=79806#79806

Apparently it's not as simple as an array of tiles.

mike8699 commented 7 months ago

I think you're on the right track, it's highly likely that this is something controlled by the ZMB files. If I had to guess, it's probably a flag on the actor (each dig spot has an actor entry in the "NPCA" section of a ZMB file, with the id DGTG).

As for how maps are represented - there's still some unknowns, but the TLDR is you can use this script https://github.com/phst-randomizer/ph-randomizer/blob/main/scripts/generate_maps.py to generate a rough 2D image of a map's layout, including all the map objects and NPC actors.

For the purposes of this specific issue as it relates to the randomizer though, it's probably fairly straightforward to do once we figure out how the "dig here" tile is rendered (which I suspect is a flag on the DGTG object, or something to that effect). It's just a matter of priorities; we still don't have a fully functional item randomizer, so things like this which are more "nice to have" than "required" have been relegated to the backlog. That being said, if you are interested in pursuing this yourself, I'm happy to provide some more concrete pointers about how the dig spot "actors" work and how to integrate a patch for this into the randomizer.

mike8699 commented 7 months ago

also on the island with the hideaway dig spot, it looks like there must be another hidden dig spot that lets you drop down for this chest:

But I haven't found it yet.

That one is located right after the sun key door; we have that encoded in the logic here. Here's a timestamped link to a youtube playthrough showing it - https://youtu.be/TPQg_ydApmU?feature=shared&t=805

mike8699 commented 7 months ago

Oh whoops, that's actually a different chest. Hmm, I'll have to double check that we have this in the logic...