News:

As a consequence of the forum being updated and repaired, the chatbox has been lost.
However, you can still come say hi on our Discord server!

Main Menu

GBA audio player

Started by Atrius, 11, October, 2008, 06:30:00 PM

Previous topic - Next topic

0 Members and 31 Guests are viewing this topic.

Atrius (He/Him)

While hacking Golden Sun I have messed with it's music format quite a bit.   I worked on a couple classes in Action Script that would play the music back from the original binary data in real time.  I didn't realize it was a common format among GBA games until someone said something about it, at which point I took my Golden Sun audio playing engine slapped on some code to automatically detect where the audio data starts in any ROM, and viola, instant GBA audio player.  I say 'audio' instead of 'music' because most sound effects are stored in the same format as the music.

GBAjukebox.air (10 KB, small huh?)  <span style='color:red'>READ NEXT PARAGRAPH ABOUT INSTALLING</span>

A .air file is an installer for an Adobe Air application. Basically an Adobe Air Application is a Flash file that runs like a program instead of web applet.  Of course you will need a GBA rom to use it, not all games will work with it, but I found a lot of popular ones do.  Don't ask where to get roms, we can't tell you anyway.


The interface is really simple right now, and lacking in functionality, and there are still some features I haven't programmed into the audio playing system yet.  The red/green circle button toggles between generating the music at 22050 Hz (Red), and 44100 Hz (Green)  (I believe the GBA generates the music at 16384 Hz or less depending on the game's settings)


As a bonus here's a GBA audio ripping tool I put together (.zip 24.9KB).  If you drag & drop a ROM file on it, it'll dump the audio data from the ROM to "output.gbas" which can be played by GBAjukebox.  Unfortunately for you Mac/Linux users though it's a Win32 executable.

EDIT, NEW DOWNLOAD LINK: GBAjukebox.zip
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

Hmm... I wonder if anyone here is any good with this stuff?  I mean, it's easy to just put a song together, but trying to replicate someone else's style of musical composition takes a degree of skill.

Question, is it cool to share and post songs we've composed for use?

Atrius (He/Him)

Of course it is, there's a whole forum section just waiting for people to post music, or anything else they make.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

Sweet.  Just wanted to make sure, though.  And though I'm talented with music... I'm not THAT good to be able to duplicate another's style of music, so any releases I'll have will most likely have various versions as I have other people spot my work.  Though, there's not any sense of real urgency for this, though.  Right now, these guides I'm working on hold a higher priority for me. ^-^


Edit:  ...Is it just me, or does this thing not play very well?  I mean, I know this is an incomplete program, but...  Well, before you start working on new features, try getting the quality up to par, first.  Felix's battle for one... just... well, can't stay on tempo for some reason, and it ruins the song because of it.  Boat battles are actually worse, they're missing some of the audio info (not all instruments are playing that should be playing).  Do you know what may be causing it, and of a way to address it?

Atrius (He/Him)

There are some stranger instrument types that Golden Sun uses the program doesn't support.

Music is definitely my weak point, but I think it works alright considering Adobe Air isn't even supposed to be capable of playing music like this at all.  So most of the Tempo issues can be blamed on Adobe Air itself, but it would definitely have been better if I could have made it in something else.
[sprite=220,4,0]I'm shaking my head in general disapproval of everything[/sprite]

Rolina

Well, given your leet programming skills that we've seen so far, I'm sure you'll get it working correctly sooner or later. ^-^