News:

11 March 2016 - Forum Rules

Main Menu

Zelda II Redux

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

Previous topic - Next topic

ShadowOne333

Oh so I was not that off after all.
I ended up using Experience amounts that the game already uses, so fortunately I won't need to modify the Tile mapping for the experience points, though it's a good thing to know in case I need to add some custom amounts :)

Thanks for the info, Trax!

Shade Aurion

It might be worth changing exp into rupees like in Revility's hack. It really felt like a good change. Switch out the P Bags for a large Rupee instead. Then it's like you're spending Rupees for upgrades :3

ShadowOne333

Quote from: Shade Aurion on May 30, 2018, 11:21:19 PM
It might be worth changing exp into rupees like in Revility's hack. It really felt like a good change. Switch out the P Bags for a large Rupee instead. Then it's like you're spending Rupees for upgrades :3
That's actually a pretty neat idea.
I never thought about it, but could make sense, since Zelda II is the only game which doesn't feature Rupees in one way or another, and is also the only one to feature an Experience system (that I know of) out of all the Zeldas.
Implementing Rupees would bring it more in line with the rest of the franchise.

Shade Aurion

Quote from: ShadowOne333 on May 31, 2018, 11:29:07 AM
That's actually a pretty neat idea.
I never thought about it, but could make sense, since Zelda II is the only game which doesn't feature Rupees in one way or another, and is also the only one to feature an Experience system (that I know of) out of all the Zeldas.
Implementing Rupees would bring it more in line with the rest of the franchise.

Revility implemented it quite well and changed a few in game items to bring it in line with the series as a whole. It would be worth having a look through his changes because he did an amazing job.

THIS (https://www.romhacking.net/hacks/3716/) title screen is a must even if you edit it because it's be far the most accurate to the artwork i've seen. That hack has a decent link sprite but I think I prefer Revility's as the sword is a tad longer and it felt really good to play through the game with.

I love the way you implemented hearts. It might be worth trying to get the magic meter to be green as then it'll match every other magic meter.
Still, changes like this will likely be down the list for you with all the foundation editing you're doing. Seriously, all that extra space for dialog is going to go a long way :3

ShadowOne333

I think I already mentioned it before, but basically I can't add another colour to the HUD without sacrificing an already existing one.
Right now the HUD uses 3 colours: White, blue and red (4th one is transparency).

So I would have to change one of those three to accommodate for the green colour for the magic meter, and green doesn't look good next to the hearts lol.
So yeah, I can't do much about the magic sadly, but I'll see if I can manage to make something work for sure.

Shade Aurion

Oh my bad dude. I though you might've been able to draw from Link's sprite palette. I'm just brainstorming here man. I know how high you can set the bar (that being high af after LttP Redux, ie: the best version I ever played) Small changes can go a long way sometimes

ShadowOne333

Quote from: Shade Aurion on June 04, 2018, 10:22:35 PM
Oh my bad dude. I though you might've been able to draw from Link's sprite palette. I'm just brainstorming here man. I know how high you can set the bar (that being high af after LttP Redux, ie: the best version I ever played) Small changes can go a long way sometimes
Hey don't worry :P
It's good to brainstorm, could give some nice ideas!
The palette limitation could still be circumvent in one way or another, I just need to try several things first, but given how there are more important things to be worked on (Script, enemy balancing), it's resting at the bottom of things to look at :P

Shadic

Are you still wanting script help? I just got back from a long vacation and can actually help out now.

Do you know if the line length is actually 10 or 11 characters? It actually would change a lot.

ShadowOne333

Quote from: Shadic on June 05, 2018, 12:50:01 PM
Are you still wanting script help? I just got back from a long vacation and can actually help out now.

Do you know if the line length is actually 10 or 11 characters? It actually would change a lot.
Any help is welcome :)
You can grab the latest beta from the OP, patch it over a ROM and work with that.
There's a link in the OP as well of the whole script comparison between japanese, english and a proper translation, so we can use that as the base.

Do you know how to start repointing and writing the script?

Shadic

Repointing... No. I can hex edit just fine, is there a guide on repointing text pointers?

ShadowOne333

#170
Quote from: Shadic on June 05, 2018, 04:00:59 PM
Repointing... No. I can hex edit just fine, is there a guide on repointing text pointers?
I know there should be quite a few, but I always edit pointers manually as well (Hex editing).
I already have the list of pointers, but you can find them here:
https://lemmy.neocities.org/zelda2/bank3_and_7.txt

The text table begins at 0xE390, and the pointer table starts at 0xEFCE.

Take into consideration that the pointers take the NES address and not PC, so for the first text (PLEASE LET ME HELP YOU. COME INSIDE.) you have the "PLEASE L" letters here:


bank3_Dialogs_Text_Table                                                       ;
.byt    $E9,$E5,$DE,$DA,$EC,$DE,$F4,$E5; 0xe390 $A380 E9 E5 DE DA EC DE F4 E5  ;


The important bit is the $A380, that's the starting point for the text, and that's what the pointer table uses:


bank3_Dialogs_Pointer_Table_Towns_in_West_Hyrule                               ;
.word    bank3_Dialogs_Text_Table      ; 0xefce $AFBE 80 A3


As you can see, the first pointer is a couple of bytes [80 A3], but in reality this is in endian, and the pointer is [A3 80], or in other words $A380.
So all you need to do is, let's say you want to use the next unused space of the ROM for the new text, then you have to edit the pointer at 0xEFCE from A3 80 to what the NES address of where the unused area starts.

For example, there is free space starting at 0xF813, or $B803 in NES address, so you simply modify the [A3 80] for [B8 03], but in the ROM you write it as [03 B8].

I believe you can convert PC Address to NES address by subtracting 0x4010 from the PC address (E390 - 4010 = A380), so if you end up doubting what NES address is the location you want to put your code in, simply grab the PC address from the Hex editor and subtract in hex 4010 from it, and that's the NES address that you should write in the pointer locations.

Once you do that, the text that should be printed will no longer be grabbed from its original location, but rather whatever text  you start typing at B803.

That is what I did to make the Rauru sign's mockup image a few pages ago found here:



Let me know if you have any more questions.
Also, don't forget to close each text table with FF at the end of whatever you write, or else the text will continue to be printed on-screen, and this will end up in a text overflow.

You can grab the TBL file for the text editing from Data Crystal.
As for the question about 10/11 characters, I'm not sure yet, I haven't tried pushing 11 to each line and see if it respects the 11 or if it overflows. Try it yourself if you can :P
10 is the safe number in case anything happens.

ShadowOne333

Just for those wondering, nope, this hack is not dead :P
I just won't be able to make progress on it during these weeks due to being on vacations.
I might be able to go back to this maybe mid to late July, or starting in August, but rest assured this thing will be finished for sure ;)

ultimaweapon

It would be nice if someone could figure out how to change the music. I just played a Zelda 1 hack where someone changed the dungeon music to the dungeon music from A Link To The Past. Now, that's something I would love to do with the palace music of Zelda 2. If someone can show me how to do that, I'd be indebted to you.
Trust in the Heart of the Cards

Trax

RAM for music is $EB. Look for every place where you have a store command to $EB and you can change the music playing. Music and sound effects in Zelda II are usually formatted as a single bit field, but I've seen codes like C0 too. I think zero means no sound and 80 means mute music. So, try with bytes that have only one bit set, aka powers of 2 (in hex) : 1, 2, 4, 8, 10, 20, 40, 80.

If you want to create new music, then you have to learn the workings of the APU. This is very hard.

ultimaweapon

I would want to take a song from another game and add it to Zelda 2. I figured that would be very hard.
Trust in the Heart of the Cards

Trax

Talk to Optomon. He made the entire soundtack for Rogue Dawn, the best hack of Metroid to date. He's a pro when it comes to NES music.

John Enigma

I'm loving this.

Perhaps even more than the Easy Hack for Zelda 2.

ShadowOne333

#177
Okay guys.
After almost a month or so of vacations, I'm finally back.
Though, the last two weeks have been shit all around, but nevertheless I will try to fall back in line and finally/hopefully get things done with the new script and pointer stuff to have the reworked script working already.

As always, if you guys have suggestions or anything, please let me know.

With that said, does someone know of a tool or something that could ease up the process of repointing/writing script?
I could do it all through hex editing as I have for previous projects, but given the considerate amount of text in this game, it would be great if there was a tool that could help with this and save time out of doing it entirely in hex.

Trax

My editor Sword II manages text and saves pointers accordingly, at least the townfolks part. Bank 3 does have a lot of unused space (12D1 hex, 4817 decimal, 29% of bank total), so you should not have any problem even with the extra lines of text available. However, the original ROM has the text data preceding the pointers table, and the unused space does not follow immediately. If you intend to keep the same number of dialogs, then your pointer table is fine where it is. But the text data itself should be moved, or at least the excess bytes that will surely result from more meaningful speech from townfolks.

That, I'm not sure my editor will cope. Editors that intend to expand stuff should always have some sort of data manager, where pointers to unused space are kept on the side for when new hack data goes over the current limits of the original ROM.

UltraEpicLeader100

Why not update the sword on the title screen to match the American box art and the sprites accurate to the artwork?