Skip to main content


Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_adplug (Read 4178 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.


Here's my first contribution to the world of Foobar2000, having enjoyed it for so long. It's an updated foo_input_adplug component, based on the great original work by Kode54, so you can continue to enjoy your DOSBox and MAME classics in the 64bit world. The changes have been so extensive since the last version of the source that I could find, that I have given it it's own new name, foo_adplug, in line with the more modern naming convention, and is at v1.1 as of today.

  • Supports 64bit (and continues support for 32bit).
  • Supports ✨Dark Mode✨.
  • Built against the latest AdPlug source, now including some new OPL emulators, such as Tatsuyuki Satoh's.
  • All now redundant functionality removed (things that Foobar2000 does better now, like external tagging, sample rate conversion, etc..)
  • Taken a purist AdLib approach (only real hardware sample rates supported, etc..).
  • Preferences panel has had a refresh and now better matches the native look and feel of FB2K.
  • Supports exposing more AdPlug properties in the tags.
  • WoodyOPL is now the default emulator, as it matches the DOSBox one and doesn't glitch on seek like NukedOPL3

For developers:
- I've updated the code to compile against the very latest SDK.
- I've moved the plugin to the VS2022 Toolchain and Windows 10 SDK.
- I've tidied up the code and brought things in line with the latest SDK foo_sample where I can.
- I'm not an experienced C coder, so please don't judge my efforts too harshly! 😅
- The full changelog is in the source.

Other notes:
- Plugin priority should be automatically set to low, as foo_adplug will also play AdLib Tracker S3Ms. I expect most people will have Amiga S3Ms they want to prioritise.
- MIDI support has been removed, there are better plugins for that (foo_midi).
- Built in tagging has been removed, there are better plugins for that (foo_external_tags).
- The standalone DOSBox core has been removed, as AdPlug now contains this itself (WoodyOPL).
- Built-in resampling has been removed, FB2K does this itself.

Known issues:
- Jarek Burczynski's OPL emulator only renders to the left channel for now.


Re: foo_adplug

Reply #2
Are there any Adlib fans who would be interested in RetroWave OPL3 Express support being added to this?

Re: foo_adplug

Reply #3
Now at v1.2.1

 - Built against the latest Foobar2000 SDK following the Foobar2000 v2.0 release.
 - Includes ARM64EC binary (in addition to x86 and x64). This is untested as I don't have access to an ARM device, feedback appreciated.
 - No longer uses the Powershell command 'Compress-Archive' to build the plugin, as this appears to make a ZIP incompatible with fb2k's plugin installation process.

Re: foo_adplug

Reply #4
neat rewrite. absolutely baffled by the omission of the "play indefinitely" function from original adplug though as tracks now no longer loop flawlessly.

Re: foo_adplug

Reply #5
Could I ask a stupid question?  What exactly is this component?  Willing to try anything, but I'm just not sure what it is.  Thanks.

Re: foo_adplug

Reply #6
It provides a selection of software synthesizers that generate audio matching the output from the Yamaha OPL series of sound chips, directly from the music source files. Usually these source files come from MS-DOS era games, or from direct captures of register writes to those chips. They contain note data (like a MIDI file), and FM synthesis parameters to define the sounds (rather than samples).

These chips were commonly used on DOS soundcards, such as the SoundBlaster Pro.

In short, if you're into DOS gaming, and want to enjoy music from that era without running the games, you can use this plugin to play the games audio files. It also so happens a huge number of arcade machines used this chips too, so audio can be played in a similar manner.

Re: foo_adplug

Reply #7
Now at v1.2.2

Includes x64, x86 and ARM64EC binaries.

 - Built against the latest Foobar2000 SDK (2022-05-10)
 - Pulls the latest changes from AdPlug master to 6ea36d6.
    Key changes are:

RIX: Subsongs did not work as expected
RIX: Add *.MKF as valid file extension for Softstar RIX OPL Music.
CMF: Fix typo in comparison, this fixes 'slowdown' of certain CMF files
Loader for .mtr tunes (Master Tracker)
Add player for PIS format (Beni Tracker)
LDS: protect patterns[] against overflow
Updated Nuked to the latest master
Reality tracker 1.0 files expects dual OPL2
A2M files: try to "repair" files that have a broken order pattern list.

Re: foo_adplug

Reply #8
So this isn't the same as which only supports x86 32bit. Shouldn't OP manage to publish onto "components" at to educate more people about its existence? This is so great!!!!!!!!!!!!!!!!!!!! I now have only one reason left to keep the foobar2000 v2.1 x86 32bit version which is to play fmpmd PC9801 music files.

May OP also look into that plugin? As the Japanese author(s) are totally irresponsive, I have run out of my tricks. ChatGPT couldn't help me convert the code into x64 compatible. Should I pay for ChatGPT plus?

Re: foo_adplug

Reply #10
I now have only one reason left to keep the foobar2000 v2.1 x86 32bit version which is to play fmpmd PC9801 music files.

Have a look at

I totally didn't expect this. It totally works!!!! Please see my response to your more dedicated thread at, You have heard my plea finally. Deeply grateful. Now I have no need to keep the x86 foobar2000 v2.1

Re: foo_adplug

Reply #12
the original adplug is now v1.56 in Oct 2023 and finally supports x64. What does that mean compared with the alternative at 1.2.2? Thanks.

Re: foo_adplug

Reply #13
Excuse me:-)

The function "set_offset(double offset)"of AdPlug Core doesn't seem to have a corresponding setting option added to configure page yet? It is required by certain AdLib instrument to sound correctly in surroundOPL mode.

Its default value is like this:
#define FREQ_OFFSET 128.0

But for a special instrument, the default value makes the sound of the right channel incorrect. A larger value like 384.0 works well.

Could I expect it in the next release? Thanks so much!

This is the context:

Re: foo_adplug

Reply #14
I just tested v1.2.2 x86, and found problems in Nuked OPL3 core.

Volume levels seem to be very high, causing distortion on quite a few loud tracks.
Some of the percussion tones appear wrong.

Would you please have a check before the next release? Thanks so much!