There are two sound drivers used in the GBA. The default one for most games is called MP2K/Sappy and is very crunchy. There is a better one that was reverse engineered from Golden Sun and applied to Pokemon:
Sound quality is noticeably better and its all been well documented:
https://www.pokecommunity.com/showthread.php?t=324673
https://github.com/ipatix/gba-hq-mixer
https://github.com/pret/pokeemerald/wiki/Implementing-ipatix's-High-Quality-Audio-Mixer
Theoretically we can combine this with OPEN_AGB_FIRM in the form of patches that add in the new calls as other titles have had it done before:
https://ffhacktics.com/smf/index.php?topic=12970.0
From a quick glance we'd need to find the address and replace via IPS. This will probably have to be done manually for each title so would be a community effort.
I do think its entirely feasible though as I've heard the new sounds hack applied to a few other titles and the difference is quality is almost DS level smooth in comparison to the crunch GBA sound. All of the background hiss is gone and we get 16 bit sound as opposed to an 8 bit mixdown.
Patch info for details of application:
https://www.romhacking.net/hacks/6951/
In combination with OPEN_AGB_FIRM it could be a game changer as the Gamma customization there makes the titles look amazing and this could do the same for sound using the IPS facility:
https://gbatemp.net/threads/open_agb_firm-discussion-thread.570844/
@godreborn @shoco @Dartz150 @NanashiFinal13 @PabloMK7 @Sono @DrgnMasterKota @IcySon55 @MasterFeizz
Sound quality is noticeably better and its all been well documented:
https://www.pokecommunity.com/showthread.php?t=324673
https://github.com/ipatix/gba-hq-mixer
https://github.com/pret/pokeemerald/wiki/Implementing-ipatix's-High-Quality-Audio-Mixer
"All GBA games use the sound driver that comes in the GBA SDK, m4a (also known as mp2k or "Sappy"). While not a bad engine, it does have the issue of being notoriously noisy. In response to this, ipatix created a custom audio mixer for use in the m4a engine based on the custom engine of the Golden Sun games. This engine has two major benefits:
- Less noise. The SDK's audio mixer mixes every channel in 8-bit before also outputting at the final 8-bit DAC. What this means is that every additional DirectSound channel will add more noise, and with enough channels it can get pretty bad. This mixer avoids that issue by mixing the audio in a 16-bit space so that the only conversion to 8-bit is at the final DAC output; this means that no matter how many channels you have, the amount of noise will be the same (equivalent to having a single channel worth of noise in the original mixer).
- Better performance. The code is highly optimized and contains a self-modifying code loop that is loaded into RAM and allows for faster processing than the SDK mixer, even despite the new 16-bit arithmetic. For more details on how the mixer itself actually works, visit ipatix's repository for the mixer. However, none of this information is necessary if you just want to use it in your game, and with that said, we can now move on to the actual tutorial."
Theoretically we can combine this with OPEN_AGB_FIRM in the form of patches that add in the new calls as other titles have had it done before:
https://ffhacktics.com/smf/index.php?topic=12970.0
From a quick glance we'd need to find the address and replace via IPS. This will probably have to be done manually for each title so would be a community effort.
I do think its entirely feasible though as I've heard the new sounds hack applied to a few other titles and the difference is quality is almost DS level smooth in comparison to the crunch GBA sound. All of the background hiss is gone and we get 16 bit sound as opposed to an 8 bit mixdown.
Patch info for details of application:
https://www.romhacking.net/hacks/6951/
In combination with OPEN_AGB_FIRM it could be a game changer as the Gamma customization there makes the titles look amazing and this could do the same for sound using the IPS facility:
https://gbatemp.net/threads/open_agb_firm-discussion-thread.570844/
@godreborn @shoco @Dartz150 @NanashiFinal13 @PabloMK7 @Sono @DrgnMasterKota @IcySon55 @MasterFeizz