Hello!
I want to introduce a new add-on to BASS audio library: BASSZXTUNE. This add-on adds a support for several chiptune/tracker module formats (including but not limited to ZX Spectrum AY/YM modules, Amiga/Atari/PC Engine tracker modules, SID, SAA1099, POKEY modules, Game Boy, TurboGrafX, Sega, Nintendo music formats). The project is located at:
https://sourceforge.net/projects/basszxtune/The add-on is based on ZXTune project (
https://zxtune.bitbucket.io/). All the hard work (decoding functionality) is done by the author of ZXTune and the authors of numerous 3rd party libraries. BASSZXTUNE is basically just an interface to ZXTune core.
BASSZXTUNE supports the following extensions: $b, $m, 2sf, ahx, as0, asc, ay, ayc, bin, cc3, chi, cop, d, dmm, dsf, dsq, dst, esv, fdi, ftc, gam, gamplus, gbs, gsf, gtr, gym, hes, hrm, hrp, hvl, kss, lzs, m, mod, msp, mtc, nsf, nsfe, p, pcd, psc, psf, psf2, psg, psm, pt1, pt2, pt3, rmt, rsn, s, s98, sap, scl, sid, spc, sqd, sqt, ssf, st1, st3, stc, stp, str, szx, td0, tf0, tfc, tfd, tfe, tlz, tlzp, trd, trs, ts, usf, v2m, vgm, vgz, vtx, ym.
Limitations:
- "Supported extensions" doesn't mean "supported formats". Some files with the above mentioned extensions may not be supported by BASSZXTUNE.
- Buffered streams (STREAMFILE_BUFFER, STREAMFILE_BUFFERPUSH, etc) are not supported.
- Streaming in blocks (BASS_STREAM_BLOCK) are not supported.
- Internet streams (BASS_StreamCreateURL) are not supported.
- Only mono and stereo output, no access to separate module channels.
- The add-on supports only single-file formats. To play multi-file formats (e.g. *.minipsf + *.psflib) you may archive all files into any supported archive (zip, 7z, tar, gz, rar) optionally changing the extension of the archive to a supported extension (e.g. *.psf).
Supported platforms:
- MS Windows i686 & x86_64 (tested on MS Windows 10 v1909 64-bit)
- Linux i686 & x86_64 (tested on Debian 10 Buster)
- OSX x86_64 (tested on OSX 10.15 Catalina)
- Android arm_v7a 4.1 and later (tested on LG G2 with LineageOS 17.1 [Android 10] armeabi-v7a)
- Android i686 4.1 and later (tested on Android 10 emulator)
- Android x86_64 5.0 and later (tested on Android 10 emulator)
- Android arm64_v8a 5.0 and later (not tested)
Platform notes:
- Android libs require dynamic linking to libc++ runtime (libc++_shared.so).
- If you use a shared MSYS2 runtime in your project then you need to use "shared_runtime" library version from the distribution archive.
You may find the latest version for your platform and the full changelog here:
https://sourceforge.net/projects/basszxtune/files/basszxtune/The source code:
https://bitbucket.org/z80maniac/zxtuneBuild instructions:
https://bitbucket.org/z80maniac/zxtune/src/master/apps/plugins/BUILD.TXTI know, the file size of the library is ridiculously huge compared to the official add-ons, but I think it's worth it.
You may also be interested in a similar plugin for XMPlay:
https://www.un4seen.com/forum/?topic=16496.0