shonumi / gbe-plus

DMG/GBC/GBA emulator and experimental NDS emulator.
GNU General Public License v2.0
530 stars 80 forks source link

Enhanced GBA audio? #39

Open ape123 opened 8 years ago

ape123 commented 8 years ago

One thing that always bothered me about the GBA was the audio. It sounded to me like it was audio that could have been from the PSX or newer but raped in some really bad way before reaching the speakers.

Now I've been reading a little about GBA audio lately and it turns out that this is quite close to reality. Apparently most GBA games use a MIDI + soundfont setup and an engine called Sappy. MIDI is MIDI and soundfonts can have quite good quality samples, but actually playing back MIDI in CD quality is apparently not something the weak GBA can do.

We now have a utility for extracting MIDI files and a soundfont from a GBA rom: http://www.romhacking.net/utilities/881/

So basically, if there's a way of bypassing the GBA hardware's processing of audio and instead passing it on to the emulator frontend or an external audio player/MIDI synthesizer, CD quality audio would become a possibility.

More info on Sappy: http://www.romhacking.net/documents/462/

shonumi commented 8 years ago

Ah yes, I believe I was talking about this last year with someone on Reddit. It's definitely do-able. We basically have to take control of the Sappy engine ourselves. I had some ideas on how to properly do that, but I'll have to revisit them eventually.

Although, technically, a real GBA could never get to true CD quality audio (it can only process 8-bit digital audio samples at 32KHz at the max) we could break past that limit in theory. I don't have much to say at the moment since I'm caught up with other work (namely shader support in the near future), but just know this has caught my before and, I do think it would be worthwhile to have :)