News:

11 March 2016 - Forum Rules

Main Menu

Zelda 1 Redux / The Legend of Zelda Redux

Started by ShadowOne333, October 10, 2019, 12:04:03 PM

Previous topic - Next topic

bogaabogaa

#320
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.
**old and deleted**

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.
CV ROM DiscordServer
https://discord.gg/PvFgxRg

Cyneprepou4uk

Looks like bogaabogaa has already done it.

bogaabogaa

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.
CV ROM DiscordServer
https://discord.gg/PvFgxRg

Iceman100x


Supergamerguy

Mega Man 7 > 3 > 2 > 9 > Wily Wars > 10 > V(GB) > 5 > 6 > 4 > Powered Up > 1 > The Power Fighters > The Power Battle > IV(GB) > III(GB) > II(GB) > Dr. Wily's Revenge(GB) > 8 > Mega Man and Bass > Mega Man (Game Gear) > Mega Man and Bass - Challengers from the Future

nosynose

Quote from: Iceman100x on August 10, 2020, 08:29:41 PM
where is the download link?
Check out the first page, dude. It's still considered beta, though

bogaabogaa

#326


Here I finished the waterfall stuff for the base game (also current mmc3 and mmc5 without CHR) and share code and IPS here. This is not tested with redux! But Shadow might add it and change offsets when needed.

**deleted**

The hardest part for me was to figure out column assembly definition and the hijack is not really clean what is important to know when you plan to hack the game and move over-world tiles.. But I pointed things out in the code.

You will find a normal tile update and a shifted version. This can be example how to handle it. The code could be further improved!


**Update**
Tested with Redux. I had to add a bunch of checks since Redux does use more NMI time. (Also move some stuff) The normal CHR ROM tiles would still need to be updated for the first scroll. (Also does free up some tiles) But the patch works with redux for testing.

https://www.dropbox.com/s/phetkstqk71kg7r/ZeldaWaterfallAnimation.zip?dl=0
CV ROM DiscordServer
https://discord.gg/PvFgxRg

jimstrom


Noside


Supergamerguy

http://www.romhacking.net/hacks/5337/

Please tell me this can be worked into the Redux. Even as an optional patch, especially that sword fix to let it fly at all levels of health. :woot!:
Mega Man 7 > 3 > 2 > 9 > Wily Wars > 10 > V(GB) > 5 > 6 > 4 > Powered Up > 1 > The Power Fighters > The Power Battle > IV(GB) > III(GB) > II(GB) > Dr. Wily's Revenge(GB) > 8 > Mega Man and Bass > Mega Man (Game Gear) > Mega Man and Bass - Challengers from the Future

bogaabogaa

Does less sound like optional and more like a cheat patch. Would probably be best to make separate folder/categories for that. There come some to my mind that are really fun. Sometimes it is cool to just remove limitations.
CV ROM DiscordServer
https://discord.gg/PvFgxRg

ShadowOne333

#331
Quote from: bogaabogaa on August 15, 2020, 12:16:43 AM


Here I finished the waterfall stuff for the base game (also current mmc3 and mmc5 without CHR) and share code and IPS here. This is not tested with redux! But Shadow might add it and change offsets when needed.

**deleted**

The hardest part for me was to figure out column assembly definition and the hijack is not really clean what is important to know when you plan to hack the game and move over-world tiles.. But I pointed things out in the code.

You will find a normal tile update and a shifted version. This can be example how to handle it. The code could be further improved!


**Update**
Tested with Redux. I had to add a bunch of checks since Redux does use more NMI time. (Also move some stuff) The normal CHR ROM tiles would still need to be updated for the first scroll. (Also does free up some tiles) But the patch works with redux for testing.

https://www.dropbox.com/s/phetkstqk71kg7r/ZeldaWaterfallAnimation.zip?dl=0

Fantastic work, as always bogaa!
You never sease to amaze me :)

Another thing I noticed, and that maybe could be also used as yet another option to accomplish animation on Zelda 1, is maybe taking the flame sprite as example. Iirc, the flame sprite remains the same at all times, but the game mirrors the flame sprite horizontally to achieve the little animation effect. Obviously this is not as good of an option, since it limits the sprite to be used to be the same at all times, but it's just another idea.
I say we stick to this and the MMC3/5 stuff for now :P

I'll take a look at your code, alongside the MMC3/5 disassembly to see what can be done!
Thanks!

Quote from: Supergamerguy on August 16, 2020, 09:18:07 PM
http://www.romhacking.net/hacks/5337/

Please tell me this can be worked into the Redux. Even as an optional patch, especially that sword fix to let it fly at all levels of health. :woot!:

I'm not too sure about this.
This seems like a cheat code that was implemented into the ROM, not much more.
If at all, I think the only good thing would be being able to shoot the flame without limits with the candles, but then again, this is completely useless as soon as you get the Magic Rod, which does basically the same.

I dare say we are better off using cheat codes for these.
And that reminds me, I will be making new cheat codes for Zelda 1 Redux for things that have been included into the project so far, like the Rupees, Arrows and other stuff that makes use of new RAM addresses, or have been moved in the RAM.




Outside of that, I remembered I wanted to do another thing in Zelda 1 which I couldn't tackle as well before, and that's to add the proper full names to the credits of the people involved in the game, instead of using nicknames.

The way I have it right now, I had to sacrifice the first name, and I only added the full last name to the credits.
I tried making my mockup work in-game, and while I did accomplish the result I wanted for "Executive Producer: Hiroshi Yamauchi" and "Sound Composer: Koji Kondo" exactly as in my mockup, the rest I couldn't replicate as I wanted, mainly because the way the credits are printed doesn't allow for such formatting on the screen.

The pointers for this are separated into two parts, a table with the low bytes of each entry's pointer (at $AC2E), and another table with the high bytes of each entry's pointer (at $AC45). The code that seems to handle all of this is located between $ADF9 (0xAE09) and $AE90 (0xAEA0).

Basically, what I'm looking for is being able to break the "Designer" and "Producer" lines into two lines instead of one, the "Director" lines into 3 lines instead of 2, and the "Programmer" lines intro 4 lines instead of 3.

                      Current Credits                    /               Mockup Desired Credits

ultimaweapon

That waterfall animation is awesome. It'll be great to see what other effects can be improved.

As we know, the wand is basically useless against enemies like ironknuckles and wizzrobes. As we know, once you get the Book, the Wand releases a flame on contact. Is there a way to change that to a bomb explosion? That way, the Wand would be a more effective weapon.
Trust in the Heart of the Cards

Jeville

Quote from: ultimaweapon on August 18, 2020, 05:50:37 PM
That waterfall animation is awesome. It'll be great to see what other effects can be improved.

As we know, the wand is basically useless against enemies like ironknuckles and wizzrobes. As we know, once you get the Book, the Wand releases a flame on contact. Is there a way to change that to a bomb explosion? That way, the Wand would be a more effective weapon.
The wand can hurt darknuts. Bomb explosion is as strong as the magical sword so that'd be too powerful.

darthvaderx

Finally there was time to finish the Zelda II Redux with the new gfx and there was no problem with the exception of one, when I lift the sword upwards these two dots appear in the image:



I've fixed it here and please fix it in the next update. (And sorry for the horrible palette, I was experimenting with RGB mode on Mesen.:laugh: )
See my hacks channel including some of my works:

https://www.youtube.com/user/MyWashington2/videos

erpster2

Quote from: Jeville on August 18, 2020, 10:30:03 PM
The wand can hurt darknuts. Bomb explosion is as strong as the magical sword so that'd be too powerful.

only the wand itself can hurt darknuts but the wand beam does not affect them

Jeville

Quote from: erpster2 on September 02, 2020, 06:37:19 PM
only the wand itself can hurt darknuts but the wand beam does not affect them
Should it? It shoots beams regardless of health so there should be a catch.

ShadowOne333


ultimaweapon

Well ShadowOne. It started once upon a time not long ago......

Seriously, I had made a suggestion about having the Wand do bomb explosions instead of fire. I guess it went a little crazy from there.

You get the Wand in Level 6 and the Book Of Magic in Level 8. The Wand is not really that effective as a weapon especially when going up against Darknuts and Wizzrobes. Even bombs are not effective against Darknuts when the explosion is head on. My suggestion would make the Wand a more effective weapon for the end game. While physically, the Wand can hurt Darknuts, why would you use it when you have the Magical Sword?

What are your thoughts?
Trust in the Heart of the Cards

ShadowOne333

#339
Quote from: ultimaweapon on September 05, 2020, 06:47:30 PM
Well ShadowOne. It started once upon a time not long ago......

Seriously, I had made a suggestion about having the Wand do bomb explosions instead of fire. I guess it went a little crazy from there.

You get the Wand in Level 6 and the Book Of Magic in Level 8. The Wand is not really that effective as a weapon especially when going up against Darknuts and Wizzrobes. Even bombs are not effective against Darknuts when the explosion is head on. My suggestion would make the Wand a more effective weapon for the end game. While physically, the Wand can hurt Darknuts, why would you use it when you have the Magical Sword?

What are your thoughts?

Well, even if you have the Magical Sword, as soon as you get hit, you don't have any good ranged attacks of infinite ammunition. The purpose of the Magical Sword beam is basically just to be OP until you screw up, that's when Arrows and the Rod come in, they help in that part. I actually use it quite a lot outside of strong enemies.
Still tho, since the Arrows have been reworked into an actual droppable item, perhaps that helps balance stuff a bit.




Out of that, I've done some more polish work on the project today, and I have segmented the main Redux graphics a bit more in (hopefully) preparation for the MMC3 conversion.
The MMC3 stuff is still not in, but I am making baby steps on trying to track down what code could be related to the graphics loading to hijack it.

Also, I did some research out of curiosity, and I think a burnable tree could be easily achieved by doing the following in theory:

  • Create a table with the data of a custom burnable tree tiles that we want to use through ASM
  • Custom code that detects whether or not Link is in the Overworld or in a Dungeon. RAM $10 handles this, where if it is 0, then Link is in the overworld.
  • Once that check has been done, and if Link is indeed in the overworld, overwrite PPU addresses $15A0-$15DF with our burnable tree tile table. If Link is not in the overworld, keep that PPU range intact (or force it to put the original tiles there, not sure if it does it by default with this theoretical code)
  • This would (in theory) overwrite the Up/Down cracked dungeon walls for a burnable tree when Link is in the Overworld, and when Link enters a Dungeon, the Up/Down cracked dungeon walls would be in that place instead

This is all still theoretical, I haven't exactly tracked where in the game I could make a hijack for such a thing.
Here's the Burn Tree tile I made:


And in Hex form for this possible implementation:

BurnTree:
db $00,$00,$64,$36,$5A,$37,$05,$11
db $FF,$FF,$DD,$AE,$9A,$D7,$E5,$E1
db $0B,$03,$03,$06,$06,$0E,$0B,$00
db $F3,$FB,$FB,$FE,$F6,$FE,$EB,$C0
db $00,$00,$00,$00,$80,$80,$A0,$A0
db $FF,$FF,$BF,$1F,$9F,$9F,$BF,$BF
db $44,$4A,$50,$F0,$40,$A0,$B0,$00
db $5D,$59,$53,$F7,$4F,$A7,$B1,$03