Changing price packs that enemy use

Go down

Changing price packs that enemy use Empty Changing price packs that enemy use

Post by Devan2002 on Mon 27 May 2019 - 10:47

Something I found out from my original kaizo hack was that...
Spoiler Alert:
The WizzrobeSpawn overlord was abused by players to farm for heart refills when they spawn and attempt to ambush Link.
...so I was wondering where in the game's code determines what price pack an enemy drops from (non-stunned, non-frozen hammer death, and not dashed into).

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
Devan2002

Changing price packs that enemy use Image213

Since : 2017-10-30

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by assassin17 on Wed 29 May 2019 - 2:08

Function 06/F955, as commented in my "Great Luck Prize Pack Counter" fix:

[You must be registered and logged in to see this link.]

or you could just, you know, hack the monster data.  for how to do that:

[You must be registered and logged in to see this link.] -- Section 8

does that link look familiar? Razz
assassin17
assassin17

Changing price packs that enemy use Image111

Since : 2015-03-14

http://assassin17.brinkster.net/

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Devan2002 on Thu 30 May 2019 - 19:26

I'm not sure if I'm reading this wrong or not:
[You must be registered and logged in to see this image.]

This is on an English rom btw
[You must be registered and logged in to see this image.]

I found out editing that byte caused the game to crash when loading the very beginning where the uncle leaves.
Devan2002
Devan2002

Changing price packs that enemy use Image213

Since : 2017-10-30

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by assassin17 on Thu 6 Jun 2019 - 14:49

neither of your images loads.  it's Error 403 Forbidden.
assassin17
assassin17

Changing price packs that enemy use Image111

Since : 2015-03-14

http://assassin17.brinkster.net/

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Devan2002 on Fri 7 Jun 2019 - 10:17

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)?
Devan2002
Devan2002

Changing price packs that enemy use Image213

Since : 2017-10-30

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by assassin17 on Sat 8 Jun 2019 - 1:27

read the first 2 paragraphs of Section 8. Razz
assassin17
assassin17

Changing price packs that enemy use Image111

Since : 2015-03-14

http://assassin17.brinkster.net/

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Devan2002 on Sat 8 Jun 2019 - 6:14

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.
Devan2002
Devan2002

Changing price packs that enemy use Image213

Since : 2017-10-30

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Puzzledude on Sat 8 Jun 2019 - 10:59

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.
Puzzledude
Puzzledude

Changing price packs that enemy use Image213

Since : 2012-06-20

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Devan2002 on Sat 8 Jun 2019 - 14:29

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).
Devan2002
Devan2002

Changing price packs that enemy use Image213

Since : 2017-10-30

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Puzzledude on Sat 8 Jun 2019 - 18:49

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.
Puzzledude
Puzzledude

Changing price packs that enemy use Image213

Since : 2012-06-20

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Devan2002 on Sat 8 Jun 2019 - 19:30

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

Changing price packs that enemy use Image213

Since : 2017-10-30

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by assassin17 on Sat 8 Jun 2019 - 19:43

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.
well, i do discuss the 0-FFh range in Section 6's intro (then mention it briefly in Section 8's).

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).
i state in the very first section of the guide:
"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.

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.
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.
assassin17
assassin17

Changing price packs that enemy use Image111

Since : 2015-03-14

http://assassin17.brinkster.net/

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by SePH on Sat 8 Jun 2019 - 20:08

There's a tool by superskuj that allows us to painlessly edit the enemies prize packs...it was released a while back, here: [You must be registered and logged in to see this link.]

All the sprites can drop any sprites in the game.
SePH
SePH

Changing price packs that enemy use Image212

Since : 2012-06-19

Back to top Go down

Changing price packs that enemy use Empty Re: Changing price packs that enemy use

Post by Sponsored content


Sponsored content


Back to top Go down

Back to top


 
Permissions in this forum:
You cannot reply to topics in this forum