Hi
Since XMPlayer 4.6.0 this library was updated 3 times and reach now V 4.6.3.
https://xmp.sourceforge.net/Regards
Change logs:
4.6.3 (20250511):
Changes by Alice Rowan:
- Fix crashes when xmp_set_position is used to set a negative position.
Negative positions now correctly return -XMP_ERROR_INVALID.
- Fix crashes when xmp_set_row is used to set a negative row.
Negative positions now correctly return -XMP_ERROR_INVALID.
- Fix hangs when xmp_prev_position is used on the first position of
a sequence which is preceded by an S3M/IT skip marker.
- Fix out-of-bounds reads when xmp_next_position is used at the end of
a 256 position module.
- Fix hangs when seeking to an end-of-module marker caused by these
positions getting assigned a non-existent sequence.
- Document xmp_set_position/xmp_next_position/xmp_prev_position
interactions with xmp_stop_module/xmp_restart_module.
- Fix stack underflow in Pha Packer loader (CVE-2025-47256).
- Slight performance improvements for the Oktalyzer and SFX loaders.
- Fix broken conversion of ProRunner 2.0 pattern data.
- xmp_set_tempo_factor no longer alters frame time calculation for
xmp_get_frame_info. Frame time is now updated to account for the
new time factor after calling xmp_scan_module.
- Fix loading XMs with some types of harmless pattern truncation.
See: Jazztiz/ta-da-da-da.xm, Sonic (UK)/phuture.xm, et al.
- Fix Poly Tracker pattern break hex parameter.
- Fix Digital Tracker broken instrument finetune.
- Fix Digital Tracker 2.03 position jump effect for 4 channel DTMs.
- Fix pattern loop jump interactions with same row pattern jump/break:
Scream Tracker 3.03b+; Impulse Tracker 1.00 to 1.06 IT;
Impulse Tracker 2.00+ IT/S3M; Modplug Tracker 1.16 IT/XM/S3M;
Imago Orpheus IMF/S3M; Liquid Tracker LIQ/S3M; Poly Tracker;
Digital Tracker <=2.02 DTM/MOD; Digital Tracker 2.03 (partial);
Digital Tracker 1.9 (partial); Octalyser.
Changes by Thomas Neumann:
- Fix the pattern loop effect in Astroidea XMF loader.
- Fix loading of Extreme Pinball modules.
4.6.2 (20250224):
Changes by Alice Rowan:
- Fix MED effect 1Fxy (delay and retrigger). The new implementation
supports both delay and retrigger at the same time and repeats.
- Fix MED effect FF3 (revert change from 4.6.1). The buggy version
of this effect prior to OctaMED v5 is not currently supported.
- Fix MED3 and MED4 time factor and tempos 1-10.
- Fix MED4 effect 9xx (set speed).
- Add support for MED3 and MED4 song files.
- Better MED MMD tracker version fingerprinting.
- Fix loading external instruments from the current directory.
Changes by Thomas Neumann:
- Fix oxm modules with empty samples (e.g.: The Four Ages.oxm)
- Fix some modules would be misidentified as Scream Tracker 2.
- Handle IT modules with edit history but no midi configuration
Changes by Ozkan Sezer:
- Revert a bad CVE fix to the miniz inflate code
- Add missing HAVE_DIRENT definition to Android makefile.
4.6.1 (20250101):
Changes by Claudio Matsuoka:
- The full library is now under MIT license
Changes by Alice Rowan:
- Add stereo sample loading support for IT, S3M, XM, MED, LIQ, and
Digital Tracker (partial).
- Add sample preamplification to filter mixers for high sample rates.
- Add support for Ultra Tracker tempo commands.
- Load Ultra Tracker comments instead of skipping them.
- Implement support for Protracker instrument swapping.
- Implement retrigger effects for MED, OctaMED, and Liquid Tracker
where only one retrigger occurs. Liquid Tracker (new format) and
Digital Symphony now allow retrigger values larger than 15.
- Fix XM envelope sustain points that exist on a zero-length loop.
- Fix XM extra fine portamento effect memory.
- Fix XM portamento up and portamento down memory (only for modules
where FT2 bug compatibility is enabled, for now).
- Fix loading edge case STMs with an EOF byte of 2.
- Fix loading Imago Orpheus modules with null instrument magic
strings, bidirectional samples, and disabled default panning.
- Faster IT loading by buffering pattern, sample, and comment reads.
- Fix loop detection edge cases broken by S3M/IT marker scan bugs.
- Add fix for IT break to module scan (was missed in libxmp 4.5.0.)
- Fix restart position for >64k sample and Digital Tracker MODs.
- Reset Invert Loop position when a new instrument is encountered.
- MOD: make presence of invert loop override tracker ID guesses.
M.K. modules within Amiga limits which use EFx invert loop are
now IDed as Protracker.
- Multiple Digital Tracker bug fixes:
* Support for loading Digital Tracker 2.03 DTMs (MOD patterns).
* Support for loading Digital Tracker 1.9 DTMs (VERS/SV19).
* Better Digital Tracker version fingerprinting.
* Fix Digital Tracker 2.03 global sample rate and bit depth fields.
* Fix Digital Tracker 2.04 pattern note loading (was off-by-one).
* Fix Digital Tracker instrument loops (loop end was off-by-one).
* Allow patterns up to 396 rows in Digital Home Studio DTMs.
* Support for Digital Tracker 1.9 "MIDI note" transpose.
* Simulate Digital Tracker effects bugs where possible.
* Fix loading of Digital Tracker module names (not always 32 bytes).
- Liquid Tracker bug fixes:
* [Old] Fix loading of module and instrument names (fixes the old
format version of WASTETIM.LIQ).
* [Old] Fix loading of instrument lengths/loops (32-bit, not 16-bit).
* [Old] Fix loading of pattern notes and volumes (off-by-one).
* [Old] Fix initial panning.
* [Old] Most effects are now supported. H70/H6A is not yet supported.
Fxx, if it was ever implemented, is not yet supported.
* [New] Fixed Pan Control, Retrigger, Global Volume effects, and
vibrato/tremolo waveform 3. P70/P6A is not yet supported.
* [New] Fix incorrect bounding of notes that caused several LIQs
to fail to load.
* [New] Fix loading of pattern volumes (off-by-one).
* [New] 16-bit samples with loops no longer cause a failed load.
* [New] Fix loading of instrument global volumes.
* [New] Add support for ping pong loops.
* [New] Fix initial channel volume/pan tables for 0.00 LIQs.
* [New] Support channel volume and instrument global volume gain
functionality by doubling the mix volume once for each (4x total).
* [Both] Stopped incorrectly applying QUIRK_S3MLOOP, QUIRK_VOLPDN,
QUIRK_S3MRTG, and QUIRK_MARKER.
- Fix loading of Poly Tracker (PTM) empty sample names.
- Fix Real Tracker loader on targets where char is unsigned by default.
- Fix out-of-bounds reads in His Master's Noise Mupp instruments.
- Fix slow ProWizard testing.
- Fix Paula mixer state leak after changing XMP_PLAYER_MODE.
- Replace rand() with a built-in reentrant alternative.
- xmp_set_tempo_factor now returns -XMP_ERROR_STATE when called prior
to xmp_start_player (instead of causing crashes).
- Fix mixer crashes caused by previously valid tempo factors after
sample rate or BPM changes.
- Passing NULL to xmp_set_instrument_path() now unsets the instrument
path instead of crashing.
- Merge song file instrument path detection routines.
- Fix module scan pattern delay counting.
- Add compatibility for non-standard Pattern Loop implementations:
Scream Tracker 3.01b; Scream Tracker 3.03b+; Impulse Tracker 1.00;
Impulse Tracker 1.04 to 2.09; Modplug Tracker 1.16; Digital Tracker
<=2.04; Digital Tracker 1.9; Octalyser; Imago Orpheus; Liquid Tracker;
Poly Tracker. (MOD, FT2, and IT 2.10+ were already supported.)
- Fixed numerous defects found by fuzzing.
Changes by Thomas Neumann:
- Fix XM envelope handling
- Bug fixes to DSMI loader
- Fix 16-bit sample check in MultiTracker loader
- Fix finetune in MultiTracker loader
- Fix XM restart position, so that it is possible to play
"10 Days Of Abstinence.xm"
Changes by Saga Musix:
- S3M: Detect PlayerPRO, Velvet Studio and old MPT versions
Changes by ds-sloth:
- Optimize scan code for common case of no effects
Changes by Misty De Méo:
- Filter off html files when reading archives.
Changes by Ozkan Sezer:
- Change lha depacker to use a stripped down version of lhasa.
- Merge several CVE fixes to depackers stb_vorbis backend.
- Make the lite version buildable from git or full distribution.
- Build system fixes and clean-ups. Misc code clean-ups.
I have compiled this .dll with VS 2022 for Win X64.