• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

Help Thread: Music & Audio

Status
Not open for further replies.
60
Posts
8
Years
I want to extract music from the legend of zelda: link's awakening dx(the gbc version) as midis to use in my hack. how would i go about doing this?
 

Bulbadon

Might or might not come back
106
Posts
9
Years
  • Age 26
  • Seen Aug 26, 2016
60
Posts
8
Years
I know how to insert midis with sappy and mid2agb. the problem is extracting the midis from Link's Awakening DX, assuming that its music can even be extracted from the game as midis at all. Sappy can only extract midis from gba games, and I loaded Link's Awakening DX into VGMTrans and got nothing. What I need is a tool or something that can extract Link's Awakening DX's music as midis(and maybe extract the soundfonts too).
 
Last edited:

Squeetz

ROM Hacker
191
Posts
10
Years
I know how to insert midis with sappy and mid2agb. the problem is extracting the midis from Link's Awakening DX, assuming that its music can even be extracted from the game as midis at all. Sappy can only extract midis from gba games, and I loaded Link's Awakening DX into VGMTrans and got nothing. What I need is a tool or something that can extract Link's Awakening DX's music as midis(and maybe extract the soundfonts too).
I don't think you'll ever find a tool for exporting music from GB/GBC games.

Bregalad @ romhacking.net said:
The only proper way to do that is to
  • Reverse engineer the sound engine of the game
  • Figure out how the musical data is stored in the game (so far, all music engines I've ever encountered uses some sort of musical byte code)
  • Write a PC program that rips the musical byte code from the game into MIDI format
The main problem being that this only work for a single game, or in the best cases for a couple of games by the same company who happens to share the same musical bytecode.

This is precisely what the SongRipper part of GBAMusRiper does by the way. Unfrotunately it's for GBA, not GB or GBC, but the concept applies to all sound engines.
 
60
Posts
8
Years
Well crap. I have no experience with that sort of thing. I'd love it if someone with experience could make that kind of tool for me, but I doubt anyone would ever do that. :( Recreations of the songs I want can be found in some places on the internet, but they're all wrong in one way or another. And the only midi event I know how to use correctly is the program change event, so recreating the songs myself isn't really an option either. Dang it.
 
60
Posts
8
Years
How do you insert music in Firered without replacing any of the music? I assumed that I could just assemble a song in the empty song slots beyond the Teachy TV song. I've only gotten it to work in the slot #347(15B in hex), which is right after Teachy TV(#346, 15A in hex). I can assemble songs in slot 348 and beyond and they play just fine in sappy, but when I change the song in the header of advance map, the only song that will play in-game that's past teachy tv is the song I inserted right after it at song number 015B. Songs I inserted at 15C and beyond don't play in-game. I just get silence. Is thetre something I'm doing wrong?
 

Squeetz

ROM Hacker
191
Posts
10
Years
How do you insert music in Firered without replacing any of the music?

You need to repoint the songtable at x4A32CC (It's 0xADC Bytes long), I believe there's a tutorial somewhere.

Then, when you've inserted music above the teachy TV slot, you simply write in the ID of the song you inserted in a-map (the slot above Teachy TV would then be 347, or x15B in hex), or you can edit a-map's ini (musik_en.txt)

If you just use the slots above the songtable without repointing, you're overwriting data which could lead to unwanted bugs.
 

Lance32497

LanceKoijer of Pokemon_Addicts
792
Posts
9
Years
Hello, I have a problem inserting song in a rom.I have wavfile of it andconverted it into MIDI, it both plays in Music Player but when I try to import it on Sappy, it doesn't play any sound and makes the software crash.
 

RoadToCerulean

A Ordinary Kanto Lover
205
Posts
7
Years
Problem 1:
When a song with Pitchbend changes (e.g No.297 Trainer Battle) is ripped from the ROM via Sappy, converted into .s file via mid2agb, and assembled into a ROM again, the Pitchbend does not change the same as it should do (e.g originally it varies from 0 and 756 and now it varies from 0 and 126, exactly 1/6 of the former), and this causes some tracks to sound weird.
Problem 2:
How can I expand the DirectSound Limit of 5 in Ruby and Emerald? I tried the same way as FireRed (it worked) but it does not seem to work.
 

Squeetz

ROM Hacker
191
Posts
10
Years
Problem 1:
When a song with Pitchbend changes (e.g No.297 Trainer Battle) is ripped from the ROM via Sappy, converted into .s file via mid2agb, and assembled into a ROM again, the Pitchbend does not change the same as it should do (e.g originally it varies from 0 and 756 and now it varies from 0 and 126, exactly 1/6 of the former), and this causes some tracks to sound weird.
Problem 2:
How can I expand the DirectSound Limit of 5 in Ruby and Emerald? I tried the same way as FireRed (it worked) but it does not seem to work.

1.
Sappy isn't that great at exporting to midi, try "Export Tracks" and then "Import tracks" to the ROM you want the song be added to.

2.
In Emerald, go to 0x2E0105 and change the C5 to CC for 12 directsound tracks.
 
Status
Not open for further replies.
Back
Top