• 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.

[Other] Cry data

PokéMew1

Pokémon Fuchsia
  • 484
    Posts
    11
    Years
    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
     
    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
     
    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.
     
    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
     
    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

    Don't know why on earth it may possibly even be a ram issue since that makes absolutely no sense so I'll disregard that... And thats why I was looking for the overall data for cries so I could find the problem, not the table
     
    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)
     
    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)

    1: GBA does not use MIDI
    2: Cries are just instruments that are compressed
    3: I linked the offsets to the cry tables already
     
    [PokeCommunity.com] Cry data


    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.
     
    [PokeCommunity.com] Cry data


    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.

    I'm saying that the GBA system itself does not use MIDI files. MIDI files are what composers use to convert into M4A data which is read as a "song"

    Yes, that's true, but that doesn't mean every single cry in the game uses a "MIDI" song to play

    And yes, that's what I mean, but that doesn't mean cries are done that way.
     
    "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.
     
    Last edited:
    "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.

    I don't think you understand the problem at hand. Its not that I need a longer note or something, I have a wav that I inserted, percisely 20 seconds long, and the 20 seconds is cut off 3 seconds in.
     
    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!
     
    Last edited:
    ...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!

    Yeah now I get what you're trying to say. My only problem is, where would that note be located? For example I inserted my wav at 0xFFFFF0 by importing sample. Then I replace the cry pointer for the given pokemon with that offset and boom. Nowhere did I have to edit the note length. So the question remains, where or how would I edit the duration of the note its played on?
     
    Back
    Top