mirror of
				https://github.com/KartKrewDev/RingRacers.git
				synced 2025-10-30 08:01:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			382 lines
		
	
	
	
		
			16 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			382 lines
		
	
	
	
		
			16 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
Stable versions
 | 
						|
---------------
 | 
						|
 | 
						|
4.6.0 (20230615):
 | 
						|
	Changes by Alice Rowan:
 | 
						|
	- Implement S3M and IT mix volume.
 | 
						|
	- Add IT MIDI macro filter effects support.
 | 
						|
	- Fix for IT filter cutoff 127 on new note behavior.
 | 
						|
	- Add missing IT filter clamp to mixer loops.
 | 
						|
	- Fix IT duplicate note check to use the key prior to transpose.
 | 
						|
	- Fix multiple IT playback bugs affecting, e.g. Atomic Playboy.
 | 
						|
	- Fix IT tone portamento and offset.
 | 
						|
	- Fix reverse sustain loop release bug, add IT effect S9F support.
 | 
						|
	- Add Modplug ADPCM4 support for Impulse Tracker modules.
 | 
						|
	- Improve anticlick performance and fix anticlick filter volume bug.
 | 
						|
	- IT fade envelope reset should only affect volume envelope.
 | 
						|
	- Fix Impulse Tracker envelope and fadeout order.
 | 
						|
	- Replace bidirectional loop unrolling with reverse sample rendering.
 | 
						|
	- Fix crash when xmp_set_row() is used on an IT end marker.
 | 
						|
	- Fix NNA and tone portamento interaction with sample changes.
 | 
						|
	- Fix detection for TakeTracker TDZx MODs.
 | 
						|
	- Fix >1MB S3M modules relying on the sample segment high byte.
 | 
						|
	- Move interpolation wraparound handling out of sample loader.
 | 
						|
	- Don't increment voice position by step value at loop/tick end.
 | 
						|
	- Allow xmp_smix_play functions to play key off, cut and fade events.
 | 
						|
	- Several loading performance improvements.
 | 
						|
	- Allow up to 255 sequences to be scanned.
 | 
						|
	- Fixed numerous defects found by fuzzing.
 | 
						|
	Changes by Vitaly Novichkov:
 | 
						|
	- Cmake build system support.
 | 
						|
	Changes by Ozkan Sezer:
 | 
						|
	- Cleanups and refactoring of platform-specific code.
 | 
						|
	- Multiple code cleanups.
 | 
						|
	- Build system fixes and clean-ups.
 | 
						|
	Changes by Claudio Matsuoka:
 | 
						|
	- Fix linkage with gcc when versioned symbols and LTO are enabled.
 | 
						|
	Changes by Cameron Cawley:
 | 
						|
	- Several code and build system clean-ups.
 | 
						|
	Changes by Clownacy:
 | 
						|
	- Fixes and cleanups for C++ compatibility.
 | 
						|
 | 
						|
4.5.0 (20210606):
 | 
						|
	- fix xmp_set_position et al. when used during loops, pattern delay
 | 
						|
	- make xmp_set_position() consistently clear pattern break/jump vars
 | 
						|
	- xmp_get_format_list() now returns const char* const*, not char**
 | 
						|
	  (no ABI change)
 | 
						|
	- xmp_test_module, xmp_load_module, xmp_set_instrument_path and
 | 
						|
	  xmp_smix_load_sample() now accept const char* path parameters
 | 
						|
	  (no ABI change)
 | 
						|
	- xmp_load_module_from_memory() now accepts a const void* memory
 | 
						|
	  param (no ABI change)
 | 
						|
	- xmp_load_module_from_memory no longer accepts sizes <= 0.
 | 
						|
	- explicitly document that callers of xmp_load_module_from_file()
 | 
						|
	  are responsible for closing their own file.
 | 
						|
	- remove nonportable use of fdopen in xmp_load_module_from_file()
 | 
						|
	- fix a seek issue with xmp_load_module_from_memory
 | 
						|
	- fix memory-io functions' error handling
 | 
						|
	- fix event out-of-bounds reads due to invalid key values
 | 
						|
	- fix multiple out-of-bounds reads/writes, memory corruptions,
 | 
						|
	  uninitialized reads and hangs in several loaders (thanks to
 | 
						|
	  Lionel Debroux for providing fuzz files)
 | 
						|
	- fix xmp_release_module double frees when invoked multiple times
 | 
						|
	- fix tempo assignment in module scan (fixes seek issues/crashes)
 | 
						|
	- fix volume, pitch and pan slides lagging behind one frame
 | 
						|
	- fix lite build mod loader symbols
 | 
						|
	- add new xmp_set_row() call to skip replay to the given row
 | 
						|
	- add new xmp_set_tempo_factor() call to set the replay tempo
 | 
						|
	  multiplier
 | 
						|
	- add xmp_test_module_from_memory and xmp_test_module_from_file
 | 
						|
	  calls to api
 | 
						|
	- add new xmp_syserrno call to the api
 | 
						|
	- xmp_load_module_from_callbacks and xmp_test_module_from_callbacks
 | 
						|
	  added to api
 | 
						|
	- fix IT pattern delay volume reset bug (read row events only
 | 
						|
	  once per row)
 | 
						|
	- IT: T00 now repeats previous slide
 | 
						|
	- prevent clobbering of muted channels' volumes in IT modules
 | 
						|
	- clamp number of IT envelope nodes at load time
 | 
						|
	- fix IT message (comment) length miscalculation
 | 
						|
	- fix IT volume panning effect
 | 
						|
	- fix IT bug where Cxx on same row as SBx would not be ignored
 | 
						|
	- fix IT bug where Qxy would ignore the volume parameter
 | 
						|
	- fix IT sample global volume and sample vibrato
 | 
						|
	- fix two IT bugs related to note off and volume handling
 | 
						|
	- fix mute status on player creation
 | 
						|
	- fix loading of XMLiTE XM modules
 | 
						|
	- fix XM keyoff with instrument
 | 
						|
	- handle XM 16-bit samples with odd in-file data
 | 
						|
	- fix loading xm instruments with more than 16 samples
 | 
						|
	- fix smix sample allocation
 | 
						|
	- force reset of buffer state on player start
 | 
						|
	- code refactoring and cleanup
 | 
						|
	- fix windows static library builds
 | 
						|
	- fix build with C89 compilers
 | 
						|
	- fix issues related to visibility attributes
 | 
						|
	- fix compatibility with old gcc, mingw, djgpp
 | 
						|
	- fix warnings in configure script
 | 
						|
	- fix Watcom C build on OS/2
 | 
						|
	- support compiling for Windows with OpenWatcom
 | 
						|
	- fix Amiga build
 | 
						|
	- fix Emscripten builds
 | 
						|
	- fix linkage errors with MSVC debug builds
 | 
						|
 | 
						|
4.4.1 (20161012):
 | 
						|
	- fix MacOS Tiger build issues (reported by Misty De Meo)
 | 
						|
	- fix sample loop corner case (reported by knight-ryu12)
 | 
						|
	- fix set pan effect in multichannel MODs (reported by Leilei)
 | 
						|
	- fix global volume on module loop (reported by Travis Evans)
 | 
						|
	- fix IT pan right value (by NoSuck)
 | 
						|
	- fix memory leak in XMs with 256 patterns
 | 
						|
	- fix anticlick when rendering only one sample
 | 
						|
 | 
						|
4.4.0 (20160719):
 | 
						|
	Fix bugs caught in the OpenMPT test cases:
 | 
						|
	- fix XM arpeggio in FastTracker 2 compatible mode
 | 
						|
	- fix IT bidirectional loop sample length
 | 
						|
	- fix MOD vibrato and tremolo in Protracker compatible mode
 | 
						|
	Fix multichannel MOD issues reported by Leilei:
 | 
						|
	- fix XM replayer note delay and retrig quirk
 | 
						|
	- fix XM replayer channel pan
 | 
						|
	- fix MOD loader period to note conversion
 | 
						|
	Fix issues reported by Lionel Debroux:
 | 
						|
	- fix virtual channel deallocation error handling
 | 
						|
	- fix S3M global volume effect
 | 
						|
	- fix IT envelope reset on tone portamento
 | 
						|
	- fix IT voice leak caused by disabled envelope
 | 
						|
	- fix IT volume column tone portamento
 | 
						|
	- fix XM envelope position setting
 | 
						|
	- fix FT2 arpeggio+portamento quirk with finetunes
 | 
						|
	- fix mixer anticlick routines
 | 
						|
	- accept S3M modules with invalid effects
 | 
						|
	Other changes:
 | 
						|
	- fix S3M channel reset on sample end (reported by Alexander Null)
 | 
						|
	- fix Noisetracker MOD speed setting (reported by Tero Auvinen)
 | 
						|
	- fix IT loader DCA sanity check (reported by Paul Gomez Givera)
 | 
						|
	- fix IT envelope reset after offset with portamento
 | 
						|
	- fix bidirectional sample interpolation
 | 
						|
	- fix mixer resampling and tuning issues
 | 
						|
	- add flags to configure player mode
 | 
						|
	- add option to set the maximum number of virtual channels
 | 
						|
	- add support to IT sample sustain loop
 | 
						|
	- code refactoring and cleanup
 | 
						|
 | 
						|
4.3.13 (20160417):
 | 
						|
	Fix bugs caught in the OpenMPT test cases:
 | 
						|
	- fix IT volume column fine volume slide with row delay
 | 
						|
	Other changes:
 | 
						|
	- fix MOD vs XM set finetune effect
 | 
						|
	- fix IT old instrument volume
 | 
						|
	- fix IT panbrello speed
 | 
						|
	- fix IT random pan variation left bias
 | 
						|
	- fix IT default pan in sample mode (reported by Hai Shalom)
 | 
						|
	- fix S3M set pan effect (reported by Hai Shalom and Johannes Schultz)
 | 
						|
	- code refactoring and cleanup
 | 
						|
 | 
						|
4.3.12 (20150305):
 | 
						|
	Fix bugs caught in the OpenMPT test cases:
 | 
						|
	- fix IT note off with instrument
 | 
						|
	- fix IT note recover after cut
 | 
						|
	- fix IT instrument without note after note cut event
 | 
						|
	- fix IT pan reset on new note instead of new instrument
 | 
						|
	- fix IT volume swing problems
 | 
						|
	- fix XM glissando effect
 | 
						|
	- fix Scream Tracker 3 period limits
 | 
						|
	- fix Scream Tracker 3 tremolo memory
 | 
						|
	Other changes:
 | 
						|
	- fix IT pattern break in hexadecimal (reported by StarFox008)
 | 
						|
	- fix S3M subsong detection (reported by knight-ryu12)
 | 
						|
	- fix S3M/IT special marker handling (reported by knight-ryu12)
 | 
						|
	- fix tone portamento memory without note (reported by NoSuck)
 | 
						|
	- fix IT pan swing limits
 | 
						|
 | 
						|
4.3.11 (20160212):
 | 
						|
	Fix bugs caught in the OpenMPT test cases:
 | 
						|
	- fix FT2 XM arpeggio clamp
 | 
						|
	- fix FT2 XM arpeggio + pitch slide
 | 
						|
	- fix XM tremor effect handling
 | 
						|
	- fix XM tremor recover after volume setting
 | 
						|
	- fix IT instrument after keyoff
 | 
						|
	- fix S3M first frame test in pattern delay
 | 
						|
	- fix Protracker tone portamento target setting
 | 
						|
	- fix Protracker arpeggio wraparound
 | 
						|
	- fix Protracker finetune setting
 | 
						|
	Other changes:
 | 
						|
	- fix Visual C++ build (reported by Jochen Goernitz)
 | 
						|
	- fix invalid sample offset handling in Skale Tracker XM (reported by
 | 
						|
	  Vladislav Suschikh)
 | 
						|
	- fix Protracker sample loop to use full repeat only if start is 0
 | 
						|
	- fix lite build with IT support disabled
 | 
						|
 | 
						|
4.3.10 (20151231):
 | 
						|
	Fix bugs reported by Coverity Scan:
 | 
						|
	- fix out of bounds access in IT/XM envelopes
 | 
						|
	- fix negative array index read when setting position
 | 
						|
	- fix resource leak in module load error handling
 | 
						|
	- add sanity check to smix sample loading
 | 
						|
	- add error handling to many I/O operations
 | 
						|
	- remove dead code in virtual channel manager reset
 | 
						|
	- remove unnecessary seeks in format loaders
 | 
						|
	- prevent division by zero in memory I/O
 | 
						|
	Other changes:
 | 
						|
	- fix IT envelope release + fadeout (reported by NoSuck)
 | 
						|
	- fix IT autovibrato depth (reported by Travis Evans)
 | 
						|
	- fix tone portamento target setting (reported by Georgy Lomsadze)
 | 
						|
	- disable ST3 sample size limit (reported by Jochen Goernitz)
 | 
						|
 | 
						|
4.3.9 (20150623):
 | 
						|
	Fix bugs caught in the OpenMPT test cases:
 | 
						|
	- fix IT tone portamento on sample change and NNA
 | 
						|
	- fix IT tone portamento with offset
 | 
						|
	Fix problems caused by fuzz files (reported by Jonathan Neuschäfer):
 | 
						|
	- add sanity check to IT instrument name loader
 | 
						|
	- add sanity check to IT loader instrument mapping
 | 
						|
	- initialize IT loader last event data
 | 
						|
	Other changes:
 | 
						|
	- detect Amiga frequency limits in MOD (reported by Mirko Buffoni)
 | 
						|
	- fix global volume on restart to invalid row (reported by Adam Purkrt)
 | 
						|
	- fix external sample mixer for IT files (reported by honguito98)
 | 
						|
	- allow short sample reads (reported by Adam Purkrt)
 | 
						|
	- address problems reported by clang sanitizer
 | 
						|
 | 
						|
4.3.8 (20150404):
 | 
						|
	- fix pre-increment of envelope indexes
 | 
						|
	- fix IT note release at end of envelope sustain loop
 | 
						|
	- reset channel flags in case of delay effect
 | 
						|
	- refactor XM envelopes
 | 
						|
	- refactor IT envelopes
 | 
						|
 | 
						|
4.3.7 (20150329):
 | 
						|
	- fix IT sample mode note cut on invalid sample
 | 
						|
	- fix IT sample mode note end detection
 | 
						|
	- fix IT envelope handling with carry and fadeout
 | 
						|
	- fix IT tone portamento with sample changes
 | 
						|
	- fix IT initial global volume setting
 | 
						|
	- fix IT keyoff with instrument in old effects mode
 | 
						|
	- fix IT filter maximum values with resonance
 | 
						|
	- fix IT random volume variation
 | 
						|
	- fix pattern initialization sanity check
 | 
						|
	- fix ++ pattern handling in IT loader (reported by honguito98)
 | 
						|
	- add IT high offset command (SAx)
 | 
						|
	- add IT surround command (S9x)
 | 
						|
	- add IT surround channel support
 | 
						|
	- add IT sample pan setting support
 | 
						|
 | 
						|
4.3.6 (20150322):
 | 
						|
	- fix IT volume column volume slide effect memory
 | 
						|
	- fix IT default filter cutoff on new note
 | 
						|
	- fix IT filter envelope memory
 | 
						|
	- add sanity check for IT old instrument loading
 | 
						|
	- fix instrument number in channel initialization
 | 
						|
	- fix sample size limit (reported by Jochen Goernitz)
 | 
						|
	- fix loading of OpenMPT 1.17 IT modules (reported by Dane Bush)
 | 
						|
	- fix XM loading for MED2XM modules (reported by Lorence Lombardo)
 | 
						|
	- add IT random volume variation
 | 
						|
	- add IT random pan variation
 | 
						|
 | 
						|
4.3.5 (20150207):
 | 
						|
	- add sanity check for ST3 S3M maximum sample size
 | 
						|
	- add sanity check for sample loop start
 | 
						|
	- add sanity check for speed 0
 | 
						|
	- add sanity check for invalid XM effects
 | 
						|
	- add sanity check for maximum number of channels
 | 
						|
	- add sanity check for number of points in IT envelope
 | 
						|
	- add sanity check for S3M file format information
 | 
						|
	- add sanity check for maximum sample size
 | 
						|
	- add sanity check for invalid envelope points
 | 
						|
	- add sanity check for basic module parameters
 | 
						|
	- add sanity check for instrument release after load error
 | 
						|
	- add sanity check for XM header size
 | 
						|
	- add sanity check for XM/IT/S3M parameters and sample size
 | 
						|
	- fix mixer index overflow with large samples
 | 
						|
	- fix crash on attempt to play invalid sample
 | 
						|
	- fix infinite loop in break+delay quirk
 | 
						|
	- reset module data before loading module
 | 
						|
	- fix loop processing error in scan (reported by Lionel Debroux)
 | 
						|
	- fix sample loop adjustment (by Emmanuel Julien)
 | 
						|
 | 
						|
4.3.4 (20150111):
 | 
						|
	- fix XM keyoff+delay combinations
 | 
						|
	- fix XM fine pitch slide with pattern delay
 | 
						|
	- fix XM vibrato rampdown waveform
 | 
						|
	- fix XM volume column pan with keyoff and delay
 | 
						|
	- fix XM pan envelope position setting
 | 
						|
	- fix channel volume and instrument initialization
 | 
						|
	- fix end of module detection inside a loop
 | 
						|
	- fix overflow in linear interpolator (reported by Jochen Goernitz)
 | 
						|
	- fix big-endian detection in configuration (by Andreas Schwab)
 | 
						|
 | 
						|
4.3.3 (20141231):
 | 
						|
	- fix XM note delay volume with no note or instrument set
 | 
						|
	- fix XM out-of-range note delays with pattern delays
 | 
						|
	- fix XM envelope loop length (reported by Per Törner)
 | 
						|
 | 
						|
4.3.2 (20141130):
 | 
						|
	- fix IT invalid instrument number recovery
 | 
						|
	- fix IT note retrig on portamento with same sample
 | 
						|
	- fix XM portamento target reset on new instrument
 | 
						|
	- fix XM portamento with offset
 | 
						|
	- fix XM pan slide memory
 | 
						|
	- fix XM tremolo and vibrato waveforms
 | 
						|
	- fix MOD pattern break with pattern delay
 | 
						|
	- fix MOD Protracker offset bug emulation
 | 
						|
	- fix tremolo rate
 | 
						|
	- fix IT portamento after keyoff and note end
 | 
						|
	- fix IT fadeout reset on new note
 | 
						|
	- fix IT pattern row delay scan
 | 
						|
	- fix MOD/XM volume up+down priority (reported by Jason Gibson)
 | 
						|
	- fix MOD fine volume slide memory (reported by Dennis Lindroos)
 | 
						|
	- fix set sample offset effect (by Dennis Lindroos)
 | 
						|
	- add emulation of the FT2 pattern loop bug (by Eugene Toder)
 | 
						|
	- code cleanup
 | 
						|
 | 
						|
4.3.1 (20141111):
 | 
						|
	- fix IT filter envelope range
 | 
						|
	- fix IT envelope carry after envelope end
 | 
						|
	- fix IT tone portamento in first note (reported by Jan Engelhardt)
 | 
						|
	- fix XM note off with volume command
 | 
						|
	- fix XM K00 effect handling
 | 
						|
	- fix XM portamento with volume column portamento
 | 
						|
	- fix XM keyoff with instrument
 | 
						|
	- fix XM note limits
 | 
						|
	- fix XM invalid memory access in event reader
 | 
						|
	- fix MOD period range enforcing (reported by Jason Gibson)
 | 
						|
	- fix corner case memory leak in S3M loader
 | 
						|
	- fix retrig of single-shot samples after the end of the sample
 | 
						|
	- fix crash in envelope reset with invalid instrument
 | 
						|
	- fix module titles and instrument names in Mac OS X
 | 
						|
	- fix row delay initialization on new module
 | 
						|
 | 
						|
4.3.0 (20140927):
 | 
						|
	- rebranded as libxmp-lite
 | 
						|
	- build from the same source tree as the full libxmp
 | 
						|
	- fix fine volume slide memory
 | 
						|
	- fix IT portamento after note end in sample mode
 | 
						|
	- fix S3M portamento after note end
 | 
						|
	- add XM and IT envelope loop and sustain point quirk
 | 
						|
	- fix Amiga limits for notes with finetune
 | 
						|
	- fix XM invalid offset handling
 | 
						|
	- fix XM note release reset on new volume
 | 
						|
	- fix XM pattern loader to honor header size
 | 
						|
	- fix XM fine volume slide effect memory
 | 
						|
	- fix XM fine pitch slide effect memory
 | 
						|
	- fix XM finetune effect
 | 
						|
	- fix IT portamento if offset effect is used
 | 
						|
	- fix IT NNA on invalid sample mapping
 | 
						|
	- fix IT filter envelope index reset
 | 
						|
	- fix IT envelope carry on note cut events
 | 
						|
	- fix IT envelope reset on new instrument
 | 
						|
	- fix IT instrument change on portamento in compatible GXX mode
 | 
						|
	- fix IT unmapped sample parsing
 | 
						|
	- fix IT filter cutoff reset
 | 
						|
	- add API call to load a module from a file handle
 | 
						|
	- add API call to set default pan separation value
 | 
						|
	- refactor memory I/O calls
 | 
						|
	- fix segfault in mixer caused by sample position overflow
 | 
						|
	- fix XM, S3M, IT and MED offset effect handling
 | 
						|
	- fix IT fadeout and envelope reset on new virtual channel
 | 
						|
	- fix S3M shared effect parameter memory
 | 
						|
	- fix S3M default pan positions
 | 
						|
	- fix S3M set BPM effect with values < 32 (reported by Kyu S.)
 | 
						|
	- fix loop counter reset on play buffer reset
 | 
						|
	- fix finetune effect
 | 
						|
	- fix sequence number reset on player start
 | 
						|
	- fix stray notes in XM (reported by Andreas Argirakis)
 | 
						|
	- limit note number to avoid crash (reported by Bastian Pflieger)
 | 
						|
 | 
						|
4.2.7 (20140412):
 | 
						|
	- fix library name in pkg-config file (by Chris Spiegel)
 | 
						|
	- fix XM set pan effect
 | 
						|
	- fix IT disabled instrument pan
 | 
						|
 | 
						|
4.2.6 (20140407):
 | 
						|
	- add configure option to disable IT support
 | 
						|
	- minor Visual C++ port fixes
 | 
						|
	- add Visual C++ nmake Makefile
 | 
						|
	- fix double free in module loaded from memory (by Arnaud Troël)
 | 
						|
	- fix Win64 portability issues (reported by Özkan Sezer)
 | 
						|
	- fix IT tempo slide effect
 | 
						|
	- generate Android NDK static libraries
 | 
						|
 | 
						|
4.2.0 (20140302):
 | 
						|
	- forked from libxmp 4.2.5 and removed unnecessary features
 |