Romhacking.net

Romhacking => Personal Projects => Topic started by: ShadowOne333 on October 10, 2019, 12:04:03 pm

Title: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 10, 2019, 12:04:03 pm
Continuing over with improvement hacks I've done, I decided to tackle Zelda 1 as a possible project for a Redux project.
"But Shadow, what about Zelda 2?! That one's not done yet and you are already making another?"
Yeah, don't worry :P Zelda 2 Redux is still going on, and it will get released eventually :)

But to focus on Zelda 1 Redux:
The Legend of Zelda Redux - Source code (so far):
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux


If you simply want to grab the patches (including the optional ones) and try them out right away without bothering with the source code, you can get them here:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/patches


The base ROM for this hack is the PRG0 version of Zelda 1.
Now, let's go over the features that I want a possible version of Zelda 1 Redux to have:


Optional patches (so far):
//------------------------------------------------------------------------------------------------------------

Help needed for these points:

//------------------------------------------------------------------------------------------------------------

This is what I have currently planned for a possible Zelda 1 Redux.
Many of the points I have already done myself already, as you could possibly tell from the beta patch posted.
However many of these still remain.

Also, if there's anything that you have always found obnoxious from Zelda 1, please do tell me, anything that can be done to make Zelda 1 a much better experience is welcome as a suggestion for the hack!
Please let me know of any ideas, suggestions, or if you know of a way to cover one point in the list as well!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: CoolCatBomberMan on October 10, 2019, 03:15:37 pm
This is really good so far! I especially liked the cracked walls within the dungeons. I ended up learning something new about the first dungeon, of all things!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: triforce141 on October 10, 2019, 03:54:07 pm
The only suggestions I have are to carry over some mechanics of the Game Boy Zeldas.
Here's a mockup animation of what the sword attack would look like:
(https://cdn.discordapp.com/attachments/491454402440462368/631928393713319966/Swing2.gif)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: wolpak on October 10, 2019, 04:20:58 pm
A few cool things from another Zelda mod that may or may not be in scope was having a different arrow counter and dropping arrows instead of them using money.  Also, the B button item on the main screen was as sexy as it could get.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: IAmCaptPlanet on October 10, 2019, 05:16:42 pm
i would LOVE to have the Legend of Link item rotation (using select to swap out 3 different items)

the sword "swipe" instead of "poke"

the charged spin attack

and a map similar to Legend of Link, maybe show the map when using the warp flute, and make the destinations selectable.

redux on dude!

Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 10, 2019, 05:31:28 pm
Thanks, guys!
I already added some points marked as done, and I have also successfully implemented the bombs to 10 as default and the upgrades to 20/30 thanks to DarkSamus' help.

A few cool things from another Zelda mod that may or may not be in scope was having a different arrow counter and dropping arrows instead of them using money.  Also, the B button item on the main screen was as sexy as it could get.

What Zelda mod does the arrow thing? If I may ask.
Also, what do you refer with the B button thing? :P

i would LOVE to have the Legend of Link item rotation (using select to swap out 3 different items)

the sword "swipe" instead of "poke"
the charged spin attack
and a map similar to Legend of Link, maybe show the map when using the warp flute, and make the destinations selectable.
redux on dude!

I'm a little torn on the "swipe" thing to be honest.
For one, I'd love to have such a thing in the original Zelda, but that makes me thing just how much would it break the game since all of the enemies and the dungeons are design for the "stab" behaviour of Link.
I'm wondering if it would make the game too easy, and/or if it would deviate a lot from what makes Zelda 1... Zelda 1.
The warp flute sounds interesting, but fairly difficult to implement in a technical point. Is a nice concept, but sadly one I don't think I may do on my own.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: mdtauk on October 10, 2019, 05:50:55 pm
There was a mod where the sword stab was replaced by a sword swing.

I think all the QoL improvements that were implemented into A Link to the Past and Link's Awakening should be implemented.

On a personal point, I think a Zelda 1 redux would basically look like Link's Awakening but with Zelda 1's maps and dungeons.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lastdual on October 10, 2019, 07:37:31 pm
Some great ideas here, though I have to ask: Have you ever considered a similar project for Ys?

Zelda 1 has a ton of great hacks, but the NES version of Ys 1 has seen little love since the translation and could really use a few QoL improvements (the screen not scrolling until you're right by the edge is rather problematic in a game with bump combat, for example).
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pleasejust on October 11, 2019, 01:04:48 am
Making bomb upgrades increase by 10 is a bad idea. This will severely reduce the value of bomb drops in-game. It wasn't even really much of an issue. The game drops a satisfying amount of bombs for the player. Maybe you can increase it by 1 to 5 but not 10. That's ridiculous. Especially since you plan to add cracks to the walls. This means you don't have to bomb everything anymore to find secrets (I assume)... If anything this game needs to have it's rom size increased and a new, larger overworld and dungeons made. Nobody seems to really be able to do this right, though, and in a way that has a level of difficulty similar to the original.

Make sure this is compatible with Modern Classic Edition or add improved graphics into the hack. They're so much better.

Everything else is good.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Jeville on October 11, 2019, 01:29:49 am
Making bomb upgrades increase by 10 is a bad idea. This will severely reduce the value of bomb drops in-game. It wasn't even really much of an issue. The game drops a satisfying amount of bombs for the player. Maybe you can increase it by 1 to 5 but not 10. That's ridiculous. Especially since you plan to add cracks to the walls. This means you don't have to bomb everything anymore to find secrets (I assume)... If anything this game needs to have it's rom size increased and a new, larger overworld and dungeons made. Nobody seems to really be able to do this right, though, and in a way that has a level of difficulty similar to the original.

Make sure this is compatible with Modern Classic Edition or add improved graphics into the hack. They're so much better.

Everything else is good.
I agree that a 10 increase is excessive; bombs have the same power as the Magical Sword. I also feel it should be a 5 increase in upgrades at most.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: wolpak on October 11, 2019, 03:10:08 pm
Thanks, guys!
I already added some points marked as done, and I have also successfully implemented the bombs to 10 as default and the upgrades to 20/30 thanks to DarkSamus' help.

What Zelda mod does the arrow thing? If I may ask.
Also, what do you refer with the B button thing? :P

I'm a little torn on the "swipe" thing to be honest.
For one, I'd love to have such a thing in the original Zelda, but that makes me thing just how much would it break the game since all of the enemies and the dungeons are design for the "stab" behaviour of Link.
I'm wondering if it would make the game too easy, and/or if it would deviate a lot from what makes Zelda 1... Zelda 1.
The warp flute sounds interesting, but fairly difficult to implement in a technical point. Is a nice concept, but sadly one I don't think I may do on my own.

Legend of Link when ended up going off it's rails redoing all graphics and maps and whatnot.  Great ideas in there though.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 11, 2019, 04:12:49 pm
Making bomb upgrades increase by 10 is a bad idea. This will severely reduce the value of bomb drops in-game. It wasn't even really much of an issue. The game drops a satisfying amount of bombs for the player. Maybe you can increase it by 1 to 5 but not 10. That's ridiculous. Especially since you plan to add cracks to the walls. This means you don't have to bomb everything anymore to find secrets (I assume)... If anything this game needs to have it's rom size increased and a new, larger overworld and dungeons made. Nobody seems to really be able to do this right, though, and in a way that has a level of difficulty similar to the original.

Make sure this is compatible with Modern Classic Edition or add improved graphics into the hack. They're so much better.

Everything else is good.

I ALWAYS had issues with finding bombs from drops in the original game.
Maybe it's just my shitty luck, but that's why I bumped the amount of bombs you can get.
Iirc you get the first bomb upgrade by the time you already have the White Sword, so it's not that much of an OP item.
Besides, if people want to change the value of upgrades, they can easily do so with a one byte change, or wait until I release the source of the project (as I intend to do once it's done).

Also, the improved graphics ala Link's Awakening will be an optional patch, it won't be in the main hack.

Legend of Link when ended up going off it's rails redoing all graphics and maps and whatnot.  Great ideas in there though.

Ah you're right.
I just gave it a look again, and it does have a separate counter for arrows.

It would really be nice if Legend of Link's source was shared, it would make for implementing the arrows as drops and its own counter way better, and the same would go for the diagonal swing of the sword. But I feel like those are such extensive ASM hacks, and way out of my scope given my limited range of ASM knowledge, sadly :/
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on October 11, 2019, 07:22:19 pm
I found the code for text typing speed. RAM $29, set to 06 at 0x481D. Change 06 to any number to change the delay between letters. Lower value makes text type faster. I think a value of 03 or 04 would be good.

As for bombs, you can always insert a few more bombs into the Item Drop Distribution Table (unofficial name). Check this handy visual chart made by Baxter:
https://www.zeldaspeedruns.com/loz/generalknowledge/item-drops-chart

RAM $052A is a counter for enemies killed. Resets to 0 after 9. Enemy Group X never gives items, so they don't have any associated table. Each other group has a probability coefficient of dropping an item, taken from table at 0x1303E. For example, Enemy Group B has a value ox 0x98 = 152 decimal. Randomizer value must be lower than the coefficient, so 152 / 256 = 59% chance of item drop. If the enemy gives an item, it's taken from the corresponding table the enemy code belongs to, and the index is $052A. Check my disassembly of Bank 4 for more details:

http://www.bwass.org/romhack/zelda1/zelda1bank4.txt

As you can see from the chart, only Group B gives bombs. You could have other enemy groups give bombs, to balance things out.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: mdtauk on October 11, 2019, 07:59:36 pm
Increasing Bombs by 10, would bring it into line with the future Zelda games.  It makes sense to take all those tweaks and changes made since the original, to improve the game.

If like your Zelda 2 project, the mods are done as separate files - then you are free to add as many as you want, and those looking for a purer Zelda 1, can choose only those elements they want.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pleasejust on October 12, 2019, 03:11:23 am
increase bombs by 10 because... the other games do it? That's not a good reason at all. Who cares if the the other games do it. You have to look at it on a per-game basis. There's no good reason to do it in Zelda 1, it devalues bomb pickups. Period. If you want to devalue them, fine. But that sucks.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DannyPlaysSomeGames on October 12, 2019, 04:30:25 pm
Good to see that you've started working on a Zelda 1 hack! I honestly feel like Zelda 1 has the same issue as FF1 hacking in which there's like a handful of hacks that "rehaul the entire game but for all the wrong reasons or no reason" but not a proper "definitive edition" to play (I was planning on maybe doing that with FF1? not sure), so this would most definitely be a welcome addition.

As for any contributions or changes I can give, there's that Z1 hack/translation of mine (http://www.romhacking.net/hacks/4311/) you reviewed a while back, if you want to take a few notes from there (the Readme has all the little touches I added, though if you want to do most of this project on your own, that's completely fine and fair).

Outside of that, I can't really tell what other additions to give, except for the fact that it would be very nice if you could add in the select switchfrom Legend of Link,  or something similar in that regard (not having to constantly pause for weapon switches), and maybe some boss balancing? (Digdogger and Gohma are just absolutely pathetic, and some bosses like the Hydra-like dragon are irritating). As for other suggestions, I'm really against the idea of the sword swing mechanic because then that somewhat falls into the pit of the aforementioned "rehaul for no reason" hack.

But yeah, this seems like a great idea! Hope the project goes well.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: triforce141 on October 12, 2019, 10:46:45 pm
If sword swinging doesn't happen in the end, I still suggest that Link shouldn't be able to change direction during the sword poke animation so you can't accidentally face the wrong way for the attack and sword beams.

That, and common enemies having some sort of very brief stun or one tile long knockback when they get hit by the sword, there are too many instances where Link will hit an enemy, they take damage, but continue to walk forward as if nothing happened and hit Link, who is still stuck in his attack animation. Something along those lines where you're given just enough breathing room after connecting a hit, but not so much where you can cheese your way to victory with continuous stagger.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Thanatos-Zero on October 13, 2019, 08:22:25 am
ShadowOne333, so you wish to follow into Infidelity's footsteps.

First I wish to applaud to you for to take on such a huge challenge, but honestly speaking, it might be better overall for you to create your own NES homebrew game instead, taking Zelda as a inspiration or atleast recreate it as you see fit.
The original Zelda was pestered with so much hardcoding, it gave Infidelity and me a large amount of frustration. Some of my redesigns, were simply too big.

Not to forget to mention, he has put himself under his own deadline for his own project, but the results are less than optimal.

If it wasn't for the hardcoding, the game would have been more polished.
Mind you, I was only the graphic artist, but my journey with him gave me insight of how troublesome it is to altering a game, without the source code being available.

Edit: It might good to heed to criticism from the other reviewers, so you can avoid right off the bat some mistakes on the line.
http://www.romhacking.net/reviews/1934/#review
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DavidtheIdeaMan on October 13, 2019, 12:12:37 pm
Im glad to see that this game is getting a proper remaster,I can't wait to try out the final product of this game,keep up the great work. :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Shade Aurion on October 13, 2019, 02:02:06 pm
I'm kinda surprised you aren't going with Legend of Zelda - Quest 3 (SNES) as a base for the Zelda 1 Redux as its probably the best version of the classic game available
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 14, 2019, 11:22:59 am
I found the code for text typing speed. RAM $29, set to 06 at 0x481D. Change 06 to any number to change the delay between letters. Lower value makes text type faster. I think a value of 03 or 04 would be good.

As for bombs, you can always insert a few more bombs into the Item Drop Distribution Table (unofficial name). Check this handy visual chart made by Baxter:
https://www.zeldaspeedruns.com/loz/generalknowledge/item-drops-chart

RAM $052A is a counter for enemies killed. Resets to 0 after 9. Enemy Group X never gives items, so they don't have any associated table. Each other group has a probability coefficient of dropping an item, taken from table at 0x1303E. For example, Enemy Group B has a value ox 0x98 = 152 decimal. Randomizer value must be lower than the coefficient, so 152 / 256 = 59% chance of item drop. If the enemy gives an item, it's taken from the corresponding table the enemy code belongs to, and the index is $052A. Check my disassembly of Bank 4 for more details:

http://www.bwass.org/romhack/zelda1/zelda1bank4.txt

As you can see from the chart, only Group B gives bombs. You could have other enemy groups give bombs, to balance things out.
Thank you so much for that info!
I have already made the text speed change, set it to $04 since I feel $03 prints too fast for the SFX to catch up with it.
As for the bomb drops info, I haven't done any changes yet, but I'll see what I can do with the info provided. :)
Very appreciated!

Good to see that you've started working on a Zelda 1 hack! I honestly feel like Zelda 1 has the same issue as FF1 hacking in which there's like a handful of hacks that "rehaul the entire game but for all the wrong reasons or no reason" but not a proper "definitive edition" to play (I was planning on maybe doing that with FF1? not sure), so this would most definitely be a welcome addition.

As for any contributions or changes I can give, there's that Z1 hack/translation of mine (http://www.romhacking.net/hacks/4311/) you reviewed a while back, if you want to take a few notes from there (the Readme has all the little touches I added, though if you want to do most of this project on your own, that's completely fine and fair).

Outside of that, I can't really tell what other additions to give, except for the fact that it would be very nice if you could add in the select switchfrom Legend of Link,  or something similar in that regard (not having to constantly pause for weapon switches), and maybe some boss balancing? (Digdogger and Gohma are just absolutely pathetic, and some bosses like the Hydra-like dragon are irritating). As for other suggestions, I'm really against the idea of the sword swing mechanic because then that somewhat falls into the pit of the aforementioned "rehaul for no reason" hack.

But yeah, this seems like a great idea! Hope the project goes well.
Oh I didn't even remember I did that review lol
The changes do sound interesting :)
From those, I would like to ask what palette did you choose for the Triforce in the title screen, and the tunics?
And also, what text changes did you do to incorporate the so called "Old man/Old woman" phrasing that Mato mentions in LoL?

ShadowOne333, so you wish to follow into Infidelity's footsteps.

First I wish to applaud to you for to take on such a huge challenge, but honestly speaking, it might be better overall for you to create your own NES homebrew game instead, taking Zelda as a inspiration or atleast recreate it as you see fit.
The original Zelda was pestered with so much hardcoding, it gave Infidelity and me a large amount of frustration. Some of my redesigns, were simply too big.

Not to forget to mention, he has put himself under his own deadline for his own project, but the results are less than optimal.

If it wasn't for the hardcoding, the game would have been more polished.
Mind you, I was only the graphic artist, but my journey with him gave me insight of how troublesome it is to altering a game, without the source code being available.

Edit: It might good to heed to criticism from the other reviewers, so you can avoid right off the bat some mistakes on the line.
http://www.romhacking.net/reviews/1934/#review
I can 100% understand why you say this.
From what I'm seeing and the code I have modified, Zelda 1 seems way too limited in terms of coding.
Some might say it's even obnoxious, not even Zelda 2 is as barebones as this one.

For as much as I'd like to recreate Zelda 1 as an NES homebrew game, I lack such expertise to make my own NES game, both in terms of 6502 coding and overall knowledge of the NES system.
What I will attempt is to make the best I can out of what the original game has and offers.
Thankfully enough, the game does have some free space to work with, and there's also the MMCX patches floating around, so if I do run out of space, maybe going for those could open up way more space if desired.

Both you and Infidelity made an amazing job with the Legend of Link hack. It's one of the most technically impressive hacks I've seen. The arrows and diagonal slash hacks he did really improve upon the original's mechanics. Just wish I could somehow implement it, even if they were optional patches haha.
And I do understand what you say about altering the original too much, that's why I tend to offer "optional" patches, so that people can customize the hack to their liking. If they don't like a certain change, they can undo it, and so on with changes that might seem too controversial. :P
Thanks for your input!

I'm kinda surprised you aren't going with Legend of Zelda - Quest 3 (SNES) as a base for the Zelda 1 Redux as its probably the best version of the classic game available
I'm not sure if I follow.
Do you mean BS The Legend of Zelda, the Satellaview ROM?
If that's so, then that's because that one is not as well-known of a Zelda game, and while it is indeed a Zelda 1 Remake, it is a completely different beast on its own. For starters, there's little to no documentation for it, and that's already a huge downside. Not to say it can't be done, I have done a lot of research on previously undocumented stuff (EarthBound mainly), but I wanted to improve upon the original first game on NES.
After all, this is the game that started the whole franchise. I think it deserves a good overhaul to make it much more enjoyable by mitigating or improving on some issues it had.

-------------------------------------------------------------------------------------


Out of that, I have updated the beta patch with the current version I have :)
Be sure to check it out in the link provided at the OP.

I have also created an "Optional patches" folder in the link, in which you can find a patch that changes the amount of bombs the upgrades gives you from 10 per upgrade, to 5 per upgrade, as requested by some people in here.
I might also start working on the optional graphics patch for Redux, since many people seem to be requesting "Link's Awakening" like graphics for Redux. And while I am strongly against modifying the original's graphics to that extend, I can at least offer such a patch as an optional thing for those that desire it.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DannyPlaysSomeGames on October 16, 2019, 03:32:40 pm
Oh I didn't even remember I did that review lol
The changes do sound interesting :)
From those, I would like to ask what palette did you choose for the Triforce in the title screen, and the tunics?
And also, what text changes did you do to incorporate the so called "Old man/Old woman" phrasing that Mato mentions in LoL?

Triforce animation palettes are 2828282838303038 (palettes are located at addresses 9873-987A), though if you wanted a (maybe) smoother animation, then try 2828383830303838 (or experiment combinations of the main colors in there, which are 28, 38, and 30).
Tunic palettes are 22 (from 32) for blue tunic and 26 (from 16) for red tunic (heads up, there's actually 2 addresses for each tunic palette; one for when Link first picks up either ring (6B95-6B97) and one attached to your save file if the game detects your save file has either ring or not (A297-A299)).

So, on the topic of rewriting (get ready for a somewhat loaded answer):

How I rewrote the overworld/dungeon dialogue is basically
-Take original dialogue and translated dialogue from Legends of Localization
-Try to take which version of the line sounds better (if both are bad, then make a new line from scratch)
-Paraphrase it in a way that is more accurate, fits the space and is in character

The way I wrote the old man and lady is that I used much rarer synonyms of words, not only to help make them sound wiser, but also to save space on text (most of it was done in ZeldaTech, so I was limited to the space of the original lines. Luckily, though, I could just remove the blanks tiles that centered the text and I could cram in some more.

To differentiate the two, I made the old man speak a little bit more like a wise guide and have the old lady be a bit more casual, alongside referring to Link as "Dearie". Though, due to constrictions, I had to compensate and make statements shorter (I put in parenthesis what I could have possibly wrote if I had more space). Here's a few examples:

-Original: Walk into the waterfall
-My take: Behind the waterfal, lies an ally (Veiled by the waterfall, an ally awaits)
-Original: There are secrets where fairies don't live
-My take: Over a fairyless pond, play the Demon's song

-Original: Buy medicine before you go
-My take: Care to buy my brews, dearie? (Would you like to buy from my brews, dearie?)
-Original: Boy, you're rich!
-My take: Burn the loose tree. (Try to burn the tree that sticks out)

As for the shopkeeper, it was just tinkering the first line a bit and rephrasing the second one to make him sound more brash:

-Original: Boy, this is really expensive!
-My take: Care to buy me finest wares, me boy?

And that's basically what I did.

For as much as I'd like to recreate Zelda 1 as an NES homebrew game, I lack such expertise to make my own NES game, both in terms of 6502 coding and overall knowledge of the NES system.

If you want an easy alternative, NESmaker (https://www.thenew8bitheroes.com/the-shop.html) works I guess, but if you really want to pull off some of the really cool perks ROM hacks tend to have, then you'd still need to learn ASM.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Thanatos-Zero on October 16, 2019, 05:55:36 pm
There are plenty of seasoned NES hacking veterans ShadowOne333.
If you need help in ASM, they can teach it to you.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on October 17, 2019, 01:47:13 am
Been playing through and have to say this is coming along nicely. I have found an inconstancy when using the "Links Awakening GFX" patch. The graphic show is that of the "Skull" key, but the game refers to it as the "Lion" key in several places. Also, when Link or enemy's shoot arrows, when they are shot horizontally, they show the LA GFX but when shot vertically the original arrow GFX are shown.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 17, 2019, 10:24:11 am
@DannyPlaysSomeGames the text points are really interesting. I'll take a look at the lines I've done and see if they can be reworked in a better way.
As for the title screen, I already had edited the title screen palette animation myself for my hack, but with your animation sequence the title screen looks so much better and not as bland!
I implemented it, and reworked it a little so the animation goes a little bit more smooth.
Thanks!

---------------------------------------------------------------------

There are plenty of seasoned NES hacking veterans ShadowOne333.
If you need help in ASM, they can teach it to you.
I am trying to do some learning on my own, for as limited as my learning in coding is at times haha, but I can say for sure that this community is amazing, I have had some great hackers help me before with some neat stuff that I could only dream of achieving. I am very grateful too all of those that have helped me so far!

Been playing through and have to say this is coming along nicely. I have found an inconstancy when using the "Links Awakening GFX" patch. The graphic show is that of the "Skull" key, but the game refers to it as the "Lion" key in several places. Also, when Link or enemy's shoot arrows, when they are shot horizontally, they show the LA GFX but when shot vertically the original arrow GFX are shown.
Oh yeah, for some reason the vertical sprite was still the original one.
I have already updated the GFX patch, and also renamed the Lion key to Skull key.
Try it again :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on October 18, 2019, 03:19:06 am
Oh yeah, for some reason the vertical sprite was still the original one.
I have already updated the GFX patch, and also renamed the Lion key to Skull key.
Try it again :)
Ok cool! I'll give them both a run and chime back in soon!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: superfantendo on October 18, 2019, 08:26:59 am
Looks like excellent work.

Please feel free to steal from http://www.romhacking.net/hacks/1295/ (http://www.romhacking.net/hacks/1295/)
I think these things were unique and worthwhile to carry forward:



Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 18, 2019, 11:42:59 am
Went ahead and added a couple more points to the OP.
I already managed to modify a lot more things.
I'm currently in the process of transcribing everything I've done to this hack in .asm form, or rather make proper source code for the whole project.

Looks like excellent work.

Please feel free to steal from http://www.romhacking.net/hacks/1295/ (http://www.romhacking.net/hacks/1295/)
I think these things were unique and worthwhile to carry forward:

  • I recolored (maybe 5 or 6 of) the dungeons to give them all a unique palette but also make them fit thematically with the type of terrain surrounding their entrance. For example, 5 is brown (mountain), 8 is green (forest). I made 2 purple because I needed a purple one and wanted something weird for the moon-shaped dungeon.
  • It has Link's Awakening graphics like many other hacks but I also retrofit the bosses from their Oracle of Seasons incarnations.
  • Title screen with more recent Zelda logo
  • Candle=Lantern, Ring=Tunic etc.
The optional GFX hack I made is actually taken from that project :P
Same applies for the title screen stuff and other things in your point.
The tunic I am keeping in the main hack and I have went ahead and renamed the red and blue rings to tunics, alongside their proper graphics.

Only thing I haven't implemented from that hack is the the recoloured dungeons.
I'd love to have such a thing for each dungeon, but I still haven't done enough research on Dungeon data to get to that point. I might actually implement that specific change into the main hack, but I'm not sure yet if keep it in the main hack, or make it optional.

------------------------------------------------------------------------

I've been doing some research on unused Zelda 1 graphics, and bumped into this image:

(https://www.spriters-resource.com/resources/sheets/8/8375.png)

Can someone confirm if the two tiles for water marked as unused in that image are actually unused in the final game?
I want to see if I can somehow implement cracked walls for the overworld as well.

@Trax, if you're reading this, do you know if the overworld tiles have a similar method (as the dungeon walls) for possibly adding cracked tiles to the overworld as well?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: KevvyLava on October 18, 2019, 08:23:36 pm
I got this to happen somehow: https://imgur.com/a/bGgZy35

Not sure if it's related to the hack.  Happened after I came out of the Bow room and walked to the next room.  Using Mesen 0.9.8 if that matters.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 18, 2019, 08:48:06 pm
I got this to happen somehow: https://imgur.com/a/bGgZy35

Not sure if it's related to the hack.  Happened after I came out of the Bow room and walked to the next room.  Using Mesen 0.9.8 if that matters.
I can't find anything odd at first glance.
Could you help me point out the issue?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on October 18, 2019, 11:17:28 pm
I got this to happen somehow: https://imgur.com/a/bGgZy35

Not sure if it's related to the hack.  Happened after I came out of the Bow room and walked to the next room.  Using Mesen 0.9.8 if that matters.

I've had that happen on the automap + hack before pretty often. The floor tiles of some of the dungeons will just randomly change color.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on October 19, 2019, 04:07:33 am
Ok, tested the updated patches. Everything seems to be working well! The text and arrow GFX look good.

The remaining proposed changes seem very compelling. Will be happy to test when you need testers.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: darthvaderx on October 19, 2019, 09:58:57 pm
A long time ago I had this same idea of ​​merging several hacks into one and the result was this:

Automap Plus_0.2 + Relocalized_0.9 + Blue-er Ring Hacks

In Relocalized v0.9 had an interesting feature:

Quote
Staircases Removal.ips:
 
   Removes the secret staircases found outside Level 5 and 6 (1st Quest) and
   outside a 30 rupees location (2nd Quest). Perhaps early entrances the
   developers forgot to remove. The limitation of only one entrance per screen
   forces them to be just secondary entrances to the labyrinths no matter what,
   and if you exit the labyrinth when you have entered it from the secondary
   entrance, the walking on stairs animation is absent.

And something they were planning:

Quote
Left to do:

 * Implement the smooth screen transitions when you enter or exit a cave seen
   in the Japanese Famicom rerelease.

Finally I had done the same things that were done in 'Link's Awakening Redux', except that I used the hack that changed the font to the same as Oracle of Age / Seasons.

Font Improvement_1.2 + Censured Graphics Restored_1.1 + Photo Album Translation + Quality Of Life Improvements Hacks


The thing I like to do with older games is to mix hacks into something new.  8)

Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 19, 2019, 10:32:47 pm
The staircases removal is already implemented. I did it manually when I noticed it.
As for Link's palette in Dungeon 3, I completely reworked it in what I think is a much better palette choice that doesn't sacrifice much.

Added more points to the OP.
I think these should be the final ones.

--------------------------------------------------------------

To anyone who has any experience hacking Zelda 1's overworld:
Do you know if it's possible to create new strips of tiles so the ow doesn't look as blocky?
Like adding some diagonal tiles or something to give it more of a rounded shape.

I'm not sure if the overworld can deal with a per-tile kind of mapping, or if it's hardcoded to do vertical tile "strips".
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DannyPlaysSomeGames on October 19, 2019, 10:50:13 pm
Quote
Left to do:

 * Implement the smooth screen transitions when you enter or exit a cave seen
   in the Japanese Famicom rerelease.

Oh right! I was gonna comment on a few things about the TCRF stuff.

Aside from the smoother screen transitions, I was also curious about finding a way to reduce the slowdown so that the game doesn't lag as bad (though considering how hardcoded it is, I feel that is a much more daunting task).

In other news, I'm glad that I was able to help out with the project, ShadowOne. I always try my best to share ideas and support others.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on October 20, 2019, 06:48:49 pm
In Zelda 1, there are two ways to determine the tiles that make up one 2x2 tile unit. If the Tile Code is lower than 0x10, then the four tiles are arbitrary, and selected from table at 0x169B4. If it's >= 0x10, it always follows the pattern C,C+1,C+2,C+3. So, for example, Secret Tile 0xE6, which is a Bombable Wall, has Tile Code 0xD8. It means that the 2x2 unit is made of D8-D9-DA-DB, in inverted N order.

For secret tiles, look at 0x16976, in bank 5. There are 6 different values for the 6 different secret tile codes, from 0xE5 to 0xEA. That's for the Overworld.

For Dungeons, all the Tile Mapping codes you need are at 0x15FEE. If you have the graphics you want, it should be straightforward.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Rodimus Primal on October 20, 2019, 08:00:53 pm
I'm kinda surprised you aren't going with Legend of Zelda - Quest 3 (SNES) as a base for the Zelda 1 Redux as its probably the best version of the classic game available

I'd LOVE for that to be reworked to be a complete SNES version of the NES game with Quest 1 and 2 levels.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 22, 2019, 03:17:26 pm
In Zelda 1, there are two ways to determine the tiles that make up one 2x2 tile unit. If the Tile Code is lower than 0x10, then the four tiles are arbitrary, and selected from table at 0x169B4. If it's >= 0x10, it always follows the pattern C,C+1,C+2,C+3. So, for example, Secret Tile 0xE6, which is a Bombable Wall, has Tile Code 0xD8. It means that the 2x2 unit is made of D8-D9-DA-DB, in inverted N order.

For secret tiles, look at 0x16976, in bank 5. There are 6 different values for the 6 different secret tile codes, from 0xE5 to 0xEA. That's for the Overworld.

For Dungeons, all the Tile Mapping codes you need are at 0x15FEE. If you have the graphics you want, it should be straightforward.

Ah the Dungeon tile maps I have already modified :)

Actually, I just finished the left wall today, and updated the patch so that now all 4 walls in the Dungeons that can be bombed will show a slight cracked graphic in them.
What I had to do to make space was completely remove both the extra "-" (62) and "+" (64) symbols used in the sprites, and replaced them with my modified "x" and "infinity" symbols.
I already changed (what I think were) all the calls and uses of the $62 dash for the $2F dash, but for some reason I can't seem to find ANY place in the ROM where "+" could be used in the game. "&" also I can't find anywhere outside of the "Register Your Name" table for the characters. Do you know if these two (+,&) are used anywhere in the ROM at all?

As for the Overworld bombable walls, so the tiles in the overworld all have to be right next to each other in a range of 4 tiles?
So let's say I change the D8 for the bombable walls to 54, that means it will take 54-55-56-57 as the tiles for it, right?

Seeing how they require 4 tiles altogether, I think I will have to wait until I modify the Automap Plus code to make room for those.
I know Automap assigns tiles $50-$57 for the 1/8 hearts sprites, but if I change it to 1/4 hearts instead, I can free up 4 tiles, which are the exact number I need for those.
Pushable blocks and burning trees sadly might not be possible, but cracked walls in the overworld are for sure possible if I rework Automap to have 1/4 hearts instead of 1/8.

--------------------------------------------------------------------------------

To all the people testing the beta patch:

I just updated the patch with the latest changes (all cracked walls in Dungeons are now implemented, and some more reworked graphics and fixed text pointers).

Please check if there is any places where a "-" could have been replaced by an "x", same goes for "+".
Test all the text in the game, and also let me know if anything odd can be found.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on October 22, 2019, 07:55:41 pm
One thing I noticed in the Money Making Game now, the Infinity sign shows for winning money and an X shows next to the amounts that you lose, even though a minus sign shows next to the numbers at the start of the game.

(https://www.dropbox.com/s/wpg7yatzxuqcn4u/mm%20start.png)

(https://www.dropbox.com/s/y8l16gkspa75bzw/mm%20end.png)

It seems like you could just keep the minus symbol next to the losing amounts and then either the infinity symbol or the X symbol next to the winning amount.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 22, 2019, 08:10:17 pm
@aml435:
For some reason, I can't see the images, but from what you mention I can get the picture.
So that's where the + is being used, in the Money Making Game. I will fix it tomorrow. Should be fairly easy to do.

But what about the "&"?
Where is the Ampersand symbol used in the game?

----------------------------------

Out of that, I have some splendid news!
I managed to modify the Automap code to work for 1/4 hearts instead of 1/8 all by myself! :P
I still have to test it thoroughly, but so far it's looking awesome!
This shall make some room for cracked overworld tiles ;)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on October 22, 2019, 08:25:08 pm
Not sure where the ampersand is being used, yet. If I find it, I'll let you know.

Also, for some reason when I start a new game, it only lets me go up to 8 bombs, though both increases are for 10 more, leading to 28 bombs. Not sure why.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 23, 2019, 01:20:02 pm
Fixed the Money-Making game icons for the "-" and "+" symbols.
They should now show up properly.

Although, I am still not sure where the hell does the game use the Ampersand (&) symbol at all.
I replaced the Ampersand with the + in the meanwhile, but if needed, I can still work something out to make space for the & (if the game does indeed use it, if not then I won't put it back).

Just updated the beta patch in the OP.

Be sure to check out the new beta, there's two new features in there :^}
Let's see if people can spot them out.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on October 23, 2019, 01:47:22 pm
Just updated the beta patch in the OP.

Be sure to check out the new beta, there's two new features in there :^}
Let's see if people can spot them out.
Will test it out tonight!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on October 24, 2019, 02:54:22 am
I love a lot of the little changes that seem pretty recent, but I did notice a glitch. The Bombable walls on the overworld can be walked through now. You can't enter the doorway til you bomb, but you can walk though the wall before that.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 24, 2019, 10:39:40 am
I love a lot of the little changes that seem pretty recent, but I did notice a glitch. The Bombable walls on the overworld can be walked through now. You can't enter the doorway til you bomb, but you can walk though the wall before that.
What the heck?! I just checked, and yeah indeed the bombable overworld tiles can be walked through.
But why? D:

How can I change the collision of those tiles? I am using tiles $54 up to $57 in the hack.
I will see if I can find something, but I have never dealt with tile collision before, so I'm in the blind with that. :/

If anyone has a clue as to how to fix that in particular, please do let me know.
I went to great lengths to implement those new tiles just so they glitch out on me lol
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on October 24, 2019, 05:57:03 pm
Other than that, everything seems great.
This is getting pretty close to becoming the definitive way to play Legend of Zelda.

Pretty much the only other thing I've felt the game was missing that isn't really covered  in your todo list, is that I've always thought it'd be interesting to replace the duplicate bosses (Level 4 Gleeok & Level 7 Aquamentus).
Maybe make the Level 7 Aquamentus a Patra, since it's very much a boss type enemy and is far more difficult than an Aquamentus and maybe a Lanmola for the end of Level 4 (perhaps with some statues adding supporting fire).
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on October 24, 2019, 07:27:38 pm
Weird and kinda interesting. What's even more strange is that some walls that show the bombable tile, can't actually be bombed. My guess is that these are differences between first and second quest maps.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on October 24, 2019, 09:10:39 pm
Actually, I thought of two more (possibly optional) little changes that could be cool to make it more consistent with later titles:

Rename the Magical Sword to the Master Sword and make the handle blue.
Change the Flute to the Ocarina and change its graphics to look like the Ocarina from later games.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: John Enigma on October 24, 2019, 11:39:54 pm
I'd LOVE for that to be reworked to be a complete SNES version of the NES game with Quest 1 and 2 levels.
I fully agree with you.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on October 25, 2019, 12:20:45 pm
Change the Flute to the Ocarina and change its graphics to look like the Ocarina from later games.
This is already done when you apply the Link Awakening GFX patch.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on October 25, 2019, 03:52:46 pm
Yeah, just not a fan of the Link's Awakening look for Zelda 1.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: mdtauk on October 26, 2019, 02:36:03 am
Rather than just re-using Link's Awakening, you could update the sprites based on the BS Zelda - which is as close to an official remake the game has gotten
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on October 26, 2019, 10:50:03 am
Yeah, about the collision status of tiles, I was afraid of that side effect. I currently don't know how it's coded, but I suspect it's something silly simple, like a value somewhere that defines the boundary between "walkable" and "solid" tiles. Most likely, the 8x8 pixel tiles are individually set to be one of those two states, and not the 2x2 TSAs.

I suggest you try with a higher tile code, just to see if my theory can be confirmed.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on October 26, 2019, 10:52:51 am
Yeah, about the collision status of tiles, I was afraid of that side effect. I currently don't know how it's coded, but I suspect it's something silly simple, like a value somewhere that defines the boundary between "walkable" and "solid" tiles. Most likely, the 8x8 pixel tiles are individually set to be one of those two states, and not the 2x2 TSAs.

I suggest you try with a higher tile code, just to see if my theory can be confirmed.

I tested values yesterday starting from 54 (where my new cracked tiles are), and I started getting solid tiles around 88 or so. Though it seems 89 is only half solid, but 8A is solid again, so somewhere around 8X is where tiles start being solid.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on October 26, 2019, 12:42:08 pm
Yeah, just not a fan of the Link's Awakening look for Zelda 1.
To each their own. I love the LA look.

Rather than just re-using Link's Awakening, you could update the sprites based on the BS Zelda - which is as close to an official remake the game has gotten
How would that work with the colour limitations?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Rewind on October 31, 2019, 11:01:14 am
Increase Max Rupees
Pretty sure this might not be possible without either expanding the ROM or infringing on other values used for the game's data.  Its 255 for a reason, 256 numbers possible which is the max 2 digit 16-bit integer.
So unless someone can find a way to create or find an unused byte chances are a max limit of 999 isn't going to be supported.
Not completely sure though, I don't know much of how NES games work.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on November 03, 2019, 01:36:12 am
Increase Max Rupees
Pretty sure this might not be possible without either expanding the ROM or infringing on other values used for the game's data.  Its 255 for a reason, 256 numbers possible which is the max 2 digit 16-bit integer.
So unless someone can find a way to create or find an unused byte chances are a max limit of 999 isn't going to be supported.
Not completely sure though, I don't know much of how NES games work.
IIRC, it's already be done on other LOZ1 projects. I think it just a matter of shifting values, but that's only a guess.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on November 03, 2019, 12:16:28 pm
Sure, a two-byte money counter is doable, and not very hard, but I wonder if it is THAT relevant. I did plenty of playthroughs of this game, and the time I spent farming was minimal at best. However, knowing the secrets that give money ("It's a secret to everybody") help a lot. The big expense is the Blue Ring, and I think it's fair to make it hard to obtain. Having a limit of 255 rupees means that you can't accumulate past that point, so in a way, you're forced to be economical at some point after finding the actual secret store where the Blue Ring is sold. Having a limit of, say, 999 rupees would make it too easy to just accumulate like crazy through normal fights (i.e. not even trying to farm) and soon enough, any expense is like pocket change.

Just my two rupees...
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pleasejust on November 03, 2019, 10:05:46 pm
Yes, I agree with Trax. In general, you need to avoid making changes that affect the intended gameplay/difficulty balancing too much at the expense of canon. Gameplay is always king and trumps everything... You should make everything more expensive if you're going to go with 999 rupee limit. That would be ok I guess but kind of pointless because you're just rebalancing the economy simply for the sake of a # of rupees just because it's canon.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: IcePenguin on November 03, 2019, 11:28:14 pm
Possible additions (these might NOT be implemented in the final hack):
  • Add a proper arrow item (and enemy drop entry for it), and an arrow counter
  • Diagonal sword swing

I think the arrow should be an addition.  Perhaps make them only buy-able in shops, so we have reason to use those extra 744 rupees.

Yes, I agree with Trax. In general, you need to avoid making changes that affect the intended gameplay/difficulty balancing too much at the expense of canon. Gameplay is always king and trumps everything... You should make everything more expensive if you're going to go with 999 rupee limit. That would be ok I guess but kind of pointless because you're just rebalancing the economy simply for the sake of a # of rupees just because it's canon.

You and Trax make a good point, but there is a positive side to 999 rupees.  It's harder to waste rupees.  Once you reach the 255 rupee maximum, any potential rupees found would be wasted.  (via enemy drop, or secret)  For new players, who don't know where secrets are, it could be frustrating to find a secret, only to lose it.  For me personally, I stop exploring when at 255 rupees, out of fear of wasting a secret.  With a higher rupee max, it'd be less likely to happen.

Adding arrows into shops would help balance it.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Thirteen 1355 on November 04, 2019, 02:53:15 am
Gameplay is king, but GOOD gameplay is above, and some elements in Zelda 1 aren't exactly good (though I just hated the game in general). Though some level/world elements are worked around obnoxious stuff like the weak sword stab, some elements, like the Rupee count, don't really impact how levels are built.

There's potential to improve upon Zelda 1's gameplay and though it's all up to the creators of this patch, I don't feel the 'gameplay is king' holds much value in a day and age where games like Zelda 1 get drowned beneath the rest because of annoying gameplay elements.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 04, 2019, 11:31:48 am
I just disappeared for the weekend and came back to a lot of argument about 255-999 rupees. :laugh:

-------------------------------------------------------------------------------------

IIRC, it's already be done on other LOZ1 projects. I think it just a matter of shifting values, but that's only a guess.
Do you happen to know what other Zelda 1 hacks implement 999 rupees?

-------------------------------------------------------------------------------------

The reason why I want to implement 999 rupees is not for consistency sake with the rest of the series (nor canon).
A lot of Zelda titles are inconsistent with the max amount of rupees.
Just see OoT/MM and WW/TP. Max in N64 was 500, and in GC max was in the thousands.

The main reason reason is because it's an obnoxious limit just set because devs didn't want to bother with two byte calculations. That's just it.
It comes out as an obnoxious limitation when you actually hit 255, and you can't gather any more rupees due to that.
I doubt limiting the player to only 255 rupees when there's an item that costs 250 rupees is anything but "balanced".

The way I play Zelda 1 is going dungeon to dungeon directly while gathering the most rupees I can to purchase the most I can in one go. Not being able to purchase two plot-important items at once, and being able to only purchase one before having to grind again because the counter doesn't go past 255 is just plain obnoxious and not a good design.
Sure, the items themselves outside of the ring, shield, candle and arrows are not as expensive, but so are a lot of the items in many more Zelda titles where the highest doesn't go above the halfway point of the rupee maximum (OoT with the tunics is a clear example), while still leaving room for other items to be purchased.

Say you want to purchase the blue ring, a magic shield and some bombs/arrows?
Well, you can only get one, or the two other, before having to grind all the way up to 100+ rupees just to get another go. That's not a good thing. What if you can't go into the next dungeon because you don't have enough money to buy the required item? You will have to grind for almost hours to just get going with the game again just because all those rupees you found while being at 255 already didn't add up to the counter, so those hours of extra grinding could have been avoided altogether with rupees/grinding you are already doing while playing, no need to do the same in a more monotonous manner.

The main focus of this hack is to improve on those things that people may find annoying/obnoxious from the original, and the rupee counter is one I also have my gripes about.
Those things that people consider obnoxious that can be modified for a better overall experience of the game.

-------------------------------------------------------------------------------------

@IcePenguin I think the game already sells arrows in multiple locations (4 locations per quest).
I just double checked, and these 4 locations always sell you arrows for 80 rupees regardless if you already have the arrow item or not, so this can be exploited for adding a proper arrow item into the game, though we might need to add a proper set value for the game to give once you purchase arrows on shops.
https://www.zeldadungeon.net/wiki/Item_Shop

Aside from that, perhaps giving a proper set value for how many arrows you get when you purchase them might be good too.
I'm not sure if 20-30 is a good set value for arrows.

The counter for arrows can fit in between the rupee and keys one, or maybe even rework the order.
I already made a custom arrow icon for the HUD, so I just need to figure out the PPU transfers to make it show up properly, and of course, the actual code to separate the rupee counter from arrows, and the code to make a proper arrow counter :^}

-------------------------------------------------------------------------------------

I still haven't found the collision data for the cracked walls on the overworld.
However, I did do some tests and found some interesting stuff:

By changing the value at 0x16987 (D8):
So it seems like the game does have what tile values do what in a hardcoded manner, since putting the ladder tiles automatically makes Link enter the cave without even bombing it.
Now the thing is trying to find exacty what routine is in charge of defining what tiles are solid, which can be walked through, and which can be entered, and modify said routine (or add an exception) for tiles $54-$57.

I've also been trying to flip the hearts seen in the File Select screen, so that the starting hearts appear on the top row and the rest follow suit down below, like in every subsequent Zelda title, but I haven't found how to do so yet.
I did find the routines that seem to handle that though:

Code: [Select]
// Flip heart rows in the File Select Screen:
Found the routines, now I just gotta figure out how to invert the heart printing
A4C6: B9 54 A2  LDA $A254,Y @ $A258 = #$24
A264: 21 09 11 24 24 24 24 24 24 24 24 62 00 00 00 00 00 00 00 00 // PPU transfer for Name and hearts (top row)
A520: B9 74 A2  LDA $A274,Y @ $A278 = #$24
A278: 21 12 08 00 00 00 00 00 00 00 00 FF // PPU transfer for Hearts (bottom row)
A283: 21 89 03 24 24 01 // Counter for deaths
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pleasejust on November 04, 2019, 03:08:40 pm
Yes, annoying elements are bad and should be improve upon. re: the rupee limit, what I'm saying is that it seems like the way it is now is the way it's intended to work and it works well. It's not a huge deal, but I just want to make my position clear. It turns out that needing to have near the max capacity of rupees in order to get an item is ok and works from a gameplay standpoint. Read Trax's comment. It makes sense. It forces the user to have to do some work and not just accumulate basically all the money you're going to need during regular gameplay before you even need to get the items. The way the economy is in the original Zelda is the way it's intended to be and is "balanced" so to speak. Maybe not but all I'm saying is ff you want to emulate the way it currently is implemented, make everything more expensive if you're going to go with the 999 limit. That's all. Because the way it is originally implemented is pretty good if you think about it.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: wolpak on November 05, 2019, 03:57:43 pm
If you raise the rupee limit, you could also adjust the cost of items. 
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: IAmCaptPlanet on November 05, 2019, 04:05:07 pm
raised rupees does not hurt. i might actually be able to let the arrows fly willy nilly now

i would switch to the bow when it's needed and switch right back (as to not use up rupees)

i also never use bombs

-i would like a patch that worked like ALBW and have bombs/arrowa and other consumables on a gauge that re-fills (tho i suppose i could just use an infinity cheat)

but anyways i dont see an issue with having 999 rupees
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on November 05, 2019, 10:05:22 pm
I just disappeared for the weekend and came back to a lot of argument about 255-999 rupees. :laugh:

Do you happen to know what other Zelda 1 hacks implement 999 rupees?
Turns out, I've only ever seen it because of a GameGenie code. Sorry to have mislead anyone. I knew I'd seen it, it seems not as a part of a mod. Although, if works as a GameGenie code without glitching anything out, it might be something easily coded.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: snarfblam on November 05, 2019, 10:11:44 pm
I was pretty sure I had made a 999 rupee mod for z1, but couldn't remember what hack it was for until now.

https://www.romhacking.net/forum/index.php?topic=27012.0


Quote
User Snarfblam was nice enough to implement it for me, however I'm pretty sure he didn't take care of the save feature, and therefore it's buggy. I need help debugging this before I can finish the game. This is the only major thing holding this mod back.

...oops
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 06, 2019, 12:17:24 am
I was pretty sure I had made a 999 rupee mod for z1, but couldn't remember what hack it was for until now.

https://www.romhacking.net/forum/index.php?topic=27012.0


...oops
Hey snarfblam!
Thanks for dropping by!

Reading about it, do you think perhaps the 999 rupees code you made could be shared for this project?

I have done some ram research and I think I have found 4 or so free bytes that could be used for the 999 rupees, and perhaps for the save files as well.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on November 08, 2019, 07:35:04 am
I was pretty sure I had made a 999 rupee mod for z1, but couldn't remember what hack it was for until now.

https://www.romhacking.net/forum/index.php?topic=27012.0


...oops
Ah there it is! I knew I'd seen it somewhere, just couldn't remember..  :banghead:

Hey snarfblam!
Thanks for dropping by!

Reading about it, do you think perhaps the 999 rupees code you made could be shared for this project?

I have done some ram research and I think I have found 4 or so free bytes that could be used for the 999 rupees, and perhaps for the save files as well.
I think by posting it he is implying he'd be ok with such(once it's released).
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DannyPlaysSomeGames on November 11, 2019, 05:45:12 pm
Help needed for these points:
  • Remove the 1 Rupee flashing, and make it green if possible
The reason why they had the rupee flash instead of just making it green is because there really isn't a universal, green palette aside from Link's (which doesn't stay green forever due to the tunics; if you want to keep that color the same but still have the tunics be a different color, you'd either have to make another set of sprites on top of him that is just the tunic assigned to a different palette (which is one Hell of a nightmare, and even if you can make it work, it can cause scanline issues, i.e. flickering), or have it so that Link's assigned palette is changed to the other 2 universal palettes respectively (in which case, while it would technically work, he'd look hella pale, and his sleeves/hair/boots/etc. would become light blue/yellowish orange respectively, unless you managed to change the universal palettes in a way that could work on Link but still have it be roughly the same as before, which is tricky). Maybe instead of just making it actually green, you could make it look green by having the rupee flash between light blue and yellowish orange at a ridiculous speed, which would cause the colors to "blend" to the human eye and become green (which is what they did with the Hearts in NES Batman, and part of the reason why he's purple instead of black).
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 11, 2019, 05:58:28 pm
The reason why they had the rupee flash instead of just making it green is because there really isn't a universal, green palette aside from Link's (which doesn't stay green forever due to the tunics; if you want to keep that color the same but still have the tunics be a different color, you'd either have to make another set of sprites on top of him that is just the tunic assigned to a different palette (which is one Hell of a nightmare, and even if you can make it work, it can cause scanline issues, i.e. flickering), or have it so that Link's assigned palette is changed to the other 2 universal palettes respectively (in which case, while it would technically work, he'd look hella pale, and his sleeves/hair/boots/etc. would become light blue/yellowish orange respectively, unless you managed to change the universal palettes in a way that could work on Link but still have it be roughly the same as before, which is tricky). Maybe instead of just making it actually green, you could make it look green by having the rupee flash between light blue and yellowish orange at a ridiculous speed, which would cause the colors to "blend" to the human eye and become green (which is what they did with the Hearts in NES Batman, and part of the reason why he's purple instead of black).
I did some test way back when I started this hack, and I found that the rupee palettes (both orange and blue) are shared with the enemies. So if I change the orange palette to a proper green, all of the orange enemies will be changed to green as well.

I have yet to find a proper solution to this.

The idea of a quick flashing for blending the colors is a good one, but I am unsure as to how feasible or how good it might look. Do you have an image/gif of how Batman does it for the hearts?
If that idea can't be done or doesn't look good and all else fails for this idea, I would still want to remove the 1 rupee flashing and just leave it orange. The 1 rupee flashing thing I feel would be better if it just stays as a solid color instead of switching between orange and blue. That way they have a proper color scheme between 1 rupee and 5 rupees like all the other Zeldas do.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on November 11, 2019, 06:18:28 pm
I say, just use non flashing yellow and call it a day. Now, how to prevent the flashing, I can't pinpoint the place in the code.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Cyneprepou4uk on November 11, 2019, 10:05:16 pm
I can't pinpoint the place in the code.

Now that's a first
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: IcePenguin on November 12, 2019, 12:07:20 am
Maybe instead of just making it actually green, you could make it look green by having the rupee flash between light blue and yellowish orange at a ridiculous speed, which would cause the colors to "blend" to the human eye and become green (which is what they did with the Hearts in NES Batman, and part of the reason why he's purple instead of black).

That's really cool!  Never knew that about the Batman game.  It'd be interesting to see the results of that in Zelda, and since the rupee flashes between yellow and blue already, all that needs to be done if find the flashing speed data.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 12, 2019, 10:18:32 am
Found an image of the heart flash in Batman:
(https://i.makeagif.com/media/11-12-2019/aJPik9.gif)

I am doubtful about increasing the speed of the flashing due to photosensitive people.
I am unaware how much could that affect them, and one of my aims is to make the game accessible to as many people as possible, and photosensitive flash reduction is one thing I've been implementing in my hacks to help alleviate this.

I say, just use non flashing yellow and call it a day. Now, how to prevent the flashing, I can't pinpoint the place in the code.

Gotta say I agree with this, I'd much rather prefer to just prevent the flashing and leave the 1 rupee color as a static orange one. Maybe I could release an optional patch that changes the enemies/rupees to green if people so desire, but I will not have it by default.

Still though, I have yet to find that routine as well.
I tried looking at RAM and see what possible value could be doing the flashing or switching palettes, but couldn't find anything at first glance.
I just hope that said routine does not share its code with the heart flashes, but this being Zelda 1, it's probable it does so. :P
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on November 12, 2019, 10:42:52 am
Gotta say I agree with this, I'd much rather prefer to just prevent the flashing and leave the 1 rupee color as a static orange one. Maybe I could release an optional patch that changes the enemies/rupees to green if people so desire, but I will not have it by default.
You could do Red as a rupee colour. Red would be easy to work into the palette, if I understand how it works correctly.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on November 12, 2019, 08:20:41 pm
Guys, guys, color on screen is additive, therefore mixing blue with yellow goes towards white. You're not mixing paint.

If you want to change the rupee to green, you can, with Link's palette. The problem is, Link's palette changes when he gets the Blue and Red Rings. Therefore, every other things equal, rupees will look green, blue or red, depending on what tunic Link is wearing. If not, then you have 3 other palettes to choose from, and you would have to insert a green color somewhere in one of these palettes, used for enemies.

On the Overworld :

Palette 0 : green, yellow, brown (Link)
Palette 1 : blue, light blue, white
Palette 2 : red, yellow, white
Palette 3 : black, teal, red (Blue Moblins and Zora)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on November 13, 2019, 01:35:23 am
Guys, guys, color on screen is additive, therefore mixing blue with yellow goes towards white. You're not mixing paint.

If you want to change the rupee to green, you can, with Link's palette. The problem is, Link's palette changes when he gets the Blue and Red Rings. Therefore, every other things equal, rupees will look green, blue or red, depending on what tunic Link is wearing. If not, then you have 3 other palettes to choose from, and you would have to insert a green color somewhere in one of these palettes, used for enemies.

On the Overworld :

Palette 0 : green, yellow, brown (Link)
Palette 1 : blue, light blue, white
Palette 2 : red, yellow, white
Palette 3 : black, teal, red (Blue Moblins and Zora)


The Teal from the Zoras might work well for a slightly darker green rupee.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 13, 2019, 10:25:12 am
Guys, guys, color on screen is additive, therefore mixing blue with yellow goes towards white. You're not mixing paint.

If you want to change the rupee to green, you can, with Link's palette. The problem is, Link's palette changes when he gets the Blue and Red Rings. Therefore, every other things equal, rupees will look green, blue or red, depending on what tunic Link is wearing. If not, then you have 3 other palettes to choose from, and you would have to insert a green color somewhere in one of these palettes, used for enemies.

On the Overworld :

Palette 0 : green, yellow, brown (Link)
Palette 1 : blue, light blue, white
Palette 2 : red, yellow, white
Palette 3 : black, teal, red (Blue Moblins and Zora)

Yeah unfortunately using Link's palette means that the rupee will also change color depending on what tunic/ring he has.
The same thing happens to the Sword and the Arrow/Bow as well, they change colors depending on what ring Link has.
Given that, I went ahead and made some mockups for the Rupees:

Original (Orange & Blue, used for Orange/Blue enemies as well):
(https://i.imgur.com/bLWYdPh.png) (https://i.imgur.com/Y2zJuSv.png)

With Link's palette:
(https://i.imgur.com/vKHGU53.png) (https://i.imgur.com/6esCybP.png) (https://i.imgur.com/rFHGq7W.png)

With Moblin/Zora's palette:
(https://i.imgur.com/pfq6XCm.png)

I'm still on the idea that leaving it as plain orange without flashing is the best way to go about it, but I'm open for suggestions.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on November 13, 2019, 03:58:12 pm
Shadow, in regards to changing how the hearts line up in the file select screen. I did line them up in the modern style for my Trial of Courage hack. The thing is though, the death counter is on top of your file name, not on the bottom.

(https://ibb.co/c2bRMqg)

and this right?

(https://i.ibb.co/qk0JqKR/Zelda-Trial-Of-Courage-0.png)

I'd have to find where I did that in code though, I haven't hacked Z1 since June-ish.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on November 13, 2019, 04:11:10 pm
Yeah unfortunately using Link's palette means that the rupee will also change color depending on what tunic/ring he has.
The same thing happens to the Sword and the Arrow/Bow as well, they change colors depending on what ring Link has.
Given that, I went ahead and made some mockups for the Rupees:

Original (Orange & Blue, used for Orange/Blue enemies as well):
(https://i.imgur.com/bLWYdPh.png) (https://i.imgur.com/Y2zJuSv.png)

With Link's palette:
(https://i.imgur.com/vKHGU53.png) (https://i.imgur.com/6esCybP.png) (https://i.imgur.com/rFHGq7W.png)

With Moblin/Zora's palette:
(https://i.imgur.com/pfq6XCm.png)

I'm still on the idea that leaving it as plain orange without flashing is the best way to go about it, but I'm open for suggestions.

Either the orange or the Zora teal look great.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 13, 2019, 04:11:33 pm
Shadow, in regards to changing how the hearts line up in the file select screen. I did line them up in the modern style for my Trial of Courage hack. The thing is though, the death counter is on top of your file name, not on the bottom.

(https://ibb.co/c2bRMqg)

and this right?

(https://i.ibb.co/qk0JqKR/Zelda-Trial-Of-Courage-0.png)

I'd have to find where I did that in code though, I haven't hacked Z1 since June-ish.

Hey 3Dude!
Thanks for dropping by! :D
For the in-game hearts, Automap flips them automatically, but I managed to find exactly what part of the code flips them in the overworld and dungeons:

Code: [Select]
// Flip heart rows in HUD:
org $A507 // $06517
db $20,$D6,$08 // Originally 20 B6 08
org $A512 // $06522
db $20,$B6,$08 // Originally 20 D6 08

But the one I haven't been able to flip are the hearts in the File Select screen.
The thing is, that the PPU transfer for the Name is tied to the hearts, only the one for the Death counter and the second heart line is handled separately.
I can flip them like you have them in your image if I change the [21 89 03], [21 09 11] and [21 12 08] found in three specific locations in the following code, but what I want to accomplish is to leave the Name and Death counter positioned where they are at the moment, and only invert the hearts.

I did some debugging a while ago, and managed to found this:
Code: [Select]
// Flip heart rows in the File Select Screen:
//Found the routines, now I just gotta figure out how to invert the heart printing
//A4C6: B9 54 A2  LDA $A254,Y @ $A258 = #$24 // 0xA4D6
//A254: 21 09 11 24 24 24 24 24 24 24 24 2F 00 00 00 00 00 00 00 00 // PPU Transfer for Name and lower (starting) hearts (0xA264)
//A268: 21 32 08 00 00 00 00 00 00 00 00 FF // PPU Transfer for upper Hearts (0xA278)

//A520: B9 74 A2  LDA $A274,Y @ $A278 = #$24 // 0xA530
//A274: 21 89 03 24 24 01 21 E9 03 24 24 01 22 49 03 24 24 01 FF // PPU Transfers for Death counter(s) (0xA284)

The point of interest here is not the PPU transfers, but the routine around 0xA4D6 (the one at 0xA530 seems to handle the Death counter).
Those two routines are the ones that I believe print the hearts, as those two load the PPU transfers for the hearts.
Although, given my somewhat limited knowledge on ASM, I have not been able to figure out exactly what part tells the game where to print the hearts specifically.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on November 13, 2019, 04:17:10 pm
Oh! Sorry I put the wrong image, I meant this.

(https://i.ibb.co/YfDJYgR/4-TLo-Z-Trialof-Courage1-7-MASTER-0.png)









Also, my ASM knowledge is extremely limited :laugh:.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 13, 2019, 04:19:45 pm
Oh! Sorry I put the wrong image, I meant this.
(https://i.ibb.co/YfDJYgR/4-TLo-Z-Trialof-Courage1-7-MASTER-0.png)

Also, my ASM knowledge is extremely limited :laugh:.

Hahah don't worry.
I was able to view that image if I opened the link in another tab :P
But yep, that one part in particular is the one I want to change, but I want to leave both the name and death counter intact, and only flip the hearts.

I will continue researching those two routines, hopefully I can find what part determines which hearts go to what row.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on November 13, 2019, 09:18:41 pm
Well, I tackled the flashing problem. Against all odds. The color switch is 8 frames, and applies to a few objects, like small hearts, Triforce pieces, etc. I looked for all occurences of RAM $15, which is a frame counter. So, starting at 1E735, there's code that determines which items should be flashing. So replace this code with NOPs (EA) :

Code: [Select]
1E73D: E0 16 CPX #$16 ; Number of Rupees (66D)
1E73F: F0 0C BEQ $1E74D

That's it, no more flashing rupee. At 6B5C, there's a table with palette codes for various things. Change value at 6B72 to make the rupee another color if you want.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 14, 2019, 11:41:26 am
Well, I tackled the flashing problem. Against all odds. The color switch is 8 frames, and applies to a few objects, like small hearts, Triforce pieces, etc. I looked for all occurences of RAM $15, which is a frame counter. So, starting at 1E735, there's code that determines which items should be flashing. So replace this code with NOPs (EA) :

Code: [Select]
1E73D: E0 16 CPX #$16 ; Number of Rupees (66D)
1E73F: F0 0C BEQ $1E74D

That's it, no more flashing rupee. At 6B5C, there's a table with palette codes for various things. Change value at 6B72 to make the rupee another color if you want.

Oh that's fantastic!
Just NOP'd those two opcodes, and indeed the rupee is no longer flashing, it stays at a static orange color now, thanks!
I also went ahead and tried changing the palette for the rupee, but without a doubt the orange one is the one that looks the best. I could make it work with Link's palette, but the fact that palette changes doesn't make it suitable.
I will make an optional patch that changes the orange for green later on.
Thanks again, Trax!

---------------------------------------------------------------------------

In the meanwhile, I did some more research regarding some of the still unlabelled RAM addresses in the range of 600-700, mostly documented what seems to be RAM addresses related to the File Select screen.
I did find what some of those are and have update the Data Crystal entry accordingly:
https://datacrystal.romhacking.net/wiki/The_Legend_of_Zelda:RAM_map#RAM

---------------------------------------------------------------------------

I noticed that some of the data I wrote for the hearts in the File Select screen was wrong, I just corrected it, here's the proper data:

Code: [Select]
// Flip heart rows in the File Select Screen:
//Found the routines, now I just gotta figure out how to invert the heart printing
//A4C6: B9 54 A2  LDA $A254,Y @ $A258 = #$24 // 0xA4D6
//A254: 21 09 11 24 24 24 24 24 24 24 24 2F 00 00 00 00 00 00 00 00 // PPU Transfer for Name and lower (starting) hearts (0xA264)
//A268: 21 32 08 00 00 00 00 00 00 00 00 FF // PPU Transfer for upper Hearts (0xA278)

//A520: B9 74 A2  LDA $A274,Y @ $A278 = #$24 // 0xA530
//A274: 21 89 03 24 24 01 21 E9 03 24 24 01 22 49 03 24 24 01 FF // PPU Transfers for Death counter(s) (0xA284)

---------------------------------------------------------------------------

Last, I found out that there's one existing hack that does implement values above 255 in the rupee counter!
Although...  It's one of those "bad" hacks, so it's not available in RHDN. :P
I started dissecting the ROM, ditching the sprite/text/palette changes, and I managed to disassemble it a bit:
https://pastebin.com/uqw123pu

It's not a 100% disassembly, but it's something at least to start working on the 999 rupees.

Some points of interest regarding this >255 implementation:
Considering the above points, what needs to be changed is:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on November 14, 2019, 10:23:46 pm
With Link's palette:
(https://i.imgur.com/vKHGU53.png) (https://i.imgur.com/6esCybP.png) (https://i.imgur.com/rFHGq7W.png)
Personally, I think this looks great! The red could be a 10 or 20 rupee value item.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on November 14, 2019, 11:48:01 pm
You have two avenues for new RAM usage. Either you use CPU RAM, but the trade-off is that you need to save the value in VRAM (cartridge RAM) when saving and reload it in CPU RAM when loading a game. You also have to consider the 3 save slots. Or you use VRAM directly, and it gets saved automatically.

Also, one place that is often overlooked is the CPU stack. High values in the 100-1FF range are rarely used because the stack never goes that high.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on November 15, 2019, 10:47:17 am
You have two avenues for new RAM usage. Either you use CPU RAM, but the trade-off is that you need to save the value in VRAM (cartridge RAM) when saving and reload it in CPU RAM when loading a game. You also have to consider the 3 save slots. Or you use VRAM directly, and it gets saved automatically.

Also, one place that is often overlooked is the CPU stack. High values in the 100-1FF range are rarely used because the stack never goes that high.

From what I tested on that romhack, the amount of rupees collected past 255 do get saved on game load as well.
As for the RAM, are there any unused addresses within the 600-700 range?
From what I tested, I couldn't find anything that seems to call RAM $672 and $673, so maybe the whole rupee calculations could be moved to those two (High byte for >255, low byte for =<255).

-----------------------------------------------------------------------------

Out of that, I also started some research into using the Select button for switching the selected item for the B button.
I found that the routine which checks for the Select button to enable Pause is located at $1EC1B. The check for the button is at $1EC38 (CMP #$20).

I started doing some dummy code to make the Select button press change whatever item is selected, this is what I have at the moment. I've been testing this code with an online assembler for 6502 to see if it's giving me the correct values I need, so I haven't tested this in-game yet.

Online Assembler:
https://www.cs.otago.ac.nz/cosc243/resources/6502js-master/namedconsts.html

Code:
Code: [Select]
    INC $0656 ; Increment value at $0656
    LDA $0656 ; Load value from $0656
    CMP #$02  ; Is the item position $02?
    BEQ check_bow_arrow
    CMP #$09  ; If $0656 < 9, reset to $00
    BCC end
    LDA #$00
    BCS set_selection ; Carry is known to be set, so this act as a "BRA" from 65816

check_bow_arrow:
    LDA $065A ; Does the player have the bow? (0 if no)
    BEQ select_04
    LDA $0659 ; Does the player have arrows? (0 if no)
    BNE end

select_04:
    LDA #$04

set_selection:
    STA $0656

end:
    RTS

The only part that doesn't seem to be working is the "check_bow_arrow" routine, which for some reason doesn't work if $0659 is set to $01.

So what should that code do:

Also, another thing worth mentioning, I haven't found a proper way to bypass the "Pause" when pressing the Select button, so I don't know exactly where to hijack the original routine to completely remove the "Pause" altogether to use my custom code for this.


I'm not that adept at assembly programming, I did this code with the little I know, so any help with what remains to be done for the code (and the hijack portion for it) would be appreciated!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on November 16, 2019, 12:29:42 am
I think $672 is for Ganon's Triforce. I have nothing for $673 in my docs, so I can't say for sure.

As for the programming of the 999 rupees, again, I can see two choices. You can use 2 bytes for the number itself, and cap it explicitly at 999. This is very easy when doing ADC and SBC, but more complex when you have to actually break down the 2 bytes into 3 digits to display on screen. Or, you could use 3 bytes that represent the 3 digits separately. It's not as straightforward for additions and subtractions, but it's considerably easier to display.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DannyPlaysSomeGames on November 16, 2019, 12:12:34 pm
Personally, I think this looks great! The red could be a 10 or 20 rupee value item.
I was going to say that the problem is that the rupee wouldn't be the same color because it would keep changing color due to tunics.

But then that thought gave me an idea: what if the ring/tunic you wore affected the value of the 1 rupee? Like maybe when Link starts off normal, he encounters green rupees (that match his tunic) worth 1 and blue rupees worth 5. Afterwards, when he gets the blue ring, all the rupees he encounters are blue (the ones that match his palette and the ones that are regularly blue), so he always gets 5 rupees. Finally, when he gets the red ring, he can get regular blue rupees and red rupees, worth 20. Not only would this solve the situation of the rupee's color being inconsistent, but it's also a very convenient upgrade that helps grinding, considering that arrows are planned to have a separate counter now, and would need to be frequently bought from shops. That's just my suggestion though.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on November 18, 2019, 11:23:17 pm
I was going to say that the problem is that the rupee wouldn't be the same color because it would keep changing color due to tunics.

But then that thought gave me an idea: what if the ring/tunic you wore affected the value of the 1 rupee? Like maybe when Link starts off normal, he encounters green rupees (that match his tunic) worth 1 and blue rupees worth 5. Afterwards, when he gets the blue ring, all the rupees he encounters are blue (the ones that match his palette and the ones that are regularly blue), so he always gets 5 rupees. Finally, when he gets the red ring, he can get regular blue rupees and red rupees, worth 20. Not only would this solve the situation of the rupee's color being inconsistent, but it's also a very convenient upgrade that helps grinding, considering that arrows are planned to have a separate counter now, and would need to be frequently bought from shops. That's just my suggestion though.
That is a very interesting notion. How possible is it, do you think?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: erpster2 on December 06, 2019, 04:17:34 am

Change the duplicate bosses in Level 4 and 7 (Gleeok and Aquamentus) to Lanmola and Patra respectively.

changing the boss for level 7 to Patra is fine (use the circular & "unpredictable" version of Patra (https://zelda.gamepedia.com/Patra) to up the challenge, hee-hee - I mean the one where a group of small patras expand and contract unpredictably) but I like the "weaker" Gleeok boss in Level 4
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on December 06, 2019, 03:24:41 pm
changing the boss for level 7 to Patra is fine (use the circular & "unpredictable" version of Patra (https://zelda.gamepedia.com/Patra) to up the challenge, hee-hee - I mean the one where a group of small patras expand and contract unpredictably) but I like the "weaker" Gleeok boss in Level 4

Went ahead and made an optional patch for the bosses.
I called it "RearrangedBosses.ips", and this is what it changes:
I decided to have all of the head-variants for the Gleeoks present in both Quests, so you can fight the two, three and four head variants of it in both quests. Manhandla is the only boss that doesn't appear in 2nd Quest.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DannyPlaysSomeGames on December 07, 2019, 11:42:35 am
Went ahead and made an optional patch for the bosses.
I called it "RearrangedBosses.ips", and this is what it changes:
  • 1st Quest - Level 4: Changes the Manhandla in the level to Red Lanmolas, keeps the two-headed Gleeok at the end
  • 1st Quest - Level 7: Changes the Aquamentus for a Patra with Oval attack cycle
  • 2nd Quest - Level 2: Changes the two-headed Gleeok to Blue Lanmolas (You can still fight a two-headed Gleeok in Level 6)
  • 2nd Quest - Level 8: Changes the 3 Dodongos to a Patra with Circle attack cycle
I decided to have all of the head-variants for the Gleeoks present in both Quests, so you can fight the two, three and four head variants of it in both quests. Manhandla is the only boss that doesn't appear in 2nd Quest.
Actually, that reminds me, isn't there an unused Gleeok with one head? Either way, the boss patch seems like a pretty great idea. I was wondering what happened to this thread a while back but good to hear you're still working on it.

Also, I was curious if that rupee idea I posted was anything worthwhile.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on December 08, 2019, 12:42:21 am
It could be interesting to have a stronger and more aggresive Aquamentus, kinda like a "revenge", or as an alternate version, like the Orange/Blue Gohma.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on December 09, 2019, 02:54:32 am
It could be interesting to have a stronger and more aggresive Aquamentus, kinda like a "revenge", or as an alternate version, like the Orange/Blue Gohma.

Maybe an orange or blue Aquamentus that was only weak to a certain weapon and maybe had statues in the room providing supporting fire could be interesting... or maybe if it telegraphed blowing fire and you had to shoot arrows into it's mouth when it opened it's mouth to shoot fireballs at you in order to hurt it. Though this would probably be complicated to add into the game.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on December 09, 2019, 06:53:56 pm
A version of Aquamentus that you can only beat with the Magical Rod would be interesting.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: EthansDreamLand on December 09, 2019, 10:22:06 pm
Went ahead and made an optional patch for the bosses.
I called it "RearrangedBosses.ips", and this is what it changes:
  • 1st Quest - Level 4: Changes the Manhandla in the level to Red Lanmolas, keeps the two-headed Gleeok at the end
  • 1st Quest - Level 7: Changes the Aquamentus for a Patra with Oval attack cycle
  • 2nd Quest - Level 2: Changes the two-headed Gleeok to Blue Lanmolas (You can still fight a two-headed Gleeok in Level 6)
  • 2nd Quest - Level 8: Changes the 3 Dodongos to a Patra with Circle attack cycle
I decided to have all of the head-variants for the Gleeoks present in both Quests, so you can fight the two, three and four head variants of it in both quests. Manhandla is the only boss that doesn't appear in 2nd Quest.

I appreciate the patch, but I feel like there's a glitch with it. I was playing the redux game with the patch, but when I got to Dungeon 9, the room filled with Wizzrobes that leads to the room containing the Silver Arrows leads to a room that contains two Blue Lanmolas with no entrance to the Silver Arrows room, which leads to a glitched room that only leads outside the dungeon, making the game unbeatable. Can you please fix this?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on December 10, 2019, 04:39:30 pm
Actually, that reminds me, isn't there an unused Gleeok with one head? Either way, the boss patch seems like a pretty great idea. I was wondering what happened to this thread a while back but good to hear you're still working on it.

Also, I was curious if that rupee idea I posted was anything worthwhile.

Oh yeah there's a Gleeok with one head that's unused in the final game, though I don't know where it could be implemented, if at all, since a one-head Gleeok kinda kills the challenge of Gleeok, being one head attached and one floating around attacking you.
As for the rupee stuff, the concept is kinda neat too, and would add a feature to the tunic beside extra protection.
As for implementation, I am not sure, it would for sure require extra coding, but seems like the work for it might not be worth the effort.

It could be interesting to have a stronger and more aggresive Aquamentus, kinda like a "revenge", or as an alternate version, like the Orange/Blue Gohma.

A blue variant of Gleeok sounds cool, his sprite in that palette would be nice to look at!

I appreciate the patch, but I feel like there's a glitch with it. I was playing the redux game with the patch, but when I got to Dungeon 9, the room filled with Wizzrobes that leads to the room containing the Silver Arrows leads to a room that contains two Blue Lanmolas with no entrance to the Silver Arrows room, which leads to a glitched room that only leads outside the dungeon, making the game unbeatable. Can you please fix this?

I noticed that for some reason that room got changed, even though I didn't touch it at all.
I reuploaded the patch, with the room (hopefully) restored, could you try it out again, please?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: EthansDreamLand on December 10, 2019, 06:37:43 pm

I noticed that for some reason that room got changed, even though I didn't touch it at all.
I reuploaded the patch, with the room (hopefully) restored, could you try it out again, please?

I would love to, but unfortunately, I beaten the game before reporting the error, so I can't get to Dungeon 9 unless I beat the entire game again. Probably later, but for now, I need to get ready to see a movie.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pleasejust on December 10, 2019, 06:44:06 pm
you wrote that the game is unbeatable, then wrote that you can't test the new patch because you already beat the game before you made the post.....  :huh:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: EthansDreamLand on December 10, 2019, 06:46:17 pm
you wrote that the game is unbeatable, then wrote that you can't test the new patch because you already beat the game before you made the post.....  :huh:

Because I made another copy of Zelda 1 Redux without the boss change patch. Thankfully, the save file I had was compatible with the ROM without the boss change patch.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on December 13, 2019, 08:33:16 pm
Been playing through the most recent patch with the boss patch also and ran into this glitch at the boss of Level 7. The patra is just a garbled blotch of sprites.

 (https://i.ibb.co/cL4pqnL/level-7.png)

Also, the bombable wall cracks on the overworld can still be walked through and cracks show for the walls in both quests, even though you can only bomb the ones on your corresponding quest.

Also, for some reason, when I started the game, my max bombs were 8 instead of 10, allowing me to only upgrade to 28 bombs total.
This happened before on one of the earlier patches, but then went away on the later revisions until this one.

I also did think of an Optional quality of life change that would be great. Either change how the magic book works or make it so you can unequip it. the magic rod is great until you get that book and then it leaves fire behind that never manages to damage the targets, but lingers around so you can slam into it and take damage. Maybe either make the magic rod initially have the power of the wooden sword and the magic book upgrades it to the power of the white sword or make it start with the power of the white sword and the book upgrades it to the power of the magic sword... or just make it so you can unequip it.
The other idea would be to get rid of the magic book entirely and add a new subweapon that would be more useful like the Hookshot.

Another quality of life upgrade, that might be impossible, would be for the flute to work like the Ocarina does in later games where you can select where it's warping you to. Having to randomly use it over and over while it seems to almost blatantly take you as far away as possible from where you're trying to get to is pretty maddening and essentially makes it worthless.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on December 13, 2019, 08:54:56 pm
That graphical glitch was predictable. The game is basically loading an enemy for which the correct graphics don't exist in the PPU at this point. You can see that it uses Dodongo tiles.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: erpster2 on December 14, 2019, 12:49:23 am
perhaps put 5 Dodongos in the boss room of level 7 instead of using Patra as the boss

another suggestion: change the bosses of level 6 of both quests to Lanmolas as their graphics are used in both levels 6 and 9
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pocket on December 14, 2019, 06:47:25 am
Just popping in to say this is looking really promising, Zelda 1 is my fave NES game and pretty high on my favorite Zelda games, I'd love to see it be the best that it could be. If I had any suggestions to throw out there, would it be possible to enable us to kill flying peahats with the bow? It's so annoying that you can literally do nothing to them until they land. Also, if you're making bombable walls more apparant, will you be doing the same for burnable trees, like maybe subtly re-arranging the dots on the ones you can burn?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on December 15, 2019, 01:29:51 pm
Specific rooms in Dungeons (and possibly in Overworld) trigger changes of palettes. That's what happens when you enter a boss room, so that the boss can have its own palette. Sprite palette change for Aquamentus is index 04 in table at 1A000, bank 6. Pointer address is 1A28E. Palette data is 0F 0A 29 30. I changed it to 0F 13 16 35, and it looks like this:

(http://bwass.org/romhack/zelda1/newaquamentus.png)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on December 17, 2019, 07:47:57 pm
Specific rooms in Dungeons (and possibly in Overworld) trigger changes of palettes. That's what happens when you enter a boss room, so that the boss can have its own palette. Sprite palette change for Aquamentus is index 04 in table at 1A000, bank 6. Pointer address is 1A28E. Palette data is 0F 0A 29 30. I changed it to 0F 13 16 35, and it looks like this:

(http://bwass.org/romhack/zelda1/newaquamentus.png)
That's actually really cool looking. I like it. Aquamentus looks angry!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on December 18, 2019, 03:10:34 pm
Sorry for the really late reply, guys.
There's alot happening lately on this side.

First off, I have not been getting emails about subsequent replies to any of my project threads, hence why I haven't noticed the new replies lately.

Second, I will not be able to work on this project until 2020 due to two things:

Given those things, I don't think I'll be able to work on any project until the roll of the new year, and that's if I am better regarding my health.
I will still try to work on stuff if I do feel okay, but I really hope this is nothing serious and I can get back on track by the new year.

To address some of the new replies:


One last question, so far in the main patch (without the bosses one), what are the bugs/glitches found so far?
Is the cracked walls on the overworld one the only problem so far with it?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: IcePenguin on December 18, 2019, 04:16:14 pm
I really hope it all turns out well for you!  I've enjoyed following your projects, and "Redux" has been a great series of hacks.  See ya in the future, Shadow!  :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: CountBuggula on December 18, 2019, 08:49:15 pm
You're a genuine treatsure and important asset on this site, I really hope you get well soon.  Until then, try to enjoy your vacation the best you can.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on December 18, 2019, 09:50:08 pm
See you next year, ShadowOne, and hopefully in good shape.

As for the secrets, whether they appear in Quest 1 or 2 or both, yes, there is a separate flag for each quest. The bits are in Screen Attributes Table 5. The byte structure is as follows:

.... .xxx   Vertical Position Out of Caves (0 = second row from top)
.... x...   Enemies appear from the sides of the screen
..xx ....   Stairs Position Code (when something is pushed)
.x.. ....   Secret in 1st Quest
x... ....   Secret in 2nd Quest


All pointers for Attributes Tables (both quests) are right at the beginning of Bank 6, starting at 0x18000. See my docs for Bank 6 (http://www.bwass.org/romhack/zelda1/zelda1bank6.txt).
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on December 18, 2019, 11:48:21 pm
@ShadowOne333

Hope you get better soon! And have a Merry Christmas & Happy New Year!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: erpster2 on December 19, 2019, 12:42:28 pm

What Levels/Dungeons load the graphics for Patra and the Lanmolas?


I can answer this question for you, ShadowOne333 (hope you feel better for 2020)

the graphics for Lanmolas are used in levels 4, 6 & 9 of the 1st quest and levels 5, 6 & 9 of the 2nd quest [DungeonMaster tool showed me these]

for Patra, the graphics are used only in level 9 in both quests

suggestion: perhaps replace Gleeok in level 4 in 1st quest and level 5 in 2nd quest with Lanmolas and you won't get any graphic glitches
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on December 19, 2019, 08:42:44 pm
I can answer this question for you, ShadowOne333 (hope you feel better for 2020)

the graphics for Lanmolas are used in levels 4, 6 & 9 of the 1st quest and levels 5, 6 & 9 of the 2nd quest [DungeonMaster tool showed me these]

for Patra, the graphics are used only in level 9 in both quests

suggestion: perhaps replace Gleeok in level 4 in 1st quest and level 5 in 2nd quest with Lanmolas and you won't get any graphic glitches
Ah, but DM let's you change the tilesets for the boss of each level, but then you only have that set to work with. At least I think the functionality is there...let me check, one sec...Yup. If Patra is desired as a boss for a level, then you're stuck with just Patra and Gannon. Gannon can only be used in his fight room, so with any of the rest of the levels, you're stuck with Patra as a boss. You could do more than one though. Just tested it with a Patra in LVL1 instead of Aquamentus.

So that above Patra problem should be an easy fix.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on January 06, 2020, 03:20:17 pm
Thank you everyone for your kind wishes and hope you all had great holidays!

Vacations are over, and now that I've been medicated for like 2 weeks now, I feel somewhat better.
At least I haven't been having those awful headaches nor as strong of a dizziness these past days, so that's a step in the right track.

That said, let me see if I can gather all that's been happening here as of late.
So I cannot use the Patras and Lanmolas as freely as I wanted to, but for what I've read, using the Lanmolas is still a possibility.
Patras are stuck in Level 9 for both quests, so that's a big no.

That leaves us with the recoloured Aquamentus idea from Trax (which looks wonderful!), and using Lanmolas in other dungeons for variety's sake.

So about my original idea, which was this:
Quote from: ShadowOne333
    1st Quest - Level 4: Changes the Manhandla in the level to Red Lanmolas, keeps the two-headed Gleeok at the end
    1st Quest - Level 7: Changes the Aquamentus for a Patra with Oval attack cycle
    2nd Quest - Level 2: Changes the two-headed Gleeok to Blue Lanmolas (You can still fight a two-headed Gleeok in Level 6)
    2nd Quest - Level 8: Changes the 3 Dodongos to a Patra with Circle attack cycle

What changes do you guys recommend for including Trax's idea and Lanmolas to make the bosses more interesting and not as repeated?


See you next year, ShadowOne, and hopefully in good shape.

As for the secrets, whether they appear in Quest 1 or 2 or both, yes, there is a separate flag for each quest. The bits are in Screen Attributes Table 5. The byte structure is as follows:

.... .xxx   Vertical Position Out of Caves (0 = second row from top)
.... x...   Enemies appear from the sides of the screen
..xx ....   Stairs Position Code (when something is pushed)
.x.. ....   Secret in 1st Quest
x... ....   Secret in 2nd Quest


All pointers for Attributes Tables (both quests) are right at the beginning of Bank 6, starting at 0x18000. See my docs for Bank 6 (http://www.bwass.org/romhack/zelda1/zelda1bank6.txt).

This will be really helpful.
Are people still experiencing the extra secrets in the overworld?


-----------------------------------------------------------------------------------

Also, guys, out of that, I want to take a bit of time to get the source code I've been doing clean and ready for compilation (DarkSamus' been doing the one for Zelda 2 Redux), but I unfortunately have no experience with xkas at all.
Can someone who has worked with xkas before help me getting the source code I have on a proper compilable state for xkas? I have no idea what the errors I'm getting are from, nor why if I change anything from the TBL it refuses to compile afterwards.

Here's the link to what I have so far:
https://www.dropbox.com/s/gdvnjj4xgu1fzxb/Zelda1ReduxSRC.zip?dl=0

You just need a clean Zelda 1 (PRG0) ROM inside /rom/ to start testing compilation.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DarkSamus993 on January 06, 2020, 04:36:19 pm
Can someone who has worked with xkas before help me getting the source code I have on a proper compilable state for xkas? I have no idea what the errors I'm getting are from, nor why if I change anything from the TBL it refuses to compile afterwards.
I got it just about fixed. The errors are mainly comments not starting with "//".
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on January 06, 2020, 07:37:55 pm
Thank you everyone for your kind wishes and hope you all had great holidays!

Vacations are over, and now that I've been medicated for like 2 weeks now, I feel somewhat better.
At least I haven't been having those awful headaches nor as strong of a dizziness these past days, so that's a step in the right track.
Glad you're feeling better!

That said, let me see if I can gather all that's been happening here as of late.
So I cannot use the Patras and Lanmolas as freely as I wanted to, but for what I've read, using the Lanmolas is still a possibility.
Patras are stuck in Level 9 for both quests, so that's a big no.
As stated above, I had no issues putting Patra into Q1/L1 in place of Aquamentus, glitch free. Lanmolas are trivial as well. I'm left wondering where your difficulties might be? I'm going to try it in the second quest 2 make sure it works. Can't think of any reason it shouldn't. But we'll see. Would you like me to PM you and IPS to demonstrate the change?

That leaves us with the recoloured Aquamentus idea from Trax (which looks wonderful!), and using Lanmolas in other dungeons for variety's sake.
Love that one! Looks very cool.

This will be really helpful.
Are people still experiencing the extra secrets in the overworld?
Nope. Nothing out of sorts that I can tell with the latest version. The wall bomb hints in the overworld and dungeons both look great! However, you can still walk into the overworld crack tiles. Can't go into the caves, but you can still walk on top of the cracked wall tile.

Edit;
About the Lanmolas in the normal levels, it seems the wrong enemy tile set was selected. Selecting the correct set and using that enemy set in the same level will make using Lanmolas possible and glitchless.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on January 13, 2020, 02:47:52 pm
Hey guys!
Sorry for the delay.

As stated previously, I took some time to try to get all of my source code up and running with xkas, and make it so that all the changes made so far can be compiled without issues and the output ROM has all the proper changes into it.

It took me a while, but after some help by DarkSamus, and a lot of bugtesting on my side, I have finally been able to compile with all the changes I've been gathering over last year, and also I managed to make it so that the output ROM I get from the compilation has all the changes applied to it and fully functional! :D

It took quite some time and a lot of fixes, but it's now finally working.

Why did I do this?
Well, because I am aiming at making this project fully open-source, so that if anyone wants to do their own hack with stuff from Redux, they can do so without withdrawing any features from it.
Depriving other people from using certain features of a hack is just putting a limit on what people can do, and experiment on said hacks, or even further improve them.

That's something I stand by strongly, and I do wish more people had this thought, instead of just being overly protective with the hacks they do.
But anyway, I will continue work on Zelda Redux now with the source code from now on, no more bare hex editing unless I need to do some bugtesting in-game haha.

--------------------------------------------------------------------------------------

As stated above, I had no issues putting Patra into Q1/L1 in place of Aquamentus, glitch free. Lanmolas are trivial as well. I'm left wondering where your difficulties might be? I'm going to try it in the second quest 2 make sure it works. Can't think of any reason it shouldn't. But we'll see. Would you like me to PM you and IPS to demonstrate the change?
Love that one! Looks very cool.
Nope. Nothing out of sorts that I can tell with the latest version. The wall bomb hints in the overworld and dungeons both look great! However, you can still walk into the overworld crack tiles. Can't go into the caves, but you can still walk on top of the cracked wall tile.

Edit;
About the Lanmolas in the normal levels, it seems the wrong enemy tile set was selected. Selecting the correct set and using that enemy set in the same level will make using Lanmolas possible and glitchless.

Wait so you got Patras to work on other dungeons that are not Level 9?
How did you do so? Same for the Lanmolas.

How are you implementing them into the game, exactly?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on January 13, 2020, 04:58:11 pm
Wait so you got Patras to work on other dungeons that are not Level 9?
How did you do so? Same for the Lanmolas.

How are you implementing them into the game, exactly?
A utility made by RHDN's own Snarfblam called DungeonMaster.
https://www.romhacking.net/utilities/605/

The way that he has set it up is that it will let you know which groupings of enemies can be selected for each level.
For example, I selected Ganon/Patra and then placed the Patra in the room where Auqamentus was in L1Q1. In doing so the correct tilesets and palettes are assigned. The same applies with minor enemys, including Lanmola's. Select the correct enemy set, then place them where you wish. The catch is, you can only place enemies from that sub-set group in the entire level. Any other enemy's will still appear and function, but their graphics will be glitched because only the graphics and palettes for that subset are loaded into memory. It's how the internals of LOZ1 works.

So unless you are going to get into some serious ASM coding(which has been done) to change those behaviors, those predetermined behaviors will be the limiting factor.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on January 14, 2020, 01:35:52 pm
A utility made by RHDN's own Snarfblam called DungeonMaster.
https://www.romhacking.net/utilities/605/

The way that he has set it up is that it will let you know which groupings of enemies can be selected for each level.
For example, I selected Ganon/Patra and then placed the Patra in the room where Auqamentus was in L1Q1. In doing so the correct tilesets and palettes are assigned. The same applies with minor enemys, including Lanmola's. Select the correct enemy set, then place them where you wish. The catch is, you can only place enemies from that sub-set group in the entire level. Any other enemy's will still appear and function, but their graphics will be glitched because only the graphics and palettes for that subset are loaded into memory. It's how the internals of LOZ1 works.

So unless you are going to get into some serious ASM coding(which has been done) to change those behaviors, those predetermined behaviors will be the limiting factor.

Interesting.
I used Zelda Tech for the boss changes, so maybe that's why I ended up with things borked in that regard.

Could I ask you for a favor?
Could you perhaps try to recreate the changes I did for the bosses with Dungeon Master over a clean Zelda 1 (PRG0) ROM, and make an IPS out of it with just those changes, please?

The enemy changes are as follows:
Quote
    1st Quest - Level 4: Changes the Manhandla in the level to Red Lanmolas, keeps the two-headed Gleeok at the end
    1st Quest - Level 7: Changes the Aquamentus for a Patra with Oval attack cycle
    2nd Quest - Level 2: Changes the two-headed Gleeok to Blue Lanmolas (You can still fight a two-headed Gleeok in Level 6)
    2nd Quest - Level 8: Changes the 3 Dodongos to a Patra with Circle attack cycle

-------------------------------------------------------------------------------------------

Aside from that, I might need a little help with some ASM I started doing for trying to Switch items with the Select button.
I managed to get rid of the Pause when pressing Select by NOP'ing the code from 0x1EC4C-0x1EC51. That makes it so that pressing Select doesn't Pause the game. Basically, RAM address $00E0 is the one that handles whether the game is paused or not ($00 for unpaused, $01 for paused), so I simply got rid of the code that sets that byte.

I made some custom code, which I tested with an online 6502 assembler, but I can't get it to work in-game, not sure why.
Some explanation before the code:

1) RAM $0656 is the one that determines the position of the cursor on the inventory screen, or rather, what item is selected. This value goes from anything between $00 (Boomerang) up to $08 (Rod). It can still go past $08, but that will put Key items in the B button instead, like the Raft and so on, so the limit should be $08. Once it tries to reach $09, it should reset to $00.

Item values are:
$00 - Boomerang
$01 - Bombs
$02 - Arrows (Normal/Silver)
$03 - Bow
$04 - Candle (Red/Blue)
$05 - Flute
$06 - Food/Bait
$07 - Potions (Red/Blue)
$08 - Magic Rod

2) The cursor should bypass any possible position if a particular item has not been obtained.
For example, I think bombs are $01, so if the player still hasn't obtained bombs, the cursor should skip value $01, and instead go for the next possible value. This can be done by checking if the item in a certain item slot is obtained (each item has a RAM address to know if Link has obtained it) before incrementing the value at $0656.

Here are the RAM addresses for each item, to know if it has been obtained or not:
0658    Number of Bombs     
0659    Arrow status                $00=None, $01=Arrow, $02=Silver Arrow
065A    Bow in Inventory            $00=False, $01=True
065B    Status of candle            $00=None, $01=Blue Candle, $02=Red Candle
065C    Whistle in Inventory        $00=False, $01=True
065D    Food in Inventory           $00=False, $01=True
065E    Potion in Inventory         $00=None/Letter, $01=Life Potion, $02=2nd Potion
065F    Magical Rod in Inventory    $00=False, $01=True

3) The bow and arrows are special cases for this hack.
If you have the bow, but not the arrows, and you change the RAM address $0656 manually to value $03, then the B button item changes to the bow alone (no arrows). Same for having arrows but no bow, value $02 can select the arrows as the item, but not use them since you don't have the bow yet.
So for these two, I need to check specifically if any type of arrows ($01 - Normal, $02 - Silver) have been obtained at $0659, and if the bow has been obtained as well at $065A, to effectively make the proper check for the increment of the inventory/item select.

With those points made, here's the code I have:

Code: [Select]
bank 7;
org $EC3C // $1EC4C
jsr $BFC0
nop // NOP the LDA $00E0 at $EC3C (A5 E0)
nop // NOP the EOR #$01 (49 01)
nop // NOP the STA $00E0 (85 E0)

bank 5;
org $BFC0 //$17FD0
inc $0656 // Increment value at $0656
lda.w $0656 // Load value from $0656
cmp.b #$02 // Is the item position $02?
beq check_bow_arrow
cmp.b #$09 // If $0656 < 9, reset to $00
bcc end
lda.b #$00
bcs set_selection // Carry is known to be set, so this act as a "BRA" from 65816

check_bow_arrow:
lda.w $065A // Does the player have the bow? (0 if no)
beq select_04
lda.w $0659 // Does the player have arrows? (0 if no)
bne end

select_04:
lda.b #$04

set_selection:
sta.w $0656

end:
//jmp $EC42
rts

Any suggestion or help would be greatly appreciated!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on January 14, 2020, 06:49:15 pm
Would there not also need to be a flag set on the rod as to whether or not you have the magic book?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on January 14, 2020, 10:15:12 pm
Interesting.
I used Zelda Tech for the boss changes, so maybe that's why I ended up with things borked in that regard.
Very likely.
Could I ask you for a favor?
Could you perhaps try to recreate the changes I did for the bosses with Dungeon Master over a clean Zelda 1 (PRG0) ROM, and make an IPS out of it with just those changes, please?
No problem.
The enemy changes are as follows:
    1st Quest - Level 4: Changes the Manhandla in the level to Red Lanmolas, keeps the two-headed Gleeok at the end
Done

    1st Quest - Level 7: Changes the Aquamentus for a Patra with Oval attack cycle
Done Please note: This change requires the Dodongos and Digdoggers be changed to Patra's or minor enemies as well.

    2nd Quest - Level 2: Changes the two-headed Gleeok to Blue Lanmolas (You can still fight a two-headed Gleeok in Level 6)
Done Please note: This change required the changing of the minor enemy subset and thus level enemies have been adjusted accordingly.

    2nd Quest - Level 8: Changes the 3 Dodongos to a Patra with Circle attack cycle
Done Please note: This change required the change of both Digdoggers and Aquamentus to Patra's as well.

Check your inbox here on RHDN.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DarkSamus993 on January 14, 2020, 11:50:53 pm
I might need a little help with some ASM I started doing for trying to Switch items with the Select button.

No need to reinvent the wheel, the game already has a routine for switching the selected item in the pause menu, so we can just use that. Your choice of with or without playing a sound when the item is changed.
Code: [Select]
bank 7; org $EC3C  // $1EC4C

    // switch to bank 5
    lda.b    #$05
    jsr      $FFAC

    // hijack PAD_SELECT pressed on the overworld
    jsr      quick_select

//==============================================================================

bank 5; org $BFC0  //$17FD0

quick_select:
    lda.b    #$01   // PAD_RIGHT
    ldy.w    $0656  // current item
    jsr      $B7C8  // get next item (use 'jsr $B7A8' to also play sfx)
    rts
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on January 17, 2020, 04:29:55 pm
Thank you both, lexluthermeister and DarkSamus993!

@DarkSamus993, damn, you REALLY saved me a lot of trouble with that.
I never thought about using the code that was already available in the game for the inventory items in such a way, I thought I had to do my own thing.
Very appreciated! As always, remarkable work you do :)
Added the code to my source, compiled it, and now the Pause is removed, but we have item switching through the Select button!

@lexluthermeister, I got your IPS, and your new message from today.
I haven't tested it yet, but I have successfully disassembled the changes you did and added them to the source code I have.
I won't be able to test them until next week, but your word on it working fine on your end is sufficient to me :P
I might treat this patch as an optional patch, alongside the lower bomb max and LA's graphics.

Also, after testing out the new Bosses patch that Lex did, I will go ahead and start work on another optional patch, which is the unique colour scheme for each dungeon!
I will take Modern Classic Edition as the base for this, but given how I will make it all into source code, people will be able to re-arrange what Levels/Dungeons they want with which colours!

Once that's done, I'll see what comes next.
The biggest implementations I want for the hack are still really far-off my scope.
These three being the 999 Rupees, Diagonal sword swing and adding the Arrows as purchasable items and adding their own counter in the HUD.

There are still other points remaining, but those 3 will prove to be a real pain down the road for sure.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Zimgief on January 17, 2020, 04:47:58 pm
A french hacker made a hack that let you switch items with start button.
Also you can freely move on the item menu (right-left, up-down).
Also, the cursor moves silently now.
Also he sped up exiting the item menu.


https://www.youtube.com/watch?v=d4DM_3Nklec
Download link in the description. In the video he explains how he did some of these things.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on January 17, 2020, 06:30:05 pm
A french hacker made a hack that let you switch items with start button.
Also you can freely move on the item menu (right-left, up-down).
Also, the cursor moves silently now.
Also he sped up exiting the item menu.


https://www.youtube.com/watch?v=d4DM_3Nklec
Download link in the description. In the video he explains how he did some of these things.
It makes more sense to have the item select on the Select button. Great idea though.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Zimgief on January 17, 2020, 06:33:16 pm
Well, it can be tweaked, I suppose. :) (I agree it makes more sense with select, he just got rid of start as pause and used the freed button.)
Anyway, just thought it would save some work to use it. :p
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on February 04, 2020, 12:57:17 pm
Sorry for the really long delay, guys!
I've been currently working on some of the optional patches, working closely with lexluthermiester for the boss rearrangement patch, and I've been doing some other work which I'll post below!

A french hacker made a hack that let you switch items with start button.
Also you can freely move on the item menu (right-left, up-down).
Also, the cursor moves silently now.
Also he sped up exiting the item menu.


https://www.youtube.com/watch?v=d4DM_3Nklec
Download link in the description. In the video he explains how he did some of these things.

As lexluthermiester said, it's better to have the switch items be on the Select button rather than Start.
Start button is used to access the full map of the Overworld/Dungeon, as well as seeing what items/key items you have obtained, and your status altogether. It also shows the Triforce pieces you have gained so far.
So indeed, it is better to use Select, since all Select does is simply pause the game, and nothing more, which is something we can get rid off, seeing how the Inventory screen used in Start can act as a pause as well.

-----------------------------------------------------------------------------------------------

Now for the optional hack I've been implementing these past days, is a unique colour scheme for each and every dungeon found in the game!
It closely resembles that of Modern Classic Edition, but for Redux, there's an additional feature to it:

(https://i.imgur.com/9xVW8yC.png) (https://i.imgur.com/WQXHydM.png) (https://i.imgur.com/xgqAWjh.png) (https://i.imgur.com/8svbT36.png) (https://i.imgur.com/CUO8XI3.png) (https://i.imgur.com/kBBCljQ.png) (https://i.imgur.com/7Nuqy7m.png) (https://i.imgur.com/DO5tV6V.png) (https://i.imgur.com/P4VqkiD.png)

You can interchange the colours between whatever Level/Dungeon you want!
Given how Zelda Redux will be open-source and ready for a quick compile using xkas, you can easily modify the lines of the optional section exclusive to the unique dungeon colours, and then simply switch the colours to your liking!

After I am done with some tweaks to the code, I am unsure as to what to tackle next.
I've been trying to tackle the "Flip heart rows on File Selection screen" yet again, and I have encountered some more routines related to it.

This is what I have right now for the flipped hearts on File Select screen:

Code: [Select]
// Flip heart rows in the File Select Screen:
bank 2;
// Move upper row of hearts next to the Death counter

org $A268 // $0A278
// Move lower row of hearts next to the Player's name
db $21,$12,$08,$00,$00,$00,$00,$00,$00,$00,$00,$FF

//Found the routines, now I just gotta figure out how to invert the heart printing
//A4C6: B9 54 A2  LDA $A254,Y @ $A258 = #$24 // 0xA4D6
//A254: 21 09 11 24 24 24 24 24 24 24 24 2F 00 00 00 00 00 00 00 00 // PPU Transfer for Name and Upper (starting) hearts (0xA264)

//A268: 21 32 08 00 00 00 00 00 00 00 00 FF // PPU Transfer for lower Hearts (0xA278)
//         ^ Changing this to 21 12 08 positions the bottom hearts where desired.
// 66F9 -> 6E79

//A520: B9 74 A2  LDA $A274,Y @ $A278 = #$24 // 0xA530
//A274: 21 89 03 24 24 01 21 E9 03 24 24 01 22 49 03 24 24 01 FF // PPU Transfers for Death counter(s) (0xA284)

The important part is this one:

Found the routines, now I just gotta figure out how to invert the heart printing
A4C6: B9 54 A2  LDA $A254,Y @ $A258 = #$24            // 0xA4D6
A254: 21 09 11 24 24 24 24 24 24 24 24 2F 00 00 00 00 00 00 00 00   // PPU Transfer for Name and Upper (starting) hearts (0xA264)

The routine seems to grab the number of hearts obtained from RAM $0650-$0655, and then prints them according to the subroutine found here:
PC address: 0x0066F9 -> NES address: $6E79

I already figured out how to move the lower hearts to the row above, but I'm still trying to figure out how to move the upper hearts to the bottom to have them match the in-game hearts (and how most Zeldas display health)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Shade Aurion on February 04, 2020, 05:48:25 pm
God damn it man.. Now I gotta add this to the Let's Play shortlist  :-[ ( Awesome work <3 )
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: DannyPlaysSomeGames on February 04, 2020, 08:16:12 pm
So anyways, I wanted to share an idea (that will probably not get added).

I was messing around with the idea of splitting up the Triforce into pieces and labeling order to tell you which dungeons you have left, as a neat touch and a quick check for players.
Though with the default order that the pieces are put in, the numbers were cramped, so I tried to make some variations to see which one looked better:
(I also messed around with the text below, being more consistent and labeling it as the triforce of wisdom, though the combination of letters always left me with a double space, so I messed around with that too.)
(https://i.imgur.com/BCwyAfH.png)
Up left is the original triforce piece layout.
Up right is the pieces vertically ordered.
Down left is the pieces (somewhat) horizontally ordered.
Down right is an odd fusion between horizontal and vertical.

Obviously, this was me playing around with an idea. I heard somewhere that all (if not, most) graphics space had been used up, though all the new tiles fit in a solid line (two tiles would end up getting replaced, but then you need two extra for two of the inner pieces in order to match with the outline, so...)
(https://i.imgur.com/V6TULWh.png)

Obviously this is just me messing around with ideas that I wanted to share on here, even if it's probably not getting implemented, I just wanted to share a cool concept on this thing because I liked it (I've considered adding these into my Z1 hack, though the issue is that the automap takes up so much of the tileset space, which is annoying), but at the end of the day, it's ShadowOne333's project, and this might seem like total trash to him and that's fair.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on February 05, 2020, 12:30:41 pm
So anyways, I wanted to share an idea (that will probably not get added).

I was messing around with the idea of splitting up the Triforce into pieces and labeling order to tell you which dungeons you have left, as a neat touch and a quick check for players.
Though with the default order that the pieces are put in, the numbers were cramped, so I tried to make some variations to see which one looked better:
(I also messed around with the text below, being more consistent and labeling it as the triforce of wisdom, though the combination of letters always left me with a double space, so I messed around with that too.)
(https://i.imgur.com/BCwyAfH.png)
Up left is the original triforce piece layout.
Up right is the pieces vertically ordered.
Down left is the pieces (somewhat) horizontally ordered.
Down right is an odd fusion between horizontal and vertical.

Obviously, this was me playing around with an idea. I heard somewhere that all (if not, most) graphics space had been used up, though all the new tiles fit in a solid line (two tiles would end up getting replaced, but then you need two extra for two of the inner pieces in order to match with the outline, so...)
(https://i.imgur.com/V6TULWh.png)

Obviously this is just me messing around with ideas that I wanted to share on here, even if it's probably not getting implemented, I just wanted to share a cool concept on this thing because I liked it (I've considered adding these into my Z1 hack, though the issue is that the automap takes up so much of the tileset space, which is annoying), but at the end of the day, it's ShadowOne333's project, and this might seem like total trash to him and that's fair.

While the idea does sound good, there's some drawbacks that prevent this from being an option:

1) I already hit the limit of available tiles for both overworld and dungeons. The very last thing I did was rework the Automap hack to work in 1/4 heart decrements instead of 1/8, so I could remove the additional heart sprites Automap used and repurpose those very tiles for the cracked walls in both overworld and dungeons.

2) I tried doing the "TRIFORCE OF WISDOM" text in the Inventory Screen, but for some odd reason I am having two issues:
So yeah, sadly I don't have much to do here given how weird the Inventory screen behaves at the moment.
Best I can do is maybe try to fix and fit the "TRIFORCE OF WISDOM" text there, but that's a stretch, given how I still have no clue as to what the game does there or what routine is the one overwriting PPU range $2B80-$2B9F.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: 51mmz0rz on February 14, 2020, 01:57:41 am
I'm not sure if it's normal, or maybe something weird I did (this is actually my first playthrough), but the old women in the southwest near the lost woods says "." (single period) when you pay her 30 rupees.  Might be missing text but again I'm not really sure.  Anyway great work so far!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on February 14, 2020, 11:55:32 am
I'm not sure if it's normal, or maybe something weird I did (this is actually my first playthrough), but the old women in the southwest near the lost woods says "." (single period) when you pay her 30 rupees.  Might be missing text but again I'm not really sure.  Anyway great work so far!

Oh yeah.
I did notice that some months ago and fixed it on my end.
Although, I believe I never pushed an updated IPS file for the fix. Sorry!

--------------------------------------------------------------------------------

With that said, I believe it is the perfect time to release this:

The Legend of Zelda Redux - Source code (so far):
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux


That repository should have everything I have at the moment.
All the changes I've done and every other thing should be in there, even the optional patches.
Although, the optional patches haven't been tested in compilation yet :P
But I know the main Redux compilation does work, I just haven't bothered to try out the optional patches, but the source should have them included as well.

Right now, I am kind of in a halted state for the hack.
What's left to be done is really ASM heavy, and while I could attempt a try at the 999 rupees hack using Attack Helicopter Edition as a base, I still haven't disassembled and commented it out properly.
Automap is fully working with 1/4 hearts now as well.

The remaining stuff to do is the following:


Help needed for these points:

Optional patches (so far):


@Trax, if you are reading this, do you happen to perhaps have a clue as to why my cracked tiles show up the entrances of all the caves for both quests, despite what quest you are in?
Although, if you are in the 1st Quest and try bombing a 2nd Quest tile, it won't affect it, only 1st Quest cracked tiles can be bombed. But the cracked tiles still apepar regardless of what quest you are in.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on February 14, 2020, 06:35:29 pm
@Trax, if you are reading this, do you happen to perhaps have a clue as to why my cracked tiles show up the entrances of all the caves for both quests, despite what quest you are in?
Although, if you are in the 1st Quest and try bombing a 2nd Quest tile, it won't affect it, only 1st Quest cracked tiles can be bombed. But the cracked tiles still apepar regardless of what quest you are in.
I can answer this one. All cave entrances are present in both quests whether they are a bombable wall, burnable bush, whistle triggered or rock-push triggered. Whether or not they can be triggered depends on the quest flag. So in the case of bombable caves, the tile used to cover the cave entrance is always present, even if it can not be triggered by a bomb.

For example, let's look at the cave directly above the overworld start screen. In the first quest it can be bombed and opened. Yet in the second quest it can not because that cave has no quest 2 flag, so while it is still there, it can not be opened, even though the "bombable wall crack" tile is still present. The game will display that tile for every bombable wall, but it will not open unless it set to do so for the quest the player is in.

Does that make sense?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: darthvaderx on February 14, 2020, 07:58:23 pm
How to implement the options in your new file? In the old one it was just to apply the .ips.

And my suggestion for Link colors in the New GFX version (0F 29 27 17  >   0F 29 37 07):

(https://i75.servimg.com/u/f75/19/84/74/21/legend10.png)     (https://i75.servimg.com/u/f75/19/84/74/21/legend11.png)

(https://i75.servimg.com/u/f75/19/84/74/21/legend12.png)     (https://i75.servimg.com/u/f75/19/84/74/21/legend13.png)

Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on February 16, 2020, 01:58:17 am
What Lex said about the cracks in the wall is on point. Visually speaking, the tile itself is the same no matter if a secret is present or not. Bombable wall tiles have code E6. When the game loads the tiles, it goes through a routine to check if the tile should be replaced by something else. But that's for when the secret has been revealed vs not revealed yet. Now for the crack to show up only on its relevant quest (1st, 2nd or both), I think that would need some extra code.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: 51mmz0rz on February 17, 2020, 12:04:41 am
I tried to patch the ROM using the GitHub source, but when I do, the output ROM has some issues.  Select doesn't pause, it swaps items, and the start menu is garbled.  I think I'm using the right ROM because the previous IPS patch from DropBox seemed to work fine.  Anyone else having issues or am I doing something wrong?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on February 17, 2020, 12:44:20 pm
What Lex said about the cracks in the wall is on point. Visually speaking, the tile itself is the same no matter if a secret is present or not. Bombable wall tiles have code E6. When the game loads the tiles, it goes through a routine to check if the tile should be replaced by something else. But that's for when the secret has been revealed vs not revealed yet. Now for the crack to show up only on its relevant quest (1st, 2nd or both), I think that would need some extra code.
Oh I see.
That makes sense.
So it would require a custom codes that detects whether the current quest loaded is either 1 or 2 (I assume from making a code combined with checking RAM $16 and then checking RAM $062D-$062F), and then make it so that the tiles from the other quest get unloaded according to that?

I tried to patch the ROM using the GitHub source, but when I do, the output ROM has some issues.  Select doesn't pause, it swaps items, and the start menu is garbled.  I think I'm using the right ROM because the previous IPS patch from DropBox seemed to work fine.  Anyone else having issues or am I doing something wrong?

By Start menu, you mean the inventory screen with the items and the Triforce pieces?
If that's it, then I think I screwed up something in misc.asm when I attempted to do the changes Danny suggested for adding "TRIFORCE OF WISDOM" to the Inventory screen. I just uploaded a fix to the GitHub page.

Try compiling again, it should work just fine now.
And Select swapping items instead of pausing is normal, that's one of the last changes I did thanks to DarkSamus.
Select is pretty much useless, since Start pauses the game as well.

If you refer to the Start screen as in the File Select screen not showing the second row of hearts, that is normal, since I still haven't found a way to move the upper row of hearts below, only the lower ones.

-----------------------------------------------------------------------------------------------

Also, I should probably make a quick tutorial on how to compile the ROM.
I will start doing a proper ReadMe for the project, but in the meanwhile, all you need to do is simply download the repository, and run either the make.bat file if you are on Windows, and make.sh if you are on Linux.

It's as easy as that.
If you want to compile the ROM with the optional patches, open up the main.asm, comment out the Graphic section and uncomment the Optional.asm line.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: 51mmz0rz on February 18, 2020, 01:44:18 am
So I was talking about the inventory screen, but I didn't know what to call it.  It looks like you mostly fixed it, but I'm still getting a little bit off gibberish on the bottom of the screen:

(https://i.imgur.com/HSJoCXg.png)  (https://i.imgur.com/D21PnJs.png)

This is playable though, so thank you!

Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on February 18, 2020, 02:35:30 pm
So I was talking about the inventory screen, but I didn't know what to call it.  It looks like you mostly fixed it, but I'm still getting a little bit off gibberish on the bottom of the screen:

(https://i.imgur.com/HSJoCXg.png)  (https://i.imgur.com/D21PnJs.png)

This is playable though, so thank you!

Ah I see.
I noticed that the code for that part still has some issues.

I just sent a commit that should fix that now.
I tried it out on my end and it now works properly.

Please, try compiling again and let me know if it's fixed on your end.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: 51mmz0rz on February 19, 2020, 11:52:37 am
Working great!  Thanks again for all the work you put into this!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on February 20, 2020, 06:07:19 pm
Pushed a commit today which should be the fully working Optional bosses patch coutersy of lexluthermeister.
It's inside the Optional.asm file, so don't forget to uncomment the optional section from the main.asm if you want the game to be build with those patches!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on February 21, 2020, 10:29:53 am
I know this might be impossible, but what if you made diagnal d-pad movement, like ALTTP or Links awakening for example. So you wouldn't have to move only 4 directions. You could move 8, and the enemies could too.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on February 22, 2020, 12:25:52 am
With the new stage colors/bosses patched, the enemies show up glitched in Level-3.
(https://i.ibb.co/NZNcx4K/Screen-Shot-2020-02-22-at-12-22-27-AM.pngq)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on February 22, 2020, 05:16:38 am
With the new stage colors/bosses patched, the enemies show up glitched in Level-3.
(https://i.ibb.co/NZNcx4K/Screen-Shot-2020-02-22-at-12-22-27-AM.pngq)
This might be a problem with changes I made, let me check and be sure..

Edit: This glitch is not related to the changes I made. I tested both quests L3. What do those glitched enemies behave like?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on February 23, 2020, 04:29:15 am
They are darknuts with glitched wizrobe graphics.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on February 23, 2020, 06:20:13 am
Where did this patch come from?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 02, 2020, 04:12:44 pm
Yeah I'm not sure where that Level 3 stuff is coming from, might have been a bad base rom or something.

Out of that, I will go back to this:

See you next year, ShadowOne, and hopefully in good shape.

As for the secrets, whether they appear in Quest 1 or 2 or both, yes, there is a separate flag for each quest. The bits are in Screen Attributes Table 5. The byte structure is as follows:

.... .xxx   Vertical Position Out of Caves (0 = second row from top)
.... x...   Enemies appear from the sides of the screen
..xx ....   Stairs Position Code (when something is pushed)
.x.. ....   Secret in 1st Quest
x... ....   Secret in 2nd Quest


All pointers for Attributes Tables (both quests) are right at the beginning of Bank 6, starting at 0x18000. See my docs for Bank 6 (http://www.bwass.org/romhack/zelda1/zelda1bank6.txt).

I think I have an idea about how to make the game not load the secret tiles for both quests.
By splitting the Overworld Screen attributes (found at 0x18410 in PC or $18400 in NES).

It seems that the routine found at 0x18057 checks whether Link is in the Overworld, and if Quest 1 or 2 are loaded in. Once that check is done, it loads a two byte pointer from 0x18010/$18000 for 1st Quest, or 0x1803A/$1802A for 2nd Quest.
The problem is... Both pointers point to the exact same location, which means the Overworld Screen Attributes are shared between the two Quests, and the only defining factor which tells the game what Cave to uncover is the one that Trax posted in his reply above.

The precise attribute table which I need to split in two for either Quest is located exactly at 0x18690/$18680.
However, from what I can see, it seems like there is no exact pointer to this address, the closest one is only the 0x18410/$18400 one, which from what I see, seems to take the entire data from 0x18410$18400 up to 0x186FF/$1870F (300 bytes). Anyone feel free to let me know if I'm right or not on this.

So with this data, there's one of two things that can be done here:
Option 1 seems like the most feasible one for sure, and I can make it work (I think), given I have the proper free space to work with, which should be no issue.

What do you guys think?


I still haven't found a way to make the collision work again for the cracked walls, but at least with this a possible fix to the cracked walls always appearing regardless of the Quest should be fixed.

-------------------------------------------------------------

EDIT:
Forget what I said
I just tried it out, doesn't work :/
The cave entrances still appear in there, regardless of whether secret is defined on the table or not.
Even if I remove the definition for both Quests in the table, the caves STILL show up there.
So that table at $18680 only determines if the cave can be bombed on either Quest or both, but doesn't change the cracked wall tile appearing there.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on March 03, 2020, 11:02:36 pm
I'd think the first solution would be too much overkill to be practical. The 6 tables in Bank 6 are ubiquitous, they are used everywhere in the code. Also, most of the time, the tables are referred to directly, not through pointers.

The relevant code is around $16ABF, bank 5. I'll have to revise my docs because it's been some since I worked with Zelda 1, but I have a fairly good idea on how to proceed. From the original Tile Codes in Column Definitions, Codes E5 to EA represent a secret tile (wall, tree, Armos, etc.), which should either be replaced by its "found" equivalent (staircase for tree, cave for wall, etc.) if the secret has been found already, or to the same tile visually, but with a different Tile Code, to finally be processed and mached to its Tile Mappings. The table at $16976 does that. What we need to do is to check whether we are currently in Quest 1 or 2, compare it to the relevant bits in Screen Attributes Table 5, and if it matches, select an alternate Tile Code (wall with crack, for example) from a custom table. If it doesn't match, use the regular Tile Code.

I will conjure some code and let you know if I can find a solution. Do we have unused Tile Codes for the 6 new Secret Tiles? Because if we don't, we have a problem.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 03, 2020, 11:25:30 pm
I'd think the first solution would be too much overkill to be practical. The 6 tables in Bank 6 are ubiquitous, they are used everywhere in the code. Also, most of the time, the tables are referred to directly, not through pointers.

The relevant code is around $16ABF, bank 5. I'll have to revise my docs because it's been some since I worked with Zelda 1, but I have a fairly good idea on how to proceed. From the original Tile Codes in Column Definitions, Codes E5 to EA represent a secret tile (wall, tree, Armos, etc.), which should either be replaced by its "found" equivalent (staircase for tree, cave for wall, etc.) if the secret has been found already, or to the same tile visually, but with a different Tile Code, to finally be processed and mached to its Tile Mappings. The table at $16976 does that. What we need to do is to check whether we are currently in Quest 1 or 2, compare it to the relevant bits in Screen Attributes Table 5, and if it matches, select an alternate Tile Code (wall with crack, for example) from a custom table. If it doesn't match, use the regular Tile Code.

I will conjure some code and let you know if I can find a solution. Do we have unused Tile Codes for the 6 new Secret Tiles? Because if we don't, we have a problem.

Oh interesting.
I was trying to fiddle around with the other Attribute tables, but was going slowly through each one.

As for your question, you mean unused tile space, as in unused tiles and their IDs?
If that so, then I have already added the tiles. I think I am currently using tiles 54 (or was it 56?) and onwards for the secret caves cracked walls.
They can be seen by patching a ROM with the Redux.ips from the GitHub page on the OP, inside the /output/ folder, then opening the PPU Viewer while on the Overworld.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on March 04, 2020, 08:37:24 pm
If it were me, I'd just leave the cracked walls the way they are. People might grumble a bit when a cracked wall doesn't open up but the same thing happens in LTTP and that isn't a big deal. The cracked walls are cool.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on March 04, 2020, 09:04:35 pm
Quote from: ShadowOne333
As for your question, you mean unused tile space, as in unused tiles and their IDs?
If that so, then I have already added the tiles. I think I am currently using tiles 54 (or was it 56?) and onwards for the secret caves cracked walls.
They can be seen by patching a ROM with the Redux.ips from the GitHub page on the OP, inside the /output/ folder, then opening the PPU Viewer while on the Overworld.

Well, obviously, we'll need the tiles, as in 8x8 pixels tiles. But we need "tile definitions" as in 2x2 tiles TSAs. One for each secret you want to be different. I figure it would be walls, but maybe also trees that are a bit different? The table at $16976 reads like this:

16976: C8 D8 C4 BC C0 C0   Table for Secret Tiles Codes (6 bytes)

Codes E5 to EA

C8   Pushable Rock   (C8 C9 CA CB)
D8   Bombable Wall   (D8 D9 DA DB)
C4   Burnable Tree   (C4 C5 C6 C7)
BC   Pushable Tomb   (BC BD BE BF)
C0   Armos Statue   (C0 C1 C2 C3)
C0   Armos Statue   (C0 C1 C2 C3)


I guess there's 2 Armos entries because one type reveals a stairway and another reveals an item (Bracelet). We need as many Tile Codes as we have different tiles for these secrets. It really depends on how many secret tiles we want to have slight differences for a more reasonable secret hunt.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 04, 2020, 09:37:46 pm
Well, obviously, we'll need the tiles, as in 8x8 pixels tiles. But we need "tile definitions" as in 2x2 tiles TSAs. One for each secret you want to be different. I figure it would be walls, but maybe also trees that are a bit different? The table at $16976 reads like this:

16976: C8 D8 C4 BC C0 C0   Table for Secret Tiles Codes (6 bytes)

Codes E5 to EA

C8   Pushable Rock   (C8 C9 CA CB)
D8   Bombable Wall   (D8 D9 DA DB)
C4   Burnable Tree   (C4 C5 C6 C7)
BC   Pushable Tomb   (BC BD BE BF)
C0   Armos Statue   (C0 C1 C2 C3)
C0   Armos Statue   (C0 C1 C2 C3)


I guess there's 2 Armos entries because one type reveals a stairway and another reveals an item (Bracelet). We need as many Tile Codes as we have different tiles for these secrets. It really depends on how many secret tiles we want to have slight differences for a more reasonable secret hunt.
Ah I see.
Then yeah the one I used is 54-55-56-57 for the cracked/bombable walls.
I modified the D8 there to 54 for the new cracked wall tiles.

Although I think that's the only one that might be visible, as even with the modified Automap hack for 1/4 hearts, I already ran out of tile space in the PPU for anything outside the cracked walls, so right now I'm only focusing on that one.

One more thing, changing the tile definitions in that table to anything below 70-80 breaks their collision as well, since right now using 54-57 for the cracked wall makes them have no collision at all.

Here's what I posted some pages ago:
I still haven't found the collision data for the cracked walls on the overworld.
However, I did do some tests and found some interesting stuff:

By changing the value at 0x16987 (D8):
  • Values below $70 are walk-through
  • $70-$73 (ladder tiles) makes it so that you enter the cave immediately without even needing to blow the tile up
  • $86-$89 (cascade tiles) do make the wall solid
  • $8A (and onwards) seem to be mostly solid
So it seems like the game does have what tile values do what in a hardcoded manner, since putting the ladder tiles automatically makes Link enter the cave without even bombing it.
Now the thing is trying to find exacty what routine is in charge of defining what tiles are solid, which can be walked through, and which can be entered, and modify said routine (or add an exception) for tiles $54-$57.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on March 06, 2020, 12:24:11 am
I tamed the beast. Here's the code:


Zelda 1
Alternate Secret Tiles

--------

16AD0: BD 76A9   LDA $A976,X

Replace with :

16AD0: 20 90AC   JSR $AC90

----

Alternate Secret Tile Codes Table

16C80: C8 D8 C4 BC C0 C0

Replace with any Tile Code needed

----

16C90: A4 EB   LDY $EB      ; Current Location
16C92: B9 FE6A   LDA $6AFE,Y   ; Screen Attributes - Table 5 (VRAM)

16C95: 30 0E   BMI $q2      ; Bit 7 - 2nd Quest
16C97: 0A   ASL
16C98: 30 02   BMI $q1      ; Bit 6 - 1st Quest

16C9A: 10 10   BPL $normalTile

q1

16C9C: A4 16   LDY $16      ; Selected Save Slot (0-2)
16C9E: B9 2D06   LDA $062D,Y   ; 2nd Quest Flag (0 = 1st Quest, 1 = 2nd Quest)
16CA1: F0 0D   BEQ $altTile
16CA3: D0 07   BNE $normalTile

q2

16CA5: A4 16   LDY $16      ; Selected Save Slot (0-2)
16CA7: B9 2D06   LDA $062D,Y   ; 2nd Quest Flag (0 = 1st Quest, 1 = 2nd Quest)
16CAA: D0 04   BNE $altTile

normalTile

16CAC: BD 76A9   LDA $A976,X
16CAF: 60   RTS

----

altTile

16CB0: BD 80AC   LDA $AC80,X   ; Alternate Secret Tile Codes Table
16CB3: 60   RTS

----


Feel free to move the code around if necessary. It doesn't solve the problem of tile collision, obviously.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 06, 2020, 11:00:59 am
I tamed the beast. Here's the code:


Zelda 1
Alternate Secret Tiles

--------

16AD0: BD 76A9   LDA $A976,X

Replace with :

16AD0: 20 90AC   JSR $AC90

----

Alternate Secret Tile Codes Table

16C80: C8 D8 C4 BC C0 C0

Replace with any Tile Code needed

----

16C90: A4 EB   LDY $EB      ; Current Location
16C92: B9 FE6A   LDA $6AFE,Y   ; Screen Attributes - Table 5 (VRAM)

16C95: 30 0E   BMI $q2      ; Bit 7 - 2nd Quest
16C97: 0A   ASL
16C98: 30 02   BMI $q1      ; Bit 6 - 1st Quest

16C9A: 10 10   BPL $normalTile

q1

16C9C: A4 16   LDY $16      ; Selected Save Slot (0-2)
16C9E: B9 2D06   LDA $062D,Y   ; 2nd Quest Flag (0 = 1st Quest, 1 = 2nd Quest)
16CA1: F0 0D   BEQ $altTile
16CA3: D0 07   BNE $normalTile

q2

16CA5: A4 16   LDY $16      ; Selected Save Slot (0-2)
16CA7: B9 2D06   LDA $062D,Y   ; 2nd Quest Flag (0 = 1st Quest, 1 = 2nd Quest)
16CAA: D0 04   BNE $altTile

normalTile

16CAC: BD 76A9   LDA $A976,X
16CAF: 60   RTS

----

altTile

16CB0: BD 80AC   LDA $AC80,X   ; Alternate Secret Tile Codes Table
16CB3: 60   RTS

----


Feel free to move the code around if necessary. It doesn't solve the problem of tile collision, obviously.

Oh damn!
This is fantastic. Thank you for going the extra effort with it.

Converted it to the source code format I am using for xkas, compiled it and indeed, the cracked tiles appear only for the caves specific to each Quest. I moved the new code to 16C30 instead, since there is some Automap code at that same free space, but I even moved it around as well, just to be sure it doesn't collide with any extra code that might be done in the future.

However, there is one issue with the code.
The cracked tiles don't appear for caves that are shared between the two quests.

One quick way to test this:
I tried looking in the rest and the map, and this seems to be the same case for every other cave in the game using your new code.

Here are the maps I am using as reference for testing:

1st Quest Map:
https://i.pinimg.com/originals/aa/b7/c9/aab7c94432db6b240b19b369505a79e8.png

2nd Quest Map:
https://www.nesmaps.com/maps/Zelda/ZeldaOverworldMapQ2.png

------------------------------------------------------------------------------------

EDIT:
I screwed a little bit with your code, Trax, and I think I understand how it works.
I came up with this slight change:

Code: [Select]
org $AC40 // $16C50 - Free space
ldy.b $EB // Current Location
lda.w $6AFE,y // Screen Attributes - Table 5 (VRAM)
bmi quest2 // Bit 7 - 2nd Quest
asl
bmi quest1 // Bit 6 - 1st Quest
bpl altTile

The BPL normalTile you had there, I modified it to BPL altTile, so the cracked walls will be loaded up for all the caves that are shared between both Quests, and the rest of the code stays as you wrote it to ensure that only those that are NOT shared are loaded up according to what Quest requires it.


Also, one other thing...
I think I can make space for other two secret tiles for the overworld, if I can find a way to make the cracked tiles for the Dungeons ONLY appear when inside the Dungeons, and the cracked walls for the OW ONLY appear when in the Overworld.

Here, let me explain a little:

(https://i.imgur.com/mCqDXEO.png)

That's the tiles I am currently using for both the cracked walls in the overworld (bottom-left, next to the heart sprites) and the 4 cracked wall positions for the Dungeons.
If I can make those be loaded dynamically when in the Overworld/Dungeons accordingly, I can make other two 2x2 tile TSAs for possibly the burnable trees and another one (possibly the Armos Statues with secret entrances).

I am still not sure as to what the second one could be, but I know for sure I'd like to have burnable trees be identified on the overworld.

Please let me know what do you think
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on March 06, 2020, 08:09:45 pm
Oh, good catch. For some reason, I thought that in order to have a secret available in both quests, you had to have both bits set to 1, and I coded with that in mind. But no such screen exists. So, the bits 6-7 should be labeled "1st/2nd Quest Only" in the docs. Having both bits set to 0 simply means the secret is always there. I wonder what quest takes precedence if someone decided to set both bits to 1...

As for the tile collision, I'm still in the dark on that one. I have at least two theories, but we'll have to take a look at the routines that control Link's movements and comb the code to find out how a tile is set to "blocked", "staircase" or "walk-through". One theory is that it's done arbitrarily in the code, and check for specific tile ranges, and assign collision accordingly. My second hunch is that there's a small table somewhere in the ROM that represents the tile codes where the type changes. Like in Contra. If we assume Zelda 1 has only three types of collision, then this table could be as small as 2 bytes. For example, first byte defines the limit between walk-through and staircase, and the second byte defines the limit between staircase and blocked. Are there any other tile type?

I'll let you know if I find something. In the meantime, something that could help is to document precisely the type of each tile, especially the places where the type changes.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 09, 2020, 12:17:04 pm
Oh, good catch. For some reason, I thought that in order to have a secret available in both quests, you had to have both bits set to 1, and I coded with that in mind. But no such screen exists. So, the bits 6-7 should be labeled "1st/2nd Quest Only" in the docs. Having both bits set to 0 simply means the secret is always there. I wonder what quest takes precedence if someone decided to set both bits to 1...

As for the tile collision, I'm still in the dark on that one. I have at least two theories, but we'll have to take a look at the routines that control Link's movements and comb the code to find out how a tile is set to "blocked", "staircase" or "walk-through". One theory is that it's done arbitrarily in the code, and check for specific tile ranges, and assign collision accordingly. My second hunch is that there's a small table somewhere in the ROM that represents the tile codes where the type changes. Like in Contra. If we assume Zelda 1 has only three types of collision, then this table could be as small as 2 bytes. For example, first byte defines the limit between walk-through and staircase, and the second byte defines the limit between staircase and blocked. Are there any other tile type?

I'll let you know if I find something. In the meantime, something that could help is to document precisely the type of each tile, especially the places where the type changes.

I went ahead and redid my previous test with the tiles, so far this is what I found changing the tile value.
I ended up going up by 4 bytes each time, beginning in $00 all the way up to $FC.
If I go up byte by byte, then I'll get combinations of like half-solid/half-passable tiles for some, but if just one of the 4 tiles is walked-through but the other 3 solid, then it will all be counted as solid due to Link being too wide to fit in one 8x8 pixels tile, so I wanted to make it consistent by going up 4 bytes by 4 bytes on each test.

Quote from: Tiles test
$00-$6F = Walk-through tiles
$70-$73 = Ladder tiles, behaves as normal ladder, makes you enter the cave directly without bombing the entrance
$74-$87 = Walk-through tiles
$88-$DB = Solid tiles
$DC-$DF = Lower half walk-through, upper half solid
$E0-$FF = Solid tiles

If there's any other thing you need me to test, I'll gladly do so, even if I still have to go byte by byte to test the tile collisions.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pleiades7 on March 09, 2020, 07:31:18 pm
I went ahead and redid my previous test with the tiles, so far this is what I found changing the tile value.
I ended up going up by 4 bytes each time, beginning in $00 all the way up to $FC.
If I go up byte by byte, then I'll get combinations of like half-solid/half-passable tiles for some, but if just one of the 4 tiles is walked-through but the other 3 solid, then it will all be counted as solid due to Link being too wide to fit in one 8x8 pixels tile, so I wanted to make it consistent by going up 4 bytes by 4 bytes on each test.

If there's any other thing you need me to test, I'll gladly do so, even if I still have to go byte by byte to test the tile collisions.

Can we please get another beta release, with the optional boss hack included. Would love to try this out, and give you feedback.  :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 10, 2020, 10:31:11 am
Can we please get another beta release, with the optional boss hack included. Would love to try this out, and give you feedback.  :)
The latest beta patch is always available here:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/out

And the optional patches can always be found here:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/code/optional

They have been there for a while now.

--------------------------------------------------------------------------------------

@Trax, I tried to do some more research, and took a peek at other disassemblies like Metroid to see how it handled collision for its tiles, and I found some code which seems to do a bunch of compares regarding some of the tiles that do separate between walk-through and solid in the game.

The code is located around 0x017485 in PC address, or $17475 in NES address. I also noticed that particular portion of the ROM is not documented in your disassembly, so I think this might be the one code that is related to the collisions, but I am still not 100% sure.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pleiades7 on March 16, 2020, 08:58:48 am
The latest beta patch is always available here:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/out

And the optional patches can always be found here:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/code/optional

They have been there for a while now.

Thank you!

Quick question, for clarification. I was excited about your optional original bosses hack. However, all I could find was the "randomized bosses hack" and a note below about "working on it."

IS the randomized bosses hack the optional bosses hack you were referring to? Or are you ALSO working on a separate optional bosses hack that replaces the bosses with original bosses.

Thanx again for your hard work!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 17, 2020, 10:25:57 am
Thank you!

Quick question, for clarification. I was excited about your optional original bosses hack. However, all I could find was the "randomized bosses hack" and a note below about "working on it."

IS the randomized bosses hack the optional bosses hack you were referring to? Or are you ALSO working on a separate optional bosses hack that replaces the bosses with original bosses.

Thanx again for your hard work!
I think there's a bit of confusion.
As far as I know, I have never mentioned randomized bosses in Zelda 1.
The only thing mentioned was having unique bosses in each level, meaning no repeated bosses (like Aquamentus, Dodongos, etc.) so each level will have its own unique boss.

That's what the patch is for.
And it's done, lexluthermiester helped me with this and you can get the patch from there.
I think the only one I haven't done a proper IPS patch for is the unique coloured levels, but the source code for it is already there as well.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: TRIFORCE89 on March 17, 2020, 11:27:26 am
I'm unable to run tools against that repo on my Mac. flips, not that important - I can create an IPS through other means later. But the xkas bin is causing my some trouble for the patching. I think it is 32bit linux.

Right now I'm setting up a Windows virtual box to experiment with this, but I was curious if you had any solution that was 64-bit Mac compatible.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 17, 2020, 12:56:17 pm
I'm unable to run tools against that repo on my Mac. flips, not that important - I can create an IPS through other means later. But the xkas bin is causing my some trouble for the patching. I think it is 32bit linux.

Right now I'm setting up a Windows virtual box to experiment with this, but I was curious if you had any solution that was 64-bit Mac compatible.
You can compile it from source, here:
https://github.com/devinacker/xkas-plus

By compiling it, you should be able to generate a proper binary executable for your OS.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on March 17, 2020, 05:43:09 pm
Download Xcode (https://developer.apple.com/xcode/). It will let you compile C++. What I don't understand is why this project is not just a bunch of IPS files that you individually apply to a ROM according to the aspects of the game you want changed.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on March 17, 2020, 08:27:40 pm
Download Xcode (https://developer.apple.com/xcode/). It will let you compile C++. What I don't understand is why this project is not just a bunch of IPS files that you individually apply to a ROM according to the aspects of the game you want changed.

Yes IPS makes things WAY simpler. :thumbsup:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on March 18, 2020, 01:23:23 am
Download Xcode (https://developer.apple.com/xcode/). It will let you compile C++. What I don't understand is why this project is not just a bunch of IPS files that you individually apply to a ROM according to the aspects of the game you want changed.
Yes IPS makes things WAY simpler. :thumbsup:
I have to agree with these sentiments, IPS(or even BPS) files are very easy to use and make. Requiring people to compile from source is task almost everyone will avoid.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 18, 2020, 10:04:08 am
Huh?
But the IPS files are included in the source code too.
The optional patches are found within /code/optional, and the main Redux patch is inside the /out/ folder. The same will hold truth for Zelda 2 Redux as well and its extensive optional patches.

The only optional patch I haven't done yet is the Recoloured Dungeons one, but I might do it today, since all I have to do is just create the IPS and upload it, but that's about it.

Unless you guys meant other IPS patches? :huh:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on March 18, 2020, 10:38:31 am
Ah ok. It might save confusion to rename the folder "out" to "IPS" to make it more clear where the IPS file is located. Only a suggestion though.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 18, 2020, 10:51:44 am
Ah ok. It might save confusion to rename the folder "out" to "IPS" to make it more clear where the IPS file is located. Only a suggestion though.
Thing is, the "out" folder is where the actual compiled ROM is saved.
So once you get your clean Zelda PRG0 ROM and use it to compiled, the Redux ROM will be generated in that "out" folder.

But yeah, I think the best option here would be just to make every IPS available into a separate folder called either "ips" or "patches" ("patches" might be the one I go for), and keep it apart from the actual source code.
I will do that today once I finish the Recoloured Dungeons patch.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on March 18, 2020, 11:23:08 am
Ah, gotcha. I understand now.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 18, 2020, 11:31:18 am
Done :)

Here are all of the patches available inside the /patches/ folder from the source code, that way all the IPS patches are put together in one place, and they should now be easier to access:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/patches

The Recoloured Dungeons patch should also be there now as well.
I also modified the compiler and both the bash and batch scripts to output the main Redux IPS file inside /patches/ instead of /out/. The "out" folder should only contain the compiled ROM for anyone who wishes to screw around with the source and compile it manually.

Hope this helps, I'll also provide the direct access to the IPS patches in the OP as well, alongside the link to the source code.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on March 19, 2020, 03:15:38 am
Using the patches in the linked folder, I still get this in level three. They knights are garbled whether the Recolored Dungeon patch is applied or not.

(https://i.ibb.co/NZNcx4K/Screen-Shot-2020-02-22-at-12-22-27-AM.pngq)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 19, 2020, 10:26:17 am
Using the patches in the linked folder, I still get this in level three. They knights are garbled whether the Recolored Dungeon patch is applied or not.

(https://i.ibb.co/NZNcx4K/Screen-Shot-2020-02-22-at-12-22-27-AM.pngq)
Are you using the Rearranged Bosses patch?
I think that's the one at fault.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on March 19, 2020, 08:57:53 pm
Yeah, that's the one that I'm pretty positive is causing it.
I remember mentioning other such errors before and it was said to be fixed, but now there are strange errors on dungeon enemies elsewhere in the game.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on March 20, 2020, 03:04:39 am
If I understand you correctly, that's the patch I lent assistance in. Let me look into it and I'll chime in shortly.

EDIT1; Confirmed, that's a thing that I missed. Let me fix it and I'll get a new patch posted shortly.

EDIT2; Fixed. Here's the link to the new IPS patch.

https://www.dropbox.com/s/0b78ixdnnuqni1s/Rearranged%20Bosses%20Fixed%5B20-03-20%5D.ips?dl=0

@ShadowOne333
I changed the red Darknuts to yellow Wizrobes as that was the enemy set selected. If that is incorrect, let me know and I'll switch it around to have the Darknut set. Also, that set included the Lanmola's. I think I may have overlooked changing the Digdogger to Lanmola's. That was set as well. It's been a while since we last discussed this so I don't remember which way you wanted it.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Psycho Fox on March 20, 2020, 07:48:29 am
Sorry to be a noob but that IPS patches don't work for me.  I downloaded them from the OP but when I try to use them through Lunar the program says they're not valid IPS files.  I tried FLIPS too just for the sake of it and the IPS files aren't recognised there either.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on March 20, 2020, 08:25:37 am
Sorry to be a noob but that IPS patches don't work for me.  I downloaded them from the OP but when I try to use them through Lunar the program says they're not valid IPS files.  I tried FLIPS too just for the sake of it and the IPS files aren't recognised there either.
I just downloaded fresh copies of the IPS files to make the fixed shown in the post above. Are you sure you grabbed the right files?
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/patches
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/master/patches/optional

When you click on each it will take you to each patches file page. Don't click on "View Raw", click on the download button(next to the "History" button).
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Psycho Fox on March 20, 2020, 10:07:19 am
Thanks for the clarification.  I had right-clicked on the link to the IPS files and "saved link as..." rather than left-clicking and opening up the page from which one downloads the real IPS files with the download button.

Knew I was being a noob!  Thanks again. :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 20, 2020, 10:38:22 am
If I understand you correctly, that's the patch I lent assistance in. Let me look into it and I'll chime in shortly.

EDIT1; Confirmed, that's a thing that I missed. Let me fix it and I'll get a new patch posted shortly.

EDIT2; Fixed. Here's the link to the new IPS patch.

https://www.dropbox.com/s/0b78ixdnnuqni1s/Rearranged%20Bosses%20Fixed%5B20-03-20%5D.ips?dl=0

@ShadowOne333
I changed the red Darknuts to yellow Wizrobes as that was the enemy set selected. If that is incorrect, let me know and I'll switch it around to have the Darknut set. Also, that set included the Lanmola's. I think I may have overlooked changing the Digdogger to Lanmola's. That was set as well. It's been a while since we last discussed this so I don't remember which way you wanted it.

Thank you for the hotfix, lex! :D
I just went ahead and added the fixed IPS to the GitHub page, and also updated the source code of the patch with the new changes.

Check them out and let me know if everything works properly :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Mandrasx on March 20, 2020, 05:11:18 pm
I've always sort of preferred the Link's Awakening graphics (Cute or Modern Classic Edition) but the one imperfection that bugged me was Shrouded Stalfos replacing all the Lynels on Mt. Doom! There IS a Lynel from the Oracle of Ages/Seasons games but its horizontal sprite is much wider than 16x16.

Using YY-CHR I was able to modify la_gfx03.bin and insert a slightly condensed version of the Oracle Lynel in place of the Stalfos. The sideways sprite is modified to fit 16x16, and the up/down sprites required no changes:

https://i.imgur.com/AfzrwqO.gifv


The below attachment includes:

--An ips patch of the basic Redux + LA GFX with Lynel (apply to clean PRG0 rom).

--Source code stuff:
The main.asm, optional.asm, and LinksAwakening.asm files configured to compile the basic Redux + Links Awakening GFX from the /code directory (move the three la_gfx.bins and these optional + LinksAwakening asms from /optional to /code).*
*NOTE: In order to compile this I had to move the la_gfx.bins, optional.asm, LinksAwakening.asm into the /code folder and adjust main.asm to INC the LinksAwakening.asm directly instead of going through the optional.asm. For some reason simply uncommenting the appropriate things was resulting in 'file not found.'

--The modified la_gfx03.bin.

--The above preview pic + an in-game pic.

--A Bishawk save state with Link outside the Blue Sword cave with one Lynel onscreen (for in-game observation).

https://drive.google.com/open?id=1jUW9dwzd2F3n7p6W68QXY6SEV1BBeBtg
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 23, 2020, 12:40:51 pm
I've always sort of preferred the Link's Awakening graphics (Cute or Modern Classic Edition) but the one imperfection that bugged me was Shrouded Stalfos replacing all the Lynels on Mt. Doom! There IS a Lynel from the Oracle of Ages/Seasons games but its horizontal sprite is much wider than 16x16.

Using YY-CHR I was able to modify la_gfx03.bin and insert a slightly condensed version of the Oracle Lynel in place of the Stalfos. The sideways sprite is modified to fit 16x16, and the up/down sprites required no changes:

https://i.imgur.com/AfzrwqO.gifv


The below attachment includes:

--An ips patch of the basic Redux + LA GFX with Lynel (apply to clean PRG0 rom).

--Source code stuff:
The main.asm, optional.asm, and LinksAwakening.asm files configured to compile the basic Redux + Links Awakening GFX from the /code directory (move the three la_gfx.bins and these optional + LinksAwakening asms from /optional to /code).*
*NOTE: In order to compile this I had to move the la_gfx.bins, optional.asm, LinksAwakening.asm into the /code folder and adjust main.asm to INC the LinksAwakening.asm directly instead of going through the optional.asm. For some reason simply uncommenting the appropriate things was resulting in 'file not found.'

--The modified la_gfx03.bin.

--The above preview pic + an in-game pic.

--A Bishawk save state with Link outside the Blue Sword cave with one Lynel onscreen (for in-game observation).

https://drive.google.com/open?id=1jUW9dwzd2F3n7p6W68QXY6SEV1BBeBtg

I replied to you through PM, but I'll post it here quickly :P
Those are some lovely Lynels for sure, I knew I had seen some Lynel sprites in the Oracle or Awakening games, but I just didn't look deep enough.

I already implemented the Lynel sprites to the LA GFX Optional patch (the Lynels look great in-game!), updated the graphics .bin files for said patch, and also took some time to update the Hearts in the HUD to better resemble those from Link's Awakening, just to keep the overall theme of LA more consistent. :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Mandrasx on March 25, 2020, 04:29:30 am
Hey, there are a few other things I think are a bit off with the LA graphics -- the most notable is the extraneous green pixel outside Link's hat in one of the sprites. Also the 'item acquired' pose is kind of messed up. The rest is possibly subjective, but I think the default NES palette doesn't work well with how the three colors are used on Gameboy. Here is an info-graphic explaining everything:

https://i.imgur.com/Q09opYt.png


The modified gfx bins:

https://drive.google.com/open?id=1Y5JeGghI0u95HBEfNrhl15DTQ-SQrCPl
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 25, 2020, 01:19:24 pm
Hey, there are a few other things I think are a bit off with the LA graphics -- the most notable is the extraneous green pixel outside Link's hat in one of the sprites. Also the 'item acquired' pose is kind of messed up. The rest is possibly subjective, but I think the default NES palette doesn't work well with how the three colors are used on Gameboy. Here is an info-graphic explaining everything:

https://i.imgur.com/Q09opYt.png


The modified gfx bins:

https://drive.google.com/open?id=1Y5JeGghI0u95HBEfNrhl15DTQ-SQrCPl

Ah yeah I didn't really test the GFX graphics that well.
I knew Zelda 1 did something odd for the obtain item graphics, in which it only uses half of the walking down sprite, and the other half is the one used for the Story Text, where Link is holding the "Please read the instruction manual" scroll.

I took your suggestions and now fixed the odd pixel, and also the sprite for Obtaining Item, and reworked it a bit so it looks good in the intro text:

(https://i.imgur.com/AvK7lUK.png)

As for the suggestion about removing Link's shading, I could make it that way, or I could simply modify Link's palette, as it's just a one byte change to modify the brown colour to something else.
Here are some quick tests I did (In order: Original/Mockup #1, Mockup #2):

(https://i.imgur.com/sPn0DQU.png) (https://i.imgur.com/7YfvSzB.png) (https://i.imgur.com/LG2Xi5u.png)

Let me know what do you think!

Also, I have FINALLY tested the Optional patches compilation from the source code, and have fixed all the compilation errors it threw, so now compiling them should be possible by simply uncommenting the optional line in main.asm
That should make all of the optional patches work :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: mdtauk on March 25, 2020, 04:22:08 pm
Mockup #2 gives a good contrast, but how well does it work against both light and dark backgrounds.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on March 25, 2020, 06:03:52 pm
Mockup #2 gives a good contrast, but how well does it work against both light and dark backgrounds.

This.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Mandrasx on March 26, 2020, 12:49:41 am
Yeah, I was thinking removing the shading kind of drains too much detail out of the sprite...

Really the green tunic is the problem as it has a higher luminosity than the skin tone, so it doesn't properly create the shadow effect. The red/blue tunic colors work a lot better. I was messing with changing green tunic from 29 to 19 and using 06 or 07 as the outline, as the GB version has a practically black outline.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on March 26, 2020, 05:50:08 pm
I agree.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Mandrasx on March 27, 2020, 12:46:26 pm
(https://i.imgur.com/KfjCVGJ.gif)


I was going to say a bunch of stuff about the colors... but I realized my real problem is I've been trying 'fix' the overly garish FCUEX palette (above). Things like Link's color scheme seem to have better contrast with nestopia_yuv, quicknes, UnsaturatedFinal, SmoothFBX, Wavebeam, etc.

(https://i.imgur.com/y5pBjS3.png)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: darthvaderx on March 27, 2020, 04:03:01 pm
The Zelda1_Redux.ips file came wrong this time, when I put the patch on the rom what appears is the New GFX version
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 27, 2020, 10:18:43 pm
The Zelda1_Redux.ips file came wrong this time, when I put the patch on the rom what appears is the New GFX version

Oh sorry, I did compile the new maing and new GFX IPSs on my PC, but I forgot to commit the changes.

It should be fixed now :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on March 31, 2020, 04:14:34 pm
Can I just say, right quick, how much I detest that design for the tektites? Anything but that, please?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pleiades7 on March 31, 2020, 08:41:47 pm
feedback is always welcome :)

A fun addition to all of this would be optional hacks that included updated graphics for  the monsters and other things. I noticed one other ongoing hack similar to this that is trying to be a graphically enhanced Zelda.

While you are shooting for the best possible version of the original Zelda, it might be cool to include updated graphics for some things (kinda like you did for Link).

Just my 2 cents. Otherwise, fine work! Love the changes. Can't wait until this is done.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on March 31, 2020, 09:55:32 pm
Can I just say, right quick, how much I detest that design for the tektites? Anything but that, please?
You mean the originals or LA ones?
A fun addition to all of this would be optional hacks that included updated graphics for  the monsters and other things. I noticed one other ongoing hack similar to this that is trying to be a graphically enhanced Zelda.

While you are shooting for the best possible version of the original Zelda, it might be cool to include updated graphics for some things (kinda like you did for Link).

Just my 2 cents. Otherwise, fine work! Love the changes. Can't wait until this is done.
That's planned, actually.
One of the points is to redo or retouch most of the sprites to be more akin to the official artwork of each character/enemy.
I already have some mockups made for a couple enemies, but I have yet to work on that in its entirety.

Given how easy it is to implement, I'm leaving it on the end of the TODO list, but if anyone has some sprite mockups, be my guest!
You guys can post them here for sure.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on April 01, 2020, 12:26:28 am
Thank you for the hotfix, lex! :D
I just went ahead and added the fixed IPS to the GitHub page, and also updated the source code of the patch with the new changes.

Check them out and let me know if everything works properly :)
Sorry I didn't get right back. Life has been bizarre lately...

You're very welcome, glad to help!

I did find that the Links Awakening IPS has a few GFX glitches when applied to the newer IPS. I'll get some screenshot posted soon. Otherwise everything looks good!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on April 01, 2020, 10:17:39 am
I did see on git that you are working to add a arrow counter. I will quote myself were I added a patch that does basically the same. I did make the the full heart container to a fragmented one. That one needed a entry in SRAM and the HUD table. To make it happen I had to be expand the table in SRAM and on the update table at CPU $302. Read the patch file for the DavePatcher. It will explain formats and what I put on what place. It might need slight changes for Revision 0.

Spider Patch file: https://www.dropbox.com/s/xi97vva2zst4b3t/patch.txt?dl=0
IPS for PRG1: https://www.dropbox.com/s/lt2fwksggbfr82o/QuaterHeartContainers.ips?dl=0

If you do testing it is good if you can do multiple things in a play-through to save time overall. I guess making list of the enemy health and damage tables is one of them. When you look for not used values use breakpoints. In the picture you see some of free values in SRAM. There will be writes when saving and loading but only $00 values. 

(https://i.imgur.com/38303wX.png)

I am interested to see when you can finish describing a table. I don't know how to beat the game and it is always a big time factor to properly test things.


*NEW

Here is a patch with quarter heart and HUD indicator.
https://www.dropbox.com/s/lt2fwksggbfr82o/QuaterHeartContainers.ips?dl=0

As promised I will share a SpiderPatch here too!
https://www.dropbox.com/s/xi97vva2zst4b3t/patch.txt?dl=0

The benefits of the Spider Patch are that you can edit things. I can add a bunch of things you can enable or disable.

Get the patcher here: http://spiderdave.com/programs.php
There is a link to the git. Then download the folder from there.
It looks like this:
(https://i.imgur.com/zqZ3IdE.png)

You will need to look at the config file and tell it where to find the ROM to patch and where to put and how to name it after.
Then open and run a patch file to mod your ROM.

The patch file has a simple format. First you might add "offset 10" this will skip the header and I can write PRG addresses now.
Here how to put values after a new offset: put "offset" "values" "more values till end of line"
If you like to describe something use a / "everything after a slash will be ignored by the patcher. Comment here till end of line!

If you like to disable something just comment it out with slashes.

My example might be confusing since I explained my research. This might be useful to understand it when doing further changes.
Look at the examples of SpiderDave they explain a lot more.

When I make further changes I can just update this link with the Spider Patch.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 01, 2020, 10:38:16 am
Sorry I didn't get right back. Life has been bizarre lately...

You're very welcome, glad to help!

I did find that the Links Awakening IPS has a few GFX glitches when applied to the newer IPS. I'll get some screenshot posted soon. Otherwise everything looks good!

Don't worry! It for sure has been strange as of late, but no hurries :p
I'll await for your screenshot to make the appropriate changes, thanks!

I did see on git that you are working to add a arrow counter. I will quote myself were I added a patch that does basically the same. I did make the the full heart container to a fragmented one. That one needed a entry in SRAM and the HUD table. To make it happen I had to be expand the table in SRAM and on the update table at CPU $302. Read the patch file for the DavePatcher. It will explain formats and what I put on what place. It might need slight changes for Revision 0.



Oh interesting!
So basically, what you did was add a custom icon and entry for a Heart Pieces counter?
I did add one for the Arrows, but that's as far as I went, I haven't really tried implementing it yet at all outside of just displaying the arrow in the HUD, no counter yet at all.

Very neat stuff!
Let me ask, from your tests, what RAM and SRAM offsets did you find were unused?
This might help for both the arrow and the 999 rupee counter too, and if there's enough unused memory, also a way to save to SRAM the number of hearts you saved the game at (as long as it is anything aboe or equal 3 hearts).

I'll take a look at your posts and replies, it's incredible information for sure, it will help a ton.
Many, many thanks!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on April 01, 2020, 10:56:39 am
The heart counter is saved to your save table in SRAM.

CPU $677-67b seems to be free space that will go into the save table. I told the 3Dude to test it fully. I told him to test $67f too but he did not report that one false yet.
I do look at the ROM for a bit over two weeks now so I am not that familiar with the game.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 01, 2020, 12:04:53 pm
The heart counter is saved to your save table in SRAM.

CPU $677-67b seems to be free space that will go into the save table. I told the 3Dude to test it fully. I told him to test $67f too but he did not report that one false yet.
I do look at the ROM for a bit over two weeks now so I am not that familiar with the game.

Oh my gosh, I totally still need to check that!

I let you know what I find later, Shadow and bogaa.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on April 01, 2020, 01:16:11 pm
I did load a lot of empty bytes to my SRAM page so CPU $7f2d-7ffe is free SRAM. This is at PRG $779d. I also made my patch.txt more readable now. If you have question about it just ask. Documenting things is not my strong side yet.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on April 01, 2020, 03:07:07 pm
You mean the originals or LA ones?

LA ones. They look like weird two-legged fleas.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 01, 2020, 03:21:56 pm
Oh my gosh, I totally still need to check that!

I let you know what I find later, Shadow and bogaa.

Please do let us know how it goes! :D
The more RAM addresses we can cross out, the better!
Once those addresses are confirmed to be unused, I could update the Data Crystal entry myself and properly add those as "Unused"

I did load a lot of empty bytes to my SRAM page so CPU $7f2d-7ffe is free SRAM. This is at PRG $779d. I also made my patch.txt more readable now. If you have question about it just ask. Documenting things is not my strong side yet.

Oh wow, so basically with your hack, we now have around $D0 (208) free bytes for SRAM?
Sounds like more than enough for anything that might be required for this hack. That's amazing.

Just some questions though.
For starters, are the addresses in your code PRG1 or PRG0?
I am using PRG0 as the base ROM for this hack, since that's what the disassembly is based off.
Another thing, is that in the patch.txt file, I assume that since I won't be using the Heart Piece stuff, I will not need the following code, correct?

Code: [Select]
////////////////////////////////////////////////////////////////////
//Make the HeartContainer a Quater of a Heart

/ inc $0677 ;increase value in SRAM
/ lda #$04    ;loade 04 (MaxHeartFragments)
/ jmp $7ee1 ;Jump to free space
 
/ cmp $0677      ;compare
/ beq $06        ;branch if equal to adc
/ lda $066f
/ jmp $73b5      ;not equal jump to store
/ lda #$00      ;reset counter
/ sta $0677   
/ clc ;reset carry
/ lda $066f      ;add heart container and health
/ cmp #$f0 ;Overflow check
/ bcs $02
/ adc #$11
/ JMP $73B5      ;jump to store

//Hijack Here
put 6c74 EE7706A9044CE17E

//NewSpace
put 7751 CD7706F006AD6F064CB573A9008D770618AD6F06C9F0B00269114CB573

I would only need what starts at Visual and forth, right?
I might need to replace the code for the hearts with a custom one for Arrows.

Last, in this part of the code:
Code: [Select]
/"erase old table" (+ update half heart routine)
put 6507 AD77 068D 2E03 A021 AD64 0660 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
Does that mean that all the addresses $6507, $AD77, $068D, $2E03, $A021, $AD64 and $0660 should be replaced with 29 entries of $FF?

LA ones. They look like weird two-legged fleas.

Yeah I'm not fond of the LA Tektites neither.
The only other ones that could be used are the Water Tektite sprites from LA/OoS/OoA, which look like this:

(https://gamepedia.cursecdn.com/zelda_gamepedia_en/4/4f/LADX_Water_Tektite_Sprite.png?version=071834c85612410651e77781a574a850)

It's the only other official sprite for Tektites in 8bit 2D, other than Zelda 2.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on April 01, 2020, 03:39:03 pm
The Water tektite would make a good base for a new sprite.
It would at least look like a proper creature instead of that thing.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pineapplefish on April 02, 2020, 11:29:30 am
ShadowOne333 and gang, you're all doing terrific work. I especially like the idea of keeping the original sprites and fixing them slightly.

I just want to share the following: the magical clock item that drops occasionally seems a little OP to me. One can just relax and take their sweet time on the current screen when they grab one. Would it be possible to introduce a timed element to it? Such as when you grab one you have a specific amount of time to deal with the current enemies before they unfreeze.

Just thought I'd throw this out there. All in all, it's a pretty minor thing.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Mandrasx on April 02, 2020, 04:12:18 pm
Has anyone noticed that either the Link sprite or sword sprite y-position is offset by 2 when entering dungeons? This even occurs in the vanilla game, but is less noticeable because the horizontal sword sprite is more centered with Link's mid-line.

This makes the lower position with the LAGFX kind of problematic, as the sword is practically emerging from his feet in dungeons. I was able to get a better-looking result by moving the sword up 2 pixels (making it even with his hand when in dungeons and slightly above when outside). I don't know if there is any other way to fix this?

(https://i.imgur.com/VnJbgDo.gif)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 03, 2020, 08:40:57 am
Has anyone noticed that either the Link sprite or sword sprite y-position is offset by 2 when entering dungeons? This even occurs in the vanilla game, but is less noticeable because the horizontal sword sprite is more centered with Link's mid-line.

This makes the lower position with the LAGFX kind of problematic, as the sword is practically emerging from his feet in dungeons. I was able to get a better-looking result by moving the sword up 2 pixels (making it even with his hand when in dungeons and slightly above when outside). I don't know if there is any other way to fix this?

(https://i.imgur.com/VnJbgDo.gif)



Yes! Oh my gosh I thought I was the only one who noticed :o.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lastdual on April 03, 2020, 10:41:09 am
Yeah, that always bothered me. In the personal hack I use, I edited the position a bit to make it less noticeable, though not really fixed:

(https://i.imgur.com/GPxa79N.jpg)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Mandrasx on April 03, 2020, 03:33:33 pm
There is a bug with the item select. There are two ways to trigger it:

When handing the letter to the old woman, and before you choose the blue or red potion, if you start cycling items with select you will go out of the intended range and start getting heart pieces/triforce/random stuff. If you try to use them the game crashes.

The second cause is whenever you completely consume a red/blue potion and the item is removed from your inventory. The letter comes back in its place, and using select to go past the letter will take you into the invalid key items/random tiles (compass, etc). You CAN get it back to a valid inventory item by pausing and cycling through until the cursor lands on something in your inventory than unpausing.

You can get it back to normal for good by going back to the old woman and buying a potion (removing the letter again), but you need to keep at least the blue version in your inventory to prevent it from happening again.

(https://i.imgur.com/72Jmoyc.gif)


Also Aquamentus is suffering from some kind of disease! I was able to make him green by modifying his colors:
[1A2A0]
13 16 35
1D 2A 36

(https://i.imgur.com/p5mU5GK.gif)


Colorized Dungeons:
Dungeon 5 is really hard on the eyes; in the asm file it says Level-5 is supposed to be a "Brown" color scheme. I removed the reddish color:
[19807,19878,198B8]
0F 08 17 18
0F 08 2D 18

(https://i.imgur.com/T0qinAD.gif)

Dungeon 9 is red too... but you also get the Red Tunic/Ring here and a lot of the enemies are red. There's just a whole lot of red going on in this very long dungeon. Maybe Death Mountain could be the one dungeon that uses the default grey color scheme?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: gzip on April 04, 2020, 02:46:01 am
There is a bug with the item select. There are two ways to trigger it...

I've fixed this issue in my hack, A New Light (http://www.romhacking.net/reviews/5392/). It's my first attempt at assembly though (directly in hex as well), so it could probably be coded better. It still might be helpful. The addresses are the same since I used the redux code as a start (thanks!). There's still one issue in my code that if you have the letter and no boomerang it won't cycle (this doesn't happen in my hack since you start out with the boomerang).
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 05, 2020, 03:27:54 pm
Oh damn guys, I disappear for a couple days and all hell breaks loose :P
Okay let me address the recent posts:

ShadowOne333 and gang, you're all doing terrific work. I especially like the idea of keeping the original sprites and fixing them slightly.

I just want to share the following: the magical clock item that drops occasionally seems a little OP to me. One can just relax and take their sweet time on the current screen when they grab one. Would it be possible to introduce a timed element to it? Such as when you grab one you have a specific amount of time to deal with the current enemies before they unfreeze.

Just thought I'd throw this out there. All in all, it's a pretty minor thing.

I'm still thinking about what to do with the clock.
I always thought the clock was really out of place in Zelda 1 tbh.
I might lower its drop rate a bit when the Arrow drops for enemies are implemented, so it becomes a rare item instead of a common one, but I am still unsure if that's how I will address the Clock stuff alongside the Arrows.

Has anyone noticed that either the Link sprite or sword sprite y-position is offset by 2 when entering dungeons? This even occurs in the vanilla game, but is less noticeable because the horizontal sword sprite is more centered with Link's mid-line.

This makes the lower position with the LAGFX kind of problematic, as the sword is practically emerging from his feet in dungeons. I was able to get a better-looking result by moving the sword up 2 pixels (making it even with his hand when in dungeons and slightly above when outside). I don't know if there is any other way to fix this?

(https://i.imgur.com/VnJbgDo.gif)

Ah yet another oversight when implementing the LA graphics.
I have already modified the graphics for the sword, so they should now be like in your fix :)

There is a bug with the item select. There are two ways to trigger it:

When handing the letter to the old woman, and before you choose the blue or red potion, if you start cycling items with select you will go out of the intended range and start getting heart pieces/triforce/random stuff. If you try to use them the game crashes.

The second cause is whenever you completely consume a red/blue potion and the item is removed from your inventory. The letter comes back in its place, and using select to go past the letter will take you into the invalid key items/random tiles (compass, etc). You CAN get it back to a valid inventory item by pausing and cycling through until the cursor lands on something in your inventory than unpausing.

You can get it back to normal for good by going back to the old woman and buying a potion (removing the letter again), but you need to keep at least the blue version in your inventory to prevent it from happening again.

(https://i.imgur.com/72Jmoyc.gif)


Also Aquamentus is suffering from some kind of disease! I was able to make him green by modifying his colors:
[1A2A0]
13 16 35
1D 2A 36

(https://i.imgur.com/p5mU5GK.gif)


Colorized Dungeons:
Dungeon 5 is really hard on the eyes; in the asm file it says Level-5 is supposed to be a "Brown" color scheme. I removed the reddish color:
[19807,19878,198B8]
0F 08 17 18
0F 08 2D 18

(https://i.imgur.com/T0qinAD.gif)

Dungeon 9 is red too... but you also get the Red Tunic/Ring here and a lot of the enemies are red. There's just a whole lot of red going on in this very long dungeon. Maybe Death Mountain could be the one dungeon that uses the default grey color scheme?

Oh boy, some people have already mentioned the bug with the Select button doing that, but I haven't found a way to completely fix it yet :/
It seems to trigger ONLY when you have the Old Letter in the inventory, if you use the Red/Blue potions and it reverts back to the Old letter, the same thing will happen.
So it seems the Old Letter is the one at fault here.
I tried adding other items, key items, etc., and it only seemed to bork when you have the Old letter, so that one should be the culprit of the issue.

As for the other two issues:

1) Aquamentus' palette is modified inside the "redux.asm" file at the VERY end of it, simply comment it and you will get the default green palette for him.
2) The brown dungeon palette I agree in, but it can be easily changed inside the Recoloured Dungeons.asm file. I will still leave it as-is, since the colours are based off from the Modern Classic hack.

I've fixed this issue in my hack, A New Light (http://www.romhacking.net/reviews/5392/). It's my first attempt at assembly though (directly in hex as well), so it could probably be coded better. It still might be helpful. The addresses are the same since I used the redux code as a start (thanks!). There's still one issue in my code that if you have the letter and no boomerang it won't cycle (this doesn't happen in my hack since you start out with the boomerang).

Oh so you managed to fix the issue with the Old Letter?
Would you please share what changes you made to get that fixed?
That would greatly help to finally have this bug fixed, since it has eluded me for quite some time now.
Also, the issue with the items not cycling when you only have the Old letter and no boomerang is exclusive to your fix, or is it also in the original implementation from Redux?
If the latter, then I can cycle with only the Old letter in the inventory, but all the items are the bugged ones sadly.

Just went ahead and implemented your custom fix and credited you for it :P
Just one other thing, would you mind sharing how you modified the speed in which the waterfall moves in the title screen? I'm interested in peeking at it to see what speeds can be used for it.

------------------------------------------------------------------------

Out of that...
Thanks to a lot of back-and-forth discussion with user @bogaabogaa, there's some neat stuff in the future for Zelda Redux :)

Take a peek!
(https://i.imgur.com/1egNq53.png) (https://i.imgur.com/83dCsxC.png)

This is right now WIP, and the arrows code is not finished (we still have to hijack the code that subtracts rupees and move it to the arrow counter, same for adding arrow numbers to the counter when purchasing the item, and also adding the enemy drop for Arrows and make that drop increase the arrow counter too), but it is coming along nicely!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: gzip on April 05, 2020, 05:05:13 pm
Oh so you managed to fix the issue with the Old Letter?
Would you please share what changes you made to get that fixed?
That would greatly help to finally have this bug fixed, since it has eluded me for quite some time now.

Here's the code. What it does is it checks for the rod if it has just cycled from the letter. If the rod is there then it selects it, otherwise it selects the boomerang. If there is no boomerang then it just stays on the letter (no harm, no foul, no crash). Now you could check for the boomerang, and then for bombs, and then for the candle, etc. but that's pretty messy, especially when you have the boomerang for most of the game. I have not dug into the JSR much to see why it chokes to begin with but there could be a more elegant solution hiding in there.

Code: [Select]
05:BFC0:
A9 01     LDA #$01
AC 56 06  LDY $0656
20 C8 B7  JSR $B7C8
AC 56 06  LDY $0656 ; load current item into Y
C0 10     CPY #$10  ; compare current item to 16 (letter is 15)
10 03     BPL $03   ; branch if greater than or equal to 16
4C E6 BF  JMP $BFE6 ; skip to return
AC 5F 06  LDY $0655 ; branch here to load rod status into Y
C0 01     CPY #$01  ; check if link has rod (1)
DO 08     BNE $08   ; branch to boomerang if no rod (0)
A9 0B     LDA #$0B  ; otherwise set to rod
8D 56 06  STA $0656 ; "
4C E6 BF  JMP $BFE6 ; skip to return
A9 00     LDA #$00  ; branch here to set to boomerang
8D 56 06  STA $0656 ; "
60        RTS       ; branch here to return
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: gzip on April 05, 2020, 08:42:23 pm
Just went ahead and implemented your custom fix and credited you for it :P
Just one other thing, would you mind sharing how you modified the speed in which the waterfall moves in the title screen? I'm interested in peeking at it to see what speeds can be used for it.

Looks like you beat the moderator to approval of my reply. :laugh:

There's no real control for the waterfall speed (at least the way I did it). I just NOP'd 3 bytes starting at $9905:

Code: [Select]
-00009900  fa 20 43 99 60 fe 20 04  fe 20 04 bd 20 04 c9 e3
+00009900  fa 20 43 99 60 ea ea ea  fe 20 04 bd 20 04 c9 e3
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 11, 2020, 10:45:21 pm
Looks like you beat the moderator to approval of my reply. :laugh:

There's no real control for the waterfall speed (at least the way I did it). I just NOP'd 3 bytes starting at $9905:

Code: [Select]
-00009900  fa 20 43 99 60 fe 20 04  fe 20 04 bd 20 04 c9 e3
+00009900  fa 20 43 99 60 ea ea ea  fe 20 04 bd 20 04 c9 e3

Hahah yeah looks like I did :P
It seems those two INC opcode are what tells the game how many times to speed up the animation.
Went ahead and implemented the change, thanks!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on April 12, 2020, 08:21:21 am
Out of that...
Thanks to a lot of back-and-forth discussion with user @bogaabogaa, there's some neat stuff in the future for Zelda Redux :)

Take a peek!
(https://i.imgur.com/1egNq53.png) (https://i.imgur.com/83dCsxC.png)

This is right now WIP, and the arrows code is not finished (we still have to hijack the code that subtracts rupees and move it to the arrow counter, same for adding arrow numbers to the counter when purchasing the item, and also adding the enemy drop for Arrows and make that drop increase the arrow counter too), but it is coming along nicely!
I think it all looks good!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 13, 2020, 07:43:06 pm
Thanks to the incredible work by user @bogaabogaa, look at what's in store for Zelda Redux in this latest beta patch:

(https://i.imgur.com/FFD1vzW.png)

Can you spot anything special? ;D

After a lot of hardwork by Bogaa, and with a lot of back and forth between him and me, he managed to implement not only a separate arrows from the rupee counter hack, but also a fully working 999 rupees hack as well!

I cannot stress enough just how incredible Bogaa's work in the implementation of these two hacks, which seemed like just a dream for this project if I were to tackle it alone.

Huge, but HUGE shotouts to Bogaa for this work!

--------------------------------------------------------------------------------------

Now to get into details:


With that said, I suggest everyone who wants to try out these two milestones to get them from here:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/tree/09850917993c111297a3722d0e7cfee76357b5ef/patches

And also, PLEASE avoid using any of the optional patches alongside this hack for debugging/feedback purposes.
We need as much feedback and bug reports regarding the 999 rupee and arrow counters to be able to pinpoint the issues.
As far as we've tested, NPC rupee sustractions, NPC money givers and shops should all work for the Arrow counter, and the 999 rupee should also work normally.

The only thing left to do for the arrow counter is to give it a max cap of 30 arrows on a new game, and once you get the Silver arrows, the cap should go up to 60 arrows.


Please, do let me know if you guys find anything funny regarding either the 999 rupee counter, or the arrow counter.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on April 15, 2020, 02:37:12 am
Wow! Things are looking great over here.
With these changes alone, I feel like it's going to be worth it to me to play Zelda again.
I can't wait to see how this turns out!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: EthansDreamLand on April 15, 2020, 03:11:58 am
Wow! Things are looking great over here.
With these changes alone, I feel like it's going to be worth it to me to play Zelda again.
I can't wait to see how this turns out!

Same here! Zelda 1 kind of feels a bit outdated gameplay wise for me to enjoy more, but I feel like this hack will do just that. I can't wait for the Zelda 1 & 2 Redux hacks to come out!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ifightdragons on April 15, 2020, 09:55:17 am
Same here. These might just be the two most important NES Zelda hacks ever made. Shadow and the others have done an incredible job.

The only thing really missing now is making it so that Exp. is regained even at Game Over in Zelda 2. It really needs it, to avoid being a grind.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pleiades7 on April 15, 2020, 11:03:46 am
Quote from: ShadowOne333 link=topic=29403.msg392594#msg392594 date=1586821386Please, do let me know if you guys find anything
[/quote

Hey there...

I saw there is another similar project.
https://zeldamasterpieceedition.tumblr.com

I notice that hack has updated some of the graphics! Some of them are great, other choices are meh.

But if you were going to do some optional patches that update the graphics (i.e. like some of the monsters, or environment, etc.) then maybe that modder would let you borrow some of his sprite work, to save you time, etc.

Thanx again for your hard work! Can't wait until the final release.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 15, 2020, 10:01:49 pm
Don't forget to let us know if you guys find any bug, glitch or anything out of the ordinary in regards to the arrows or the 999 rupee counter! It's really important so that the code for those two features can be polished and reworked properly to make it available for the repo.

----------------------------------------------------------------------------------

In the meanwhile, I'll share what I have in terms of redesigned enemies.
I am taking the following official artwork as a base for the redesigned enemies:
https://www.zeldadungeon.net/wiki/Gallery:The_Legend_of_Zelda_Enemies

If the redesigned enemy is not based from the Official Artwork, it's based on the Million Publications artwork found at the end of the page.

With that said, here's the whole enemy roster I have redesigned so far based on official artwork:

Left = Original / Right = Redesigned
(https://i.imgur.com/6Bdyfks.png)

That's what I have so far.
I have yet to tackle the bosses, but I am so drained atm that I might do it over the weekend haha.
Let me know what you guys think!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: EthansDreamLand on April 16, 2020, 01:53:23 am
The redesigned sprites look good! I like the Wizzrobe sprites the most IMO.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pineapplefish on April 16, 2020, 02:21:04 am
My personal feedback for the sprites redesign:
Link's hat lining shouldn't be visible from the back. The orange halo currently looks a little odd.
I miss Zol's (black dot) original dark palette. There's already so many blue monsters.
The old woman looks too friendly. She had an "old hag from the deep woods" look to her that added to the atmosphere, especially since she's initially mute.
This just might be me, but the Octorok's eyes turn into three triangles when rotated sideways.
Gibdo's redesign (mummy) doesn't really work for me. Again, too much blue, and he lost so much weight. He used to look physically imposing.
Zora (lake monster) would look more menacing without eye pupils, or inverted as before. Currently, eyes are too cartoonish.
Stalphos' eyes (skeleton) make him look depressed.
Goriya's (boomerang guy) sideways sprite looks a little thin. It's possible I'm simply too attached to the original.

Hopefully I don't come across as too negative. I'm really quite fond of the majority of these new designs.

Edit: after examining more closely the official artwork, I can see the motivation for some of these changes, but I don't agree that close adherence to these necessarily improves the in-game visuals. Concessions clearly must be made. The "Million" artwork translates more cleanly to lo-res sprites.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: gzip on April 16, 2020, 02:33:03 am
Just played through level 3 and had no issues. Maxed out rupees but not arrows. I even killed Manhandla with arrows. :laugh: Here are some thoughts:


So when do flaming arrows and bomb arrows get added? ;)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ifightdragons on April 16, 2020, 06:26:14 am
The redesigns look flawless. Excellent sprite-work within the harsh limitations of this game.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: AdamDravian on April 16, 2020, 09:57:58 am
I really like the redesigns for the most part. Great job. I'm glad I can finally see the wizzrobes for what they are instead of my brain always turning their amulate into an open mouth.

I miss Zol's (black dot) original dark palette. There's already so many blue monsters.

Perhaps using the color of the blue-green molblin would be a nice compromise.

The old woman looks too friendly. She had an "old hag from the deep woods" look to her that added to the atmosphere, especially since she's initially mute.

I actually think the original old woman sprite looks more friendly than the new one. She's no longer smiling.

Gibdo's redesign (mummy) doesn't really work for me. Again, too much blue, and he lost so much weight. He used to look physically imposing.

I agree that this it the one change I'm not sold on. Perhaps it's too radical of a departure. If I came across that in the game I woudln't know that it was a gibdo. I think a compromise between the two designs would be best.


Goriya's (boomerang guy) sideways sprite looks a little thin. It's possible I'm simply too attached to the original.

I prefer the thinned up look. They always looked too fat to me in the original.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 16, 2020, 11:53:03 am
Thanks for the feedback, guys!
I'll take the arrows suggestions and see what can be done.

As for the sprites:

If anyone has mockups hat would help with some designs (mostly Stalfos or Gibdo, or bosses too), please feel free to post them!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 16, 2020, 12:14:42 pm
I actually think the original old woman sprite looks more friendly than the new one. She's no longer smiling.

If you look in the artwork. It never was a smile. It's supposed to be her huge nose.:laugh:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on April 16, 2020, 06:00:45 pm
The redesigned sprites look good! I like the Wizzrobe sprites the most IMO.
I have to agree, they look good!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pleiades7 on April 16, 2020, 11:50:59 pm
Thanks for the feedback, guys!
I'll take the arrows suggestions and see what can be done.

As for the sprites:
  • I forgot to mention the Zol sprite is NOT using its in-game palette. I was too lazy to just search for the proper palette to colour him correctly, so his original colors will still be the same
  • The game has a problem with way too many sprites looking thick or fat. Link, Gibdos, Goriyas, Armos, Moblins (though these ones are supposed to be thick/fat), Darknuts, Lynels, Vires... Almost all the sprites are thick. I'm not sure why, maybe they took the same base dimensions for every sprite, but it really makes for a somewhat bland in-game art. Having some slightly thinner sprites would help to have some variety, and to stay close to the enemy's original art.
  • Out of all the sprites, the least happy I'm with is the Stalfos. I am not too sure what to do about him, while not sacrificing his original design as much. The same goes for the Gibdo, I'm still not undecided about that one too, although for the Gibdo I went for his official art, and also later depictions of him in Zelda games for his design.

If anyone has mockups hat would help with some designs (mostly Stalfos or Gibdo, or bosses too), please feel free to post them!

Your sprites look awesome!

Also, some improved environmental changes are welcome (e.g. better looking rocks, trees, etc.) and improvements to the bosses if possible.

My 2 cents.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 17, 2020, 12:27:30 am
What about this sprite for Gibdo? ::) I wouldn't mind you keeping the one you made already, but in game he'll look a lot smaller than Link if you use it.

(https://i.ibb.co/yXHMG3R/gibdoedit.png)

I based it off of the BS Zelda version of the Gibdo.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 17, 2020, 01:04:01 am
What about this sprite for Gibdo? ::) I wouldn't mind you keeping the one you made already, but in game he'll look a lot smaller than Link if you use it.

(https://i.ibb.co/yXHMG3R/gibdoedit.png)

I based it off of the BS Zelda version of the Gibdo.
That looks really good!
Only thing I'd change would be blue outline, since almost none of the Zelda 1 sprites have outlines, but outside of that it looks cool!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on April 17, 2020, 01:13:08 am
I like most of the new art too.
Gibdo is the only one I felt was a bit off.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 17, 2020, 01:17:40 am
That looks really good!
Only thing I'd change would be blue outline, since almost none of the Zelda 1 sprites have outlines, but outside of that it looks cool!

(https://i.ibb.co/x7DB6cK/gibdoskinny.png)

This way look better? :huh:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 17, 2020, 02:17:33 pm
(https://i.ibb.co/x7DB6cK/gibdoskinny.png)

This way look better? :huh:

Looks way better :)
Still a bit of outline, but I like the way it looks right now, I'll add it to the current enemy redesigns!
Just out of curiosity, have you tried doing a Stalfos sprite? :P
That's the one that really didn't like how it came out on my end.
It'd be interesting to see how others tackle that one, and I'd love to see your take on it! :D
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 17, 2020, 02:57:02 pm
Looks way better :)
Still a bit of outline, but I like the way it looks right now, I'll add it to the current enemy redesigns!
Just out of curiosity, have you tried doing a Stalfos sprite? :P
That's the one that really didn't like how it came out on my end.
It'd be interesting to see how others tackle that one, and I'd love to see your take on it! :D

Oh cool! Haha! :laugh:

Glad to help :D, also I made some stalfos sprites... here's my crack at it. :beer:

(https://i.ibb.co/D5TJ1zT/stalfosyeah.png)

Top-left is original
Bottom-left is your new stalfos
Top-Right is your sprite with edited skeleton head.
Bottom-Right is the edited head sprite with shading.

Look better? :D :huh: :happy:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 17, 2020, 07:37:26 pm
Awesome!
I went ahead and retouched both of them a bit, made the swords a solid colour for the Stalfos (so they match the Million Artwork) and this is how they look right now (also fixed the Zol and Gel's colour palette from the mockup, so this is how they'll look in-game now):

(https://i.imgur.com/gyaHucx.png)

Right now, I started work on the bosses.
Gotta say tho, holy shit did they nail the design from the Million Publishing artwork with the bosses almost to the beat hahah.
You can see official the artwork from which the bosses will be based on:
https://www.zeldadungeon.net/wiki/Gallery:The_Legend_of_Zelda_Bosses

Here's the bosses sprites, I haven't edited any of them except the very first sprite for Gohma based on the official artwork:
(https://i.imgur.com/cw51Yra.png)

-------------------------------------------------------------------------------

Here's my first attempt at Ganon:

Above = Redesign / Below = Original
(https://i.imgur.com/CAYin6H.png)

Gohma:
(https://i.imgur.com/Ekko95S.png)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pineapplefish on April 17, 2020, 08:14:07 pm
The3Dude, you are nailing it. Never thought Stalphos could look this good.

Already, the new Gohma boss is a 200% improvement. When I was young I thought his giant pupil was actually a nose.

BTW, I always thought they were going for a chibi look, as they often do in japan when they want to simplify the visuals. Still, varying the monsters' width makes sense.

I'm enjoying these redesigns. Very tastefully done.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: jimstrom on April 18, 2020, 12:27:51 pm
Really love the redesigned sprites, the Wizrobe, The Zol and the Lynell's are my favorites, but they all look amazing. Just for the fun of it, how would an 8bit Legend of Zelda style Impa look like?

I also love that you make the Ganon sprite more consistent with his later looks, some hip armor or a loin cloth could be a good idea though, i never understood why they gave ganon a shirt but not pants :P
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 19, 2020, 03:36:43 pm
Thank you so much guys! :D
Such words really encourage me to keep going with the redesigns.
I really like how the bosses are coming up as well.

Really love the redesigned sprites, the Wizrobe, The Zol and the Lynell's are my favorites, but they all look amazing. Just for the fun of it, how would an 8bit Legend of Zelda style Impa look like?

I also love that you make the Ganon sprite more consistent with his later looks, some hip armor or a loin cloth could be a good idea though, i never understood why they gave ganon a shirt but not pants :P

An 8bit Impa?
I think the closest would be the old woman sprite I did. You can see it in the enemy image posted a few comments ago.
Impa from the official artwork looks very close to that sprite actually:

(https://vignette.wikia.nocookie.net/zelda/images/e/e9/Impa_en_The_Legend_of_Zelda.jpg/revision/latest?cb=20120310195239&path-prefix=es)

---------------------------------------------------------------------------

Seeing Ganon from the current design, I really, REALLY want to make him look leaps better from the original sprite and not just like a plain Moblin with some metal T-shirt.
I want to make his clothing actually look like armour, and his colours much more accurate to his official depictions going forward (since original Ganon has few to zero official depictions).

So far, these are a few mockups I came up with:

Original / 1st mockup (posted here before) / 2nd mockup / 3rd mockup with better armour and change of palette
(https://i.imgur.com/NsBDVrx.png)

Please let me know what do you guys think!

PS: And for those wondering how the bosses are coming along, here's what I have right now.
Only Gleeok, Aquamentus and Digdogger are pending:

(https://i.imgur.com/7bkSku3.png)

Remember that most of these are based on the official artwork.
The Ganon one from the Wiki is NOT from the original Zelda, it's artwork from ALttP.
Original Ganon has very little to almost no official artwork.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: jimstrom on April 19, 2020, 04:51:21 pm
I love em, so much beter than the original sprites, i also really like your Ganon, reminds me of my own mockup i did based on his Oracle of Ages/Seasons appearance which in my opinion is his best appearance. Waiting with excitement for Gleeok and Aquamentus!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 19, 2020, 05:06:59 pm
Mandhandla and Digdogger are looking great! Love the improvements. :thumbsup:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: jimstrom on April 19, 2020, 05:14:45 pm
I tried giving your Manhandla sprite the Aquamentus palette, and in my opinion it fit's better making it much more plantlike, maybe something to concider, or maybe not.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 19, 2020, 11:34:25 pm
Okay I think I'm done with the Boss sprites for now.
Let me know what you guys think.

(https://i.imgur.com/XIetRs0.png)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on April 20, 2020, 12:16:41 am
Okay I think I'm done with the Boss sprites for now.
Let me know what you guys think.

(https://i.imgur.com/XIetRs0.png)

I think it looks great! :D

Now I just can't wait for the patch. ;D
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 20, 2020, 01:32:00 am
I just remembered something :P

There's is another somewhat official source for artwork on all the enemies, one which is not listed anywhere and not many know about it.

That other source being...
BS The Legend of Zelda

Here's the sprites for all the enemies used for it in 16bit:
(http://www.zeldagalaxy.com/wp-content/img/sprites/snes/bsz/enemies.png)

As you can see, most of them follow the official artwork, and Ganon's follows a similar design pattern to that of ALttP.

Still though, I'm quite happy with how the sprites I made turned out in the end compared to the 16bit ones :)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: EthansDreamLand on April 20, 2020, 03:01:06 am
I think your redesigned sprites are cool while sticking true to the original sprites and artwork.

This is more related to the Link's Awakening GFX patch, but what is the sprite used for Ganon? Is it that Moblin King sprite from the Oracle games or is it similar to Ganon from the Oracle series.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: mdtauk on April 20, 2020, 04:04:24 am
Just to throw some more artwork into the conversation...

(https://i.imgur.com/xp8u6G9.png)
(https://i.imgur.com/YvxHQbm.png)
(https://i.imgur.com/k6x9dAq.png)
(https://i.imgur.com/SdcKeyI.png)
(https://i.imgur.com/DecGqSa.png)
(https://i.imgur.com/sHNbdkP.png)
(https://i.imgur.com/a5xiJB5.png)
(https://i.imgur.com/YM7INHO.png)
(https://i.imgur.com/OY9Qual.png)
(https://i.imgur.com/vhk65BH.png)
(https://i.imgur.com/XPcpGrm.png)
(https://i.imgur.com/LUIL76S.png)
(https://i.imgur.com/wi1AJF4.png)
(https://i.imgur.com/fmhO3uk.png)
(https://i.imgur.com/r3MoC7q.png)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: AdamDravian on April 20, 2020, 07:26:45 am
Let me know what you guys think.

I think the new bosses look great. Ganon, in particular, is a vast improvement. Excellent work.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 20, 2020, 05:43:28 pm
Thank you, guys!
I'll take some time to implement the redesigns into the actual sprites, so maybe next week.

I think your redesigned sprites are cool while sticking true to the original sprites and artwork.

This is more related to the Link's Awakening GFX patch, but what is the sprite used for Ganon? Is it that Moblin King sprite from the Oracle games or is it similar to Ganon from the Oracle series.

Iirc it's the Moblin King sprite.
Tbh it looks really off and not good looking to me.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: EthansDreamLand on April 21, 2020, 12:58:18 am
Iirc it's the Moblin King sprite.
Tbh it looks really off and not good looking to me.

TBH, I don't think the sprite itself is bad, it's just:

A. There's already a Ganon sprite in the Oracle games.
B. The Moblin King sprite is too goofy to be considered a final boss.

IDK how easy it would be to port the Oracle Ganon sprite, but if it's possible, I would like to see that in a future update for the Link's Awakening GFX patch. But I think the main Redux hack should take more priority though. Also, thanks for letting me know; I have been busy since my Spring college quarter started and I haven't gotten time to do another Zelda 1 playthrough.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pocket on April 22, 2020, 06:08:30 am
Okay I think I'm done with the Boss sprites for now.
Let me know what you guys think.

(https://i.imgur.com/XIetRs0.png)

Wowzers, this is crazy improvement that I didn't think was even possible, Ganon is the most impressive of all i'd say.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on April 22, 2020, 03:45:40 pm
I have a suggestion for Manhandla.
The original had some pretty severe perspective going on with the body.
This new version does a much better job with that.

In contrast, the thing that still feels off that the original did as well is that the upper maw id just a flipped-over version of the lower one.
That really throws off the perspective. And even the SNES version has the same issue.

My actual suggestion is to either make the two side maws have the same overhead perspective as the other two (probably easier, but also less cool-looking) or give the upper maw some perspective so it makes more sense visually.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 22, 2020, 04:34:33 pm
TBH, I don't think the sprite itself is bad, it's just:

A. There's already a Ganon sprite in the Oracle games.
B. The Moblin King sprite is too goofy to be considered a final boss.

IDK how easy it would be to port the Oracle Ganon sprite, but if it's possible, I would like to see that in a future update for the Link's Awakening GFX patch. But I think the main Redux hack should take more priority though. Also, thanks for letting me know; I have been busy since my Spring college quarter started and I haven't gotten time to do another Zelda 1 playthrough.

That's what makes it look bad for me...
The goofiness of it lol
I'll see what can be done about the LA GFX patch for Ganon's sprite specifically. The fact that his sprite is only half of the body and mirrored for all of the 4-5 poses he does will make it hard to accommodate to LA's one.

Wowzers, this is crazy improvement that I didn't think was even possible, Ganon is the most impressive of all i'd say.

Coming from you, that's a great compliment, thanks! :D

I have a suggestion for Manhandla.
The original had some pretty severe perspective going on with the body.
This new version does a much better job with that.

In contrast, the thing that still feels off that the original did as well is that the upper maw id just a flipped-over version of the lower one.
That really throws off the perspective. And even the SNES version has the same issue.

My actual suggestion is to either make the two side maws have the same overhead perspective as the other two (probably easier, but also less cool-looking) or give the upper maw some perspective so it makes more sense visually.

I think I kind of understand what you mean, but just to be sure, could you make a mockup for reference?
I think the problem with most sprites in Zelda 1 is that they really save up on GFX by mirroring graphics like there's no tomorrow.
The side and up/down jaws I think are mirrored, but I haven't implemented this enemy yet, so I have yet to test in-game.

Actually, I have already implemented all the enemies and NPCs, and most bosses.
I'm only missing Manhandla, Gleeok and Aquamentus, and test everything in-game.


-----------------------------------------------------------------------------------------------


The newly redesigned sprites are now implemented!
Please be sure to give the game a full test, also Ganon has a new palette now ;)

The only sprite which I couldn't implement as I desired is Digdogger.
For some weird reason, the Digdogger loads both the big sprite and half of the little digdogger within the same sprite, so I had to make both the little and big Digdoggers share the same eye so they don't look off.

If someone has a better idea on how to implement Digdogger, let me know.
But outside of that, everything else got in quite smoothly :D

Let me know if there's anything wrong!
Oh and I have also updated the OP to reflect the current updates.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pleasejust on April 23, 2020, 09:30:20 pm
Just tried out the latest patches. Redux with optional patches:

-5 bomb upgrade
-rearranged bosses
-recolored dungeons

On initial impressions I noticed that
-seems like the rupee counter is only 2 digits. I thought 999 was the max)
-Arrows do appear as enemy drops right from the start. I thought you mentioned that you're only supposed to be able to buy arrows.
-Bombable walls hint on overworld is still a bit too obvious but it's ok. Would've been nice if it was more subtle, like a couple of odd pixels or something.
-I guess going through breakable wall tiles is a know thing...

Thanks.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on April 26, 2020, 07:49:11 pm
Just tried out the latest patches. Redux with optional patches:

-5 bomb upgrade
-rearranged bosses
-recolored dungeons

On initial impressions I noticed that
-seems like the rupee counter is only 2 digits. I thought 999 was the max)
-Arrows do appear as enemy drops right from the start. I thought you mentioned that you're only supposed to be able to buy arrows.
-Bombable walls hint on overworld is still a bit too obvious but it's ok. Would've been nice if it was more subtle, like a couple of odd pixels or something.
-I guess going through breakable wall tiles is a know thing...

Thanks.


----------------------------------------------------------------------------

I modified the cracked wall tiles to be more akin to what the original LA GFX had, please redownload the patch and try again, let me know what you guys think:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/raw/master/patches/optional/Link's%20Awakening%20GFX.ips
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: stratoform on May 03, 2020, 10:59:32 pm
Dropping by to say that this project so far is beyond amazing! Played this oldie so many times over, and now it feels refreshing. The QoL adjustments and care taken to improve this game for fans is top-notch (finished Dungeon 1 using Redux only, no optional). Looking forward to using the add-ons later.

I'm amazed how the community has come together to give this game such careful love. And the project still has more goals to achieve! Doubt I can help anywhere but obviously all the smart and clever people have done milestones of progress. Thank you everyone. :)


====================
====================
====================


For PRG 0, USA. Likely can be modified to work with Japan too.


Let's you use flute to kill Pols Voice.
Code: [Select]
; x11C46 = $04:9C36
JSR flute_pols_call



; x13F40 = $04:BF30

flute_pols_call:
JSR $79D0        ; detour code

; -----------------------

LDA $051B        ; flute (0) = unused, exit
BEQ flute_pols_exit

; -----------------------

LDA $28,X        ; timer (0) = start sfx
BNE flute_pols_timer

LDA #$44+$80-1   ; timer = x44 frames
STA $28,X
RTS

; -----------------------

flute_pols_timer:
BMI flute_pols_exit    ; timer (x80+) = playing sfx
                       ; timer (x7F) = done

JSR $FEA6              ; kill all pols

; -----------------------

flute_pols_exit:
RTS

Note that pols don't use timers so it should be okay.


Code: [Select]
Famicom release
    $04:9C50: AD 18 05  LDA $0518   ; check microphone level
    $04:9C53: C9 14     CMP #$14
    $04:9C55: 90 03     BCC $9C5A

    $04:9C57: 20 90 FE  JSR $FE90   ; kill all Pols

Note that $0518 looks unused in USA. So might be free variable to play with.


Code: [Select]
USA PRG 0
$04:9C31: A9 FE     LDA #$FE
$04:9C33: 9D B2 04  STA $04B2,X
$04:9C36: 20 D0 79  JSR $79D0
==> insert new code here
$04:9C39: 60        RTS


================
================
================


Code: [Select]
05:B06A: B9 54 B0  LDA $B054,Y @ $B058 = #$89  (overworld)
05:B06D: 9D 46 03  STA $0346,X @ $034A = #$89

05:B06A: B9 54 B0  LDA $B054,Y @ $B05D = #$78  (dungeon)
05:B06D: 9D 46 03  STA $0346,X @ $034A = #$78


5-byte mystery table (B054-B058, B059-B05D)
05:B070: C8        INY
05:B071: E8        INX
05:B072: E0 05     CPX #$05
05:B074: D0 F4     BNE $B06A
05:B076: 60        RTS -----------------------------------------



$07:F119: CD 4A 03  CMP $034A = #$89  ; collision tile (range check)
$07:F11C: 90 30     BCC $F14E         ; bcc = always walkable

Some information on collision tiles. The cracked dungeon tiles maybe work because they are hybrid (DE 58 | DE 59). Overworld tiles as we know are problem (54-57).


================
================
================


How to flip heart rows. Make these hex changes.

; write cursor
05:AC71  [x16C81] = 82 08
05:AC7C  [x16C8C] = A2 08

; in-game vram ptrs
[x671B] = 69 12
[x6728] = 69 07


Code: [Select]
Original

         $6E97: A2 00     LDX #$00                                     A:05 X:08 Y:0C S:F8 P:nvUBdIzC
         $6E99: 98        TYA                                          A:05 X:00 Y:0C S:F8 P:nvUBdIZC
         $6E9A: 18        CLC                                          A:0C X:00 Y:0C S:F8 P:nvUBdIzC
         $6E9B: 69 07     ADC #$07                                     A:0C X:00 Y:0C S:F8 P:nvUBdIzc
         $6E9D: 85 0B     STA $0B = #$65                               A:13 X:00 Y:0C S:F8 P:nvUBdIzc

         $6EA5: A5 0D     LDA $0D = #$0C                               A:F2 X:08 Y:FF S:F8 P:nvUBdIZC
         $6EA7: 18        CLC                                          A:0C X:08 Y:FF S:F8 P:nvUBdIzC
         $6EA8: 69 12     ADC #$12                                     A:0C X:08 Y:FF S:F8 P:nvUBdIzc
         $6EAA: 85 0B     STA $0B = #$0B                               A:1E X:08 Y:FF S:F8 P:nvUBdIzc


 05:B8A2: B9 70 AC  LDA $AC70,Y @ $AC71 = #$A2
>05:B8A5: 99 02 03  STA $0302,Y @ $0303 = #$A2


Reload game for changes to show. RAM looks persistent.

Or hack RAM to fix savestates
x6E9C = 12
x6EA9 = 07


================
================
================


You may want to update the OP as 999 rupees looks finished?


================
================
================


To move game over text closer,

x1ACE5 = AC 08  ; continue text pos
x1ACF0 = EC 04  ; save text pos
x14AF5 = 50 27 37 47  ; heart cursor pos


================
================
================


fix game over flashing text


Code: [Select]
; x14B65 = 05:8B55

JSR gameover_flash_call
NOP
STA $0305
RTS



; x17F50 = 05:BF40

gameover_flash_call:
BEQ gameover_flash_done   ; old detour code


LDA $13      ; get save option (0-2)
AND #$03

TAY          ; load correct palette
LDA gameover_flash_attr,Y


gameover_flash_done:
RTS


gameover_flash_attr:
db $05,$50,$55


; flash text position
x14AFC = 05:8AEC = 23 D2 43 00 FF CB CB D3


old code:
Code: [Select]
05:8B49: B9 F1 8A  LDA $8AF1,Y @ $8B46 = #$29
 05:8B4C: 8D 03 03  STA $0303 = #$C2
 05:8B4F: A0 00     LDY #$00
 05:8B51: A5 29     LDA $29 = #$3F
 05:8B53: 29 04     AND #$04
 05:8B55: F0 02     BEQ $8B59

 05:8B57: A0 55     LDY #$55
>05:8B59: 8C 05 03  STY $0305 = #$00
 05:8B5C: 60        RTS -----------------------------------------
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 05, 2020, 06:30:24 pm
Oh wow @stratoform!

I didn't notice you replied to this thread at all, since I didn't get the notification by mail, but hot damn!
That's a lot of code lol

Let me go through each one:

---------------------------------------------------------------------------

1. POLLS VOICE:

I went through your Pols code, and it seems to be working just fine!
I tested killing the Pols with the normal Arrow method, and also with the flute, and they both work as intended!
Arrows kill only the Pols they touch, and using the Flute kills all the Pols in the room, just like the microphone feature from the Famicom release!

Also, interesting thing there about the RAM address $0518.
Indeed, if that's the address used by the Famicom release for the microphone, then that's an unused entry on the USA release.

---------------------------------------------------------------------------

2. COLLISION DATA:

Man that will surely come in handy.
While we still don't know how to make tiles $54-$57 react as solid tiles, that information might be helpful later on to fix that long-dreaded bug.
Once that's settled, cracked walls should be finished and properly implemented into Zelda 1!
(That's the only remaining bug with cracked walls)

---------------------------------------------------------------------------

3. FLIP HEART ROWS:

There seems to be a bit of confusion with this one.
From what I can see, your code modifies the heart rows in-game.

What I was attempting was to flip over the heart rows in the File Selection screen:
(https://cdn.wikimg.net/en/strategywiki/images/7/7e/LOZ_Select_Screen.png)

I want to flip them over so the first 3 hearts (and its subsequent hearts) appear next to the name, instead of next to the Death counter, and the ones from the Death counter move them upwards, next to the name
I can already change the row below next to the player's name, but the problem I have is that I haven't found a way to move the ones currently in the player's name to below.

Here's the data I've collected about that:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/06b9403e3aadb3e1dd7e0b1961d1eb0935ad5d46/code/redux.asm#L38-L54

---------------------------------------------------------------------------

4. GAME OVER TEXT AND FLASHING:

I'm having issue with this code.
While the text and cursor have been moved properly, when I select any of the options (CONTINUE/SAVE/RETRY), for some reason, instead of getting the Red flashing, I get background tiles.
It shifts between $05 (Number 5 in tiles), $50 (one of the heart tiles from the meter) and $55 (which is one of the rock tiles).
It doesn't change colours, it instead shows sprites/tiles.

I'm not sure if my implementation was wrong or something, but here's the code for that particular part, including your newly implemented code:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/06b9403e3aadb3e1dd7e0b1961d1eb0935ad5d46/code/redux.asm#L120-L206

---------------------------------------------------------------------------

Let me know if you need any clarification or if you have any doubt :)
Thanks for the help and code you did!

PS: I forgot to tell you that I added your name to the code you made as credits, and will also add you to the main README inside the Credits section for this work.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: stratoform on May 05, 2020, 07:20:55 pm
#2
My thought was to do this for collisions. I haven't tried the code yet but seems like it would work?

Code: [Select]
$07:F119
JSR collision_tiles_call


collision_tiles_call:
CMP #$54        ; $00-53 = old detour code
BCC collision_tiles_normal
CMP #$58        ; $54-57 = secret tiles, solid
BCC collision_tiles_solid

; add more secret tile checks if needed


collision_tiles_normal:
CMP $034A    ; old range check
RTS


collision_tiles_solid:
SEC          ; solid tile, no walk
RTS


Code: [Select]
original code

$07:F119: CD 4A 03  CMP $034A = #$89  ; collision tile (range check)
$07:F11C: 90 30     BCC $F14E         ; bcc = always walkable


I'll check #3 and #4 and (edit) report back. Thanks again!


===================
===================


#3
Here's how it appears for me:
(https://github.com/stratoform/archive/raw/___notepad___/Legend%20of%20Zelda%20-%20Redux/Misc/menu.png)

Could you do a mockup of what it should look like? I'm bad with text descriptions. :lol:


#4
Maybe missing a hex edit. Let me double check..


=========================
=========================

#4

Missed this hex edit:

; flash text position
x14AFC = 05:8AEC

20 D2 43 00 FF CB CB D3
==>
23 D2 43 00 FF CB CB D3


===========================
===========================


#2
Don't see any free space in bank 07. Maybe have to bankswap out to 05, run the code, then bankswap back to (original)?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 05, 2020, 08:13:56 pm
#2. CRACKED WALL OVERWORLD COLLISION

Oooh that looks interesting.
I already wrote down the code in my file, but as you said, there's no free space in bank 7 anymore, so seems like we'll have to use bank switching for it.

I think Bank 5 gets loaded when you are in the overworld, so anything from Bank 5 might do.
It's just... I simply forgot how to bank switch lol.

----------------------------------------------------------

#3. FLIP HEARTS

Oh my, I see my mistake now.
So you see, the thing about the code you wrote for that, is that it flips not only the File Select screen hearts...
But ALSO the in-game ones!
So I was trying out the code in-game and it was changing the hearts there, I didn't notice it also changed them in the File Select screen.

So with those slight changes you made, I un-did the change I made through PPU transfers to flip the hearts in the HUD, and now both the File Select and HUD hearts are flipped with the same code :)
That should be it for that! Thank you so much!

----------------------------------------------------------

#4: GAME OVER RED FLASH

I'm not sure what the problem is.
I did have that very change you mention in here:

Code: [Select]
bank 5;
// (Changes Y position of the "Continue/Save/Retry text)
org $8AE5 // $14AF5
db $50,$27,$37,$47 // Originally 4F 67 7F
// (Changes Y position of the red/white flashing when selecting an option)
org $8AEC // 0x14AFC
db $20,$D2,$43
db $00,$FF,$CB,$CB,$D3

However, I am still getting numbers and sprites instead of the red flashing.
Did I miss anything else?

----------------------------------------------------------

Thank you yet again for the help!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: stratoform on May 05, 2020, 08:38:21 pm
org $8AEC   // 0x14AFC
   db $20,$D2,$43
   db $00,$FF,$CB,$CB,$D3

That $20 should be $23. :)


#2
LDA #newbank
JSR $FFAC

Works in overworld but dungeons are breaking. So detective hat is on.


=============================
=============================


Dungeons must have bank 04. But if some other code derps us, it'll have another bank.


=============================
=============================


Tile collision code

Code: [Select]

; $07:F116 = x1F126
LDA #$04     ; bank 04  (dungeons)
JSR $FFAC    ; -- note that some paths use bank 01 later
JMP collision_tiles_call




; $04:BF10 = x13F20
collision_tiles_call:
JSR $EDFA       ; old detour  (load tile #)

; ----------------------
; ----------------------

CMP #$54        ; $00-53 = old detour code
BCC collision_tiles_normal

CMP #$58        ; $54-57 = secret tiles, solid
BCC collision_tiles_solid


; add more secret tile checks if needed

; ----------------------
; ----------------------

collision_tiles_normal:
CMP $034A       ; old detour  (range check)
BCS collision_tiles_solid

JMP $F14E       ; non-obstacle

; ----------------------
; ----------------------

collision_tiles_solid:
JMP $F11E       ; solid tile



; NOTE:
; If something other than Bank 04 needs to be restored,
; check 8000-8003 and swap banks accordingly

So far nothing bad is happening. But that Bank 04 should be on alert.


Code: [Select]
old code:
           $07:F116: 20 FA ED  JSR $EDFA
           $07:F119: CD 4A 03  CMP $034A = #$89
           $07:F11C: 90 30     BCC $F14E


=============================
=============================


Your source code is good reading material. ;)

Easy to read. Clean and for me easy to follow. I'm jealous now.


=============================
=============================


The flute correctly warps to each dungeon entrance in Quest 1. Will this be changed for Quest 2?

And oh! If MMC5 is used, I request that the extra sound channel is somehow used to recreate the FDS sounds and music.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 05, 2020, 09:22:20 pm
Ah that was it, the 23 was borking me over hahaha

Oh neat!
I was doing the bank switch with bank 05 when you edited the message.
I have now implemented it, and it seems to be working.

If you bump into it while walking with Link, you stop where it should.
There's only one bug I noticed, and I found it by mistake actually.

It seems the tile collision with the cracked walls is not checked when you are hit by an enemy.
For example, try the cracked wall right above the starting point, where Octoroks spawn.

Let one hit you while you stand right in front of it, and once one does, you'll see Link go pass the collision and hit the end of the cracked tile like it would if it didn't have collision.
You can get out of it easily by just walking out, and if you try going back in, the collision will hit again.

It seems to only happen when an enemy hits you.

Tbh, it's such a small bug, that I'm quite okay with it, since it doesn't feel as important, it's just niche haha

Thank you so much, stratoform, I never expected that just out of the blue someone would jump in and help with almost all of the remaining bugs and things to do for the project :P
You just took out the great majority of them, now there's only a handful of things remaining!

Thanks again for all the work :D
I will upstream all this to the Github page, and make the appropriate changes in files to give you credit.
I will also edit the OP accordingly.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: stratoform on May 05, 2020, 09:44:09 pm
That's hilarious actually. Interesting glitch too. I'll take a peek since I am curious.

But it was great helping out with small technical stuff! Can't say I can help with the others but I'll be lurking (and playing) otherwise. Thank you for this Redux! Nearly my (ideal) all-star definitive edition. :)


===========================
===========================


New question:
"Some creatures are weak against arrows."


Should this be changed back to the original hint now that flute works?
Quote
Literal translation: "There are some creatures that are weak against sound."
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 05, 2020, 09:53:46 pm
Sure thing!

I'm always around, so feel free to continue contributing or discussing anything you feel like to any of my projects!
There's also a Zelda 2 Redux project as well :)

I think right now it's only these two Zelda projects, I am not sure about the future :P

But all in all, thank you so much!
And I'm really glad you liked the hack so far :D


New question:
"Some creatures are weak against arrows."

Should this be changed back to the original hint now that flute works?

Actually, I might change it to:
"There are some creatures that are weak against arrows and sound."
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: stratoform on May 05, 2020, 10:29:57 pm
That hint works better since you have both options.


Fixed the hit collision glitch. But it'll take a code rewrite.
Code: [Select]
; 07:EEFD = x1EF0D
LDA #$04   ; bank 04 (dungeons)
JSR $FFAC

JMP collision_hit_tiles_call


; 07:F116 = x1F126
LDA #$04   ; bank 04 (dungeons)
JSR $FFAC

JMP collision_tiles_call


; $04:BF00 = x13F10

collision_tiles_call:
JSR collision_tiles_sub
BCS collision_tiles_exit2

JMP $F14E       ; non-obstacle

collision_tiles_exit2:
JMP $F11E       ; obstacle



collision_hit_tiles_call:
JSR collision_tiles_sub
BCS collision_hit_tiles_exit2

JMP $EF05       ; non-obstacle

collision_hit_tiles_exit2:
JMP $EEE4       ; obstacle



collision_tiles_sub:
JSR $EDFA       ; old detour  (load tile #)

; ----------------------
; ----------------------

CMP #$54        ; $00-53 = old detour code
BCC collision_tiles_normal

CMP #$58        ; $54-57 = secret tiles, solid
BCC collision_tiles_solid


; add more secret tile checks if needed

; ----------------------
; ----------------------

collision_tiles_normal:
CMP $034A       ; old detour  (range check)
RTS

; ----------------------
; ----------------------

collision_tiles_solid:
SEC             ; solid obstacle
RTS



; NOTE:
; If something other than Bank 04 needs to be restored,
; check 8000-8003 and swap banks accordingly


Old code for hit collision:
Code: [Select]
; x1EF0D
 07:EEFD: 20 FA ED  JSR $EDFA
>07:EF00: CD 4A 03  CMP $034A = #$89
 07:EF03: B0 DF     BCS $EEE4

 07:EF05: B5 C0     LDA $C0,X @ $00C0 = #$08
 07:EF07: 29 0F     AND #$0F
 07:EF09: 20 B6 6F  JSR $6FB6


===============================
===============================


Note for myself. I was wondering why Famicom doesn't have the "screen transition blink". Turns out NMI handler has the classic PHP - PHA - TXA+PHA - TYA+PHA.

USA actually cuts it all out for speed so some loading code takes too long to run and the screen black frames for 2 VSYNCs. When it's done, NMI goes back on. Otherwise we'd get register corruption mania.


===============================
===============================


The arrow code is wicked impressive!


===============================
===============================


Arrow shop limit (30,60)

Code: [Select]
org $A423 // PRG $06423, PC 0x06433
ShopArrow: // $6B1C ID 02 at $7392. This ID is read and put into Y
cpy.b #$02 // Compare ID and end if not arrow
bne EndArrowShop
lda.w $0677 // Get arrow count
clc
adc.b #$1E // Give 30 arrows
ldx.w $0659 // Get arrow type (1,2)
cmp.w ArrowShopMax,x
bcc ArrowShopStore
lda ArrowShopMax,x // Limit arrows
ArrowShopStore:
sta.w $0677
EndArrowShop:
lda.b #$40                 
sta.b $29
rts

ArrowShopMax:
db $0,$1E,$3C // 0,30,60

NOTE: There's so much free space, you can move it up the bank now. ;)


======================================
======================================


Overworld arrow drop

Code: [Select]
// For Overworld
bank 4;
org $BFC0 // PRG $13FC0, CPU $0BFC0, PC 0x13FD0
GiveArrowDrop:
lda $AC,x // Check if the item is a arrow before it deletes.
cmp.b #$55
bne BackDeleting
txa
pha
lda.w $0677 // Get arrow count
clc
adc.b #$04 // Give 4 arrows
ldx.w $0659 // Get arrow type (1,2)
cmp.w ArrowDropMax,x
bcc ArrowDropStore
lda ArrowDropMax,x // Limit arrows
ArrowDropStore:
sta.w $0677
pla
tax
BackDeleting:
lda.b #$FF
sta.b $AC,x
sta.b $84,x
rts

ArrowDropMax:
db $0,$1E,$3C // 0,30,60

NOTE: There's some free space, you can move it up the bank now. ;)


Dungeon code is copy-paste so not posted. Done?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 06, 2020, 02:46:51 pm
Oh damn man, you covered almost all of the remaining stuff in the project in like 2 days :P
The arrow and rupee code was all dne by Bogaa, so all that amazingness was his :D

I tried out your code for both the reworked cracked overworld tile fix, and the arrow max amount, and they both seem to be working fine in-game!

I had some trouble implementing the tiles fix, but it was all due to a bad transcription. :P

I tested it for a few mins and it seems to be going well, max amount of arrows properly changed from 30 with normal arrows, to 60 when you get the Silver Arrows, and the shop purchases work as intended.

So far so good! :D
Thank you for this!

I have updated the GitHub page, and also the OP to reflect the latest changes.

-----------------------------------------------------------

One thing outside of what's currently being done.
With the current implementation of the arrows thanks to bogaa's code, how would you guys feel about changing the order in which the icons appear in the HUD for numbered items?

Like, right now you have:  Rupees -> Arrow -> Keys -> Bombs.
I thought of something like:  Rupee -> Keys -> Arrows -> Bombs
I just think of it to like make it have a proper order of items, and if you have all items maxed out, it would be more in order too.
Or do you guys think it would just be changing things for the sake of changing things?

Original    /   Mockup
(https://i.imgur.com/BTmYyuR.png) (https://i.imgur.com/aNKZoI5.png)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: CoolCatBomberMan on May 06, 2020, 02:52:27 pm
I don't really see the point in rearranging the item counters. And the original looks better.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: SpringSonic9187 on May 06, 2020, 03:31:49 pm
I don't really see the point in rearranging the item counters. And the original looks better.
Me neither. Just lets this be as a reference to how arrows were in the vanilla deal and call it a day.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ifightdragons on May 06, 2020, 05:21:44 pm
Actually, I'd put the keys at the bottom.

The rupees, arrows and bombs are easy to come by-consumables. Their numbers will constantly change. It makes perfect sense to group them together at the top.
The keys, however, are much rarer and more important items. It makes sense to keep them at the bottom, for a quicker visual reference and separation between the three consumables at the top.

Whenever stuck in the game because you're missing a key, you know JUST where to look by instinct, if the key is at the bottom. It's a smart QOL HUD design choice.

Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pleiades7 on May 06, 2020, 08:05:52 pm
Thank you for the feedback


Love the graphic changes!

Any plans to do any environmental changes too? (i.e. better trees, rocks, items. etc.)

Thought that might be cool too if the spirit moves you. Peace out.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: triforce141 on May 07, 2020, 09:29:15 am
The mockup has a good layout, if just for the fact that arrows and bombs are grouped together now; those being the consumables you would use the most during combat.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 07, 2020, 12:17:03 pm
The mockup has a good layout, if just for the fact that arrows and bombs are grouped together now; those being the consumables you would use the most during combat.

That was actually my reasoning behind the change.
Move theicons around to group them together in according to their use, and also to make tem fit somewhat with other games like ALttP.

Arrows and bombs are usually grouped together, so that's why I want to flip ONLY the key and arrow icons, so bombs and arrows are together and both consumables can be seen in a quick glance.

Moving the key at the bottom would require moving all 3 icons (key, arrows, bombs), and this would require more changes than wanted, since moving the counters is no easy fit at all.
Besides, I think having them in the RUPEE - KEY - ARROWS - BOMBS order gives the HUD a good aesthetic, more user friendly in terms of visibility and readibility from the player.

Love the graphic changes!

Any plans to do any environmental changes too? (i.e. better trees, rocks, items. etc.)

Thought that might be cool too if the spirit moves you. Peace out.

Thanks!
I've already changed the rocks and water/sand graphics, and the items as well to match official artwork too (forgot to mention those).

Only things I haven't changed are trees and the waterfalls I believe, I'll see what I can do for those
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: MaruMaru on May 07, 2020, 02:16:30 pm
This is looking great! Can't wait to give it a try!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: nosynose on May 08, 2020, 02:52:57 am
Actually, I'd put the keys at the bottom.

The rupees, arrows and bombs are easy to come by-consumables. Their numbers will constantly change. It makes perfect sense to group them together at the top.
The keys, however, are much rarer and more important items. It makes sense to keep them at the bottom, for a quicker visual reference and separation between the three consumables at the top.

Whenever stuck in the game because you're missing a key, you know JUST where to look by instinct, if the key is at the bottom. It's a smart QOL HUD design choice.

I second this (RUPEE, ARROW, BOMB, KEY):
They are ordered by their occurences, ARROW and BOMB are grouped together, and we can monitor RUPEE and KEY effortlessly since they occupy the top and bottom positions respectively.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Pleiades7 on May 08, 2020, 11:22:02 am

how would you guys feel about changing the order in which the icons appear in the HUD for numbered items?

Like, right now you have:  Rupees -> Arrow -> Keys -> Bombs.
I thought of something like:  Rupee -> Keys -> Arrows -> Bombs
I just think of it to like make it have a proper order of items, and if you have all items maxed out, it would be more in order too.

Original    /   Mockup
(https://i.imgur.com/BTmYyuR.png) (https://i.imgur.com/aNKZoI5.png)

Do it! Its a great idea. Just because this is a great game doesn't mean it is without its flaws. So, yeah, fix this flaw! Makes more sense anyways. And it doesn't need to be an optional hack since it is a quality of life improvement.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: jimstrom on May 08, 2020, 01:32:29 pm
I second this (RUPEE, ARROW, BOMB, KEY):
They are ordered by their occurences, ARROW and BOMB are grouped together, and we can monitor RUPEE and KEY effortlessly since they occupy the top and bottom positions respectively.

I third it, makes the most sense.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: The3Dude on May 09, 2020, 01:05:55 pm
Instead of Rupee, Arrow, Bomb, Key. You should do Rupee, BOMB, Arrow, Key.

Thats how Alttp Lists them. And keys are added to the side only when in dungeons.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ultimaweapon on May 10, 2020, 12:19:30 am
I agree with Rupee, Bomb, Arrow, Key.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 10, 2020, 02:59:57 pm
Turns out actually moving the HUD items wasn't as hard as I thought, but I think mainly because both Bogaa and stratoform had done such amazing job with the Rupees and Arrows code that they made this way easier for me.

So this is the code at hand:
https://github.com/ShadowOne333/The-Legend-of-Zelda-Redux/blob/55c13a7f1058fb215bda1cdbcb66b25380540560/code/move_maps.asm#L321-L325

Code: [Select]
// Reorganize Keys and Arrows in HUD
db $20,$6C,$03,$62,$00,$24 // Rupees
db $20,$8C,$03,$62,$64,$24 // Keys
db $20,$CC,$03,$62,$03,$00 // Bombs
db $20,$AC,$03,$62,$00,$24 // Arrows
This is already in the order I wanted it (Rupees -> Keys -> Arrows -> Bombs).

That should be located at 0x16C96 in the ROM.
If you want Rupees -> Arrows -> Bombs -> Keys, then you need to make the following changes:

Code: [Select]
// Reorganize Keys and Arrows in HUD
db $20,$6C,$03,$62,$00,$24 // Rupees
db $20,$CC,$03,$62,$64,$24 // Keys
db $20,$AC,$03,$62,$03,$00 // Bombs
db $20,$8C,$03,$62,$00,$24 // Arrows

You can also make the changes with any hex editor, should take less than 30 secs to do it.

You only need to change the byte after the "20" so they show up in that order. That's it.
I might see about making it an optional patch, still unsure though.

------------------------------------------------------------------------

Also, one REALLY odd stuff I found out today.
If you change the tile for the bombs in the HUD to a blank, the game refuses to change screens at all.
Try it out, open the game in a Tile Editor, modify the bomb icon used in the HUD to blank it out, and load the game again. The game just refuses to change screen when you reach the edge of the screen, and then freezes right away.
This is SO weird, I don't know why it does that haha.

Just a little bit of info I found amusing, nothing else.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on May 12, 2020, 02:28:09 am
It isn't maybe sprite 0?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 12, 2020, 12:06:31 pm
It isn't maybe sprite 0?

Yeah I did think of that.
I had Zelda 2 Redux flashbacks with Trax telling me kittens would die if I touched that sprite lol

I only tried blanking out the tile, I will try just adding any kind of sprite there to see if it doesn't freeze the game on screen change.

EDIT: Upon some more tests, I can tell that the bomb icon does something very interesting.
Not the bomb icon itself, since I can select another tile in its place, but tile $61 (and $60) specifically from the PPU.
If I leave it blank, the game doesn't change screens, but if I even add just a 4 pixels "dot", it works.
I noticed that said sprites (tile IDs $60 and $61), get called on screen transition for both the key and bomb icon as background sprites behind the icons themselves.
You can try this out by tile editing tile $60, add whatever in there, and change screen, you will see the tile appear behind the key icon until the screen stops moving/scrolling.

So yeah, interesting stuff indeed.
However, this won't help with what I wanted to do lol (which was to free up space for a possible burnable tree sprite which I even did lol)
(Don't pay attention to the blue color, that's the default game palette but can be changed)
(https://i.imgur.com/k9Ikx1g.png)

But oh well, at least I'm happy with how things are right now :D
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: SpringSonic9187 on May 12, 2020, 08:42:53 pm
Yeah I did think of that.
I had Zelda 2 Redux flashbacks with Trax telling me kittens would die if I touched that sprite lol

I only tried blanking out the tile, I will try just adding any kind of sprite there to see if it doesn't freeze the game on screen change.

EDIT: Upon some more tests, I can tell that the bomb icon does something very interesting.
Not the bomb icon itself, since I can select another tile in its place, but tile $61 (and $60) specifically from the PPU.
If I leave it blank, the game doesn't change screens, but if I even add just a 4 pixels "dot", it works.
I noticed that said sprites (tile IDs $60 and $61), get called on screen transition for both the key and bomb icon as background sprites behind the icons themselves.
You can try this out by tile editing tile $60, add whatever in there, and change screen, you will see the tile appear behind the key icon until the screen stops moving/scrolling.

So yeah, interesting stuff indeed.
However, this won't help with what I wanted to do lol (which was to free up space for a possible burnable tree sprite which I even did lol)
(Don't pay attention to the blue color, that's the default game palette but can be changed)
(https://i.imgur.com/k9Ikx1g.png)

But oh well, at least I'm happy with how things are right now :D
Woah, separate graphics for burnable trees?

Looks like I'm never gonna use a overworld map image as a burnable tree fiding tool again.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 16, 2020, 10:52:28 pm
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on May 16, 2020, 11:04:23 pm


That should be located at 0x16C96 in the ROM.
...

Also, one REALLY odd stuff I found out today.
If you change the tile for the bombs in the HUD to a blank, the game refuses to change screens at all.


Around 0x16c96 is a table that will get drawn to RAM $302 on some point. The table contains PPU offsets and counters for the length of tiles to draw. You might have mistaken something for a tile value, what does something else. This table in RAM will get updated with current counts of heart, ruby and bombs in RAM before it will be written to the PPU pattern table. Oddly enough the ruby,arrow,key and bomb are in a other table with a different format and will get drawn at the screen when you spawn.

Here the description for the Table you mentioned:

Spoiler:
/exa 20B608 2424242424242424 20D608 2424242424242424 206C03210024 20AC03210024 20CC03210024 FF
/des uuppss nnnnnnnnnnnnnnnn uuppss nnnnnnnnnnnnnnnn uuppssnnnnnn uuppssnnnnnn uuppssnnnnnn ff   
/des        HeartRowTop             HeartRowbot      ruby         key          bomb          (add two digit entery 208c022100)
/ uu PPU page number high
/ pp PPU page number low
/ ss Leangth of data transphered
/ nn Symbols for nambetable
/ ff End of Table


So to change the bomb it should be at PRG $1bf37. This is true for redux what is a patchwork master-peace ;P (AND YES THAT ONE CRASHES WHEN VALUE $24 lol sry... This would take some debugging)
The bomb is a sprite after the first screen transition. Before it is a heart. This is one way to hide a Sprite  :laugh:

The table you described is one I moved and expanded. I added a lot of space so in theory you could add all kind of things there. I did not have a idea for it so far.   


May 16, 2020, 11:25:24 pm - (Auto Merged - Double Posts are not allowed before 7 days.)
    I've been trying to dive into the MMC3/MMC5 hacks for Zelda 1, but I am kinda confused with all of it. Could someone help me understand the doubts I have?
1 MMC3 and MMC5 do both support CHR bank swapping so they are both good for that. The MMC5 does have a bunch more features. Like more freedom on how to arrange CHR banks. Best thing you look it up at NESDEV. MMC3 might be more compatible with older devices since MMC5 was hard to add on some emulators or power packs. But when hacking it is nice to have a extra 1k PPU sprite window or toy around with music or 8x8 tribute table.

2 Retrorain is awesome to share a hack like this since it might be hard to get into that. Still he added only basic support. You still have to add CHR ROM and hijack GFX loading tables to add proper CHR bank assignment. The patch does not have that much things in it. He will probably expand the space to make it possible. Put the basic MMC5 setup at the Vector bank and drop to the old vector to reset form where the game runs normal. There will be a new bank-swap routine and hijacks of the old once. Might be a challenge to get it all working.

3 When you tell Xkas that it has a header just add a db. Here a example:

Spoiler:
//-------------------------------------------------------------------------------
// iNES Header
//-------------------------------------------------------------------------------
           db $4e,$45,$53,$1A       // Header (NES $1A)
           db 16                   // 12 x 16k PRG banks
           db 00                  // 0 x 8k CHR banks
           db %01010001            // Mirroring: Vertical
                           // SRAM: Not used
                           // 512k Trainer: Not used
                           // 4 Screen VRAM: Not used
                           // Mapper: 5
           db %00000000            // RomType: NES
           db $00,$00,$00,$00     // iNES Tail
           db $00,$00,$00,$00   
//-------------------------------------------------------------------------------
// ROM Start
//-------------------------------------------------------------------------------
bank 0;
   org $8000
                 

You could add the header to the MainASM. Or just make sure to add it in the first file that will get processed.
[/list]
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ActionGamer on May 17, 2020, 02:45:46 pm
Hey man, I just wanted to say I'm loving this Zelda 1 Redux hack so far. I'm actually make a Zelda 1 hack using this hack as a base.

Here you can look at a preview here: http://www.romhacking.net/forum/index.php?topic=30678.0 (http://www.romhacking.net/forum/index.php?topic=30678.0)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 17, 2020, 04:17:40 pm
@bogaabogaa Oh I see.
So the table I posted was indeed made by you when you did the Arrows and Rupee hacks.
Glad to know :)

It really helped to make the rearrangements I wanted to make really easy, thanks for that :P

As for the MMC3/MMC5 stuff, oooofff.
It really seems like a lot more than I can chew.

I'm still indecisive in between MMC3 or MMC5, since basically all I want to do is just add animation frames for water/cascade tiles, and perhaps be able to separate the tilesets from Overworld and Dungeons to possibly adding burnable trees, but I am mostly interested in the animation for Water tiles, the other I can live without.

I tried disassembling Optimum's MMC5 conversion, and this is what I did:
https://pastebin.com/S0esDdUz

It still needs the rewrite of the first line to accommodate your Header explanation, but everything else should work I think. All that's needed is extracting the graphics from the ROM into a file called "mmc5gfx.bin".


But aside from that, I have no clue as to how to complete the hack for bankswitching lol.
Or if I should instead focus on making the MMC3 conversion for better compatibility.

I don't think going full-on MMC5 is necessary, since I just want water/cascade animation tbh.
What do you think, should I use MMC3 instead for better compatibility, or continue with MMC5?

--------------------------------------------------------------------------------------------------

@ActionGamer nice dude!
Hope your hack goes well.
I'd just not going full-in with the Redux features yet until Redux sees a proper release, since things are still in beta and might be prone for bugs/glitches.
I still have to fix some stuff to make it 100% bug-proof.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Trax on May 18, 2020, 02:39:09 am
MMC5 is overkill. MMC3 is probably reasonable, but still not a trivial task. Do it only if you really think it's within the scope of the hack.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on May 18, 2020, 04:07:55 am
If you think the MMC3 might be easier to work with. I don't think this is true in therms of hacking. Sure it is a different topic when it comes to reproduction. I guess you need donation bord for both mapper. Would be interesting to hear about that.

Here is the MMC3 mapper layout for CHR RAM.

;MMC3 CHR Config
;
; The chr is divided like this (but it can be
; inverted to switch which side gets 2 and which
; side gets 4 banks).
;
Code: [Select]
;   8kb Nes ppu-chr-ram     MMC3 mapper                     
;MMC3 CHR Config
;
; The chr is divided like this (but it can be
; inverted to switch which side gets 2 and which
; side gets 4 banks).
;
;
;   8kb Nes ppu-chr-ram     MMC3 mapper
; ______________________  ______________________
; | 0  $0000-$FFFF     |  | 2 Mapper Bank      |
; |                    |  |____________________|
; |                    |  | 3 Mapper Bank      |
; |____________________|  |____________________|
; | 1  $1000-$1fff     |  | 4 Mapper Bank      |
; |                    |  |____________________|
; |                    |  | 5 Mapper Bank      |
; |____________________|  |____________________|
;
;  8kb Nes ppu-chr-ram     MMC3 mapper
; ______________________ ______________________
; | 2 $0000-$07FF      | | 0  Mapper Bank     | 
; |____________________| | $1000-$2000        |
; | 3 $0800-$0FFF      | |                    |
; |____________________| |____________________|
; | 4 $1000-$17FF      | | 1  Mapper Bank     |
; |____________________| | $2000-$4000        |
; | 5 $1800-$1FFF      | |                    |
; |____________________| |____________________|

In case of the MMC5 you can choose the 4 bank layout for both sides Sprites and Tiles. For the Sprite you have a extra 8kb window to map. 4 banks to animate sprites or tiles if you choose the smallest bank for CHR. This will make it easier to animate individual banks for tiles or sprites without wasting unwanted CHR space. So far I feel like the MMC5 gives you more freedom. I know this will not make it easier to decide. I personally like more freedom.


Adding CHR is also not that complicated. There is a pointer table in the ROM where it usually does load tiles to the PPU. I would use that table and dump the CHR RAM in the same order. You can just write the pointer and dump one after the other then pasting them in a CHR.bin you can add it to the end of the ROM. When hijacking this routine to load the pointer with LDA $1234,x it is easy to have the right bank in that table. Instead of loading you write to the mapper register to switch banks.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on May 20, 2020, 04:39:47 pm
Hard to tell tbh, I'm still torn as to what road to go to hopefully achieve animated water tiles.
I'll attempt disassembling the MMC3 conversion alongside the MMC5/Optimum too.
Once both conversions are disassembled, we can see which one to go for the animated tiles lol.

The MMC5 one is already disassembled, I'll just need to make the proper header for it, and I'll start the MMC3 one today.

------------------------------------------------------------------------------------

Aside from that, I added some slight changes to the repo during the weekend.

1)
I fixed the Recoloured Dungeons patch, since some people reported that after coming back from stairs, the dungeon goes back to the default colour scheme. This has been fixed, and I also went ahead did two more things to this patch:

   * Made it so that the sprite palette now matches the dungeon colour instead of using the original's palette (this affected certain things as movable objects like the blocks to make stairs appear, and certain enemies like the Gels/Zols, they now match the dungeon colour like in the original Zelda 1).
   * Changed the palette for the Dark Rooms, so they also match the palette of the recoloured dungeon now.

If we really want to be picky with this patch, then there's still the fade-in/fade-out effects which still use the original dungeons, but to be honest those go by so quickly that they're not that noticeable, so right now I won't bother with those.


2) I made a new optional patch. This one is rather small and quick to do. The new patch disabled the low health beep sound as requested by some people, and to make it in-line with the Zelda 2 Redux optional patch of the same vein.

------------------------------------------------------------------------------------

Okay so I think I'm done with the MMC3 conversion disassembly?
Or so I think lol

Here's the disassembly for MMC3:
https://pastebin.com/kPsFGCgf

And for reference, here's the MMC5 (Optimum) one I posted previously:
https://pastebin.com/S0esDdUz

I have only one question, and that's the header part.
I think I understand the parts of it, but I am confused by the 4th and 5th bytes.
@bogaabogaa in the code you posted for the iNES header, you had those two bytes without "$" in them, does that mean those values are in decimal?

Here's what I have for the 3 headers (the first line in the MMC conversions are the offset and Hex values changed):

Code: (Original Zelda 1 Header) [Select]
db $4E,$45,$53,$1A // Header (NES $1A)
db 08 // 8 x 16k PRG banks
db 00 // 0 x 8k CHR banks
db %00010010 // Mirroring: Vertical
// SRAM: Not used
// 512k Trainer: Not used
// 4 Screen VRAM: Not used
// Mapper: 1
db %00000000 // RomType: NES
db $00,$00,$00,$00 // iNES Tail
db $00,$00,$00,$00

Code: (MMC3 Conversion) [Select]
// 0x00006 - 42
db $4E,$45,$53,$1A // Header (NES $1A)
db 08 // 8 x 16k PRG banks
db 00 // 0 x 8k CHR banks
db %01000010 // Mirroring: Vertical
// SRAM: Not used
// 512k Trainer: Not used
// 4 Screen VRAM: Not used
// Mapper: 4...?
db %00000000 // RomType: NES
db $00,$00,$00,$00 // iNES Tail
db $00,$00,$00,$00

Code: (MMC5 (Optimum) Conversion) [Select]
// 0x00004 - 40 80 52
db $4E,$45,$53,$1A // Header (NES $1A)
db 64 // 64 x 16k PRG banks
db 128 // 128 x 8k CHR banks
db %01010010 // Mirroring: Vertical
// SRAM: Not used
// 512k Trainer: Not used
// 4 Screen VRAM: Not used
// Mapper: 5
db %00000000 // RomType: NES
db $00,$00,$00,$00 // iNES Tail
db $00,$00,$00,$00


For anyone adept enough, please check those header values and let me know if they're correct.
Also, let me know if the disassemblies seem good enough or not.
I already have the MMC3 one ready, and the MMC5 is only lacking the proper header info, and that's it.
Apart from that, I have zero clue as to how to implement this to properly make bankswitching and make the tiles change lol

Also, I noticed that both MMC conversions seem to modify code at the end of bank 7, around the 1FFXX section of the ROM.
IIRC, some code from Redux already uses that section too, so it seems like there will be some code collision in there, unless there's a way to still make both codes work (Redux & MMC) alongside each other.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on May 21, 2020, 07:08:30 pm
Yes numbers in any assembly file I know off are in decimal till they have a prefix like $ff. Some debugger use 0x12af as a prefix. In ASM6 you can write write "hex 1a 2b .." sadly this is missing for xkas assembly patcher. I like to write numbers as binary to see what bit needs to be flipped. This is done with %00001111 what would be the same as $0f in hex. It will also help if you have to solve logic for "or" "and" bitwise operation. In the beginning you might look up a true table for the operations but after a while in just is obvious.

Instead of me explaining the header look it up here.
https://wiki.nesdev.com/w/index.php/INES

Use Mesen and open the debugger window. Below tools you will find INES Header Editor. There you can make changes and see how it updates the header.

I did see you used 64 PRG Banks for MMC5 header. That would give you 1MB ($40 x $4000 byte in hex) also you don't have CHR Space yet. This you would add to the header when you add the graphic banks to the end of the room. This task will give you a idea how to go about to extending a ROM.
Different mappers have different registers to change banks. This is why you have to hijack the old and hack in a new routine for bank swapping. They are located at the vector bank (last bank) since that one is always present. At CPU offset $fffa you will find the NMI pointer. $fffc is reset pointer and $fffe is BKR/IRQ. This is called the vector table and true for any nes ROM I believe. 

I just did add CHR to the MMC5 for CV1 and Jackal. Jackal is still buggy with CHR. I can add CHR for you if you don't trust yourself to do it. Will hit you up on discord about it.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on June 10, 2020, 01:50:46 pm
Sorry for the late reply.
Thanks for the info, Bogaa.
I now understand iNES headers a bit better, and I have now properly implemented the original header of Zelda 1 with code in the source code :)

I have just pushed a fix for the Old Man text, since his text was broken due to some overflow that went into the text point table, and it turns out it modified the exact pointer for the Old Man.

Also, aside from that, there hasn't been much work lately into Redux that could interest most users.
There's currently a lot of work and back and forth talk involving converting the game to MMC3 or MMC5, so we can have more graphics and animated tiles, but there is nothing yet to show in that regard.

I've also been absent due to work stuff and other tihngs, that's why things got somewhat slow.
I'll try to get back to this now, but I don't think there might be much to show until the conversion gets settled and we have a PoC of animation ready.

Still though, if you guys find anything weird, bugs or glitches, please let me know here!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ifightdragons on June 10, 2020, 04:40:07 pm
Very much looking forward to release, whenever that may be!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ActionGamer on July 07, 2020, 10:00:29 am
Is there any update about how the projects going?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on July 07, 2020, 01:30:57 pm
Is there any update about how the projects going?

Well most of the points have already been done.
The only remaining things are:

What I'm currently working on is the MMC3/MMC5 conversion, to hopefully achieve tile animation for water or other stuff.
However, I'm not sure how well it'd play with the current code already done for Redux.
Also, this is something entirely new to me, and I'm trying to figure the whole mapper conversion thing, trying to wrap my head around it, so nothing has come out of that yet.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: pleasejust on July 07, 2020, 03:19:55 pm
just a thought... wouldn't it be easier to try to decompile zelda so you can see what the code is doing? Mario 1 was decompiled. Even Mario 64 was. Is it a different process for different games?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on July 07, 2020, 03:55:42 pm
just a thought... wouldn't it be easier to try to decompile zelda so you can see what the code is doing? Mario 1 was decompiled. Even Mario 64 was. Is it a different process for different games?

While not really decompilations, Trax did some disassemblies of both Zelda 1 and Zelda 2 some time ago, they're available online. Nevertheless, I think disassemblies are the proper code in which NES and SNES games were made back then, given the whole 6502 and how popular assembly was back then in computers.
The people involved in both Z1 and Z2 Redux projects have been using that as a base to work upon.

So we are way ahead of ya :P
We are also using that as base for the source code we've been developing for both Redux projects too.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on July 10, 2020, 04:37:40 am
I think some could use a better understanding of code and what you could do with a proprietary code used to build Zelda from scratch. It does not always make much sense to reverse engineer a whole file if you just like to do some mods for it. The code is not yours so you might get in trouble with it after creating it and yes I am aware that there are a lot of disassembled and documented games for retro consoles on Git. It is not legal even when you find it shared in practice and it is nice this things are not shutdown. Sure I understand that you think it might help to understand the game better. Here I like to say if you write down the code with the data tables in a single document you might end up with around 30 000 line page when you have a 8 bank NES file like Zelda. Even when you invest the time documenting this it would not be the best way to work with a source to just do some mods. What it would be good for is moving large portions of code to other banks and things.. Let me make some examples what you can use the things for your mentioned.

SMB1 Dissasembly:
A full documented assembly source code of a Nes game with one bank of code. The Ram symbols are figured out and named. The code is easy to understand thanks to documentation and the game can be compiled to the original game.
 - You could use this to learn every part of the game you like and I guess it will take time to find parts that can be documented better.
 - You can modified the code and move things around. You can build something different out of it.
 - Even with just one bank this is a large document written in assembly code. The code is edited as text.
 - A source like this takes month or years to generate and is great learning material.

Pure DisASM file without additional Ram symbols:
A full source that can be compiled and run on the Nes.
 - The code can be browsed but to make sense out of it you might need to consult the debugger a lot to get a idea how to name things.
 - This can be used to work out a better source code or to just move blocks of code to get more space for things you have in mind.
 - I like to add if you have more then one bank of code and use DisASM to generate the source there is a view hours of manual editing to make it work.
 - A source like this can be generated in a afternoon.

Mario 64 Source:
This was reverse engineered to C code not just assembly. Could probably be used to make ports to other platforms too. Back in the day they did not build the game with optimization flag (may be buggy around that time). So just building it with that did fix slowdowns. I have no experience with this project so I should be quiet..

Using a injection patcher/ASM patcher:

 - Small files of your code that is fully yours and you can do with it what you like.
 - When documented well what ever the patch is doing can be understand quick and used to patch a game or write a similar patch yourself.
 - Really depends what your going for. But for example speeding up some enemies could be done in a hour without any prior knowledge of the game.

I think this project is set well with some disassembly and the Xkas ejection patcher. A great way to share patches or learn about the game.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: darthvaderx on July 10, 2020, 05:50:13 pm
Zelda II two players, would this be a good option for the project?

http://www.romhacking.net/hacks/5243/ (http://www.romhacking.net/hacks/5243/)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ifightdragons on July 10, 2020, 06:22:15 pm
Zelda II two players, would this be a good option for the project?

http://www.romhacking.net/hacks/5243/ (http://www.romhacking.net/hacks/5243/)

That's for Zelda II, though. This is the Zelda I thread.

Anyway, while that hack is a neat little proof of concept, that's all it really is. The bug testing for a full-featured version of such a game would open up such a Pandora's Box...

I honestly think it might be time to let ShadowOne finish his Zelda hacks, without adding even more to the top of the pile, which will inevitably ensure that the release gets pushed further back.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: darthvaderx on July 10, 2020, 07:18:39 pm
That's for Zelda II, though. This is the Zelda I thread.

Anyway, while that hack is a neat little proof of concept, that's all it really is. The bug testing for a full-featured version of such a game would open up such a Pandora's Box...

I honestly think it might be time to let ShadowOne finish his Zelda hacks, without adding even more to the top of the pile, which will inevitably ensure that the release gets pushed further back.

Ok.  :thumbsup:
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on July 13, 2020, 05:23:06 pm
Thanks for the explanation and the words, bogaa :)
It really helps understand the differences a lot more between them.

Zelda II two players, would this be a good option for the project?

http://www.romhacking.net/hacks/5243/ (http://www.romhacking.net/hacks/5243/)

It seems like a heavy ASM hack for Zelda II.
And tbh it kinda breaks the pace of what I'm attempting to do with Z2 Redux (or even Z1 Redux).
Zelda has always been a single player game, and while the PoC the guy did is awesome, I don't see myself implementing it in the project, much less since it will most likely cause conflicts with code already done for the game.

Besides, for Zelda 2, I think we are at a good enough position, with only the File Select hack remaining.
Adding more stuff would just push it back even more, like ifightdragons mentions. I don't want to keep the project in hiatus for more years than it has already.


As for Zelda 1...
I still haven't done much progress :/
I'm struggling with the mapper stuff... still. lol
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: aml435 on July 25, 2020, 07:13:15 pm
Just played through the newest version and it's pretty damned flawless.
Only real thoughts I had (which you probably already thought of) are:

I wonder if there might be a way to add a couple rooms in dungeons or replace rooms with relatively worthless hints and add a couple places where you could buy increases to your arrow capacity, like the bomb upgrades. Like you start with 30 and maybe one spot to increase your capacity to 50 and a second to increase it to 70, and then when you get the silver arrows it bumps you up to 99.

Another little idea I had today, that might be impossible to implement, but just throwing it out there: I wonder if there'd be a way to add a second upgrade to the shield that makes the big shield not just block, but reflect the projectiles back at the enemies, like in some of the later games?

And then just a personal annoyance with the original game: I wish there was a way to turn off the magic book's effect on the Magic Rod, so it doesn't always produce fire when the beam hits. Too often, I end out smacking into residual fire that it leaves behind. I know I could always just not get the book in Level 8, but I just wish it was an effect you could turn on and off.  Again, that's not a flaw you introduced to the game, it's just an annoyance that's always been there.

Anyway, amazing, near-perfect work so far. Can't wait to see what other surprises you have in store once you have the mapper hack worked out.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Jeville on July 31, 2020, 05:24:23 pm
Can I ask what the offsets are for enemy health and strength? :D
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on July 31, 2020, 08:20:28 pm
Can I ask what the offsets are for enemy health and strength? :D

I did talk about this once here:
It is more about how to "find" make documents of enemy health/damage table..

Here might be other offsets of interest: https://datacrystal.romhacking.net/wiki/The_Legend_of_Zelda:ROM_map

This table will probably be hard to find in the disassembly till they are documented well then you might get lucky with a good search.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Jeville on August 01, 2020, 05:48:15 pm
Thanks!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on August 02, 2020, 03:03:22 am
I had in mind to make a walk-through of what goes into mapper conversion. How to add some CHR banks and make code for some animation. This would be some text and work to cover properly. It just crossed my mind that you will only use this for the waterfall? I think you could be a bit more ambitious when you go all the way to add a mapper there could be some of the features in full use.. Else it is not really worth.. (It would be great to add it anyway as this might be used as learning material to do hacks. May be someone will find better use for it)

Here what crossed my mind. You have CHRram and you can just write a routine to update some PPU addresses. CHRram does allow for some incredible effects. Just look at Battletoads to find some of the possibility.

I tested with Legend of Zelda and 30 byte is too much but 20 byte+ every frame seem to be no problem. I made some prove of concept code for you to improve on. Since I think you like a challenge and get better at coding for the NES. Not sure if this is easier then addin CHR but for sure a different challenge.

Here my prove of concept code at work in a video.
https://youtu.be/jFygmah8_po

Here the code to work with. You can give me feedback as usual what you think and how it goes.
https://www.dropbox.com/s/tch7u0tuwm3qm3o/ZeldaWaterFallExample.zip?dl=0


Notes:
- There are some additional notes at the beginning of the code where graphic pointers are if you like to work on the MMC5 Stuff.
- Task for the WaterFall routine in the normal game is to add 2 more tiles. Then write code to control the animation. (You would need to spread it in a smart way to not conflict with the limit..)
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on August 02, 2020, 12:32:23 pm
I had in mind to make a walk-through of what goes into mapper conversion. How to add some CHR banks and make code for some animation. This would be some text and work to cover properly. It just crossed my mind that you will only use this for the waterfall? I think you could be a bit more ambitious when you go all the way to add a mapper there could be some of the features in full use.. Else it is not really worth.. (It would be great to add it anyway as this might be used as learning material to do hacks. May be someone will find better use for it)

Here what crossed my mind. You have CHRram and you can just write a routine to update some PPU addresses. CHRram does allow for some incredible effects. Just look at Battletoads to find some of the possibility.

I tested with Legend of Zelda and 30 byte is too much but 20 byte+ every frame seem to be no problem. I made some prove of concept code for you to improve on. Since I think you like a challenge and get better at coding for the NES. Not sure if this is easier then addin CHR but for sure a different challenge.

Here my prove of concept code at work in a video.
https://youtu.be/jFygmah8_po

Here the code to work with. You can give me feedback as usual what you think and how it goes.
https://www.dropbox.com/s/tch7u0tuwm3qm3o/ZeldaWaterFallExample.zip?dl=0


Notes:
- There are some additional notes at the beginning of the code where graphic pointers are if you like to work on the MMC5 Stuff.
- Task for the WaterFall routine in the normal game is to add 2 more tiles. Then write code to control the animation. (You would need to spread it in a smart way to not conflict with the limit..)

Insteresting work you did there, bogaa.
So let me see if I got this right...
You are still using the original Zelda 1 mapper to make the waterfalls have animations without relying on additional mappers?

As for touching on this point:
Quote from: bogaabogaa
It just crossed my mind that you will only use this for the waterfall? I think you could be a bit more ambitious when you go all the way to add a mapper there could be some of the features in full use.. Else it is not really worth.. (It would be great to add it anyway as this might be used as learning material to do hacks. May be someone will find better use for it)

I was aiming towards making animations for waterfalls and overall water animation, so the water tiles can be seen moving instead of being static.
This could also apply to other aspects of the game, perhaps even to other places like lava in dungeons or , and having the option to animate pretty much any tile would be a good option.

However, if your code does allow for waterfall/water animation, then going the full-on Mapper conversion would be overkill, if this option is suitable for that end.

I'll check out the code later today hopefully.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on August 02, 2020, 05:25:34 pm
Yes the animation work with mapper 1.

- When using RAM CHR you can have different animation. You just need to be smart about how to implement them properly since moving data uses important CPU cycles during the NMI. When you try to do to much in one frame you will get glitched graphics. But it is no problem to have some animations going on while playing. The most resource heavy thing I did find on the PPU side is pressing pause since the Vertical scrolling + tile-mapping stuff happen.

- Doing a new mapper sounds more overkill to me when you just like to see some bubbles in the lava or some waves in the water. When you would use bank-switching for this task it takes way less resources as it is a simple ROM bank switch.

May be the redux hack might come to a "end" soon. I think after a release with the impotent improvements you can still add additional optional patches to the git. May be some people might like to share patch resources like this so when you do hacks everything is on the same page.

Some idea for optional patches.

- Diagonal movement
- New Boss attack/patterns. Or full Boss revamp.
- Enemies with new skills.
- MMC5 with CHR setup for animation
- New Sword mechanics. Hold to charge.

For some people this is too much and will not fit the redux but might fit the optional section well.
I did not look at how you arranged new added code. I guess this could also be a long time project how to arrange/improve everything. Make sure all the patches work independent and have something like a overview document to look up hijack points used and give a overview on the project so if you like to add things in the future it will not end in disaster.
And things like this will not affect end user that just likes a revamped Zelda. And still will keep this thread alive to do things with this game. If this fits your interested as well.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Jeville on August 04, 2020, 11:30:58 am
Several things:

1. Projectile speed. It appears there are several. Wizzrobe waves are fast, lynel's beam is faster than Link's, etc.

2. What the magical rod can or can't hurt, physical and otherwise. By default, wizzrobes are unaffected.

3. "Leave your money or life" guy. It'd be fun to change the container and rupees to something else.

I couldn't find where to change them.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Prince Valmont on August 04, 2020, 12:32:03 pm
Has there been any recommendation about giving a hint on the trees that can be burned on the World Map? Perhaps a very subtle discoloring?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Jeville on August 06, 2020, 11:31:41 am
Moblin arrows and octorock rocks are trivialized from the get-go because you start with a shield. It's interesting that the file select screen is the only place to see Link shieldless. If I could, I'd replace the magical shield with the default shield in shops and make like-likes able to eat the default one but not the magical one. The magical shield can be a permanent upgrade that can never be lost, like the mirror shield in future Zelda games. Now the question is where to put the magical shield as a valuable treasure to find.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Vanya on August 06, 2020, 01:59:07 pm
I second that motion!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Jeville on August 07, 2020, 12:52:15 pm
It may be a bit too far removed for this project. It's just something some people would want to utilize in their personal hack along with my other listed ideas. Goriya boomerangs is another thing the default shield deflects that I forgot, so its use is not limited to the overworld.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: lexluthermiester on August 08, 2020, 09:56:32 am
Question for ShadowOne333;
Would there be room for a new version of an existing item? The "Magic"(infinite) Bombs would be a very interesting addition! The mechanics are present(Magic key), perhaps a substitution? I would happily give up the magic key for magic bombs.

That aside, I've run through both quests and found no further glitches or problems. This mod is ready for prime-time and it's own official RHDN project page!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ifightdragons on August 08, 2020, 11:33:50 am
Question for ShadowOne333;
Would there be room for a new version of an existing item? The "Magic"(infinite) Bombs would be a very interesting addition! The mechanics are present(Magic key), perhaps a substitution? I would happily give up the magic key for magic bombs.

That aside, I've run through both quests and found no further glitches or problems. This mod is ready for prime-time and it's own official RHDN project page!

Why jump the gun if more additions are planned? Constant beta additions versus a finished release is worth considering.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on August 08, 2020, 01:20:56 pm
Hey guys.
Sorry for not being as active lately in neither of the Zelda Reduxes.
I've been working on other stuff and haven't really found time to fiddle with them properly.

As for the suggestions made recently, while they are good on their own, I would have to say that adding too much stuff to this project might stray it too far from what the original goal is.
The main goal being to make a proper and perhaps definitive version of Zelda 1 that tries to bring it up to modern mechanics of Zelda games, like the arrows, bombs, upgrades, revised script, and some other gameplay changes that were either obnoxious in the original due to its archaic design, or changes so it behaves like recent subsequent Zeldas (mainly ALttP and LA), while still retaining what made the original Zelda unique in its own way, and that being the liberty of going everywhere and explore at one's own pace.

Having certain items that were previously available in the overworld locked as a Dungeon item would kill this, so I want to avoid doing that kind of changes. The same goes towards enemy behaviour.

The point I do wish to address is making the burnable trees visible in one way.
I was thinking of making them dry/dead trees (to mimic a widely known real-life behaviour, being that dry/dead leaves and trees are easier to burn or catch fire than perfectly healthy and alive flora), but given how I already ran out of sprite space on the MMC1 mapper, I am unsure how to tackle that for just the trees alone.

Outside of that, thanks for testing the current version on its entirety, lexluthermiester!
It is really uplifting to hear that the game behaves in a bug and glitch free way in its current beta form.
Really lifts up the spirits to address and try finish up to remaining stuff.

------------------------------------------------------------------------------------------------

Outside of that, I took some time during these past days to make a disassembly of Infidelity's MMC1 to MMC3 patch.
You can find it here:
https://pastebin.com/ta3wqZPp

Additional information by Infidelity:
https://www.romhacking.net/hacks/nes/patches/2454readme.txt

I have already compiled a clean ROM with this disassembly, and it properly creates an MMC3 version of Zelda 1 that boots and plays normally. However, the graphics are still untouched.
From what I can tell, what remains to be done is add the proper bank swap for the graphics.
Each of the "org $BFAC" routines seem to be the bank swap routines.

If anyone has any experience working with MMC3, and could help out to achieve the bank swap for the graphics, please let me know!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Cyneprepou4uk on August 08, 2020, 03:34:51 pm
I have experience working with MMC3
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on August 08, 2020, 05:37:34 pm
I have experience working with MMC3
Oh that's fantastic!
Have you checked out the disassembly?
The game itself now loads as an MMC3 mapper, but what I need is a way to make the banks/graphics swap to create animated tiles.
I am mostly looking for a way to animate the water and waterfalls (graphics in bank 3, 0xC94B -> 0xD16B), if you have idea about how to do so, please let me know.

If anyone manages to help with this, you will be properly credited when the hack is done and in the ReadMe for it of course.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Cyneprepou4uk on August 08, 2020, 07:25:06 pm
If by disassembly you mean that pastebin link you've posted, I didn't find any CHR banks swithching in it.

bank 3, 0xC94B -> 0xD16B - no idea what that means exactly. NES memory? ROM file? Pastebin? Github?

Keep in mind that I've never played this game, so I don't know where the waterfall is, or anything else for that matter.



I need a patch with working MMC3, different tiles for waterfall, and a savestate for FCEUX when you are on the screen with waterfall. I'll come up with something.

Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: ShadowOne333 on August 08, 2020, 11:50:30 pm
If by disassembly you mean that pastebin link you've posted, I didn't find any CHR banks swithching in it.

bank 3, 0xC94B -> 0xD16B - no idea what that means exactly. NES memory? ROM file? Pastebin? Github?

Keep in mind that I've never played this game, so I don't know where the waterfall is, or anything else for that matter.



I need a patch with working MMC3, different tiles for waterfall, and a savestate for FCEUX when you are on the screen with waterfall. I'll come up with something.

You can get the patch from here:
https://www.romhacking.net/hacks/2454/

My disassembly should compile a 1:1 ROM with the one that is generated by that IPS.
As for the waterfall tiles, they're tiles $88-$8C in the PPU Viewer, and here's the save state right at the waterfall:
https://www.dropbox.com/s/zipd5ixyjw64rla/MMC3states.zip?dl=0

Let me know if you need anything else!
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on August 08, 2020, 11:51:40 pm
Here is a working patch of the MMC3 that ShadowOne did send me. Put the Zelda Rom into the ROM folder and use the make.bat file to patch it. We use Xkas v14 Injection patcher for this project. This is all included in the folder.
https://www.dropbox.com/s/tch7u0tuwm3qm3o/ZeldaWaterFallExample.zip?dl=0

There is no CHR as you are ment to add it yourself along with chancing the header hijack the old loading and write new CHR swap routines. I made some notes of the old load pointers. You can find them in the WaterFallAnimation.ASM if you decide to go that way.

- I also unclouded the WaterfallAnimation.ASM since I think you will just use this one to do the animation tiles.
  (Or come up with something less resource heavy. Also added some notes I think might be useful for you)
  At the very end of RAM Page (700-7ff) is free space if you like to do a cool shifting tile for a smooth animation..
- SaveStates for FCEUX for the normal ROM and the MMC3 are in the ROM folder.
- Main Folder has some tiles to animate a Waterfall. This are the same tiles you have in the game by default.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Cyneprepou4uk on August 09, 2020, 12:55:13 pm
Looks like bogaabogaa has already done it.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: bogaabogaa on August 09, 2020, 04:32:58 pm
What I shared is a prove of concept routine and yes it will work with the MMC3 as long you don't add any CHR ROM banks. This will look different if you like to take advance of the mappers capability.

I am also new to coding and I am glad to see other examples. So I might improve mishaps.

After a discussion on discord I did hear that ShadowOne likes to also animate lava, water and may be other things. This will involve to think about how you like to branch the code so it will trigger on the right rooms without overloading tasks.

Writing a good animation routine might also need some tries. For example I like to have some properties in RAM so I can stop or speed up the animation.. all this is optional.
This could also be a good entry point for other hard-coded routines for some rooms. Like palette animation is also done with writing to PPU pages. Or make things with the name table..

I am currently focused around other projects but I might find some time soon to do it properly. I never tried to read tiles from other byte. I wonder how well you can do effects with shifting things. May be some very smooth animations with very little data at hand. Never done anything like this before.
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Iceman100x on August 10, 2020, 08:29:41 pm
where is the download link?
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: Supergamerguy on August 10, 2020, 09:49:47 pm
where is the download link?

Dont think it's done yet
Title: Re: Zelda 1 Redux / The Legend of Zelda Redux
Post by: nosynose on August 11, 2020, 04:53:34 am
where is the download link?
Check out the first page, dude. It's still considered beta, though