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

[Audio] GBA Music Capabilities/Limitations?

Ari3s

Hack Enthusiast
  • 2
    Posts
    9
    Years
    • Seen Oct 26, 2016
    Okay, so this isn't really a question about Pokemon ROM hacking, but rather just a question about the Gameboy Advance itself, so my apologies if I'm posting this in the wrong forum.
    So, I've already tried using a variety of search engines to try to get an answer to this, but I've either come up short or just didn't get the answer I was looking for. As the subject title might entail, I'mcurious what the music capabilities & Limitations of the GBA are. I'm asking this because of past-experience with hacking on other Nintendo platforms, and they've had their share of interesting limitations, and I use "interesting" pretty lightly. From what I understand, the original Gameboy has a limit of five tracks. The NES is the same, but with the difference that the fifth track is used for PCM samples, which isn't present on a Gameboy due to hardware limitations. The SNES ups the anti a little bit, offering 7 or 8 16 bit tracks to work with. I learned this when I fiddled with EBMused, the hacking tool specific to hacking EarthBound music. (By the way, don't even get me started on how difficult and tedious THAT is.)
    So, this is where my question comes in; does the GBA follow the same rule of being limited to a set amount of tracks that can be used for music? Sometimes I kind of feel this is the case with the Pokemon GBA games, but then I hear the music from Mother 3 and can't help but wonder otherwise.
    As a music producer/game dev who's considered making a homebrew GBA game, or a ROM hack with custom music, I've been dying to know the answer to this.
    Oh, and for the record, I have used/worked with Sappy in the past, though not much in regard to loading up custom music just due to frustrations with not being able to figure out how to set the right tracks to the proper instrument, and that's just something I'd probably rather get into in some other subject.
    Big thanks to anyone who can possibly help answer this dragged out question of mine. ^^
     

    Squeetz

    ROM Hacker
  • 191
    Posts
    10
    Years
    So, this is where my question comes in; does the GBA follow the same rule of being limited to a set amount of tracks that can be used for music?

    The GBA has 6 channels.
    Squarewave, Squarewave2, Waveform and Noise, like the original GB.
    It also has 2 channels for Directsound, presumably left and right pan. (I'm not entirely sure)

    By 'tracks' I'm assuming you mean the actual "MIDI" tracks in a song, in which case:
    By default, Pokemon Firered, as an example, can play 10 tracks at once, but it's possible to repoint the amount of playable tracks to a new RAM area to allow for 16 (or more, but the max amount of tracks I've seen in any GBA game has 16) tracks.

    But default Firered can only play 5 Directsounds at once! This is where I'm really uncertain.
    Apparently, simply changing one byte allows for a max of 12 directsounds playing at once, according to Jambo51:

    Jambo51 said:
    Extending the Number of Direct Sound Tracks on 3rd Gen Pokémon Games

    It's as easy as this:
    Search for the hex string "00 C5 94 00" in your ROM
    Replace said string with "00 CX 94 00" where X stands for the number of maximum DS tracks

    Now, there are limits here. Fire Red and Emerald (presumably Leaf Green too) can support a maximum of 12 (0xC) tracks, so you can put 00 CC 94 00 for these ROMs, however, Ruby (presumably Sapphire too) are different. RS can only support a maximum of 7!

    I have no idea how this works, but it works.
    Here's GBATEK for more technical information: https://problemkaputt.de/gbatek.htm#gbasoundcontroller
     
  • 247
    Posts
    6
    Years
    • Seen May 19, 2024
    By default, Pokemon Firered, as an example, can play 10 tracks at once, but it's possible to repoint the amount of playable tracks to a new RAM area to allow for 16 (or more, but the max amount of tracks I've seen in any GBA game has 16) tracks.

    I know it's been awhile since you posted this, but can you explain how to go about repointing the RAM to accomplish this, or guide me to a tutorial?
     
    Back
    Top