Forums

Sega Master System / Mark III / Game Gear
SG-1000 / SC-3000 / SF-7000 / OMV
Home - Forums - Games - Scans - Maps - Cheats - Credits
Music - Videos - Development - Hacks - Translations - Homebrew

View topic - GBA VGM Player

Reply to topic
Author Message
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
GBA VGM Player
Post Posted: Sat Apr 23, 2005 11:49 am
Last edited by Maxim on Wed May 02, 2007 4:59 pm; edited 2 times in total


No promises, and you may recognise what I'm building it on top of.
gbavgm1sk.png (1.52 KB)
gbavgm1sk.png

  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Version 0.11 released!
Post Posted: Sun Apr 24, 2005 6:19 pm
Last edited by Maxim on Tue May 03, 2005 8:44 pm; edited 2 times in total
GBA VGM Player 0.11 - see below for newer versions

Feedback increases chances of updates.
  View user's profile Send private message Visit poster's website
  • Joined: 31 Mar 2005
  • Posts: 90
  • Location: Georgia, USA
Reply with quote
Post Posted: Mon Apr 25, 2005 2:22 am
Well, it works, I tried my vgm boss song and "1ultra.vgm" that comes with mod2psg2.

However, the high notes sound sucky thanks to the gba's sound capabilities :( like fuzzy.

do you think you could correct this, or is it the gba's fault inherently?
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Post Posted: Mon Apr 25, 2005 9:23 am
It's because of the low sampling rate of the audio being produced (currently at about 18kHz, I hope to increase it some time) and because antialiasing is not being used. Also, if you're playing it on a GBA emulator then it sounds a lot worse thanks to difficult mapping of the GBA's output onto your soundcard; I suggest you try it with Kode54's VBA with libresample which can be found at a mirror halfway down this Google cache of a forum thread.

High notes used to be similarly bad on the VGM plugin, although less so because it runs at 44100Hz. There's a lot of optimising work to be done before I can get antialiasing into this version of my PSG emulator; I have converted the relevant code to fixed-point but I had to rewrite large sections to be optimised enough to run on the GBA's 16MHz CPU, and didn't attempt to add that in yet.
  View user's profile Send private message Visit poster's website
hittheswitch
  • Guest
Reply with quote
Post Posted: Mon Apr 25, 2005 7:12 pm
Wow, haven't had the time to try it on my GBA yet but I've been waiting for this for a long time. I'd kill for a Pogoshell plugin version of that player :)
 
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Post Posted: Tue Apr 26, 2005 9:04 am
A Pogoshell version probably wouldn't be too hard to write, but I have no experience of it, so it might be better to leave it to someone more experienced. I can't even find out what the requirements are for such a thing.

If it's possible to make a Pogoshell plugin of it, it would also allow for a plugin version of its ancestor, the GSM player. Which it seems lots of people want.

In development news, I figured out some more of the GBA's Direct Sound channel's workings and I have it running at variable sampling rates now; I accidentally flashed myself a 5733Hz version this morning (instead of the 21kHz one) and suffered severe aural abuse on the train :( I'm also working on better font support (for Ast?rix and the Ecco composers) but we'll have to wait and see how far that gets. My development will probably only go as far as it needs to for my own needs. Unless someone wants to donate me a GBA SP, in which case I might do some feature requests :)
  View user's profile Send private message Visit poster's website
  • Joined: 25 Apr 2005
  • Posts: 3
  • Location: Peru
Reply with quote
Post Posted: Fri Apr 29, 2005 4:57 am
Adding looping options would be nice (please include infinite looping). Also I think it would be real hard to include support for the Genesis VGMs.
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Post Posted: Fri Apr 29, 2005 8:53 am
Looping shouldn't be hard - it's currently hard-coded to 2, but making that configurable won't be hard. It might not be infinite, but 4 billion should be close enough for you.

Support for anything more than PSG is going to be impossible. Perhaps if I could code in ARM assembly I could get something that sounded half-OK with a lot of effort (it has a 16MHz CPU) but as it is, I'm struggling to get PSG in the available time - increasing the output to from 18 to 21kHz means some tracks run out of CPU time and "jump". I'm strictly C-only on the GBA.

For now, I'm going to try to speed a few things up and try to get antialiasing on at least one PSG channel, which could trade off against a lower sampling rate for better overall quality, but we'll have to see. I'm also working on a playlist-based rom builder to avoid the fact that it currently sorts tracks alphabetically by filename. I also have plans for proportional text display and bitmapped backgrounds for the player, which is verging on making it skinnable, but that's just for fun. Sound quality comes first.
  View user's profile Send private message Visit poster's website
  • Joined: 01 Feb 2004
  • Posts: 1464
  • Location: Sunny ol Tamworth, New England NSW AU
Reply with quote
Good Job: Some Suggestions
Post Posted: Mon May 02, 2005 5:25 am
Wow it's very good,

It has far exceeded my expectations. I have found that the later version of Visual Boy Advance has had alot of changes and the sound seems to me play at a higher sample rate then previous versions. The high notes sound fairly good but as others have stated the clarity isn't quite there.

One good improvement that I would like to see is the possibility of sound fade out's like in your Winamp plugin. If this could be achieved it would make it much better (also have a gap between songs).

Thanks

Jacko
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Version 0.15 released
Post Posted: Mon May 02, 2005 9:10 pm
Last edited by Maxim on Wed May 02, 2007 5:00 pm; edited 2 times in total
Version 0.15 released

Now it has a rom builder and high-quality antialiased square waves.
image13kt1.png (18.55 KB)
image13kt1.png

  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Version 0.16
Post Posted: Tue May 03, 2005 8:44 pm
You know, it helps to add download links when you release something. Anyway, 0.15 had an annoying bug so I made a proper page and released 0.16:

GBA VGM Player 0.16
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
GBA VGM Player 0.17 released
Post Posted: Sat Oct 22, 2005 5:28 pm
http://www.smspower.org/maxim/gbavgmplayer/

Improved GUI and more efficient code allowing a (slightly) higher sampling rate.
  View user's profile Send private message Visit poster's website
  • Joined: 26 Mar 2007
  • Posts: 2
  • Location: Singapore
Reply with quote
Post Posted: Thu Apr 19, 2007 4:25 pm
so playing back Mega Drive / Genesis soundtracks on this is impossible?
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Post Posted: Thu Apr 19, 2007 6:20 pm
Impossible for me, yes. You'd need some well-optimised assembler to get anything decent, written by someone who understands the YM2612 - this is just optimised C emulating the PSG.
  View user's profile Send private message Visit poster's website
  • Joined: 26 Mar 2007
  • Posts: 2
  • Location: Singapore
Reply with quote
Post Posted: Fri Apr 20, 2007 12:09 pm
Ah i see - if you're looking for someone who understands the YM2612 - i think the people here are the ones to ask. http://www.spritesmind.net/_GenDev//forum/index.php
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Post Posted: Fri Apr 20, 2007 1:52 pm
Well, Stef and Steve Snake are the only people I'd trust to write such an engine, and they aren't going to.
  View user's profile Send private message Visit poster's website
  • Joined: 12 Nov 2005
  • Posts: 54
Reply with quote
Post Posted: Wed May 02, 2007 3:58 pm
I was wondering why you didn't simply use the classic Game Boy sound channels instead of PCM (well, PWM really).
  View user's profile Send private message Visit poster's website
  • Site Admin
  • Joined: 19 Oct 1999
  • Posts: 14735
  • Location: London
Reply with quote
Post Posted: Wed May 02, 2007 4:55 pm
Are you sure it's PWM? Or is it just a PWM DAC that uses PCM data, much like (for example) most CD players?

I didn't use the GB square wave channels because (and bear in mind, this is a very sketchy memory)
(1) there aren't enough of them
(2) there's no chance of getting the "right" noise
(3) it would have required me to learn how to use them
(4) I was working with a framework (tepples' GBA GSM Player) that was set up for PCM-type playback from discrete files, I had my own sound emulation core, how hard could it be..?
(5) you can't accurately map the PSG's 10-bit frequency range onto the GB square waves anyway

Feel free to prove me wrong... these days I'm using an M4A player and my beta Winamp transcoder-compatible in_vgm anyway, game devices don't make very good audio players.
  View user's profile Send private message Visit poster's website
  • Joined: 12 Nov 2005
  • Posts: 54
Reply with quote
Post Posted: Wed May 02, 2007 7:23 pm
Oh heh, I hadn't noticed that this thread had been revived from two years ago by the most recent reply. :)

The Game Boy classic sound channels are also kind of crappy with regards to manual volume control (tepples occasionally rants about this).
  View user's profile Send private message Visit poster's website
  • Joined: 29 May 2009
  • Posts: 192
  • Location: Basque Country, Spain
Reply with quote
linux builder
Post Posted: Tue May 11, 2010 8:22 pm
Pop. 3 years later.

I wrote a bash script to build the ROMs under linux.

Yeah, sometimes I use a GameBoy Micro as music player. I use GSM player too, but with this you can put ALL PSG music in just one ROM or PogoShell build.
gbaVgmBuilder-linux.zip (557.17 KB)
version 20100511

  View user's profile Send private message
Reply to topic



Back to the top of this page

Back to SMS Power!