|
ForumsSega Master System / Mark III / Game GearSG-1000 / SC-3000 / SF-7000 / OMV |
Home - Forums - Games - Scans - Maps - Cheats - Credits Music - Videos - Development - Hacks - Translations - Homebrew |
![]() |
Author | Message |
---|---|
|
GBA VGM Player
![]() 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. |
|
![]() ![]() ![]() |
|
|
Version 0.11 released!
![]() 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. |
|
![]() ![]() ![]() |
|
|
![]() |
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? |
|
![]() ![]() ![]() |
|
|
![]() |
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. |
|
![]() ![]() ![]() |
|
hittheswitch
|
![]() |
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 :) | |
|
![]() |
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 :) |
|
![]() ![]() ![]() |
|
|
![]() |
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. | |
![]() ![]() ![]() |
|
|
![]() |
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. |
|
![]() ![]() ![]() |
|
|
Good Job: Some Suggestions
![]() |
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 |
|
![]() ![]() ![]() |
|
|
Version 0.15 released
![]() 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. |
|
![]() ![]() ![]() |
|
|
Version 0.16
![]() |
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 |
|
![]() ![]() ![]() |
|
|
GBA VGM Player 0.17 released
![]() |
http://www.smspower.org/maxim/gbavgmplayer/
Improved GUI and more efficient code allowing a (slightly) higher sampling rate. |
|
![]() ![]() ![]() |
|
|
![]() |
so playing back Mega Drive / Genesis soundtracks on this is impossible? | |
![]() ![]() ![]() |
|
|
![]() |
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. | |
![]() ![]() ![]() |
|
|
![]() |
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 | |
![]() ![]() ![]() |
|
|
![]() |
Well, Stef and Steve Snake are the only people I'd trust to write such an engine, and they aren't going to. | |
![]() ![]() ![]() |
|
|
![]() |
I was wondering why you didn't simply use the classic Game Boy sound channels instead of PCM (well, PWM really). | |
![]() ![]() ![]() |
|
|
![]() |
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. |
|
![]() ![]() ![]() |
|
|
![]() |
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). |
|
![]() ![]() ![]() |
|
|
linux builder
![]() |
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. |
|
![]() ![]() |
![]() |