News:

11 March 2016 - Forum Rules

Main Menu

Zelda II Redux

Started by ShadowOne333, March 15, 2018, 01:29:52 PM

Previous topic - Next topic

ShadowOne333

I have updated the optional patches for the Battle Themes, they should now include the latest changes and work properly:
https://github.com/ShadowOne333/Zelda2-Redux/tree/master/patches/optional

Dr. Dreadhawk

I just want to report a bug I'm having. I'm on Linux. This is the error message:
xkas error: pass 1, line 12:1: "beq.b $14"
xkas error: pass 1, line 14:1: "incsrc code/optional/KeepExpAtGameOver.asm"
xkas error: pass 1, line 72:1: "incsrc code/optional.asm


Just so you know, in my own ignorance I tried: beq $14 and had no build errors, but I don't know what I did and if I broke something.

Thanks.



ShadowOne333

Quote from: Dr. Dreadhawk on May 31, 2022, 02:57:53 PM
I just want to report a bug I'm having. I'm on Linux. This is the error message:
xkas error: pass 1, line 12:1: "beq.b $14"
xkas error: pass 1, line 14:1: "incsrc code/optional/KeepExpAtGameOver.asm"
xkas error: pass 1, line 72:1: "incsrc code/optional.asm


Just so you know, in my own ignorance I tried: beq $14 and had no build errors, but I don't know what I did and if I broke something.

Thanks.

Simply remove the ".b" from the "beq.b" inside code/optional/KeepExpAtGameOver.asm
It should be "beq $14"
That's probably a carried issue from when I was just starting to disassemble hacks with xkas.

Memorex

Quote from: ShadowOne333 on May 31, 2022, 10:57:33 AM
I have updated the optional patches for the Battle Themes, they should now include the latest changes and work properly:
https://github.com/ShadowOne333/Zelda2-Redux/tree/master/patches/optional

That's great! Can I patch the previously patched rom to overwrite the old version?

ShadowOne333

Quote from: Memorex on June 01, 2022, 03:07:55 PM
That's great! Can I patch the previously patched rom to overwrite the old version?

Sure, the new changes should simply overwrite the old ones, you can patch them over with no issue.

Dr. Dreadhawk

I want to make a suggestion. Town of Darunia has this $13 color for background that is too similar to color $12, so things that use $12 like the HUD are harder to read. I'd suggest to change this to another color like $03 or $23. See what I mean:

Original Color ($13):


Lighter Color ($23):


Darker Color ($03):


ShadowOne333

It's unlikely I'd touch upon those things. It's probably just a one byte change most likely.

I see the sky palette thing as an aesthetic design choice, more so to give some towns a specific and visual difference from the others, and to give each town more of a "time of day" effect.

Dr. Dreadhawk

#1067
It's okay. I'll change it for myself then.

Edit: I see the "time of the day thing". I still think the $03 is a better night background, the cloud's shadows look clearer, same for the roofs. Also everything seems to come from the darkness to the light better. The magic bar in the HUD is not readable at least on PVM palette, but I suspect some TV sets had trouble separating them from the background. But I respect your stance. Cheers.

11clock

This hack has convinced me to give Zelda 2 a shot.

For the most part, the game is challenging but quite fun. Link controls well and combat is satisfying. Enemy spawn rates in the overworld are a bit ridiculous, but the battles are usually over in seconds so it's not a huge deal. It does make exploration annoying, so I ended up referencing a spoiler-free overworld map.

Unfortunately, a single enemy type completely ruins the game for me: The Iron Knuckle. Other enemies can be difficult (especially the boomerang guys), but they can be played around and it feels good to learn their patterns and counterattack them. Iron Knuckles, on the other hand, are godawful. They block almost every attack you throw at them, and can even raise or lower their shield mid-attack. If iron knuckles couldn't change their shield position while attacking, they could be reliably countered. As it stands, fighting them just feels like RNG on whether or not your attacks actually make it through.

I could somewhat tolerate the orange iron knuckles, but the red ones seem practically indestructible. I figured maybe the idea was to use your new jump spell to just bypass them, but the jump height isn't quite there for a clean hop unless you are on higher ground.

I think I will give up at the second palace. It sucks that the experience is thrown out the window by a single enemy type. The rest of Zelda 2 seemed quite fun, though.

Dr. Dreadhawk

Quote from: 11clock on June 18, 2022, 03:16:31 AM
Iron Knuckles, on the other hand, are godawful.
Just jump and hit them in the head.

ShadowOne333

If Iron Knuckles are problematic, just wait until you meet the ModaFokkas :^}

Trax

Some notions of enemy "AI" for Iron Knuckles.

Parts of the Iron Knuckles behavior are coded with random probability. The code states that Iron Knuckles will adjust their shield position upon an attack from Link 50% of the time for Orange, and 75% for Red and Blue. Iron Knuckles also adjust their shield at any time according to Link's Y position, and that's why the jump and slash attack works consistently.

The probability values for shield adjustment are at 11C7D (the following tables are also interesting), and read as 01 03 03. For Orange, Red and Blue respectively. A random number is taken from the enemy's standard randomizer ($051B,X), and ANDed (bitwise AND) with the value in 11C7D. If the result is zero, the Iron Knuckle doesn't do anything. Else, it adjusts his shield to the same position as Link's shield (taken from $17). So, random number AND 01 gives 50% probability of a zero value. Random number AND 03 gives 25% probability of a zero value.

The code starts at 11D52, when a B button pressed is detected. Check out my docs in Bank 4 for disassembly and comments.

http://www.bwass.org/romhack/zelda2/zelda2bank4.txt

11clock

#1072
Quote from: Trax on June 18, 2022, 02:11:06 PM
Some notions of enemy "AI" for Iron Knuckles.

Parts of the Iron Knuckles behavior are coded with random probability. The code states that Iron Knuckles will adjust their shield position upon an attack from Link 50% of the time for Orange, and 75% for Red and Blue. Iron Knuckles also adjust their shield at any time according to Link's Y position, and that's why the jump and slash attack works consistently.

The probability values for shield adjustment are at 11C7D (the following tables are also interesting), and read as 01 03 03. For Orange, Red and Blue respectively. A random number is taken from the enemy's standard randomizer ($051B,X), and ANDed (bitwise AND) with the value in 11C7D. If the result is zero, the Iron Knuckle doesn't do anything. Else, it adjusts his shield to the same position as Link's shield (taken from $17). So, random number AND 01 gives 50% probability of a zero value. Random number AND 03 gives 25% probability of a zero value.

The code starts at 11D52, when a B button pressed is detected. Check out my docs in Bank 4 for disassembly and comments.

http://www.bwass.org/romhack/zelda2/zelda2bank4.txt

So in other words, iron knuckles have a random chance to block. I think it would feel better to fight them if they had a cooldown, so that they cannot change their shield position for a short amount of time after having already done so. That way you can attack at one height, then immediately attack at another height to get a hit in. Iron knuckles would still be tough enemies, but with a skillful way to get reliable hits.

As for jump attacking, is that supposed to be the intended way to defeat them? Iron knuckles protect their heads when you're in the air, but they lower the shield right before you land, leaving an opening. I cannot tell if that was an intentional flaw in their AI or something that was overlooked in testing.

Trax

Quote from: 11clock on June 18, 2022, 02:34:39 PMSo in other words, iron knuckles have a random chance to block. I think it would feel better to fight them if they had a cooldown, so that they cannot change their shield position for a short amount of time after having already done so. That way you can attack at one height, then immediately attack at another height to get a hit in. Iron knuckles would still be tough enemies, but with a skillful way to get reliable hits.

As for jump attacking, is that supposed to be the intended way to defeat them? Iron knuckles protect their heads when you're in the air, but they lower the shield right before you land, leaving an opening. I cannot tell if that was an intentional flaw in their AI or something that was overlooked in testing.

I guess there is no way to know for sure. My guess is they established a simple threshold on the Y position that overrides the blocking to account for when Link and the Ironknuckle are not on the same ground level. What I explained in my previous message is what happens when you press the B button. The code after that happens independently of button press. The game compares Link's Y position with the Ironknuckle's Y position. If they are equal, which is the case most of the time, when both are standing on the same ground level, the code skips the second part. Otherwise, if Link's position, plus an arbitrary number (0A), exceeds the Ironknuckle's Y position, he lowers his shield. Else it raises it.

If you lower this value (at 11D71), even to 0, you increase the possibility that the Ironknuckle will move his shield up when Link jumps, making Ironknuckles instantly more difficult, or at least not susceptible to cheesing. If this threshold check didn't exist, you could simply crouch on a platform 1 tile higher than a Ironknuckle and have guaranteed hits in their face. I think you can do that with the Lizalfos.

The idea of a cooldown is interesting. It would obviously require more code. Each enemy has at least one individual timer that can be used as needed. They are at $0504,X in RAM, with X being the enemy index. These timers always count down by 1 per frame, to zero. In the case of Ironknuckles, this timer is used for the timing of sword swings. There may be other index variables in RAM, in the 4xx range, that could be used for new timers.

11clock

#1074
I decided to continue and I think I got the jump attack technique down.

FYI, a graphical update to make Bagu's cabin visible on the map would be nice. A seemingly random forest tile you need to step on in order to get required item is, quite frankly, stupid. I only found out after looking it up since I got tired after walking around for half an hour.

Apparently there is a slime in the third town that gives a hint, but you have to talk to it a bunch of times to get any dialog other than "Zzz...". I prompted the slime couple times, shrugged and left since I didn't think there was further dialog.

EDIT: Bug report. In the Up+A menu, if you select "Continue" the game treats it as resuming from a game over instead of just closing the menu, meaning you lose all your exp and sent back to Zelda or palace start.

ShadowOne333

That's how it behaves originally and normally, nothing was changed in terms of the Save menu other than making the Dpad work in it.

Most NES games that featured such save menu did the same (Metroid, Zelda 1, Zelda 2, etc)

11clock

I think that the biggest issue remaining in the game that hasn't been addressed is those guide-dang-it moments. For example, I wasn't aware about the downstab technique you had to learn in a nearby town that is required for palace 3, so I trekked all the way to palace 3 only to be met with a key I could not get. Palace 4 is even worse about this, which has two "rude awakenings" (upstab for a key, reflect spell for the boss). Palace 3 at least bars you from entering it without the fairy spell, so perhaps a similar design could be used for these required techniques/spells.

There is also a similar issue with the placements of some locked doors. Oftentimes I found myself going down a long series of rooms, only to be met with a locked door that I didn't have the key for, so I had to walk ALLLLL the way back to find the key I needed. This issue is present as early as the first palace with the candle item. It would be nice if some locked doors were moved to be closer to their required keys.

The worst guide-dang-it moment has to be the final boss of the game. Imagine climbing all the way through the difficult path to the Great Palace, fighting your way to the end, and coming face to face with the final boss... and you cannot damage it. You look up why, and it turns out you were missing a required spell that needs collecting 4 well-hidden items to even learn. Now to go back and learn the spell, then do the Great Palace shenanigans all over again. (In Zelda 1 with Ganon, at least the silver arrows are found in the same dungeon as him, with the stairs leading to the arrows literally being on the main route to the boss fight.)

I think that the best way to fix pretty much all of these issues is to have additional barriers keeping the player from progressing until they have the required item. The game already does this at times (the fairy spell, the fire spell, the power bracelet), so it just needs to be extended further. Don't let the player make a whole bunch of progress only to be met with a wall due to not having an item they should've acquired half an hour ago.


Some ideas:

-Blocks on the way to palaces 3 and 4 that require the sword techniques to break.
-Those robe guys from palace 4 being encountered in the maze leading to the palace (encouraging you to go back and get the reflect spell). This would also probably help the player be directed to where the lost child is, as long as the robe guys are not in-route to him.
-Some sort of blockade in front of the path to the Great Palace that requires the Thunder spell to enter.
-Some of those locked doors being moved to be closer to the keys. (I think Palace 2 has the worst example, where if you missed a key early on you will end up having to trek through like half the palace again.)


ultimaweapon

The best thing to keep in mind is that every town has a spell you can learn. Don't proceed to the next temple until you learn the respective spells.

Shield spell for Parapa Temple
Jump spell for Midoro Temple
Life spell & Fairy spell for Island Temple (also get the Downward Thrust)
Fire spell & Reflect spell for Maze Temple (also get the Upward Thrust)
Enigma spell for Temple on the Sea
Thunder spell for Three Eyed Rock Temple

Each temple also houses an important item to use mainly for the over, but some are for temples too.
Parapa Temple - Candle
Midoro Temple - Sacred Gloves
Island Temple - Raft
Maze Temple - Sacred Boots
Temple on the Sea - Flute/Ocarina
Three Eyed Rock Temple - Cross

You get the hammer from Death Mountain and The Magic Key from New Kasuto town.

Whatever you Shield can't block, it can be blocked when you use the Reflect spell.

When you defeat the boss of a temple, if you are close to leveling up, then stay in that temple don't put the crystal in it's pedestal. Stay in that temple and defeat more enemies to level up, and then place the crystal in the pedestal. Also, if you time it right and jump past the crystal pedestal, you can exit out the temple and re-eneter to fight all the enemies again(minus the boss).

Hopefully, this helps you a bit better.
Trust in the Heart of the Cards

11clock

#1078
Quote from: ultimaweapon on June 20, 2022, 05:28:33 PM
The best thing to keep in mind is that every town has a spell you can learn. Don't proceed to the next temple until you learn the respective spells.

Shield spell for Parapa Temple
Jump spell for Midoro Temple
Life spell & Fairy spell for Island Temple (also get the Downward Thrust)
Fire spell & Reflect spell for Maze Temple (also get the Upward Thrust)
Enigma spell for Temple on the Sea
Thunder spell for Three Eyed Rock Temple

Each temple also houses an important item to use mainly for the over, but some are for temples too.
Parapa Temple - Candle
Midoro Temple - Sacred Gloves
Island Temple - Raft
Maze Temple - Sacred Boots
Temple on the Sea - Flute/Ocarina
Three Eyed Rock Temple - Cross

You get the hammer from Death Mountain and The Magic Key from New Kasuto town.

Whatever you Shield can't block, it can be blocked when you use the Reflect spell.

When you defeat the boss of a temple, if you are close to leveling up, then stay in that temple don't put the crystal in it's pedestal. Stay in that temple and defeat more enemies to level up, and then place the crystal in the pedestal. Also, if you time it right and jump past the crystal pedestal, you can exit out the temple and re-eneter to fight all the enemies again(minus the boss).

Hopefully, this helps you a bit better.

I appreciate the help, but I already beat the game by now. The issue isn't that I am currently stuck, but that even with Redux you need like a bunch of cliff notes to play Zelda 2 without getting screwed over. I had to look up a guide multiple times throughout my playthrough.

Zelda 1 Redux addressed all of this stuff, and I was able to beat it without a guide. Zelda 2, however, needs these changes more, since unlike Zelda 1 most of the secrets are actually required for progression. Zelda 1's secrets largely led to bonus items and casinos, only getting a bit obtuse towards the end with some dungeon locations.

EDIT: I noticed I have been coming off as overtly critical, so I'll add some positive notes.

Overall I quite enjoyed Zelda 2 Redux. The QoL changes let the positive traits of Zelda 2 shine more with its surprisingly good combat system. It also made me realize that Zelda 2 holds up a lot better than Zelda 1. Even with a bunch of QoL, Zelda 1 was ultimately a mediocre game at its core and I recommend BS Zelda over it and even the Redux version. My main criticisms of Zelda 2 lie in some repetitive level design (a lot of copy paste rooms), the above-discussed guide-dang-it moments, and a really awful endgame.

(I am withdrawing my criticism about the iron knuckles, since I grew to like fighting them by the end of the game. The birds, on the other hand...)

Shadic

You can beat those Folks by using the Up-Stab when they jump over you. Focus on defense otherwise and they're usually pretty easy, terrain willing.