BaH.GME released

BlitzMax Forums/Brucey's Modules/BaH.GME released

Brucey(Posted 2009) [#1]
Want to get a bit more Retro with your games?

Why not play original chip tunes using the BaH.GME module.
It supports playback of AY, GBS, GYM, HES, KSS, NSF, NSFE, SAP, SPC, and VGM music formats, which include music from systems such as ZX Spectrum, Game Boy, and SNES.

Audio files can be acquired from sites such as Project AY.

The GME license is LGPL, so the library is shipped as a DLL / DYLIB / SO which you can include in both your free and commercial apps. The module itself is MIT licensed.

The module requires the use of an audio driver module. There are two currently available. One for BASS, the other for OpenAL.

Everything (all three modules) is shipped in a single download, available here.

Two examples are included (one for the BASS driver, one for OpenAL).
Tested on Win32, Mac and Linux.

jkrankie(Posted 2009) [#2]
In your example (BASS), loading more tracks doesn't effect the trackcount variable, and so you can't skip to the next track or whatever. Is this a bug? it looks as if i should be able to load a lot of files at once.


Brucey(Posted 2009) [#3]
No, a "track" is an individual tune of an audio file - it is possible to have more than one tune in a file.
I think it depends on the particular format if you are likely to get multiple tracks in a file.

QuickSilva(Posted 2009) [#4]
Thanks for releasing this Brucey it`s great!


jkrankie(Posted 2009) [#5]
Ah, i see.

This is a cool mod by the way :)


byo(Posted 2009) [#6]
Nice one. :)
Oh, good memories.

Panno(Posted 2009) [#7]
get an error

C:/Program Files/BlitzMax/mod/bah.mod/gmebass.mod/glue.cpp:23:43: bah.mod/bass.mod/include/bass.h: No such file or directory
C:/Program Files/BlitzMax/mod/bah.mod/gmebass.mod/glue.cpp:33: error: `HSTREAM' does not name a type
C:/Program Files/BlitzMax/mod/bah.mod/gmebass.mod/glue.cpp:35: error: `DWORD' does not name a type
C:/Program Files/BlitzMax/mod/bah.mod/gmebass.mod/glue.cpp:46: error: `HSTREAM' does not name a type
C:/Program Files/BlitzMax/mod/bah.mod/gmebass.mod/glue.cpp:51: error: `DWORD' has not been declared

hmm can u help

DavidDC(Posted 2009) [#8]
Do you have Brucey's bass module installed Panno?

On my system its file path looks like this:

C:\Program Files\BlitzMax\mod\bah.mod\bass.mod

Panno(Posted 2009) [#9]
got it

sorry get a new panno error

Building example01
dyld: Library not loaded: @executable_path/libbass.dylib
Referenced from: /Users/JG/Downloads/BlitzMax 2/mod/bah.mod/bass.mod/examples/
Reason: image not found

Process complete

hmm dylib is available lib/macos/dylib

Brucey(Posted 2009) [#10]
Mac, eh? ;-)

Unfortunately, BlitzMax's default IDE/BMK doesn't allow you to do any post-build scripting, so for some things you need a little manual intervention.

The dylib needs to be copied into your example01.debug app bundle. (like on Windows, where you put the dll into the same directory as the exe).

Right-click on the file in Finder.
Show Package Contents
then double-click into Contents, and then MacOS.
There you will see the "real" exe.
Copy the dylib into that folder.

Note, that as long as you don't delete the .app bundle, you can keep re-building the app and testing it without having to keep copying the dylib there.

Also note, that you will need to copy the GME dylib into the same folder.

Yes, this is not great. But BlitzMax is BlitzMax. With XCode, you could also configure post-build scripts.
I have a version of BMK which can do all this post-build stuff for you, but it's very hacky (maybe one day it will make it into BlitzMax...)

Panno(Posted 2009) [#11]
thx brucey

taumel(Posted 2010) [#12]
Great, thanks! :O9

Can you also unload soundfiles and load new ones?

Btw is bass gone? I somehow couldn't find it on googlecode.

Robb(Posted 2012) [#13]
Despite trying to get NSF working in Blitz for ages, I somehow missed the existence of this mod!

I'm trying to build the module on a Mac, but I'm getting the 'HSTREAM' does not name a type error.

As suggested to Panno above, I have bass.mod installed (via Brucey's SVN - and the bass.h path is correct.

It just won't compile! Can anyone help?
The bass errors are fairly frustrating as I only want to use the OpenAL side of the module!

Robb(Posted 2012) [#14]
Ignore that, it works!
The module compiler was giving the error but the open AL module built correctly. Awesome.

Thanks for this module Brucey!