Changing price packs that enemy use
Zeldix :: Zelda III Hacking :: Requests
Page 1 of 1
Changing price packs that enemy use
Something I found out from my original kaizo hack was that...
And while we're at it, where can I edit the speed of the moldorm enemies? Their RNG movement would be great to have in a kaizo hack of mine (sequel) at double speed.
- Spoiler Alert:
- The WizzrobeSpawn overlord was abused by players to farm for heart refills when they spawn and attempt to ambush Link.
And while we're at it, where can I edit the speed of the moldorm enemies? Their RNG movement would be great to have in a kaizo hack of mine (sequel) at double speed.
Devan2002- Since : 2017-10-30
Re: Changing price packs that enemy use
Function 06/F955, as commented in my "Great Luck Prize Pack Counter" fix:
http://assassin17.brinkster.net/zelda3_patches.htm
or you could just, you know, hack the monster data. for how to do that:
https://gamefaqs.gamespot.com/snes/588436-the-legend-of-zelda-a-link-to-the-past/faqs/39556 -- Section 8
does that link look familiar?
http://assassin17.brinkster.net/zelda3_patches.htm
or you could just, you know, hack the monster data. for how to do that:
https://gamefaqs.gamespot.com/snes/588436-the-legend-of-zelda-a-link-to-the-past/faqs/39556 -- Section 8
does that link look familiar?
Re: Changing price packs that enemy use
I'm not sure if I'm reading this wrong or not:
This is on an English rom btw
I found out editing that byte caused the game to crash when loading the very beginning where the uncle leaves.
This is on an English rom btw
I found out editing that byte caused the game to crash when loading the very beginning where the uncle leaves.
Devan2002- Since : 2017-10-30
Re: Changing price packs that enemy use
To put it simple it said:
"Description: Prize pack dropped by monster
Base file address: 06B832"
But at 06B832, I saw (from 06B932-06B841):
"9D 60 0F B9 32 B6 9D E0 0B B9 25 B7 9D AA 0C B9"
Is this what it's suppose to be (and it's the same among my hack, an English rom modified with HM, an English rom unmodified by HM, and a base 1.0 JP rom)?
"Description: Prize pack dropped by monster
Base file address: 06B832"
But at 06B832, I saw (from 06B932-06B841):
"9D 60 0F B9 32 B6 9D E0 0B B9 25 B7 9D AA 0C B9"
Is this what it's suppose to be (and it's the same among my hack, an English rom modified with HM, an English rom unmodified by HM, and a base 1.0 JP rom)?
Devan2002- Since : 2017-10-30
Re: Changing price packs that enemy use
The only thing I'm confused with is:
"Format: 1 byte per monster (only the bottom nibble is used for the prize; top
nibble currently unknown)
Further info: 0 indicates Nothing is always dropped. 1-7 indicates prize pack
0-6. Any value beyond 7 may produce screwy results."
I don't know what the bytes connect prize packs to certain monsters.
"Format: 1 byte per monster (only the bottom nibble is used for the prize; top
nibble currently unknown)
Further info: 0 indicates Nothing is always dropped. 1-7 indicates prize pack
0-6. Any value beyond 7 may produce screwy results."
I don't know what the bytes connect prize packs to certain monsters.
Devan2002- Since : 2017-10-30
Re: Changing price packs that enemy use
Well Assassin is just not being talkative that's all, and is assuming you to read and learn, rather to be told and learn.
In his document he states that all addresses are for a HEADERED rom, which is not the standard but ok. So you are not looking at the right spot. 6B832 if headered is actually 6B632 if not headered, so your code is
83 96 84 80 80 80 80 80 02 00 02 80 A0 83 97 80 80 94 91 07 00
etc and is FF long, since it is otherwise listed that there is one byte per "monster", but not explicitly stated that there are FF sprites (not really monsters) since some sprites are just sprites who are not attacking you.
It is also not listed in the document that the sprite 00 covers the first byte, so the value 83 and so on, sprite 01 is 96 and so on. So it is not alphabetical, since sprite 00 is Raven and 01 is vulture (you can see this with Hyrule Magic).
Also not really the correct terminology with the "bottom and top nibble". What is meant is actually the high and low byte ie the left and right digit of a byte. So he means to look only at the right digit, so 83, look only 3 and not 8. This is self explanatory otherwise since 80 is obviosuly corresponding to value 0.
So lets take the Knight sprite, which is the first enemy-sprite you see in the game. If you go to Hyrule Magic and to room 85 and click on the sprite, it says SPR=4B. So the Knight is 4B. Now you go to 6B832 (if header) is 6B632 if no header. And you select the hex block 4B. But since you started with 0, the next byte is your byte, which is 91, ie right/low/bottom digit/nibble is 1, ie Knight is prize pack 1.
No to view the pack (which is 8 prizes) you need to go to another address, which is 037C72 if headered (037A72 if no header). And the code is D8 D8 D8 D9 D8 D8 D8 D9, so 3x heart, green rupee, 3x heart, green rupee. You can re-set this to heart, green rupee, blue rupee, red rupee, arrows, bombs, etc, by choosing values from D8 to E3 in hex thus 12 values. There are 7 packs and thus the hex block is 38 in hex long (or 8x7 in dec).
And finally the Probability of the drop. This is set at the third address, 37C5C if headered (37A5C if no header). Here the block is only 7 bytes long, 1 byte for one pack. 01 means probability of drop is 50%, but 00 means probability of drop is 100%.
So let's test this: sprite 4B= knight is thus at 6B632+4B= 6B67D (if no header), byte is 91, right digit is 1, ie pack 1. At 37A72 (no header) we set all 8 bytes to DA (blue rupee), since the code starts with pack 1. Then go to 37A5C and first byte is for pack 1, so first byte is 01, change to 00 for instance. Now start a new game (do not load save states! or previously created files), go to uncle and defeat the 2 green knight. They will always drop a blue rupee. It works.
Your case: I think you want WizzrobeSpawn not drop hearts. This is even easier, since you just need to set the pack to be 0, which is always no prize.
But you have a complex sprite. It hex value is 115. While this is correct, you should know, that this sprite controls other sprites, which is wizzrobes. So your actual sprite to edit is 9B= wizzrobe, ie 6B632+9B= 6B6CD (if no header), ie byte 11. So prize pack is 1, ie 50% of drop and if drop almost always heart drop. Now just change 11 to 10, ie pack 0, ie always no drop. Result is: no wizzrobe or wizzrobe spawn ever drops anything.
For fun: try this (if you want it Christos-Owen-Kaizo). Leave the 11 byte for wizzrobe and 91 for knight, but go to 37A72 and change D8 D8 D8 D9 D8 D8 D8 D9 into 79 79 79 79 79 79 79 79 and at 37A5C to 00. Now anytime you defeat a green knight soldier it will spawn a swarm of bees with 100% certainty.
You can also troll the player. Go to 37A72 and change D8 D8 D8 D9 D8 D8 D8 D9 into 4B 4B 4B 4B 4B 4B 4B 4B and at 37A5C to 00. Now anytime you defeat a green knight soldier it will spawn a green knight soldier with 100% certainty. So basically the undefeatable green soldier knight. It's fun to test these options actually. So nice for Assassin to find all these addresses.
In his document he states that all addresses are for a HEADERED rom, which is not the standard but ok. So you are not looking at the right spot. 6B832 if headered is actually 6B632 if not headered, so your code is
83 96 84 80 80 80 80 80 02 00 02 80 A0 83 97 80 80 94 91 07 00
etc and is FF long, since it is otherwise listed that there is one byte per "monster", but not explicitly stated that there are FF sprites (not really monsters) since some sprites are just sprites who are not attacking you.
It is also not listed in the document that the sprite 00 covers the first byte, so the value 83 and so on, sprite 01 is 96 and so on. So it is not alphabetical, since sprite 00 is Raven and 01 is vulture (you can see this with Hyrule Magic).
Also not really the correct terminology with the "bottom and top nibble". What is meant is actually the high and low byte ie the left and right digit of a byte. So he means to look only at the right digit, so 83, look only 3 and not 8. This is self explanatory otherwise since 80 is obviosuly corresponding to value 0.
So lets take the Knight sprite, which is the first enemy-sprite you see in the game. If you go to Hyrule Magic and to room 85 and click on the sprite, it says SPR=4B. So the Knight is 4B. Now you go to 6B832 (if header) is 6B632 if no header. And you select the hex block 4B. But since you started with 0, the next byte is your byte, which is 91, ie right/low/bottom digit/nibble is 1, ie Knight is prize pack 1.
No to view the pack (which is 8 prizes) you need to go to another address, which is 037C72 if headered (037A72 if no header). And the code is D8 D8 D8 D9 D8 D8 D8 D9, so 3x heart, green rupee, 3x heart, green rupee. You can re-set this to heart, green rupee, blue rupee, red rupee, arrows, bombs, etc, by choosing values from D8 to E3 in hex thus 12 values. There are 7 packs and thus the hex block is 38 in hex long (or 8x7 in dec).
And finally the Probability of the drop. This is set at the third address, 37C5C if headered (37A5C if no header). Here the block is only 7 bytes long, 1 byte for one pack. 01 means probability of drop is 50%, but 00 means probability of drop is 100%.
So let's test this: sprite 4B= knight is thus at 6B632+4B= 6B67D (if no header), byte is 91, right digit is 1, ie pack 1. At 37A72 (no header) we set all 8 bytes to DA (blue rupee), since the code starts with pack 1. Then go to 37A5C and first byte is for pack 1, so first byte is 01, change to 00 for instance. Now start a new game (do not load save states! or previously created files), go to uncle and defeat the 2 green knight. They will always drop a blue rupee. It works.
Your case: I think you want WizzrobeSpawn not drop hearts. This is even easier, since you just need to set the pack to be 0, which is always no prize.
But you have a complex sprite. It hex value is 115. While this is correct, you should know, that this sprite controls other sprites, which is wizzrobes. So your actual sprite to edit is 9B= wizzrobe, ie 6B632+9B= 6B6CD (if no header), ie byte 11. So prize pack is 1, ie 50% of drop and if drop almost always heart drop. Now just change 11 to 10, ie pack 0, ie always no drop. Result is: no wizzrobe or wizzrobe spawn ever drops anything.
For fun: try this (if you want it Christos-Owen-Kaizo). Leave the 11 byte for wizzrobe and 91 for knight, but go to 37A72 and change D8 D8 D8 D9 D8 D8 D8 D9 into 79 79 79 79 79 79 79 79 and at 37A5C to 00. Now anytime you defeat a green knight soldier it will spawn a swarm of bees with 100% certainty.
You can also troll the player. Go to 37A72 and change D8 D8 D8 D9 D8 D8 D8 D9 into 4B 4B 4B 4B 4B 4B 4B 4B and at 37A5C to 00. Now anytime you defeat a green knight soldier it will spawn a green knight soldier with 100% certainty. So basically the undefeatable green soldier knight. It's fun to test these options actually. So nice for Assassin to find all these addresses.
Puzzledude- Since : 2012-06-20
Re: Changing price packs that enemy use
Thanks for the explanation, knowing this, I might even find other ways to troll the player in my sequel kaizo hack. I can see many more possibilities for something hilarious.
Btw, what value would Viterous's eye and Arrghus's fuzz be located at? I checked their hex values in HM and tried to set them to zero, but they kept dropping beamo statues(I was trying to make every enemy drop beamos 100% of the time, the 100% was working as planned, and I had the beamos hex value correct, but I can't seem to stop them from dropping beamos upon death).
Btw, what value would Viterous's eye and Arrghus's fuzz be located at? I checked their hex values in HM and tried to set them to zero, but they kept dropping beamo statues(I was trying to make every enemy drop beamos 100% of the time, the 100% was working as planned, and I had the beamos hex value correct, but I can't seem to stop them from dropping beamos upon death).
Devan2002- Since : 2017-10-30
Re: Changing price packs that enemy use
No idea, where your problem is. Vitreous is sprite BD, so at 6B6EF, and this is already byte 00, so no prize drop from Vitreous sprite. Arguss is complex. Primary sprite is 8C and also 13x sprite Arghuss Fuzz (ie the strange spheres around him). Arghus is 8C, and the spheres are 8D, so at 6B6BE and 6B6BF, both bytes are 40 00, thus also already prize 0, so no reward for both.
Making them to drop beamos just means to set all three bytes from 00 40 00, to for instance 01 41 01, and then change the prize packs to 61 (8times) and then the probability to 00, ie 100%. But now all sprites with pack 1 will drop beamos, not just these 2 bosses. Terrible idea though, since you will surely have a sprite overflow on screen and way too much enemies for the game to be playable.
Making them to drop beamos just means to set all three bytes from 00 40 00, to for instance 01 41 01, and then change the prize packs to 61 (8times) and then the probability to 00, ie 100%. But now all sprites with pack 1 will drop beamos, not just these 2 bosses. Terrible idea though, since you will surely have a sprite overflow on screen and way too much enemies for the game to be playable.
Puzzledude- Since : 2012-06-20
Re: Changing price packs that enemy use
That's why I was looking to see how to fix it so every enemy except those 2 particular sprites dropped beamos.
Also, are enemies that typically have no prize pack (keese, wallmasters, bees) always forced to not drop stuff?
Also, are enemies that typically have no prize pack (keese, wallmasters, bees) always forced to not drop stuff?
Devan2002- Since : 2017-10-30
Re: Changing price packs that enemy use
well, i do discuss the 0-FFh range in Section 6's intro (then mention it briefly in Section 8's).etc and is FF long, since it is otherwise listed that there is one byte per "monster", but not explicitly stated that there are FF sprites (not really monsters) since some sprites are just sprites who are not attacking you.
i state in the very first section of the guide:It is also not listed in the document that the sprite 00 covers the first byte, so the value 83 and so on, sprite 01 is 96 and so on. So it is not alphabetical, since sprite 00 is Raven and 01 is vulture (you can see this with Hyrule Magic).
"The monsters are listed in the order in which their stat blocks are located in
the ROM. It's not like alphabetization would be realistic anyway, as there are
many foes whose English names are either unknown or subjective. And remember,
Ctrl+F conquers all."
given that Enemy #0 is listed first in Section 6 (and Enemy #01 second, etc, etc), and the first quoted sentence, it should be exceedingly clear that Enemies #0 and #1 would be first in the ROM data as well.
sure it is. a nibble is part of a byte. saying "high byte" or "low byte" when the information is already being presented in bytes would be nonsense. now, if the info were being presented in 16-bit words, then "high byte" and "low byte" would make sense.Also not really the correct terminology with the "bottom and top nibble". What is meant is actually the high and low byte ie the left and right digit of a byte.
Re: Changing price packs that enemy use
There's a tool by superskuj that allows us to painlessly edit the enemies prize packs...it was released a while back, here: https://www.zeldix.net/t1254-zelda-3-sprite-editor
All the sprites can drop any sprites in the game.
All the sprites can drop any sprites in the game.
Floki- Since : 2012-06-19
Similar topics
» Where do I fix the enemy sheet in hex editor?
» enemy sprite data
» The flying floor tiles enemy to be less annoying!
» editing enemy damage class weaknesses/immunities
» MD+ / MSU-MD Wishlist Audio Packs
» enemy sprite data
» The flying floor tiles enemy to be less annoying!
» editing enemy damage class weaknesses/immunities
» MD+ / MSU-MD Wishlist Audio Packs
Zeldix :: Zelda III Hacking :: Requests
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum