Alttp bugs and their fixes
Zeldix :: Zelda III Hacking :: Requests
Page 4 of 4
Page 4 of 4 • 1, 2, 3, 4
Re: Alttp bugs and their fixes
I believe it is the opposite. Castle dungeon is the actual dungeon (ie the Agahnim dungeon) also known as L-4 (light world, 4th= last dungeon), while Hyrule Castle (listed first) is the introductory dungeon with the sewers, that you kind of pass through, rather than play as a normal dungeon. So the end credits listing should be: L-0, L-4, L-1, L-2, L-3. Which basically means the authors wanted that complex 2-part Hyrule castle separated from the 3 pendant dungeons in this list.Agunim wrote:Hmm... weird. Looking at the Quest History at the end, I assume Castle Dungeon is the beginning of the game up to the church and Hyrule Castle is the first encounter with Agahnim. But that place them strangely out of order as the first on the list is Hyrule Castle.
Puzzledude- Since : 2012-06-20
Re: Alttp bugs and their fixes
I see, I guess I was thinking of the word Castle Dungeon in the more literal sense and in the context of the game. In any case, both are listed in the Quest History, so Tropylium must have remembered it incorrectly unless that death counter is broken, will have to check that out sometime.Puzzledude wrote:I believe it is the opposite. Castle dungeon is the actual dungeon (ie the Agahnim dungeon) also known as L-4 (light world, 4th= last dungeon), while Hyrule Castle (listed first) is the introductory dungeon with the sewers, that you kind of pass through, rather than play as a normal dungeon. So the end credits listing should be: L-0, L-4, L-1, L-2, L-3. Which basically means the authors wanted that complex 2-part Hyrule castle separated from the 3 pendant dungeons in this list.Agunim wrote:Hmm... weird. Looking at the Quest History at the end, I assume Castle Dungeon is the beginning of the game up to the church and Hyrule Castle is the first encounter with Agahnim. But that place them strangely out of order as the first on the list is Hyrule Castle.
I must say that a less confusing way to list the light world would have been if they simply followed the common progression of the game:
1) Hyrule Castle (L-0)
2) Eastern Temple
3) Desert Temple
4) Tower of Hera
5) Castle Dungeon (L-4)
Agunim- Leever
- Since : 2014-04-02
Re: Alttp bugs and their fixes
the thing is about hyrule castle is that it is really divided into 3 sections: the castle, sewers and tower. the sewers has a different map if you go to the map screen.
wizzrobemaster- Ganon
- Since : 2015-01-04
Re: Alttp bugs and their fixes
I thought the game saw the sewers as a part of the sanctuary..?
SunGodPortal- Since : 2015-01-26
Re: Alttp bugs and their fixes
it did which is considered a dungeon. any place that has a map is a dungeon so technically the light world has 6 dungeons (2 of which are combined)
wizzrobemaster- Ganon
- Since : 2015-01-04
Re: Alttp bugs and their fixes
True but all three sections are connected to the same map, the sections are divided on the map screen, but there's only one map to find (which you get in a chest in the dungeon of the castle before you rescue Zelda). So the whole castle area as a dungeon is a bit unique in that sense.wizrobemaster wrote:the thing is about hyrule castle is that it is really divided into 3 sections: the castle, sewers and tower. the sewers has a different map if you go to the map screen.
Agunim- Leever
- Since : 2014-04-02
Re: Alttp bugs and their fixes
Yes, however these are considered as 3 dungeons because of the simple fact, that they all need 3 different big keys, maps and compases (theory). So the big key obtained in Hyrule Castle will not work on the big chest in sewers and on big chest in Agahnim's dungeon.
So the game sees this as 3 dungeons: and the church is a part of sewers and it's entrance, but since there are no big chests in the sewers, the player sees it differently.
Special ASM needed to be implemented to "jump" to "another dungeon" after the Mantle (which you can push only if you have Zelda following you).
PS
Did you know, you can Not push the Mantle if you don't have a Lamp (further ASM). Namely: you can not go back after the Mantle, since you would bounce into it (bug= stuck forever and walk on place in all directions) and there's a dark room inside (without the lamp it is a completely black screen).
So the game sees this as 3 dungeons: and the church is a part of sewers and it's entrance, but since there are no big chests in the sewers, the player sees it differently.
Special ASM needed to be implemented to "jump" to "another dungeon" after the Mantle (which you can push only if you have Zelda following you).
PS
Did you know, you can Not push the Mantle if you don't have a Lamp (further ASM). Namely: you can not go back after the Mantle, since you would bounce into it (bug= stuck forever and walk on place in all directions) and there's a dark room inside (without the lamp it is a completely black screen).
Puzzledude- Since : 2012-06-20
Re: Alttp bugs and their fixes
ocarina of time uses the same concept with ganon's castle and ganondorf's tower. they are 2 dungeons in one as you cannot warp outside of the tower. strangely though there is no dungeon map for the tower but a boss key. probably this is due to the dungeon being very linear. the reason there is no map is because it is a linear progression and has a special entrance. (you can also enter it from the graveyard). so the reason you cannot push the mantle is the same reason hyrule castle is locked after the gate to the dark is open? the reason being to prevent bugs from taking place?
wizzrobemaster- Ganon
- Since : 2015-01-04
Re: Alttp bugs and their fixes
Yes, the doors close, since you could then go to the Agahnim room, and he would not be there. This and the mantle is actually a very thought-out debug.wizrobemaster wrote:ocarina of time uses the same concept with ganon's castle and ganondorf's tower. they are 2 dungeons in one as you cannot warp outside of the tower. strangely though there is no dungeon map for the tower but a boss key. probably this is due to the dungeon being very linear. the reason there is no map is because it is a linear progression and has a special entrance. (you can also enter it from the graveyard). so the reason you cannot push the mantle is the same reason hyrule castle is locked after the gate to the dark is open? the reason being to prevent bugs from taking place?
Puzzledude- Since : 2012-06-20
Re: Alttp bugs and their fixes
i am surprised the bug was never fixed. obviously the developers did not think there was any need because of what purpose would there be to re-enter. what I do to get around the locked doors is the Zelda 1 example where you have a hidden alternate entrance that gives access to the main entrance. as for the maps, I placed a falling pit through the dungeon and it lead to issues.
wizzrobemaster- Ganon
- Since : 2015-01-04
Re: Alttp bugs and their fixes
Well, I finally had a closer look at how the Quest History in the end credits actually work, and Tropylium's memories was indeed correct. The castle tower doesn't have its own counter. It share counter with the Temple of Darkness.
Which simply means, if you save and quit or happen to die anytime after you collected the third and last pendant and before you have obtained the first crystal - it will show up under Dark Palace in the Quest History.
Like Conn explained earlier in the thread, the pendants and crystals work like checkpoints for the separate counters, once you get a crystal every save and death after that will be added to the next tempel counter no matter where you save and quit/die. Hence the confusion. It should also be noted that once you have finished Ganon's Tower, you can save and quit/die how many times you want without it affecting the total counter, because there is no counter for the pyramid. A very weird and shitty code... they could have just kept it simple and handled it in the same way as the original Zelda, it would have been much better.
Anyway, the Hyrule Castle counter seems to cover the gameplay either up to rescuing Zelda from her cell or when moving the ornamental shelf. And the Castle Dungeon counter is linked to the gameplay up to the church. It also explains the way they are listed in the Quest History.
Which simply means, if you save and quit or happen to die anytime after you collected the third and last pendant and before you have obtained the first crystal - it will show up under Dark Palace in the Quest History.
Like Conn explained earlier in the thread, the pendants and crystals work like checkpoints for the separate counters, once you get a crystal every save and death after that will be added to the next tempel counter no matter where you save and quit/die. Hence the confusion. It should also be noted that once you have finished Ganon's Tower, you can save and quit/die how many times you want without it affecting the total counter, because there is no counter for the pyramid. A very weird and shitty code... they could have just kept it simple and handled it in the same way as the original Zelda, it would have been much better.
Anyway, the Hyrule Castle counter seems to cover the gameplay either up to rescuing Zelda from her cell or when moving the ornamental shelf. And the Castle Dungeon counter is linked to the gameplay up to the church. It also explains the way they are listed in the Quest History.
Agunim- Leever
- Since : 2014-04-02
Re: Alttp bugs and their fixes
Again a bug found in the native rom. When Ganon is in the stage where he sends out a single bat and jumps to make the wall pits appear... run into him and you will loose 4 hearts instead of the usual 2.
The reason is here:
$06/F400 B9 27 F4 LDA $F427,y[$06:F447] A:0020 X:0000 Y:0020
$06/F403 8D 73 03 STA $0373 [$06:0373] A:0020
The Y-value 20 will point to a jsr which is not part of the hit table Ganon deals to you. Thus you cannot simply change it without crashing the rom.
There is no trivial 1 byte fix for this (the fix is easy, just a jsl, compare with 20 and if yes, load 10 or whatever) but since nobody complained about this yet, I suggest to leave it and just have this note that this happens. Everybody my opinion or does anybody requests a fix?
The reason is here:
$06/F400 B9 27 F4 LDA $F427,y[$06:F447] A:0020 X:0000 Y:0020
$06/F403 8D 73 03 STA $0373 [$06:0373] A:0020
The Y-value 20 will point to a jsr which is not part of the hit table Ganon deals to you. Thus you cannot simply change it without crashing the rom.
There is no trivial 1 byte fix for this (the fix is easy, just a jsl, compare with 20 and if yes, load 10 or whatever) but since nobody complained about this yet, I suggest to leave it and just have this note that this happens. Everybody my opinion or does anybody requests a fix?
Conn- Since : 2013-06-30
Re: Alttp bugs and their fixes
there is also a bug (or perhaps a design flaw) in Zelda 3 where I mentioned in a previous post that when an animation occurs from an enemy or an npc rendering link immobile, any project that hits him will deal damage after the animation takes place. examples include the old man going inside the death mountain cave and getting hit by a boulder, or ganon performing his floor break technique and getting hit by one of his bats. there is that bias where enemies and traps can move when link cannot due to an npc animation taking place.
wizzrobemaster- Ganon
- Since : 2015-01-04
Re: Alttp bugs and their fixes
This was talked about before and was resolved as well. Link must not advance here before auto-getting the mirror, the old guy must go in, thus all sprites must move, but not Link. There is an easy fix to this, remove the falling rocks.include the old man going inside the death mountain cave and getting hit by a boulder
That's not really a bug, just a smart move by Ganon, to defeat his opponent.or ganon performing his floor break technique and getting hit by one of his bats
Puzzledude- Since : 2012-06-20
Re: Alttp bugs and their fixes
Conn: i'm unable to duplicate that.
for Y to hold 20h there, you need garbage in either Link's Tunic value, or in $0CD2,X . based off your log, X itself holds the expected 0, so $0CD2,X was probably overwritten. if its bottom nibble is > 9, the index will be junk, as there are only 10 Bump Damage categories. it seems like preventing the overwrite would better get to the root of the problem.
are you sure your ROM is clean, and there are no GG or PAR codes active? also, note that Ganon normally does 3 hearts damage to Red tunic.
for Y to hold 20h there, you need garbage in either Link's Tunic value, or in $0CD2,X . based off your log, X itself holds the expected 0, so $0CD2,X was probably overwritten. if its bottom nibble is > 9, the index will be junk, as there are only 10 Bump Damage categories. it seems like preventing the overwrite would better get to the root of the problem.
are you sure your ROM is clean, and there are no GG or PAR codes active? also, note that Ganon normally does 3 hearts damage to Red tunic.
Re: Alttp bugs and their fixes
Yes, you are right. I think there was something fishy with my savestate. Thanks for hinting this, I now used another savestate and there Ganon also takes 3 hearts...
Normal Ganon hits (trident, ...?):
03/743e: 20 18 10 (green blue red) which corresponds to 4 3 2 hearts
touch:
03/7442: 40 30 18 (green blue red) which corresponds to 8 6 3 hearts
Normal Ganon hits (trident, ...?):
03/743e: 20 18 10 (green blue red) which corresponds to 4 3 2 hearts
touch:
03/7442: 40 30 18 (green blue red) which corresponds to 8 6 3 hearts
Conn- Since : 2013-06-30
Re: Alttp bugs and their fixes
so the rocks I presume were place in the wrong spots. also those deadrocks will sometimes run into you. they too should be moved as well. for some reason death mountain in Zelda 3 seems to have many issues. a bad warp point (I move my warp to spectacle rock), the southeast corner does not need to be explored as there are nothing but rupees. the only use is mainly as an alternative to get to the summit, but climbing from the spectacle rock area might be just as fast. there is also the entrance error where two of the exits/entrances seem to be misplaced. I corrected that issue as well with hyrule magic. also the dark world equivalent only has 3 enemies when you are approaching ganon's tower and the northwest corner has nothing. it makes me wonder if this section was the least developed due to 3 dungeons in this area (dark and light world combined).This was talked about before and was resolved as well. Link must not advance here before auto-getting the mirror, the old guy must go in, thus all sprites must move, but not Link. There is an easy fix to this, remove the falling rocks.
wizzrobemaster- Ganon
- Since : 2015-01-04
Re: Alttp bugs and their fixes
I give you the code again, and hope you close bringing the boulder topic up and up and up again!
0F/698A: 01 -> 00
Then you are able to move after the old man gave you the mirror. But you can enter the cave before him so this will lead to a paradox as he stands already inside even if you entered before him. So I would not suggest anybody else to change the byte. Just take in count that you may loose half a heart due to this. So what?
0F/698A: 01 -> 00
Then you are able to move after the old man gave you the mirror. But you can enter the cave before him so this will lead to a paradox as he stands already inside even if you entered before him. So I would not suggest anybody else to change the byte. Just take in count that you may loose half a heart due to this. So what?
Conn- Since : 2013-06-30
Re: Alttp bugs and their fixes
the southeast corner does not need to be explored as there are nothing but rupees
There is a dungeon nearby where it is a good idea for people who are not experts to bring potions with them. If I remember correctly, there is even a message in the first room of Turtle Rock that warns you of this. The southeast area is a good place to prepare you for the cost of stocking up.
I'm not trying to start a fight here, but you seem to be fixated on overstating even the smallest problems or perceived problems with this game. You've done this time and time again...
SunGodPortal- Since : 2015-01-26
Re: Alttp bugs and their fixes
Two extremely minor visual quirks:
In the room full of rats right before the switch room leading to the church, the pots have a different palette when on the floor and receive their regular palette first when you lift them.
The enemy known as Gibo encountered in Blind's dungeon has a transparency effect on its shell, this causes other objects to become transparent in rooms containing them. Such as fairies, rupees and bombs etc, the magical effects from the magic medallions are also affected by it.
Not exactly bugs, more a case of graphical limitations... just thought I'd share my observations.
In the room full of rats right before the switch room leading to the church, the pots have a different palette when on the floor and receive their regular palette first when you lift them.
The enemy known as Gibo encountered in Blind's dungeon has a transparency effect on its shell, this causes other objects to become transparent in rooms containing them. Such as fairies, rupees and bombs etc, the magical effects from the magic medallions are also affected by it.
Not exactly bugs, more a case of graphical limitations... just thought I'd share my observations.
Agunim- Leever
- Since : 2014-04-02
Mothula fix alternate take
There are a number of reasons why I favor a revised Mothula damage bugfix.
A few are minor and/or hacks-only, but read them all.
1)
Changing that to LDA $0EF0,X (BD F0 0E) would stop this fix from depending on
Mothula being in the first slot (admittedly just an issue in some fictional
hack). A more flexible LDA $0E20,X is done a few instructions prior.
2) It partly depends on setting the Damage Class to 06, which is a bit fudgey,
as this requires that nobody ever hacks Mothula to take damage from the
completedly unrelated normal Bow and Arrow. (Then again, does this ever run,
given the $0EA0,X check at 06/E833 and your added $0EF0 check? It's limiting
in theory, anyway. Maybe a weird scenario where you have a plain arrow or a
boomerang, launched first, trailing right behind a Fire Rod shot.)
3) Saving the one with vanilla implications for last. Even though the damage
queuing is skipped when the insect is knocked into a stationary spiked block
(while $0EF0 is active), the code at 06/E84A to set Mothula's invincibility
timer to 99h and zero his knockback timer is still executed. This is weird,
because it creates a nonsensical hybrid situation where we're treating Mothula
as not hit yet sorta hit by the block. The program flow contrasts vanilla, where
ANYTHING that skips over the damage call will also skip the timer alterings,
usually by branching to 06/E872 (either directly or by way of 06/E850).
Conceptually, I suspect Mothula is flying over these spikes, but since there's
no true 3D in this game, a compromise is to put them in the same category as
other harmless floor blocks and walls. Anyway, to examine the consequences of
messing with these timers:
a. Mothula's duration of flashing and initial invincibility, as well as when
its queued damage is inflicted, will be slightly altered. However, the
change should be very minor, as tests have the timer within two frames of
99h when he contacts the spikes anyway.
b. Mothula's knockback will stop as many as several frames early.
c. Again, saving the big one for last. Mothula actually has a SECOND
invincibility phase, covered in MathOnNapkins' great disassembly. It
normally kicks in near the end of the first, when the knockback timer
reaches 6. It's handled by Bit 6 of $0E60,X, and lasts a fairly substantial
31 frames (counted in $0EE0,X). However, having zero in the knockback timer
will skip this phase entirely.
Now, based on checking RAM variables on the GBA version, you seem to be in good
company, as Capcom also has the timers altered when Mothula is knocked into a
stationary spiked block. However, I don't put official programmers on much of
a pedestal (as they churn out all sorts of bugs), and remake teams even less
so. More importantly, nothing about the GBA port doing this makes it any more
*logical*. Either Mothula is damaged by these blocks, or he isn't. Why should
they half-affect the boss when other non-damaging blocks don't?
Recapping: problem 3c is the biggest one.
-------
To this end, I made my own supplemental patch, meant to apply on top of Conn's:
http://assassin17.brinkster.net/forum-posts/mothula-fix-supplement-1b.asm
(Comment out "header" line as needed.)
It resolves the issues in #3, by skipping over both the damage queuing and
timer changing when Mothula is the enemy contacting a spiked block. Because
it's simpler, it also avoids the hacks-only issues in #1 and #2, and is several
bytes smaller.
Testing and feedback are welcome.
A few are minor and/or hacks-only, but read them all.
1)
- Code:
AD F0 0E LDA $0EF0
Changing that to LDA $0EF0,X (BD F0 0E) would stop this fix from depending on
Mothula being in the first slot (admittedly just an issue in some fictional
hack). A more flexible LDA $0E20,X is done a few instructions prior.
2) It partly depends on setting the Damage Class to 06, which is a bit fudgey,
as this requires that nobody ever hacks Mothula to take damage from the
completedly unrelated normal Bow and Arrow. (Then again, does this ever run,
given the $0EA0,X check at 06/E833 and your added $0EF0 check? It's limiting
in theory, anyway. Maybe a weird scenario where you have a plain arrow or a
boomerang, launched first, trailing right behind a Fire Rod shot.)
3) Saving the one with vanilla implications for last. Even though the damage
queuing is skipped when the insect is knocked into a stationary spiked block
(while $0EF0 is active), the code at 06/E84A to set Mothula's invincibility
timer to 99h and zero his knockback timer is still executed. This is weird,
because it creates a nonsensical hybrid situation where we're treating Mothula
as not hit yet sorta hit by the block. The program flow contrasts vanilla, where
ANYTHING that skips over the damage call will also skip the timer alterings,
usually by branching to 06/E872 (either directly or by way of 06/E850).
Conceptually, I suspect Mothula is flying over these spikes, but since there's
no true 3D in this game, a compromise is to put them in the same category as
other harmless floor blocks and walls. Anyway, to examine the consequences of
messing with these timers:
a. Mothula's duration of flashing and initial invincibility, as well as when
its queued damage is inflicted, will be slightly altered. However, the
change should be very minor, as tests have the timer within two frames of
99h when he contacts the spikes anyway.
b. Mothula's knockback will stop as many as several frames early.
c. Again, saving the big one for last. Mothula actually has a SECOND
invincibility phase, covered in MathOnNapkins' great disassembly. It
normally kicks in near the end of the first, when the knockback timer
reaches 6. It's handled by Bit 6 of $0E60,X, and lasts a fairly substantial
31 frames (counted in $0EE0,X). However, having zero in the knockback timer
will skip this phase entirely.
Now, based on checking RAM variables on the GBA version, you seem to be in good
company, as Capcom also has the timers altered when Mothula is knocked into a
stationary spiked block. However, I don't put official programmers on much of
a pedestal (as they churn out all sorts of bugs), and remake teams even less
so. More importantly, nothing about the GBA port doing this makes it any more
*logical*. Either Mothula is damaged by these blocks, or he isn't. Why should
they half-affect the boss when other non-damaging blocks don't?
Recapping: problem 3c is the biggest one.
-------
To this end, I made my own supplemental patch, meant to apply on top of Conn's:
http://assassin17.brinkster.net/forum-posts/mothula-fix-supplement-1b.asm
(Comment out "header" line as needed.)
It resolves the issues in #3, by skipping over both the damage queuing and
timer changing when Mothula is the enemy contacting a spiked block. Because
it's simpler, it also avoids the hacks-only issues in #1 and #2, and is several
bytes smaller.
Testing and feedback are welcome.
Re: Alttp bugs and their fixes
Sorry, the time I made the code is too long ago that I can remember what I did and I am too tired and too retired to check it all you've mentioned.
I checked your asm code from the structure (compatibility with that I made, and found no bug source). If you'd release an ips patch with mine merged with yours, I trust your work and replace my current one with this.
I checked your asm code from the structure (compatibility with that I made, and found no bug source). If you'd release an ips patch with mine merged with yours, I trust your work and replace my current one with this.
Conn- Since : 2013-06-30
Page 4 of 4 • 1, 2, 3, 4
Similar topics
» Bugs and Fixes
» Original ALTTP bug fixes
» Street Fighter Alpha 2
» Conker 1.1.2 Bug reports and fixes
» V1.23 Bugs
» Original ALTTP bug fixes
» Street Fighter Alpha 2
» Conker 1.1.2 Bug reports and fixes
» V1.23 Bugs
Zeldix :: Zelda III Hacking :: Requests
Page 4 of 4
Permissions in this forum:
You cannot reply to topics in this forum