adplug / libbinio Goto Github PK
View Code? Open in Web Editor NEWPlatform-independent way to access binary data streams in C++
License: GNU Lesser General Public License v2.1
Platform-independent way to access binary data streams in C++
License: GNU Lesser General Public License v2.1
AdPlug - A free AdLib sound player library Copyright (C) 1999 - 2017 Simon Peter, et al. Website: http://adplug.github.io/ Description: ------------ AdPlug is a free, multi-platform, hardware independent AdLib sound player library, mainly written in C++. AdPlug plays sound data, originally created for the AdLib (OPL2/3) audio board, on top of an OPL2/3 emulator or by using the real hardware. No OPL2/3 chips are required for playback. Supported platforms: -------------------- AdPlug currently is tested to compile and run well on the following platforms and compilers: Platform Operating System Compiler -------- ---------------- -------- IA32 - x86 Windows XP MinGW 3.4 # not tested at the moment MS-DOS 6.22 DJGPP 2.0.5 / GCC 12.2.0 MS-DOS 6.22 DJGPP 2.0.5 / GCC 4.8.5 Linux 2.6 GCC 4.1 # not tested at the moment x86_64 Linux GCC 4.8 Linux GCC 11.3.0 Linux CLANG 10.0.1 MACOS GCC 14.0.0 MACOS CLANG 14.0.0 This list only incorporates platforms on which this release of AdPlug has been tested successfully. This and/or earlier versions of AdPlug may and did run on a variety of other platforms as well. It just means they haven't been explicitly tested for this release. The library builds as dynamic and/or static link library, depending on the facilities provided by the host OS. These are autodetected. Prerequisites: -------------- AdPlug depends upon the following libraries: Library: Version: -------- -------- libbinio >= 1.4 libbinio can be obtained from http://adplug.github.io/libbinio/. Installation: ------------- Please refer to the INSTALL file for installation instructions. Linux/OSX git: -------------- If you checked out from git, please first run: autoreconf --install to generate the build cruft and get the configure script. Oh, and did I mention you need recent versions of autoconf, automake and libtool? Windows git: ------------ If you checked out from git, you will need to copy src\version.h.in to src\version.h and replace @VERSION@ with a proper version number. A Visual Studio 2015 solution you can open and build is located in contrib\vs2015\vs2015.sln. Debugging AdPlug: ----------------- If you feel you have to debug AdPlug, you can compile it with debug logging support. This is disabled by default. To enable it, you have to define the DEBUG preprocessor macro. This is done by passing the '--enable-debug' commandline option to the 'configure' script to enable debugging. AdPlug logs to stderr by default. The output can be redirected anytime to a user specified logfile. This is done by using the 'CAdPlug::debug_output' method of the 'CAdPlug' class. If you have changed a format and the tests now fail (run "make check"), once you have confirmed the output is correct, there will be a *.test file in the test/ folder. Rename this from .test to .ref to have it used as the new reference data. The emulator license issue: --------------------------- AdPlug now uses WoodyOPL, the LGPL-licenced OPL emulator from the DOSBox team. Previously, AdPlug used MAME's fmopl OPL2 emulator. While this distribution includes an old LGPL'd version of the emulator, which was developed by Tatsuyuki Satoh alone, who relicensed this version under the LGPL, there is a patch available in the `mame` branch of the GitHub repository that replaces the old version by the latest version from the MAME source distribution. The new version features improved emulation quality, but is licensed under the MAME license, which restricts commercial redistribution. The same goes for the OPL3 emulator, which requires the new version of the OPL2 emulator to build. Later versions of MAME are released under the GPL, so this patch could be updated to use that instead, however this is probably not necessary given the high quality of the WoodyOPL emulator. - Simon Peter <[email protected]>
The tarballs on GitHub are just Git snapshots and are missing (for example) the ./configure script.
The real release tarballs are still available on SourceForge for now, but it would be nice to have everything in one place.
binisstream
seems to report a value one too small in filesize()
. See adplug/adplug#17
Proposed Solution: Add mention of texinfo as a dependency to section of INSTALL that suggests autoreconf --install
.
Since You need to have GNU texinfo installed in order to build this project, it should be listed as a dependency somewhere in the README or INSTALL. Not all distributions come with texinfo installed; OpenSUSE does not, nor does it include it in any kind of "build-essential"-esque pattern I'm aware of. It's entirely possible to have autotools installed without having texinfo installed.
Since You are already assuming potential users don't know to run autoreconf --install
on a cloned project, expecting them to know about texinfo (which may or may not be installed, especially since manpages are still more common) is dubious.
The latest link is for the 1.4 docu…
Proposed Solution: Add mention of libtool as a dependency to section of INSTALL that suggests autoreconf --install
.
Since You need to have GNU libtool installed in order to generate the autotools build files for this project, it should be listed as a dependency somewhere in the README or INSTALL. Not all distributions come with libtool installed; OpenSUSE does not, nor does it include it in any kind of "build-essential"-esque pattern I'm aware of. It's entirely possible to have autotools installed without having libtool installed.
Since You are already assuming potential users don't know to run autoreconf --install
on a cloned project, expecting them to know about libtool (which may or may not be installed) is dubious.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.