Zelda III: Hyrule Explorer
Zeldix :: Zelda III Hacking :: Hacks Database :: Finished
Page 1 of 3
Page 1 of 3 • 1, 2, 3
20161227
Zelda III: Hyrule Explorer
Patch Download:
http://www.romhacking.net/hacks/4399/
-------------------------------------------------------------------------
This is my first attempt at a hack (actually it is merely a modification) of A Link to the Past.
As you all know, ALttP enforces a very linear order of the dungeons (at least until you've played a large part of the game). This minimizes the exploration aspect to a large extend. The goal of this hack is to remove the linearity as much as possible, without changing anything substantial. In fact, I would very much prefer if the changes are completely unnoticeable if not invisible.
Obviously, it would not make sense to allow access to everything at any time. There are a few necessary "sync points" for the story: Link needs all pendants to get the Master Sword, to fight Aghanim, to transfer to the Dark World. Link needs all crystals to access Ganon's tower. Etc. I tried, however, to allow an as arbitrary as possible order to get the crystals and pendants, respectively.
Quite likely, someone has had this idea before. I could, however, not find a released hack.
So far, the
- Changes:
- These have screenshots and detailed descriptions. So, actually: Spoiler!
- Light World / Pendant order:
- The Pegasus Boots are in a chest in the bombable room behind Sahasrahla. He promises them to you for after you beat the Eastern Palace. But you can "borrow" them from his storage room early. In case you do, and return to him after you beat the Eastern Palace, he'll not mention the boots - He's a polite guy after all.
- The Pegasus Boots dialog now starts "You got" instead of "He gave" to reflect the above change.
- The Pegasus Boots alternative item (which you get from the chest if you have the boots already) is set to 100 rupees. The boots replace the 3 bombs in the middle. The 3 bombs are moved to the right replacing 50 rupees.
- The large stone blocking the entrance to Death Mountain is now a dashable pile.
- Remodeled the fence next to witch's hut to allow entrance to Zora's waterfall without the Power Glove.
- The Pegasus Boots are in a chest in the bombable room behind Sahasrahla. He promises them to you for after you beat the Eastern Palace. But you can "borrow" them from his storage room early. In case you do, and return to him after you beat the Eastern Palace, he'll not mention the boots - He's a polite guy after all.
- Dark World / Crystal order:
- The hammerable barrier on the bridge south of the pyramid is now "broken" (presumably by the mad bombing of the angry Hinox!?).
- The dark stones at the bird landing point in the desert are now light stones. Misery Mire can be entered without the Titan Mitts.
- The fence below Thieves' Town is remodeled. You can now enter Thieves' Town via jumping the digging game fence - but only after you paid the fee.
- Remodeled the fairy island to allow access to the Ice Palace with hammer or Titan Mitts.
- The hammerable barrier on the bridge leading to Turtle Rock is now partially replaced by dark stones. Hence, Turtle Rock can be reached (but not entered!) with hammer or Titan Mitts.
- The hammerable barrier on the bridge south of the pyramid is now "broken" (presumably by the mad bombing of the angry Hinox!?).
- Dark World / Dungeons:
I have some things left to change, which are probably trivial for you guys.
So, if anyone could give me some pointers for these...
- Questions:
Is it possible for Sahasrahla to have a different dialog depending on whether you already have the boots or not?(Problem solves itself: Elder does not mention the boots if you have them already. Actual problem of getting boots twice (if first from elder then from chest) is solved by having an alt chest item.)It seems, the digging game is closed if you don't have the Titan Mitts. Can this be changed?(This works as intended. The problem was likely my messed up save.)How to set-up a damaging pit next to the Digging Game (to allow access to Thieves' Town via hookshot / bomb jump)? (Needs a different solution. Only one overworld area can have damaging pits. I don't want to remove that status from area 05 (broken death mountain bridge).)(Not needed because of above point.)Should the ROM checksum be fixed?!(Yes/maybe. For the final version ...)
And some other things ...
- To-Do:
Witch's garden could be nicer...(Played with it. Actually, it blends in pretty good already.)- Title screen
I'd certainly appreciate if someone finds something that could be changed to further remove dungeon-order restrictions without removing riddles or the like. Also, if I made mistakes somewhere, please let me know. Thanks!
- md5 checksums:
- Code:
608c22b8ff930c62dc2de54bcd6eba72 original
d0b3f8fd5ae94955c904728007601ae0 ips patch v0.1
134f27a3ddec51b7fd51b9ddc1c50568 patched v0.1
ba12e71cf17f636295798a22193bc037 ips patch v0.2
1159249e3b917fe29c46cbf26086f6b4 patched v0.2
- Attachments
Last edited by SePH on Thu 23 Jul 2020 - 17:26; edited 7 times in total
eyeballkid- Since : 2016-12-26
Zelda III: Hyrule Explorer :: Comments
Re: Zelda III: Hyrule Explorer
- Code:
**It seems, the digging game is closed if you don't have the Titan Mitts. Can this be changed?
I don't have an answer, but if you're willing to try and work it out for yourself, download bsnes-plus and set a read breakpoint on address 7EF354, then try to enter the game, and it should trigger, then step through the next few instructions. I would expect the code looks something like this:
- Code:
lda $7EF354
cmp #$02
beq XXXX <or> bne XXXX
Now, open up the memory viewer and browse to the address of the beq or bne instruction. If it's a beq, the byte at that address will be a $F0, try replacing it with $80 (you can type it directly into the memory viewer). If it's bne, replace the byte $D0, as well as the one after it, with $EA $EA. Now hit run, and then try to enter the game again. If it works, congrats, you've just discovered your first asm patch.
Currently it is not so, since he reacts on the Pendant. So he will have a different dialog if you have it or not. I'm assuming this is unchanged. So you basically want to make him say another thing, which is ASM (and one other monologue should thus be used for this, presumably what is empty/unused in ALTTP).*Is it possible for Sahasrahla to have a different dialog depending on whether you already have the boots or not?
What qwerty said, since this is ASM and should be an easy fix for NOPing out the titan's mitt check.**It seems, the digging game is closed if you don't have the Titan Mitts. Can this be changed?
You need a 32x32 overworld tile and draw a 16x16 hole tiles on it. Then do a hex-fix for the holes to be damaging. The address for overworld damaging pits should be in the Compendium somewhere. The result will be similar to those pits in Parallel Worlds' forest area.How to set-up a damaging pit next to the Digging Game (to allow access to Thieves' Town via hookshot / bomb jump)?
No. That is trivial. But fixing it is a matter of seconds. So your call if you want to do this.Should the ROM checksum be fixed?!
I just tested this out and the digging game is Not based on what glove you have. Game is opened to play if: you have no glove, if you have a glove and if you have titan's mitt.**It seems, the digging game is closed if you don't have the Titan Mitts. Can this be changed?
Seems like the digging game is event based, at least when I hacked into the starting sram to start in a different mode (beginning= rain, pendant phase, crystal phase) the game was opened by default no matter which even I decided for.
But when starting normally and making a shortcut to the digging sprite, he was giving me: It's not my time, come back later.
This is most likely caused by the presence of a follower, even an invisible one. At the beginning of the game the repeating message from zelda is handled by an invisible "follower" which the digging game checks and won't allow you to play if you have one. the other invisible follower is attached to the player upon collection of the master sword, and is only used to play the "AAHGH" message when zelda is captured when you first leave the grove.
Thanks, qwertymodo, for the pointer to bsnes-plus. I actually just compiled it (running Linux, so no binaries). This looks much nicer than the snes9x debugger... Even if Puzzledude and superskuj suggest the Digging Game works differently, this will certainly be handy in the future!
Anyway, I'd like to understand what you proposed: Does 7EF354 hold the current state of the lifting ability? I should be looking for a read access to see when the game wants to know that state. In the beq/"equal" case, I would replace the values compared with? How would the bne/"not equal" case work? Assuming it had worked, how would I turn this into a permanent change to the ROM?
I just checked my notes again. And, sorry, I misremembered the Pegasus Boots problem. While it would be fun if Sahasrahla dropped a snarky remark on you borrowing the boots early, it is not needed: He'll actually say nothing at all about the boots, if you have them already after Eastern Palace. There's certain doom impending, so he's got more important matters to talk about, and skips right to the next mission. (I suppose there's a check "link has boots" for that dialog.)
Instead, the problem is: You get the boots twice if you go the regular route, i.e., get them from the elder after Eastern Palace, then open the chest in the back ... So, I guess, what is actually needed is an alternative chest content for the boots chest. Can this be done? From my understanding Hyrule Magic only allows some pre-defined items (like the lamp) to have alt-items...
From what you guys said, it sounds like I might have messed up my save when testing the Digging Game changes, and it should in principle work as intended. Is that correct?
Is there some kind of write-up for the damaging pits, somewhere?
Considering the ROM checksum, my question is more: Is it common to keep it wrong (like, to indicate a modified ROM), or is it best practice to fix it (so it is obvious that you patched the right base ROM)? But I suppose, it is a matter of taste ...
Anyway: Thank you all for the replies.
Anyway, I'd like to understand what you proposed: Does 7EF354 hold the current state of the lifting ability? I should be looking for a read access to see when the game wants to know that state. In the beq/"equal" case, I would replace the values compared with? How would the bne/"not equal" case work? Assuming it had worked, how would I turn this into a permanent change to the ROM?
I just checked my notes again. And, sorry, I misremembered the Pegasus Boots problem. While it would be fun if Sahasrahla dropped a snarky remark on you borrowing the boots early, it is not needed: He'll actually say nothing at all about the boots, if you have them already after Eastern Palace. There's certain doom impending, so he's got more important matters to talk about, and skips right to the next mission. (I suppose there's a check "link has boots" for that dialog.)
Instead, the problem is: You get the boots twice if you go the regular route, i.e., get them from the elder after Eastern Palace, then open the chest in the back ... So, I guess, what is actually needed is an alternative chest content for the boots chest. Can this be done? From my understanding Hyrule Magic only allows some pre-defined items (like the lamp) to have alt-items...
From what you guys said, it sounds like I might have messed up my save when testing the Digging Game changes, and it should in principle work as intended. Is that correct?
Is there some kind of write-up for the damaging pits, somewhere?
Considering the ROM checksum, my question is more: Is it common to keep it wrong (like, to indicate a modified ROM), or is it best practice to fix it (so it is obvious that you patched the right base ROM)? But I suppose, it is a matter of taste ...
Anyway: Thank you all for the replies.
7EF354 holds the current level of gloves in your inventory. You can test it with a cheat code.
7EF35400: No gloves
7EF35401: L1 gloves
7EF35402: L2 gloves
I looked into it a bit myself and yeah, there's no gloves check, it's something else. You should be able to make an alt option for the boots, I just can't recall where the data table is. Maybe I'll give it a try tonight when I start working on PW again.
ROM checksum, no real "standard" but I would correct it for any actual releases. WIP test versions I often won't bother, but it's nice to have as confirmation that the patch was applied correctly, if nothing else.
7EF35400: No gloves
7EF35401: L1 gloves
7EF35402: L2 gloves
I looked into it a bit myself and yeah, there's no gloves check, it's something else. You should be able to make an alt option for the boots, I just can't recall where the data table is. Maybe I'll give it a try tonight when I start working on PW again.
ROM checksum, no real "standard" but I would correct it for any actual releases. WIP test versions I often won't bother, but it's nice to have as confirmation that the patch was applied correctly, if nothing else.
More or less how've put it. 7EF354 is a RAM address which is detecting your glove type: either 00= no glove, 01= silver glove, 02= titan's mitt/golden glove. After saving this byte goes from RAM to SRAM, so that after you get the glove the value is actually saved.Anyway, I'd like to understand what you proposed: Does 7EF354 hold the current state of the lifting ability?
You can see one of the instructions with the hex editor. Go to hex address 328CD (unheadered ROM): code is:
AF 54 F3 7E C9 01
This is what qwerty was talking about. Here the game loads RAM address (ie load is AF), bytes 54 F3 7E are reversed for 7EF354, followed by the C9 which is compare to= value= 01. For this instruction the game is checking if you have a level one glove, however I haven't checked the rest (not a digging game obviously).
This is just an example on how this works.
These are just the branch opcodes: branch if equal and branch if not equal.I should be looking for a read access to see when the game wants to know that state. In the beq/"equal" case, I would replace the values compared with? How would the bne/"not equal" case work?
Kind of like this:
load address 7EF354 and compare the value at that address (let's say it is 00) and compare it to 01. Now branch= go forward for X amount of bytes if equal (ie 00 to 01) or if not equal (like in this example) etc. It is just a way to code.
With a hex editor. Here you can change either commands or values.Assuming it had worked, how would I turn this into a permanent change to the ROM?
Here the example:
hex address 39508,
AF 6D F3 7E 38 E9 08
Load RAM which controls indoor pits.
E9= subtract command. Then value 08= heart value.
Thus: if you fall into an indoor pit, subtract one heart.
Now change 08 (dec=08) to 10 (dec=16), this will subtract 2 hearts. 00 will reduce no heart. Write to much and it will go to negative value= bug.
Now look at what Conn did:
E9 08 change to A9 08 (with a hex editor);
instead of subtract= SUB, he gave load command A9= LDA,
A9 08 means load one heart. Thus: if you fall into the indoor pit, no matter the health, you loose all but one heart.
A9 00= sudden death with one fall into any indoor pit.
Since now the commands are: if you fall into the pit, load health value 00 hearts= death.
I hope you now see what can be done with ASM/HEX editing.
I don't think this is the problem. The game checks:Instead, the problem is: You get the boots twice if you go the regular route, i.e., get them from the elder after Eastern Palace, then open the chest in the back ... So, I guess, what is actually needed is an alternative chest content for the boots chest. Can this be done? From my understanding Hyrule Magic only allows some pre-defined items (like the lamp) to have alt-items...
-if no pendat (shoes should be irrelevant)= give nothing= load text to go into the palace
-if pendant+shoes and talk to the elder= NOP.
-if pendant+no shoes and talk to elder= elder gives shoes.
So this should auto correct itself. Elder will not give you shoes, if you have obtained pendat+shoes.
By the way: custom alternative chests are possible, but again with ASM.
From my testing the digging game should work once you can reach that area.From what you guys said, it sounds like I might have messed up my save when testing the Digging Game changes, and it should in principle work as intended. Is that correct?
From the compendium:Is there some kind of write-up for the damaging pits, somewhere?
"Overworld area which has holes that hurt You can change the area to which holes will hurt the player! currently it only allows you to choose one area 396DB, should be a 05 - Change to another area hex number."
This basically means go to hex address 396DB and change 05 (area value) to your area, for instance 00 for the forest in ALTTP. One one area is allowed to have damaging pits, others will just debug into Hoolihan room or land you indoors.
Once you set this byte, draw hole on this overworld area and they will be hurting holes.
I always kept it wrong on my old projects. I always correct it on my new projects. It looks better if you correct it (but that comes at the very end).Considering the ROM checksum, my question is more: Is it common to keep it wrong (like, to indicate a modified ROM), or is it best practice to fix it (so it is obvious that you patched the right base ROM)? But I suppose, it is a matter of taste ...
Thank you both for the ASM/HEX pointers. I think, I got it. Does not necessarily mean I can do it, though ;-) I'll go ahead and try to figure it out, and maybe come back with more concrete questions.
Maybe one more question: Why does area 05 have the damaging pits? There's no hole in that area?! Any drawback from removing that status from area 05?
Edit: Oh, I see. It's the hole in the bridge, right? I'll go ahead and try what happens without the status.
Edit: Hmm. I placed a hole (item 80) in area 68 (I simply replaced the bee just outside the Digging Game). Then I hex-edited 396DB from 05 to 68. The bridge in area 05 still gives damage, my new hole leads to the CH room.
I think you got me slightly wrong. You are absolutely right: The elder problem solves itself. That's what I meant in my last post. I simply misremembered where my problem was with the boots.
The actual problem is: You beat Eastern Palace, go to the elder and receive the boots. Then you open the chest. They contain the boots, too.
So, is there some place to read up on the custom alternative chests? I think, with that I'd be set to go on.
Sure, I also wouldn't bother for test releases ... This was just something I was wondering about.
Maybe one more question: Why does area 05 have the damaging pits? There's no hole in that area?! Any drawback from removing that status from area 05?
Edit: Oh, I see. It's the hole in the bridge, right? I'll go ahead and try what happens without the status.
Edit: Hmm. I placed a hole (item 80) in area 68 (I simply replaced the bee just outside the Digging Game). Then I hex-edited 396DB from 05 to 68. The bridge in area 05 still gives damage, my new hole leads to the CH room.
Puzzledude wrote:Instead, the problem is: You get the boots twice if you go the regular route, i.e., get them from the elder after Eastern Palace, then open the chest in the back ... So, I guess, what is actually needed is an alternative chest content for the boots chest. Can this be done? From my understanding Hyrule Magic only allows some pre-defined items (like the lamp) to have alt-items...
I don't think this is the problem. The game checks:
-if no pendat (shoes should be irrelevant)= give nothing= load text to go into the palace
-if pendant+shoes and talk to the elder= NOP.
-if pendant+no shoes and talk to elder= elder gives shoes.
So this should auto correct itself. Elder will not give you shoes, if you have obtained pendat+shoes.
By the way: custom alternative chests are possible, but again with ASM.
I think you got me slightly wrong. You are absolutely right: The elder problem solves itself. That's what I meant in my last post. I simply misremembered where my problem was with the boots.
The actual problem is: You beat Eastern Palace, go to the elder and receive the boots. Then you open the chest. They contain the boots, too.
So, is there some place to read up on the custom alternative chests? I think, with that I'd be set to go on.
Puzzledude wrote:Considering the ROM checksum, my question is more: Is it common to keep it wrong (like, to indicate a modified ROM), or is it best practice to fix it (so it is obvious that you patched the right base ROM)? But I suppose, it is a matter of taste ...
I always kept it wrong on my old projects. I always correct it on my new projects. It looks better if you correct it (but that comes at the very end).
Sure, I also wouldn't bother for test releases ... This was just something I was wondering about.
The damaging pit in area 05 is the hole in the bridge. When you fall down, you respawn back up and 1 heart is reduced.Why does area 05 have the damaging pits? There's no hole in that area?!
You guessed it.Edit: Oh, I see. It's the hole in the bridge, right? I'll go ahead and try what happens without the status.
I tested this out. Euclid was tracing on a headered ROM, and he gave an address which starts at the instruction. Pure luck that 200 bytes afterwards there is also a 05 byte.Any drawback from removing that status from area 05?
Edit: Hmm. I placed a hole (item 80) in area 68 (I simply replaced the bee just outside the Digging Game). Then I hex-edited 396DB from 05 to 68. The bridge in area 05 still gives damage, my new hole leads to the CH room.
So the actual address is 200 bytes earlier, plus the instruction byte= actual address is 394DC! I tested this out and it works. Once you change the byte at 394DC from 05 to 68, the pit in the bridge is Hoolihan (debug) room and the digging area 68 has damaging pits.
Calculated: 396DB -200 (because address was given if headered, +1 because of the C9= CMP instruction)= 394DC.
This should be easy to solve then. Change the content of the chest, so that it does not contain shoes, which you would otherwise give as the alternative.The actual problem is: You beat Eastern Palace, go to the elder and receive the boots. Then you open the chest. They contain the boots, too.
So, is there some place to read up on the custom alternative chests? I think, with that I'd be set to go on.
If you want a chest: shoes, but if shoes in invetory, then give 100 rupees. Change such a chest to only contain 100 rupees for instance.
On the other hand, it is also possible for the Elder to give you 100 rupees or whatever you choose, and chest thus contains the shoes, but then you can get shoes without finishing the palace, assuming you can reach the chest normally.
Last edited by Puzzledude on Thu 29 Dec 2016 - 7:30; edited 2 times in total
PS
396DB must remain 05! (obviously), since this is something completely different and has no connection with damage pits.
396DB must remain 05! (obviously), since this is something completely different and has no connection with damage pits.
Puzzledude wrote:I tested this out. Euclid was tracing on a headered ROM, and he gave an address which starts at the instruction. Pure luck that 200 bytes afterwards there is also a 05 byte.
Ha! OK. That makes sense.
Had there been no 05 at the wrong address, this would have been easier to spot.
Puzzledude wrote:The actual problem is: You beat Eastern Palace, go to the elder and receive the boots. Then you open the chest. They contain the boots, too.
So, is there some place to read up on the custom alternative chests? I think, with that I'd be set to go on.
This should be easy to solve then. Change the content of the chest, so that it does not contain shoes, which you would otherwise give as the alternative.
If you want a chest: shoes, but if shoes in invetory, then give 100 rupees. Change such a chest to only contain 100 rupees for instance.
On the other hand, it is also possible for the Elder to give you 100 rupees or whatever you choose, and chest thus contains the shoes, but then you can get shoes without finishing the palace, assuming you can reach the chest normally.
I am not sure whether I understand you here.
I want - as you say - a chest: shoes, but if shoes in inventory, then give 3 bombs.
I think, the solution is something like here: Parallel Worlds boomerang fix !?
Change the alternative for the boots from nothing (which triggers getting the boots again, right?) to something (the bombs) ...
After some heavy thinking, I actually realized why do you want a custom chest:
You want 2 scenarios of getting the shoes to coexist in one game. You actually never said that.
1st scenario:
-gain shoes from chest, go to palace for pendant, elder is on NOP, since pendant+shoes in inventory (it is a question how this will affect elder's monologues).
2nd scenario:
-go to palace for pendant, elder gives shoes, chest gives bombs.
It is easy to implement 1st scenario only or 2nd only having regular chests. But only if you want both scenarios to be possible in one game (which is probably the case) will you indeed need a custom coded chest.
You want 2 scenarios of getting the shoes to coexist in one game. You actually never said that.
1st scenario:
-gain shoes from chest, go to palace for pendant, elder is on NOP, since pendant+shoes in inventory (it is a question how this will affect elder's monologues).
2nd scenario:
-go to palace for pendant, elder gives shoes, chest gives bombs.
It is easy to implement 1st scenario only or 2nd only having regular chests. But only if you want both scenarios to be possible in one game (which is probably the case) will you indeed need a custom coded chest.
Puzz, it sounds like what he wants is scenario 1, but without having to go through the trouble of asm hacking the elder's behavior. This is fine. Put the boots in the chest, create an alternate treasure for the chest. If the player happens to skip the chest and get the boots from the elder, no harm, no foul, they just get something else from the chest instead. You could even reward the player for doing so by putting a nice treasure like 100 or 300 rupees as the alternate. Then, if the player gets the boots early, they don't get that nice bonus.
Alternate treasures are easy. There are no "custom coded chests", every treasure type can have an alternate. You just need to modify the table at 0x3B528, which is indexed by the primary item number, and then contains the item number of the alternate, so for item 75 (boots), all you need to modify is the single byte at 0x03B573, and set it to the value that corresponds to the item number in HM for the treasure you want (e.g. if you want the alternate treasure to be 100 rupees, that's 64, or 40 in hex, or 300 rupees is 70, which is 46 in hex). Also, be sure that the monologue is changed from "He gave you the boots" to something that will work for either the chest or if the elder gives them to you, so something like "You got the boots".
Alternate treasures are easy. There are no "custom coded chests", every treasure type can have an alternate. You just need to modify the table at 0x3B528, which is indexed by the primary item number, and then contains the item number of the alternate, so for item 75 (boots), all you need to modify is the single byte at 0x03B573, and set it to the value that corresponds to the item number in HM for the treasure you want (e.g. if you want the alternate treasure to be 100 rupees, that's 64, or 40 in hex, or 300 rupees is 70, which is 46 in hex). Also, be sure that the monologue is changed from "He gave you the boots" to something that will work for either the chest or if the elder gives them to you, so something like "You got the boots".
Thank you for clearifying that qwerty. I actually never used alternative treasures, since I thought custom coding was needed. Who knew you can make as many alternatives as there are items. Should be fun.Alternate treasures are easy. There are no "custom coded chests", every treasure type can have an alternate. You just need to modify the table at 0x3B528, which is indexed by the primary item number, and then contains the item number of the alternate, so for item 75 (boots), all you need to modify is the single byte at 0x03B573.
Knowing this we can really hype-up the randomizing community, since we can build some heavy complex scenarios/gameplay modifications. This really gives randomizing a new dimension.
I've never tried testing alternates for expendable items like arrows or rupees, so I don't know if those work at all, but they should work for every other treasure type. Treasures which have multiple levels will trigger the alternate at any level, so be careful about that (e.g. blue/red boomerang, mushroom/powder, shovel/flute, blue/red armor). I actually used that in some of my Parallel Worlds fixes, so both boomerang chests contain blue boomerangs, but the blue boomerang alternate treasure has been changed to red boomerang, and same for the armors. So to get the red you actually have to collect both, and for the armors, it doesn't matter which one you get first (you can't go back for the first boomerang).
Puzzledude wrote:After some heavy thinking, I actually realized why do you want a custom chest:
You want 2 scenarios of getting the shoes to coexist in one game. You actually never said that.
Yes! That's what I want :-)
I am sorry if I didn't state the problem clear enough.
On the bright side, now I also understand what you meant: If I'd decide for one of the two scenarios, both solutions are trivial.
qwertymodo wrote:Puzz, it sounds like what he wants is scenario 1, but without having to go through the trouble of asm hacking the elder's behavior. This is fine. Put the boots in the chest, create an alternate treasure for the chest. If the player happens to skip the chest and get the boots from the elder, no harm, no foul, they just get something else from the chest instead. You could even reward the player for doing so by putting a nice treasure like 100 or 300 rupees as the alternate. Then, if the player gets the boots early, they don't get that nice bonus.
Exactly!
Having a larger reward is also a nice idea. I thought of the bombs since those are the original contents of this chest.
qwertymodo wrote:Alternate treasures are easy. There are no "custom coded chests", every treasure type can have an alternate. You just need to modify the table at 0x3B528, which is indexed by the primary item number, and then contains the item number of the alternate, so for item 75 (boots), all you need to modify is the single byte at 0x03B573, and set it to the value that corresponds to the item number in HM for the treasure you want (e.g. if you want the alternate treasure to be 100 rupees, that's 64, or 40 in hex, or 300 rupees is 70, which is 46 in hex).
Awesome! That's exactly what I inferred from the "Parallel Worlds boomerang fix" thread.
qwertymodo wrote:Also, be sure that the monologue is changed from "He gave you the boots" to something that will work for either the chest or if the elder gives them to you, so something like "You got the boots".
Thanks for noting! The monologue is changed accordingly already. It's my second point in the changes list in the first post ;-)
Puzzledude wrote:Knowing this we can really hype-up the randomizing community, since we can build some heavy complex scenarios/gameplay modifications. This really gives randomizing a new dimension.
Depends... Isn't the randomization idea to generate a randomized version, play it, and never play it again? I don't mean this as a strict rule. But does one really play the same randomized ROM twice? Wouldn't you rather create a new one?
If there's no re-play, you'd never find the respective other contents of a particular chest, would you?
eyeballkid wrote:Puzzledude wrote:Knowing this we can really hype-up the randomizing community, since we can build some heavy complex scenarios/gameplay modifications. This really gives randomizing a new dimension.
Depends... Isn't the randomization idea to generate a randomized version, play it, and never play it again? I don't mean this as a strict rule. But does one really play the same randomized ROM twice? Wouldn't you rather create a new one?
If there's no re-play, you'd never find the respective other contents of a particular chest, would you?
It gives you the option of tying two items together, requiring you to get one before the other, but giving two options of where to find the first one. It's just another interesting option for randomizing.
I see your point. But for the randomization, I think, that does not make a difference...
Assume you always randomize before playing a new game - so no re-plays.
You found item X at place A. And item Y at place B. You'd never know that you could have found X at B and Y at A.
... and actually, tying together two items, enforcing the order they are found in, is less random ;-)
That said, there are probably a billion other nice things one could do with the possibility to enforce an order but allow different places.
Assume you always randomize before playing a new game - so no re-plays.
You found item X at place A. And item Y at place B. You'd never know that you could have found X at B and Y at A.
... and actually, tying together two items, enforcing the order they are found in, is less random ;-)
That said, there are probably a billion other nice things one could do with the possibility to enforce an order but allow different places.
eyeballkid wrote:I see your point. But for the randomization, I think, that does not make a difference...
Assume you always randomize before playing a new game - so no re-plays.
You found item X at place A. And item Y at place B. You'd never know that you could have found X at B and Y at A.
... and actually, tying together two items, enforcing the order they are found in, is less random ;-)
That said, there are probably a billion other nice things one could do with the possibility to enforce an order but allow different places.
I don't think it's so much of a "make the game more interesting to play more than once" kinda thing, it's probably more of a "make sure the game can actually be completed if randomized" kinda thing. I can see how the conditional second item in a chest could serve as a fail-safe in a number of scenarios. You would need that in a game such as this where not having the correct item means you have no where else to go with nothing to correct that aside from hacking or glitches.
SunGodPortal wrote:I don't think it's so much of a "make the game more interesting to play more than once" kinda thing, it's probably more of a "make sure the game can actually be completed if randomized" kinda thing. I can see how the conditional second item in a chest could serve as a fail-safe in a number of scenarios. You would need that in a game such as this where not having the correct item means you have no where else to go with nothing to correct that aside from hacking or glitches.
That's a good point!
But means less randomness ;-)
I remember reading that the LoZ1 randomizer somehow ensures the game stays beatable. Does the ALttP one do that too? The alt-items are certainly a nice tool for that.
eyeballkid wrote:... and actually, tying together two items, enforcing the order they are found in, is less random ;-)
In one sense it's less random, but that first item can be in twice as many places. You wouldn't do it to all of the items, and maybe wouldn't even always do it at all. It's simply one more variable to add into the mix. Even if you think it's less random, at least it can make things more interesting, if used properly.
Since we all agree on chest alt-items being an awesome thing, I wrote an editor for configuring the table, qwertymodo referred to. I hope that's easier than hex-editing it manually.
It's a Python script using Tkinter. I chose Tkinter as it is part of the Python standard library, so no additional GUI toolkit packages are needed. As a consequence, the GUI is pretty crappy looking ;-)
Maybe I should have sticked to the command line interface that I started to implement but then found too clunky. Anyway, the code is fairly clean but not perfect. At least, it works with Python 2 and 3 (I hope). It's the first time I used Tkinter. So, the GUI part is probably not great. (I usually prefer wx, but that would have meant additional packages.)
In principle, it would be easy to expand this into a bigger editor incorporating some known things that are usually done in an hex editor. The damaging-pits area would be an example... And probably plenty of other things from the "Single Codes collection". Would that be of interest?
Last edited by eyeballkid on Thu 5 Jan 2017 - 15:03; edited 3 times in total
It's a Python script using Tkinter. I chose Tkinter as it is part of the Python standard library, so no additional GUI toolkit packages are needed. As a consequence, the GUI is pretty crappy looking ;-)
Maybe I should have sticked to the command line interface that I started to implement but then found too clunky. Anyway, the code is fairly clean but not perfect. At least, it works with Python 2 and 3 (I hope). It's the first time I used Tkinter. So, the GUI part is probably not great. (I usually prefer wx, but that would have meant additional packages.)
In principle, it would be easy to expand this into a bigger editor incorporating some known things that are usually done in an hex editor. The damaging-pits area would be an example... And probably plenty of other things from the "Single Codes collection". Would that be of interest?
Last edited by eyeballkid on Thu 5 Jan 2017 - 15:03; edited 3 times in total
Page 1 of 3 • 1, 2, 3
Similar topics
» Zelda - Legends of Hyrule
» BS Zelda and BS Zelda Ancient Stone Tablets MSU 1
» Hyrule Add Ons
» I need some help with Hyrule Magic
» Bug in Hyrule Magic
» BS Zelda and BS Zelda Ancient Stone Tablets MSU 1
» Hyrule Add Ons
» I need some help with Hyrule Magic
» Bug in Hyrule Magic
Permissions in this forum:
You cannot reply to topics in this forum