(Link to AcmlmWiki) Offline: thank ||bass
Register | Login
Views: 13,040,846
Main | Memberlist | Active users | Calendar | Chat | Online users
Ranks | FAQ | ACS | Stats | Color Chart | Search | Photo album
05-05-24 09:55 PM
0 users currently in ROM Hacking.
Acmlm's Board - I3 Archive - ROM Hacking - Bosses Drop Heart Pieces -- Zelda 3 ASM Hack New poll | |
Pages: 1 2Add to favorites | Next newer thread | Next older thread
User Post
Reshaper256

190


 





Since: 11-17-05
From: United States

Last post: 6329 days
Last view: 6285 days
Posted on 05-25-06 06:16 PM Link | Quote
Hey, I recently completed a small hack for Zelda 3 which changes all the heart *containers* dropped by bosses into heart *pieces*. While I've tested this hack a lot myself, I have concerns that the way I've managed to get the pendants/crystals to actually fall after collecting the heart piece may cause other heart pieces in the game to *reappear* after getting them and leaving the room. I have tested this myself, and haven't yet found a situation in which this actually occurs - but I really don't understand why this problem isn't coming up, if I understand how the SRAM is supposed to work. I'm posting this here if anyone is bored/curious and wants to try it out - and so I can get some feedback on any bugs I've missed and whatnot.

So enough said, I guess...

You can download it here: bosshearts.zip

You can download the most recent version here: bossheartsv11.zip

I've included four different versions you can apply in the above ZIP file: ASM headerless, ASM headered, IPS headerless, and IPS headered. Just go to the directory that suits you best, and apply whatever one you like, depending on your ROM (headered/headerless) - they're all the same hack, just different versions of patches for your convenience.

edit: New version of the hack - now minibosses don't drop heart pieces, and I'm sure that heart pieces won't start reappearing after you collect them.


(edited by Reshaper256 on 05-27-06 10:41 PM)
Deleted User
Banned


 





Since: 05-08-06

Last post: None
Last view: 6286 days
Posted on 05-25-06 06:57 PM Link | Quote
How long did this take?
spel werdz rite









Since: 11-19-05

Last post: 6287 days
Last view: 6285 days
Posted on 05-25-06 07:36 PM Link | Quote
If you could find a way so that the bosses don't drop heart containers after you beat them once, that would be nice!
noha420

Paragoomba








Since: 05-17-06

Last post: 6287 days
Last view: 6337 days
Posted on 05-25-06 09:44 PM Link | Quote
Always cool, thanks for sharing. Are you going to do more work on this?
Reshaper256

190


 





Since: 11-17-05
From: United States

Last post: 6329 days
Last view: 6285 days
Posted on 05-25-06 11:44 PM Link | Quote
Originally posted by Phinsfan
How long did this take?
About a day, mostly because I didn't have any savestates and had to actually play through the game to get to all the bosses. Of course, this isn't a very complicated hack. It was pretty easy to locate the values that control what item is dropped by each boss - actually most of them are the *same* value, and is tied into the 'exploding' boss death routine. The only hard part was really determining what actually causes the pendant/crystal to drop, which turned out to be in the code for the heart container. The code for the heart container sets bit 7 of $0403 in RAM - and when this bit is set, the game knows that the boss has been defeated, the heart container has been picked up, and it needs to drop the pendant/crystal. I altered some of the code for the heart *piece* so that it also sets that bit when it is collected, causing the treasure to fall.

Originally posted by spel werdz rite +
If you could find a way so that the bosses don't drop heart containers after you beat them once, that would be nice!
Do you mean making it so bosses reappear in the boss-rooms even after you beat them, so you can fight them again - but also so that you would only receive a heart and pendant/crystal the first time you won the fight? That's an interesting thought... I'll store that one away.

Originally posted by noha420
Always cool, thanks for sharing. Are you going to do more work on this?
Yes, I actually want to try to make a hack that would allow *any* boss to drop *any* item you wanted it to. That would be many times more complicated, however - this was a very simple hack, as you can tell if you go in and look at the ASM file.
Euclid



 





Since: 11-17-05
From: Australia
hmm...

Last post: 6292 days
Last view: 6286 days
Posted on 05-25-06 11:55 PM Link | Quote
Regarding making sure the mid bosses dont' drop hearts, make the kill boss again header work for all dungeons, currently it's hardcoded to the last dungeon, and it only requires the nop of a branch to make it work for all.
Ninetales
banned by request


 





Since: 11-17-05
From: Gone.

Last post: 6286 days
Last view: 6286 days
Skype
Posted on 05-26-06 10:53 AM Link | Quote
Would it have been easier to simply change the code for the heart container to make it act like a heart piece, but with the added code needed to drop the crystal? It would (I think) alleviate the problem of other heart pieces reappearing if they were different sprites altogether.

--Kamek77
Reshaper256

190


 





Since: 11-17-05
From: United States

Last post: 6329 days
Last view: 6285 days
Posted on 05-26-06 02:48 PM Link | Quote
It wouldn't have been easier, but yeah, I also had that idea when starting the hack. The problem I had with doing it that way is that it keeps you from using heart containers elsewhere in the game (unless you went in and changed the heart *piece* code into a heart container as well...) but like a said, this was pretty easy to do.

All this hack does is change the items dropped by the bosses to heart pieces, and makes it so the heart pieces still cause the treasure to drop - and actually I've went back in and fixed what I *thought* could cause heart pieces to reappear, so that now I'm sure they won't. It was actually a simple oversight - when I first changed the values that are written to $0403, I didn't really know why it worked, just that it did. I changed them from #$40 (setting bit 6) and #$20 (setting bit 5), both to #$80 so they would always set bit 7 and the treasure would drop. Now that I understand that that's why it worked, I went in and changed it so that they set the "old" bits they were supposed to, along with bit 7 - so I don't think the whole 'heart pieces reappearing' thing will be a problem anymore.

Before I post an updated version of the hack, however, I also want to take care of the biggest problem concerning this hack, which is that it allows the "mini-bosses" in Ganon's Tower to drop heart pieces, meaning you could go back in and fight them repeatedly, and they'd just keep dropping more heart pieces. It shouldn't be too hard to fix - all I have to do is move the code that Euclid mentioned above from the heart container's routine to the heart piece's routine, so that the heart piece checks the dungeon it's in, and if it's Ganon's Tower, it self-terminates before it appears.


(edited by Reshaper256 on 05-26-06 02:05 PM)
Euclid



 





Since: 11-17-05
From: Australia
hmm...

Last post: 6292 days
Last view: 6286 days
Posted on 05-26-06 11:47 PM Link | Quote
I got a codes for you.

05EF4CC9 and it's done, the kill boss again will work in all dungeons (that is including caves)
Dude Man

Shyguy


 





Since: 11-18-05
From: Wareham MA

Last post: 6337 days
Last view: 6337 days
Posted on 05-27-06 10:50 AM Link | Quote
I have an interesting story.
I was play testing Agahims dungeon for Zelda DP. I set a hole and forgot to change it's pointer and when going down landed in the boss room of Dungeon two. Which at the time was the same room Arghus was in in the original. And Arghus was the boss. I killed him just for kicks and a medallion dropped instead of the pendant. Not just graphically either. and as a side note. I was using the mountain tower boss room so the pendant fell in the middle of the room.

-Fell into boss room of another dungeon
-Was using the Mountain tower boss room which made the pendant fall in the middle
-was fighting Arghus in his room from the original
-pendant was replaced with a medallion.

This was a while ago... maybe a year. I haven't replecated the glitch yet.
Reshaper256

190


 





Since: 11-17-05
From: United States

Last post: 6329 days
Last view: 6285 days
Posted on 05-27-06 04:02 PM Link | Quote
Originally posted by Euclid
I got a codes for you.

05EF4CC9 and it's done, the kill boss again will work in all dungeons (that is including caves)
Oh, this is a game genie code, lol, it took me a while to figure that out. I've never actually messed with them in hacking before. So what this code does is changes $05:EF4C from a BNE (branch if we're not in Ganon's tower) to a CMP, which basically causes it to do nothing, so the game will always assume you are in Ganon's tower when it drops the heart container, thus causing the container to *self destruct*.

The problem with this code is that it won't allow even regular bosses to drop heart containers, therefore you wouldn't be able to collect the pendants/crystals either.

You probably already know that, though. I've already made a work-around for this hack that JSLs to a new routine before it does the heart *piece* code, which checks whether you are in one of the three rooms which contain minibosses, and if so, it kills the heart piece before it even appears. And since this new check is room-based instead of dungeon-based, it'll enable you to put minibosses in any dungeon, and just add their rooms to the list of miniboss rooms to check. (Of course, assuming you're also using this hack to make all bosses drop heart pieces.)

Originally posted by Dude Man
I have an interesting story...
I've actually encountered a similar situation, easy to replicate - just walk into the room with the Agahnim battle (I did it in the first one, but both may work) with the value at $0403 in RAM frozen as #$80: Agahnim won't be there, and the ether medallian will drop.

Here, I'll even attach an SNES9x savestate, right at Agahnim:

Attachments

AgahnimSaveState.zip (96380b) - views: 16
Euclid



 





Since: 11-17-05
From: Australia
hmm...

Last post: 6292 days
Last view: 6286 days
Posted on 05-28-06 12:10 AM Link | Quote
That gets the "Kill boss again" header working, so in a room where that room header does not exist and instead have say the normal "Clear room to end level" or something, the game acts normally when you kill the boss and drops the heart container (or whatever you set them to), just look in Hyrule Magic if you don't get what i mean, it works, you don't need any other asm code to make it work.

As for the Agahnim 1 dungeon, that's normal when it drops a ether medallion, that's why that door is locked after you beat him.
Reshaper256

190


 





Since: 11-17-05
From: United States

Last post: 6329 days
Last view: 6285 days
Posted on 05-28-06 01:21 AM Link | Quote
That is a game genie code, right?

Could you explain how it affects the kill boss again tag? From what I can see, it edits a value in the middle of the heart container's 'self destruct' routine, making all heart containers in the game instantly disappear when they try to spawn onto the screen. I enabled the code and beat Trinexx in an unaltered ROM, and it didn't drop a heart container, leaving me stranded in the bossroom when I couldn't make the crystal fall down. In my hack it wouldn't even affect heart *pieces* because it doesn't edit anything in the heart piece code; the edit is in the heart container code.

By the way, I've completed a new version of the hack - now minibosses don't drop heart pieces, and I'm sure that heart pieces won't start reappearing after you collect them.

You can download the most recent version here: bossheartsv11.zip


(edited by Reshaper256 on 05-28-06 12:23 AM)
(edited by Reshaper256 on 05-28-06 12:24 AM)
(edited by Reshaper256 on 05-28-06 12:28 AM)
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6286 days
Last view: 6285 days
Posted on 05-28-06 01:27 AM Link | Quote
As I recall, the "Kill Boss Again" tag does pretty much nothing. Might just be a placeholder.
Dude Man

Shyguy


 





Since: 11-18-05
From: Wareham MA

Last post: 6337 days
Last view: 6337 days
Posted on 05-28-06 10:25 AM Link | Quote
Like what Euclid said, The kill boss again tag is enabled only in Agahim 2 (or any entrance that uses it)
Other dungeons/houses/caves can not use that tag.
Reshaper256

190


 





Since: 11-17-05
From: United States

Last post: 6329 days
Last view: 6285 days
Posted on 05-28-06 01:13 PM Link | Quote
What do you and Euclid think this tag does? MON just said that it "does pretty much nothing", so are you two saying that the tag has some sort of effect he doesn't know about? If MON's right, I see no reason to even worry about the tag.


(edited by Reshaper256 on 05-28-06 12:14 PM)
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6286 days
Last view: 6285 days
Posted on 05-28-06 08:36 PM Link | Quote
well... I tested it out in the lanmolas' room in Ganon's Tower while disabling the SW Kill enemy to open door. While the 'kill boss again' tag seems to do some of the same work that the 'sw kill enemy to open door' tag might do, it wasn't enough to open the doors. It just checks to see if all sprites in the room are dead and returns a value based on that. It then zeroes out its tag value, and zeroes out $7E0FFC. I don't know what $0FFC is used for at this point.

So yeah, I'm having a hard time seeing how this tag is useful.
Euclid



 





Since: 11-17-05
From: Australia
hmm...

Last post: 6292 days
Last view: 6286 days
Posted on 05-29-06 02:28 AM Link | Quote
Didn't i like told you what that tag does already?

Kill boss again with agahnim 2 as dungeon with a boss in the room = no heart drop.

With that code you can eliminate the agahnim 2 bit and apply it to every dungeon/caves/house/whatever room.
MathOnNapkins

1100

In SPC700 HELL


 





Since: 11-18-05

Last post: 6286 days
Last view: 6285 days
Posted on 05-29-06 04:00 AM Link | Quote
Originally posted by Euclid
Didn't i like told you what that tag does already?


In clear English, no. I looked at the code for "Kill Boss Again," it does not appear to do anything useful.
Reshaper256

190


 





Since: 11-17-05
From: United States

Last post: 6329 days
Last view: 6285 days
Posted on 05-29-06 04:40 AM Link | Quote
Originally posted by Euclid
Didn't i like told you what that tag does already?
I was basically asking both of you for a better explanation of what you thought the tag did, since MON had just said that it didn't do anything. I could have either asked you to explain your thinking a little better - or I could have just decided that you were totally wrong and that MON was right about it, without even asking you again why you thought the tag was so important.

Originally posted by Euclid
Kill boss again with agahnim 2 as dungeon with a boss in the room = no heart drop.
Okay, now I clearly see why you wanted me to do this to start with:

1. You believed that the "kill boss again" tag is needed for bosses to not drop hearts.

2. You believed that the code you gave me will stop *any* item from being dropped from a boss, including heart *pieces*.

The "kill boss again" tag isn't why hearts don't drop in those miniboss rooms - the game won't allow heart containers *anywhere* in Ganon's Tower, even in rooms without the "kill boss again" tag. The heart container code always checks what dungeon you're in, and makes the heart container instantly "go away" when you're in any room of Ganon's Tower.

This will occur with or without the "kill boss again" tag being set in the room.

Also, the code you gave me only affects bosses dropping heart *containers* - if the boss is dropping a heart *piece*, the code has no effect whatsoever.

Originally posted by Euclid
With that code you can eliminate the agahnim 2 bit and apply it to every dungeon/caves/house/whatever room.
Since the "kill boss again" tag doesn't control whether heart containers drop from bosses or not, and the game genie code you gave me causes the heart container code to always think you're in Ganon's Tower, heart containers will *always* instantly disappear, everywhere - in every room of the game - regardless of whether the "kill boss again" tag is set in that room. This means that even normal bosses won't drop heart containers, so you can't receive any pendants or crystals - clearly a problem.
Pages: 1 2Add to favorites | Next newer thread | Next older thread
Acmlm's Board - I3 Archive - ROM Hacking - Bosses Drop Heart Pieces -- Zelda 3 ASM Hack |


ABII

Acmlmboard 1.92.999, 9/17/2006
©2000-2006 Acmlm, Emuz, Blades, Xkeeper

Page rendered in 0.024 seconds; used 453.98 kB (max 578.88 kB)