Editing music in Zelda 2 - The Adventure Of Link

This is an archive of a topic from NESdev BBS, taken in mid-October 2019 before a server upgrade.
View original topic
Editing music in Zelda 2 - The Adventure Of Link
by on (#232010)
I want to replace some of the music and sounds in Zelda 2. I have the game disassembled, but I don't know how to go about editing the music. I need help.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232026)
Romhacking.net's Data Crystal wiki page for Zelda II: The Adventure of Link has a "Zelda II Music Document". The hex locations in that document are offsets in the .NES file.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232031)
2 methods.

Figure out exactly what the music code does.

or.

Find the music data, and just corrupt it and see what happens.


another thought. go somewhere where nothing is going on, but music plays such as the title screen., and look at the RAM in a debugger. The zeropage RAM almost certainly has some pointers to music data, they tell you where the data is.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232095)
I have the Music document from RHDN, and I have a disassembly. I can find the music, but the info only talks about how to change pitch and tones. What I need to figure out is how to replace a song with a different song not currently in the game.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232101)
According to that doc, the songs are built from a sequence of phrases. You'll need to divide your music into phrases, then make that "phrase order" table that points to your phrases so they'll play in the order you want.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232119)
UltimaWeapon wrote:
I have the Music document from RHDN, and I have a disassembly. I can find the music, but the info only talks about how to change pitch and tones. What I need to figure out is how to replace a song with a different song not currently in the game.

The doc is explaining it in Lego block detail, and you want it as a pre-made Lego building. I'm afraid you'll have to build your song up in Lego block detail in the format and arrangement that Zelda 2's music engine expects.

By the way, almost every old game system games' music engine / driver is unique from one another. There is no standard music format for them, let alone a human-readable one.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232521)
ccovell wrote:
The doc is explaining it in Lego block detail, and you want it as a pre-made Lego building. I'm afraid you'll have to build your song up in Lego block detail in the format and arrangement that Zelda 2's music engine expects.

Or...

You can do something like this and replace the music engine with your own:

https://youtu.be/_Hx4QUNsTiw
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232703)
Jedi QuestMaster wrote:
ccovell wrote:
The doc is explaining it in Lego block detail, and you want it as a pre-made Lego building. I'm afraid you'll have to build your song up in Lego block detail in the format and arrangement that Zelda 2's music engine expects.

Or...

You can do something like this and replace the music engine with your own:

https://youtu.be/_Hx4QUNsTiw


How do I go about replacing the music engine with my own?
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232705)
Quote:
with my own?


Are you going to rewrite one from scratch? Or use one of the existing homebrew music engines?

Also, adding VRC7 support would require more changes than just the music code.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232706)
Replacing a game's entire audio driver is a fairly invasive hack that requires you to know, among other things, how to program in 6502 assembly language and how to use ROM and RAM maps (or, if they don't exist, how to make one). The appropriate description of the process depends on your level of assembly experience.
Re: Editing music in Zelda 2 - The Adventure Of Link
by on (#232981)
dougeff wrote:
Find the music data, and just corrupt it and see what happens.



Do it! DO IT!!!!