2024/01/27(土) [n年前の日記]
#4 [basic] FreeBASIC + BASSを試用
FreeBASIC から BASSなるサウンド用ライブラリを利用することができるらしい。
_Un4seen Developments - BASS
_Un4seen Developments - BASSMOD
BASSは、非営利目的の場合は無料で利用できる。商用利用の場合はライセンス料を払わないといけない。
たしかこのあたり、DXRuby を触ってた頃も、「作ったゲームを同人ソフトとして販売するだけでも一定額を払わないといけないのはどうなのか。そのゲームが売れるのか売れないのか、全然分からないのに」みたいな話があって敬遠されていた記憶が…。
でもまあ、フリーソフトを作る分には無料で利用できるので、一応試用。環境は Windows10 x64 22H2 + FreeBASIC 1.10.1 32bit。
_Un4seen Developments - BASS
_Un4seen Developments - BASSMOD
BASSは、非営利目的の場合は無料で利用できる。商用利用の場合はライセンス料を払わないといけない。
たしかこのあたり、DXRuby を触ってた頃も、「作ったゲームを同人ソフトとして販売するだけでも一定額を払わないといけないのはどうなのか。そのゲームが売れるのか売れないのか、全然分からないのに」みたいな話があって敬遠されていた記憶が…。
でもまあ、フリーソフトを作る分には無料で利用できるので、一応試用。環境は Windows10 x64 22H2 + FreeBASIC 1.10.1 32bit。
◎ インストール :
以下のファイルを入手。
後者は、modファイルを再生するために必要。wav や mp3 を鳴らすだけなら要らない、と思う。たぶん。
それぞれ解凍して、中に入っている .dll (bass.dll, BASSMOD.dll) をプロジェクトフォルダにコピーしておく。
ちなみに…。
bass24.zip bassmod20.zip
後者は、modファイルを再生するために必要。wav や mp3 を鳴らすだけなら要らない、と思う。たぶん。
それぞれ解凍して、中に入っている .dll (bass.dll, BASSMOD.dll) をプロジェクトフォルダにコピーしておく。
ちなみに…。
- bass24.zip : 32bit版と64bit版の dll が入っている。
- bassmod20.zip : 32bit版の dll しか入ってない。
◎ 動作確認 :
FreeBASICインストールフォルダ/examples/sound/BASS/ の中にサンプルファイルがある。
demo.bas と small.bas はコンパイルできて、ogg と mo3(oggに対応させたmodらしい)は再生できた。
しかし、mod.bas がコンパイルできない。以下のエラーを出す。
色々調べてみたけれど、FreeBASICインストールフォルダ/inc/bassmod.bi の、以下の行を変更したら、コンパイルできるようになった。file のタイプを const zstring ptr に変更している。
しかし、コンパイルはできたものの、生成された mod.exe が、Windowsセキュリティから PUA:Win32/Keygen として警告されてしまう。mod.exe を、オンラインのウイルススキャンサイトに渡してスキャンしてみると問題無しと出てくるので、単に誤検出じゃないのかと思うけど…。
どうせ誤検出だろう、誤検出に違いないと信じて(?)、mod.exe を実行してみたところ、一応 mod が鳴ったことは鳴ったけれど…。ウイルス扱いされるのでは困るよなあ…。生成物を配布できないやん…。
いやまあ、BASSMOD は使わず、BASSだけ使う分には、そういう問題に遭遇しないのかもしれんけど。今の時代に、あえてゲームのBGMとしてmod/s3m/xm/itを鳴らしたい人も居ないだろうから、それほど実害は無さそうな気も…。BGMの類は、えてして ogg か mp3 にして用意することが多いだろうし…。
demo.bas と small.bas はコンパイルできて、ogg と mo3(oggに対応させたmodらしい)は再生できた。
しかし、mod.bas がコンパイルできない。以下のエラーを出す。
> fbc mod.bas mod.bas(15) error 58: Type mismatch, at parameter 2 of BASSMOD_MUSICLOAD() in 'If (BASSMOD_MusicLoad(FALSE, sound_file, 0, 0, BASS_MUSIC_LOOP) = False) Then'
色々調べてみたけれど、FreeBASICインストールフォルダ/inc/bassmod.bi の、以下の行を変更したら、コンパイルできるようになった。file のタイプを const zstring ptr に変更している。
declare function BASSMOD_MusicLoad(byval mem as BOOL, byval file as any ptr, byval offset as DWORD, byval length as DWORD, byval flags as DWORD) as BOOL ' ↓ declare function BASSMOD_MusicLoad(byval mem as BOOL, byval file as const zstring ptr, byval offset as DWORD, byval length as DWORD, byval flags as DWORD) as BOOL
しかし、コンパイルはできたものの、生成された mod.exe が、Windowsセキュリティから PUA:Win32/Keygen として警告されてしまう。mod.exe を、オンラインのウイルススキャンサイトに渡してスキャンしてみると問題無しと出てくるので、単に誤検出じゃないのかと思うけど…。
どうせ誤検出だろう、誤検出に違いないと信じて(?)、mod.exe を実行してみたところ、一応 mod が鳴ったことは鳴ったけれど…。ウイルス扱いされるのでは困るよなあ…。生成物を配布できないやん…。
いやまあ、BASSMOD は使わず、BASSだけ使う分には、そういう問題に遭遇しないのかもしれんけど。今の時代に、あえてゲームのBGMとしてmod/s3m/xm/itを鳴らしたい人も居ないだろうから、それほど実害は無さそうな気も…。BGMの類は、えてして ogg か mp3 にして用意することが多いだろうし…。
[ ツッコむ ]
以上です。