This is for FireRed. Does anyone know where the data for the pokemon's cry in general is? Trying to modify something of it.
~Thanks
CryTable 1 is at 0x0848C914, CryTable 2 is at 0x0848DB44
What is the second table?
Refer to my latest post in this thread: https://www.pokecommunity.com/threads/342598
Thanks, but one more thing. Is the cry table the only data of the cries? I've already looked through those. I will be quite honest, I am trying to expand the length of the cry before it cuts off. If you insert a wav thats longer than 3 seconds as the cry, it'll still cut off at 3 seconds.
That's not a problem with the cry table.. the cry table is literally a table with directsound instruments. It's probably a m4a issue or a RAM issue, most likely not RAM since that makes no sense, but you never know with Gamefreak. They're a bunch of psychopaths a lot of the time
like every other sound in the game, it is probably triggered by a MIDI note. You would need to insert a new "song" or just hex edit the existing one to have a longer note length, basically. No idea where those are located, likely in their own table or something (I remember the Japanese syllables for the hipster being stored at an absurdly high number index)
you were saying? :|
The cries are stored as samples just like any other instrument in the game. The only difference is that they are compressed, as opposed to simply being 8-bit unsigned wav files. The way the engine in the Pokemon games works is that ALL sounds, regardless of music or SFX, are a MIDI file. In fact, to quote the engine's own manual (emphasis their own):
"In this system, there is absolutely no distinction between background music, sound effects and other kinds of sounds in the song data.
Whether it is a work with full orchestration or a sound effect like the beep of a button being pushed, all song data is constructed according to the same format."
My original post still stands.
"M4A data" as you call it basically -is- still MIDI files, just...in a slightly more organized and optimized fashion.
and the cries would have to be done in that way because the engine has no means of merely playing a sample on its own without some kind of control data to tell it the playback note, duration length, etc. ... there's absolutely no way they would have gone out of their way to write a brand new routine just for this when it is far less resource intensive to just do it the standard way.
The fact that they are all three seconds long regardless of actual sample length is further proof of this, I feel like.
exactly, which means that the note length is probably only about 3 seconds long. If you increased its duration, you would be able to hear the entire sound, does that make more sense?
...my point was that the wav is triggered by a note in a MIDI file that is treated as a sound effect. Think of the WAV file of the cry as like an instrument. You can play it any pitch you'd like,and could even make music with it if you really wanted to. The fact remains, to play ANY wav file, whether its an instrument or sound effect or whatever, the engine needs to trigger it with note data. It's likely 3 seconds long because no existing Pokemon cry's wave file ever exceeds that length, so the note only sustains for that long. It doesn't matter how long the wav file is because the data to trigger it only sustains for a predetermined period of time. If you increase the length of this note which triggers the wav file, you will be able to play longer cries. Do you understand what I'm saying now?
Also, not for anything, but having to wait 20 seconds in a battle every time a cry plays seems a little excessive :P though maybe you're doing something else with it!