• Just a reminder that providing specifics on, sharing links to, or naming websites where ROMs can be accessed is against the rules. If your post has any of this information it will be removed.
  • Ever thought it'd be cool to have your art, writing, or challenge runs featured on PokéCommunity? Click here for info - we'd love to spotlight your work!
  • Which Pokémon Masters protagonist do you like most? Let us know by casting a vote in our Masters favorite protagonist poll here!
  • Red, Hilda, Paxton, or Kellyn - which Pokémon protagonist is your favorite? Let us know by voting in our poll!
  • 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] Finding free (I)RAM spaces for 16 midi channels

  • 15
    Posts
    10
    Years
    • Seen Oct 22, 2021
    Recently, I started doing some music hacking, and tried to expand the midi channel limit from 10 to 16.
    The problem is that since the music engine must handle 6 more tracks, I must re-point the pointer to larger free space in the RAM for the handler. Otherwise, it would overwrite bytes adjacent to the handler, causing some weird glitches.
    Specifically, the handler would take 0x50 * 0x10 = 0x500 bytes. I need to find such free space in RAM that doesn't get overwritten by some other routines at any time.
    I found some RAM addresses that might be safe to use, by looking at the Memory viewer in emulator, but it seems that none of them worked. Some just crashes the game, some just glitches the music engine, making some sound never fade out. All of the RAM spaces that I used was in IRAM.

    So, the question is: Is there any way to find 0x500 bytes of freespaces in RAM without staring at the Memory viewer?

    By the way, the ROM I'm using is plain Emerald English version.

    Thanks!
     
    Back
    Top